[arch-commits] Commit in (11 files)

Balló György bgyorgy at archlinux.org
Wed Feb 15 04:06:16 UTC 2017


    Date: Wednesday, February 15, 2017 @ 04:06:15
  Author: bgyorgy
Revision: 212488

Add more base Sugar activities (sugar-fructose)

Added:
  sugar-activity-calculate/
  sugar-activity-calculate/trunk/
  sugar-activity-calculate/trunk/0001-Port-to-GTK3.patch
  sugar-activity-calculate/trunk/PKGBUILD
  sugar-activity-clock/
  sugar-activity-clock/trunk/
  sugar-activity-clock/trunk/PKGBUILD
  sugar-activity-pippy/
  sugar-activity-pippy/trunk/
  sugar-activity-pippy/trunk/PKGBUILD
  sugar-activity-pippy/trunk/fix-missing-icons.patch

--------------------------------------------------------+
 sugar-activity-calculate/trunk/0001-Port-to-GTK3.patch |  964 +++++++++++++++
 sugar-activity-calculate/trunk/PKGBUILD                |   30 
 sugar-activity-clock/trunk/PKGBUILD                    |   26 
 sugar-activity-pippy/trunk/PKGBUILD                    |   33 
 sugar-activity-pippy/trunk/fix-missing-icons.patch     |   49 
 5 files changed, 1102 insertions(+)

Added: sugar-activity-calculate/trunk/0001-Port-to-GTK3.patch
===================================================================
--- sugar-activity-calculate/trunk/0001-Port-to-GTK3.patch	                        (rev 0)
+++ sugar-activity-calculate/trunk/0001-Port-to-GTK3.patch	2017-02-15 04:06:15 UTC (rev 212488)
@@ -0,0 +1,964 @@
+From 80a5111bd2bde5cc1cafeddd13a76a4a083f5bf5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=83=C2=83=C3=82=C2=B3=20Gy=C3=83=C2=83=C3=82=C2=B6r?=
+ =?UTF-8?q?gy?= <ballogyor at gmail.com>
+Date: Tue, 14 Feb 2017 20:49:52 +0100
+Subject: [PATCH] Port to GTK3
+
+---
+ calculate.py          | 105 +++++++++---------
+ layout.py             | 293 +++++++++++++++++++++++---------------------------
+ setup.py              |   2 +-
+ shareable_activity.py |  10 +-
+ svgimage.py           |   8 +-
+ toolbars.py           |  57 +++++-----
+ 6 files changed, 227 insertions(+), 248 deletions(-)
+
+diff --git a/calculate.py b/calculate.py
+index d7eeef8..8abb103 100644
+--- a/calculate.py
++++ b/calculate.py
+@@ -25,13 +25,14 @@ from gettext import gettext as _
+ import logging
+ _logger = logging.getLogger('Calculate')
+ 
+-import pygtk
+-pygtk.require('2.0')
+-import gtk
++import gi
++gi.require_version('Gtk', '3.0')
++from gi.repository import Gtk
++from gi.repository import Gdk
+ import base64
+ 
+-import sugar.profile
+-from sugar.graphics.xocolor import XoColor
++import sugar3.profile
++from sugar3.graphics.xocolor import XoColor
+ 
+ from shareable_activity import ShareableActivity
+ from layout import CalcLayout
+@@ -63,8 +64,8 @@ def findchar(text, chars, ofs=0):
+ 
+ def _textview_realize_cb(widget):
+     '''Change textview properties once window is created.'''
+-    win = widget.get_window(gtk.TEXT_WINDOW_TEXT)
+-    win.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND1))
++    win = widget.get_window(Gtk.TextWindowType.TEXT)
++    win.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND1))
+     return False
+ 
+ 
+@@ -131,7 +132,7 @@ class Equation:
+         return size
+ 
+     def append_with_superscript_tags(self, buf, text, *tags):
+-        '''Add a text to a gtk.TextBuffer with superscript tags.'''
++        '''Add a text to a Gtk.TextBuffer with superscript tags.'''
+         fontsize = self.determine_font_size(*tags)
+         _logger.debug('font-size: %d', fontsize)
+         tagsuper = buf.create_tag(rise=fontsize / 2)
+@@ -184,16 +185,16 @@ class Equation:
+ 
+     def create_lasteq_textbuf(self):
+         '''
+-        Return a gtk.TextBuffer properly formatted for last equation
+-        gtk.TextView.
++        Return a Gtk.TextBuffer properly formatted for last equation
++        Gtk.TextView.
+         '''
+ 
+         is_error = isinstance(self.result, ParserError)
+-        buf = gtk.TextBuffer()
++        buf = Gtk.TextBuffer()
+         tagsmallnarrow = buf.create_tag(font=CalcLayout.FONT_SMALL_NARROW)
+         tagbignarrow = buf.create_tag(font=CalcLayout.FONT_BIG_NARROW)
+         tagbigger = buf.create_tag(font=CalcLayout.FONT_BIGGER)
+-        tagjustright = buf.create_tag(justification=gtk.JUSTIFY_RIGHT)
++        tagjustright = buf.create_tag(justification=Gtk.Justification.RIGHT)
+         tagred = buf.create_tag(foreground='#FF0000')
+ 
+         # Add label and equation
+@@ -233,39 +234,39 @@ class Equation:
+         """
+         Create a history object for this equation.
+         In case of an SVG result this will be the image, otherwise it will
+-        return a properly formatted gtk.TextView.
++        return a properly formatted Gtk.TextView.
+         """
+ 
+         if isinstance(self.result, SVGImage):
+             return self.result.get_image()
+ 
+-        w = gtk.TextView()
++        w = Gtk.TextView()
+         w.modify_base(
+-            gtk.STATE_NORMAL, gtk.gdk.color_parse(self.color.get_fill_color()))
++            Gtk.StateType.NORMAL, Gdk.color_parse(self.color.get_fill_color()))
+         w.modify_bg(
+-            gtk.STATE_NORMAL,
+-            gtk.gdk.color_parse(self.color.get_stroke_color()))
+-        w.set_wrap_mode(gtk.WRAP_WORD_CHAR)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 4)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_RIGHT, 4)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_TOP, 4)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_BOTTOM, 4)
++            Gtk.StateType.NORMAL,
++            Gdk.color_parse(self.color.get_stroke_color()))
++        w.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
++        w.set_border_window_size(Gtk.TextWindowType.LEFT, 4)
++        w.set_border_window_size(Gtk.TextWindowType.RIGHT, 4)
++        w.set_border_window_size(Gtk.TextWindowType.TOP, 4)
++        w.set_border_window_size(Gtk.TextWindowType.BOTTOM, 4)
+         w.connect('realize', _textview_realize_cb)
+         buf = w.get_buffer()
+ 
+         tagsmall = buf.create_tag(font=CalcLayout.FONT_SMALL)
+         tagsmallnarrow = buf.create_tag(font=CalcLayout.FONT_SMALL_NARROW)
+         tagbig = buf.create_tag(font=CalcLayout.FONT_BIG,
+-                                justification=gtk.JUSTIFY_RIGHT)
++                                justification=Gtk.Justification.RIGHT)
+         # TODO Fix for old Sugar 0.82 builds, red_float not available
+         bright = (
+-            gtk.gdk.color_parse(self.color.get_fill_color()).red_float +
+-            gtk.gdk.color_parse(self.color.get_fill_color()).green_float +
+-            gtk.gdk.color_parse(self.color.get_fill_color()).blue_float) / 3.0
++            Gdk.color_parse(self.color.get_fill_color()).red_float +
++            Gdk.color_parse(self.color.get_fill_color()).green_float +
++            Gdk.color_parse(self.color.get_fill_color()).blue_float) / 3.0
+         if bright < 0.5:
+-            col = gtk.gdk.color_parse('white')
++            col = Gdk.color_parse('white')
+         else:
+-            col = gtk.gdk.color_parse('black')
++            col = Gdk.color_parse('black')
+         tagcolor = buf.create_tag(foreground=col)
+ 
+         # Add label, equation and result
+@@ -371,7 +372,7 @@ class Calculate(ShareableActivity):
+         self.KEYMAP['divide'] = self.ml.div_sym
+         self.KEYMAP['equal'] = self.ml.equ_sym
+ 
+-        self.clipboard = gtk.Clipboard()
++        self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
+         self.select_reason = self.SELECT_SELECT
+         self.buffer = u""
+         self.showing_version = 0
+@@ -381,7 +382,7 @@ class Calculate(ShareableActivity):
+ 
+         self.connect("key_press_event", self.keypress_cb)
+         self.connect("destroy", self.cleanup_cb)
+-        self.color = sugar.profile.get_color()
++        self.color = sugar3.profile.get_color()
+ 
+         self.layout = CalcLayout(self)
+         self.label_entry = self.layout.label_entry
+@@ -561,34 +562,34 @@ class Calculate(ShareableActivity):
+         return res is not None
+ 
+     def create_var_textview(self, name, value):
+-        """Create a gtk.TextView for a variable"""
++        """Create a Gtk.TextView for a variable"""
+ 
+         reserved = ["Ans", "LastEqn", "help"]
+         if name in reserved:
+             return None
+-        w = gtk.TextView()
++        w = Gtk.TextView()
+         w.modify_base(
+-            gtk.STATE_NORMAL, gtk.gdk.color_parse(self.color.get_fill_color()))
++            Gtk.StateType.NORMAL, Gdk.color_parse(self.color.get_fill_color()))
+         w.modify_bg(
+-            gtk.STATE_NORMAL,
+-            gtk.gdk.color_parse(self.color.get_stroke_color()))
+-        w.set_wrap_mode(gtk.WRAP_WORD_CHAR)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 4)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_RIGHT, 4)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_TOP, 4)
+-        w.set_border_window_size(gtk.TEXT_WINDOW_BOTTOM, 4)
++            Gtk.StateType.NORMAL,
++            Gdk.color_parse(self.color.get_stroke_color()))
++        w.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
++        w.set_border_window_size(Gtk.TextWindowType.LEFT, 4)
++        w.set_border_window_size(Gtk.TextWindowType.RIGHT, 4)
++        w.set_border_window_size(Gtk.TextWindowType.TOP, 4)
++        w.set_border_window_size(Gtk.TextWindowType.BOTTOM, 4)
+         w.connect('realize', _textview_realize_cb)
+         buf = w.get_buffer()
+ 
+         # TODO Fix for old Sugar 0.82 builds, red_float not available
+         bright = (
+-            gtk.gdk.color_parse(self.color.get_fill_color()).red_float +
+-            gtk.gdk.color_parse(self.color.get_fill_color()).green_float +
+-            gtk.gdk.color_parse(self.color.get_fill_color()).blue_float) / 3.0
++            Gdk.color_parse(self.color.get_fill_color()).red_float +
++            Gdk.color_parse(self.color.get_fill_color()).green_float +
++            Gdk.color_parse(self.color.get_fill_color()).blue_float) / 3.0
+         if bright < 0.5:
+-            col = gtk.gdk.color_parse('white')
++            col = Gdk.color_parse('white')
+         else:
+-            col = gtk.gdk.color_parse('black')
++            col = Gdk.color_parse('black')
+ 
+         tag = buf.create_tag(font=CalcLayout.FONT_SMALL_NARROW,
+                              foreground=col)
+@@ -785,7 +786,7 @@ class Calculate(ShareableActivity):
+     def text_copy(self):
+         if self.layout.graph_selected is not None:
+             self.clipboard.set_image(
+-                self.layout.graph_selected.child.get_pixbuf())
++                self.layout.graph_selected.get_child().get_pixbuf())
+             self.layout.toggle_select_graph(self.layout.graph_selected)
+         else:
+             str = self.text_entry.get_text()
+@@ -817,20 +818,20 @@ class Calculate(ShareableActivity):
+         if not self.text_entry.is_focus():
+             return
+ 
+-        key = gtk.gdk.keyval_name(event.keyval)
++        key = Gdk.keyval_name(event.keyval)
+         if event.hardware_keycode == 219:
+-            if (event.state & gtk.gdk.SHIFT_MASK):
++            if (event.get_state() & Gdk.ModifierType.SHIFT_MASK):
+                 key = 'divide'
+             else:
+                 key = 'multiply'
+         _logger.debug('Key: %s (%r, %r)', key,
+                       event.keyval, event.hardware_keycode)
+ 
+-        if event.state & gtk.gdk.CONTROL_MASK:
++        if event.get_state() & Gdk.ModifierType.CONTROL_MASK:
+             if key in self.CTRL_KEYMAP:
+                 f = self.CTRL_KEYMAP[key]
+                 return f(self)
+-        elif (event.state & gtk.gdk.SHIFT_MASK) and key in self.SHIFT_KEYMAP:
++        elif (event.get_state() & Gdk.ModifierType.SHIFT_MASK) and key in self.SHIFT_KEYMAP:
+             f = self.SHIFT_KEYMAP[key]
+             return f(self)
+         elif unicode(key) in self.IDENTIFIER_CHARS:
+@@ -965,9 +966,9 @@ class Calculate(ShareableActivity):
+ 
+ 
+ def main():
+-    win = gtk.Window(gtk.WINDOW_TOPLEVEL)
++    win = Gtk.Window(Gtk.WindowType.TOPLEVEL)
+     t = Calculate(win)
+-    gtk.main()
++    Gtk.main()
+     return 0
+ 
+ if __name__ == "__main__":
+diff --git a/layout.py b/layout.py
+index 6075afb..22560f1 100644
+--- a/layout.py
++++ b/layout.py
+@@ -19,13 +19,14 @@
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ 
+ from gettext import gettext as _
+-import pygtk
+-pygtk.require('2.0')
+-import gtk
+-import pango
+-from sugar.activity import activity
+-import sugar.profile
+-from sugar.graphics.combobox import ComboBox
++import gi
++gi.require_version('Gtk', '3.0')
++from gi.repository import Gtk
++from gi.repository import Gdk
++from gi.repository import Pango
++from sugar3.activity import activity
++import sugar3.profile
++from sugar3.graphics.combobox import ComboBox
+ from toolbars import EditToolbar
+ from toolbars import AlgebraToolbar
+ from toolbars import TrigonometryToolbar
+@@ -33,9 +34,9 @@ from toolbars import BooleanToolbar
+ from toolbars import MiscToolbar
+ 
+ try:
+-    from sugar.graphics.toolbarbox import ToolbarButton, ToolbarBox
+-    from sugar.activity.widgets import ActivityToolbarButton
+-    from sugar.activity.widgets import StopButton
++    from sugar3.graphics.toolbarbox import ToolbarButton, ToolbarBox
++    from sugar3.activity.widgets import ActivityToolbarButton
++    from sugar3.activity.widgets import StopButton
+ except ImportError:
+     pass
+ 
+@@ -64,7 +65,7 @@ class CalcLayout:
+         self.create_dialog()
+ 
+     def create_color(self, rf, gf, bf):
+-        return gtk.gdk.Color(int(rf * 0xFFFF), int(gf * 0xFFFF),
++        return Gdk.Color(int(rf * 0xFFFF), int(gf * 0xFFFF),
+                              int(bf * 0xFFFF))
+ 
+     def create_button_data(self):
+@@ -134,75 +135,51 @@ class CalcLayout:
+         """Setup most of the dialog."""
+ 
+ # Toolbar
+-        try:
+-            self._toolbar_box = ToolbarBox()
+-
+-            activity_button = ActivityToolbarButton(self._parent)
+-            self._toolbar_box.toolbar.insert(activity_button, 0)
+-
+-            def append(icon_name, label, page, position):
+-                toolbar_button = ToolbarButton()
+-                toolbar_button.props.page = page
+-                toolbar_button.props.icon_name = icon_name
+-                toolbar_button.props.label = label
+-                self._toolbar_box.toolbar.insert(toolbar_button, position)
+-
+-            append('toolbar-edit',
+-                   _('Edit'),
+-                   EditToolbar(self._parent),
+-                   -1)
+-
+-            append('toolbar-algebra',
+-                   _('Algebra'),
+-                   AlgebraToolbar(self._parent),
+-                   -1)
+-
+-            append('toolbar-trigonometry',
+-                   _('Trigonometry'),
+-                   TrigonometryToolbar(self._parent),
+-                   -1)
+-
+-            append('toolbar-boolean',
+-                   _('Boolean'),
+-                   BooleanToolbar(self._parent),
+-                   -1)
+-
+-            self._misc_toolbar = MiscToolbar(
+-                self._parent,
+-                target_toolbar=self._toolbar_box.toolbar)
+-
+-            append('toolbar-constants',
+-                   _('Miscellaneous'),
+-                   self._misc_toolbar,
+-                   5)
+-
+-            self._stop_separator = gtk.SeparatorToolItem()
+-            self._stop_separator.props.draw = False
+-            self._stop_separator.set_expand(True)
+-            self._stop_separator.show()
+-            self._toolbar_box.toolbar.insert(self._stop_separator, -1)
+-
+-            self._stop = StopButton(self._parent)
+-            self._toolbar_box.toolbar.insert(self._stop, -1)
+-
+-            self._toolbar_box.show_all()
+-            self._parent.set_toolbar_box(self._toolbar_box)
+-
+-        except NameError:
+-            # Use old toolbar design
+-            toolbox = activity.ActivityToolbox(self._parent)
+-            self._parent.set_toolbox(toolbox)
+-            toolbox.add_toolbar(_('Edit'), EditToolbar(self._parent))
+-            toolbox.add_toolbar(_('Algebra'), AlgebraToolbar(self._parent))
+-            toolbox.add_toolbar(
+-                _('Trigonometry'), TrigonometryToolbar(self._parent))
+-            toolbox.add_toolbar(_('Boolean'), BooleanToolbar(self._parent))
+-            toolbox.add_toolbar(_('Miscellaneous'), MiscToolbar(self._parent))
+-            toolbox.show_all()
++        self._toolbar_box = ToolbarBox()
++        activity_button = ActivityToolbarButton(self._parent)
++        self._toolbar_box.toolbar.insert(activity_button, 0)
++        def append(icon_name, label, page, position):
++            toolbar_button = ToolbarButton()
++            toolbar_button.props.page = page
++            toolbar_button.props.icon_name = icon_name
++            toolbar_button.props.label = label
++            self._toolbar_box.toolbar.insert(toolbar_button, position)
++        append('toolbar-edit',
++               _('Edit'),
++               EditToolbar(self._parent),
++               -1)
++        append('toolbar-algebra',
++               _('Algebra'),
++               AlgebraToolbar(self._parent),
++               -1)
++        append('toolbar-trigonometry',
++               _('Trigonometry'),
++               TrigonometryToolbar(self._parent),
++               -1)
++        append('toolbar-boolean',
++               _('Boolean'),
++               BooleanToolbar(self._parent),
++               -1)
++        self._misc_toolbar = MiscToolbar(
++            self._parent,
++            target_toolbar=self._toolbar_box.toolbar)
++        append('toolbar-constants',
++               _('Miscellaneous'),
++               self._misc_toolbar,
++               5)
++        self._stop_separator = Gtk.SeparatorToolItem()
++        self._stop_separator.props.draw = False
++        self._stop_separator.set_expand(True)
++        self._stop_separator.show()
++        self._toolbar_box.toolbar.insert(self._stop_separator, -1)
++        self._stop = StopButton(self._parent)
++        self._toolbar_box.toolbar.insert(self._stop, -1)
++        self._toolbar_box.show_all()
++        self._parent.set_toolbar_box(self._toolbar_box)
+ 
+ # Some layout constants
+-        self.input_font = pango.FontDescription(str='sans bold 12')
+-        self.button_font = pango.FontDescription(str='sans bold 16')
++        self.input_font = Pango.FontDescription('sans bold 12')
++        self.button_font = Pango.FontDescription('sans bold 16')
+         self.col_white = self.create_color(1.00, 1.00, 1.00)
+         self.col_gray1 = self.create_color(0.76, 0.76, 0.76)
+         self.col_gray2 = self.create_color(0.50, 0.50, 0.50)
+@@ -211,31 +188,31 @@ class CalcLayout:
+         self.col_red = self.create_color(1.00, 0.00, 0.00)
+ 
+ # Big - Table, 16 rows, 10 columns, homogeneously divided
+-        self.grid = gtk.Table(26, 11, True)
+-        self.grid.set_border_width(0)
+-        self.grid.set_row_spacings(0)
+-        self.grid.set_col_spacings(4)
++        self.grid = Gtk.Grid()
++        self.grid.set_column_homogeneous (True)
++        self.grid.set_row_spacing(0)
++        self.grid.set_column_spacing(4)
+ 
+ # Left part: container and input
+-        vc1 = gtk.VBox(False, 0)
+-        hc1 = gtk.HBox(False, 10)
+-        eb = gtk.EventBox()
++        vc1 = Gtk.VBox(False, 0)
++        hc1 = Gtk.HBox(False, 10)
++        eb = Gtk.EventBox()
+         eb.add(hc1)
+-        eb.modify_bg(gtk.STATE_NORMAL, self.col_black)
++        eb.modify_bg(Gtk.StateType.NORMAL, self.col_black)
+         eb.set_border_width(12)
+-        eb2 = gtk.EventBox()
++        eb2 = Gtk.EventBox()
+         eb2.add(eb)
+-        eb2.modify_bg(gtk.STATE_NORMAL, self.col_black)
+-        label1 = gtk.Label(_('Label:'))
+-        label1.modify_fg(gtk.STATE_NORMAL, self.col_white)
++        eb2.modify_bg(Gtk.StateType.NORMAL, self.col_black)
++        label1 = Gtk.Label(label=_('Label:'))
++        label1.modify_fg(Gtk.StateType.NORMAL, self.col_white)
+         label1.set_alignment(1, 0.5)
+         hc1.pack_start(label1, expand=False, fill=False, padding=10)
+-        self.label_entry = gtk.Entry()
+-        self.label_entry.modify_bg(gtk.STATE_INSENSITIVE, self.col_black)
++        self.label_entry = Gtk.Entry()
++        self.label_entry.modify_bg(Gtk.StateType.INSENSITIVE, self.col_black)
+         hc1.pack_start(self.label_entry, expand=True, fill=True, padding=0)
+-        vc1.pack_start(eb2, expand=False)
++        vc1.pack_start(eb2, False, True, 0)
+ 
+-        self.text_entry = gtk.Entry()
++        self.text_entry = Gtk.Entry()
+         try:
+             self.text_entry.props.im_module = 'gtk-im-context-simple'
+         except AttributeError:
+@@ -243,95 +220,95 @@ class CalcLayout:
+         self.text_entry.set_size_request(-1, 75)
+         self.text_entry.connect('key_press_event', self._parent.ignore_key_cb)
+         self.text_entry.modify_font(self.input_font)
+-        self.text_entry.modify_bg(gtk.STATE_INSENSITIVE, self.col_black)
+-        eb = gtk.EventBox()
++        self.text_entry.modify_bg(Gtk.StateType.INSENSITIVE, self.col_black)
++        eb = Gtk.EventBox()
+         eb.add(self.text_entry)
+-        eb.modify_bg(gtk.STATE_NORMAL, self.col_black)
++        eb.modify_bg(Gtk.StateType.NORMAL, self.col_black)
+         eb.set_border_width(12)
+-        eb2 = gtk.EventBox()
++        eb2 = Gtk.EventBox()
+         eb2.add(eb)
+-        eb2.modify_bg(gtk.STATE_NORMAL, self.col_black)
++        eb2.modify_bg(Gtk.StateType.NORMAL, self.col_black)
+         vc1.pack_start(eb2, expand=True, fill=True, padding=0)
+-        self.grid.attach(vc1, 0, 7, 0, 6)
++        self.grid.attach(vc1, 0, 0, 7, 6)
+ 
+ # Left part: buttons
+-        self.pad = gtk.Table(9, 6, True)
+-        self.pad.set_row_spacings(12)
+-        self.pad.set_col_spacings(12)
+-        self.pad.set_border_width(12)
++        self.pad = Gtk.Grid()
++        self.pad.set_column_homogeneous (True)
++        self.pad.set_row_spacing(6)
++        self.pad.set_column_spacing(6)
+         self.create_button_data()
+         self.buttons = {}
+         for x, y, w, h, cap, bgcol, cb in self.button_data:
+             button = self.create_button(
+                 _(cap), cb, self.col_white, bgcol, w, h)
+             self.buttons[cap] = button
+-            self.pad.attach(button, x, x + w, y, y + h)
++            self.pad.attach(button, x, y, w, h)
+ 
+-        eb = gtk.EventBox()
++        eb = Gtk.EventBox()
+         eb.add(self.pad)
+-        eb.modify_bg(gtk.STATE_NORMAL, self.col_black)
+-        self.grid.attach(eb, 0, 7, 6, 26)
++        eb.modify_bg(Gtk.StateType.NORMAL, self.col_black)
++        self.grid.attach(eb, 0, 6, 7, 20)
+ 
+ # Right part: container and equation button
+-        hc2 = gtk.HBox()
++        hc2 = Gtk.HBox()
+         combo = ComboBox()
+         combo.append_item(0, _('All equations'))
+         combo.append_item(1, _('My equations'))
+         combo.append_item(2, _('Show variables'))
+         combo.set_active(0)
+         combo.connect('changed', self._history_filter_cb)
+-        hc2.pack_start(combo)
++        hc2.pack_start(combo, True, True, 0)
+         hc2.set_border_width(6)
+-        self.grid.attach(hc2, 7, 11, 0, 2)
++        self.grid.attach(hc2, 7, 0, 4, 2)
+ 
+ # Right part: last equation
+-        self.last_eq = gtk.TextView()
++        self.last_eq = Gtk.TextView()
+         self.last_eq.set_editable(False)
+-        self.last_eq.set_wrap_mode(gtk.WRAP_WORD_CHAR)
++        self.last_eq.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
+         self.last_eq.connect('realize', self._textview_realize_cb)
+-        self.last_eq.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(
+-                                 sugar.profile.get_color().get_fill_color()))
+-        self.last_eq.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(
+-                               sugar.profile.get_color().get_stroke_color()))
+-        self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 4)
+-        self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_RIGHT, 4)
+-        self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_TOP, 4)
+-        self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_BOTTOM, 4)
++        self.last_eq.modify_base(Gtk.StateType.NORMAL, Gdk.color_parse(
++                                 sugar3.profile.get_color().get_fill_color()))
++        self.last_eq.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(
++                               sugar3.profile.get_color().get_stroke_color()))
++        self.last_eq.set_border_window_size(Gtk.TextWindowType.LEFT, 4)
++        self.last_eq.set_border_window_size(Gtk.TextWindowType.RIGHT, 4)
++        self.last_eq.set_border_window_size(Gtk.TextWindowType.TOP, 4)
++        self.last_eq.set_border_window_size(Gtk.TextWindowType.BOTTOM, 4)
+ 
+         # TODO Fix for old Sugar 0.82 builds, red_float not available
+-        xo_color = sugar.profile.get_color()
++        xo_color = sugar3.profile.get_color()
+         bright = (
+-            gtk.gdk.color_parse(xo_color.get_fill_color()).red_float +
+-            gtk.gdk.color_parse(xo_color.get_fill_color()).green_float +
+-            gtk.gdk.color_parse(xo_color.get_fill_color()).blue_float) / 3.0
++            Gdk.color_parse(xo_color.get_fill_color()).red_float +
++            Gdk.color_parse(xo_color.get_fill_color()).green_float +
++            Gdk.color_parse(xo_color.get_fill_color()).blue_float) / 3.0
+         if bright < 0.5:
+-            self.last_eq.modify_text(gtk.STATE_NORMAL, self.col_white)
++            self.last_eq.modify_text(Gtk.StateType.NORMAL, self.col_white)
+         else:
+-            self.last_eq.modify_text(gtk.STATE_NORMAL, self.col_black)
++            self.last_eq.modify_text(Gtk.StateType.NORMAL, self.col_black)
+ 
+-        self.grid.attach(self.last_eq, 7, 11, 2, 7)
++        self.grid.attach(self.last_eq, 7, 2, 4, 5)
+ 
+ # Right part: history
+-        scrolled_window = gtk.ScrolledWindow()
+-        scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
++        scrolled_window = Gtk.ScrolledWindow()
++        scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ 
+-        self.history_vbox = gtk.VBox()
++        self.history_vbox = Gtk.VBox()
+         self.history_vbox.set_homogeneous(False)
+         self.history_vbox.set_border_width(0)
+         self.history_vbox.set_spacing(4)
+ 
+-        self.variable_vbox = gtk.VBox()
++        self.variable_vbox = Gtk.VBox()
+         self.variable_vbox.set_homogeneous(False)
+         self.variable_vbox.set_border_width(0)
+         self.variable_vbox.set_spacing(4)
+ 
+-        vbox = gtk.VBox()
+-        vbox.pack_start(self.history_vbox)
+-        vbox.pack_start(self.variable_vbox)
++        vbox = Gtk.VBox()
++        vbox.pack_start(self.history_vbox, True, True, 0)
++        vbox.pack_start(self.variable_vbox, True, True, 0)
+         scrolled_window.add_with_viewport(vbox)
+-        self.grid.attach(scrolled_window, 7, 11, 7, 26)
++        self.grid.attach(scrolled_window, 7, 7, 4, 19)
+ 
+-        gtk.gdk.screen_get_default().connect('size-changed',
++        Gdk.Screen.get_default().connect('size-changed',
+                                              self._configure_cb)
+ 
+     def _configure_cb(self, event):
+@@ -369,19 +346,19 @@ class CalcLayout:
+             widget.set_visible_window(True)
+             widget.set_above_child(True)
+             self.graph_selected = widget
+-            white = gtk.gdk.color_parse('white')
+-            widget.modify_bg(gtk.STATE_NORMAL, white)
++            white = Gdk.color_parse('white')
++            widget.modify_bg(Gtk.StateType.NORMAL, white)
+         else:
+             widget.set_visible_window(False)
+             self.graph_selected = False
+ 
+     def add_equation(self, textview, own, prepend=False):
+-        """Add a gtk.TextView of an equation to the history_vbox."""
++        """Add a Gtk.TextView of an equation to the history_vbox."""
+ 
+         GraphEventBox = None
+-        if isinstance(textview, gtk.Image):
++        if isinstance(textview, Gtk.Image):
+             # Add the image inside the eventBox
+-            GraphEventBox = gtk.EventBox()
++            GraphEventBox = Gtk.EventBox()
+             GraphEventBox.add(textview)
+             GraphEventBox.set_visible_window(False)
+             GraphEventBox.connect(
+@@ -390,10 +367,10 @@ class CalcLayout:
+ 
+         if prepend:
+             if GraphEventBox:
+-                self.history_vbox.pack_start(GraphEventBox, False, True)
++                self.history_vbox.pack_start(GraphEventBox, False, True, 0)
+                 self.history_vbox.reorder_child(GraphEventBox, 0)
+             else:
+-                self.history_vbox.pack_start(textview, False, True)
++                self.history_vbox.pack_start(textview, False, True, 0)
+                 self.history_vbox.reorder_child(textview, 0)
+         else:
+             if GraphEventBox:
+@@ -404,7 +381,7 @@ class CalcLayout:
+         if own:
+             if GraphEventBox:
+                 self._own_equations.append(GraphEventBox)
+-                GraphEventBox.child.show()
++                GraphEventBox.get_child().show()
+             else:
+                 self._own_equations.append(textview)
+                 textview.show()
+@@ -412,7 +389,7 @@ class CalcLayout:
+             if self._showing_all_history:
+                 if GraphEventBox:
+                     self._other_equations.append(GraphEventBox)
+-                    GraphEventBox.child.show()
++                    GraphEventBox.get_child().show()
+                 else:
+                     self._other_equations.append(textview)
+                     textview.show()
+@@ -421,8 +398,8 @@ class CalcLayout:
+         """Show both owned and other equations."""
+         self._showing_all_history = True
+         for key in self._other_equations:
+-            if isinstance(key, gtk.EventBox):
+-                key.child.show()
++            if isinstance(key, Gtk.EventBox):
++                key.get_child().show()
+             else:
+                 key.show()
+ 
+@@ -430,20 +407,20 @@ class CalcLayout:
+         """Show only owned equations."""
+         self._showing_all_history = False
+         for key in self._other_equations:
+-            if isinstance(key, gtk.EventBox):
+-                key.child.hide()
++            if isinstance(key, Gtk.EventBox):
++                key.get_child().hide()
+             else:
+                 key.hide()
+ 
+     def add_variable(self, varname, textview):
+-        """Add a gtk.TextView of a variable to the variable_vbox."""
++        """Add a Gtk.TextView of a variable to the variable_vbox."""
+ 
+         if varname in self._var_textviews:
+             self.variable_vbox.remove(self._var_textviews[varname])
+             del self._var_textviews[varname]
+ 
+         self._var_textviews[varname] = textview
+-        self.variable_vbox.pack_start(textview, False, True)
++        self.variable_vbox.pack_start(textview, False, True, 0)
+ 
+         # Reorder textviews for a sorted list
+         names = self._var_textviews.keys()
+@@ -461,7 +438,7 @@ class CalcLayout:
+ 
+     def create_button(self, cap, cb, fgcol, bgcol, width, height):
+         """Create a button that is set up properly."""
+-        button = gtk.Button(_(cap))
++        button = Gtk.Button(_(cap))
+         self.modify_button_appearance(button, fgcol, bgcol, width, height)
+         button.connect("clicked", cb)
+         button.connect("key_press_event", self._parent.ignore_key_cb)
+@@ -473,9 +450,9 @@ class CalcLayout:
+         height = 50 * height
+         button.get_child().set_size_request(width, height)
+         button.get_child().modify_font(self.button_font)
+-        button.get_child().modify_fg(gtk.STATE_NORMAL, fgcol)
+-        button.modify_bg(gtk.STATE_NORMAL, bgcol)
+-        button.modify_bg(gtk.STATE_PRELIGHT, bgcol)
++        button.get_child().modify_fg(Gtk.StateType.NORMAL, fgcol)
++        button.modify_bg(Gtk.StateType.NORMAL, bgcol)
++        button.modify_bg(Gtk.StateType.PRELIGHT, bgcol)
+ 
+     def _history_filter_cb(self, combo):
+         selection = combo.get_active()
+@@ -490,6 +467,6 @@ class CalcLayout:
+ 
+     def _textview_realize_cb(self, widget):
+         '''Change textview properties once window is created.'''
+-        win = widget.get_window(gtk.TEXT_WINDOW_TEXT)
+-        win.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND1))
++        win = widget.get_window(Gtk.TextWindowType.TEXT)
++        win.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND1))
+         return False
+diff --git a/setup.py b/setup.py
+index ec0f64e..9a141b3 100755
+--- a/setup.py
++++ b/setup.py
+@@ -1,3 +1,3 @@
+ #!/usr/bin/env python
+-from sugar.activity import bundlebuilder
++from sugar3.activity import bundlebuilder
+ bundlebuilder.start()
+diff --git a/shareable_activity.py b/shareable_activity.py
+index 2f38737..79bdb3b 100644
+--- a/shareable_activity.py
++++ b/shareable_activity.py
+@@ -1,10 +1,10 @@
+ import dbus
+-import gobject
++from gi.repository import GObject
+ import telepathy
+ 
+-from sugar.activity import activity
+-from sugar.presence import presenceservice
+-from sugar.presence.sugartubeconn import SugarTubeConnection
++from sugar3.activity import activity
++from sugar3.presence import presenceservice
++from sugar3.presence.sugartubeconn import SugarTubeConnection
+ 
+ import logging
+ _logger = logging.getLogger('ShareableActivity')
+@@ -258,7 +258,7 @@ class ShareableActivity(activity.Activity):
+             return
+ 
+         self._syncreq_buddy = 0
+-        self._sync_hid = gobject.timeout_add(2000, self._request_sync_cb)
++        self._sync_hid = GObject.timeout_add(2000, self._request_sync_cb)
+         self._request_sync_cb()
+ 
+     def _request_sync_cb(self):
+diff --git a/svgimage.py b/svgimage.py
+index 6a70b2b..96234a4 100644
+--- a/svgimage.py
++++ b/svgimage.py
+@@ -20,8 +20,8 @@
+ import logging
+ _logger = logging.getLogger('SVGImage')
+ 
+-import gtk
+-import rsvg
++from gi.repository import Gtk
++from gi.repository import Rsvg
+ 
+ 
+ class SVGImage:
+@@ -39,9 +39,9 @@ class SVGImage:
+         return self._svg_data
+ 
+     def render_svg(self):
+-        self._handle = rsvg.Handle(data=self._svg_data)
++        self._handle = Rsvg.Handle.new_from_data(self._svg_data)
+         self._pixbuf = self._handle.get_pixbuf()
+-        self._image = gtk.Image()
++        self._image = Gtk.Image()
+         self._image.set_from_pixbuf(self._pixbuf)
+         self._image.set_alignment(0.5, 0)
+         return self._image
+diff --git a/toolbars.py b/toolbars.py
+index 0513944..c6b7102 100644
+--- a/toolbars.py
++++ b/toolbars.py
+@@ -1,16 +1,17 @@
+ # -*- coding: utf-8 -*-
+ # toolbars.py, see CalcActivity.py for info
+ 
+-import pygtk
+-pygtk.require('2.0')
+-import gtk
++import gi
++gi.require_version('Gtk', '3.0')
++from gi.repository import Gtk
++from gi.repository import Gdk
+ from mathlib import MathLib
+ 
+-from sugar.graphics.palette import Palette
+-from sugar.graphics.menuitem import MenuItem
+-from sugar.graphics.toolbutton import ToolButton
+-from sugar.graphics.toggletoolbutton import ToggleToolButton
+-from sugar.graphics.style import GRID_CELL_SIZE
++from sugar3.graphics.palette import Palette
++from sugar3.graphics.menuitem import MenuItem
++from sugar3.graphics.toolbutton import ToolButton
++from sugar3.graphics.toggletoolbutton import ToggleToolButton
++from sugar3.graphics.style import GRID_CELL_SIZE
+ 
+ import logging
+ _logger = logging.getLogger('calc-activity')
+@@ -22,7 +23,7 @@ def _icon_exists(name):
+     if name == '':
+         return False
+ 
+-    theme = gtk.icon_theme_get_default()
++    theme = Gtk.IconTheme.get_default()
+     info = theme.lookup_icon(name, 0, 0)
+     if info:
+         return True
+@@ -36,12 +37,12 @@ class IconToolButton(ToolButton):
+         ToolButton.__init__(self)
+ 
+         if _icon_exists(icon_name):
+-            self.set_icon(icon_name)
++            self.props.icon_name = icon_name
+         else:
+             if alt_html == '':
+                 alt_html = icon_name
+ 
+-            label = gtk.Label()
++            label = Gtk.Label()
+             label.set_markup(alt_html)
+             label.show()
+             self.set_label_widget(label)
+@@ -68,7 +69,7 @@ class IconToggleToolButton(ToggleToolButton):
+         ToggleToolButton.__init__(self)
+         self.items = items
+         if 'icon' in items[0] and _icon_exists(items[0]['icon']):
+-            self.set_named_icon(items[0]['icon'])
++            self.props.icon_name = items[0]['icon']
+         elif 'html' in items[0]:
+             self.set_label(items[0]['html'])
+ #        self.set_tooltip(items[0][1])
+@@ -81,7 +82,7 @@ class IconToggleToolButton(ToggleToolButton):
+         self.selected = (self.selected + 1) % len(self.items)
+         but = self.items[self.selected]
+         if 'icon' in but and _icon_exists(but['icon']):
+-            self.set_named_icon(but['icon'])
++            self.props.icon_name = but['icon']
+         elif 'html' in but:
+             _logger.info('Setting html: %s', but['html'])
+             self.set_label(but['html'])
+@@ -93,10 +94,10 @@ class IconToggleToolButton(ToggleToolButton):
+                 self.callback(but)
+ 
+ 
+-class TextToggleToolButton(gtk.ToggleToolButton):
++class TextToggleToolButton(Gtk.ToggleToolButton):
+ 
+     def __init__(self, items, cb, desc, index=False):
+-        gtk.ToggleToolButton.__init__(self)
++        Gtk.ToggleToolButton.__init__(self)
+         self.items = items
+         self.set_label(items[0])
+         self.selected = 0
+@@ -116,17 +117,17 @@ class TextToggleToolButton(gtk.ToggleToolButton):
+                 self.callback(but)
+ 
+ 
+-class LineSeparator(gtk.SeparatorToolItem):
++class LineSeparator(Gtk.SeparatorToolItem):
+ 
+     def __init__(self):
+-        gtk.SeparatorToolItem.__init__(self)
++        Gtk.SeparatorToolItem.__init__(self)
+         self.set_draw(True)
+ 
+ 
+-class EditToolbar(gtk.Toolbar):
++class EditToolbar(Gtk.Toolbar):
+ 
+     def __init__(self, calc):
+-        gtk.Toolbar.__init__(self)
++        Gtk.Toolbar.__init__(self)
+ 
+         copy_tool = ToolButton('edit-copy')
+         copy_tool.set_tooltip(_('Copy'))
+@@ -152,10 +153,10 @@ class EditToolbar(gtk.Toolbar):
+         self.show_all()
+ 
+ 
+-class AlgebraToolbar(gtk.Toolbar):
++class AlgebraToolbar(Gtk.Toolbar):
+ 
+     def __init__(self, calc):
+-        gtk.Toolbar.__init__(self)
++        Gtk.Toolbar.__init__(self)
+ 
+         self.insert(IconToolButton('algebra-square', _('Square'),
+                                    lambda x: calc.button_pressed(
+@@ -211,10 +212,10 @@ class AlgebraToolbar(gtk.Toolbar):
+         self.show_all()
+ 
+ 
+-class TrigonometryToolbar(gtk.Toolbar):
++class TrigonometryToolbar(Gtk.Toolbar):
+ 
+     def __init__(self, calc):
+-        gtk.Toolbar.__init__(self)
++        Gtk.Toolbar.__init__(self)
+ 
+         self.insert(IconToolButton(
+             'trigonometry-sin', _('Sine'),
+@@ -268,10 +269,10 @@ class TrigonometryToolbar(gtk.Toolbar):
+         self.show_all()
+ 
+ 
+-class BooleanToolbar(gtk.Toolbar):
++class BooleanToolbar(Gtk.Toolbar):
+ 
+     def __init__(self, calc):
+-        gtk.Toolbar.__init__(self)
++        Gtk.Toolbar.__init__(self)
+ 
+         self.insert(IconToolButton(
+             'boolean-and', _('Logical and'),
+@@ -300,12 +301,12 @@ class BooleanToolbar(gtk.Toolbar):
+         self.show_all()
+ 
+ 
+-class MiscToolbar(gtk.Toolbar):
++class MiscToolbar(Gtk.Toolbar):
+ 
+     def __init__(self, calc, target_toolbar=None):
+         self._target_toolbar = target_toolbar
+ 
+-        gtk.Toolbar.__init__(self)
++        Gtk.Toolbar.__init__(self)
+ 
+         self.insert(IconToolButton('constants-pi', _('Pi'),
+                                    lambda x: calc.button_pressed(
+@@ -381,7 +382,7 @@ class MiscToolbar(gtk.Toolbar):
+         self.show_all()
+ 
+     def update_layout(self):
+-        if gtk.gdk.screen_width() < 14 * GRID_CELL_SIZE or \
++        if Gdk.Screen.width() < 14 * GRID_CELL_SIZE or \
+                 self._target_toolbar is None:
+             target_toolbar = self
+             if self._target_toolbar is not None:
+-- 
+2.11.1
+

Added: sugar-activity-calculate/trunk/PKGBUILD
===================================================================
--- sugar-activity-calculate/trunk/PKGBUILD	                        (rev 0)
+++ sugar-activity-calculate/trunk/PKGBUILD	2017-02-15 04:06:15 UTC (rev 212488)
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=sugar-activity-calculate
+_pkgname=Calculate
+pkgver=43
+pkgrel=1
+pkgdesc="Graphing calculator for Sugar"
+arch=('any')
+url="https://wiki.sugarlabs.org/go/Activities/Calculate"
+license=('GPL')
+groups=('sugar-fructose')
+depends=('sugar-toolkit-gtk3')
+optdepends=('python2-matplotlib: alternative plotting backend')
+source=(https://download.sugarlabs.org/sources/sucrose/fructose/$_pkgname/$_pkgname-$pkgver.tar.bz2
+        0001-Port-to-GTK3.patch)
+sha256sums=('8fa75a00c5e2799708fdca8ee189c5596558c9c98c6cada3c2e4d6002911a5ed'
+            '28fbbe30673dea2a69d1a6600ac35a56b0e3ffe81797b963f87d98364e1b27ab')
+
+prepare() {
+  cd $_pkgname-$pkgver
+  sed -i 's@^#!.*python$@#!/usr/bin/python2@' setup.py
+  patch -Np1 -i ../0001-Port-to-GTK3.patch
+}
+
+package() {
+  cd $_pkgname-$pkgver
+  python2 setup.py install --prefix "$pkgdir/usr"
+  rm -r "$pkgdir"/usr/share/applications
+}


Property changes on: sugar-activity-calculate/trunk/PKGBUILD
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: sugar-activity-clock/trunk/PKGBUILD
===================================================================
--- sugar-activity-clock/trunk/PKGBUILD	                        (rev 0)
+++ sugar-activity-clock/trunk/PKGBUILD	2017-02-15 04:06:15 UTC (rev 212488)
@@ -0,0 +1,26 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=sugar-activity-clock
+_pkgname=Clock
+pkgver=18
+pkgrel=1
+pkgdesc="Clock for Sugar"
+arch=('any')
+url="https://wiki.sugarlabs.org/go/Activities/Clock"
+license=('GPL')
+groups=('sugar-fructose')
+depends=('espeak' 'sugar-toolkit-gtk3')
+source=(https://download.sugarlabs.org/sources/honey/$_pkgname/$_pkgname-$pkgver.tar.bz2)
+sha256sums=('441e88fc6b19e6d29fe58872de4be69b67d327ff1f98839c809aeafa582d7c5f')
+
+prepare() {
+  cd $_pkgname-$pkgver
+  find . -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+}
+
+package() {
+  cd $_pkgname-$pkgver
+  python2 setup.py install --prefix "$pkgdir/usr"
+  rm -r "$pkgdir"/usr/share/applications
+}


Property changes on: sugar-activity-clock/trunk/PKGBUILD
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: sugar-activity-pippy/trunk/PKGBUILD
===================================================================
--- sugar-activity-pippy/trunk/PKGBUILD	                        (rev 0)
+++ sugar-activity-pippy/trunk/PKGBUILD	2017-02-15 04:06:15 UTC (rev 212488)
@@ -0,0 +1,33 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=sugar-activity-pippy
+_pkgname=Pippy
+pkgver=70
+pkgrel=1
+pkgdesc="Sugar activity to learn and develop in Python programming language"
+arch=('any')
+url="https://wiki.sugarlabs.org/go/Activities/Pippy"
+license=('GPL')
+groups=('sugar-fructose')
+depends=('python2-pybox2d' 'python2-pygame' 'sugar' 'vte3')
+source=($pkgname-$pkgver.tar.gz::https://github.com/sugarlabs/$_pkgname/archive/v$pkgver.tar.gz
+        fix-missing-icons.patch)
+sha256sums=('7c7ca995661a4e1c0964e5788ad5dfce539beca7acaa46b278b7f71429ccf575'
+            '38bc051a8a4b5c2dbee2c1d4b73083eb8708b689935448b9767f5d339a684f44')
+
+prepare() {
+  cd $_pkgname-$pkgver
+  patch -Np1 -i ../fix-missing-icons.patch
+  find . -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+  sed -i 's/python %s; sleep 1/python2 %s; sleep 1/' pippy_app.py
+  sed -i "s/require_version('Vte', '2.90')/require_version('Vte', '2.91')/" activity.py pippy_app.py
+  sed -i 's/self._collab.props.leader/self._collab._leader/' pippy_app.py texteditor.py
+  rm -r library/box2d_*/ library/Box2D.py library/LICENSE
+}
+
+package() {
+  cd $_pkgname-$pkgver
+  python2 setup.py install --prefix "$pkgdir/usr"
+  rm -r "$pkgdir"/usr/share/applications
+}


Property changes on: sugar-activity-pippy/trunk/PKGBUILD
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: sugar-activity-pippy/trunk/fix-missing-icons.patch
===================================================================
--- sugar-activity-pippy/trunk/fix-missing-icons.patch	                        (rev 0)
+++ sugar-activity-pippy/trunk/fix-missing-icons.patch	2017-02-15 04:06:15 UTC (rev 212488)
@@ -0,0 +1,49 @@
+From 3f4af9d67adb530503e42ec10f39f2f6255df0ad Mon Sep 17 00:00:00 2001
+From: James Cameron <quozl at laptop.org>
+Date: Wed, 18 May 2016 12:00:33 +1000
+Subject: [PATCH] Fix missing run, stop, clear icons
+
+Three toolbar icons were not visible until pressed.
+
+Cause was missing show() method call.
+---
+ pippy_app.py | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/pippy_app.py b/pippy_app.py
+index fadf74f..55297bc 100644
+--- a/pippy_app.py
++++ b/pippy_app.py
+@@ -256,8 +256,10 @@ def initialize_display(self):
+ 
+         icon_bw = Gtk.Image()
+         icon_bw.set_from_file(os.path.join(icons_path, 'run_bw.svg'))
++        icon_bw.show()
+         icon_color = Gtk.Image()
+         icon_color.set_from_file(os.path.join(icons_path, 'run_color.svg'))
++        icon_color.show()
+         button = ToolButton(label=_('Run!'))
+         button.props.accelerator = _('<alt>r')
+         button.set_icon_widget(icon_bw)
+@@ -270,8 +272,10 @@ def initialize_display(self):
+ 
+         icon_bw = Gtk.Image()
+         icon_bw.set_from_file(os.path.join(icons_path, 'stopit_bw.svg'))
++        icon_bw.show()
+         icon_color = Gtk.Image()
+         icon_color.set_from_file(os.path.join(icons_path, 'stopit_color.svg'))
++        icon_color.show()
+         button = ToolButton(label=_('Stop'))
+         button.props.accelerator = _('<alt>s')
+         button.set_icon_widget(icon_bw)
+@@ -284,8 +288,10 @@ def initialize_display(self):
+ 
+         icon_bw = Gtk.Image()
+         icon_bw.set_from_file(os.path.join(icons_path, 'eraser_bw.svg'))
++        icon_bw.show()
+         icon_color = Gtk.Image()
+         icon_color.set_from_file(os.path.join(icons_path, 'eraser_color.svg'))
++        icon_color.show()
+         button = ToolButton(label=_('Clear'))
+         button.props.accelerator = _('<alt>c')
+         button.set_icon_widget(icon_bw)



More information about the arch-commits mailing list