I tried putting the commands in the callback signal_realize

 

signal_realize().connect (sigc::mem_fun (*this, 
&ExampleWindow::onWindowRealize));

 

 

void ExampleWindow::onWindowRealize()

{

  Glib::RefPtr<Gdk::Window> win = get_window();

  Glib::RefPtr<Gdk::GC> some_gc = Gdk::GC::create(win);

  Glib::RefPtr<Gdk::Colormap> some_colormap = get_default_colormap();

  my_gray.set_red(0xc900);

  my_gray.set_green(0xca00);

  my_gray.set_blue(0xc800);

  some_colormap->alloc_color(my_gray);

 

  my_blue.set_red(0x0000);

  my_blue.set_green(0x7200);

  my_blue.set_blue(0xc800);

  some_colormap->alloc_color(my_blue);

 

  some_gc->set_foreground(my_gray);

  some_gc->set_background(my_blue);

}

 

The program console showed:

 

(Hello:2839): Gdk-CRITICAL **: gdk_gc_new: assertion `drawable != NULL' failed

 

(Hello:2839): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT 
(object)' failed

 

But the background and foreground were unchanged.

 

 

I also tried using: 

Glib::RefPtr<Gdk::Window> win = get_window();

gtk_widget_modify_bg( GtkWidget(win), (GtkStateType)Gtk::STATE_NORMAL, 
(GdkColor*)&my_blue );

gtk_widget_modify_fg( GtkWidget(win), (GtkStateType)Gtk::STATE_NORMAL, 
(GdkColor*)&my_gray );

It won’t compile because it does not like the reference pointer to widget 
conversion.

Any other ideas ??

 

Randy Seedle

 

PS: This solution needs to work with “Gtkmm”.

 

 

From: José Alburquerque [mailto:[email protected]] 
Sent: Tuesday, January 11, 2011 12:51 PM
To: [email protected]
Cc: <[email protected]>
Subject: Re: settting the background and foreground

 

El Jan 10, 2011, a las 4:32 PM, "Charles Seedle" <[email protected]> 
escribió:

 

I am tring to set the background and foreground of my main window. Is there a 
good example of how to do this out there ?

I keep getting the messeges:

 

 

(Hello:22855): Gdk-CRITICAL **: gdk_gc_new: assertion `drawable != NULL' failed

 

(Hello:22855): Gdk-CRITICAL **: gdk_gc_set_foreground: assertion `GDK_IS_GC 
(gc)' failed

 

(Hello:22855): Gdk-CRITICAL **: gdk_gc_set_background: assertion `GDK_IS_GC 
(gc)' failed

 

(Hello:22855): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT 
(object)' failed

 

 

>From this code:

  Glib::RefPtr<Gdk::Window> win = get_window();

 

  Glib::RefPtr<Gdk::GC> some_gc = Gdk::GC::create(win);

  Glib::RefPtr<Gdk::Colormap> some_colormap = get_default_colormap();

  set_decorated(false);

 

  my_gray.set_red(0xc900);

  my_gray.set_green(0xca00);

  my_gray.set_blue(0xc800);

 

  some_colormap->alloc_color(my_gray);

  some_gc->set_foreground(my_gray);

 

  my_blue.set_red(0x0000);

  my_blue.set_green(0x7200);

  my_blue.set_blue(0xc800);

 

  some_colormap->alloc_color(my_blue);

  some_gc->set_background(my_blue);

 

When getting the window of a widget, you have to be sure it is realized first.  
See Gtk::Widget::signal_realize().  Or maybe use one of the 
Gtk::Widget::modify_* methods.



 

 

 

 

Randy

_______________________________________________
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