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:41:31 -0500
On Tue, 2011-01-18 at 00:32 -0500, José Alburquerque wrote:
> 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.
And it turns out that the e-mail posting the example was not private. I
don't know how I thought it was. Sorry.
>
> >
> > 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]