How to access Widgets generated by glademm, was Re: [glade--]Getting handles to Gtk Objects

Christof Petig <[email protected]>
Newsgroups gmane.comp.gnome.glademm,gmane.comp.gnome.gtkmm
Organization Adolf Petig GmbH & Co. KG
Message-ID <[email protected]>
I cc this to gtkmm-list as well since this seems to be not widely known.

Douglas Roberts schrieb:
> Hi.
> 
> I've been in discussion with the folks on the gtkmm list trying to find 
> out how to get handles to the gui objects created when you save an 
> application with glade-2/gtkmm as C++ code.  I'll include a snippet from 
> one of the messages on that list to ask my question, as it nicely 
> summarized my problem:
> 
> Thanks,
> 
> --Doug

Sorry for answering this late (busy elsewhere), but as I said numerous 
times in numerous places (and as newest (CVS) glademm versions tell you) 
you will not be able to access the widgets unless you mark them as 
either protected or public (private is the default which simply means 
invisible to you!).

This optionmenu (visibility) is only available if you select C++ as the 
language in glade.

Does this answer cover all the confusion seen on this list in the last 
four weeks (my holiday)?

    Christof

> SNIP
> -------
> Yep, you've about got it summarized, with one minor twiddle:  you can't 
> even get hold of pointers to the main windows where the other 
> object-wrapped widgets (like Gtk::button, Gtk::entry, etc., etc.) 
> reside, unless you edit the glademm-generated code to re scope them to 
> be global as well.  Not an acceptable solution, because 1) global 
> scoping is bad here, and 2) those files get over-written each time you 
> save the GUI C++ code from glade.

sigh. Quoting the user guide:
Then think whether you need to access a widget in your program. If
you need to access it (e.g. read or alter values) inside your scope
(class) declare it as protected. (Attaching signals to widget does not
count as a need to access it)

Quoting the download page:
The <b>number one problem</b> seems to be that people forget to mark
widgets they want to access as <b>protected or public</b>.

> Thus you're left with glademm, and if that doesn't provide you with
> access to the widgets in the window you've got a problem - and to be
> honest, I think it probably should have a way to do that, and it may
> already have one; although judging by the code snippet in one of your
> e-mails it's not looking particularly hopeful.
> 
> Feature enhancements to glademm should be discussed on the glademm list
> of course.

any real enhancements left?

    Christof
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.