本文整理汇总了Python中sugar3.graphics.toolbarbox.ToolbarButton.connect方法的典型用法代码示例。如果您正苦于以下问题:Python ToolbarButton.connect方法的具体用法?Python ToolbarButton.connect怎么用?Python ToolbarButton.connect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sugar3.graphics.toolbarbox.ToolbarButton
的用法示例。
在下文中一共展示了ToolbarButton.connect方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add_page
# 需要导入模块: from sugar3.graphics.toolbarbox import ToolbarButton [as 别名]
# 或者: from sugar3.graphics.toolbarbox.ToolbarButton import connect [as 别名]
def add_page(self, ebook_reader_tab_instance):
# Add the "content" for the section.
tab_name = ebook_reader_tab_instance.get_tab_label()
tab_widget = ebook_reader_tab_instance.get_widget_to_attach_notebook_tab()
tab_toolbar = ebook_reader_tab_instance.get_tab_toolbar()
if tab_toolbar is not None:
tab_widget.pack_start(tab_toolbar, False, False, 0)
tab_widget.reorder_child(tab_toolbar, 0)
self._tab_toolbars_list.append(tab_toolbar)
self.notebook.add_page(tab_name, tab_widget)
# Add the "(secondary) toolbar" for the section.
icon_name = \
ebook_reader_tab_instance.get_tab_toolbar_icon_name()
toolbar_button = ToolbarButton(page=None,
icon_name=icon_name + '-select')
self._toolbar_buttons_list.append(toolbar_button)
toolbar_button.connect('clicked',
self.load_corresponding_page,
ebook_reader_tab_instance.get_pagenum())
ebook_reader_tab_instance.show()
toolbar_button.set_tooltip(tab_name)
self._toolbar_box._toolbar.insert(toolbar_button, -1)
toolbar_button.show()
self._toolbar_box.show_all()
示例2: ReflectActivity
# 需要导入模块: from sugar3.graphics.toolbarbox import ToolbarButton [as 别名]
# 或者: from sugar3.graphics.toolbarbox.ToolbarButton import connect [as 别名]
class ReflectActivity(activity.Activity):
''' An activity for reflecting on one's work '''
def __init__(self, handle):
''' Initialize the toolbar '''
try:
super(ReflectActivity, self).__init__(handle)
except dbus.exceptions.DBusException as e:
_logger.error(str(e))
logging.error('setting reflection data to []')
self.reflection_data = []
self.connect('realize', self.__realize_cb)
self.font_size = 8
self.max_participants = 4
self._setup_toolbars()
color = profile.get_color()
color_stroke = color.get_stroke_color()
color_fill = color.get_fill_color()
lighter = utils.lighter_color([color_stroke, color_fill])
darker = 1 - lighter
if lighter == 0:
self.bg_color = style.Color(color_stroke)
self.fg_color = style.Color(color_fill)
else:
self.bg_color = style.Color(color_fill)
self.fg_color = style.Color(color_stroke)
self.modify_bg(Gtk.StateType.NORMAL, self.bg_color.get_gdk_color())
self.bundle_path = activity.get_bundle_path()
self.tmp_path = os.path.join(activity.get_activity_root(), 'instance')
self.sharing = False
self._copy_entry = None
self._paste_entry = None
self._webkit = None
self._clipboard_text = ''
self._fixed = None
self.initiating = True
if self.shared_activity:
# We're joining
if not self.get_shared():
self.initiating = False
self.busy_cursor()
share_icon = Icon(icon_name='zoom-neighborhood')
self._joined_alert = Alert()
self._joined_alert.props.icon = share_icon
self._joined_alert.props.title = _('Please wait')
self._joined_alert.props.msg = _('Starting connection...')
self.add_alert(self._joined_alert)
# Wait for joined signal
self.connect("joined", self._joined_cb)
self._open_reflect_windows()
self._setup_presence_service()
# Joiners wait to receive data from sharer
# Otherwise, load reflections from local store
if not self.shared_activity:
self.busy_cursor()
GObject.idle_add(self._load_reflections)
def read_file(self, file_path):
fd = open(file_path, 'r')
data = fd.read()
fd.close()
self.reflection_data = json.loads(data)
def write_file(self, file_path):
data = json.dumps(self.reflection_data)
fd = open(file_path, 'w')
fd.write(data)
fd.close()
self.metadata['font_size'] = str(self.font_size)
def _load_reflections(self):
self._find_starred()
self._reflect_window.load(self.reflection_data)
self.reset_cursor()
def _found_obj_id(self, obj_id):
for item in self.reflection_data:
if 'obj_id' in item and item['obj_id'] == obj_id:
return True
return False
def reload_data(self, data):
''' Reload data after sorting or searching '''
#.........这里部分代码省略.........
示例3: OneSupportActivity
# 需要导入模块: from sugar3.graphics.toolbarbox import ToolbarButton [as 别名]
# 或者: from sugar3.graphics.toolbarbox.ToolbarButton import connect [as 别名]
class OneSupportActivity(activity.Activity):
''' An activity for sending bug reports '''
def __init__(self, handle):
''' Initialize the toolbar '''
try:
super(OneSupportActivity, self).__init__(handle)
except dbus.exceptions.DBusException as e:
_logger.error(str(e))
self.connect('realize', self.__realize_cb)
if hasattr(self, 'metadata') and 'font_size' in self.metadata:
self.font_size = int(self.metadata['font_size'])
else:
self.font_size = 8
self.zoom_level = self.font_size / float(len(FONT_SIZES))
_logger.debug('zoom level is %f' % self.zoom_level)
# _check_gconf_settings() # For debugging purposes
self._setup_toolbars()
self.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self.bundle_path = activity.get_bundle_path()
self._copy_entry = None
self._paste_entry = None
self._webkit = None
self._clipboard_text = ''
self._fixed = None
self._notify_transfer_status = False
get_power_manager().inhibit_suspend()
self._launch_task_master()
def can_close(self):
get_power_manager().restore_suspend()
return True
def busy_cursor(self):
self.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.WATCH))
def reset_cursor(self):
self.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR))
def _launch_task_master(self):
# Most things need only be done once
if self._fixed is None:
self._fixed = Gtk.Fixed()
self._fixed.set_size_request(Gdk.Screen.width(),
Gdk.Screen.height())
# Offsets from the bottom of the screen
dy1 = 3 * style.GRID_CELL_SIZE
dy2 = 2 * style.GRID_CELL_SIZE
self._progress_area = Gtk.Alignment.new(0.5, 0, 0, 0)
self._progress_area.set_size_request(Gdk.Screen.width(), -1)
self._fixed.put(self._progress_area, 0, Gdk.Screen.height() - dy2)
self._progress_area.show()
self._button_area = Gtk.Alignment.new(0.5, 0, 0, 0)
self._button_area.set_size_request(Gdk.Screen.width(), -1)
self._fixed.put(self._button_area, 0, Gdk.Screen.height() - dy1)
self._button_area.show()
self._scrolled_window = Gtk.ScrolledWindow()
self._scrolled_window.set_size_request(
Gdk.Screen.width(), Gdk.Screen.height() - dy1)
self._set_scroll_policy()
self._graphics_area = Gtk.Alignment.new(0.5, 0, 0, 0)
self._scrolled_window.add_with_viewport(self._graphics_area)
self._graphics_area.show()
self._fixed.put(self._scrolled_window, 0, 0)
self._scrolled_window.show()
self._task_master = TaskMaster(self)
self._task_master.show()
Gdk.Screen.get_default().connect('size-changed',
self._configure_cb)
self._toolbox.connect('hide', self._resize_hide_cb)
self._toolbox.connect('show', self._resize_show_cb)
self._task_master.set_events(Gdk.EventMask.KEY_PRESS_MASK)
self._task_master.connect('key_press_event',
self._task_master.keypress_cb)
self._task_master.set_can_focus(True)
self._task_master.grab_focus()
self.set_canvas(self._fixed)
self._fixed.show()
self._task_master.task_master()
def reset_scrolled_window_adjustments(self):
adj = self._scrolled_window.get_hadjustment()
if adj is not None:
#.........这里部分代码省略.........
示例4: FractionBounceActivity
# 需要导入模块: from sugar3.graphics.toolbarbox import ToolbarButton [as 别名]
# 或者: from sugar3.graphics.toolbarbox.ToolbarButton import connect [as 别名]
class FractionBounceActivity(activity.Activity):
def __init__(self, handle):
''' Initiate activity. '''
super(FractionBounceActivity, self).__init__(handle)
self.nick = profile.get_nick_name()
if profile.get_color() is not None:
self._colors = profile.get_color().to_string().split(',')
else:
self._colors = ['#A0FFA0', '#FF8080']
self.max_participants = 4 # sharing
self._playing = True
self._setup_toolbars()
self._setup_dispatch_table()
canvas = self._setup_canvas()
# Read any custom fractions from the project metadata
if 'custom' in self.metadata:
custom = self.metadata['custom']
else:
custom = None
self._current_ball = 'soccerball'
self._toolbar_was_expanded = False
# Initialize the canvas
self._bounce_window = Bounce(canvas, activity.get_bundle_path(), self)
Gdk.Screen.get_default().connect('size-changed', self._configure_cb)
# Restore any custom fractions
if custom is not None:
fractions = custom.split(',')
for f in fractions:
self._bounce_window.add_fraction(f)
if self.shared_activity:
# We're joining
if not self.get_shared():
xocolors = XoColor(profile.get_color().to_string())
share_icon = Icon(icon_name='zoom-neighborhood',
xo_color=xocolors)
self._joined_alert = NotifyAlert()
self._joined_alert.props.icon = share_icon
self._joined_alert.props.title = _('Please wait')
self._joined_alert.props.msg = _('Starting connection...')
self._joined_alert.connect('response', self._alert_cancel_cb)
self.add_alert(self._joined_alert)
self._label.set_label(_('Wait for the sharer to start.'))
# Wait for joined signal
self.connect("joined", self._joined_cb)
self._setup_sharing()
def _configure_cb(self, event):
if Gdk.Screen.width() < 1024:
self._label.set_size_request(275, -1)
self._label.set_label('')
self._separator.set_expand(False)
else:
self._label.set_size_request(500, -1)
self._separator.set_expand(True)
self._bounce_window.configure_cb(event)
if self._toolbar_expanded():
self._bounce_window.bar.bump_bars('up')
self._bounce_window.ball.ball.move_relative(
(0, -style.GRID_CELL_SIZE))
def _toolbar_expanded(self):
if self._activity_button.is_expanded():
return True
elif self._custom_toolbar_button.is_expanded():
return True
return False
def _update_graphics(self, widget):
# We need to catch opening and closing of toolbars and ignore
# switching between open toolbars.
if self._toolbar_expanded():
if not self._toolbar_was_expanded:
self._bounce_window.bar.bump_bars('up')
self._bounce_window.ball.ball.move_relative(
(0, -style.GRID_CELL_SIZE))
self._toolbar_was_expanded = True
else:
if self._toolbar_was_expanded:
self._bounce_window.bar.bump_bars('down')
self._bounce_window.ball.ball.move_relative(
(0, style.GRID_CELL_SIZE))
self._toolbar_was_expanded = False
def _setup_toolbars(self):
custom_toolbar = Gtk.Toolbar()
#.........这里部分代码省略.........
示例5: BulletinBoard
# 需要导入模块: from sugar3.graphics.toolbarbox import ToolbarButton [as 别名]
# 或者: from sugar3.graphics.toolbarbox.ToolbarButton import connect [as 别名]
class BulletinBoard():
def __init__(self, cactivity):
self._activity = cactivity
self.is_active = False
self.left = self._create_left_panel()
self.right = self._create_right_panel()
self.text_channel = None
self.fixed = Gtk.Fixed()
#self.button = BulletinButton()
#self.button.connect("clicked", self._toggle)
self.button = ToolbarButton()
self.button.connect("clicked", self._toggle)
self.button.props.icon_name = 'computer-xo'
self.toolbar = BulletinToolbar()
self.button.props.page = self.toolbar
self.toolbar.toolitems.entry.connect('activate', self.entry_activate_cb)
#self.share_button = ShareButton(self._activity)
#self.share_button.private.props.active = False
pserv = presenceservice.get_instance()
self.owner = pserv.get_owner()
# If any shared activity exists
if self._activity.shared_activity:
self._activity.connect('joined', self._joined_cb) # joining an activity
if self._activity.get_shared(): # already joined the activity
self._joined_cb(self._activity)
else:
if not self._activity.metadata or (self._activity.metadata.get('share-scope',
activity.SCOPE_PRIVATE) == activity.SCOPE_PRIVATE):
self._alert(_('Off-line'), _('Share, or invite someone.'))
self._activity.connect('shared', self._shared_cb)
def add_text(self, buddy, text):
if not buddy:
buddy = self.owner
if type(buddy) is dict:
nick = buddy['nick']
color = buddy['color']
else:
nick = buddy.props.nick
color = buddy.props.color
try:
color_stroke_html, color_fill_html = color.split(',')
except ValueError:
color_stroke_html, color_fill_html = ('#000000', '#888888')
""" select box fill and stroke color"""
color_stroke = style.Color(color_stroke_html)
color_fill = style.Color(color_fill_html)
""" select text color based on fill color """
color_fill_rgba = style.Color(color_fill_html).get_rgba()
color_fill_gray = (color_fill_rgba[0] + color_fill_rgba[1] +
color_fill_rgba[2]) / 3
""" black or white text color based on the intensity """
if color_fill_gray < 0.5:
text_color = style.COLOR_WHITE
else:
text_color = style.COLOR_BLACK
""" Right To Left languages """
if Pango.find_base_dir(nick, -1) == Pango.Direction.RTL:
lang_rtl = True
else:
lang_rtl = False
""" Generate Round Box with textbox and nick label """
mb = MessageBox() # OUTER ROUND BOX
mb.background_color = color_fill
mb.border_color = color_stroke
name = ColorLabel(text=nick + " : ", color=text_color)
name_v = Gtk.VBox() # COLOR LABEL
name_v.pack_start(name, False, False, style.zoom(10))
mb.pack_start(name_v, False, False, style.zoom(10))
msg = TextBox(text_color, color_fill, lang_rtl) # TEXT BOX
#.........这里部分代码省略.........
示例6: TrainingActivity
# 需要导入模块: from sugar3.graphics.toolbarbox import ToolbarButton [as 别名]
# 或者: from sugar3.graphics.toolbarbox.ToolbarButton import connect [as 别名]
class TrainingActivity(activity.Activity):
''' A series of training exercises '''
transfer_started_signal = GObject.Signal('started', arg_types=([]))
transfer_progressed_signal = GObject.Signal('progressed', arg_types=([]))
transfer_completed_signal = GObject.Signal('completed', arg_types=([]))
transfer_failed_signal = GObject.Signal('failed', arg_types=([]))
def __init__(self, handle):
''' Initialize the toolbars and the game board '''
try:
super(TrainingActivity, self).__init__(handle)
except dbus.exceptions.DBusException as e:
_logger.error(str(e))
self.connect('realize', self.__realize_cb)
self.connect('started', self.__transfer_started_cb)
self.connect('progressed', self.__transfer_progressed_cb)
self.connect('completed', self.__transfer_completed_cb)
self.connect('failed', self.__transfer_failed_cb)
self.volume_monitor = Gio.VolumeMonitor.get()
self.volume_monitor.connect('mount-added', self._mount_added_cb)
self.volume_monitor.connect('mount-removed', self._mount_removed_cb)
if hasattr(self, 'metadata') and 'font_size' in self.metadata:
self.font_size = int(self.metadata['font_size'])
else:
self.font_size = 8
self.zoom_level = self.font_size / float(len(FONT_SIZES))
_logger.debug('zoom level is %f' % self.zoom_level)
_check_gconf_settings() # For debugging purposes
self._setup_toolbars()
self.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self.bundle_path = activity.get_bundle_path()
self.volume_data = []
self.help_palette = None
self.help_panel_visible = False
self._copy_entry = None
self._paste_entry = None
self._webkit = None
self._clipboard_text = ''
self._fixed = None
self._notify_transfer_status = False
if self._load_extension() and self.check_volume_data():
self._launcher()
def _launcher(self):
get_power_manager().inhibit_suspend()
# We are resuming the activity or we are launching a new instance?
# * Is there a data file to sync on the USB key?
# * Do we create a new data file on the USB key?
path = self._check_for_USB_data()
if path is None:
self._launch_task_master()
elif self._sync_data_from_USB(path):
self._copy_data_from_USB()
# Flash a welcome back screen.
self._load_intro_graphics(file_name='welcome-back.html')
GObject.timeout_add(1500, self._launch_task_master)
def can_close(self):
get_power_manager().restore_suspend()
return True
def busy_cursor(self):
self._old_cursor = self.get_window().get_cursor()
self.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.WATCH))
def reset_cursor(self):
if hasattr(self, '_old_cursor'):
self.get_window().set_cursor(self._old_cursor)
def check_volume_data(self):
# Before we begin (and before each task),
# we need to find any and all USB keys
# and any and all training-data files on them.
_logger.debug(utils.get_volume_paths())
self.volume_data = []
for path in utils.get_volume_paths():
os.path.basename(path)
self.volume_data.append(
{'basename': os.path.basename(path),
'files': utils.look_for_training_data(path),
'sugar_path': os.path.join(self.get_activity_root(), 'data'),
'usb_path': path})
_logger.debug(self.volume_data[-1])
# (1) We require a USB key
if len(self.volume_data) == 0:
_logger.error('NO USB KEY INSERTED')
alert = ConfirmationAlert()
alert.props.title = _('USB key required')
#.........这里部分代码省略.........