diff options
Diffstat (limited to 'com/gmail/bernabe/laurent/sugar_olpc')
11 files changed, 0 insertions, 510 deletions
diff --git a/com/gmail/bernabe/laurent/sugar_olpc/__init__.py b/com/gmail/bernabe/laurent/sugar_olpc/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/__init__.py +++ /dev/null diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/__init__.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/__init__.py +++ /dev/null diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/InputDialog.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/InputDialog.py deleted file mode 100644 index fc06d01..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/InputDialog.py +++ /dev/null @@ -1,53 +0,0 @@ -''' -Created on 13 mai 2011 - -@author: laurent_bernabe -''' - -import pygtk -pygtk.require('2.0') -import gtk - -class InputDialog(gtk.MessageDialog): - ''' - Creates an input dialog with - => a label (for the prompt) - => a text entry - => ok_button and cancel_button - ''' - - - def __init__(self, prompt, parent=None): - ''' - Constructor(prompt, parent=None) - prompt argument : the text of the dialog - parent : the parent control - ''' - gtk.MessageDialog.__init__(self, - parent, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, - gtk.BUTTONS_OK_CANCEL, prompt) - self.__entry = gtk.Entry() - self.vbox.pack_start(self.__entry, True, True, 0) - self.connect("delete-event", lambda widget, event : self.__close() ) - - def run(self): - ''' - Run() - Runs the dialog - ''' - self.show_all() - response = super(InputDialog,self).run() - if response == gtk.RESPONSE_OK : - text = self.__entry.get_text() - else : - text = None - self.destroy() - return text - - def __close(self): - ''' - __close() - Closes the dialog and returns None - ''' - self.destroy() - return None
\ No newline at end of file diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/MenuActions.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/MenuActions.py deleted file mode 100644 index 095024d..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/MenuActions.py +++ /dev/null @@ -1,73 +0,0 @@ -''' -Created on 12 mai 2011 - -@author: laurent_bernabe -''' -from gettext import gettext as _ -from com.gmail.bernabe.laurent.sugar_olpc.learning_writing.gui.InputDialog import \ - InputDialog - -import pygtk -pygtk.require('2.0') -import gtk - -class MenuActions(object): - ''' - Wraps codes for the menu actions in both - pure pygtk mode and in sugar mode - ''' - - def __init__(self, wrappedDrawingArea): - ''' - Constructor - => wrappedDrawingArea argument : the instance of - TheDrawingAreaEventBox to act upon - => MenuActions(wrappedDrawingArea) - ''' - self.__wrappedDrawingArea = wrappedDrawingArea - - def manageDrawingWrite(self): - ''' - manageDrawingWrite() - Wraps code for menu Drawing->Write - ''' - dialog = InputDialog(_("Line thickness value ?\n(I advice you 5)")) - user_value = dialog.run() - if user_value != None : - try: - line_thickness = int(user_value) - assert line_thickness > 0 - except (ValueError, AssertionError) : - message = _("As you did not give an correct integer value,\n5 will be taken") - message_dialog = gtk.MessageDialog(None, - gtk.DIALOG_MODAL, - gtk.MESSAGE_ERROR, - gtk.BUTTONS_OK, - message) - message_dialog.run() - message_dialog.destroy() - line_thickness = 5 - self.__wrappedDrawingArea.setRecordingMode(line_thickness) - - def manageDrawingRead(self): - ''' - manageDrawingRead() - Wraps code for menu Drawing->Read - ''' - dialog = InputDialog(_("Steps drawing delays (milliseconds) ?\n(I advice you 10)")) - user_value = dialog.run() - if user_value != None : - try: - delay_milliseconds = int(user_value) - assert delay_milliseconds > 0 - except (ValueError, AssertionError) : - message = _("As you did not give an correct integer value,\n10 will be taken") - message_dialog = gtk.MessageDialog(None, - gtk.DIALOG_MODAL, - gtk.MESSAGE_ERROR, - gtk.BUTTONS_OK, - message) - message_dialog.run() - message_dialog.destroy() - delay_milliseconds = 10 - self.__wrappedDrawingArea.setReadingMode(delay_milliseconds)
\ No newline at end of file diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/TheDrawingAreaEventBox.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/TheDrawingAreaEventBox.py deleted file mode 100644 index 03c26e7..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/TheDrawingAreaEventBox.py +++ /dev/null @@ -1,216 +0,0 @@ -''' -Created on 10 mai 2011 - -@author: laurent_bernabe -''' -import pygtk -pygtk.require('2.0') -import gtk -import cairo -import gobject - -class TheDrawingAreaEventBox(gtk.EventBox): - ''' - A gtk.EventBox wrapping the DrawingArea (or canvas) of the application - We use an EventBox in order to pass events to the contained DrawingArea - ''' - __DARK_GREEN = (27.0/255.0, 103.0/255.0,46.0/255.0) - __WHITE = (1.0, 1.0, 1.0) - - - def __init__(self): - ''' - Simple constructor without argument - ''' - gtk.EventBox.__init__(self) - self.__setFields() - self.__setConnections() - - def __setFields(self): - ''' - Gives values to fields - ''' - self.__drawingArea = gtk.DrawingArea() - self.add(self.__drawingArea) - self.__figures = [] - self.__lineThickness = 1 - # number of steps (for the figures overall) currently drawn - # only used in reading mode (which is the starting mode) - self.__drawn_steps = -1 - # __overall_maximum_steps stores the steps of all the figures - # only used in reading mode (which is the starting mode) - self.__overall_maximum_steps = -1 - # __current_maximum_steps stores the maximum steps the updater thread - # is allowing to draw. In each cycle of the updater thread, this value - # is incremented, giving this impression of a tape reading - # only used in reading mode (which is the starting mode) - self.__current_maximum_steps = -1 - # the updater delay in milliseconds - # => at which intervals, in reading mode, - # the redraws should be done - self.__updater_delay_milliseconds = -1 - self.__mousePressed = False - self.__readingMode = False - - def __setConnections(self): - ''' - Define the events connections - ''' - self.__drawingArea.connect("expose-event", self.__paintSurface) - self.connect("motion-notify-event", self.__manageMouseMovedEvent) - self.connect("button-press-event", self.__manageButtonPressedEvent) - self.connect("button-release-event", self.__manageButtonReleasedEvent) - - def setRecordingMode(self, line_thickness): - ''' - Switch drawing area management to recording mode - => setRecordingMode(line_thickness) - where line_thickness is an integer - ''' - self.__readingMode = False - self.__figures = [] - self.__drawingArea.queue_draw() - self.__startNewFigure() - self.__setLineThickness(line_thickness) - - def setReadingMode(self, intervals_between_steps_milliseconds): - ''' - Switch drawing area management to reading mode - => intervals_between_steps argument is an integer saying delays - in millisecond between steps - => setReadingMode(intervals_between_steps_milliseconds) - => intervals_between_steps_milliseconds : integer - ''' - self.__updater_delay_milliseconds = intervals_between_steps_milliseconds - self.__drawn_steps = 0 - self.__current_maximum_steps = 0 - self.__computeOverallMaximumSteps() - self.__drawingArea.queue_draw() - self.__readingMode = True - self.__regularlyUpdatePaintForReadingMode() - - - def __setLineThickness(self, line_thickness): - ''' - Sets lines thickness. Only integers greater than 0 will be taken - in consideration. - => __setLineThickness(line_thickness) - where line_thickness is an integer - ''' - if isinstance(line_thickness, int) and line_thickness > 0: - self.__lineThickness = line_thickness - - def __paintSurface(self, widget, event): - ''' - Paint the whole drawing area - => __paintSurface(widget, event) - ''' - cairoContext = self.__drawingArea.window.cairo_create() - self.__drawBackground(cairoContext) - self.__drawFigures(cairoContext) - return True - - def __drawBackground(self, cairoContext): - ''' - Paints the background - => __drawBackground(cairoContext) - where cairoContext is a cairo context of the DrawingArea - ''' - cairoContext.set_source_rgb(*TheDrawingAreaEventBox.__DARK_GREEN) - cairoContext.rectangle( 0,0, *(self.window.get_size()) ) - cairoContext.fill() - - def __drawFigures(self, cairoContext): - ''' - Draws the figures - => __drawFigures(cairoContext) - where cairoContext is a cairo context of the DrawingArea - ''' - cairoContext.set_source_rgb(*TheDrawingAreaEventBox.__WHITE) - cairoContext.set_line_width(self.__lineThickness) - cairoContext.set_line_join(cairo.LINE_JOIN_ROUND) - cairoContext.set_line_cap(cairo.LINE_CAP_ROUND) - if self.__readingMode: - self.__drawn_steps = 0 - for current_figure in self.__figures: - if len(current_figure) > 0 : - startPoint = current_figure[0] - cairoContext.move_to(*startPoint) - if self.__readingMode: - self.__drawn_steps += 1 - for pointIndex in range(1, len(current_figure)): - if self.__readingMode and self.__drawn_steps >= self.__current_maximum_steps : - cairoContext.stroke() - return - endPoint = current_figure[pointIndex] - cairoContext.line_to(*endPoint) - startPoint = endPoint - if self.__readingMode : - self.__drawn_steps += 1 - cairoContext.stroke() - - def __startNewFigure(self): - ''' - Starts a new figure - ''' - self.__figures += [[]] - - def __addPointToCurrentFigure(self, pointTuple): - ''' - Adds a point to the current figure - ==> __addPointToCurrentFigure(pointTuple) - where pointTuple is a tuple of the point coordinates - ''' - self.__figures[len(self.__figures)-1] += [pointTuple] - - def __computeOverallMaximumSteps(self): - ''' - Computes the number of steps of all the Figures to draw - ''' - self.__overall_maximum_steps = 0 - for current_figure in self.__figures : - self.__overall_maximum_steps += len(current_figure) - - def __manageMouseMovedEvent(self, widget, event): - ''' - Manage mouse move event - => __manageMouseMovedEvent(widget, event) - ''' - if self.__mousePressed: - self.__addPointToCurrentFigure((event.x, event.y)) - self.__drawingArea.queue_draw() # repaint the drawing area - return True # we don't need further handling for this event - - def __manageButtonPressedEvent(self, widget, event): - ''' - Manage button pressed event - => __manageButtonPressedEvent(widget, event) - ''' - self.__startNewFigure() - self.__mousePressed = True - return True # we don't need further handling for this event - - def __manageButtonReleasedEvent(self, widget, event): - ''' - Manage button released event - => __manageButtonReleasedEvent(widget, event) - ''' - self.__mousePressed = False - return True # we don't need further handling for this event - - def __regularlyUpdatePaintForReadingMode(self): - ''' - Increases the current maximum drawn steps and repaint all, at - regular delays. (For reading mode) - => __regularlyUpdatePaintForReadingMode(regular_delay_milliseconds) - regular_delay_milliseconds : integer - ''' - if self.__readingMode: - self.__current_maximum_steps += 1 - self.__drawingArea.queue_draw() - if self.__current_maximum_steps < self.__overall_maximum_steps : - gobject.timeout_add( - self.__updater_delay_milliseconds, - self.__regularlyUpdatePaintForReadingMode - ) -
\ No newline at end of file diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/__init__.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/gui/__init__.py +++ /dev/null diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/PurePyGTKLauncher.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/PurePyGTKLauncher.py deleted file mode 100644 index 204552d..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/PurePyGTKLauncher.py +++ /dev/null @@ -1,12 +0,0 @@ -''' -Created on 10 mai 2011 - -@author: laurent_bernabe -''' - -import gtk -from com.gmail.bernabe.laurent.sugar_olpc.learning_writing.pure_pygtk_launcher.TheWindow import TheWindow - -if __name__ == '__main__': - TheWindow() - gtk.main()
\ No newline at end of file diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/TheWindow.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/TheWindow.py deleted file mode 100644 index d45e418..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/TheWindow.py +++ /dev/null @@ -1,69 +0,0 @@ -''' -Created on 10 mai 2011 - -@author: laurent_bernabe -''' -import pygtk - -from com.gmail.bernabe.laurent.sugar_olpc.learning_writing.gui.MenuActions \ -import MenuActions - -pygtk.require('2.0') -import gtk - -from \ -com.gmail.bernabe.laurent.sugar_olpc.learning_writing.gui.TheDrawingAreaEventBox \ -import TheDrawingAreaEventBox - -class TheWindow(gtk.Window): - ''' - The Window of the application - ''' - - def __init__(self): - ''' - Simple constructor - ''' - gtk.Window.__init__(self) - self.__wrapped_drawing_area = TheDrawingAreaEventBox() - self.__menu_actions = MenuActions(self.__wrapped_drawing_area) - self.__vbox = gtk.VBox(False, 2) - self.add(self.__vbox) - self.__addMenuBar() - self.__vbox.pack_start(self.__wrapped_drawing_area) - self.set_size_request(300, 300) - self.connect("delete-event", lambda widget, event : gtk.main_quit()) - self.show_all() - - def __addMenuBar(self): - ''' - Adds a menu bar - ''' - menu_bar = gtk.MenuBar() - drawing_item = gtk.MenuItem("_Drawing") - menu_bar.append(drawing_item) - drawing_sub_menu = gtk.Menu() - drawing_write_item = gtk.RadioMenuItem(None, "_Write") - drawing_write_item.set_active(True) - drawing_write_item.connect("activate", self.__manageDrawingWrite) - drawing_read_item = gtk.RadioMenuItem(drawing_write_item, "_Read") - drawing_read_item.connect("activate", self.__manageDrawingRead) - drawing_sub_menu.append(drawing_write_item) - drawing_sub_menu.append(drawing_read_item) - drawing_item.set_submenu(drawing_sub_menu) - self.__vbox.pack_start(menu_bar, False, True) - menu_bar.show_all() - - def __manageDrawingWrite(self, menu_item): - ''' - Manages drawing->write menu - ''' - if menu_item.get_active() : - self.__menu_actions.manageDrawingWrite() - - def __manageDrawingRead(self, menu_item): - ''' - Manages drawing->read menu - ''' - if menu_item.get_active() : - self.__menu_actions.manageDrawingRead()
\ No newline at end of file diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/__init__.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/pure_pygtk_launcher/__init__.py +++ /dev/null diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/sugar_launcher/Launcher.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/sugar_launcher/Launcher.py deleted file mode 100644 index 6aa9e3c..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/sugar_launcher/Launcher.py +++ /dev/null @@ -1,87 +0,0 @@ -''' -Created on 10 mai 2011 - -@author: laurent_bernabe -''' -from gettext import gettext as _ -from sugar.activity import activity - -from com.gmail.bernabe.laurent.sugar_olpc.learning_writing.gui.MenuActions \ -import MenuActions - -from com.gmail.bernabe.laurent.sugar_olpc.learning_writing.gui.TheDrawingAreaEventBox \ -import TheDrawingAreaEventBox - -import pygtk -pygtk.require('2.0') -import gtk - -class Launcher(activity.Activity): - ''' - Launcher for sugar bundle - ''' - - def __init__(self, handle): - ''' - Constructor - ''' - activity.Activity.__init__(self, handle) - # Be carefull on the callings order !!! - # => self.__wrapped_drawing_area is not defined before - # self.__createAndSetCanvas() call - # => self.__createAndSetToolbox need self.__menu_actions - self.__createAndSetCanvas() - self.__menu_actions = MenuActions(self.__wrapped_drawing_area) - self.__createAndSetToolbox() - - def __createAndSetToolbox(self): - ''' - Creates and sets the tool box - ''' - toolbox = activity.ActivityToolbox(self) - self.__addDrawingToolbarIn(toolbox) - self.set_toolbox(toolbox) - toolbox.show_all() - - def __createAndSetCanvas(self): - ''' - Creates and set the Canvas - ''' - self.__wrapped_drawing_area = TheDrawingAreaEventBox() - self.set_canvas(self.__wrapped_drawing_area) - self.show_all() - - def __manageDrawingWrite(self, menu_item): - ''' - Manages drawing->write menu - ''' - if menu_item.get_active() : - self.__menu_actions.manageDrawingWrite() - - def __manageDrawingRead(self, menu_item): - ''' - Manages drawing->read menu - ''' - if menu_item.get_active() : - self.__menu_actions.manageDrawingRead() - - def __addDrawingToolbarIn(self, toolbox): - ''' - Creates and add Drawing toolbar in toolbox - => __addDrawingToolbarIn(toolbox) - ''' - drawing_toolbar = gtk.Toolbar() - drawing_toolbar.set_style(gtk.TOOLBAR_ICONS) - #---------------------- - drawing_toolbar_write_button = gtk.RadioToolButton(None, gtk.STOCK_MEDIA_RECORD) - drawing_toolbar_write_button.set_active(True) - drawing_toolbar_write_button.connect("clicked", self.__manageDrawingWrite ) - drawing_toolbar.insert(drawing_toolbar_write_button, 0) - #--------------------- - drawing_toolbar_read_button = gtk.RadioToolButton(drawing_toolbar_write_button, gtk.STOCK_MEDIA_PLAY) - drawing_toolbar_read_button.set_active(False) - drawing_toolbar_read_button.connect("clicked", self.__manageDrawingRead ) - drawing_toolbar.insert(drawing_toolbar_read_button, 1) - #-------------------- - toolbox.add_toolbar(_('Drawing'), drawing_toolbar) - drawing_toolbar.show_all()
\ No newline at end of file diff --git a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/sugar_launcher/__init__.py b/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/sugar_launcher/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/com/gmail/bernabe/laurent/sugar_olpc/learning_writing/sugar_launcher/__init__.py +++ /dev/null |