Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activity.py39
-rw-r--r--instruments/acguit.pngbin0 -> 10779 bytes
-rw-r--r--instruments/au_pipes.pngbin0 -> 8777 bytes
-rw-r--r--instruments/banjo.pngbin0 -> 8352 bytes
-rw-r--r--instruments/basse.pngbin0 -> 9265 bytes
-rw-r--r--instruments/cello.pngbin0 -> 12080 bytes
-rw-r--r--instruments/chimes.pngbin0 -> 8878 bytes
-rw-r--r--instruments/clarinette.pngbin0 -> 5628 bytes
-rw-r--r--instruments/clavinet.pngbin0 -> 11270 bytes
-rw-r--r--instruments/didjeridu.pngbin0 -> 9087 bytes
-rw-r--r--instruments/flugel.pngbin0 -> 11979 bytes
-rw-r--r--instruments/flute.pngbin0 -> 6248 bytes
-rw-r--r--instruments/guit.pngbin0 -> 9996 bytes
-rw-r--r--instruments/guitshort.pngbin0 -> 9145 bytes
-rw-r--r--instruments/harmonica.pngbin0 -> 9120 bytes
-rw-r--r--instruments/harmonium.pngbin0 -> 13371 bytes
-rw-r--r--instruments/harpsichord.pngbin0 -> 8735 bytes
-rw-r--r--instruments/kalimba.pngbin0 -> 10500 bytes
-rw-r--r--instruments/koto.pngbin0 -> 9666 bytes
-rw-r--r--instruments/mando.pngbin0 -> 8705 bytes
-rw-r--r--instruments/marimba.pngbin0 -> 14598 bytes
-rw-r--r--instruments/ocarina.pngbin0 -> 6891 bytes
-rw-r--r--instruments/piano.pngbin0 -> 11422 bytes
-rw-r--r--instruments/rhodes.pngbin0 -> 10014 bytes
-rw-r--r--instruments/sarangi.pngbin0 -> 9766 bytes
-rw-r--r--instruments/saxo.pngbin0 -> 8445 bytes
-rw-r--r--instruments/saxsoprano.pngbin0 -> 6068 bytes
-rw-r--r--instruments/shenai.pngbin0 -> 6780 bytes
-rw-r--r--instruments/sitar.pngbin0 -> 9766 bytes
-rw-r--r--instruments/templebell.pngbin0 -> 12180 bytes
-rw-r--r--instruments/trumpet.pngbin0 -> 8326 bytes
-rw-r--r--instruments/tuba.pngbin0 -> 10558 bytes
-rw-r--r--instruments/ukulele.pngbin0 -> 7018 bytes
-rw-r--r--instruments/violin.pngbin0 -> 10071 bytes
34 files changed, 36 insertions, 3 deletions
diff --git a/activity.py b/activity.py
index 870b767..79dc5b3 100644
--- a/activity.py
+++ b/activity.py
@@ -16,6 +16,7 @@
from gi.repository import Gtk
from gi.repository import Gdk
+from gi.repository import GdkPixbuf
import logging
from gettext import gettext as _
@@ -29,6 +30,7 @@ from sugar3.activity.widgets import StopButton
from draw_piano import PianoKeyboard
import math
+import os
import time
import common.Util.Instruments
@@ -149,15 +151,46 @@ class SimplePianoActivity(activity.Activity):
self.piano.connect('key_released', self.__key_released_cb)
vbox = Gtk.VBox()
vbox.set_homogeneous(False)
- label = Gtk.Label('')
+ self.load_instruments()
vbox.pack_end(self.piano, True, True, 0)
- vbox.pack_start(label, False, False, 0)
+ scrolled = Gtk.ScrolledWindow()
+ vbox.pack_start(scrolled, False, False, 0)
+ scrolled.add(self.instruments_iconview)
vbox.show_all()
self.set_canvas(vbox)
piano_height = Gdk.Screen.width() / 2
- label.set_size_request(-1,
+ scrolled.set_size_request(-1,
Gdk.Screen.height() - piano_height - style.GRID_CELL_SIZE)
+ def load_instruments(self):
+ self._instruments_store = Gtk.ListStore(str, GdkPixbuf.Pixbuf)
+ self._instruments_store.set_sort_column_id(0, Gtk.SortType.ASCENDING)
+ self.instruments_iconview = Gtk.IconView(self._instruments_store)
+ self.instruments_iconview.set_text_column(0)
+ self.instruments_iconview.set_pixbuf_column(1)
+
+ # load the images
+ images_path = os.path.join(activity.get_bundle_path(),
+ 'instruments')
+ logging.error('Loading instrument images from %s', images_path)
+ for file_name in os.listdir(images_path):
+ image_file_name = os.path.join(images_path, file_name)
+ logging.error('Adding %s', image_file_name)
+ instrument_name = image_file_name[image_file_name.rfind('/'):]
+ pxb = GdkPixbuf.Pixbuf.new_from_file_at_size(image_file_name,
+ 75, 75)
+ instrument_name = image_file_name[image_file_name.rfind('/') + 1:]
+ instrument_name = instrument_name[:instrument_name.find('.')]
+ self._instruments_store.append([instrument_name, pxb])
+ self.instruments_iconview.connect('selection-changed',
+ self.__instrument_iconview_activated_cb)
+
+ def __instrument_iconview_activated_cb(self, widget):
+ item = widget.get_selected_items()[0]
+ model = widget.get_model()
+ instrument_name = model[item][0]
+ self.setInstrument(instrument_name)
+
def set_notes_labels_cb(self, widget):
self.piano.font_size = 14
self.piano.set_labels(self.notes_labels)
diff --git a/instruments/acguit.png b/instruments/acguit.png
new file mode 100644
index 0000000..ed0e1ff
--- /dev/null
+++ b/instruments/acguit.png
Binary files differ
diff --git a/instruments/au_pipes.png b/instruments/au_pipes.png
new file mode 100644
index 0000000..93524bd
--- /dev/null
+++ b/instruments/au_pipes.png
Binary files differ
diff --git a/instruments/banjo.png b/instruments/banjo.png
new file mode 100644
index 0000000..f8478c3
--- /dev/null
+++ b/instruments/banjo.png
Binary files differ
diff --git a/instruments/basse.png b/instruments/basse.png
new file mode 100644
index 0000000..93d9a13
--- /dev/null
+++ b/instruments/basse.png
Binary files differ
diff --git a/instruments/cello.png b/instruments/cello.png
new file mode 100644
index 0000000..750a0bc
--- /dev/null
+++ b/instruments/cello.png
Binary files differ
diff --git a/instruments/chimes.png b/instruments/chimes.png
new file mode 100644
index 0000000..5c0873a
--- /dev/null
+++ b/instruments/chimes.png
Binary files differ
diff --git a/instruments/clarinette.png b/instruments/clarinette.png
new file mode 100644
index 0000000..a3729df
--- /dev/null
+++ b/instruments/clarinette.png
Binary files differ
diff --git a/instruments/clavinet.png b/instruments/clavinet.png
new file mode 100644
index 0000000..04dda93
--- /dev/null
+++ b/instruments/clavinet.png
Binary files differ
diff --git a/instruments/didjeridu.png b/instruments/didjeridu.png
new file mode 100644
index 0000000..a14b863
--- /dev/null
+++ b/instruments/didjeridu.png
Binary files differ
diff --git a/instruments/flugel.png b/instruments/flugel.png
new file mode 100644
index 0000000..e53b6ea
--- /dev/null
+++ b/instruments/flugel.png
Binary files differ
diff --git a/instruments/flute.png b/instruments/flute.png
new file mode 100644
index 0000000..43e128b
--- /dev/null
+++ b/instruments/flute.png
Binary files differ
diff --git a/instruments/guit.png b/instruments/guit.png
new file mode 100644
index 0000000..0c2f667
--- /dev/null
+++ b/instruments/guit.png
Binary files differ
diff --git a/instruments/guitshort.png b/instruments/guitshort.png
new file mode 100644
index 0000000..c64b918
--- /dev/null
+++ b/instruments/guitshort.png
Binary files differ
diff --git a/instruments/harmonica.png b/instruments/harmonica.png
new file mode 100644
index 0000000..d8dd849
--- /dev/null
+++ b/instruments/harmonica.png
Binary files differ
diff --git a/instruments/harmonium.png b/instruments/harmonium.png
new file mode 100644
index 0000000..3d4a605
--- /dev/null
+++ b/instruments/harmonium.png
Binary files differ
diff --git a/instruments/harpsichord.png b/instruments/harpsichord.png
new file mode 100644
index 0000000..231f906
--- /dev/null
+++ b/instruments/harpsichord.png
Binary files differ
diff --git a/instruments/kalimba.png b/instruments/kalimba.png
new file mode 100644
index 0000000..b763869
--- /dev/null
+++ b/instruments/kalimba.png
Binary files differ
diff --git a/instruments/koto.png b/instruments/koto.png
new file mode 100644
index 0000000..716747d
--- /dev/null
+++ b/instruments/koto.png
Binary files differ
diff --git a/instruments/mando.png b/instruments/mando.png
new file mode 100644
index 0000000..d97a2e1
--- /dev/null
+++ b/instruments/mando.png
Binary files differ
diff --git a/instruments/marimba.png b/instruments/marimba.png
new file mode 100644
index 0000000..f5eb4ac
--- /dev/null
+++ b/instruments/marimba.png
Binary files differ
diff --git a/instruments/ocarina.png b/instruments/ocarina.png
new file mode 100644
index 0000000..3c8f794
--- /dev/null
+++ b/instruments/ocarina.png
Binary files differ
diff --git a/instruments/piano.png b/instruments/piano.png
new file mode 100644
index 0000000..dbd8e21
--- /dev/null
+++ b/instruments/piano.png
Binary files differ
diff --git a/instruments/rhodes.png b/instruments/rhodes.png
new file mode 100644
index 0000000..658991d
--- /dev/null
+++ b/instruments/rhodes.png
Binary files differ
diff --git a/instruments/sarangi.png b/instruments/sarangi.png
new file mode 100644
index 0000000..666c129
--- /dev/null
+++ b/instruments/sarangi.png
Binary files differ
diff --git a/instruments/saxo.png b/instruments/saxo.png
new file mode 100644
index 0000000..cadf6fe
--- /dev/null
+++ b/instruments/saxo.png
Binary files differ
diff --git a/instruments/saxsoprano.png b/instruments/saxsoprano.png
new file mode 100644
index 0000000..a480942
--- /dev/null
+++ b/instruments/saxsoprano.png
Binary files differ
diff --git a/instruments/shenai.png b/instruments/shenai.png
new file mode 100644
index 0000000..99eb91d
--- /dev/null
+++ b/instruments/shenai.png
Binary files differ
diff --git a/instruments/sitar.png b/instruments/sitar.png
new file mode 100644
index 0000000..0a61628
--- /dev/null
+++ b/instruments/sitar.png
Binary files differ
diff --git a/instruments/templebell.png b/instruments/templebell.png
new file mode 100644
index 0000000..b84b499
--- /dev/null
+++ b/instruments/templebell.png
Binary files differ
diff --git a/instruments/trumpet.png b/instruments/trumpet.png
new file mode 100644
index 0000000..6876a92
--- /dev/null
+++ b/instruments/trumpet.png
Binary files differ
diff --git a/instruments/tuba.png b/instruments/tuba.png
new file mode 100644
index 0000000..5cdf2f1
--- /dev/null
+++ b/instruments/tuba.png
Binary files differ
diff --git a/instruments/ukulele.png b/instruments/ukulele.png
new file mode 100644
index 0000000..5e97f03
--- /dev/null
+++ b/instruments/ukulele.png
Binary files differ
diff --git a/instruments/violin.png b/instruments/violin.png
new file mode 100644
index 0000000..f13988f
--- /dev/null
+++ b/instruments/violin.png
Binary files differ