Some days ago I was starting projects to help with build apps. It's can
be great for many programmes, such can't understand how gui should
The plan was concentrating in create a small frontend for toolkit, which
supports modules. It is called mWidgets. If application don't tell us
witch module we should use, we get possibility list from enviornament.
But it's not similar to WxWidgets? And how can it help wiith programme?
Answer is simple. This API set is not for programmer. It's only set of
helper function for other my library called morph.
What it's morph? Morph is rather than DBUS for Widget Set. You can think
about it like: connection of DBUS, XUL(XML variant to create gui,
created by Mozilla) and XSLT.
Morph only generates document tree based on program information(program
will have some function to talking with morph, like: AddHandler,
SetData, GetData, FillData, SetHint/SetTip, SetType, SetDesign). It in
future would contains API to data control(such maximum value, minimum
value, data type).
It's more general and simple than any toolkit API. We make only thin
(written in c)
struct morph_window *a=morph_window_new();
morph_set_data(a,"progressbar", "@filled", TYPE_INT, 50); // or @done
morph_add_handler(a,"actions/cancel", callback, CANCEL_ID);
morph_set_tip(a,"actions/cancel",IMAGE_BMP,data); // we use other icon
for button instead default(Why?)
morph_set_tip(a,"actions/cancel",TEXT_LABEL,"CLICK ME TO PREVENT
morph_add_handler(a,"/app/force_quit", callback2, 0);
morph_add_handler(a,"state/have_done", callback2, 0);
/* We uses very high priority, so the element should be placed in
buttons bar instead of example menu
This was not great if programmer don't carried about which widget they
have? Why we need rubbish in each toolkit? And my code is very portable.
We don't have only somethink like WxWidgets, but also gui generator. We
can have different looks in each system. User can easy edit design of
app. He only looks in /usr/share/morph/gtk/desktop/dialog/progress.morph
or /usr/share/morph/mWidgets/dialog/progress.morph .
Morph of course know which /usr/share/morph/* select according to env
variable. If everything is ok, he ask mWidgets to load module defines in
morph_window_set(example Win32 or QT). If not, they tries to load other
window set. If anythink been loaded, it ask mWidget to decide which
module to talk with toolkit uses and morph will
use /usr/share/morph/mWidgets window sets, where we cannot use
additional controls from toolkit. If some days window set don't have
file how translate handler/attributes into controls, morph loads this
file from /usr/share/morph/mWidgets, so it's not reason for panic. Fact;
programmer shouldn't depend on any widget set, but morph prevent from
this(it's not deliver any widget set and programmer cannot use widgets).
Of course programmer can deliver custom created translator, but it
should offer mWidgets sets too. If not, morph tries to
load /usr/share/morph/mWidgets/<window_path> . If this file don't exist,
morph cannot bind window to any file with gui.
Why I ask for help:
- I have done base functionality for mWidgets. It can uses gtk or X11
lib and display button, vbox, hbox.
- I don't create language for translation and don't know how use xslt
and xml lib. Maybe somebody can help?
- Somebody can must create gui sets and too create as many modules for
mWidgets as we can.
- We should add some funny thinks, like morph shell to talk with app
without any GUI(I would be happy if we can k3b --morph-shell
- We can simple add possibility to naw way how app integrates. Can you
imagine nautilus can start k3b and put it inside it window(translates
all mWidgets widget to own or uses Nautilus window set and possibility
others - uses special api to get all reported handler by k3b and creates
- Maybe we can make simple API for images? I don't think that we can
port many games, but maybe we should try? The API must be very simple.
Thanks for all answers. Somebody can help me??
wx-discuss mailing list
|Free forum by Nabble||Edit this page|