Fix review issues
This commit is contained in:
parent
e03fd4ddde
commit
a2f20f39ff
@ -17,33 +17,30 @@ box.pack_start(toolbar, False)
|
||||
text_view = gtk.TextView()
|
||||
box.pack_start(text_view)
|
||||
|
||||
def echo(button):
|
||||
def echo(button, label):
|
||||
if not button.props.active:
|
||||
return
|
||||
text_view.props.buffer.props.text += "\n" + button.props.tooltip
|
||||
text_view.props.buffer.props.text += "\n" + label
|
||||
|
||||
# RadioMenuButton
|
||||
|
||||
palette = RadioPalette()
|
||||
|
||||
group = RadioToolButton(
|
||||
icon_name='document-open',
|
||||
tooltip='menu.document-open')
|
||||
group.connect('clicked', lambda button: echo(button))
|
||||
icon_name='document-open')
|
||||
group.connect('clicked', lambda button: echo(button, 'document-open'))
|
||||
palette.append(group, 'menu.document-open')
|
||||
|
||||
button = RadioToolButton(
|
||||
icon_name='document-save',
|
||||
group=group,
|
||||
tooltip='menu.document-save')
|
||||
button.connect('clicked', lambda button: echo(button))
|
||||
group=group)
|
||||
button.connect('clicked', lambda button: echo(button, 'document-save'))
|
||||
palette.append(button, 'menu.document-save')
|
||||
|
||||
button = RadioToolButton(
|
||||
icon_name='document-send',
|
||||
group=group,
|
||||
tooltip='menu.document-send')
|
||||
button.connect('clicked', lambda button: echo(button))
|
||||
group=group)
|
||||
button.connect('clicked', lambda button: echo(button, 'document-send'))
|
||||
palette.append(button, 'menu.document-send')
|
||||
|
||||
button = RadioMenuButton(palette=palette)
|
||||
@ -54,23 +51,20 @@ toolbar.insert(button, -1)
|
||||
palette = RadioPalette()
|
||||
|
||||
group = RadioToolButton(
|
||||
icon_name='document-open',
|
||||
tooltip='menu.document-open')
|
||||
group.connect('clicked', lambda button: echo(button))
|
||||
icon_name='document-open')
|
||||
group.connect('clicked', lambda button: echo(button, 'document-open'))
|
||||
palette.append(group, 'menu.document-open')
|
||||
|
||||
button = RadioToolButton(
|
||||
icon_name='document-save',
|
||||
group=group,
|
||||
tooltip='menu.document-save')
|
||||
button.connect('clicked', lambda button: echo(button))
|
||||
group=group)
|
||||
button.connect('clicked', lambda button: echo(button, 'document-save'))
|
||||
palette.append(button, 'menu.document-save')
|
||||
|
||||
button = RadioToolButton(
|
||||
icon_name='document-send',
|
||||
group=group,
|
||||
tooltip='menu.document-send')
|
||||
button.connect('clicked', lambda button: echo(button))
|
||||
group=group)
|
||||
button.connect('clicked', lambda button: echo(button, 'document-send'))
|
||||
palette.append(button, 'menu.document-send')
|
||||
|
||||
button = RadioToolsButton(palette=palette)
|
||||
|
@ -61,7 +61,7 @@ import dbus
|
||||
import dbus.service
|
||||
import cjson
|
||||
|
||||
from sugar import util
|
||||
from sugar import util
|
||||
from sugar.presence import presenceservice
|
||||
from sugar.activity.activityservice import ActivityService
|
||||
from sugar.activity.namingalert import NamingAlert
|
||||
@ -101,6 +101,12 @@ class ActivityToolbar(gtk.Toolbar):
|
||||
gtk.Toolbar.__init__(self)
|
||||
|
||||
self._activity = activity
|
||||
self._updating_share = False
|
||||
|
||||
activity.connect('shared', self.__activity_shared_cb)
|
||||
activity.connect('joined', self.__activity_shared_cb)
|
||||
activity.connect('notify::max_participants',
|
||||
self.__max_participants_changed_cb)
|
||||
|
||||
if activity.metadata:
|
||||
self.title = gtk.Entry()
|
||||
@ -117,17 +123,66 @@ class ActivityToolbar(gtk.Toolbar):
|
||||
self.insert(separator, -1)
|
||||
separator.show()
|
||||
|
||||
self.share = share_button(activity)
|
||||
self.share = ToolComboBox(label_text=_('Share with:'))
|
||||
self.share.combo.connect('changed', self.__share_changed_cb)
|
||||
self.share.combo.append_item(SCOPE_PRIVATE, _('Private'), 'zoom-home')
|
||||
self.share.combo.append_item(SCOPE_NEIGHBORHOOD, _('My Neighborhood'),
|
||||
'zoom-neighborhood')
|
||||
self.insert(self.share, -1)
|
||||
self.share.show()
|
||||
|
||||
self.keep = keep_button(activity)
|
||||
self._update_share()
|
||||
|
||||
self.keep = ToolButton(tooltip=_('Keep'))
|
||||
client = gconf.client_get_default()
|
||||
color = XoColor(client.get_string('/desktop/sugar/user/color'))
|
||||
keep_icon = Icon(icon_name='document-save', xo_color=color)
|
||||
self.keep.set_icon_widget(keep_icon)
|
||||
keep_icon.show()
|
||||
self.keep.props.accelerator = '<Ctrl>S'
|
||||
self.keep.connect('clicked', self.__keep_clicked_cb)
|
||||
self.insert(self.keep, -1)
|
||||
self.keep.show()
|
||||
|
||||
self.stop = stop_button(activity)
|
||||
self.stop = ToolButton('activity-stop', tooltip=_('Stop'))
|
||||
self.stop.props.accelerator = '<Ctrl>Q'
|
||||
self.stop.connect('clicked', self.__stop_clicked_cb)
|
||||
self.insert(self.stop, -1)
|
||||
self.stop.show()
|
||||
|
||||
self._update_title_sid = None
|
||||
|
||||
def _update_share(self):
|
||||
self._updating_share = True
|
||||
|
||||
if self._activity.props.max_participants == 1:
|
||||
self.share.hide()
|
||||
|
||||
if self._activity.get_shared():
|
||||
self.share.set_sensitive(False)
|
||||
self.share.combo.set_active(1)
|
||||
else:
|
||||
self.share.set_sensitive(True)
|
||||
self.share.combo.set_active(0)
|
||||
|
||||
self._updating_share = False
|
||||
|
||||
def __share_changed_cb(self, combo):
|
||||
if self._updating_share:
|
||||
return
|
||||
|
||||
model = self.share.combo.get_model()
|
||||
it = self.share.combo.get_active_iter()
|
||||
(scope, ) = model.get(it, 0)
|
||||
if scope == SCOPE_NEIGHBORHOOD:
|
||||
self._activity.share()
|
||||
|
||||
def __keep_clicked_cb(self, button):
|
||||
self._activity.copy()
|
||||
|
||||
def __stop_clicked_cb(self, button):
|
||||
self._activity.close()
|
||||
|
||||
def __jobject_updated_cb(self, jobject):
|
||||
self.title.set_text(jobject['title'])
|
||||
|
||||
@ -160,9 +215,15 @@ class ActivityToolbar(gtk.Toolbar):
|
||||
self.insert(tool_item, -1)
|
||||
tool_item.show()
|
||||
|
||||
def __activity_shared_cb(self, activity):
|
||||
self._update_share()
|
||||
|
||||
def __max_participants_changed_cb(self, activity, pspec):
|
||||
self._update_share()
|
||||
|
||||
class EditToolbar(gtk.Toolbar):
|
||||
"""Provides the standard edit toolbar for Activities.
|
||||
|
||||
|
||||
Members:
|
||||
undo -- the undo button
|
||||
redo -- the redo button
|
||||
@ -196,20 +257,30 @@ class EditToolbar(gtk.Toolbar):
|
||||
def __init__(self):
|
||||
gtk.Toolbar.__init__(self)
|
||||
|
||||
self.undo = undo_button()
|
||||
self.undo = ToolButton('edit-undo')
|
||||
self.undo.set_tooltip(_('Undo'))
|
||||
self.insert(self.undo, -1)
|
||||
self.undo.show()
|
||||
|
||||
self.redo = redo_button()
|
||||
self.redo = ToolButton('edit-redo')
|
||||
self.redo.set_tooltip(_('Redo'))
|
||||
self.insert(self.redo, -1)
|
||||
self.redo.show()
|
||||
|
||||
self.separator = separator()
|
||||
self.separator = gtk.SeparatorToolItem()
|
||||
self.separator.set_draw(True)
|
||||
self.insert(self.separator, -1)
|
||||
self.separator.show()
|
||||
|
||||
self.copy = copy_button()
|
||||
self.copy = ToolButton('edit-copy')
|
||||
self.copy.set_tooltip(_('Copy'))
|
||||
self.insert(self.copy, -1)
|
||||
self.copy.show()
|
||||
|
||||
self.paste = paste_button()
|
||||
self.paste = ToolButton('edit-paste')
|
||||
self.paste.set_tooltip(_('Paste'))
|
||||
self.insert(self.paste, -1)
|
||||
self.paste.show()
|
||||
|
||||
class ActivityToolbox(Toolbox):
|
||||
"""Creates the Toolbox for the Activity
|
||||
@ -962,6 +1033,126 @@ class Activity(Window, gtk.Container):
|
||||
# DEPRECATED
|
||||
_shared_activity = property(lambda self: self.shared_activity, None)
|
||||
|
||||
class ActivityToolbarButton(ToolbarButton):
|
||||
def __init__(self, activity, **kwargs):
|
||||
from jarabe.journal.misc import get_icon_name
|
||||
|
||||
toolbar = ActivityToolbar(activity)
|
||||
toolbar.stop.hide()
|
||||
|
||||
ToolbarButton.__init__(self, page=toolbar, **kwargs)
|
||||
|
||||
self.activity = activity
|
||||
|
||||
client = gconf.client_get_default()
|
||||
color = XoColor(client.get_string('/desktop/sugar/user/color'))
|
||||
icon = Icon(file=get_icon_name(activity.metadata), xo_color=color)
|
||||
icon.show()
|
||||
self.set_icon_widget(icon)
|
||||
|
||||
def expander(self):
|
||||
separator = gtk.SeparatorToolItem()
|
||||
separator.props.draw = False
|
||||
separator.set_expand(True)
|
||||
separator.show()
|
||||
return separator
|
||||
|
||||
def stop_button(self, **kwargs):
|
||||
stop = ToolButton('activity-stop', tooltip=_('Stop'), **kwargs)
|
||||
stop.props.accelerator = '<Ctrl>Q'
|
||||
stop.connect('clicked', self.__stop_button_clicked_cb)
|
||||
stop.show()
|
||||
return stop
|
||||
|
||||
def __stop_button_clicked_cb(self, button):
|
||||
self.activity.close()
|
||||
|
||||
def undo_button(self, **kwargs):
|
||||
undo = ToolButton('edit-undo', **kwargs)
|
||||
undo.set_tooltip(_('Undo'))
|
||||
undo.show()
|
||||
return undo
|
||||
|
||||
def redo_button(self, **kwargs):
|
||||
redo = ToolButton('edit-redo', **kwargs)
|
||||
redo.set_tooltip(_('Redo'))
|
||||
redo.show()
|
||||
return redo
|
||||
|
||||
def separator(self, **kwargs):
|
||||
separator = gtk.SeparatorToolItem(**kwargs)
|
||||
separator.set_draw(True)
|
||||
separator.show()
|
||||
return separator
|
||||
|
||||
def copy_button(self, **kwargs):
|
||||
copy = ToolButton('edit-copy', **kwargs)
|
||||
copy.set_tooltip(_('Copy'))
|
||||
copy.show()
|
||||
return copy
|
||||
|
||||
def paste_button(self, **kwargs):
|
||||
paste = ToolButton('edit-paste', **kwargs)
|
||||
paste.set_tooltip(_('Paste'))
|
||||
paste.show()
|
||||
return paste
|
||||
|
||||
def share_button(self):
|
||||
palette = RadioPalette()
|
||||
|
||||
private = RadioToolButton(
|
||||
icon_name='zoom-home')
|
||||
palette.append(private, _('Private'))
|
||||
|
||||
neighborhood = RadioToolButton(
|
||||
icon_name='zoom-neighborhood',
|
||||
group=private)
|
||||
neighborhood_handle = neighborhood.connect('clicked',
|
||||
self.__neighborhood_clicked_cb)
|
||||
palette.append(neighborhood, _('My Neighborhood'))
|
||||
|
||||
self.activity.connect('shared', self.__update_share)
|
||||
self.activity.connect('joined', self.__update_share)
|
||||
|
||||
share = RadioMenuButton(palette=palette)
|
||||
share.show()
|
||||
|
||||
return share
|
||||
|
||||
def __neighborhood_clicked_cb(self, button):
|
||||
self.activity.share()
|
||||
|
||||
def __update_share(self, activity):
|
||||
neighborhood.handler_block(neighborhood_handle)
|
||||
try:
|
||||
if self.activity.get_shared():
|
||||
private.props.sensitive = False
|
||||
neighborhood.props.sensitive = False
|
||||
neighborhood.props.active = True
|
||||
else:
|
||||
private.props.sensitive = True
|
||||
neighborhood.props.sensitive = True
|
||||
private.props.active = True
|
||||
finally:
|
||||
neighborhood.handler_unblock(neighborhood_handle)
|
||||
|
||||
def keep_button(self, **kwargs):
|
||||
client = gconf.client_get_default()
|
||||
color = XoColor(client.get_string('/desktop/sugar/user/color'))
|
||||
keep_icon = Icon(icon_name='document-save', xo_color=color)
|
||||
keep_icon.show()
|
||||
|
||||
keep = ToolButton(tooltip=_('Keep'), **kwargs)
|
||||
keep.set_icon_widget(keep_icon)
|
||||
keep.props.accelerator = '<Ctrl>S'
|
||||
keep.connect('clicked', self.__keep_button_clicked)
|
||||
keep.show()
|
||||
|
||||
return keep
|
||||
|
||||
def __keep_button_clicked(self, button):
|
||||
self.activity.copy()
|
||||
|
||||
_session = None
|
||||
|
||||
def _get_session():
|
||||
@ -975,7 +1166,7 @@ def _get_session():
|
||||
def get_bundle_name():
|
||||
"""Return the bundle name for the current process' bundle"""
|
||||
return os.environ['SUGAR_BUNDLE_NAME']
|
||||
|
||||
|
||||
def get_bundle_path():
|
||||
"""Return the bundle path for the current process' bundle"""
|
||||
return os.environ['SUGAR_BUNDLE_PATH']
|
||||
@ -993,113 +1184,3 @@ def show_object_in_journal(object_id):
|
||||
obj = bus.get_object(J_DBUS_SERVICE, J_DBUS_PATH)
|
||||
journal = dbus.Interface(obj, J_DBUS_INTERFACE)
|
||||
journal.ShowObject(object_id)
|
||||
|
||||
def toolbar(activity):
|
||||
from jarabe.journal.misc import get_icon_name
|
||||
|
||||
toolbar = ActivityToolbar(activity)
|
||||
toolbar.stop.hide()
|
||||
activity_button = ToolbarButton(page=toolbar)
|
||||
activity_button.show()
|
||||
|
||||
client = gconf.client_get_default()
|
||||
color = XoColor(client.get_string('/desktop/sugar/user/color'))
|
||||
icon = Icon(file=get_icon_name(activity.metadata), xo_color=color)
|
||||
icon.show()
|
||||
activity_button.set_icon_widget(icon)
|
||||
|
||||
return activity_button
|
||||
|
||||
def expander():
|
||||
separator = gtk.SeparatorToolItem()
|
||||
separator.props.draw = False
|
||||
separator.set_expand(True)
|
||||
separator.show()
|
||||
return separator
|
||||
|
||||
def stop_button(activity, **kwargs):
|
||||
stop = ToolButton('activity-stop', tooltip=_('Stop'), **kwargs)
|
||||
stop.props.accelerator = '<Ctrl>Q'
|
||||
stop.connect('clicked', lambda button: activity.close())
|
||||
stop.show()
|
||||
return stop
|
||||
|
||||
def undo_button(**kwargs):
|
||||
undo = ToolButton('edit-undo', **kwargs)
|
||||
undo.set_tooltip(_('Undo'))
|
||||
undo.show()
|
||||
return undo
|
||||
|
||||
def redo_button(**kwargs):
|
||||
redo = ToolButton('edit-redo', **kwargs)
|
||||
redo.set_tooltip(_('Redo'))
|
||||
redo.show()
|
||||
return redo
|
||||
|
||||
def separator(**kwargs):
|
||||
separator = gtk.SeparatorToolItem(**kwargs)
|
||||
separator.set_draw(True)
|
||||
separator.show()
|
||||
return separator
|
||||
|
||||
def copy_button(**kwargs):
|
||||
copy = ToolButton('edit-copy', **kwargs)
|
||||
copy.set_tooltip(_('Copy'))
|
||||
copy.show()
|
||||
return copy
|
||||
|
||||
def paste_button(**kwargs):
|
||||
paste = ToolButton('edit-paste', **kwargs)
|
||||
paste.set_tooltip(_('Paste'))
|
||||
paste.show()
|
||||
return paste
|
||||
|
||||
def share_button(activity, **kwargs):
|
||||
palette = RadioPalette()
|
||||
|
||||
private = RadioToolButton(
|
||||
icon_name='zoom-home')
|
||||
palette.append(private, _('Private'))
|
||||
|
||||
neighborhood = RadioToolButton(
|
||||
icon_name='zoom-neighborhood',
|
||||
group=private)
|
||||
neighborhood_handle = neighborhood.connect('clicked',
|
||||
lambda button: activity.share())
|
||||
palette.append(neighborhood, _('My Neighborhood'))
|
||||
|
||||
def update_share():
|
||||
neighborhood.handler_block(neighborhood_handle)
|
||||
try:
|
||||
if activity.get_shared():
|
||||
private.props.sensitive = False
|
||||
neighborhood.props.sensitive = False
|
||||
neighborhood.props.active = True
|
||||
else:
|
||||
private.props.sensitive = True
|
||||
neighborhood.props.sensitive = True
|
||||
private.props.active = True
|
||||
finally:
|
||||
neighborhood.handler_unblock(neighborhood_handle)
|
||||
|
||||
activity.connect('shared', lambda activity: update_share())
|
||||
activity.connect('joined', lambda activity: update_share())
|
||||
|
||||
share = RadioMenuButton(palette=palette)
|
||||
share.show()
|
||||
|
||||
return share
|
||||
|
||||
def keep_button(activity, **kwargs):
|
||||
client = gconf.client_get_default()
|
||||
color = XoColor(client.get_string('/desktop/sugar/user/color'))
|
||||
keep_icon = Icon(icon_name='document-save', xo_color=color)
|
||||
keep_icon.show()
|
||||
|
||||
keep = ToolButton(tooltip=_('Keep'), **kwargs)
|
||||
keep.set_icon_widget(keep_icon)
|
||||
keep.props.accelerator = '<Ctrl>S'
|
||||
keep.connect('clicked', lambda button: activity.copy())
|
||||
keep.show()
|
||||
|
||||
return keep
|
||||
|
@ -24,7 +24,7 @@ from sugar.graphics import style
|
||||
from sugar.graphics.toolbutton import ToolButton
|
||||
from sugar.graphics.palette import Palette
|
||||
|
||||
class RadioPaletteButton(ToolButton):
|
||||
class RadioMenuButton(ToolButton):
|
||||
def __init__(self, **kwargs):
|
||||
ToolButton.__init__(self, **kwargs)
|
||||
self.selected_button = None
|
||||
@ -39,10 +39,7 @@ class RadioPaletteButton(ToolButton):
|
||||
return
|
||||
self.props.palette.update_button()
|
||||
|
||||
class RadioMenuButton(RadioPaletteButton):
|
||||
def __init__(self, **kwargs):
|
||||
RadioPaletteButton.__init__(self, **kwargs)
|
||||
|
||||
# We use do_clicked to have a chance to override it in RadioToolsButton
|
||||
def do_clicked(self):
|
||||
if not self.palette:
|
||||
return
|
||||
@ -58,22 +55,21 @@ class RadioMenuButton(RadioPaletteButton):
|
||||
return
|
||||
|
||||
if self.palette.is_up():
|
||||
type = gtk.ARROW_DOWN
|
||||
else:
|
||||
type = gtk.ARROW_UP
|
||||
else:
|
||||
type = gtk.ARROW_DOWN
|
||||
|
||||
a = self.allocation
|
||||
alloc = self.allocation
|
||||
x = alloc.x + alloc.width / 2 - style.TOOLBAR_ARROW_SIZE / 2
|
||||
y = alloc.y + alloc.height - int(style.TOOLBAR_ARROW_SIZE * .85)
|
||||
self.get_style().paint_arrow(event.window,
|
||||
gtk.STATE_NORMAL, gtk.SHADOW_IN, event.area, self,
|
||||
gtk.STATE_NORMAL, gtk.SHADOW_NONE, event.area, self,
|
||||
None, type, True,
|
||||
a.x + a.width/2 - style.TOOLBAR_ARROW_SIZE/2,
|
||||
a.y + a.height - style.TOOLBAR_ARROW_SIZE - \
|
||||
style._FOCUS_LINE_WIDTH,
|
||||
style.TOOLBAR_ARROW_SIZE, style.TOOLBAR_ARROW_SIZE)
|
||||
x, y, style.TOOLBAR_ARROW_SIZE, style.TOOLBAR_ARROW_SIZE)
|
||||
|
||||
class RadioToolsButton(RadioPaletteButton):
|
||||
class RadioToolsButton(RadioMenuButton):
|
||||
def __init__(self, **kwargs):
|
||||
RadioPaletteButton.__init__(self, **kwargs)
|
||||
RadioMenuButton.__init__(self, **kwargs)
|
||||
|
||||
def do_clicked(self):
|
||||
if not self.selected_button:
|
||||
@ -84,26 +80,26 @@ class RadioPalette(Palette):
|
||||
def __init__(self, **kwargs):
|
||||
Palette.__init__(self, **kwargs)
|
||||
|
||||
self.top = gtk.HBox()
|
||||
self.top.show()
|
||||
self.set_content(self.top)
|
||||
self.button_box = gtk.HBox()
|
||||
self.button_box.show()
|
||||
self.set_content(self.button_box)
|
||||
|
||||
def append(self, button, label):
|
||||
children = self.top.get_children()
|
||||
children = self.button_box.get_children()
|
||||
|
||||
# palette's button should not have sub-palettes
|
||||
button.palette = None
|
||||
if button.palette is not None:
|
||||
raise RuntimeError("Palette's button should not have sub-palettes")
|
||||
|
||||
button.show()
|
||||
button.connect('clicked', self.__clicked_cb)
|
||||
self.top.pack_start(button, fill=False)
|
||||
self.button_box.pack_start(button, fill=False)
|
||||
button.__palette_label = label
|
||||
|
||||
if not children:
|
||||
self.__clicked_cb(button, True)
|
||||
|
||||
def update_button(self):
|
||||
for i in self.top.get_children():
|
||||
for i in self.button_box.get_children():
|
||||
self.__clicked_cb(i, True)
|
||||
|
||||
def __clicked_cb(self, button, quiet=False):
|
||||
@ -114,8 +110,11 @@ class RadioPalette(Palette):
|
||||
if not quiet:
|
||||
self.popdown(immediate=True)
|
||||
|
||||
parent = self.invoker and self.invoker.parent
|
||||
if not isinstance(parent, RadioPaletteButton):
|
||||
if self.invoker is not None:
|
||||
parent = self.invoker.parent
|
||||
else:
|
||||
parent = None
|
||||
if not isinstance(parent, RadioMenuButton):
|
||||
return
|
||||
|
||||
parent.set_icon(button.props.icon_name)
|
||||
|
@ -132,4 +132,4 @@ COLOR_TEXT_FIELD_GREY = Color('#E5E5E5')
|
||||
|
||||
PALETTE_CURSOR_DISTANCE = zoom(10)
|
||||
|
||||
TOOLBAR_ARROW_SIZE = 8
|
||||
TOOLBAR_ARROW_SIZE = zoom(24)
|
||||
|
@ -88,9 +88,9 @@ class ToolbarButton(ToolButton):
|
||||
if not self.expanded or self.palette and self.palette.is_up():
|
||||
ToolButton.do_expose_event(self, event)
|
||||
if self.palette and self.palette.is_up():
|
||||
_paint_arrow(self, event, gtk.ARROW_DOWN)
|
||||
else:
|
||||
_paint_arrow(self, event, gtk.ARROW_UP)
|
||||
else:
|
||||
_paint_arrow(self, event, gtk.ARROW_DOWN)
|
||||
return
|
||||
|
||||
alloc = self.allocation
|
||||
@ -107,7 +107,7 @@ class ToolbarButton(ToolButton):
|
||||
alloc.width - style._FOCUS_LINE_WIDTH*2, alloc.height)
|
||||
|
||||
gtk.ToolButton.do_expose_event(self, event)
|
||||
_paint_arrow(self, event, gtk.ARROW_DOWN)
|
||||
_paint_arrow(self, event, gtk.ARROW_UP)
|
||||
|
||||
class Toolbar(gtk.VBox):
|
||||
def __init__(self, padding=style.TOOLBOX_HORIZONTAL_PADDING):
|
||||
@ -394,10 +394,11 @@ def _align(box_class, widget):
|
||||
return box
|
||||
|
||||
def _paint_arrow(widget, event, type):
|
||||
a = widget.allocation
|
||||
alloc = widget.allocation
|
||||
x = alloc.x + alloc.width / 2 - style.TOOLBAR_ARROW_SIZE / 2
|
||||
y = alloc.y + alloc.height - int(style.TOOLBAR_ARROW_SIZE * .85)
|
||||
|
||||
widget.get_style().paint_arrow(event.window,
|
||||
gtk.STATE_NORMAL, gtk.SHADOW_IN, event.area, widget,
|
||||
gtk.STATE_NORMAL, gtk.SHADOW_NONE, event.area, widget,
|
||||
None, type, True,
|
||||
a.x + a.width/2 - style.TOOLBAR_ARROW_SIZE/2,
|
||||
a.y + a.height - style.TOOLBAR_ARROW_SIZE - style._FOCUS_LINE_WIDTH,
|
||||
style.TOOLBAR_ARROW_SIZE, style.TOOLBAR_ARROW_SIZE)
|
||||
x, y, style.TOOLBAR_ARROW_SIZE, style.TOOLBAR_ARROW_SIZE)
|
||||
|
Loading…
Reference in New Issue
Block a user