def __init__(self, file_name, document_path, title, bundle=False): RadioToolButton.__init__(self) self._document_path = document_path self._title = title self._jobject = None self.props.tooltip = _("Instance Source") settings = Gio.Settings("org.sugarlabs.user") self._color = settings.get_string("color") icon = Icon(file=file_name, icon_size=Gtk.IconSize.LARGE_TOOLBAR, xo_color=XoColor(self._color)) self.set_icon_widget(icon) icon.show() if bundle: menu_item = MenuItem(_("Duplicate")) icon = Icon(icon_name="edit-duplicate", icon_size=Gtk.IconSize.MENU, xo_color=XoColor(self._color)) menu_item.connect("activate", self.__copy_to_home_cb) else: menu_item = MenuItem(_("Keep")) icon = Icon(icon_name="document-save", icon_size=Gtk.IconSize.MENU, xo_color=XoColor(self._color)) menu_item.connect("activate", self.__keep_in_journal_cb) menu_item.set_image(icon) self.props.palette.menu.append(menu_item) menu_item.show()
def __init__(self, file_name, document_path, title, bundle=False): RadioToolButton.__init__(self) self._document_path = document_path self._title = title self._jobject = None self.props.tooltip = _('Instance Source') settings = Gio.Settings('org.sugarlabs.user') self._color = settings.get_string('color') icon = Icon(file=file_name, pixel_size=style.STANDARD_ICON_SIZE, xo_color=XoColor(self._color)) self.set_icon_widget(icon) icon.show() if bundle: menu_item = MenuItem(_('Duplicate')) icon = Icon(icon_name='edit-duplicate', pixel_size=style.SMALL_ICON_SIZE, xo_color=XoColor(self._color)) menu_item.connect('activate', self.__copy_to_home_cb) else: menu_item = MenuItem(_('Keep')) icon = Icon(icon_name='document-save', pixel_size=style.SMALL_ICON_SIZE, xo_color=XoColor(self._color)) menu_item.connect('activate', self.__keep_in_journal_cb) menu_item.set_image(icon) self.props.palette.menu.append(menu_item) menu_item.show()
def __init__(self): Gtk.Toolbar.__init__(self) self.button = ToolbarButton(page=self, icon_name="info") self.button_simulation = RadioToolButton(icon_name="solar-system", group=None) self.button_simulation.set_tooltip(_("Show solar system")) self.button_simulation.connect("toggled", self._show_simulation_cb) self.insert(self.button_simulation, -1) self.button_info = RadioToolButton(icon_name="info", group=self.button_simulation) self.button_info.set_tooltip(_("Show information")) self.button_info.connect("toggled", self._show_info_cb) self.insert(self.button_info, -1) self.insert(make_separator(False), -1) self.back_button = ToolButton("go-previous-paired") self.back_button.set_tooltip(_("Go back")) self.back_button.set_sensitive(False) self.back_button.connect("clicked", self._go_back_cb) self.insert(self.back_button, -1) self.forward_button = ToolButton("go-next-paired") self.forward_button.set_tooltip(_("Go forward")) self.forward_button.set_sensitive(False) self.forward_button.connect("clicked", self._go_forward_cb) self.insert(self.forward_button, -1) self.show_all()
def __init__(self, abi, abi_signal, do_abi_cb, on_abi_cb=None, **kwargs): RadioToolButton.__init__(self, **kwargs) self._abi_handler = abi.connect(abi_signal, self.__abi_cb, abi_signal, on_abi_cb) self._toggled_handler = self.connect('toggled', self.__toggled_cb, abi, do_abi_cb)
def __init__(self, cb_object, group): RadioToolButton.__init__(self, group=group) self.props.palette_invoker = FrameWidgetInvoker(self) self.palette_invoker.props.toggle_palette = True self._cb_object = cb_object self.owns_clipboard = False self.props.sensitive = False self.props.active = False self._notif_icon = None self._current_percent = None self._icon = Icon() client = GConf.Client.get_default() color = XoColor(client.get_string('/desktop/sugar/user/color')) self._icon.props.xo_color = color self.set_icon_widget(self._icon) self._icon.show() cb_service = clipboard.get_instance() cb_service.connect('object-state-changed', self._object_state_changed_cb) cb_service.connect('object-selected', self._object_selected_cb) child = self.get_child() child.connect('drag_data_get', self._drag_data_get_cb) self.connect('notify::active', self._notify_active_cb)
def __init__(self, cb_object, group): RadioToolButton.__init__(self, group=group) self.props.palette_invoker = FrameWidgetInvoker(self) self.palette_invoker.props.toggle_palette = True self._cb_object = cb_object self.owns_clipboard = False self.props.sensitive = False self.props.active = False self._notif_icon = None self._current_percent = None self._icon = Icon() color = profile.get_color() self._icon.props.xo_color = color self.set_icon_widget(self._icon) self._icon.show() cb_service = clipboard.get_instance() cb_service.connect("object-state-changed", self._object_state_changed_cb) cb_service.connect("object-selected", self._object_selected_cb) child = self.get_child() child.connect("drag_data_get", self._drag_data_get_cb) self.connect("notify::active", self._notify_active_cb)
def __init__(self, file_name, document_path, title, bundle=False): RadioToolButton.__init__(self) self._document_path = document_path self._title = title self._jobject = None self.props.tooltip = _('Instance Source') client = GConf.Client.get_default() self._color = client.get_string('/desktop/sugar/user/color') icon = Icon(file=file_name, icon_size=Gtk.IconSize.LARGE_TOOLBAR, xo_color=XoColor(self._color)) self.set_icon_widget(icon) icon.show() if bundle: menu_item = MenuItem(_('Duplicate')) icon = Icon(icon_name='edit-duplicate', icon_size=Gtk.IconSize.MENU, xo_color=XoColor(self._color)) menu_item.connect('activate', self.__copy_to_home_cb) else: menu_item = MenuItem(_('Keep')) icon = Icon(icon_name='document-save', icon_size=Gtk.IconSize.MENU, xo_color=XoColor(self._color)) menu_item.connect('activate', self.__keep_in_journal_cb) menu_item.set_image(icon) self.props.palette.menu.append(menu_item) menu_item.show()
def __init__(self, file_name, document_path, activity_name, title, bundle=False): RadioToolButton.__init__(self) self._document_path = document_path self._title = title self._jobject = None self._activity_name = activity_name self.props.tooltip = _('Instance Source') settings = Gio.Settings('org.sugarlabs.user') self._color = settings.get_string('color') icon = Icon(file=file_name, pixel_size=style.STANDARD_ICON_SIZE, xo_color=XoColor(self._color)) self.set_icon_widget(icon) icon.show() box = PaletteMenuBox() self.props.palette.set_content(box) box.show() if bundle: menu_item = PaletteMenuItem(_('Duplicate'), 'edit-duplicate', xo_color=XoColor(self._color)) menu_item.connect('activate', self.__show_duplicate_alert) else: menu_item = PaletteMenuItem(_('Keep'), 'document-save', xo_color=XoColor(self._color)) menu_item.connect('activate', self.__keep_in_journal_cb) box.append_item(menu_item) menu_item.show()
def __init__(self, home_activity, group): RadioToolButton.__init__(self, group=group) self.set_palette_invoker(FrameWidgetInvoker(self)) self.palette_invoker.cache_palette = False self._home_activity = home_activity self._notify_launch_hid = None self._icon = NotificationPulsingIcon() self._icon.props.base_color = home_activity.get_icon_color() self._icon.props.pulse_color = \ XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), style.COLOR_TOOLBAR_GREY.get_svg())) if home_activity.get_icon_path(): self._icon.props.file = home_activity.get_icon_path() else: # Let's see if the X11 window can give us an icon. window = home_activity.get_window() if not window.get_icon_is_fallback(): pixbuf = window.get_icon() self._icon.pixbuf = pixbuf else: self._icon.props.icon_name = 'image-missing' self.set_icon_widget(self._icon) self._icon.show() if home_activity.props.launch_status == shell.Activity.LAUNCHING: self._icon.props.pulsing = True self._notify_launch_hid = home_activity.connect( 'notify::launch-status', self.__notify_launch_status_cb) elif home_activity.props.launch_status == shell.Activity.LAUNCH_FAILED: self._on_failed_launch()
def __init__(self, cb_object, group): RadioToolButton.__init__(self, group=group) self.props.palette_invoker = FrameWidgetInvoker(self) self.palette_invoker.props.toggle_palette = True self._cb_object = cb_object self.owns_clipboard = False self.props.sensitive = False self.props.active = False self._notif_icon = None self._current_percent = None self._icon = Icon() color = profile.get_color() self._icon.props.xo_color = color self.set_icon_widget(self._icon) self._icon.show() cb_service = clipboard.get_instance() cb_service.connect('object-state-changed', self._object_state_changed_cb) cb_service.connect('object-selected', self._object_selected_cb) child = self.get_child() child.connect('drag_data_get', self._drag_data_get_cb) self.connect('notify::active', self._notify_active_cb)
def __init__(self, mount_point): RadioToolButton.__init__(self) self.mount_point = mount_point self.drag_dest_set(Gtk.DestDefaults.ALL, [Gtk.TargetEntry.new("journal-object-id", 0, 0)], Gdk.DragAction.COPY) self.connect("drag-data-received", self._drag_data_received_cb)
def __init__(self, mount_point): RadioToolButton.__init__(self) self.mount_point = mount_point self.drag_dest_set(Gtk.DestDefaults.ALL, [Gtk.TargetEntry.new('journal-object-id', 0, 0)], Gdk.DragAction.COPY) self.connect('drag-data-received', self._drag_data_received_cb)
def __init__(self): Gtk.Toolbar.__init__(self) self._favorites_views_indicies = [] for i in range(desktop.get_number_of_views()): self._favorites_views_indicies.append(i) self._list_view_index = self._favorites_views_indicies[-1] + 1 self._desktop_model = desktop.get_model() self._desktop_model.connect('desktop-view-icons-changed', self.__desktop_view_icons_changed_cb) self._query = None self._autosearch_timer = None self._add_separator() tool_item = Gtk.ToolItem() self.insert(tool_item, -1) tool_item.show() self.search_entry = iconentry.IconEntry() self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'entry-search') self.set_placeholder_text_for_view(_('Home')) self.search_entry.add_clear_button() self.search_entry.set_width_chars(25) self.search_entry.connect('activate', self._entry_activated_cb) self.search_entry.connect('changed', self._entry_changed_cb) tool_item.add(self.search_entry) self.search_entry.show() self._add_separator(expand=True) self._button_box = Gtk.HBox() self._favorites_buttons = [] for i in range(desktop.get_number_of_views()): self._add_favorites_button(i) toolitem = Gtk.ToolItem() toolitem.add(self._button_box) self.insert(toolitem, -1) self._button_box.show() toolitem.show() self._list_button = RadioToolButton(icon_name='view-list') self._list_button.props.group = self._favorites_buttons[0] self._list_button.props.tooltip = _('List view') self._list_button.props.accelerator = \ _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1)) self._list_view_toggle_id = self._list_button.connect( 'toggled', self.__view_button_toggled_cb, self._list_view_index) self.insert(self._list_button, -1) self._add_separator()
class ToolbarInfo(Gtk.Toolbar): __gsignals__ = { "show-simulation": (GObject.SIGNAL_RUN_FIRST, None, []), "show-info": (GObject.SIGNAL_RUN_FIRST, None, []), "go-back": (GObject.SIGNAL_RUN_FIRST, None, []), "go-forward": (GObject.SIGNAL_RUN_FIRST, None, []), } def __init__(self): Gtk.Toolbar.__init__(self) self.button = ToolbarButton(page=self, icon_name="info") self.button_simulation = RadioToolButton(icon_name="solar-system", group=None) self.button_simulation.set_tooltip(_("Show solar system")) self.button_simulation.connect("toggled", self._show_simulation_cb) self.insert(self.button_simulation, -1) self.button_info = RadioToolButton(icon_name="info", group=self.button_simulation) self.button_info.set_tooltip(_("Show information")) self.button_info.connect("toggled", self._show_info_cb) self.insert(self.button_info, -1) self.insert(make_separator(False), -1) self.back_button = ToolButton("go-previous-paired") self.back_button.set_tooltip(_("Go back")) self.back_button.set_sensitive(False) self.back_button.connect("clicked", self._go_back_cb) self.insert(self.back_button, -1) self.forward_button = ToolButton("go-next-paired") self.forward_button.set_tooltip(_("Go forward")) self.forward_button.set_sensitive(False) self.forward_button.connect("clicked", self._go_forward_cb) self.insert(self.forward_button, -1) self.show_all() def _show_simulation_cb(self, widget): self.emit("show-simulation") def _show_info_cb(self, widget): self.emit("show-info") def _go_back_cb(self, widget): self.emit("go-back") def _go_forward_cb(self, widget): self.emit("go-forward") def select_screen(self, screen): if screen == Screen.SOLAR_SYSTEM: self.button_simulation.props = True elif screen == Screen.INFO: self.button_info.props.active = True
def __init__(self, favorite_view): RadioToolButton.__init__(self) self.props.tooltip = _('Favorites view %d' % (favorite_view + 1)) self.props.accelerator = _('<Ctrl>%d' % (favorite_view + 1)) self.props.group = None self.props.icon_name = desktop.get_view_icons()[favorite_view] favorites_settings = favoritesview.get_settings(favorite_view) self._layout = favorites_settings.layout # someday, this will be a Gtk.Table() layouts_grid = Gtk.HBox() layout_item = None for layoutid, layoutclass in sorted(favoritesview.LAYOUT_MAP.items()): layout_item = RadioToolButton(icon_name=layoutclass.icon_name, group=layout_item, active=False) if layoutid == self._layout: layout_item.set_active(True) layouts_grid.pack_start(layout_item, True, False, 0) layout_item.connect('toggled', self.__layout_activate_cb, layoutid, favorite_view) layouts_grid.show_all() self.props.palette.set_content(layouts_grid)
def _build_progress_toolbar(self): self._progress_buttons = [] progress = self._task_master.get_completed_sections() for section_index in range(self._task_master.get_number_of_sections()): icon = self._task_master.get_section_icon(section_index) if section_index in progress: icon = icon + '-white' else: icon = icon + '-grey' name = self._task_master.get_section_name(section_index) if section_index == 0: group = None else: group = self._progress_buttons[0] self._progress_buttons.append(RadioToolButton(group=group)) self._progress_buttons[-1].set_icon_name(icon) self._progress_buttons[-1].set_tooltip(name) self._progress_toolbar.insert(self._progress_buttons[-1], -1) self._progress_buttons[-1].show() self._progress_buttons[-1].connect( 'clicked', self._jump_to_section_cb, section_index) self._radio_buttons_live = False section_index, task_index = \ self._task_master.get_section_and_task_index() self._progress_buttons[section_index].set_active(True) self._radio_buttons_live = True
def __init__(self, parent): self._main_toolbar = parent.get_toolbar_box().toolbar self._main_area = parent._main_area self._erase_button = parent.edit_toolbar.erase_button self._sw = parent._sw if HASTOOLBARBOX: target_toolbar = self._main_toolbar else: target_toolbar = self.parent.edit_toolbar self._mods = RadioToolButton(icon_name='select-mode') self._mods.set_tooltip(_('Select thoughts')) self._mods.set_accelerator(_('<ctrl>e')) self._mods.connect('clicked', parent.mode_cb, MMapArea.MODE_NULL) target_toolbar.insert(self._mods, -1) self._link_button = RadioToolButton(icon_name='link', group=self._mods) self._link_button.set_tooltip(_('Link/unlink two selected thoughts')) self._link_button.set_accelerator(_('<ctrl>l')) self._link_button.connect('clicked', self.__link_cb) target_toolbar.insert(self._link_button, -1) self.move_button = RadioToolButton(icon_name='move', group=self._mods) self.move_button.set_tooltip(_('Move selected thoughs')) self.move_button.set_accelerator(_('<ctrl>m')) self.move_button.connect('clicked', self.__move_cb) target_toolbar.insert(self.move_button, -1) self.drag_button = RadioToolButton(icon_name='drag', group=self._mods) self.drag_button.set_tooltip(_('Scroll the screen')) self.drag_button.connect('clicked', self.__drag_cb) target_toolbar.insert(self.drag_button, -1) if HASTOOLBARBOX: self._separator_2 = Gtk.SeparatorToolItem() self._separator_2.props.draw = False #self._separator_2.set_size_request(0, -1) self._separator_2.set_expand(True) self._separator_2.show() target_toolbar.insert(self._separator_2, -1) self._stop_button = StopButton(parent) target_toolbar.insert(self._stop_button, -1)
def __init__(self, activity, **kwargs): palette = RadioPalette() self.private = RadioToolButton(icon_name='zoom-home') palette.append(self.private, _('Private')) self.neighborhood = RadioToolButton(icon_name='zoom-neighborhood', group=self.private) self._neighborhood_handle = self.neighborhood.connect( 'clicked', self.__neighborhood_clicked_cb, activity) palette.append(self.neighborhood, _('My Neighborhood')) activity.connect('shared', self.__update_share_cb) activity.connect('joined', self.__update_share_cb) RadioMenuButton.__init__(self, **kwargs) self.props.palette = palette if activity.max_participants == 1: self.props.sensitive = False
def __init__(self, icon_name, tool_group, tooltip): RadioToolButton.__init__(self, icon_name=icon_name) self.props.group = tool_group self.set_active(False) self.set_tooltip(tooltip) self.selected_button = None self.palette_invoker.props.toggle_palette = True self.props.hide_tooltip_on_click = False if self.props.palette: self.__palette_cb(None, None) self.menu_box = PaletteMenuBox() self.props.palette.set_content(self.menu_box) self.menu_box.show() self.connect('notify::palette', self.__palette_cb)
class ShareButton(RadioMenuButton): def __init__(self, activity, **kwargs): palette = RadioPalette() self.private = RadioToolButton( icon_name='zoom-home') palette.append(self.private, _('Private')) self.neighborhood = RadioToolButton( icon_name='zoom-neighborhood', group=self.private) self._neighborhood_handle = self.neighborhood.connect( 'clicked', self.__neighborhood_clicked_cb, activity) palette.append(self.neighborhood, _('My Neighborhood')) activity.connect('shared', self.__update_share_cb) activity.connect('joined', self.__update_share_cb) RadioMenuButton.__init__(self, **kwargs) self.props.palette = palette if activity.max_participants == 1: self.props.sensitive = False def __neighborhood_clicked_cb(self, button, activity): activity.share() def __update_share_cb(self, activity): self.neighborhood.handler_block(self._neighborhood_handle) try: if activity.shared_activity is not None and \ not activity.shared_activity.props.private: self.private.props.sensitive = False self.neighborhood.props.sensitive = False self.neighborhood.props.active = True else: self.private.props.sensitive = True self.neighborhood.props.sensitive = True self.private.props.active = True finally: self.neighborhood.handler_unblock(self._neighborhood_handle)
def __init__(self): Gtk.Toolbar.__init__(self) self._query = None self._autosearch_timer = None self._add_separator() tool_item = Gtk.ToolItem() self.insert(tool_item, -1) tool_item.show() self.search_entry = iconentry.IconEntry() self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'system-search') self.set_placeholder_text_for_view(_('Home')) self.search_entry.add_clear_button() self.search_entry.set_width_chars(25) self.search_entry.connect('activate', self._entry_activated_cb) self.search_entry.connect('changed', self._entry_changed_cb) tool_item.add(self.search_entry) self.search_entry.show() self._add_separator(expand=True) self._favorites_button = FavoritesButton() self._favorites_button.connect('toggled', self.__view_button_toggled_cb, _FAVORITES_VIEW) self.insert(self._favorites_button, -1) self._list_button = RadioToolButton(icon_name='view-list') self._list_button.props.group = self._favorites_button self._list_button.props.tooltip = _('List view') self._list_button.props.accelerator = _('<Ctrl>2') self._list_button.connect('toggled', self.__view_button_toggled_cb, _LIST_VIEW) self.insert(self._list_button, -1) self._add_separator()
def __init__(self): Gtk.Toolbar.__init__(self) self.button = ToolbarButton(page=self, icon_name="media-playback-stop") self.playing = True self.speed = None self.stop_play = ToolButton("media-playback-stop") self.stop_play.set_tooltip(_("Stop")) self.stop_play.connect("clicked", self._stop_play) self.insert(self.stop_play, -1) self.slow_button = RadioToolButton(group=None, icon_name="slow-walk-milton-raposo") self.slow_button.set_tooltip(_("Run slow")) self.slow_button.connect("clicked", self._speed_changed_cb, Speed.SLOW) self.insert(self.slow_button, -1) self.normal_button = RadioToolButton(group=self.slow_button, icon_name="walking") self.normal_button.set_tooltip(_("Run Normal")) self.normal_button.connect("clicked", self._speed_changed_cb, Speed.NORMAL) self.insert(self.normal_button, -1) self.fast_button = RadioToolButton(group=self.slow_button, icon_name="running") self.fast_button.set_tooltip(_("Run fast")) self.fast_button.connect("clicked", self._speed_changed_cb, Speed.FAST) self.insert(self.fast_button, -1) self.slow_button.set_active(True) self.show_all()
def add_level_button(icon_name, tooltip, numeric_level): if self._levels_buttons: button = RadioToolButton(icon_name=icon_name, group=self._levels_buttons[0]) else: button = RadioToolButton(icon_name=icon_name) self._levels_buttons.append(button) def callback(source): if source.get_active(): self.game.set_level(numeric_level) self.game.run() button.connect('clicked', callback) button.set_tooltip(tooltip)
def add_level_button(icon_name, tooltip, numeric_level): if self._levels_buttons: button = RadioToolButton(icon_name=icon_name, group=self._levels_buttons[0]) else: button = RadioToolButton(icon_name=icon_name) self._levels_buttons.append(button) toolbar.add(button) def callback(source): if source.get_active(): self._collab.post({'action': icon_name}) self._game.set_level(numeric_level) self._game.new_game() button.connect('toggled', callback) button.set_tooltip(tooltip)
def _add_button(self, icon_name, label, accelerator, zoom_level): if self.get_children(): group = self.get_children()[0] else: group = None button = RadioToolButton(icon_name=icon_name, group=group, accelerator=accelerator) button.connect('clicked', self.__level_clicked_cb, zoom_level) self.add(button) button.show() palette = Palette(GLib.markup_escape_text(label)) palette.props.invoker = FrameWidgetInvoker(button) palette.set_group_id('frame') button.set_palette(palette) return button
def _add_button(self, icon_name, label, accelerator, zoom_level): if self.get_children(): group = self.get_children()[0] else: group = None button = RadioToolButton(icon_name=icon_name, group=group, accelerator=accelerator) button.connect('clicked', self.__level_clicked_cb, zoom_level) self.add(button) button.show() palette = Palette(glib.markup_escape_text(label)) palette.props.invoker = FrameWidgetInvoker(button) palette.set_group_id('frame') button.set_palette(palette) return button
def __init__(self, activity, **kwargs): palette = RadioPalette() self.private = RadioToolButton( icon_name='zoom-home') palette.append(self.private, _('Private')) self.neighborhood = RadioToolButton( icon_name='zoom-neighborhood', group=self.private) self._neighborhood_handle = self.neighborhood.connect( 'clicked', self.__neighborhood_clicked_cb, activity) palette.append(self.neighborhood, _('My Neighborhood')) activity.connect('shared', self.__update_share_cb) activity.connect('joined', self.__update_share_cb) RadioMenuButton.__init__(self, **kwargs) self.props.palette = palette if activity.max_participants == 1: self.props.sensitive = False
def __init__(self): Gtk.Toolbar.__init__(self) self._query = None self._autosearch_timer = None self._add_separator() tool_item = Gtk.ToolItem() self.insert(tool_item, -1) tool_item.show() self.search_entry = iconentry.IconEntry() self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'entry-search') self.set_placeholder_text_for_view(_('Home')) self.search_entry.add_clear_button() self.search_entry.set_width_chars(25) self.search_entry.connect('activate', self._entry_activated_cb) self.search_entry.connect('changed', self._entry_changed_cb) tool_item.add(self.search_entry) self.search_entry.show() self._add_separator(expand=True) self._favorites_button = FavoritesButton() self._favorites_button.connect('toggled', self.__view_button_toggled_cb, _FAVORITES_VIEW) self.insert(self._favorites_button, -1) self._list_button = RadioToolButton(icon_name='view-list') self._list_button.props.group = self._favorites_button self._list_button.props.tooltip = _('List view') self._list_button.props.accelerator = _('<Ctrl>2') self._list_button.connect('toggled', self.__view_button_toggled_cb, _LIST_VIEW) self.insert(self._list_button, -1) self._add_separator()
def add_level_button(icon_name, tooltip, numeric_level): if self._levels_buttons: button = RadioToolButton(icon_name=icon_name, group=self._levels_buttons[0]) else: button = RadioToolButton(icon_name=icon_name) self._levels_buttons.append(button) toolbar.add(button) def callback(source): if source.get_active(): self._game.set_level(numeric_level) self._game.new_game() button.connect('clicked', callback) button.set_tooltip(tooltip)
def __init__(self, favorite_view): RadioToolButton.__init__(self) self.props.tooltip = desktop.get_favorite_names()[favorite_view] self.props.accelerator = _("<Ctrl>%d" % (favorite_view + 1)) self.props.group = None self.props.icon_name = desktop.get_view_icons()[favorite_view] favorites_settings = favoritesview.get_settings(favorite_view) self._layout = favorites_settings.layout # someday, this will be a Gtk.Table() layouts_grid = Gtk.HBox() layout_item = None for layoutid, layoutclass in sorted(favoritesview.LAYOUT_MAP.items()): layout_item = RadioToolButton(icon_name=layoutclass.icon_name, group=layout_item, active=False) if layoutid == self._layout: layout_item.set_active(True) layouts_grid.pack_start(layout_item, True, False, 0) layout_item.connect("toggled", self.__layout_activate_cb, layoutid, favorite_view) layouts_grid.show_all() self.props.palette.set_content(layouts_grid)
def add_radio_buttons(self, button_icons, colors=None): alignment = Gtk.Alignment.new(0.5, 0.5, 0, 0) grid = Gtk.Grid() grid.set_row_spacing(style.DEFAULT_SPACING) grid.set_column_spacing(style.DEFAULT_SPACING) grid.set_border_width(style.DEFAULT_SPACING * 2) buttons = [] for i, icon in enumerate(button_icons): if i == 0: group = None else: group = buttons[0] buttons.append(RadioToolButton(group=group)) buttons[i].set_icon_name(icon) if colors is not None: buttons[i].set_xo_color(colors) grid.attach(buttons[i], i, 0, 1, 1) buttons[i].show() alignment.add(grid) grid.show() self._attach(alignment) alignment.show() return buttons
def __init__(self): RadioToolButton.__init__(self) self.props.tooltip = _('Favorites view') self.props.accelerator = _('<Ctrl>1') self.props.group = None favorites_settings = favoritesview.get_settings() self._layout = favorites_settings.layout self._update_icon() # someday, this will be a Gtk.Table() layouts_grid = Gtk.HBox() layout_item = None for layoutid, layoutclass in sorted(favoritesview.LAYOUT_MAP.items()): layout_item = RadioToolButton(icon_name=layoutclass.icon_name, group=layout_item, active=False) if layoutid == self._layout: layout_item.set_active(True) layouts_grid.pack_start(layout_item, True, False, 0) layout_item.connect('toggled', self.__layout_activate_cb, layoutid) layouts_grid.show_all() self.props.palette.set_content(layouts_grid)
class ViewToolbar(Gtk.Toolbar): __gtype_name__ = 'SugarViewToolbar' __gsignals__ = { 'query-changed': (GObject.SignalFlags.RUN_FIRST, None, ([str])), 'view-changed': (GObject.SignalFlags.RUN_FIRST, None, ([object])), } def __init__(self): Gtk.Toolbar.__init__(self) self._favorites_views_indicies = [] for i in range(desktop.get_number_of_views()): self._favorites_views_indicies.append(i) self._list_view_index = self._favorites_views_indicies[-1] + 1 self._desktop_model = desktop.get_model() self._desktop_model.connect('desktop-view-icons-changed', self.__desktop_view_icons_changed_cb) self._query = None self._autosearch_timer = None self._add_separator() tool_item = Gtk.ToolItem() self.insert(tool_item, -1) tool_item.show() self.search_entry = iconentry.IconEntry() self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'entry-search') self.set_placeholder_text_for_view(_('Home')) self.search_entry.add_clear_button() self.search_entry.set_width_chars(25) self.search_entry.connect('activate', self._entry_activated_cb) self.search_entry.connect('changed', self._entry_changed_cb) tool_item.add(self.search_entry) self.search_entry.show() self._add_separator(expand=True) self._button_box = Gtk.HBox() self._favorites_buttons = [] for i in range(desktop.get_number_of_views()): self._add_favorites_button(i) toolitem = Gtk.ToolItem() toolitem.add(self._button_box) self.insert(toolitem, -1) self._button_box.show() toolitem.show() self._list_button = RadioToolButton(icon_name='view-list') self._list_button.props.group = self._favorites_buttons[0] self._list_button.props.tooltip = _('List view') self._list_button.props.accelerator = \ _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1)) self._list_view_toggle_id = self._list_button.connect( 'toggled', self.__view_button_toggled_cb, self._list_view_index) self.insert(self._list_button, -1) self._add_separator() def _add_favorites_button(self, i): logging.debug('adding FavoritesButton %d' % (i)) self._favorites_buttons.append(FavoritesButton(i)) self._favorites_buttons[i].connect('toggled', self.__view_button_toggled_cb, self._favorites_views_indicies[i]) if i > 0: self._favorites_buttons[i].props.group = self._favorites_buttons[0] self._button_box.add(self._favorites_buttons[i]) self._favorites_buttons[i].show() def show_view_buttons(self): for i in range(desktop.get_number_of_views()): self._favorites_buttons[i].show() self._list_button.show() def hide_view_buttons(self): for i in range(desktop.get_number_of_views()): self._favorites_buttons[i].hide() self._list_button.hide() def clear_query(self): self.search_entry.props.text = '' def set_placeholder_text_for_view(self, view_name): text = _('Search in %s') % view_name self.search_entry.set_placeholder_text(text) def _add_separator(self, expand=False): separator = Gtk.SeparatorToolItem() separator.props.draw = False if expand: separator.set_expand(True) else: separator.set_size_request(style.GRID_CELL_SIZE, style.GRID_CELL_SIZE) self.insert(separator, -1) separator.show() def _entry_activated_cb(self, entry): if self._autosearch_timer: GObject.source_remove(self._autosearch_timer) new_query = entry.props.text if self._query != new_query: self._query = new_query self.emit('query-changed', self._query) def _entry_changed_cb(self, entry): if not entry.props.text: entry.activate() return if self._autosearch_timer: GObject.source_remove(self._autosearch_timer) self._autosearch_timer = GObject.timeout_add(_AUTOSEARCH_TIMEOUT, self._autosearch_timer_cb) def _autosearch_timer_cb(self): logging.debug('_autosearch_timer_cb') self._autosearch_timer = None self.search_entry.activate() return False def __view_button_toggled_cb(self, button, view): if button.props.active: self.emit('view-changed', view) def __desktop_view_icons_changed_cb(self, model): number_of_views = desktop.get_number_of_views() if len(self._favorites_views_indicies) < number_of_views: for i in range(number_of_views - len(self._favorites_views_indicies)): n = len(self._favorites_views_indicies) self._favorites_views_indicies.append(n) self._add_favorites_button(n) self._favorites_buttons[n].show() elif number_of_views < len(self._favorites_views_indicies): for i in range( len(self._favorites_views_indicies) - number_of_views): n = len(self._favorites_views_indicies) - 1 logging.debug('removing FavoritesButton %d' % (n)) button = self._favorites_buttons[n] self._favorites_buttons.remove(button) button.destroy() self._favorites_views_indicies.remove( self._favorites_views_indicies[n]) self._button_box.show() self._list_view_index = number_of_views self._list_button.props.accelerator = \ _('<Ctrl>%d' % (len(self._favorites_views_indicies) + 1)) self._list_button.disconnect(self._list_view_toggle_id) self._list_view_toggle_id = self._list_button.connect( 'toggled', self.__view_button_toggled_cb, self._list_view_index) self._list_button.show()
def __init__(self, title, bundle_path, document_path, sugar_toolkit_path): Gtk.Toolbar.__init__(self) document_button = None self.bundle_path = bundle_path self.sugar_toolkit_path = sugar_toolkit_path self._add_separator() activity_bundle = ActivityBundle(bundle_path) file_name = activity_bundle.get_icon() if document_path is not None and os.path.exists(document_path): document_button = DocumentButton(file_name, document_path, title) document_button.connect('toggled', self.__button_toggled_cb, document_path) self.insert(document_button, -1) document_button.show() self._add_separator() if bundle_path is not None and os.path.exists(bundle_path): activity_button = DocumentButton(file_name, bundle_path, title, bundle=True) icon = Icon(file=file_name, icon_size=Gtk.IconSize.LARGE_TOOLBAR, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg()) activity_button.set_icon_widget(icon) icon.show() if document_button is not None: activity_button.props.group = document_button activity_button.props.tooltip = _('Activity Bundle Source') activity_button.connect('toggled', self.__button_toggled_cb, bundle_path) self.insert(activity_button, -1) activity_button.show() self._add_separator() if sugar_toolkit_path is not None: sugar_button = RadioToolButton() icon = Icon(icon_name='computer-xo', icon_size=Gtk.IconSize.LARGE_TOOLBAR, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg()) sugar_button.set_icon_widget(icon) icon.show() if document_button is not None: sugar_button.props.group = document_button else: sugar_button.props.group = activity_button sugar_button.props.tooltip = _('Sugar Toolkit Source') sugar_button.connect('toggled', self.__button_toggled_cb, sugar_toolkit_path) self.insert(sugar_button, -1) sugar_button.show() self._add_separator() self.activity_title_text = _('View source: %s') % title self.sugar_toolkit_title_text = _('View source: %r') % 'Sugar Toolkit' self.label = Gtk.Label() self.label.set_markup('<b>%s</b>' % self.activity_title_text) self.label.set_alignment(0, 0.5) self._add_widget(self.label) self._add_separator(True) stop = ToolButton(icon_name='dialog-cancel') stop.set_tooltip(_('Close')) stop.connect('clicked', self.__stop_clicked_cb) self.insert(stop, -1) stop.show()
import common test = common.Test() test.show() vbox = Gtk.VBox() test.pack_start(vbox, True, True, 0) vbox.show() toolbar_box = ToolbarBox() vbox.pack_start(toolbar_box, False, False, 0) toolbar_box.show() radial_button = RadioToolButton(icon_name='view-radial') toolbar_box.toolbar.insert(radial_button, -1) radial_button.show() list_button = RadioToolButton(icon_name='view-list') list_button.props.group = radial_button toolbar_box.toolbar.insert(list_button, -1) list_button.show() separator = Gtk.SeparatorToolItem() toolbar_box.toolbar.insert(separator, -1) separator.show() color_button = ColorToolButton() toolbar_box.toolbar.insert(color_button, -1) color_button.show()
def _insert_create_tools(self, create_toolbar): # Make + add the component buttons self.radioList = {} for i, c in enumerate(tools.allTools): if i == 0: button = RadioToolButton(group=None) firstbutton = button else: button = RadioToolButton(group=firstbutton) button.set_icon_name(c.icon) button.set_tooltip(c.toolTip) button.set_accelerator(c.toolAccelerator) button.connect('clicked', self.radioClicked) palette = self._build_palette(c) if palette is not None: palette.show() button.get_palette().set_content(palette) self._insert_item(create_toolbar, button, -1) button.show() self.radioList[button] = c.name if hasattr(c, 'constructor'): self._constructors[c.name] = \ self.game.toolList[c.name].constructor
def __init__(self, owner): GObject.GObject.__init__(self) self.owner = owner self._insert_separator(True) self.desktop = [] btn = RadioToolButton(group=None) btn.set_icon_name('jam-preset1') btn.connect('toggled', self.setDesktop, 0) btn.set_tooltip(_('Desktop 1')) self.insert(btn, -1) self.desktop.append(btn) for i in range(2, 11): btn = RadioToolButton(group=self.desktop[0]) btn.set_icon_name('jam-preset%d' % i) btn.connect('toggled', self.setDesktop, i - 1) btn.set_tooltip(_('Desktop %d' % i)) self.insert(btn, -1) self.desktop.append(btn) self._insert_separator(True) self.show_all()
def __init__(self, activity_name, has_local_help): Gtk.Toolbar.__init__(self) self._add_separator(False) if has_local_help and get_social_help_server(): help_button = RadioToolButton() icon = Icon(icon_name='toolbar-help', pixel_size=style.STANDARD_ICON_SIZE, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg()) help_button.set_icon_widget(icon) icon.show() help_button.props.tooltip = _('Help Manual') help_button.connect('toggled', self.__button_toggled_cb, _MODE_HELP) self.insert(help_button, -1) help_button.show() self._add_separator(False) social_help_button = RadioToolButton() icon = Icon(icon_name='toolbar-social-help', pixel_size=style.STANDARD_ICON_SIZE, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg()) social_help_button.set_icon_widget(icon) icon.show() social_help_button.props.tooltip = _('Social Help') social_help_button.props.group = help_button social_help_button.connect('toggled', self.__button_toggled_cb, _MODE_SOCIAL_HELP) self.insert(social_help_button, -1) social_help_button.show() self._add_separator(False) title = _('Help: %s') % activity_name self._label = Gtk.Label() self._label.set_markup('<b>%s</b>' % title) self._label.set_alignment(0, 0.5) self._add_widget(self._label) self._add_separator(True) stop = ToolButton(icon_name='dialog-cancel') stop.set_tooltip(_('Close')) stop.connect('clicked', self.__stop_clicked_cb) self.insert(stop, -1) stop.show()
box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) window.add(box) box.show() def echo(button, label): if not button.props.active: return print label palette = RadioPalette() # Adding 3 RadioToolButtons to a palette button1 = RadioToolButton(icon_name='document-save', accelerator="<ctrl>S", xo_color=XoColor("white")) button1.connect('toggled', lambda button: echo(button, 'document-save')) palette.append(button1, 'menu.document-save') button2 = RadioToolButton(icon_name='document-open', accelerator="<ctrl>O", xo_color=XoColor("white"), group=button1) button2.connect('toggled', lambda button: echo(button, 'document-open')) palette.append(button2, 'menu.document-open') button3 = RadioToolButton(icon_name='document-send', accelerator="<ctrl>F", xo_color=XoColor("white"), group=button1) button3.connect('toggled', lambda button: echo(button, 'document-send')) palette.append(button3, 'menu.document-send') button = RadioMenuButton(palette=palette) box.pack_start(button, False, False, 1)
def __init__(self, owner): GObject.GObject.__init__(self) self.owner = owner self.toolItem = {} self.blockBeat = False self.beatWheel = [] btn = RadioToolButton(group=None) btn.set_icon_name('beats') btn.connect('toggled', self.setBeat, 0) btn.set_tooltip(_('Jump To Beat')) self.insert(btn, -1) self.beatWheel.append(btn) for i in range(1, 12): btn = RadioToolButton(group=self.beatWheel[0]) btn.set_icon_name('beats') btn.connect('toggled', self.setBeat, i) btn.set_tooltip(_('Jump To Beat')) self.insert(btn, -1) self.beatWheel.append(btn) label = Gtk.Label(label=_("Synch to:")) self.syncLabel = Gtk.ToolItem() self.syncLabel.add(label) self.insert(self.syncLabel, 0) self.comboBox = ComboBox() self.comboBox.append_item(1, _("1 Beat")) self.comboBox.append_item(2, _("2 Beats")) self.comboBox.append_item(3, _("3 Beats")) self.comboBox.append_item(4, _("4 Beats")) self.comboBox.append_item(5, _("5 Beats")) self.comboBox.append_item(6, _("6 Beats")) self.comboBox.append_item(7, _("7 Beats")) self.comboBox.append_item(8, _("8 Beats")) self.comboBox.append_item(9, _("9 Beats")) self.comboBox.append_item(10, _("10 Beats")) self.comboBox.append_item(11, _("11 Beats")) self.comboBox.append_item(12, _("12 Beats")) self.comboBox.set_active(4 - 1) # default 4 beats self.comboBox.connect("changed", self.changeSync) self.syncBox = ToolComboBox(self.comboBox) self.insert(self.syncBox, 1) self.show_all()
def __init__(self, title, bundle_path, document_path, sugar_toolkit_path): Gtk.Toolbar.__init__(self) document_button = None self.bundle_path = bundle_path self.sugar_toolkit_path = sugar_toolkit_path self._add_separator() activity_bundle = get_bundle_instance(bundle_path) file_name = activity_bundle.get_icon() activity_name = activity_bundle.get_name() if document_path is not None and os.path.exists(document_path): document_button = DocumentButton(file_name, document_path, activity_name, title) document_button.connect('toggled', self.__button_toggled_cb, document_path) self.insert(document_button, -1) document_button.show() self._add_separator() if bundle_path is not None and os.path.exists(bundle_path): activity_button = DocumentButton(file_name, bundle_path, activity_name, title, bundle=True) icon = Icon(file=file_name, pixel_size=style.STANDARD_ICON_SIZE, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg()) activity_button.set_icon_widget(icon) icon.show() if document_button is not None: activity_button.props.group = document_button activity_button.props.tooltip = _('Activity Bundle Source') activity_button.connect('toggled', self.__button_toggled_cb, bundle_path) self.insert(activity_button, -1) activity_button.show() self._add_separator() if sugar_toolkit_path is not None: sugar_button = RadioToolButton() icon = Icon(icon_name='computer-xo', pixel_size=style.STANDARD_ICON_SIZE, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg()) sugar_button.set_icon_widget(icon) icon.show() if document_button is not None: sugar_button.props.group = document_button else: sugar_button.props.group = activity_button sugar_button.props.tooltip = _('Sugar Toolkit Source') sugar_button.connect('toggled', self.__button_toggled_cb, sugar_toolkit_path) self.insert(sugar_button, -1) sugar_button.show() self._add_separator() self.activity_title_text = _('View source: %s') % title self.sugar_toolkit_title_text = _('View source: %r') % 'Sugar Toolkit' self.label = Gtk.Label() self.label.set_markup('<b>%s</b>' % self.activity_title_text) self.label.set_ellipsize(style.ELLIPSIZE_MODE_DEFAULT) self.label.set_alignment(0, 0.5) self._add_widget(self.label, expand=True) self._add_separator(False) stop = ToolButton(icon_name='dialog-cancel') stop.set_tooltip(_('Close')) stop.connect('clicked', self.__stop_clicked_cb) self.insert(stop, -1) stop.show()
def radio_factory(name, toolbar, callback, cb_arg=None, tooltip=None, group=None): ''' Add a radio button to a toolbar ''' button = RadioToolButton(group=group) button.set_icon_name(name) if callback is not None: if cb_arg is None: button.connect('clicked', callback) else: button.connect('clicked', callback, cb_arg) if hasattr(toolbar, 'insert'): # Add button to the main toolbar... toolbar.insert(button, -1) else: # ...or a secondary toolbar. toolbar.props.page.insert(button, -1) button.show() if tooltip is not None: button.set_tooltip(tooltip) return button
def build_toolbox(self): view_tool_group = None registerbtn = RadioToolButton() registerbtn.props.icon_name = 'view-list' registerbtn.props.label = _('Register') registerbtn.set_tooltip(_("Register")) registerbtn.props.group = view_tool_group view_tool_group = registerbtn registerbtn.props.accelerator = '<Ctrl>1' registerbtn.connect('clicked', self.register_cb) budgetbtn = RadioToolButton() budgetbtn.props.icon_name = 'budget' budgetbtn.props.label = _('Budget') budgetbtn.set_tooltip(_("Budget")) budgetbtn.props.group = view_tool_group budgetbtn.props.accelerator = '<Ctrl>2' budgetbtn.connect('clicked', self.budget_cb) chartbtn = RadioToolButton() chartbtn.props.icon_name = 'chart' chartbtn.props.label = _('Chart') chartbtn.set_tooltip(_("Chart")) chartbtn.props.group = view_tool_group chartbtn.props.accelerator = '<Ctrl>3' chartbtn.connect('clicked', self.chart_cb) helpbutton = self._create_help_button() helpbutton.show_all() self.toolbar_box = ToolbarBox() activity_button = ActivityToolbarButton(self) self.toolbar_box.toolbar.insert(activity_button, 0) activity_button.show() self.toolbar_box.toolbar.insert(Gtk.SeparatorToolItem(), -1) self.toolbar_box.toolbar.insert(registerbtn, -1) self.toolbar_box.toolbar.insert(budgetbtn, -1) self.toolbar_box.toolbar.insert(chartbtn, -1) self.toolbar_box.toolbar.insert(Gtk.SeparatorToolItem(), -1) self.toolbar_box.toolbar.insert(helpbutton, -1) separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) self.toolbar_box.toolbar.insert(separator, -1) self.toolbar_box.toolbar.insert(StopButton(self), -1) self.set_toolbar_box(self.toolbar_box) activity_button.page.insert(self._create_export_button(), -1) self.toolbar_box.show_all()
def _create_chart_buttons(self, toolbar): add_vbar_chart = RadioToolButton() add_vbar_chart.connect('clicked', self._add_chart_cb, charts.VERTICAL_BAR) add_vbar_chart.set_tooltip(_('Vertical Bar Chart')) add_vbar_chart.props.icon_name = 'vbar' charts_group = add_vbar_chart toolbar.insert(add_vbar_chart, -1) add_hbar_chart = RadioToolButton() add_hbar_chart.connect('clicked', self._add_chart_cb, charts.HORIZONTAL_BAR) add_hbar_chart.set_tooltip(_('Horizontal Bar Chart')) add_hbar_chart.props.icon_name = 'hbar' add_hbar_chart.props.group = charts_group toolbar.insert(add_hbar_chart, -1) add_line_chart = RadioToolButton() add_line_chart.connect('clicked', self._add_chart_cb, charts.LINE) add_line_chart.set_tooltip(_('Line Chart')) add_line_chart.props.icon_name = 'line' add_line_chart.props.group = charts_group toolbar.insert(add_line_chart, -1) add_pie_chart = RadioToolButton() add_pie_chart.set_active(True) add_pie_chart.connect('clicked', self._add_chart_cb, charts.PIE) add_pie_chart.set_tooltip(_('Pie Chart')) add_pie_chart.props.icon_name = 'pie' add_pie_chart.props.group = charts_group toolbar.insert(add_pie_chart, -1) self.chart_type_buttons.append(add_vbar_chart) self.chart_type_buttons.append(add_hbar_chart) self.chart_type_buttons.append(add_line_chart) self.chart_type_buttons.append(add_pie_chart)
def __init__(self, handle): activity.Activity.__init__(self, handle, True) self.max_participants = 1 # CHART_OPTIONS self._font_option = TITLE_FONT self.x_label = '' self.y_label = '' self.chart_color = utils.get_user_fill_color('str') self.chart_line_color = utils.get_user_stroke_color('str') self.current_chart = None self.charts_area = None self.chart_data = [] self.chart_type_buttons = [] self._font_options = { 'titleColor': '#000000', 'titleFont': 'Sans', 'titleFontSize': 12, 'axis': { 'tickFont': 'Sans', 'tickFontSize': 12, 'tickColor': '#000000', 'labelFontSize': 14, 'labelColor': '#666666', 'labelFont': 'Sans', 'lineColor': '#b3b3b3'}} # TOOLBARS self._labels_font = RadioToolButton() self._title_font = RadioToolButton() toolbarbox = ToolbarBox() activity_button = ActivityToolbarButton(self) activity_btn_toolbar = activity_button.page activity_btn_toolbar.title.connect('changed', self._set_chart_title) save_as_image = ToolButton('save-as-image') save_as_image.connect('clicked', self._save_as_image) save_as_image.set_tooltip(_('Save as image')) activity_btn_toolbar.insert(save_as_image, -1) save_as_image.show() import_stopwatch = ToolButton('import-stopwatch') import_stopwatch.connect('clicked', self.__import_stopwatch_cb) import_stopwatch.set_tooltip(_('Read StopWatch data')) activity_btn_toolbar.insert(import_stopwatch, -1) import_stopwatch.show() import_measure = ToolButton('import-measure') import_measure.set_tooltip(_('Read Measure data')) if utils.get_channels() == 1: import_measure.connect('clicked', self.__import_measure_cb, 1) else: import_measure.connect('clicked', self._measure_btn_clicked) self._create_measure_palette(import_measure) activity_btn_toolbar.insert(import_measure, -1) import_measure.show() toolbarbox.toolbar.insert(activity_button, 0) add_v = ToolButton('gtk-add') add_v.connect('clicked', self._add_value) add_v.set_tooltip(_('Add a value')) toolbarbox.toolbar.insert(add_v, -1) remove_v = ToolButton('gtk-remove') remove_v.connect('clicked', self._remove_value) remove_v.set_tooltip(_('Remove the selected value')) toolbarbox.toolbar.insert(remove_v, -1) self._remove_v = remove_v separator = Gtk.SeparatorToolItem() separator.set_draw(True) separator.set_expand(False) toolbarbox.toolbar.insert(separator, -1) # We create two sets: one for the main toolbar and one for the # chart toolbar. We choose which set to use based on the # screen width. self._create_chart_buttons(toolbarbox.toolbar) self._chart_button = ToolbarButton(icon_name='vbar') chart_toolbar = Gtk.Toolbar() self._create_chart_buttons(chart_toolbar) self._chart_button.props.page = chart_toolbar chart_toolbar.show_all() toolbarbox.toolbar.insert(self._chart_button, -1) separator = Gtk.SeparatorToolItem() separator.set_draw(True) separator.set_expand(False) toolbarbox.toolbar.insert(separator, -1) self._options_button = ToolbarButton(icon_name='preferences-system') options_toolbar = Gtk.Toolbar() self.chart_color_btn = ColorToolButton() self.chart_color_btn.set_color(_COLOR1) self.chart_color_btn.set_title(_('Chart Color')) options_toolbar.insert(self.chart_color_btn, -1) GObject.timeout_add(1000, self._connect_color_btn, self.chart_color_btn, self._set_chart_color) self.line_color_btn = ColorToolButton() self.line_color_btn.set_color(_COLOR2) self.line_color_btn.set_title(_('Line Color')) options_toolbar.insert(self.line_color_btn, -1) GObject.timeout_add(1000, self._connect_color_btn, self.line_color_btn, self._set_chart_line_color) separator = Gtk.SeparatorToolItem() separator.set_draw(True) separator.set_expand(False) options_toolbar.insert(separator, -1) h_label_icon = Icon(icon_name='hlabel') h_label_tool_item = Gtk.ToolItem() h_label_tool_item.add(h_label_icon) options_toolbar.insert(h_label_tool_item, -1) self.h_label = Entry(_('Horizontal label...')) self.h_label.entry.connect('changed', self._set_h_label) options_toolbar.insert(self.h_label, -1) separator = Gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(False) options_toolbar.insert(separator, -1) v_label_icon = Icon(icon_name='vlabel') v_label_tool_item = Gtk.ToolItem() v_label_tool_item.add(v_label_icon) options_toolbar.insert(v_label_tool_item, -1) self.v_label = Entry(_('Vertical label...')) self.v_label.entry.connect('changed', self._set_v_label) options_toolbar.insert(self.v_label, -1) self._options_button.props.page = options_toolbar options_toolbar.show_all() toolbarbox.toolbar.insert(self._options_button, -1) text_toolbar_btn = ToolbarButton() text_toolbar_btn.props.icon_name = 'format-text' text_toolbar_btn.props.label = _('Text') toolbarbox.toolbar.insert(text_toolbar_btn, -1) self._text_options_btn = text_toolbar_btn texttoolbar = Gtk.Toolbar() self.font_name_combo = FontComboBox() self.font_name_combo.set_font_name('Sans') def set_font_name(w): self._set_chart_font_options(font=w.get_font_name()) self.font_name_combo.connect("changed", set_font_name) texttoolbar.insert(ToolComboBox(self.font_name_combo), -1) self.font_size = FontSize() def set_font_size(w): self._set_chart_font_options(size=w.get_font_size()) self.font_size.connect("changed", set_font_size) texttoolbar.insert(self.font_size, -1) self.text_color_btn = ColorToolButton() self.text_color_btn.set_color(style.COLOR_BLACK.get_gdk_color()) self.text_color_btn.set_title(_('Font Color')) texttoolbar.insert(self.text_color_btn, -1) GObject.timeout_add(1000, self._connect_color_btn, self.text_color_btn, self._set_text_color) # self._title_font created in the top of the file self._title_font.connect('clicked', self._set_font_option, TITLE_FONT) self._title_font.set_tooltip(_('Title font')) self._title_font.props.icon_name = 'title-font' op_group = self._title_font texttoolbar.insert(self._title_font, 0) # self._labels_font created in the top of the file self._labels_font.connect('clicked', self._set_font_option, LABELS_FONT) self._labels_font.set_tooltip(_('Labels font')) self._labels_font.props.icon_name = 'labels-font' self._labels_font.props.group = op_group texttoolbar.insert(self._labels_font, 1) tick_font = RadioToolButton() tick_font.connect('clicked', self._set_font_option, TICK_FONT) tick_font.set_tooltip(_('Tick font')) tick_font.props.icon_name = 'tick-font' tick_font.props.group = op_group texttoolbar.insert(tick_font, 2) separator = Gtk.SeparatorToolItem() texttoolbar.insert(separator, 3) text_toolbar_btn.props.page = texttoolbar texttoolbar.show_all() separator = Gtk.SeparatorToolItem() separator.set_draw(True) separator.set_expand(False) toolbarbox.toolbar.insert(separator, -1) self._fullscreen_button = ToolButton('view-fullscreen') self._fullscreen_button.set_tooltip(_("Fullscreen")) self._fullscreen_button.props.accelerator = '<Alt>Return' self._fullscreen_button.connect('clicked', self.__fullscreen_cb) toolbarbox.toolbar.insert(self._fullscreen_button, -1) charthelp.create_help(toolbarbox.toolbar) separator = Gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(True) toolbarbox.toolbar.insert(separator, -1) stopbtn = StopButton(self) toolbarbox.toolbar.insert(stopbtn, -1) self.set_toolbar_box(toolbarbox) # CANVAS paned = Gtk.HPaned() box = Gtk.VBox() self.box = box # Set the info box width to 1/3 of the screen: def size_allocate_cb(widget, allocation): paned.disconnect(self._setup_handle) box_width = allocation.width / 3 box.set_size_request(box_width, -1) self._setup_handle = paned.connect('size_allocate', size_allocate_cb) scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.labels_and_values = ChartData(self) scroll.add(self.labels_and_values) self.labels_and_values.connect('label-changed', self._label_changed) self.labels_and_values.connect('value-changed', self._value_changed) box.pack_start(scroll, True, True, 0) liststore_toolbar = Gtk.Toolbar() move_up = ToolButton('go-up') move_up.set_tooltip(_('Move up')) move_up.connect('clicked', self._move_up) move_down = ToolButton('go-down') move_down.set_tooltip(_('Move down')) move_down.connect('clicked', self._move_down) liststore_toolbar.insert(move_up, 0) liststore_toolbar.insert(move_down, 1) box.pack_end(liststore_toolbar, False, False, 0) paned.add1(box) # CHARTS AREA eventbox = Gtk.EventBox() self.charts_area = ChartArea(self) eventbox.modify_bg(Gtk.StateType.NORMAL, _WHITE) eventbox.add(self.charts_area) self._notebook = Gtk.Notebook() self._notebook.set_property('show-tabs', False) self._notebook.append_page(eventbox, Gtk.Label()) # EMPTY WIDGETS empty_widgets = Gtk.EventBox() empty_widgets.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color()) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) mvbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) vbox.pack_start(mvbox, True, False, 0) image_icon = Icon(pixel_size=style.LARGE_ICON_SIZE, icon_name='chart', stroke_color=style.COLOR_BUTTON_GREY.get_svg(), fill_color=style.COLOR_TRANSPARENT.get_svg()) mvbox.pack_start(image_icon, False, False, style.DEFAULT_PADDING) label = Gtk.Label('<span foreground="%s"><b>%s</b></span>' % (style.COLOR_BUTTON_GREY.get_html(), _('No data'))) label.set_use_markup(True) mvbox.pack_start(label, False, False, style.DEFAULT_PADDING) hbox = Gtk.Box() open_image_btn = Gtk.Button() open_image_btn.connect('clicked', self._add_value) add_image = Gtk.Image.new_from_stock(Gtk.STOCK_ADD, Gtk.IconSize.BUTTON) buttonbox = Gtk.Box() buttonbox.pack_start(add_image, False, True, 0) buttonbox.pack_end(Gtk.Label(_('Add a value')), True, True, 5) open_image_btn.add(buttonbox) hbox.pack_start(open_image_btn, True, False, 0) mvbox.pack_start(hbox, False, False, style.DEFAULT_PADDING) empty_widgets.add(vbox) empty_widgets.show_all() self._notebook.append_page(empty_widgets, Gtk.Label()) paned.add2(self._notebook) self.set_canvas(paned) self.charts_area.connect('size_allocate', self._chart_size_allocate) self.show_all() Gdk.Screen.get_default().connect('size-changed', self._configure_cb) self._configure_cb()
class ViewToolbar(Gtk.Toolbar): __gtype_name__ = 'SugarViewToolbar' __gsignals__ = { 'query-changed': (GObject.SignalFlags.RUN_FIRST, None, ([str])), 'view-changed': (GObject.SignalFlags.RUN_FIRST, None, ([object])), } def __init__(self): Gtk.Toolbar.__init__(self) self._query = None self._autosearch_timer = None self._add_separator() tool_item = Gtk.ToolItem() self.insert(tool_item, -1) tool_item.show() self.search_entry = iconentry.IconEntry() self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'entry-search') self.set_placeholder_text_for_view(_('Home')) self.search_entry.add_clear_button() self.search_entry.set_width_chars(25) self.search_entry.connect('activate', self._entry_activated_cb) self.search_entry.connect('changed', self._entry_changed_cb) tool_item.add(self.search_entry) self.search_entry.show() self._add_separator(expand=True) self._favorites_button = FavoritesButton() self._favorites_button.connect('toggled', self.__view_button_toggled_cb, _FAVORITES_VIEW) self.insert(self._favorites_button, -1) self._list_button = RadioToolButton(icon_name='view-list') self._list_button.props.group = self._favorites_button self._list_button.props.tooltip = _('List view') self._list_button.props.accelerator = _('<Ctrl>2') self._list_button.connect('toggled', self.__view_button_toggled_cb, _LIST_VIEW) self.insert(self._list_button, -1) self._add_separator() def show_view_buttons(self): self._favorites_button.show() self._list_button.show() def hide_view_buttons(self): self._favorites_button.hide() self._list_button.hide() def clear_query(self): self.search_entry.props.text = '' def set_placeholder_text_for_view(self, view_name): text = _('Search in %s') % view_name self.search_entry.set_placeholder_text(text) def _add_separator(self, expand=False): separator = Gtk.SeparatorToolItem() separator.props.draw = False if expand: separator.set_expand(True) else: separator.set_size_request(style.GRID_CELL_SIZE, style.GRID_CELL_SIZE) self.insert(separator, -1) separator.show() def _entry_activated_cb(self, entry): if self._autosearch_timer: GObject.source_remove(self._autosearch_timer) new_query = entry.props.text if self._query != new_query: self._query = new_query self.emit('query-changed', self._query) def _entry_changed_cb(self, entry): if not entry.props.text: entry.activate() return if self._autosearch_timer: GObject.source_remove(self._autosearch_timer) self._autosearch_timer = GObject.timeout_add(_AUTOSEARCH_TIMEOUT, self._autosearch_timer_cb) def _autosearch_timer_cb(self): logging.debug('_autosearch_timer_cb') self._autosearch_timer = None self.search_entry.activate() return False def __view_button_toggled_cb(self, button, view): if button.props.active: self.emit('view-changed', view)
def _insert_stop_play_button(self, toolbar): self.stop_play_toolbar = ToolbarButton() st_toolbar = self.stop_play_toolbar st_toolbar.props.page = Gtk.Toolbar() st_toolbar.props.icon_name = 'media-playback-stop' self.stop_play_state = True self.stop_play = ToolButton('media-playback-stop') self.stop_play.set_tooltip(_('Stop')) self.stop_play.set_accelerator(_('<ctrl>space')) self.stop_play.connect('clicked', self.stop_play_cb) self._insert_item(st_toolbar, self.stop_play) self.stop_play.show() slowest_button = RadioToolButton(group=None) slowest_button.set_icon_name('slow-walk-milton-raposo') slowest_button.set_tooltip(_('Run slower')) slowest_button.connect('clicked', self._set_fps_cb, SLOWEST_FPS) self._insert_item(st_toolbar, slowest_button) slowest_button.show() slow_button = RadioToolButton(group=slowest_button) slow_button.set_icon_name('walking') slow_button.set_tooltip(_('Run slow')) slow_button.connect('clicked', self._set_fps_cb, SLOW_FPS) self._insert_item(st_toolbar, slow_button) slow_button.show() fast_button = RadioToolButton(group=slowest_button) fast_button.set_icon_name('running') fast_button.set_tooltip('Run fast') fast_button.connect('clicked', self._set_fps_cb, FAST_FPS) self._insert_item(st_toolbar, fast_button) fast_button.show() fast_button.set_active(True) toolbar.insert(self.stop_play_toolbar, -1) self.stop_play_toolbar.show_all()
def __init__(self, activity_name, has_local_help): Gtk.Toolbar.__init__(self) self._webview = None self._add_separator(False) if has_local_help and get_social_help_server(): help_button = RadioToolButton() icon = Icon( icon_name="toolbar-help", pixel_size=style.STANDARD_ICON_SIZE, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg(), ) help_button.set_icon_widget(icon) icon.show() help_button.props.tooltip = _("Help Manual") help_button.connect("toggled", self.__button_toggled_cb, _MODE_HELP) self.insert(help_button, -1) help_button.show() self._add_separator(False) social_help_button = RadioToolButton() icon = Icon( icon_name="toolbar-social-help", pixel_size=style.STANDARD_ICON_SIZE, fill_color=style.COLOR_TRANSPARENT.get_svg(), stroke_color=style.COLOR_WHITE.get_svg(), ) social_help_button.set_icon_widget(icon) icon.show() social_help_button.props.tooltip = _("Social Help") social_help_button.props.group = help_button social_help_button.connect("toggled", self.__button_toggled_cb, _MODE_SOCIAL_HELP) self.insert(social_help_button, -1) social_help_button.show() self._add_separator(False) self._back_button = ToolButton(icon_name="go-previous-paired") self._back_button.props.tooltip = _("Back") self._back_button.connect("clicked", self.__back_clicked_cb) self.insert(self._back_button, -1) self._back_button.show() self._forward_button = ToolButton(icon_name="go-next-paired") self._forward_button.props.tooltip = _("Forward") self._forward_button.connect("clicked", self.__forward_clicked_cb) self.insert(self._forward_button, -1) self._forward_button.show() title = _("Help: %s") % activity_name self._label = Gtk.Label() self._label.set_markup("<b>%s</b>" % title) self._label.set_alignment(0, 0.5) self._add_widget(self._label) self._add_separator(True) stop = ToolButton(icon_name="dialog-cancel") stop.set_tooltip(_("Close")) stop.connect("clicked", self.__stop_clicked_cb) self.insert(stop, -1) stop.show()
def _build_palette(self, tool): if tool.palette_enabled: if tool.palette_mode == tools.PALETTE_MODE_ICONS: grid = Gtk.Grid() for s, settings in enumerate(tool.palette_settings): self.game.toolList[tool.name].buttons.append([]) for i, icon_value in enumerate(settings['icon_values']): if i == 0: button = RadioToolButton(group=None) firstbutton = button else: button = RadioToolButton(group=firstbutton) button.set_icon_name(settings['icons'][i]) button.connect('clicked', self._palette_icon_clicked, tool.name, s, settings['name'], icon_value) grid.attach(button, i, s, 1, 1) self.game.toolList[tool.name].buttons[s].append(button) button.show() if settings['active'] == settings['icons'][i]: button.set_icon_name(settings['icons'][i] + '-selected') button.set_active(True) return grid else: return None