changing a widget's color at runtime
- From: Patrick Schweiger <pks timing com>
- To: gtk-list gnome org
- Subject: changing a widget's color at runtime
- Date: Mon, 13 Nov 2000 12:39:14 -0700
Once again a gtk-- questions on gtk-list ...
My question was anserwed last time and nobody complained about the fact
that it was gtk--, please tell me to go away (and preferably where to go)
if gtk-- questions bug you.
I'm changing a widget's (label in particular) color at run time and am
using the following code to do so:
void some_cute_class_name::set_status_lbl_color(const Gdk_Color &color) {
Gtk::Style *cur_style = status_lbl_1->get_style();
cur_style = cur_style->copy();
cur_style->set_fg(GTK_STATE_NORMAL, color);
status_lbl_1->set_style(*cur_style);
status_lbl_2->set_style(*cur_style);
}
This works, but it leaves me with these questions:
1)
Calling set_style() when leaving out the call to copy() doesn't update the
appearance, is this because set_style() comparse the style's address, as
opposed to members to determine if anything has changed?
2)
When learning how to make runtime color changes possible I ran into a
function called ensure_style() (before I discovered that a call to copy()
makes it behave as expected I had something like this:
lbl->get_style()->set_fg(GTK_STATE_NORMAL, color);
lbl->ensure_style();
which didn't produce the desired results ... am I misinterpreting the
function name?
3)
am I introducing a memory leak by making a copy of the style and never
disposing of the original?
4)
should I make two copies of the style beacuse I'm calling set_style() for
two different widgets?
thank you for answers to any of these questions!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]