Hello Thomas, On Sun, Jan 26, 2014 at 9:05 AM, Thomas Strobel <ts...@cam.ac.uk> wrote: >
[sinp] > On a C level it would require an API to declare the constraints, > similarly to what ephysics provides, a interface where you can plug your > constraint solver into, and some logic to synchronize updates between > evas/ecore and the constraint solver. If one could expose an API to set > the constraints instead of hiding this all within a GUI-builder, be it > edc or a special GUI, it would allow to wrap this API within other > higher level programming functions as well, some of them which are > pretty well suited to use as DSL. And defining a clear interface for the > actual solver would allow to use different solvers, and so maybe to port > edje onto the same API. But so far these are just a few thoughts... ;) I've always liked the idea of creating a C++ EDSL for GUI. One example I had built some months ago (not compilable yet of course). Though this is too edje-like, it could be more ASL-like and let a layout engine figure out how to layout things. Which is what I think would make GUI development easier and faster. struct ok_button {}; struct bg_rect {}; struct entry_rect {}; int main() { Controller controller; using namespace efl::layout; view< named_button<ok_button> , named_rect<bg_rect> , named_rect<entry_rect> > v ( button [ on_clicked = controller, &Controller::ok_clicked , text = "OK" , type_name<ok_button>() ] , rect [ type_name<bg_rect>() , description [ state = "default", 0.0 , rel1 [ relative = 0.0, 0.0 ] , rel2 [ relative = 1.0, (1.0+1.0)/1280 ] , color = 246, 244, 237 ] , description [ state = "landscape", 0.0 , inherit = "default", 0.0 , rel1 [ relative = 0.0, 0.0 ] , rel2 [ relative = 1.0, (1.0+1.0)/720 ] , color = 246, 244, 237 ] ] , rect [ type_name<entry_rect>() , mouse_events = false , scale = true , description [ state = "default", 0.0 , rel1 [ relative = 0.0, 0.0, to = "bg" ] , rel2 [ relative = 1.0, 270/(1280-60-88), to = "bg" ] ] , description [ state = "landscape", 0.0 , inherit = "default" 0.0 , rel1 [ relative = 0.0, 0.0, to = "bg" ] , rel2 [ relative = 1.0, (130)/720-60-88), to = "bg" ] ] ] ) ; button<ok_button> ok = v[ok_button()]; ok.setText("OKay"); ok.connect(controller, &Controller::another_slot_for_ok_button); } > If you want to get a constraint solver into EFL quickly, maybe you want > to have a look at Kiwi and give it a try :) Thanks, I will. > Thomas Regards, -- Felipe Magno de Almeida ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel