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

Reply via email to