[MPlayer-G2-dev] Developing a GTK2 GUI

Charles Ezell ardneh2 at hotmail.com
Sat Aug 2 03:22:27 CEST 2003

Arpi writes:


>The G2 'design' is about complete separation of core libraries from the UI
>code (be it commandline or Gui or browser plugin or whatever).


>In G2, teh new config layer (see cfg.h) exports some usefull info, like the
>short name/description of options, and a more controlled, limited set of
>values (like using drop-down lists, min/max limited numbers etc, can be
>mapped to Gui's combo boxes, bars etc). I think, a runtime 'window builder'
>should be developed,

I was hoping you would say something like that.

>This code then could be used to generate the control window for filters,
>codecs, output drivers etc. (all kinds of plugins/modules in libs)
>Yes, I know it's a big work.

I don't mind hard work as long as there is a point. :)
Creating the preferences was the thing I was dreading above all else
because it is such high maintenance code (in this case).
This will make things much better / easier in the long run.

>don't have to know Gui programming, and can use any (g)ui (be it gtk, qt,
>win32, aqua, osd menu or anything) immediatelly to control it.
>also it have to be written only once, and every new code can use it without
>the needs to extending gui),

Do you mean one for each toolkit that wants to write a UI?  Or just one 
builder for all toolkits?

>the needs to extending gui), but it has some disadvantages too, especially
>may look worse, than a well-designed control window (although we could
>extend the config struct with gui-helper data, like position inside the
>window or grouping of options, if really required).

The most I think you would need is grouping info.  I do not see being able 
to represent
positions usefully/accurately for different toolkits / GUIs.  I've got a 
couple of ideas for
implementing grouping.  I will send them later.

As for looks, we'll see when we get there.  As long as there are not too 
items on a page it should look OK (it will depend on how smart the window 
builder is).

>So, what a GUI should do (imho):
>- handle file selection (open) and playlists (or even better: playtrees,
>  i mean some playlist formats (including reference .mov files etc)
>  support tree of files, and multiple (different bitrate, language etc)
>  alternatives os same contents. it would be nice if the gui could display
>  this and let the user to select from such tree.
>  (note the metadata export from stream layer is not yet coded, it's 
>  to export cdda/cddb tracklists, dvd title/chapter structure etc)

Agreed.  I looked at the playtrees in G1 and was wondering why they were not 
used by the GUI.

>- do window management for video window too, including fullscreen 
>  setting title, always-on-top and such attributes... you should knoe 
>  (it can be done in x11-util.c too, but i was told that in gui 'mode' it
>  must be done by the gui, to be able to swap gui and video windows
>  overlapping or so.)

The less X code the better.  Still, I'm sure there is code that can be used 
by everyone
(using X) and it will be handy to have it in one place.  I have to look into 
it more.


STOP MORE SPAM with the new MSN 8 and get 2 months FREE*  

More information about the MPlayer-G2-dev mailing list