Hi Krzesimir and all,

Thanks for the help.

Now I made changes to my code as in .h file:
  class CGraphView : public Gtk::ScrolledWindow
  {
    Gtk::Label _pageTabLabel;
    //    static Gtk::Label _pageMenuLabel;
    Gtk::Label _pageMenuLabel;
  };
So the static has been changed to a member object.

In my .cpp file, I am using the following to add a page to my Gtk::Notebook:
  ... ...
  Gtk::Adjustment h_adj(0, 0, 1000);
  Gtk::Adjustment v_adj(0, 0, 1000);
  CGraphView * graph_view = new CGraphView(h_adj, v_adj, label);

  append_page(* graph_view, graph_view->_pageTabLabel,
/*CGraphView::*/graph_view->_pageMenuLabel);
  ... ...

After I compiled the code and running, I tried to add a page - everything
seems to work. But when I exit the program, I got the following warning:
    (utool:4351): GLib-GObject-WARNING **: gsignal.c:2390: instance
`0x90806c8' has no handler with id `611'
And it seems one such warning for each page I've added.

My questions are:
1. What caused this warning and how do I fix it?
2. The Gtk::Notebook function I used to append a page is:
         int 
append_page<http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1Notebook.html#a3a1f038ff9da250b46af4704e92ac16c>(
Widget<http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1Widget.html>&
child, 
Widget<http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1Widget.html>&
tab_label, 
Widget<http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1Widget.html>&
menu_label)
    Here is from the gtkmm reference manual:

Appends a page to *notebook*, specifying the widget to use as the label in
the popup menu.
*Parameters:* childThe
Gtk::Widget<http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1Widget.html>to
use as the contents of the page.
tab_labelThe 
Gtk::Widget<http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1Widget.html>to
be used as the label for the page.
menu_labelThe widget to use as a label for the page-switch menu.     What is
the purpose of menu_label? Is it visible somehow and when? What is the
page-switch menu?

Any examples or link are welcome.

Thanks,
Chun

On Fri, Dec 17, 2010 at 11:54 PM, Krzesimir Nowak <[email protected]> wrote:

> On Thu, 2010-12-16 at 23:49 -0800, Chun Yang wrote:
> > Hi All,
> >
> > Sorry again. I kept pressing some button I was not aware and sent this
> > email again.
> >
> > Here are my question:
> > 1. What are the warning (highlighted in green) after I started to run
> > the program?
> > 2. What is the reason for me to get all the warnings (in blue) and the
> > error (in red)? I can not continue the program due to the error.
> > 3. How do I fix the error?
> >
>
> I see 3 questions, not 2. :) And one thing - especially for you I
> switched my mail view to HTML instead of plaintext, but still all the
> text is black on white. But probably I can guess what is what.
>
>
> 1. Some prelink + gdb issues, probably nothing you should be worrying
> about now. If you want some reading, here is the link:
> http://www.cygwin.com/ml/gdb-patches/2006-02/msg00164.html
>
> 2. The warnings are displayed because when CGraphView::_pageMenuLabel is
> constructed, a GType system is not yet initialized. And it is not
> initialized because static members are constructed before main() is
> started.
>
> 3. Seems that widgets cannot be static members. So a fix could be making
> it a nonstatic member of the class. Or, if you want it to be static
> anyway, make it a pointer. And in constructor of CGraphView you could
> check if this pointer is zero. If so - create a button, otherwise do
> nothing. But don't forget to delete it at some point or you'll get a
> memory leak.
> > Thanks,
> > Chun
> >
>
> Krzesimir
>
> > On Thu, Dec 16, 2010 at 11:45 PM, Chun Yang <[email protected]>
> > wrote:
> >
> >         Sorry I pressed the wrong button.
> >
> >         Let me continue.
> >
> >         I have the following code:
> >
> >         In my .h file, I have:
> >           class CGraphView : public Gtk::ScrolledWindow
> >           {
> >             ..... .....
> >             static Gtk::Button _pageMenuLabel;
> >           };
> >
> >         In my .cpp I have:
> >
> >         Gtk::Button CGraphView::_pageMenuLabel("X");
> >
> >
> >         I planned to use _pageMenuLabel as an page to Gtk::Notebook as
> >         in:
> >           append_page(* graph_view, graph_view->_pageTabLabel,
> >         CGraphView::_pageMenuLabel);
> >         After I compile and  run gdb with breakpoint set on the above
> >         line, I got the following.
> >
> >         I got two questions to asked
> >
> >
> >
> >         (gdb) r
> >         Starting program: /proj/utool/gui/build/utool
> >         warning: .dynamic section for
> >         "/usr/lib/libpangocairo-1.0.so.0" is not at the expected
> >         address
> >         warning: difference appears to be caused by prelink, adjusting
> >         expectations
> >         warning: .dynamic section for "/usr/lib/libpango-1.0.so.0" is
> >         not at the expected address
> >         warning: difference appears to be caused by prelink, adjusting
> >         expectations
> >         warning: .dynamic section for "/usr/lib/libX11.so.6" is not at
> >         the expected address
> >         warning: difference appears to be caused by prelink, adjusting
> >         expectations
> >         warning: .dynamic section for "/lib/libz.so.1" is not at the
> >         expected address
> >         warning: difference appears to be caused by prelink, adjusting
> >         expectations
> >         [Thread debugging using libthread_db enabled]
> >
> >         Breakpoint 2, __static_initialization_and_destruction_0
> >         (__initialize_p=1, __priority=65535) at src/CGraphView.cpp:6
> >         (gdb) n
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-CRITICAL **: g_once_init_leave: assertion
> >         `initialization_value != 0' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static: assertion
> >         `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static: assertion
> >         `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static: assertion
> >         `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-CRITICAL **: g_once_init_leave: assertion
> >         `initialization_value != 0' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static: assertion
> >         `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >
> >         (process:3431): GLib-CRITICAL **: g_once_init_leave: assertion
> >         `initialization_value != 0' failed
> >
> >         (process:3431): GLib-GObject-WARNING **: cannot retrieve class
> >         for invalid (unclassed) type `<invalid>'
> >
> >         (process:3431): GLib-GObject-CRITICAL **:
> >         g_object_class_find_property: assertion `G_IS_OBJECT_CLASS
> >         (class)' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:3270: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): glibmm-WARNING **:
> >         Glib::ConstructParams::ConstructParams(): object class
> >         "(null)" has no property named "label"
> >
> >         (process:3431): GLib-GObject-CRITICAL **: g_type_class_unref:
> >         assertion `g_class != NULL' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: g_object_newv:
> >         assertion `G_TYPE_IS_OBJECT (object_type)' failed
> >
> >         (process:3431): GLib-GObject-CRITICAL **: gtype.c:2706: You
> >         forgot to call g_type_init()
> >
> >         (process:3431): glibmm-CRITICAL **:
> >         Glib::Interface::Interface(const Glib::Interface_Class&):
> >         assertion `gobject_ != 0' failed
> >         (gdb)
> >
> > _______________________________________________
> > gtkmm-list mailing list
> > [email protected]
> > http://mail.gnome.org/mailman/listinfo/gtkmm-list
>
>
>
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to