RE: settting the background and foreground
- From: José Alburquerque <jaalburquerque cox net>
- To: charles seedle rigaku com
- Cc: gtkmm-list gnome org
- Subject: RE: settting the background and foreground
- Date: Tue, 18 Jan 2011 00:32:36 -0500
On Tue, 2011-01-18 at 00:23 -0500, José Alburquerque wrote:
> Charles, I'm not in the business of private e-mailing but I will offer
> you a little hint hoping it helps. Any other question you have should
> be posted to the list since there are many more people that can answer
> your questions.
>
> My one suggestion (by just quickly looking at your ExampleWindow
> constructor) is that you don't try to get the Gdk::Window in the
> constructor. Instead, connect to the signal_realize() in the
> constructor. Get the Gdk::Window in the handler that you use to connect
> to the signal_realize() and do the color setting in the handler and not
> in the constructor.
>
> I wont answer private e-mails because I have many things to do. Please
> ask next time on the list. Many more people can answer your questions
> there.
This one was meant to be mailed privately also, sorry. I don't know why
I thought I pressed the reply and not reply-to-all button. At any rate,
the answer, though quickly composed, should still be valid.
>
> On Mon, 2011-01-17 at 08:19 -0600, Charles Seedle wrote:
> > Here is an example of the foreground/background problem that I am seeing. See the attachments.
> >
> > Randy Seedle
> >
> >
> >
> > -----Original Message-----
> > From: José Alburquerque [mailto:jaalburquerque cox net]
> > Sent: Wednesday, January 12, 2011 11:22 AM
> > To: charles seedle rigaku com
> > Cc: jaalburquerque cox net; gtkmm-list gnome org
> > Subject: RE: settting the background and foreground
> >
> > On Wed, 2011-01-12 at 10:15 -0600, Charles Seedle wrote:
> > > 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 ??
> >
> > Try using the Gtk::Widget::modify_* methods instead of the gtk+
> > functions (or use win->gobj() and a_color.gobj() with the functions).
> > If you're experiencing a bug, a small complete example exhibiting the
> > bug would be useful. In that case, just file a bug so that the issue
> > can be looked at.
> >
> > >
> > >
> > >
> > > Randy Seedle
> > >
> > >
> > >
> > > PS: This solution needs to work with “Gtkmm”.
> > >
> > >
> > >
> > >
> > >
> > > From: José Alburquerque [mailto:jaalburquerque cox net]
> > > Sent: Tuesday, January 11, 2011 12:51 PM
> > > To: charles seedle rigaku com
> > > Cc: <gtkmm-list gnome org>
> > > Subject: Re: settting the background and foreground
> > >
> > >
> > >
> > >
> > > El Jan 10, 2011, a las 4:32 PM, "Charles Seedle"
> > > <charles seedle rigaku com> 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
> > > gtkmm-list gnome org
> > > http://mail.gnome.org/mailman/listinfo/gtkmm-list
> > >
> > >
> >
>
--
José
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]