[pygtk] gtk.Notebook
Seltzer
squabbit7 at gmail.com
Tue Jan 8 05:11:04 WST 2008
if using PyGTK 2.4, maybe try moving your connect down further, and sending
the index that append_page returns
to your handler. something like...
...
page =3D self.mdi_book.append_page(scroller,hbox)
btn.connect('clicked', self.on_close_btn, page)
...
def on_close_btn(self, widget,data):
do_stuff_with_data
hope it helps.
felix
On Jan 6, 2008 6:19 PM, johnthawk at excite.com <johnthawk at excite.com> wrote:
>
> In gtk notebook page_num(child) being a widget
> Returns : the index of the page containing child, or -1
>
> So here is the problem:
>
> Added button to tab for close so I need the page the button is on since
> the
> button grabs focus rather than the tab. I tried emit back to parent and
> that
> failed to produce anything.
>
> The code segements:
>
> Creation:
>
> #------------------------------------------------------------------------=
--
> def new_page(self, arg, filename):
> self.z =3D self.z + 1
> # create scroller, gtksourceview, buffer and set mime
> scroller =3D gtk.ScrolledWindow()
> scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
> bufferS =3D gtksourceview.SourceBuffer()
> manager =3D gtksourceview.SourceLanguagesManager()
> if arg:
> type =3D gnomevfs.get_mime_type(arg)
> language =3D manager.get_language_from_mime_type(type)
> else:
> language =3D manager.get_language_from_mime_type('text')
> bufferS.set_language(language)
> view =3D gtksourceview.SourceView(bufferS)
> scroller.add(view)
> # set defaults for gtksourceview and buffer
> bufferS.set_highlight(self.HIGHLIGHT)
> bufferS.set_check_brackets(self.CHECK_BRACKETS)
> view.set_show_line_numbers(self.SHOW_LINE_NUMBERS)
> view.set_show_margin(self.SHOW_MARGIN)
> view.set_auto_indent(self.AUTO_INDENT)
> view.set_tabs_width(int(self.TABS_WIDTH))
> view.set_insert_spaces_instead_of_tabs(
> self.INSERT_SPACES_INSTEAD_OF_TABS)
> view.set_margin(int(self.MARGIN))
> # add close button
> image =3D gtk.Image()
> image.set_from_file("data/images/close.png")
> btn =3D gtk.Button()
> btn.add(image)
> btn.connect('clicked',self.on_close_btn)
> #btn.set_size_request(16,16)
> # add label
> hbox =3D gtk.HBox(False,3)
> if not arg:
> self.key[self.z] =3D gtk.Label(filename)
> else:
> self.key[self.z] =3D gtk.Label(filename.rsplit('/',1)[1])
> hbox.add(self.key[self.z])
> hbox.add(btn)
> hbox.show_all()
> # load and set text
> if arg:
> try:
> bufferS.begin_not_undoable_action()
> f =3D open(arg, 'r')
> bufferS.set_text(f.read())
> f.close()
> bufferS.end_not_undoable_action()
> except:
> print 'File Error: '+arg
> else:
> bufferS.set_text('')
> # populate tree
> iter =3D None
> iter =3D self.mod.append(iter)
> if arg:
> self.mod.set(iter,0, arg)
> else:
> self.mod.set(iter,0, filename)
> self.mod.set(iter,1, self.key[self.z].get_text())
> self.mod.set(iter,2, view)
> self.mod.set(iter,3, bufferS)
> self.mod.set(iter,4, self.key[self.z])
> self.view =3D view
> self.bufferS =3D bufferS
> # add page
> page =3D self.mdi_book.append_page(scroller,hbox)
> self.mdi_book.show_all()
> # switch to page
> self.mdi_book.set_current_page(page)
>
> Callbacks:
>
> #-----------------------------------------------------------------------=
---
> def on_close_btn(self, widget):
> page =3D self.mdi_book.page_num(widget)
> print page
>
> #------------------------------------------------------------------------=
--
> def on_close(self, widget):
> p =3D self.mdi_book.get_current_page()
> self.on_update_tree('delete')
> self.mdi_book.remove_page(p)
>
>
>
>
>
> _______________________________________________
> Join Excite! - http://www.excite.com
> The most personalized portal on the Web!
>
>
> _______________________________________________
> pygtk mailing list pygtk at daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.daa.com.au/pipermail/pygtk/attachments/20080107/cb207cd4/at=
tachment.htm
More information about the pygtk
mailing list