def __init__(self, calc): gtk.Toolbar.__init__(self) copy_tool = ToolButton('edit-copy') copy_tool.set_tooltip(_('Copy')) copy_tool.set_accelerator(_('<ctrl>c')) copy_tool.connect('clicked', lambda x: calc.text_copy()) self.insert(copy_tool, -1) menu_item = MenuItem(_('Cut')) try: menu_item.set_accelerator(_('<ctrl>x')) except AttributeError: pass menu_item.connect('activate', lambda x: calc.text_cut()) menu_item.show() copy_tool.get_palette().menu.append(menu_item) self.insert(IconToolButton('edit-paste', _('Paste'), lambda x: calc.text_paste(), alt_html='Paste'), -1) self.show_all()
def build_toolbar(self): toolbar_box = ToolbarBox() self.set_toolbar_box(toolbar_box) toolbar_box.show() activity_button = ActivityToolbarButton(self) toolbar_box.toolbar.insert(activity_button, -1) activity_button.show() # Pause/Play button: stop_play = ToolButton('media-playback-stop') stop_play.set_tooltip(_("Stop")) stop_play.set_accelerator(_('<ctrl>space')) stop_play.connect('clicked', self._stop_play_cb) stop_play.show() toolbar_box.toolbar.insert(stop_play, -1) # Blank space (separator) and Stop button at the end: separator = gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) toolbar_box.toolbar.insert(separator, -1) separator.show() stop_button = StopButton(self) toolbar_box.toolbar.insert(stop_button, -1) stop_button.show()
def __init__(self, main_area): gtk.Toolbar.__init__(self) self._main_area = main_area tool = ToolButton('zoom-best-fit') tool.set_tooltip(_('Fit to window')) tool.set_accelerator(_('<ctrl>9')) tool.connect('clicked', self.__zoom_tofit_cb) self.insert(tool, -1) tool = ToolButton('zoom-original') tool.set_tooltip(_('Original size')) tool.set_accelerator(_('<ctrl>0')) tool.connect('clicked', self.__zoom_original_cb) self.insert(tool, -1) tool = ToolButton('zoom-out') tool.set_tooltip(_('Zoom out')) tool.set_accelerator(_('<ctrl>minus')) tool.connect('clicked', self.__zoom_out_cb) self.insert(tool, -1) tool = ToolButton('zoom-in') tool.set_tooltip(_('Zoom in')) tool.set_accelerator(_('<ctrl>equal')) tool.connect('clicked', self.__zoom_in_cb) self.insert(tool, -1) self.show_all()
def __init__(self, main_area): gtk.Toolbar.__init__(self) self._main_area = main_area tool = ToolButton('zoom-best-fit') tool.set_tooltip(_('Fit to window')) tool.set_accelerator(_('<ctrl>9')) tool.connect('clicked', self.__zoom_tofit_cb) self.insert(tool, -1) tool = ToolButton('zoom-original') tool.set_tooltip(_('Original size')) tool.set_accelerator(_('<ctrl>0')) tool.connect('clicked', self.__zoom_original_cb) self.insert(tool, -1) tool = ToolButton('zoom-out') tool.set_tooltip(_('Zoom out')) tool.set_accelerator(_('<ctrl>minus')) tool.connect('clicked', self.__zoom_out_cb) self.insert(tool, -1) tool = ToolButton('zoom-in') tool.set_tooltip(_('Zoom in')) tool.set_accelerator(_('<ctrl>equal')) tool.connect('clicked', self.__zoom_in_cb) self.insert(tool, -1) self.show_all()
def build_calibrate_toolbar(self, toolbox): calibrate_bar = gtk.Toolbar() item1 = gtk.ToolItem() label1 = gtk.Label() label1.set_text(' ' + _('Calibrate/Follow') + ' ') item1.add(label1) calibrate_bar.insert(item1, -1) stop_calibrate = ToolButton('media-playback-stop') stop_calibrate.set_tooltip(_('Stop')) stop_calibrate.set_accelerator('<ctrl>space') stop_calibrate.connect('clicked', self.stop_execute) calibrate_bar.insert(stop_calibrate, -1) separator1 = gtk.SeparatorToolItem() separator1.props.draw = True calibrate_bar.insert(separator1, -1) item3 = gtk.ToolItem() self.label_color_red = gtk.Label() self.label_color_red.set_text(' ' + _('Calibrated color:') + ' ' + _('Red') + ' ') item3.add(self.label_color_red) calibrate_bar.insert(item3, -1) item4 = gtk.ToolItem() self.red_spin = gtk.SpinButton() self.red_spin.set_range(0, 255) self.red_spin.set_increments(1, 10) self.red_spin.props.value = self.colorC[0] self.red_spin.connect('notify::value', self.red_spin_color) item4.add(self.red_spin) calibrate_bar.insert(item4, -1) item5 = gtk.ToolItem() self.label_color_green = gtk.Label() self.label_color_green.set_text(' ' + _('Green') + ' ') item5.add(self.label_color_green) calibrate_bar.insert(item5, -1) item6 = gtk.ToolItem() self.green_spin = gtk.SpinButton() self.green_spin.set_range(0, 255) self.green_spin.set_increments(1, 10) self.green_spin.props.value = self.colorC[1] self.green_spin.connect('notify::value', self.green_spin_color) item6.add(self.green_spin) calibrate_bar.insert(item6, -1) item7 = gtk.ToolItem() self.label_color_blue = gtk.Label() self.label_color_blue.set_text(' ' + _('Blue') + ' ') item7.add(self.label_color_blue) calibrate_bar.insert(item7, -1) item8 = gtk.ToolItem() self.blue_spin = gtk.SpinButton() self.blue_spin.set_range(0, 255) self.blue_spin.set_increments(1, 10) self.blue_spin.props.value = self.colorC[2] self.blue_spin.connect('notify::value', self.blue_spin_color) item8.add(self.blue_spin) calibrate_bar.insert(item8, -1) calibrate_bar.show_all() calibrate_button = ToolbarButton(label=_('Calibrate'), page=calibrate_bar, icon_name='preferences-system') toolbox.toolbar.insert(calibrate_button, -1) calibrate_button.show()
def __init__(self, handle): activity.Activity.__init__(self, handle) try: # Use new >= 0.86 toolbar design self.max_participants = 1 toolbar_box = ToolbarBox() activity_button = ActivityToolbarButton(self) toolbar_box.toolbar.insert(activity_button, 0) separator = gtk.SeparatorToolItem() separator.props.draw = True activity_button.props.page.insert(separator, -1) separator.show() tool = ToolButton('pdf-export') tool.set_tooltip(_('Portable Document Format (PDF)')) tool.connect('clicked', self.__export_pdf_cb) activity_button.props.page.insert(tool, -1) tool.show() tool = ToolButton('png-export') tool.set_tooltip(_('Portable Network Graphic (PNG)')) tool.connect('clicked', self.__export_png_cb) activity_button.props.page.insert(tool, -1) tool.show() self.edit_toolbar = ToolbarButton() self.edit_toolbar.props.page = EditToolbar(self) self.edit_toolbar.props.icon_name = 'toolbar-edit' self.edit_toolbar.props.label = _('Edit'), toolbar_box.toolbar.insert(self.edit_toolbar, -1) self._undo = UndoManager.UndoManager( self, self.edit_toolbar.props.page.undo.child, self.edit_toolbar.props.page.redo.child) self.__build_main_canvas_area() tool = ToolbarButton() tool.props.page = ViewToolbar(self._main_area) tool.props.icon_name = 'toolbar-view' tool.props.label = _('View'), toolbar_box.toolbar.insert(tool, -1) separator = gtk.SeparatorToolItem() toolbar_box.toolbar.insert(separator, -1) separator = gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) separator.show() toolbar_box.toolbar.insert(separator, -1) target_toolbar = toolbar_box.toolbar tool_offset = 4 tool = StopButton(self) toolbar_box.toolbar.insert(tool, -1) toolbar_box.show_all() self.set_toolbar_box(toolbar_box) except NameError: # Use old <= 0.84 toolbar design toolbox = activity.ActivityToolbox(self) self.set_toolbox(toolbox) activity_toolbar = toolbox.get_activity_toolbar() keep_palette = activity_toolbar.keep.get_palette() menu_item = MenuItem(_('Portable Document Format (PDF)')) menu_item.connect('activate', self.__export_pdf_cb) keep_palette.menu.append(menu_item) menu_item.show() menu_item = MenuItem(_('Portable Network Graphic (PNG)')) menu_item.connect('activate', self.__export_png_cb) keep_palette.menu.append(menu_item) menu_item.show() self.edit_toolbar = EditToolbar(self) toolbox.add_toolbar(_('Edit'), self.edit_toolbar) separator = gtk.SeparatorToolItem() self.edit_toolbar.insert(separator, 0) self.edit_toolbar.show() target_toolbar = self.edit_toolbar tool_offset = 0 self._undo = UndoManager.UndoManager(self, self.edit_toolbar.undo.child, self.edit_toolbar.redo.child) self.__build_main_canvas_area() view_toolbar = ViewToolbar(self._main_area) toolbox.add_toolbar(_('View'), view_toolbar) activity_toolbar = toolbox.get_activity_toolbar() activity_toolbar.share.props.visible = False toolbox.set_current_toolbar(1) self.mods = [None] * 6 self.mods[0] = RadioToolButton(named_icon='select-mode') self.mods[0].set_tooltip(_('Edit mode')) self.mods[0].set_accelerator(_('<ctrl>e')) self.mods[0].set_group(None) self.mods[0].connect('clicked', self.__mode_cb, MMapArea.MODE_NULL) target_toolbar.insert(self.mods[0], tool_offset) self.mods[1] = RadioToolButton(named_icon='text-mode') self.mods[1].set_tooltip(_('Text mode')) self.mods[1].set_accelerator(_('<ctrl>t')) self.mods[1].set_group(self.mods[0]) self.mods[1].connect('clicked', self.__mode_cb, MMapArea.MODE_TEXT) target_toolbar.insert(self.mods[1], tool_offset + 1) self.mods[2] = RadioToolButton(named_icon='draw-mode') self.mods[2].set_group(self.mods[0]) self.mods[2].set_tooltip(_('Drawing mode')) self.mods[2].set_accelerator(_('<ctrl>d')) self.mods[2].connect('clicked', self.__mode_cb, MMapArea.MODE_DRAW) target_toolbar.insert(self.mods[2], tool_offset + 2) self.mods[3] = RadioToolButton(named_icon='image-mode') self.mods[3].set_group(self.mods[0]) self.mods[3].set_tooltip(_('Image add mode')) self.mods[3].set_accelerator(_('<ctrl>i')) self.mods[3].connect('clicked', self.__mode_cb, MMapArea.MODE_IMAGE) target_toolbar.insert(self.mods[3], tool_offset + 3) self.mods[5] = RadioToolButton(named_icon='label-mode') self.mods[5].set_tooltip(_('Label mode')) self.mods[5].set_accelerator(_('<ctrl>a')) self.mods[5].set_group(self.mods[0]) self.mods[5].connect('clicked', self.__mode_cb, MMapArea.MODE_LABEL) target_toolbar.insert(self.mods[5], tool_offset + 4) separator = gtk.SeparatorToolItem() target_toolbar.insert(separator, tool_offset + 5) tool = ToolButton('link') tool.set_tooltip(_('Link/unlink two selected thoughts')) tool.set_accelerator(_('<ctrl>l')) tool.connect('clicked', self.__link_cb) target_toolbar.insert(tool, tool_offset + 6) tool = ToolButton('edit-delete') tool.set_tooltip(_('Erase selected thought(s)')) tool.connect('clicked', self.__delete_cb) target_toolbar.insert(tool, tool_offset + 7) self.show_all() self._mode = MMapArea.MODE_TEXT self._main_area.set_mode(self._mode) self.mods[MMapArea.MODE_TEXT].set_active(True) self.set_focus_child(self._main_area)
class Explorer(activity.Activity): '''Es la clase que crea la actividad''' def __init__(self, handle): activity.Activity.__init__(self, handle, True) # ToolbarBox: toolbarbox = ToolbarBox() activitybutton = ActivityButton(self) toolbarbox.toolbar.insert(activitybutton, 0) separator = gtk.SeparatorToolItem() toolbarbox.toolbar.insert(separator, -1) explorer_btn = RadioToolButton() explorer_btn.set_tooltip('Explorador') explorer_btn.props.icon_name = 'activity-explorer' toolbarbox.toolbar.insert(explorer_btn, -1) self._goup = ToolButton('to-subjects') self._goup.connect('clicked', self._go_up_clicked) self._goup.set_tooltip('Ver Materias') self._goup.set_accelerator("<Shift><M>") self._goup.set_sensitive(False) toolbarbox.toolbar.insert(self._goup, -1) self._select_all = ToolButton('select-all') self._select_all.set_tooltip('Seleccionar todo') self._select_all.connect("clicked", self._select_all_clicked) self._select_all.set_sensitive(False) toolbarbox.toolbar.insert(self._select_all, -1) self._download = ToolButton('download') self._download.set_tooltip('Descargar') self._download.set_sensitive(False) toolbarbox.toolbar.insert(self._download, -1) separator = gtk.SeparatorToolItem() toolbarbox.toolbar.insert(separator, -1) homework_btn = RadioToolButton() homework_btn.set_tooltip('Tareas Domiciliarias') homework_btn.props.icon_name = 'homework' homework_btn.props.group = explorer_btn toolbarbox.toolbar.insert(homework_btn, -1) open_btn = ToolButton() open_btn.set_tooltip('Seleccionar tarea') open_btn.props.icon_name = 'open-from-journal' open_btn.set_sensitive(False) open_btn.connect("clicked", self._select_hw_from_journal) toolbarbox.toolbar.insert(open_btn, -1) self._send = ToolButton() self._send.set_tooltip('Enviar tarea') self._send.connect('clicked', self._send_hw_to_server) self._send.props.icon_name = 'document-send' self._send.set_sensitive(False) toolbarbox.toolbar.insert(self._send, -1) homework_btn.connect('clicked', self.homework_btn_cb, open_btn) explorer_btn.connect('clicked', self.explorer_btn_cb, open_btn) separator = gtk.SeparatorToolItem() separator.set_expand(True) separator.set_draw(False) toolbarbox.toolbar.insert(separator, -1) stopbtn = StopButton(self) toolbarbox.toolbar.insert(stopbtn, -1) self.set_toolbar_box(toolbarbox) self._one_alert = None # Canvas self._canvas = gtk.EventBox() self._name = '' self._last_name = '' self._hw_title = '' self._hw_description = '' self._hw_path = '' self._hw_mimetype = '' self.set_canvas(self._canvas) self.show_all() if not utils.get_group(): self.choose_group() else: self._do_canvas() def homework_btn_cb(self, button, open_btn): '''Se ejecuta cuando se hace click en el boton de tareas domiciliarias, se encarga de cambiar de pagina''' self._notebook.set_current_page(2) self._goup.set_sensitive(False) self._select_all.set_sensitive(False) self._download.set_sensitive(False) open_btn.set_sensitive(True) self._send.set_sensitive(False) def explorer_btn_cb(self, widget, open_btn): '''Se ejecuta cuando se hace click en el boton del explorador, se encarga de cambiar de pagina''' self._notebook.set_current_page(0) open_btn.set_sensitive(False) self._send.set_sensitive(False) def _select_hw_from_journal(self, widget): '''Abre un selector de objetos del diario''' chooser = ObjectChooser() response = chooser.run() if response == gtk.RESPONSE_ACCEPT: jobject = chooser.get_selected_object() self._hw_path = str(jobject.get_file_path()) self._notebook.set_current_page(-1) self._send.set_sensitive(True) self._hw_title.set_text(jobject.get_metadata()["title"]) self._hw_mimetype = mime.get_for_file(self._hw_path) def _send_hw_to_server(self, widget): '''Envia las tareas domiciliarias''' _buffer = self._hw_description.get_buffer() start = _buffer.get_start_iter() end = _buffer.get_end_iter() comments = _buffer.get_text(start, end) utils.send_homework(self._subjects._sftp, self._subjects_selector.\ get_active_text(), self._hw_path, self._hw_title.get_text(), comments, self._hw_mimetype) self._notebook.set_current_page(2) def _set_text(self, widget, name=True): if name: self._name = widget.get_text() else: self._last_name = widget.get_text() def _do_homework_canvas(self): '''Arma el canvas para la tareas domiciliarias ''' main_container = gtk.VBox() self._hw_title = widgets.Entry('Escriba el titulo aqui') main_container.pack_start(self._hw_title, False, True, 0) label = gtk.Label('Comentarios:') main_container.pack_start(label, False, True, 10) self._hw_description = gtk.TextView() self._hw_description.set_property('wrap-mode', gtk.WRAP_WORD_CHAR) main_container.pack_start(self._hw_description, True, True, 5) hbox = gtk.HBox() main_container.pack_start(hbox, False, True) self._subjects_selector = widgets.SubjectChooser() hbox.pack_start(self._subjects_selector, False, True, 0) return main_container def choose_group(self): '''Selector de los grupos''' vbox = gtk.VBox() vbox.set_border_width(20) title = gtk.Label('Registrate en Aula Virtual') title.modify_font(pango.FontDescription('bold 25')) vbox.pack_start(title, False, padding=40) note = gtk.Label('<span foreground="#FF0000"><i>\ * Por favor ingresa los datos correctamente.</i></span>') note.set_use_markup(True) vbox.pack_start(note, False, True, padding=5) hbox = gtk.HBox() vbox.pack_start(hbox, False, padding=10) label = gtk.Label("Nombre: ") hbox.pack_start(label, False, padding=10) entry = gtk.Entry() entry.connect('changed', self._set_text) hbox.pack_start(entry, True, padding=0) hbox1 = gtk.HBox() hbox1.set_border_width(20) label = gtk.Label("Apellido: ") hbox1.pack_start(label, False, padding=0) entry = gtk.Entry() entry.connect('changed', self._set_text, False) hbox1.pack_start(entry, True, padding=0) vbox.pack_start(hbox1, False, padding=10) hbox2 = gtk.HBox() vbox.pack_start(hbox2, False, padding=10) label_combo = gtk.Label("Elige tu grupo: ") hbox2.pack_start(label_combo, False, True, padding=10) combo = gtk.ComboBox() liststore = gtk.ListStore(str) combo.set_model(liststore) cell = gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 0) hbox2.pack_start(combo, False, True, padding=10) for group in GROUPS: liststore.append([group]) combo.set_active(0) accept = gtk.Button('Aceptar') accept.connect('clicked', self._accept_clicked, combo, entry, vbox) box = gtk.HBox() box.pack_end(accept, False) vbox.pack_start(box, False) self._canvas.add(vbox) self.show_all() def _accept_clicked(self, widget, combo, entry, vbox): '''Se encarga de guardar la informacion de la maquina en el sevidor''' group = GROUPS[combo.get_active()] utils.GROUP = group vbox.destroy() self._do_canvas() utils.save_me(self._subjects._sftp, group, '%s %s' % (self._name, self._last_name)) def _go_up_clicked(self, widget): '''Mustra la lista de materias''' self._notebook.set_current_page(0) self._goup.set_sensitive(False) self._select_all.set_sensitive(False) self._download.set_sensitive(False) def _select_all_clicked(self, widget): '''Selecciona todo''' self._documents.select_all() def _do_canvas(self): '''Crea el canvas principal''' scroll_documents = gtk.ScrolledWindow() scroll_documents.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) self._documents = Documents(self) self._notebook = gtk.Notebook() self._subjects = Subjects(self._notebook, self._documents, self._go_up_clicked) self._subjects.connect('selected', lambda w: self._goup.set_sensitive(True)) scroll_documents.add_with_viewport(self._documents) scroll_subjects = gtk.ScrolledWindow() scroll_subjects.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) scroll_subjects.add_with_viewport(self._subjects) self._notebook.append_page(scroll_subjects) self._notebook.append_page(scroll_documents) self._notebook.append_page(documents.HomeWorks(self._subjects._sftp)) self._notebook.append_page(self._do_homework_canvas()) self._notebook.set_property("show-tabs", False) self._canvas.add(self._notebook) self._canvas.show_all() self._notebook.set_current_page(0) def get_alert(self): '''Devuelve la alerta''' if not self._one_alert: self._one_alert = Alert() self.add_alert(self._one_alert) return self._one_alert
def __init__(self, handle): activity.Activity.__init__(self, handle, True) self.max_participants = 1 # ****** Editor ****** self.editor = Editor(self) self.editor.set_size_request(800, 790) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(self.editor) scroll.show_all() vbox = gtk.VBox() vbox.pack_start(scroll, True, True, 0) vbox.show_all() self.set_canvas(vbox) # ****** Toolbars ****** self.toolbar_box = ToolbarBox() activity_button = ActivityToolbarButton(self) activity_toolbar = activity_button.page # Abrir objeto / Open object open_obj_btn = ToolButton("open-from-journal") open_obj_btn.connect("clicked", file_choosers.open_from_journal, None, self) open_obj_btn.set_tooltip(_("Open object from journal")) activity_toolbar.insert(open_obj_btn, -1) # Separador / Separator separator = gtk.SeparatorToolItem() separator.set_draw(True) separator.set_expand(False) activity_toolbar.insert(separator, -1) # ****** Open File button ****** open_btn = ToolButton("fileopen") open_btn.set_tooltip(_("Open File")) open_btn.set_accelerator('<ctrl>o') open_btn.connect("clicked", self.open_file) activity_toolbar.insert(open_btn, -1) # ****** Save File button ****** save_btn = ToolButton("stock_save") save_btn.set_tooltip(_("Save this file")) save_btn.set_accelerator('<ctrl>s') save_btn.connect("clicked", self.save_file) activity_toolbar.insert(save_btn, -1) activity_toolbar.show_all() activity_toolbar.stop.hide() # Guardar como / Save As save_as = gtk.MenuItem(_("Save on the file system.")) activity_toolbar.keep.props.palette.menu.append(save_as) save_as.connect("activate", self.save_file_as) save_as.show() # Nuevo / New new = ToolButton("new") new.set_tooltip(_("New file")) new.set_accelerator('<ctrl>n') new.connect("clicked", self.new) activity_toolbar.insert(new, 6) new.show() activity_toolbar.keep.show() self.toolbar_box.toolbar.insert(activity_button, 0) # Edicion / Edit Toolbar edit_toolbar = EditToolbar() edit_toolbar_button = ToolbarButton(label=_("Edit"), page=edit_toolbar, icon_name='toolbar-edit') edit_toolbar.cut = ToolButton("cut") edit_toolbar.cut.set_tooltip(_("Cut")) edit_toolbar.cut.set_accelerator('<ctrl>x') edit_toolbar.insert(edit_toolbar.cut, 4) separator = gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(True) edit_toolbar.insert(separator, -1) edit_toolbar.pep8_btn = ToolButton('pep8') edit_toolbar.pep8_btn.set_tooltip(_("PEP 8 Check")) edit_toolbar.pep8_btn.connect("clicked", self.pep8_check) edit_toolbar.insert(edit_toolbar.pep8_btn, -1) edit_toolbar.pep8_datetime_separator = gtk.SeparatorToolItem() edit_toolbar.pep8_datetime_separator.set_draw(True) edit_toolbar.insert(edit_toolbar.pep8_datetime_separator, -1) insert_datetime = ToolButton("insert-datetime") insert_datetime.connect("clicked", self.editor._insert_date_time) insert_datetime.set_tooltip(_("Insert date and time")) edit_toolbar.insert(insert_datetime, -1) insert_datetime.show_all() edit_toolbar.copy.connect("clicked", self.editor._copy_cb) edit_toolbar.paste.connect("clicked", self.editor._paste_cb) edit_toolbar.undo.connect("clicked", self.editor._undo_cb) edit_toolbar.redo.connect("clicked", self.editor._redo_cb) edit_toolbar.cut.connect("clicked", self.editor._cut_cb) edit_toolbar.show_all() edit_toolbar.pep8_btn.hide() edit_toolbar.pep8_datetime_separator.set_draw(False) self.toolbar_box.toolbar.insert(edit_toolbar_button, -1) self.edit_toolbar = edit_toolbar # Separador / Separator separator = gtk.SeparatorToolItem() separator.set_draw(False) self.toolbar_box.toolbar.insert(separator, -1) # Buscar / Search search_entry = iconentry.IconEntry() search_entry.set_size_request(gtk.gdk.screen_width() / 3, -1) search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'system-search') search_entry.add_clear_button() search_entry.connect('activate', self.editor._search_entry_activate_cb) search_entry.connect('changed', self.editor._search_entry_changed_cb) search_item = gtk.ToolItem() search_item.add(search_entry) self.toolbox.toolbar.insert(search_item, -1) self._search_prev = ToolButton('go-previous-paired') self._search_prev.set_tooltip(_('Previous')) self._search_prev.connect('clicked', self.editor._search_prev_cb) self.toolbox.toolbar.insert(self._search_prev, -1) self._search_next = ToolButton('go-next-paired') self._search_next.set_tooltip(_('Next')) self._search_next.connect('clicked', self.editor._search_next_cb) self.toolbox.toolbar.insert(self._search_next, -1) # Preferencias / preferences preferences_toolbar = gtk.Toolbar() show_line_numbers = ToggleToolButton('show-numbers') show_line_numbers.set_tooltip(_("Show line numbers")) show_line_numbers.set_active(True) show_line_numbers.connect("clicked", \ self.editor._set_show_line_numbers) show_line_numbers.show() preferences_toolbar.insert(show_line_numbers, -1) self.editor._make_languages_combo(preferences_toolbar) self.editor.make_style_combo(preferences_toolbar) preferences = ToolbarButton() preferences.props.page = preferences_toolbar preferences.props.icon_name = 'preferences-system' preferences.show_all() self.toolbar_box.toolbar.insert(preferences, -1) font_options = FontToolbarButton() font_options.connect("load-pango-context", self.load_pango_context) font_options.load_toolbar() font_options.connect("font-changed", self.change_font) self.toolbar_box.toolbar.insert(font_options, -1) font_options.show() # Separador / Separator separator = gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(True) self.toolbar_box.toolbar.insert(separator, -1) # Boton salir / Stop Button exit = StopButton(self) self.toolbar_box.toolbar.insert(exit, -1) self.toolbar_box.show_all() self.set_toolbar_box(self.toolbar_box) # Barra de estado de PEP8 / PEP8 status bar self.pep8_bar = gtk.Statusbar() self.pep8_bar.label = gtk.Label() self.pep8_bar.add(self.pep8_bar.label) vbox.pack_end(self.pep8_bar, False, True, 0)
class PhysicsActivity(olpcgames.PyGameActivity): game_name = 'physics' game_title = _('Physics') game_size = None # Olpcgame will choose size def __init__(self, handle): super(PhysicsActivity, self).__init__(handle) self.metadata['mime_type'] = 'application/x-physics-activity' self.add_events(gtk.gdk.ALL_EVENTS_MASK | gtk.gdk.VISIBILITY_NOTIFY_MASK) self.connect('visibility-notify-event', self._focus_event) self.connect('window-state-event', self._window_event) def get_preview(self): """Custom preview code to get image from pygame. """ surface = pygame.display.get_surface() width, height = surface.get_width(), surface.get_height() pixbuf = gtk.gdk.pixbuf_new_from_data( pygame.image.tostring(surface, "RGB"), gtk.gdk.COLORSPACE_RGB, 0, 8, width, height, 3 * width) pixbuf = pixbuf.scale_simple(300, 225, gtk.gdk.INTERP_BILINEAR) preview_data = [] def save_func(buf, data): data.append(buf) pixbuf.save_to_callback(save_func, 'png', user_data=preview_data) preview_data = ''.join(preview_data) return preview_data def write_file(self, file_path): """Over-ride olpcgames write_file so that title keeps working. """ event = olpcgames.eventwrap.Event(type=pygame.USEREVENT, code=olpcgames.FILE_WRITE_REQUEST, filename=file_path, metadata=self.metadata) olpcgames.eventwrap.post(event) event.block() event.retire() # <- Without this, title editing stops updating # Setup the toolbar def build_toolbar(self): try: # Use new >= 0.86 toolbar self.max_participants = 1 toolbar_box = ToolbarBox() activity_button = ActivityToolbarButton(self) toolbar_box.toolbar.insert(activity_button, 0) activity_button.show() separator = gtk.SeparatorToolItem() toolbar_box.toolbar.insert(separator, -1) separator.show() self._insert_create_tools(toolbar_box.toolbar) separator = gtk.SeparatorToolItem() separator.props.draw = False separator.set_size_request(0, -1) separator.set_expand(True) toolbar_box.toolbar.insert(separator, -1) separator.show() stop_button = StopButton(self) toolbar_box.toolbar.insert(stop_button, -1) stop_button.show() self.set_toolbar_box(toolbar_box) toolbar_box.show() return toolbar_box except NameError: # Use old <= 0.84 toolbar design toolbox = activity.ActivityToolbox(self) activity_toolbar = toolbox.get_activity_toolbar() activity_toolbar.share.props.visible = False create_toolbar = gtk.Toolbar() self._insert_create_tools(create_toolbar) toolbox.add_toolbar(_("Create"), create_toolbar) create_toolbar.show() toolbox.set_current_toolbar(1) toolbox.show() self.set_toolbox(toolbox) return activity_toolbar def _insert_create_tools(self, create_toolbar): # Stop/play button 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) create_toolbar.insert(self.stop_play, -1) self.stop_play.show() separator = gtk.SeparatorToolItem() create_toolbar.insert(separator, -1) separator.show() # Make + add the component buttons self.radioList = {} firstButton = None for c in tools.allTools: button = RadioToolButton(named_icon=c.icon) if firstButton: button.set_group(firstButton) else: button.set_group(None) firstButton = button button.set_tooltip(c.toolTip) button.set_accelerator(c.toolAccelerator) button.connect('clicked', self.radioClicked) create_toolbar.insert(button, -1) button.show() self.radioList[button] = c.name def stop_play_cb(self, button): pygame.event.post( olpcgames.eventwrap.Event(pygame.USEREVENT, action="stop_start_toggle")) self.stop_play_state = not self.stop_play_state # Update button if self.stop_play_state: self.stop_play.set_icon('media-playback-stop') self.stop_play.set_tooltip(_("Stop")) else: self.stop_play.set_icon('media-playback-start') self.stop_play.set_tooltip(_("Start")) def radioClicked(self, button): pygame.event.post( olpcgames.eventwrap.Event(pygame.USEREVENT, action=self.radioList[button])) def _focus_event(self, event, data=None): """Send focus events to pygame to allow it to idle when in background. """ if data.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED: pygame.event.post( olpcgames.eventwrap.Event(pygame.USEREVENT, action="focus_out")) else: pygame.event.post( olpcgames.eventwrap.Event(pygame.USEREVENT, action="focus_in")) def _window_event(self, window, event): """Send focus out event to pygame when switching to a desktop view. """ if event.changed_mask & gtk.gdk.WINDOW_STATE_ICONIFIED: pygame.event.post( olpcgames.eventwrap.Event(pygame.USEREVENT, action="focus_out"))
def __init__(self, handle): "Set up the activity." # Sugar init activity.Activity.__init__(self, handle) # Create toolbox toolbox = activity.ActivityToolbox(self) toolbarview = Toolbar() tool = ToolButton('zoom-out') tool.set_tooltip(_('Zoom out')) tool.set_accelerator(_('<ctrl>minus')) tool.connect('clicked', self.zoom_out) toolbarview.insert(tool, -1) tool = ToolButton('zoom-in') tool.set_tooltip(_('Zoom in')) tool.set_accelerator(_('<ctrl>equal')) tool.connect('clicked', self.zoom_in) toolbarview.insert(tool, -1) toolbox.add_toolbar(_('View'), toolbarview) toolbarsample = Toolbar() tool = ToolButton('emptytree') tool.set_tooltip(_('Empty tree')) tool.connect('clicked', self.emptytree) toolbarsample.insert(tool, -1) tool = ToolButton('sample1') tool.set_tooltip(_('Test')) tool.connect('clicked', self.sample1) toolbarsample.insert(tool, -1) tool = ToolButton('sample2') tool.set_tooltip(_('Napoléon')) tool.connect('clicked', self.sample2) toolbarsample.insert(tool, -1) toolbox.add_toolbar(_('Samples'), toolbarsample) self.set_toolbox(toolbox) toolbox.show() # Create drawing area self.zoomlevel = 0 self.area = gtk.DrawingArea() self.area.set_size_request(875, 780) self.area.set_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.BUTTON_MOTION_MASK | gtk.gdk.POINTER_MOTION_MASK) self.area.connect("expose_event", self.area_expose_cb) self.area.connect("button_press_event", self.press_button) self.area.connect("button_release_event", self.release_button) self.area.connect("motion_notify_event", self.mouse_move) self.moving = False # Create detail view self.fixed = VBoxColor(const.bg_color) self.fixed.set_size_request(325, 780) self.imagezone = gtk.DrawingArea() self.imagezone.set_size_request(325, 240) self.imagezone.set_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) self.imagezone.connect("expose_event", self.image_expose) self.imagezone.connect("button_press_event", self.image_release_button) self.image_paste = gtk.gdk.pixbuf_new_from_file( "images/edit-paste.svg") self.image_hand1 = gtk.gdk.pixbuf_new_from_file("images/hand1.png") self.fixed.pack_start(self.imagezone, False, False, 0) self.detail_name = gtk.Entry() self.detail_name.connect("changed", self.detail_changed) self.fixed.pack_start(self.detail_name, False, False, 0) radiocontainer = gtk.HBox() self.detail_chkmale = gtk.RadioButton(None, _("Male")) self.detail_chkmale.connect("toggled", self.sexradio_checked, 'M') radiocontainer.pack_start(self.detail_chkmale, True, True, 0) self.detail_chkfemale = gtk.RadioButton(self.detail_chkmale, _("Female")) self.detail_chkfemale.connect("toggled", self.sexradio_checked, 'F') radiocontainer.pack_start(self.detail_chkfemale, True, True, 0) self.fixed.pack_start(radiocontainer, False, False, 0) scrolled = gtk.ScrolledWindow() scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrolled.set_border_width(2) self.detail_description = gtk.TextView() self.detail_description.set_wrap_mode(gtk.WRAP_WORD) self.detail_description.set_size_request(200, 100) self.detail_description.set_cursor_visible(True) self.detail_description.get_buffer().connect("changed", self.description_changed) scrolled.add(self.detail_description) self.fixed.pack_start(scrolled, False, False, 5) self.detail_btnaddparent = self.create_button(_("Add parents"), "images/addparent.svg", self.addparent_clicked) self.detail_btnaddbrother = self.create_button( _("Add brother/sister"), "images/addbrother.svg", self.addbrother_clicked) self.detail_btnaddunion = self.create_button(_("Add union"), "images/addunion.svg", self.addunion_clicked) self.detail_btnaddchild = self.create_button(_("Add child"), "images/addchild.svg", self.addchild_clicked) self.detail_btndelete = self.create_button(_("Delete"), "images/delete.svg", self.delete_clicked) self.fixed.pack_start(self.detail_btnaddparent, False, False, 2) self.fixed.pack_start(self.detail_btnaddunion, False, False, 2) self.fixed.pack_start(self.detail_btnaddbrother, False, False, 2) self.fixed.pack_start(self.detail_btnaddchild, False, False, 2) self.fixed.pack_start(self.detail_btndelete, False, False, 0) self.box = gtk.HBox(False) self.box.pack_start(self.fixed, True, True, 0) self.box.pack_start(self.area, True, True, 0) self.set_canvas(self.box) # Create empty tree self.tree = None self.selected = None self.init_tree(empty_tree(buddyName)) # Show all self.show_all() self.area.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.ARROW))
def build_calibrate_toolbar(self, toolbox): calibrate_bar = gtk.Toolbar() item1 = gtk.ToolItem() label1 = gtk.Label() label1.set_text(' ' + _('Calibrate/Follow') + ' ') item1.add(label1) calibrate_bar.insert(item1, -1) stop_calibrate = ToolButton('media-playback-stop') stop_calibrate.set_tooltip(_('Stop')) stop_calibrate.set_accelerator('<ctrl>space') stop_calibrate.connect('clicked', self.stop_execute) calibrate_bar.insert(stop_calibrate, -1) separator1 = gtk.SeparatorToolItem() separator1.props.draw = True calibrate_bar.insert(separator1, -1) item3 = gtk.ToolItem() self.label_color_red = gtk.Label() self.label_color_red.set_text(' ' + _('Calibrated color:') + ' ' + _('Red') + ' ') item3.add(self.label_color_red) calibrate_bar.insert(item3, -1) item4 = gtk.ToolItem() self.red_spin = gtk.SpinButton() self.red_spin.set_range(0, 255) self.red_spin.set_increments(1, 10) self.red_spin.props.value = self.colorC[0] self.red_spin.connect('notify::value', self.red_spin_color) item4.add(self.red_spin) calibrate_bar.insert(item4, -1) item5 = gtk.ToolItem() self.label_color_green = gtk.Label() self.label_color_green.set_text(' ' + _('Green') + ' ') item5.add(self.label_color_green) calibrate_bar.insert(item5, -1) item6 = gtk.ToolItem() self.green_spin = gtk.SpinButton() self.green_spin.set_range(0, 255) self.green_spin.set_increments(1, 10) self.green_spin.props.value = self.colorC[1] self.green_spin.connect('notify::value', self.green_spin_color) item6.add(self.green_spin) calibrate_bar.insert(item6, -1) item7 = gtk.ToolItem() self.label_color_blue = gtk.Label() self.label_color_blue.set_text(' ' + _('Blue') + ' ') item7.add(self.label_color_blue) calibrate_bar.insert(item7, -1) item8 = gtk.ToolItem() self.blue_spin = gtk.SpinButton() self.blue_spin.set_range(0, 255) self.blue_spin.set_increments(1, 10) self.blue_spin.props.value = self.colorC[2] self.blue_spin.connect('notify::value', self.blue_spin_color) item8.add(self.blue_spin) calibrate_bar.insert(item8, -1) calibrate_bar.show_all() calibrate_button = ToolbarButton(label=_('Calibrate'), page=calibrate_bar, icon_name='preferences-system') toolbox.toolbar.insert(calibrate_button, -1) calibrate_button.show()