def __init__(self, toolbar): self._timer_combo = TimerCombo() toolbar.insert(self._timer_combo, -1) self._duration_combo = DurationCombo() toolbar.insert(self._duration_combo, -1) preferences_toolbar = gtk.Toolbar() combo = gtk.combo_box_new_text() self.quality = ToolComboBox(combo=combo, label_text=_('Quality:')) self.quality.combo.append_text(_('Low')) if hw.get_xo_version() != 1: # Disable High quality on XO-1. The system simply isn't beefy # enough for recording to work well. self.quality.combo.append_text(_('High')) self.quality.combo.set_active(0) self.quality.show_all() preferences_toolbar.insert(self.quality, -1) preferences_button = ToolbarButton() preferences_button.set_page(preferences_toolbar) preferences_button.props.icon_name = 'preferences-system' preferences_button.props.label = _('Preferences') toolbar.insert(preferences_button, -1)
def initialize_display(self): self._logger = logging.getLogger('butialo-activity') # Top toolbar with share and close buttons: if OLD_TOOLBAR: activity_toolbar = self.toolbox.get_activity_toolbar() else: activity_toolbar = self.activity_button.page # add 'make bundle' entry to 'keep' palette. palette = activity_toolbar.keep.get_palette() # XXX: should clear out old palette entries? from sugar.graphics.menuitem import MenuItem from sugar.graphics.icon import Icon menu_item = MenuItem(_('As Butialo Document')) menu_item.set_image(Icon(file=('%s/activity/activity-icon.svg' % get_bundle_path()), icon_size=gtk.ICON_SIZE_MENU)) menu_item.connect('activate', self.keepbutton_cb) palette.menu.append(menu_item) menu_item.show() #xop guardar como bundle #menu_item = MenuItem(_('As Activity Bundle')) #menu_item.set_image(Icon(file=('%s/activity/activity-default.svg' % # get_bundle_path()), # icon_size=gtk.ICON_SIZE_MENU)) #menu_item.connect('activate', self.makebutton_cb) #palette.menu.append(menu_item) #menu_item.show() self._edit_toolbar = activity.EditToolbar() if OLD_TOOLBAR: activity_toolbar = gtk.Toolbar() self.toolbox.add_toolbar(_('Actions'), activity_toolbar) self.toolbox.set_current_toolbar(1) self.toolbox.add_toolbar(_('Edit'), self._edit_toolbar) else: edit_toolbar_button = ToolbarButton() edit_toolbar_button.set_page(self._edit_toolbar) edit_toolbar_button.props.icon_name = 'toolbar-edit' edit_toolbar_button.props.label = _('Edit') self.get_toolbar_box().toolbar.insert(edit_toolbar_button, -1) self._edit_toolbar.show() self._edit_toolbar.undo.connect('clicked', self.__undobutton_cb) self._edit_toolbar.redo.connect('clicked', self.__redobutton_cb) self._edit_toolbar.copy.connect('clicked', self.__copybutton_cb) self._edit_toolbar.paste.connect('clicked', self.__pastebutton_cb) if OLD_TOOLBAR: actions_toolbar = activity_toolbar else: actions_toolbar = self.get_toolbar_box().toolbar # The "go" button goicon_bw = gtk.Image() goicon_bw.set_from_file("%s/icons/run_bw.svg" % os.getcwd()) goicon_color = gtk.Image() goicon_color.set_from_file("%s/icons/run_color.svg" % os.getcwd()) gobutton = ToolButton(label=_("_Run!")) gobutton.props.accelerator = _('<alt>r') gobutton.set_icon_widget(goicon_bw) gobutton.set_tooltip("Run") gobutton.connect('clicked', self.flash_cb, dict({'bw': goicon_bw, 'color': goicon_color})) gobutton.connect('clicked', self.gobutton_cb) actions_toolbar.insert(gobutton, -1) # The "stop" button stopicon_bw = gtk.Image() stopicon_bw.set_from_file("%s/icons/stopit_bw.svg" % os.getcwd()) stopicon_color = gtk.Image() stopicon_color.set_from_file("%s/icons/stopit_color.svg" % os.getcwd()) stopbutton = ToolButton(label=_("_Stop")) stopbutton.props.accelerator = _('<alt>s') stopbutton.set_icon_widget(stopicon_bw) stopbutton.connect('clicked', self.flash_cb, dict({'bw': stopicon_bw, 'color': stopicon_color})) stopbutton.connect('clicked', self.stopbutton_cb) stopbutton.set_tooltip("Stop Running") actions_toolbar.insert(stopbutton, -1) # The "refresh" button refreshicon_bw = gtk.Image() refreshicon_bw.set_from_file("%s/icons/butiaoff.svg" % os.getcwd()) refreshicon_color = gtk.Image() refreshicon_color.set_from_file("%s/icons/butiaon.svg" % os.getcwd()) refreshbutton = ToolButton(label=_("_Reload")) refreshbutton.props.accelerator = _('<alt>d') refreshbutton.set_icon_widget(refreshicon_bw) refreshbutton.connect('clicked', self.flash_cb, dict({'bw': refreshicon_bw, 'color': refreshicon_color})) refreshbutton.connect('clicked', self.initialize_snippets_cb) refreshbutton.set_tooltip("Reload devices") actions_toolbar.insert(refreshbutton, -1) # The "clear" button #clearicon_bw = gtk.Image() #clearicon_bw.set_from_file("%s/icons/eraser_bw.svg" % os.getcwd()) #clearicon_color = gtk.Image() #clearicon_color.set_from_file("%s/icons/eraser_color.svg" % # os.getcwd()) #clearbutton = ToolButton(label=_("_Clear")) #clearbutton.props.accelerator = _('<alt>c') #clearbutton.set_icon_widget(clearicon_bw) #clearbutton.connect('clicked', self.clearbutton_cb) #clearbutton.connect('clicked', self.flash_cb, dict({'bw': clearicon_bw, # 'color': clearicon_color})) #clearbutton.set_tooltip("Clear") #actions_toolbar.insert(clearbutton, -1) # The "beautify" button beautifyicon_bw = gtk.Image() beautifyicon_bw.set_from_file("%s/icons/beautifyicon_bw.svg" % os.getcwd()) beautifyicon_color = gtk.Image() beautifyicon_color.set_from_file("%s/icons/beautifyicon_color.svg" % os.getcwd()) beautifybutton = ToolButton(label=_("_Auto-format")) beautifybutton.props.accelerator = _('<alt>f') beautifybutton.set_icon_widget(beautifyicon_bw) beautifybutton.connect('clicked', self.beautifybutton_cb) beautifybutton.connect('clicked', self.flash_cb, dict({'bw': beautifyicon_bw, 'color': beautifyicon_color})) beautifybutton.set_tooltip("Auto-format") actions_toolbar.insert(beautifybutton, -1) activity_toolbar.show() if not OLD_TOOLBAR: separator = gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) self.get_toolbar_box().toolbar.insert(separator, -1) separator.show() stop = StopButton(self) self.get_toolbar_box().toolbar.insert(stop, -1) # Main layout. self.hpane = gtk.HPaned() self.vpane = gtk.VPaned() # The sidebar. self.sidebar = gtk.VBox() self.model = gtk.TreeStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) treeview = gtk.TreeView(self.model) cellrenderer = gtk.CellRendererText() treecolumn = gtk.TreeViewColumn(_("Available"), cellrenderer, text=1) treeview.get_selection().connect("changed", self.selection_cb) treeview.append_column(treecolumn) treeview.set_size_request(int(SIZE_X * 0.3), SIZE_Y) # Create scrollbars around the view. scrolled = gtk.ScrolledWindow() scrolled.add(treeview) self.sidebar.pack_start(scrolled) self.hpane.add1(self.sidebar) #root = os.path.join(get_bundle_path(), 'data') #initialize snippets self.initialize_snippets_cb(None) # Source buffer import gtksourceview2 global text_buffer lang_manager = gtksourceview2.language_manager_get_default() if hasattr(lang_manager, 'list_languages'): langs = lang_manager.list_languages() else: lang_ids = lang_manager.get_language_ids() langs = [lang_manager.get_language(lang_id) for lang_id in lang_ids] for lang in langs: for m in lang.get_mime_types(): if m == "text/x-lua": text_buffer.set_language(lang) if hasattr(text_buffer, 'set_highlight'): text_buffer.set_highlight(True) else: text_buffer.set_highlight_syntax(True) # The GTK source view window self.text_view = gtksourceview2.View(text_buffer) self.text_view.set_size_request(0, int(SIZE_Y * 0.5)) self.text_view.set_editable(True) self.text_view.set_cursor_visible(True) self.text_view.set_show_line_numbers(True) self.text_view.set_wrap_mode(gtk.WRAP_CHAR) self.text_view.set_insert_spaces_instead_of_tabs(True) self.text_view.set_tab_width(2) self.text_view.set_auto_indent(True) self.text_view.modify_font(pango.FontDescription("Monospace " + str(font_zoom(style.FONT_SIZE)))) # We could change the color theme here, if we want to. #mgr = gtksourceview2.style_manager_get_default() #style_scheme = mgr.get_scheme('kate') #self.text_buffer.set_style_scheme(style_scheme) codesw = gtk.ScrolledWindow() codesw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) codesw.add(self.text_view) self.vpane.add1(codesw) # An hbox to hold the vte window and its scrollbar. outbox = gtk.HBox() # The vte python window self._vte = vte.Terminal() self._vte.set_encoding('utf-8') self._vte.set_size(30, 5) font = 'Monospace ' + str(font_zoom(style.FONT_SIZE)) self._vte.set_font(pango.FontDescription(font)) self._vte.set_colors(gtk.gdk.color_parse('#000000'), gtk.gdk.color_parse('#E7E7E7'), []) self._vte.connect('child_exited', self.child_exited_cb) self._child_exited_handler = None self._vte.drag_dest_set(gtk.DEST_DEFAULT_ALL, [("text/plain", 0, TARGET_TYPE_TEXT)], gtk.gdk.ACTION_COPY) self._vte.connect('drag_data_received', self.vte_drop_cb) outbox.pack_start(self._vte) outsb = gtk.VScrollbar(self._vte.get_adjustment()) outsb.show() outbox.pack_start(outsb, False, False, 0) self.vpane.add2(outbox) self.hpane.add2(self.vpane) return self.hpane