Ticket #4272: helpbutton.py.diff
File helpbutton.py.diff, 3.6 KB (added by humitos, 11 years ago) |
---|
-
helpbutton.py
diff --git a/helpbutton.py b/helpbutton.py index 3a4c286..34ddf24 100644
a b from gi.repository import Gdk 25 25 from gi.repository import GObject 26 26 27 27 from sugar3.graphics.toolbutton import ToolButton 28 from sugar3.graphics.palette import ToolInvoker 28 29 from sugar3.graphics.icon import Icon 29 30 from sugar3.graphics import style 30 31 … … class HelpButton(Gtk.ToolItem): 34 35 def __init__(self, **kwargs): 35 36 GObject.GObject.__init__(self) 36 37 37 help_button = ToolButton('toolbar-help')38 help_button.set_tooltip(_('Help'))39 self.add( help_button)38 self.help_button = ToolButton('toolbar-help') 39 self.help_button.set_tooltip(_('Help')) 40 self.add(self.help_button) 40 41 41 self._palette = help_button.get_palette()42 # import epdb;epdb.set_trace() 42 43 43 sw = Gtk.ScrolledWindow() 44 sw.set_size_request(int(Gdk.Screen.width() / 2.8), 45 Gdk.Screen.height() - style.GRID_CELL_SIZE * 3) 46 sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) 44 self._palette_invoker = ToolInvoker() 45 self._palette = None # help_button.get_palette() 46 # self._palette = help_button.get_palette() 47 48 self._palette_invoker.attach_tool(self) 49 self._palette_invoker.props.toggle_palette = True 50 self._palette_invoker.props.lock_palette = True 47 51 48 52 self._max_text_width = int(Gdk.Screen.width() / 3) - 600 53 54 # content of the palette 55 # alignment = Gtk.Alignment() 56 # alignment.props.left 49 57 self._vbox = Gtk.Box() 58 self._vbox.set_border_width(10) 50 59 self._vbox.set_orientation(Gtk.Orientation.VERTICAL) 51 60 self._vbox.set_homogeneous(False) 52 61 53 hbox = Gtk.Box() 54 hbox.pack_start(self._vbox, False, True, 0) 55 56 sw.add_with_viewport(hbox) 57 58 self._palette.set_content(sw) 59 sw.show_all() 62 # self.create_palette() 60 63 61 help_button.connect('clicked', self.__help_button_clicked_cb)64 # help_button.connect('clicked', self.__help_button_clicked_cb) 62 65 63 def __help_button_clicked_cb(self, button):64 self._palette.popup(immediate=True, state=1)66 # def __help_button_clicked_cb(self, button): 67 # self._palette.popup(immediate=True, state=1) 65 68 66 69 def add_section(self, section_text): 67 70 hbox = Gtk.Box() … … class HelpButton(Gtk.ToolItem): 84 87 hbox.add(_icon) 85 88 hbox.show_all() 86 89 self._vbox.pack_start(hbox, False, False, padding=5) 90 91 def create_palette(self): 92 self._palette = self.help_button.get_palette() 93 94 sw = Gtk.ScrolledWindow() 95 sw.set_size_request(int(Gdk.Screen.width() / 2.8), 96 Gdk.Screen.height() - style.GRID_CELL_SIZE * 3) 97 sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) 98 99 hbox = Gtk.Box() 100 hbox.pack_start(self._vbox, False, True, 0) 101 102 sw.add_with_viewport(hbox) 103 104 self._palette.set_content(sw) 105 sw.show_all() 106 return self._palette 107 108 def set_expanded(self, expanded): 109 import logging 110 logging.debug('### set_expanded') 111 if not expanded: 112 self._palette_invoker.notify_popdown() 113 return 114 115 def get_palette_invoker(self): 116 return self._palette_invoker 117 118 def set_palette_invoker(self, palette_invoker): 119 self._palette_invoker.detach() 120 self._palette_invoker = palette_invoker 121 122 palette_invoker = GObject.property( 123 type=object, setter=set_palette_invoker, getter=get_palette_invoker)