Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2012-01-02 00:17:43 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2012-01-02 00:17:43 (GMT)
commit4c75b90a8b2a2f9911af39a3f20d67e98f5ab98c (patch)
treebca7d53672ec381d1277790576222dab2acbe2c5
parent376386a5044cbea5d139bce035e6fb3cc4cf8e77 (diff)
Add capability of change the labelssugar-0.94
-rw-r--r--activity.py35
-rwxr-xr-xdraw_piano.py4
-rw-r--r--icons/do_key.svg34
-rw-r--r--icons/q_key.svg40
4 files changed, 107 insertions, 6 deletions
diff --git a/activity.py b/activity.py
index 9a776eb..09a2345 100644
--- a/activity.py
+++ b/activity.py
@@ -22,6 +22,7 @@ from gettext import gettext as _
from sugar.activity import activity
from sugar.graphics.toolbarbox import ToolbarBox
from sugar.activity.widgets import ActivityToolbarButton
+from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.activity.widgets import StopButton
from draw_piano import PianoKeyboard
@@ -46,6 +47,20 @@ class SimplePianoActivity(activity.Activity):
activity_button = ActivityToolbarButton(self)
toolbar_box.toolbar.insert(activity_button, 0)
+ toolbar_box.toolbar.insert(gtk.SeparatorToolItem(), -1)
+
+ keybord_labels = RadioToolButton()
+ keybord_labels.props.icon_name = 'q_key'
+ keybord_labels.props.group = keybord_labels
+ keybord_labels.connect('clicked', self.set_keyboard_labels_cb)
+ toolbar_box.toolbar.insert(keybord_labels, -1)
+
+ notes_labels = RadioToolButton()
+ notes_labels.props.icon_name = 'do_key'
+ notes_labels.props.group = keybord_labels
+ notes_labels.connect('clicked', self.set_notes_labels_cb)
+ toolbar_box.toolbar.insert(notes_labels, -1)
+
separator = gtk.SeparatorToolItem()
separator.props.draw = False
separator.set_expand(True)
@@ -64,14 +79,22 @@ class SimplePianoActivity(activity.Activity):
notes = ['DO', 'DO#', 'RE', 'RE#', 'MI', 'FA', 'FA#', 'SOL',
'SOL#', 'LA', 'LA#', 'SI']
- labels_tamtam = [notes, notes, ['DO']]
+ self.notes_labels = [notes, notes, ['DO']]
- piano = PianoKeyboard(octaves=2, add_c=True,
+ self.piano = PianoKeyboard(octaves=2, add_c=True,
labels=self.keyboard_letters)
- piano.connect('key_pressed', self.__key_pressed_cb)
- piano.connect('key_released', self.__key_released_cb)
- piano.show()
- self.set_canvas(piano)
+ self.piano.connect('key_pressed', self.__key_pressed_cb)
+ self.piano.connect('key_released', self.__key_released_cb)
+ self.piano.show()
+ self.set_canvas(self.piano)
+
+ def set_notes_labels_cb(self, widget):
+ self.piano.font_size = 14
+ self.piano.set_labels(self.notes_labels)
+
+ def set_keyboard_labels_cb(self, widget):
+ self.piano.font_size = 20
+ self.piano.set_labels(self.keyboard_letters)
def __key_pressed_cb(self, widget, octave_clicked, key_clicked, letter):
logging.debug('Pressed Octave: %d Key: %d Letter: %s' %
diff --git a/draw_piano.py b/draw_piano.py
index 6f045c8..48df9eb 100755
--- a/draw_piano.py
+++ b/draw_piano.py
@@ -45,6 +45,10 @@ class PianoKeyboard(gtk.DrawingArea):
gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | \
gtk.gdk.POINTER_MOTION_HINT_MASK)
+ def set_labels(self, labels):
+ self._labels = labels
+ self.queue_draw()
+
def calculate_sizes(self, width):
self._width = width
self._height = self._width / 2
diff --git a/icons/do_key.svg b/icons/do_key.svg
new file mode 100644
index 0000000..59eef91
--- /dev/null
+++ b/icons/do_key.svg
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="55"
+ height="55"
+ viewBox="0 0 55 55"
+ id="svg3062"
+ xml:space="preserve"><metadata
+ id="metadata3079"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs3077" />
+
+
+
+<text
+ x="7.9110003"
+ y="32.999866"
+ transform="scale(0.82460939,1.2126954)"
+ id="text3857"
+ xml:space="preserve"
+ style="font-size:30.8579998px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"><tspan
+ x="7.9110003"
+ y="32.999866"
+ id="tspan3859"
+ style="font-weight:bold;-inkscape-font-specification:Sans Bold">DO</tspan></text>
+</svg>
diff --git a/icons/q_key.svg b/icons/q_key.svg
new file mode 100644
index 0000000..632c380
--- /dev/null
+++ b/icons/q_key.svg
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="55"
+ height="55"
+ viewBox="0 0 55 55"
+ id="svg3062"
+ xml:space="preserve"><metadata
+ id="metadata3079"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs3077" />
+
+
+
+<rect
+ width="32.960995"
+ height="27.304964"
+ ry="4.4858155"
+ x="12.87234"
+ y="12.87234"
+ id="rect3024"
+ style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><text
+ x="18.138298"
+ y="30.03546"
+ id="text3794"
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"><tspan
+ x="18.138298"
+ y="30.03546"
+ id="tspan3796"
+ style="font-size:18px;font-weight:bold;-inkscape-font-specification:Sans Bold">Q</tspan></text>
+</svg>