Problems with GtkTreeStore
- From: "Francisco Fernandez" <franfernandezb coit es>
- To: <gtk-app-devel-list gnome org>
- Subject: Problems with GtkTreeStore
- Date: Mon, 20 Jun 2005 02:41:58 +0200
Hi guys!
I need your valuable help with I subject that is driving me crazy!!! I am trying to create a TreeStore
from a file, and to fill from another source file. After getting many segmetation faults and assertion
failures, I've realized that I am not doing it in the right way. This is what I want:
(+) ==> Device 1
| |
| (+) ===> Attribute 1
| |
| (+) ===> Attribute 2
|
(+)==> Device 2
| |
| (+) ===> Attribute 1
| |
| [...]
| |
| (+) ===> Attribute n
|
[...]
|
(+) ==> Device n
In my application's main window it should be displayed some kind of devices monitored from my pc, plus their
correspondent internal attributes that will be fetched from the functions within a different source file, as
I stated before:
This is an overall of what i have:
==========================================================
main.c
==========================================================
GtkTreeStore *store;
GtkTreeIter *parent;
GtkTreeIter *child;
GtkWidget *view;
GList devList; //Here the present devices are stored
void deviceList(){
//This function populates the tree with the present devices but is not able to
//access their individual attributes.
store = gtk_tree_store_new(4, GTK_TYPE_STRING, GTK_TYPE_STRING, GTK_TYPE_STRING, GTK_TYPE_STRING);
//We will be monitoring four parameters
view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view), 0, "name", renderer, "text", 0, NULL);
[...] //here come the other three gtk_tree_view_intsert_column_with_attributes() func...
gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(store));
//Now I will start to populate the tree:
for(i = 0 ; i < g_slist_length(deviceList); i++){
[...]
//In this omitted part we retrieve the first device from the list, and store in a type called "device"
gtk_store_append(store, &parent, NULL);
gtk_tree_store_set(store, &parent,
0, (char *) device->name, -1);
device_attributes(device->id); //Here is where my nightmares start! :-)
//This function should access each device and add their
attributes to the tree
}
int main(int argc, char **argv){
gtk_init(&argc, &argv);
[...] //We fill GList with present devices
deviceList(); //The above mentioned funcion
main_window(); //GUI function accessed through a given interface (interface.h)
gtk_main();
}
}
=========================================================
interface.c
=========================================================
extern GtkWidget *view;
//The only relevant part in this file is in main_window()
main_window(){
[...]
frame = gtk_frame_new("Configuration");
gtk_container_add(GTK_CONTAINER(frame), view);
[...]
}
//Here the rest of the windows which are part of my application
}
========================================================
other.c
========================================================
extern GtkTreeIter parent;
extern GtkTreeIter child;
extern GtkTreeStore *store;
device_attributes(int id){ //id will identify the device to be accessed
[...]
//We access the device internally and get the appropiate data that will be converted into
//string before is showed onscreen.
gtk_tree_store_append( store, &child, &parent); //I try to add a new line corresponding to the processed
device...
gtk_tree_store_append(store, &child, //Here is where my app crashes
0, (char *) attr1,
1, (char *) attr2,
2, (char *) attr3,
3, (char *) attr4,
-1);
}
}
==========================================================
There's no problem at compiling time, but as I start the application a segmentation fault says "hello" from
my monitor :-(
I hope that you can understand more or less what I am trying to implement. I suppose that what I want is
achieved in a very different way from what I'm trying, so I would really be very thankful if you can give
some hints about the correct way to do this or any url to a good tutorial that explains this situation.
Thank you very much for your attention!!!
Fran
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]