Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-07-13 03:11:39 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-07-13 03:11:39 (GMT)
commit165b9e1e05a82a43dc077383979aedc24e474f28 (patch)
tree0107eed4ee1abdad4c52bf2ce87b1369a371c05c
parent5d2c5b98fff34eed18f7aede574fe2eeea8cd664 (diff)
Provide fast access to all sub-widgets in Toolbar
-rw-r--r--examples/toolbar.py2
-rw-r--r--src/sugar/graphics/toolbar.py67
2 files changed, 40 insertions, 29 deletions
diff --git a/examples/toolbar.py b/examples/toolbar.py
index 66c09f0..6150be3 100644
--- a/examples/toolbar.py
+++ b/examples/toolbar.py
@@ -46,5 +46,7 @@ tollbarbutton_4 = ToolbarButton(
icon_name='document-save')
toolbar.top.insert(tollbarbutton_4, -1)
+print [i.props.page for i in toolbar.subs]
+
window.show_all()
gtk.main()
diff --git a/src/sugar/graphics/toolbar.py b/src/sugar/graphics/toolbar.py
index c675bf9..3ae1bb2 100644
--- a/src/sugar/graphics/toolbar.py
+++ b/src/sugar/graphics/toolbar.py
@@ -115,74 +115,84 @@ class Toolbar(gtk.VBox):
def __init__(self, padding=style.TOOLBOX_HORIZONTAL_PADDING):
gtk.VBox.__init__(self)
- self._top = gtk.Toolbar()
- self._top.owner = self
+ self.__top = gtk.Toolbar()
+ self.__top.owner = self
- top_widget = _align(gtk.EventBox, self._top)
+ top_widget = _align(gtk.EventBox, self.__top)
self.pack_start(top_widget)
self.props.padding = padding
self.modify_bg(gtk.STATE_NORMAL,
style.COLOR_TOOLBAR_GREY.get_gdk_color())
- self._notebook = gtk.Notebook()
- self._notebook.set_show_border(False)
- self._notebook.set_show_tabs(False)
- self._notebook.show()
+ self.__notebook = gtk.Notebook()
+ self.__notebook.set_show_border(False)
+ self.__notebook.set_show_tabs(False)
+ self.__notebook.show()
- self._notebook.connect('notify::page', lambda notebook, pspec:
+ self.__notebook.connect('notify::page', lambda notebook, pspec:
self.emit('current-toolbar-changed', notebook.props.page))
- self._top.connect('remove', self._remove_cb)
+ self.__top.connect('remove', self.__remove_cb)
- top = property(lambda self: self._top)
+ top = property(lambda self: self.__top)
def get_padding(self):
- return self._top.parent.props.left_padding
+ return self.__top.parent.props.left_padding
def set_padding(self, pad):
- self._top.parent.set_padding(0, 0, pad, pad)
+ self.__top.parent.set_padding(0, 0, pad, pad)
padding = gobject.property(type=object,
getter=get_padding, setter=set_padding)
+ def get_subs(self):
+ out = []
+ for i in range(self.top.get_n_items()):
+ page = self.top.get_nth_item(i)
+ if isinstance(page, ToolbarButton):
+ out.append(page)
+ return out
+
+ subs = property(get_subs)
+
def modify_bg(self, state, color):
if state == gtk.STATE_NORMAL:
self._bg = color
- self._top.parent.parent.modify_bg(state, color)
- self._top.modify_bg(state, color)
+ self.__top.parent.parent.modify_bg(state, color)
+ self.__top.modify_bg(state, color)
- def _remove_cb(self, sender, widget):
+ def __remove_cb(self, sender, widget):
if not isinstance(widget, ToolbarButton):
return
- page_no = self._notebook.page_num(widget._page)
+ page_no = self.__notebook.page_num(widget._page)
if page_no != -1:
- self._notebook.remove_page(page_no)
+ self.__notebook.remove_page(page_no)
if widget.palette:
widget.palette.popdown(immediate=True)
def _expanded_page(self):
- if self._notebook.parent is None:
+ if self.__notebook.parent is None:
return None
- page_no = self._notebook.get_current_page()
- return self._notebook.get_nth_page(page_no)
+ page_no = self.__notebook.get_current_page()
+ return self.__notebook.get_nth_page(page_no)
def _shrink_page(self, page):
- page_no = self._notebook.page_num(page)
+ page_no = self.__notebook.page_num(page)
if page_no == -1:
return
- self._notebook.remove_page(page_no)
- self.remove(self._notebook)
+ self.__notebook.remove_page(page_no)
+ self.remove(self.__notebook)
def _expand_page(self, page):
- for i in range(self._notebook.get_n_pages()):
- self._notebook.remove_page(0)
+ for i in range(self.__notebook.get_n_pages()):
+ self.__notebook.remove_page(0)
_setup_page(page, self._bg, self.props.padding)
- self._notebook.append_page(page)
+ self.__notebook.append_page(page)
- if self._notebook.parent is None:
- self.pack_start(self._notebook)
+ if self.__notebook.parent is None:
+ self.pack_start(self.__notebook)
class _Box(gtk.EventBox):
def __init__(self):
@@ -284,7 +294,6 @@ class _Palette(gtk.Window):
#if self.window:
# self.window.set_accept_focus(accept_focus)
-
def popup(self, immediate=False):
self._popdown_anim.stop()