[prev in list] [next in list] [prev in thread] [next in thread]
List: gtk-app-devel
Subject: Sharing Variables in GTK+, & Re: State changing of Toggle Buttons
From: Muthiah Annamalai <dearestchum () yahoo ! co ! in>
Date: 2005-05-31 5:28:50
Message-ID: 20050531052850.15213.qmail () web8404 ! mail ! in ! yahoo ! com
[Download RAW message or body]
Hi Michal,
This might be the solution, if I understand you right.
General information.
If you write C code, and want to access lots of
variables from a Callback, then there are a few simple
ways.
1: Make all the variables global, so you can access
them anywhere[function] in C.
2: Make a single global structure and have its
elements
as the necessary widgets. This is followed in LibGlade
initialization policies, in the function
glade_xml_get_widget(xml_ptr,wid_name);
3: Use g_object_set_data(obj,name,ext_ptr) to save
some
reference to ext_ptr with this obj. This is similar to
doing
obj["name"] = &ext_ptr; in C++ or any OOP
language.
To get the data (the operation obj["name"] in C++/OOP)
we have to use
(typecast as necessary ) g_object_get_data(obj,name);
Re: State changing of Toggle Buttons
------------------------------------
Specific information.
/*You have 2 toggle btns t1 & t2.
In you main function add this code. */
Simple solution: Make t1 & t2 global variables, so you
can access them anywhere.
[good] Complex solution: Make a reference of t1 with
t2. like this.
g_object_set_data(G_OBJECT(t1),"t2",t2);
g_object_set_data(G_OBJECT(t2),"t1",t1);
This creates reference of t2 with t1, and vice verca.
Now in your callback for code t1 do this.
int t1_activated(GtkWidget *t1,void *data)
{
GtkWidget *t2;
t2=g_object_get_data(G_OBJECT(t1),"t2");
if(!t2)
{ g_message("T2 reference not found\n");
}
/* you have t1 & t2 now! */
}
Add similar CB code for t2.
Cheers
Muthu.
--- Michal Porzuczek <mporzuczek@gmail.com> wrote:
> Hi,
>
> I was wondering if it is possible to set a Toggle
> Button's state to
> something else when you are inside another Toogle
> Button's callback. I
> know there is the gtk_toggle_button_set_active
> method but that
> requires you to have the GtkToggleButton. Is there
> another method that
> only uses the Widget to change its state? Or is
> there an easy way of
> accessing the GtkToggleButton from the Widget?
>
> Thanks in advance
>
> Michal
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
>
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new Resources site
http://smallbusiness.yahoo.com/resources/
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic