LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 05-21-2004, 06:48 AM   #1
elluva
Member
 
Registered: Aug 2003
Location: Belguim, Ostend and Ghent
Distribution: Ubuntu
Posts: 600

Rep: Reputation: 30
GTK tree view/model/selection question


owkay,

I usually program java, but because java is some damned slow and eats up to many resources, I began to do some C programming. I know the basics and created some small apps, but now I am working on a my first GTK app. So be nice to this GTK noob ...

I made window with a GtkTreeView (with a GtkListStore and GtkTreeSelection). I am able to add things to it with a dialog box, but now I'd like to make some function to remove the selected entry in the list.

How should I do this? I noticed the function gtk_tree_selection_get_selected_rows which gives me a GList* but what next? I know I can get the selection paths out of it (which should be just one row since I've set the mode on GTK_SELECTION_SINGLE), but how do you remove those paths from the model?

thanks for all help,
elluva
 
Old 05-21-2004, 10:36 AM   #2
The_Nerd
Member
 
Registered: Aug 2002
Distribution: Debian
Posts: 540

Rep: Reputation: 32
Well... Though I don't remember too well, I have done this before. I think there is a gtk function to remove an item from a tree. Look into the gtk tuts over at www.gtk.org, or try google. If google, do a search for some of the other tree functions, and see if you can find it that way. Keep trying, don't give up, you'll get it.
 
Old 05-21-2004, 10:41 AM   #3
elluva
Member
 
Registered: Aug 2003
Location: Belguim, Ostend and Ghent
Distribution: Ubuntu
Posts: 600

Original Poster
Rep: Reputation: 30
I know, I won't give up. It really isn't in the API. I don't know much about C and this probably isn't right, but could it be that you just have to free that path and then send a signal to the model (there is a function for that)?
 
Old 05-21-2004, 10:42 AM   #4
The_Nerd
Member
 
Registered: Aug 2002
Distribution: Debian
Posts: 540

Rep: Reputation: 32
Try looking into:

gtk_tree_remove_items ();

Or:

g_list_remove ()

I did a quick search to find these...
 
Old 05-21-2004, 10:43 AM   #5
elluva
Member
 
Registered: Aug 2003
Location: Belguim, Ostend and Ghent
Distribution: Ubuntu
Posts: 600

Original Poster
Rep: Reputation: 30
Nope, I wasn't using the deprecated GtkTree object, but the MVC-based GtkTreeView and GtkListStore. Maybee someone can help me out... plz

Last edited by elluva; 05-21-2004 at 10:53 AM.
 
Old 05-21-2004, 10:51 AM   #6
The_Nerd
Member
 
Registered: Aug 2002
Distribution: Debian
Posts: 540

Rep: Reputation: 32
Got it! Here:

Code:
GtkCTreeNode *is_node(GtkCTree *ctree, GtkCTreeNode *node, char *name)
{
	gchar *temp;
	GtkCTreeNode *sibling;

	if (node==NULL) return rootNode;

	sibling=GTK_CTREE_ROW(node)->children;
	temp=(gchar *)malloc(MAX_FILE_LEN);
	if (temp==NULL) 
	{
		printf("\ncouldn't allocate memory!");
		return NULL;
	}

	while(sibling!=NULL)
	{
		gtk_ctree_get_node_info(GTK_CTREE(ctree), GTK_CTREE_NODE(sibling), &temp, NULL, NULL, NULL, NULL, NULL, NULL, NULL);	
		if (strcmp((char *)temp, name)==0) return sibling;
		//printf("\nName: %s", temp);
		sibling=GTK_CTREE_ROW(sibling)->sibling;
	}
return NULL;
}

node = is_node(Tree, parent, "item1");
gtk_ctree_remove_node(GTK_CTREE(Tree), node);
This is the code I used to remove a item from a tree by name This might help you though.

Btw, this is Gtk+-1.2
 
Old 05-21-2004, 10:55 AM   #7
elluva
Member
 
Registered: Aug 2003
Location: Belguim, Ostend and Ghent
Distribution: Ubuntu
Posts: 600

Original Poster
Rep: Reputation: 30
oops, posted at the same time... well I didn't use Gtk+-1.2 but Gtk+-2 so I can't really use this. Sorry, i appreciate your aswer.
 
Old 05-21-2004, 01:59 PM   #8
elluva
Member
 
Registered: Aug 2003
Location: Belguim, Ostend and Ghent
Distribution: Ubuntu
Posts: 600

Original Poster
Rep: Reputation: 30
owkay, I found the answer by googling to it, for everyone that has the same question:
http://scentric.net/tutorial/sec-tre...emove-row.html
 
Old 05-22-2004, 12:19 PM   #9
The_Nerd
Member
 
Registered: Aug 2002
Distribution: Debian
Posts: 540

Rep: Reputation: 32
Thumbs up

 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
can't seam to get tree view on LAM paul_mat Linux - Software 0 11-15-2005 12:17 AM
tree view as default nawin_g Linux - Newbie 7 11-09-2005 04:28 PM
source code for tree view ambitionless Programming 0 09-13-2004 09:39 AM
Changing the default view to tree in KDE3 thrtnastrx Linux - Newbie 2 07-25-2002 09:56 AM
tree view glock19 Linux - General 2 01-30-2002 11:41 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 12:05 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration