Highlight buttons and change menu background to black.
This commit is contained in:
parent
93386a4d8a
commit
6a58df67a0
@ -173,8 +173,8 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
|
|||||||
|
|
||||||
hippo.CanvasBox.__init__(self, **kwargs)
|
hippo.CanvasBox.__init__(self, **kwargs)
|
||||||
|
|
||||||
self.connect('motion-notify-event', self._motion_notify_event_cb)
|
self.connect_after('button-press-event', self._button_press_event_cb)
|
||||||
self.connect('button-press-event', self._button_press_event_cb)
|
self.connect_after('motion-notify-event', self._motion_notify_event_cb)
|
||||||
|
|
||||||
def _clear_buffers(self):
|
def _clear_buffers(self):
|
||||||
cur_buf_key = self._get_current_buffer_key()
|
cur_buf_key = self._get_current_buffer_key()
|
||||||
@ -314,16 +314,16 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
|
|||||||
|
|
||||||
def _button_press_event_cb(self, item, event):
|
def _button_press_event_cb(self, item, event):
|
||||||
item.emit_activated()
|
item.emit_activated()
|
||||||
|
return False
|
||||||
|
|
||||||
def get_popup(self):
|
def get_popup(self):
|
||||||
if self._tooltip:
|
if self._tooltip:
|
||||||
tooltip_popup = Popup()
|
tooltip_popup = Popup()
|
||||||
canvas_text = hippo.CanvasText(text=self._tooltip)
|
canvas_text = hippo.CanvasText(text=self._tooltip)
|
||||||
canvas_text.props.background_color = color.MENU_BACKGROUND.get_int()
|
canvas_text.props.background_color = color.MENU_BACKGROUND.get_int()
|
||||||
canvas_text.props.border_color = color.MENU_BORDER.get_int()
|
|
||||||
canvas_text.props.border = units.points_to_pixels(1)
|
|
||||||
canvas_text.props.color = color.LABEL_TEXT.get_int()
|
canvas_text.props.color = color.LABEL_TEXT.get_int()
|
||||||
canvas_text.props.font_desc = font.DEFAULT.get_pango_desc()
|
canvas_text.props.font_desc = font.DEFAULT.get_pango_desc()
|
||||||
|
canvas_text.props.padding = units.points_to_pixels(5)
|
||||||
tooltip_popup.append(canvas_text)
|
tooltip_popup.append(canvas_text)
|
||||||
|
|
||||||
return tooltip_popup
|
return tooltip_popup
|
||||||
@ -364,7 +364,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
|
|||||||
|
|
||||||
popup.popup(x, y)
|
popup.popup(x, y)
|
||||||
popup.connect('motion-notify-event',
|
popup.connect('motion-notify-event',
|
||||||
self._popup_motion_notify_event_cb)
|
self.popup_motion_notify_event_cb)
|
||||||
popup.connect('action-completed',
|
popup.connect('action-completed',
|
||||||
self._popup_action_completed_cb)
|
self._popup_action_completed_cb)
|
||||||
|
|
||||||
@ -389,17 +389,29 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
|
|||||||
def _motion_notify_event_cb(self, button, event):
|
def _motion_notify_event_cb(self, button, event):
|
||||||
if event.detail == hippo.MOTION_DETAIL_ENTER:
|
if event.detail == hippo.MOTION_DETAIL_ENTER:
|
||||||
self._timeline.play(None, 'popup')
|
self._timeline.play(None, 'popup')
|
||||||
|
self.prelight(enter=True)
|
||||||
elif event.detail == hippo.MOTION_DETAIL_LEAVE:
|
elif event.detail == hippo.MOTION_DETAIL_LEAVE:
|
||||||
if not self._hover_popup:
|
if not self._hover_popup:
|
||||||
self._timeline.play('before_popdown', 'popdown')
|
self._timeline.play('before_popdown', 'popdown')
|
||||||
|
self.prelight(enter=False)
|
||||||
|
return False
|
||||||
|
|
||||||
def _popup_motion_notify_event_cb(self, popup, event):
|
def popup_motion_notify_event_cb(self, popup, event):
|
||||||
if event.detail == hippo.MOTION_DETAIL_ENTER:
|
if event.detail == hippo.MOTION_DETAIL_ENTER:
|
||||||
self._hover_popup = True
|
self._hover_popup = True
|
||||||
self._timeline.play('popup', 'popup')
|
self._timeline.play('popup', 'popup')
|
||||||
|
self.prelight(enter=True)
|
||||||
elif event.detail == hippo.MOTION_DETAIL_LEAVE:
|
elif event.detail == hippo.MOTION_DETAIL_LEAVE:
|
||||||
self._hover_popup = False
|
self._hover_popup = False
|
||||||
self._timeline.play('popdown', 'popdown')
|
self._timeline.play('popdown', 'popdown')
|
||||||
|
self.prelight(enter=False)
|
||||||
|
return False
|
||||||
|
|
||||||
def _popup_action_completed_cb(self, popup):
|
def _popup_action_completed_cb(self, popup):
|
||||||
self.popdown()
|
self.popdown()
|
||||||
|
|
||||||
|
def prelight(self, enter):
|
||||||
|
"""
|
||||||
|
Override this method for adding prelighting behavior.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
@ -12,7 +12,7 @@ _system_colors = {
|
|||||||
'entry-border' : '#D1D1D2',
|
'entry-border' : '#D1D1D2',
|
||||||
'label-text' : '#FFFFFF',
|
'label-text' : '#FFFFFF',
|
||||||
'desktop-background' : '#E2E2E3',
|
'desktop-background' : '#E2E2E3',
|
||||||
'menu-background' : '#414141',
|
'menu-background' : '#000000',
|
||||||
'menu-separator' : '#D1D1D2',
|
'menu-separator' : '#D1D1D2',
|
||||||
'menu-border' : '#D1D1D2',
|
'menu-border' : '#D1D1D2',
|
||||||
'button-normal' : '#FFFFFF',
|
'button-normal' : '#FFFFFF',
|
||||||
|
@ -21,8 +21,8 @@ import gobject
|
|||||||
import hippo
|
import hippo
|
||||||
|
|
||||||
from canvasicon import CanvasIcon
|
from canvasicon import CanvasIcon
|
||||||
from xocolor import XoColor
|
|
||||||
from sugar.graphics import units
|
from sugar.graphics import units
|
||||||
|
from sugar.graphics import color
|
||||||
from sugar import profile
|
from sugar import profile
|
||||||
|
|
||||||
STANDARD_SIZE = 0
|
STANDARD_SIZE = 0
|
||||||
@ -44,16 +44,20 @@ class IconButton(CanvasIcon):
|
|||||||
|
|
||||||
CanvasIcon.__init__(self, cache=True, **kwargs)
|
CanvasIcon.__init__(self, cache=True, **kwargs)
|
||||||
|
|
||||||
self._prelight_color = profile.get_color()
|
if not self.props.fill_color:
|
||||||
self._inactive_color = XoColor('#808080,#424242')
|
self.props.fill_color = color.BUTTON_BACKGROUND_NORMAL
|
||||||
self._normal_color = XoColor('white')
|
if not self.props.stroke_color:
|
||||||
|
self.props.stroke_color = color.BUTTON_NORMAL
|
||||||
|
self.props.background_color = color.BUTTON_BACKGROUND_NORMAL.get_int()
|
||||||
|
|
||||||
if not self.props.xo_color:
|
self._normal_fill_color = self.props.fill_color
|
||||||
self.props.xo_color = self._normal_color
|
self._normal_stroke_color = self.props.stroke_color
|
||||||
|
self._normal_background_color = self.props.background_color
|
||||||
|
|
||||||
self._set_size(STANDARD_SIZE)
|
self._set_size(STANDARD_SIZE)
|
||||||
|
|
||||||
self.connect('button-press-event', self._button_press_event_cb)
|
self.connect('button-press-event',
|
||||||
|
self._icon_button_button_press_event_cb)
|
||||||
|
|
||||||
def _set_size(self, size):
|
def _set_size(self, size):
|
||||||
if size == SMALL_SIZE:
|
if size == SMALL_SIZE:
|
||||||
@ -73,9 +77,13 @@ class IconButton(CanvasIcon):
|
|||||||
elif pspec.name == 'active':
|
elif pspec.name == 'active':
|
||||||
self._active = value
|
self._active = value
|
||||||
if self._active:
|
if self._active:
|
||||||
self.props.xo_color = self._normal_color
|
self.props.fill_color = self._normal_fill_color
|
||||||
|
self.props.stroke_color = self._normal_stroke_color
|
||||||
|
self.props.background_color = self._normal_background_color
|
||||||
else:
|
else:
|
||||||
self.props.xo_color = self._inactive_color
|
self.props.fill_color = color.BUTTON_BACKGROUND_INACTIVE
|
||||||
|
self.props.stroke_color = color.BUTTON_INACTIVE
|
||||||
|
self.props.background_color = color.BUTTON_BACKGROUND_INACTIVE.get_int()
|
||||||
else:
|
else:
|
||||||
CanvasIcon.do_set_property(self, pspec, value)
|
CanvasIcon.do_set_property(self, pspec, value)
|
||||||
|
|
||||||
@ -87,7 +95,17 @@ class IconButton(CanvasIcon):
|
|||||||
else:
|
else:
|
||||||
return CanvasIcon.do_get_property(self, pspec)
|
return CanvasIcon.do_get_property(self, pspec)
|
||||||
|
|
||||||
def _button_press_event_cb(self, widget, event):
|
def _icon_button_button_press_event_cb(self, widget, event):
|
||||||
if self._active:
|
if self._active:
|
||||||
self.emit_activated()
|
self.emit_activated()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def prelight(self, enter):
|
||||||
|
if enter:
|
||||||
|
if self._active:
|
||||||
|
self.props.fill_color = color.BLACK
|
||||||
|
self.props.background_color = color.BLACK.get_int()
|
||||||
|
else:
|
||||||
|
if self._active:
|
||||||
|
self.props.fill_color = self._normal_fill_color
|
||||||
|
self.props.background_color = self._normal_background_color
|
||||||
|
Loading…
Reference in New Issue
Block a user