Hi.
I know I'm coming late to this party, but if you're packing the button  into 
the 
tab, it's a child of that notebook page.  Can't you retrieve  the page you're 
on 
by simply calling gtk_notebook_page_num () with the  button passed in as the 
child during the button's clicked signal  handler?  Then you pass the returned 
page number to  gtk_notebook_remove_page ().  This way you'll always remove the 
correct  page, and it doesn't matter if the user brings that page to the front  
first or not.

Or is there something I've overlooked?
walter



________________________________
From: Bill C <bi...@netspace.net.au>
To: gtk-app-devel-list@gnome.org
Sent: Sun, July 3, 2011 3:54:13 PM
Subject: Re: Help with closing a notebook page (GTK2)

On 04/07/11 06:26, Neil Munro wrote:
> On 3 July 2011 19:31, Thomas  Bollmeier<tbollme...@web.de>  wrote:
>>> ----Ursprüngliche Nachricht-----
>>> Von: "Neil Munro"<neilmu...@gmail.com>
>>> Gesendet: 02.07.2011 23:40:02
>>> An: gtk-app-devel-list@gnome.org
>>> Betreff: Help with closing a notebook page (GTK2)
>>>
>>> Hi, I have used pygtk before so I am familiar with some of the basic
>>> concepts of gtk, but this is my first attempt with an actual gtk+ C
>>> application and I have run into a few issues.
>>>
>>> I have a notebook that I wish to have a close button on the page tabs
>>> that when clicked closes the tabs.
>>>
>>> I know that it's a bit off a faf to do as you don't know the page
>>> prior to the event. So you have to dynamically detect which tab is
>>> being closed by using a tab child widget.
>>>
>>> Now I believe I have done this in code, except it always returns -1
>>> which then firmly tells me I have done something wrong.
>>>
>>> I have attached the code for your reference in the hopes that someone
>>> shall be able to point out my no doubt simple mistake.
>>>
>>> Many thanks in advance,
>>> Neil Munro
>> I faced a similar problem when I wrote an editor for the first version of my 
>>gobjectcreator tool some time ago. It was
>> implemented in PyGTK - nevertheless it should work in C as well. The 
>> solution 
>>may not be elegant but it
>> worked:
>> I registered a handler for the "clicked"-signal of the close button within 
>> the 
>>tab label widget (a GtkHBox).
>> Within the handler implementation I looped over all pages of the notebook 
>> and 
>>checked whether the button instance
>> in the page label was identical to the sender instance of the 
>> "clicked"-signal. 
>>If yes then I had to remove the
>> corresponding page.
>> You can find the code example here:
>>
>>https://github.com/ThomasBollmeier/GObjectCreator/blob/master/gobject_creator/ui/documents_view.py
>>y
>>
>> (see lines 342ff. and 378ff. respectively)
>>
>> Hope that helps.
>>
>> Regards,
>> Thomas
>>
>>
>>
>> ___________________________________________________________
>> Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
>> Toolbar eingebaut! http://produkte.web.de/go/toolbar
>>
> Thanks to this and Bills suggestion the correct page closes, but I
> need to determine a way to re-calculate the page as soon as a tab is
> closed, am sure I will figure something out, but thanks for the
> patience and help!
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Hi Neil

Yes the page numbers can change when a page is closed, so you cant use 
original page numbers directly to switch pages.

I think I redesigned so that I did not use page numbers. Let the user 
switch pages and process the page the user is working with.  Ensure the 
user cant delete pages that are prior to a page you want to reference 
directly.  As Thomas said...  Not totally elegant.

Rgds Bill
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to