From aae999923bff78451cd0bc05fffcbdca5e53b2ee Mon Sep 17 00:00:00 2001 From: Ignacio Rodríguez Date: Thu, 08 Nov 2012 18:36:18 +0000 Subject: Versión 2! :) --- diff --git a/Toolbars.py b/Toolbars.py new file mode 100644 index 0000000..7d92ade --- /dev/null +++ b/Toolbars.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Toolbars.py +# Gabriel, hice esto porque es un revoltijo abook.py :P +try: + import gtk + from gettext import gettext as _ + from sugar import profile + from sugar import mime + from sugar.activity import activity + from sugar.activity.widgets import StopButton + from sugar.activity.widgets import ActivityToolbarButton + from sugar.activity.widgets import ToolbarButton + from sugar.graphics.icon import Icon + from sugar.graphics.colorbutton import ColorToolButton + from sugar.graphics.toolbarbox import ToolbarBox + from sugar.graphics.toolbutton import ToolButton + from sugar.graphics.objectchooser import ObjectChooser + from sugar.graphics.alert import Alert, NotifyAlert + import pango + + from book import cBook + from book import cPage + from book import cOption + from textbook import tutorial_book + from textbook import empty_book + from textbook import credits_book + from Combo import Combo + from ayuda import HelpButton as Ayudas +except ImportError: + print 'NO SE ESTA EN SUGAR.. SALIENDO' + +Fonts = Combo() +Fonts.set_items(["Purisa 8", "Purisa 12", "Purisa 24", "Monospace 8", "Monospace 12", "Monospace 24", "Times New Roman 8", "Times New Roman 12", "Times New Roman 24", "FreeSans 8", "FreeSans 12", "FreeSans 24"]) +Title_Tam = Combo() +Title_Tam.set_items(["Purisa 8", "Purisa 12", "Purisa 24", "Monospace 8", "Monospace 12", "Monospace 24", "Times New Roman 8", "Times New Roman 12", "Times New Roman 24", "FreeSans 8", "FreeSans 12", "FreeSans 24"]) +Colore = ColorToolButton() +Color_t = ColorToolButton() +restart_button = ToolButton("home") +reading_button = ToolButton("read") +load_button = ToolButton("open-from-journal") +credits = ToolButton("credits") +new_button = ToolButton("new") +book_button = ToolButton("edit-p") +page_button = ToolButton("edit-c") +check_button = ToolButton("broken") + +def Text_Toolbar(toolbar): + text_button = ToolbarButton(icon_name="format-text-size") + text_toolbar = gtk.Toolbar() + A = gtk.Label(_('<--Color Content:')) + B = gtk.Label(_('<--Color Title:')) + text_toolbar.insert(Colore, -1) + + Item = gtk.ToolItem() + Item.add(A) + Item.show() + text_toolbar.insert(Item, -1) + Item = gtk.ToolItem() + Item.add(Fonts) + Item.show() + text_toolbar.insert(Item, -1) + Fonts.show() + A.show() + Fonts.show() + text_toolbar.insert(gtk.SeparatorToolItem(), -1) + Item = gtk.ToolItem() + Item.add(B) + Item.show() + text_toolbar.insert(Color_t, -1) + text_toolbar.insert(Item, -1) + Item = gtk.ToolItem() + Item.add(Title_Tam) + Item.show() + Title_Tam.show() + + text_toolbar.insert(Item, -1) + + Colore.show() + Color_t.show() + text_toolbar.show_all() + text_button.props.page = text_toolbar + toolbar.toolbar.insert(text_button, -1) +def Read_Toolbar(toolbar): + # read toolbar + read_button = ToolbarButton(icon_name="read") + read_toolbar = gtk.Toolbar() + + + restart_button.set_tooltip(_("Start from the begining")) + + read_toolbar.insert(restart_button, -1) + + reading_button.set_tooltip(_("Read the book")) + + read_toolbar.insert(reading_button, -1) + + load_button.set_tooltip(_("Load book from Journal")) + + read_toolbar.insert(load_button, -1) + read_button.props.page = read_toolbar + read_toolbar.show_all() + Sep = gtk.SeparatorToolItem() + Sep.set_expand(False) + Sep.set_draw(True) + read_toolbar.insert(Sep, -1) + Sep.show() + + credits.set_tooltip(_("Credits")) + + read_toolbar.insert(credits, -1) + credits.show() + toolbar.toolbar.insert(read_button, -1) +def Write_Toolbar(toolbar): + # write toolbar + write_button = ToolbarButton(icon_name="edit") + write_toolbar = gtk.Toolbar() + + new_button.set_tooltip(_("New book")) + + write_toolbar.insert(new_button, -1) + + book_button.set_tooltip(_("Edit book properties")) + + write_toolbar.insert(book_button, -1) + + page_button.set_tooltip(_("Edit book contents")) + + write_toolbar.insert(page_button, -1) + + check_button.set_tooltip(_("Check book for missing parts")) + + write_toolbar.insert(check_button, -1) + write_button.props.page = write_toolbar + write_toolbar.show_all() + toolbar.toolbar.insert(write_button, -1) + +def Ayuda(toolbar): + Boton_Ayuda = Ayudas() + # Porfavor, traducir esto al ingles! # + Boton_Ayuda.add_section(_("Crear un libro")) + Boton_Ayuda.add_paragraph(_("Para crear un nuevo libro debes hacer click en el icono"),'edit') + Boton_Ayuda.add_paragraph(_("Posterior a esto haz click en:"),'new') + Boton_Ayuda.add_section(_("Editar un libro")) + Boton_Ayuda.add_paragraph(_("Para editar el libro debes hacer click en"),'edit') + Boton_Ayuda.add_paragraph(_("Luego haz click en:"),'edit-c') + Boton_Ayuda.add_section(_("Editar las propiedades")) + Boton_Ayuda.add_paragraph(_("Para editar las propiedades debes hacer click en"),'edit') + Boton_Ayuda.add_paragraph(_("Despues haz click en:"),'edit-p') + Boton_Ayuda.add_section(_("Leer un libro")) + Boton_Ayuda.add_paragraph(_("Para leer un libro debes hacer click en:"),'read') + Boton_Ayuda.add_paragraph(_("Si quieres ir a la primer página debes hacer click en:"),'home') + Boton_Ayuda.add_paragraph(_("Si quieres cargar tu libro haz click en:"),'open-from-journal') + Boton_Ayuda.add_paragraph(_("Si te interesan los créditos haz click en:"),'credits') + Boton_Ayuda.add_section(_("Editar la 'letra'")) + Boton_Ayuda.add_paragraph(_("Para editar la tipografía de un libro debes hacer click en:"),'format-text-size') + Boton_Ayuda.add_paragraph(_("Si tu quieres editar el nombre de la tipografía deberas hacer click donde dice 'Purisa 8', se desplegara una lista de fuentes. Selecciona una")) + Boton_Ayuda.add_paragraph(_("Si quieres editar el color haz click en:"), 'color-preview') + Boton_Ayuda.show() + toolbar.toolbar.insert(Boton_Ayuda, -1) diff --git a/abook.py b/abook.py index 0f78f88..18d9211 100644 --- a/abook.py +++ b/abook.py @@ -45,113 +45,50 @@ from sugar.graphics.toolbutton import ToolButton from sugar.graphics.objectchooser import ObjectChooser from sugar.graphics.alert import Alert, NotifyAlert import pango - +from ayuda import HelpButton as Ayuda from book import cBook from book import cPage from book import cOption from textbook import tutorial_book from textbook import empty_book from textbook import credits_book -from Combo import Combo -# ColorToolButton -# Color for Font -Tamano = Combo() -Tamano.set_items(["8","10","12","24","32","48","72"]) -Colore = ColorToolButton() +from Toolbars import Text_Toolbar +from Toolbars import Write_Toolbar +from Toolbars import Read_Toolbar +from Toolbars import Ayuda +import Toolbars + class AdventureBookActivity(activity.Activity): def __init__(self, handle): activity.Activity.__init__(self, handle, True) - - # Toolbar toolbarbox = ToolbarBox() - Colore.set_title(_('Select color for font and go to home page')) - Colore.connect('notify::color', self.Home) - Tamano.connect('change_selection', self.Home) +## CONNECTS ## + Toolbars.restart_button.connect("clicked", self._restart_button_cb) + Toolbars.reading_button.connect("clicked", self._read_button_cb) + Toolbars.load_button.connect("clicked", self._load_button_cb) + Toolbars.credits.connect("clicked", self.Credits) + Toolbars.new_button.connect("clicked", self._new_button_cb) + Toolbars.book_button.connect("clicked", self._edit_book_button_cb, Toolbars.Colore.get_color()) + Toolbars.page_button.connect("clicked", self._edit_page_button_cb) + Toolbars.check_button.connect("clicked", self._check_button_cb, Toolbars.Colore.get_color()) + Toolbars.Colore.set_title(_('Select color for font and go to home page')) + Toolbars.Colore.connect('notify::color', self.Home) + Toolbars.Fonts.connect('change_selection', self.Home) + Toolbars.Title_Tam.connect('change_selection', self.Home) + Toolbars.Color_t.connect('notify::color', self.Home) +# FIN DE CONNECTS # + # The Activity Button: activity_button = ActivityToolbarButton(self) - W = gtk.Label(_('Select a size for font\nand go to home page')) - # Insert the Activity Toolbar Button in the toolbarbox - toolbarbox.toolbar.insert(activity_button, 0) - - # Separator - separator = gtk.SeparatorToolItem() - separator.set_expand(False) - separator.set_draw(True) - toolbarbox.toolbar.insert(separator, -1) - Item = gtk.ToolItem() - Item.add(Tamano) - It = gtk.ToolItem() - It.add(W) - toolbarbox.toolbar.insert(Colore, -1) - toolbarbox.toolbar.insert(It, -1) - toolbarbox.toolbar.insert(Item, -1) - Item.show() - It.show() - W.show() - Tamano.show() - toolbarbox.toolbar.insert(gtk.SeparatorToolItem(), -1) - Colore.show() - - - # read toolbar - read_button = ToolbarButton(icon_name="read") - read_toolbar = gtk.Toolbar() - - restart_button = ToolButton("home") - restart_button.set_tooltip(_("Start from the begining")) - restart_button.connect("clicked", self._restart_button_cb) - read_toolbar.insert(restart_button, -1) - reading_button = ToolButton("read") - reading_button.set_tooltip(_("Read the book")) - reading_button.connect("clicked", self._read_button_cb) - read_toolbar.insert(reading_button, -1) - load_button = ToolButton("open-from-journal") - load_button.set_tooltip(_("Load book from Journal")) - load_button.connect("clicked", self._load_button_cb) - read_toolbar.insert(load_button, -1) - read_button.props.page = read_toolbar - read_toolbar.show_all() - toolbarbox.toolbar.insert(read_button, -1) - Sep = gtk.SeparatorToolItem() - Sep.set_expand(False) - Sep.set_draw(True) - read_toolbar.insert(Sep, -1) - Sep.show() - credits = ToolButton("credits") - credits.set_tooltip(_("Credits")) - credits.connect("clicked", self.Credits) - read_toolbar.insert(credits, -1) - credits.show() - # write toolbar - write_button = ToolbarButton(icon_name="edit") - write_toolbar = gtk.Toolbar() - new_button = ToolButton("new") - new_button.set_tooltip(_("New book")) - new_button.connect("clicked", self._new_button_cb) - write_toolbar.insert(new_button, -1) - book_button = ToolButton("edit-p") - book_button.set_tooltip(_("Edit book properties")) - book_button.connect("clicked", self._edit_book_button_cb, Colore.get_color()) - write_toolbar.insert(book_button, -1) - page_button = ToolButton("edit-c") - page_button.set_tooltip(_("Edit book contents")) - page_button.connect("clicked", self._edit_page_button_cb) - write_toolbar.insert(page_button, -1) - check_button = ToolButton("broken") - check_button.set_tooltip(_("Check book for missing parts")) - check_button.connect("clicked", self._check_button_cb, Colore.get_color()) - write_toolbar.insert(check_button, -1) - write_button.props.page = write_toolbar - write_toolbar.show_all() - toolbarbox.toolbar.insert(write_button, -1) - # Separator - separator = gtk.SeparatorToolItem() - separator.set_expand(True) - separator.set_draw(False) - toolbarbox.toolbar.insert(separator, -1) + # Insert the Activity Toolbar Button in the toolbarbox + toolbarbox.toolbar.insert(activity_button, 0) + Read_Toolbar(toolbarbox) + Write_Toolbar(toolbarbox) + Text_Toolbar(toolbarbox) + Ayuda(toolbarbox) # Stop button stopbtn = StopButton(self) toolbarbox.toolbar.insert(stopbtn, -1) @@ -162,10 +99,10 @@ class AdventureBookActivity(activity.Activity): # Define main view as a vbox container self._main_view = gtk.VBox() self.set_canvas(self._main_view) - + # Load tutorial book for first-time runs self._book = tutorial_book() - self._start_book(Colore.get_color()) + self._start_book(Toolbars.Colore.get_color()) def Home(self, widget, pspec): self._restart_button_cb(None) @@ -176,11 +113,13 @@ class AdventureBookActivity(activity.Activity): def _start_book(self, Color): - Tam = pango.FontDescription(Tamano.get_active_text()) - self._clean_main_view() + Tam = pango.FontDescription(Toolbars.Fonts.get_active_text()) + Title = pango.FontDescription(Toolbars.Title_Tam.get_active_text()) + Color_ts = Toolbars.Color_t.get_color() + self._clean_main_view() title_label = gtk.Label(self._book.get_title()) - title_label.modify_fg(gtk.STATE_NORMAL, Color) - title_label.modify_font(Tam) + title_label.modify_fg(gtk.STATE_NORMAL, Color_ts) + title_label.modify_font(Title) title_label.show() author_label = gtk.Label(self._book.get_author()) author_label.modify_fg(gtk.STATE_NORMAL, Color) @@ -206,27 +145,29 @@ class AdventureBookActivity(activity.Activity): def _start_button_cb(self, widget): self._current_page = self._book.get_pages()[0] - self._show_page(Colore.get_color()) + self._show_page(Toolbars.Colore.get_color()) def _restart_button_cb(self, widget): - self._start_book(Colore.get_color()) + self._start_book(Toolbars.Colore.get_color()) def _read_button_cb(self, widget): - self._show_page(Colore.get_color()) + self._show_page(Toolbars.Colore.get_color()) def _show_page(self, Color): self._clean_main_view() - Tam = pango.FontDescription(Tamano.get_active_text()) - + Tam = pango.FontDescription(Toolbars.Fonts.get_active_text()) + Title = pango.FontDescription(Toolbars.Title_Tam.get_active_text()) + Color_ts = Toolbars.Color_t.get_color() + print Tam title_label = gtk.Label(self._current_page.get_title()) - title_label.modify_fg(gtk.STATE_NORMAL, Color) + title_label.modify_fg(gtk.STATE_NORMAL, Color_ts) title_label.show() - title_label.modify_font(Tam) + title_label.modify_font(Title) text_label = gtk.Label(self._current_page.get_text()) text_label.modify_fg(gtk.STATE_NORMAL, Color) @@ -247,7 +188,7 @@ class AdventureBookActivity(activity.Activity): def _option_button_cb(self, widget, option): self._current_page = option.get_page() - self._show_page(Colore.get_color()) + self._show_page(Toolbars.Colore.get_color()) def _load_button_cb(self, widget): @@ -277,11 +218,11 @@ class AdventureBookActivity(activity.Activity): def _new_button_cb(self, widget): self._book = empty_book() - self._start_book(Colore.get_color()) + self._start_book(Toolbars.Colore.get_color()) # self._start_button_cb(widget) def Credits(self, widget): self._book = credits_book() - self._start_book(Colore.get_color()) + self._start_book(Toolbars.Colore.get_color()) def _edit_book_button_cb(self, widget, Color): Tam = pango.FontDescription('8') @@ -369,7 +310,7 @@ class AdventureBookActivity(activity.Activity): page_list_view.get_selection().set_mode(gtk.SELECTION_SINGLE) page_list_view.connect("cursor-changed", self._page_selected_for_edition_cb, - page_vbox, Colore.get_color()) + page_vbox, Toolbars.Colore.get_color()) page_list_view.set_cursor(0) # need to change to point to page page_list_column = gtk.TreeViewColumn(_("Book pages")) page_list_view.append_column(page_list_column) @@ -439,7 +380,7 @@ class AdventureBookActivity(activity.Activity): def _page_selected_for_edition_cb(self, w, page_vbox, Color): - Tam = pango.FontDescription(Tamano.get_active_text()) + Tam = pango.FontDescription('10') for ch in page_vbox.get_children(): page_vbox.remove(ch) @@ -549,7 +490,7 @@ class AdventureBookActivity(activity.Activity): def _add_option_button_cb(self, w, page, option_hbox, options_vbox): - Tam = pango.FontDescription(Tamano.get_active_text()) + Tam = pango.FontDescription('10') w.get_parent().remove(w) @@ -598,7 +539,7 @@ class AdventureBookActivity(activity.Activity): def _check_button_cb(self, widget, Color): - Tam = pango.FontDescription(Tamano.get_active_text()) + Tam = pango.FontDescription('10') self._clean_main_view() # check that all pages are referenced @@ -690,6 +631,6 @@ class AdventureBookActivity(activity.Activity): option_props = cOption(o['text'], page_dest) page_orig.add_option(option_props) - self._start_book(Colore.get_color()) + self._start_book(Toolbars.Colore.get_color()) diff --git a/ayuda.py b/ayuda.py new file mode 100644 index 0000000..639159d --- /dev/null +++ b/ayuda.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2012, Gonzalo Odiard + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +# HelpButton widget + +from gettext import gettext as _ + +import gtk + +from sugar.graphics.toolbutton import ToolButton +from sugar.graphics.icon import Icon +from sugar.graphics import style + + +class HelpButton(gtk.ToolItem): + + def __init__(self, **kwargs): + gtk.ToolItem.__init__(self) + + help_button = ToolButton('help-icon') + help_button.set_tooltip(_('Help')) + self.add(help_button) + + self._palette = help_button.get_palette() + + sw = gtk.ScrolledWindow() + sw.set_size_request(int(gtk.gdk.screen_width() / 2.8), + gtk.gdk.screen_height() - style.GRID_CELL_SIZE * 3) + sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + + self._max_text_width = int(gtk.gdk.screen_width() / 3) - 20 + self._vbox = gtk.VBox() + self._vbox.set_homogeneous(False) + + hbox = gtk.HBox() + hbox.pack_start(self._vbox, False, True, 0) + + sw.add_with_viewport(hbox) + + self._palette.set_content(sw) + sw.show_all() + + help_button.connect('clicked', self.__help_button_clicked_cb) + + def __help_button_clicked_cb(self, button): + self._palette.popup(immediate=True, state=1) + + def add_section(self, section_text): + hbox = gtk.HBox() + label = gtk.Label() + label.set_use_markup(True) + label.set_markup('%s' % section_text) + label.set_line_wrap(True) + label.set_size_request(self._max_text_width, -1) + hbox.add(label) + hbox.show_all() + self._vbox.pack_start(hbox, False, False, padding=5) + + def add_paragraph(self, text, icon=None): + hbox = gtk.HBox() + label = gtk.Label(text) + label.set_justify(gtk.JUSTIFY_LEFT) + label.set_line_wrap(True) + hbox.add(label) + if icon is not None: + _icon = Icon(icon_name=icon) + hbox.add(_icon) + label.set_size_request(self._max_text_width - 20, -1) + else: + label.set_size_request(self._max_text_width, -1) + + hbox.show_all() + self._vbox.pack_start(hbox, False, False, padding=5) diff --git a/icons/help-icon.svg b/icons/help-icon.svg new file mode 100644 index 0000000..36f763c --- /dev/null +++ b/icons/help-icon.svg @@ -0,0 +1,32 @@ + + +]> + + + + + + + -- cgit v0.9.1