So, whatever are my reasons to use set_style instead of directly set_bg,
etc.. on my gtk widgets,
could anyone tell me why
myPushButton->set_style(myStyle);
has a real effect on my pushButton while
myPushButtons->modify_style(myRcStyle);
on the same button, does absolutely nothing?

(both myStyle and myRcStyle have a background and foreground set the same
way :
my(Rc)Style->set_fg(Gtk::STATE_NORMAL, anyGdkColor);

Any clue is welcome!

Thanks


On Jan 22, 2008 4:05 PM, Yannick Barbeaux <[EMAIL PROTECTED]> wrote:

> well, thanks for those explanations but i guess i should explain a bit
> more the purpose of my questions,
> in fact i am creating a graphic library with a common interface
> encapsulating gtkmm on one side and QT on the other side,
> that is why i need something more general to modify the widget properties,
> without modifying the rc file directly.
> In my toolkit, i want to create a so-called "palette" (that corresponds to
> a Style or RcStyle in gtkmm),
> modify the properties of the palette (palette->set_background(myColor) for
> example)
> then associate the palette to the widgets of my toolkit.
> In Qt, thhis object is a QPalette. In the gtkmm implementation part, the
> palette object is either a Style or a RcStyle,
> for the moment it is a Style since, as I said, modifying the rcStyle
> doesn't produce any effect.. (and I still don't understand exactly why...
> newbie question?)
>
> In the future, I will also have to investigate how to handle a common
> configuration file using widget names, themes, states, ...
> for Qt AND Gtk, so as to have a general apperance configuration
>
>
>
>
>
>
>
>
>
>
>
> On Jan 22, 2008 2:08 PM, Paul Davis <[EMAIL PROTECTED] > wrote:
>
> > On Tue, 2008-01-22 at 10:05 +0100, Yannick Barbeaux wrote:
> > > Hello
> > >
> > > i am working with gtkmm 2.4 and i am trying to modify the colors of
> > > given widgets in my application,
> > > the gtkmm documentation advices to use
> > > widget->modify_style(Gtk::RcStyle myRcStyle)
> > > function instead of
> > > widget->set_style(Gtk::Style myStyle)
> > > (because "it interacts badly with themes"?)
> > >
> > > the strange behaviour I found out is that using the modify_style has
> > > no effects in my application:
> > >
> > > e.g.:
> > >
> > > I create a new rcStyle with the static create function:
> > >
> > > Glib::RefPtr<Gtk::RcStyle> myRcStyle = Gtk::RcStyle::create();
> > >
> > > then change the colors e.g.:
> > >
> > > myRcStyle->set_bg(Gtk::STATE_NORMAL, anyGdkColor);
> > >
> > > then set the style to the main window or any widget:
> > >
> > > mainWindow->modify_style(myRcStyle);
> > > or
> > > myPushButton->modify_style(myRcStyle);
> >
> > why not just use Widget::modify_fg() ?
> >
> > moreover, why do this in code at all? just name the widgets
> > (Widget::set_name()), and load an app-specific RC file that defines the
> > styles. that way you can modify the styles without a recompile.
> >
> >
> > > then change the colors the same way e.g.:
> > >
> > > myStyle->set_bg(Gtk::STATE_NORMAL, anyGdkColor);
> > >
> > > then set the style to the widget ;
> > >
> > > main_window->set_style(myStyle);
> > > or
> > > myPushButton->set_style(myStyle);
> >
> > you are aware, i hope, that many widgets do not have their own window,
> > and thus setting the bg for them has no effect - they just draw
> > themselves on an existing bg.
> >
> > > And to be more general, why do exist two classes Style and RcStyle
> > > with many common functions?
> > > What is the specific use of each class? is there a correspondance
> > > between those 2 classes?
> >
> > RcStyle represents the definition of a style taken from an RC file. it
> > is held separately from a Style (the style as used by the widget) so as
> > to (a) allow for slightly different representation based on its origin
> > in the file (b) to allow heirarchical inheritance of RcStyles while
> > compositing a particular widget's Style.
> >
> >
> >
> >
>
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to