digitalmars.D.announce - Cassowary.d
- ketmar (5/5) Jul 27 2014 preliminary, but working port of Cassowary Solver — GUI-oriented
- Yuriy (3/9) Jul 27 2014 +1
- ketmar via Digitalmars-d-announce (5/7) Jul 27 2014 On Sun, 27 Jul 2014 12:01:45 +0000
- ketmar via Digitalmars-d-announce (5/5) Jul 27 2014 On Sun, 27 Jul 2014 15:16:07 +0300
- Yuriy (7/8) Jul 28 2014 No way it could be! We don't like monopoly here, right? =)
- Kagamin (3/13) Jul 27 2014 http://code.dlang.org/?sort=updated&category=library.scientific.linalg
- ketmar (64/64) Aug 07 2014 a small update for parser: it is now possible to parse so-called
preliminary, but working port of Cassowary Solver — GUI-oriented constraint solver, toolkit-agnostic layout engine. it's not D-spirited yet, but it works. todo list includes templated classes and bindings for gtk.d. feel free to fork and improve. url: http://repo.or.cz/w/cassowary.d.git
Jul 27 2014
On Sunday, 27 July 2014 at 11:44:35 UTC, ketmar wrote:preliminary, but working port of Cassowary Solver — GUI-oriented constraint solver, toolkit-agnostic layout engine. it's not D-spirited yet, but it works. todo list includes templated classes and bindings for gtk.d. feel free to fork and improve. url: http://repo.or.cz/w/cassowary.d.git+1 http://code.dlang.org/packages/cassowary-d
Jul 27 2014
On Sun, 27 Jul 2014 12:01:45 +0000 Yuriy via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:+1 http://code.dlang.org/packages/cassowary-ddamn it! my google-fu sux again. i did search and found nothing, so made a port. feel so stupid now...
Jul 27 2014
On Sun, 27 Jul 2014 15:16:07 +0300 ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote: heh. but i have a nice text parser! so it's not a completely trashcan work. ;-)
Jul 27 2014
so it's not a completely trashcan work. ;-)No way it could be! We don't like monopoly here, right? =) I just ported the library for my own fun, and added a couple of D-ish features, like operator overloads, etc. It's not claimed to be the best one in the world =). Please feel free to continue with your own, or contributing to my lib, whatever you prefer =). Best regards, Yuriy Glukhov.
Jul 28 2014
On Sunday, 27 July 2014 at 12:01:47 UTC, Yuriy wrote:On Sunday, 27 July 2014 at 11:44:35 UTC, ketmar wrote:http://code.dlang.org/?sort=updated&category=library.scientific.linalg categorization can be better though.preliminary, but working port of Cassowary Solver — GUI-oriented constraint solver, toolkit-agnostic layout engine. it's not D-spirited yet, but it works. todo list includes templated classes and bindings for gtk.d. feel free to fork and improve. url: http://repo.or.cz/w/cassowary.d.git+1 http://code.dlang.org/packages/cassowary-d
Jul 27 2014
a small update for parser: it is now possible to parse so-called "scripts" (only from 'string' type for now). sample script can look like this one, which centers two buttons inside the panel, keepeng equal button sizes: ===[cutline]=== var(stay) panel.left = 0, panel.top = 0, panel.width = 80, panel.height = 20; // this is just a simple constants, // use 'define' to avoid introducing new vars define button.hpadding = 4, button.defheight = 10+6; // simple math var bt0.left, // default is 0 bt0.top, <stay> bt0.width = 30, <stay> bt0.height = button.defheight; // oh, yeah, this will be calculated in-place var bt1.left, bt1.top, bt1.width, bt1.height; // some useful macros define panel.right = (panel.left+panel.width), panel.bottom = (panel.top+panel.height), bt0.right = (bt0.left+bt0.width), bt0.bottom = (bt0.top+bt0.height), bt1.right = (bt1.left+bt1.width), bt1.bottom = (bt1.top+bt1.height); // button-button placement and sizes // default strength is <required> bt1.left >= bt0.right+button.hpadding; // buttons padding bt1.height == bt0.height; // same height bt1.width == bt0.width; // same width bt1.top == bt0.top; // same vertical position // button-panel placement (this should center buttons) // horizontal bt0.left-panel.left == panel.right-bt1.right; // vertical bt0.top-panel.top == panel.bottom-bt0.bottom; // print values (for debug mode) print panel.left; print panel.top; print panel.width; print panel.height; print bt0.left; print bt0.top; print bt0.width; print bt0.height; print bt1.left; print bt1.top; print bt1.width; print bt1.height; ===[cutline]=== there is no support for any kind of 'autobinding' variables to class/struct properties yet, and parser code is awful. but the whole thing is slowly growing… anyway, it's really fun to play with various layout scripts. try it yourself!
Aug 07 2014