Hello Thomas,
On Sun, Jan 26, 2014 at 9:05 AM, Thomas Strobel <[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel