[Lumiera] Gdlmm Port Works!

Michael R Fisher mfisher31 at gmail.com
Mon Oct 17 19:15:19 CEST 2011


Formerly [Lumiera] GDL question:

I was able to port it over to gdlmm with ease.  I created a separate 
branch in my repository called gdlmm-port (hopefully I created it 
correctly). Not quite finished, but the heavy lifting is done.

> Yeah, my thinking too.
> Also the question: does it give us significant benefit.
I say yes.
>   For example,
> (does it) make the code more readable and easier to maintain?
Absolutely, have a look.  Instead of passing around Gtk pointers 
everywhere, the panels and panel manager follow suit passing object 
references through widget ctors and whatnot.  Also, by switching to 
gdlmm, there is no longer a need to use g_signals.  Gdlmm provides 
sigc++ signals that can be connected to just like the rest of the gui.  
And, along with Gdlmm comes the possibility to inherit Gdl widgets in 
case the need for a custom Gdl widget surfaces.

On a side note, I was able to fix the bug where the app crashes when you 
try to dock a panel in the CENTER position ( a panel within another 
panel ).  PanelBar is creating a GDK window to change the mouse pointer 
to the Arrow when hovering over it.  For whatever reason, GDL does not 
like that (i think).  I added a function to GDL itself 
(gdl_dock_item_grip_set_default_cursor()) which allows the programmer to 
set the grip pointer to whatever he/she wants.  In lumiera's case, the 
regular pointer.  Setting the pointer here, instead of in the PanelBar 
seems to work well.  I am able to dock a panel within a panel, as well 
as iconify a panel without the program crashing.  And, the little hand 
cursor is changed to the arrow across the entire DockItemGrip. (I hate 
that cheesy little hand cursor)

My altered GDL is based on gdl-1.0 (v 2.30.1) , v 2.31.x builds fine, 
but the devs must have changed something in the internals.  When lumiera 
is compiled agains 2.31.x it builds fine, but upon launch pages upon 
pages of errors spew out on the console about re-parenting and 
containers.  Not sure what that is all about.  For 2.31.x I get the same 
errors when running the demo app that comes with it.  Everything above 
2.31.x is for gtk3.

Downside... Lumiera would again depend on a custom built GDL 
implementation...

-Mike


More information about the Lumiera mailing list