[gcompris] explore activities are now svg based.



commit 3806a82a48e03131ad7615e30623ae10d04d46f0
Author: Bruno Coudoin <bruno coudoin free fr>
Date:   Wed Dec 26 02:56:29 2012 +0100

    explore activities are now svg based.
    
    For each activity, a single svg image contains the different
    items to display with svg ids. The file content.desktop.in now
    specify the svg ids. It makes it much easier to create this kind
    of activities because you can work the position og items directly
    from within inkscape.
    
    I use an improved world map taken from wikipedia and colored by myself.

 src/explore-activity/explore.py                    |  179 +-
 src/explore-activity/resources/explore/Makefile.am |    3 +-
 src/explore-activity/resources/explore/world.png   |  Bin 0 -> 128225 bytes
 .../resources/explore_farm_animals/Makefile.am     |    3 +-
 .../explore_farm_animals/content.desktop.in        |   33 +-
 .../explore_farm_animals/farm-animals.svg          | 7156 --------------------
 .../explore_farm_animals/farm-animals.svgz         |  Bin 0 -> 73405 bytes
 .../resources/explore_farm_animals/questionpic.png |  Bin 4078 -> 0 bytes
 .../resources/explore_world_animals/Makefile.am    |    4 +-
 .../explore_world_animals/content.desktop.in       |   21 +-
 .../resources/explore_world_animals/content.svgz   |  Bin 0 -> 1110 bytes
 .../resources/explore_world_animals/world.jpg      |  Bin 39144 -> 0 bytes
 .../resources/explore_world_music/Makefile.am      |    5 +-
 .../explore_world_music/content.desktop.in         |   34 +-
 .../resources/explore_world_music/content.svgz     |  Bin 0 -> 8115 bytes
 .../resources/explore_world_music/suitcase.svg     | 2369 -------
 .../resources/explore_world_music/worldmap.jpg     |  Bin 11250 -> 0 bytes
 17 files changed, 88 insertions(+), 9719 deletions(-)
---
diff --git a/src/explore-activity/explore.py b/src/explore-activity/explore.py
index 1ea7d40..7afd6b4 100644
--- a/src/explore-activity/explore.py
+++ b/src/explore-activity/explore.py
@@ -38,11 +38,6 @@ from gcompris import gcompris_gettext as _
 from random import randint
 import random
 
-# -----------------------------------------------------------------------------
-# set to True if you'd like to record selected locations to make a new activity
-# BEWARE: setting this to true will delete all your previous records!
-RECORD_LOCATIONS = False
-# -----------------------------------------------------------------------------
 TEXT_BG_COLOR = 0xCCCCCC99L
 
 class Gcompris_explore:
@@ -123,47 +118,45 @@ dialogue to\nenable the sound."), None)
         if hasattr(self, 'SoundMatchingGameText'):
             self.gcomprisBoard.maxlevel = 3
 
-        self.map = goocanvas.Image(
+        self.svghandle = gcompris.utils.load_svg(self.activityDataFilePath + self.background)
+        goocanvas.Svg(
             parent = self.rootitem,
-            x = self.backgroundx,
-            y = self.backgroundy,
-            pixbuf = gcompris.utils.load_pixmap(self.activityDataFilePath + self.background)
+            svg_handle = self.svghandle,
+            svg_id = self.backSvgId,
+            pointer_events = goocanvas.EVENTS_NONE
             )
 
-        if RECORD_LOCATIONS:
-            self.recordLocationsForDeveloper()
-        else:
-
-            self.drawLocations()
 
-            if level == 1:
-                self.writeText(self.generalText)
-            else:
-                # prepare game for play
-                self.progressBar = ProgressBar( self.rootitem,
-                                                200, 480, 400, 25,
-                                                len(self.data.sections()) - 1 )
-
-                if level == 2 and self.gcomprisBoard.maxlevel == 3:
-
-                    self.remainingItems = self.allSoundClips[:]
-                    self.writeText(self.SoundMatchingGameText)
-                    # PLAY BUTTON
-                    self.playButton = goocanvas.Image(
-                            parent=self.rootitem,
-                            pixbuf=gcompris.utils.load_pixmap('explore/playbutton.png'),
-                            x=65,
-                            y=110,
-                            )
-                    self.playButton.connect("button_press_event", self.playCurrentMusicSelection)
-                    self.writeText(_('Click to play sound'), 100, 70)
-                    gcompris.utils.item_focus_init(self.playButton, None)
-                    self.playRandom()
-                elif level == 3 or level == 2:
+        self.drawLocations()
 
-                    self.remainingItems = self.allTextPrompts[:]
-                    self.writeText(self.TextMatchingGameText)
-                    self.playRandom()
+        if level == 1:
+            self.writeText(self.generalText)
+        else:
+            # prepare game for play
+            self.progressBar = ProgressBar( self.rootitem,
+                                            200, 480, 400, 25,
+                                            len(self.data.sections()) - 1 )
+
+            if level == 2 and self.gcomprisBoard.maxlevel == 3:
+
+                self.remainingItems = self.allSoundClips[:]
+                self.writeText(self.SoundMatchingGameText)
+                # PLAY BUTTON
+                self.playButton = goocanvas.Image(
+                        parent=self.rootitem,
+                        pixbuf=gcompris.utils.load_pixmap('explore/playbutton.png'),
+                        x=65,
+                        y=110,
+                        )
+                self.playButton.connect("button_press_event", self.playCurrentMusicSelection)
+                self.writeText(_('Click to play sound'), 100, 70)
+                gcompris.utils.item_focus_init(self.playButton, None)
+                self.playRandom()
+            elif level == 3 or level == 2:
+
+                self.remainingItems = self.allTextPrompts[:]
+                self.writeText(self.TextMatchingGameText)
+                self.playRandom()
 
     def next_level(self):
         if self.gcomprisBoard.level == self.gcomprisBoard.maxlevel:
@@ -221,14 +214,12 @@ dialogue to\nenable the sound."), None)
 
         for section in self.sectionNames:
 
-
-            pixmap = gcompris.utils.load_pixmap(self.locationPic)
-            item = goocanvas.Image(
+            item = goocanvas.Svg(
                 parent = self.rootitem,
-                x = int(self.data.get(section, 'x')) - pixmap.get_width() / 2.0,
-                y = int(self.data.get(section, 'y')) - pixmap.get_height() / 2.0,
-                pixbuf = pixmap
+                svg_handle = self.svghandle,
+                svg_id = self.data.get(section, 'svgId'),
                 )
+
             gcompris.utils.item_focus_init(item, None)
             item.set_data('sectionNum', section)
             item.set_data('seen', False)
@@ -256,13 +247,20 @@ dialogue to\nenable the sound."), None)
             method called when student clicks on one of the ellipses.
             method loads the location page, including the text, picture, music, and question.
             '''
-            target.props.pixbuf = gcompris.utils.load_pixmap('explore/star.png')
+            bounds = target.get_bounds()
             seen = target.get_data('seen')
             if not seen:
                 target.set_data('seen', True)
                 self.locationSeen += 1
+            pixmap = gcompris.utils.load_pixmap('explore/star.png')
+            goocanvas.Image(parent = self.rootitem,
+                            x = bounds.x1 + \
+                                (bounds.x2 - bounds.x1) / 2.0 - \
+                                pixmap.get_width() / 2.0,
+                            y = bounds.y2 - pixmap.get_height() / 2.0,
+                            pixbuf = pixmap
+                            )
 
-            gcompris.utils.item_focus_init(target, None)
             self.rootitem.props.visibility = goocanvas.ITEM_INVISIBLE
 
             if hasattr(self, 'location_rootitem'):
@@ -312,7 +310,7 @@ dialogue to\nenable the sound."), None)
               parent=self.location_rootitem,
               x=120,
               y=190,
-              width=150,
+              width=180,
               text=_(text),
               fill_color="black",
               anchor=gtk.ANCHOR_CENTER,
@@ -400,58 +398,6 @@ dialogue to\nenable the sound."), None)
 # FYI: at first I didn't see any need to make a class to handle the data, but in
 # retrospect having a data object would have been much cleaner.
 
-    def recordLocationsForDeveloper(self):
-        '''
-        prepare to record the locations by connecting the entire
-        background image with the record_location method
-        '''
-        for section in self.data.sections():
-            if section != 'common':
-                self.data.remove_section(section)
-
-        self.map.connect("button_press_event", self.record_location)
-        gcompris.utils.item_focus_init(self.map, None)
-
-    def record_location(self, widget=None, target=None, event=None):
-        '''
-        method generates output to content.desktop.in according to the specified format.
-        Method called if RECORD_LOCATIONS = True and developer clicks map. Merhod
-        record the location of the click, and writes a template of the section
-        to content.desktop.in to be filled in later by the developer.
-        '''
-        self.numLocations += 1
-        self.data.add_section(str(self.numLocations))
-        x = event.x
-        y = event.y
-        self.data.set(str(self.numLocations), 'x', int(x))
-        self.data.set(str(self.numLocations), 'y', int(y))
-        self.data.set(str(self.numLocations), '_title', 'Location Title Here')
-        self.data.set(str(self.numLocations), '_text', 'location text here')
-        self.data.set(str(self.numLocations), 'image', 'image filepath here, located in resources/name_of_activity/')
-        self.data.set(str(self.numLocations), 'music', 'music file name here')
-        self.data.set(str(self.numLocations), '_shortPrompt', 'enter text for child to match to the location')
-
-        # draw small elipse on screen to show developer where they clicked
-        goocanvas.Ellipse(parent=self.rootitem,
-        center_x=x,
-        center_y=y,
-        radius_x=5,
-        radius_y=5,
-        fill_color='white',
-        stroke_color='white',
-        line_width=1.0)
-
-        # write a small number ontop of the ellipse so developer can record
-        # which numbers (sections) correspond to which locations
-        goocanvas.Text(
-        parent=self.rootitem,
-        x=x,
-        y=y,
-        text=str(self.numLocations),
-        anchor=gtk.ANCHOR_CENTER,
-        alignment=pango.ALIGN_CENTER,
-        )
-
     def read_data(self):
         '''
         method to read in the data from content.desktop.in. Saves this data as
@@ -489,10 +435,10 @@ dialogue to\nenable the sound."), None)
                 except: self.credits = ''
                 try: self.background = self.data.get('common', 'background')
                 except: errors.append("Missing 'background' key")
+                try: self.backSvgId = self.data.get('common', 'backSvgId')
+                except: errors.append("Missing 'background' key")
                 try: self.author = self.data.get('common', 'author')
                 except: self.author = ''
-                try: self.locationPic = self.activityDataFilePath + self.data.get('common', 'locationpic')
-                except: errors.append("Missing 'locationpic' key")
                 # FIXME Should remove the space in the data file instead
                 try: self.generalText = _(" " + self.data.get('common', '_GeneralText'))
                 except: errors.append("Missing '_GeneralText' key")
@@ -502,10 +448,6 @@ dialogue to\nenable the sound."), None)
                 # FIXME Should remove the space in the data file instead
                 try: self.TextMatchingGameText = _(" " + self.data.get('common', '_TextMatchingGameText'))
                 except:pass
-                try: self.backgroundx = int(self.data.get('common', 'backgroundx'))
-                except: errors.append("Missing 'backgroundx' key")
-                try: self.backgroundy = int(self.data.get('common', 'backgroundy'))
-                except: errors.append("Missing 'backgroundy' key")
                 try: self.textBoxX = int(self.data.get('common', 'textBoxX'))
                 except:pass
                 try: self.textBoxY = int(self.data.get('common', 'textBoxY'))
@@ -524,27 +466,6 @@ dialogue to\nenable the sound."), None)
                 gcompris.utils.dialog( "\n".join(errors), None)
 
     def end(self):
-        '''
-        write locations and common template to content.desktop.in
-        '''
-        if RECORD_LOCATIONS:
-            try: self.data.set('common', 'credits', 'enter a list of credits and links to resources you used here')
-            except: pass
-            try: self.data.set('common', 'locationpic', 'enter the filename of the picture you would like to use to identify items to click on your background image')
-            except: pass
-            try: self.data.set('common', 'generalText', 'enter the text to appear on your image for textMatchingGame')
-            except: pass
-            try: self.data.set('common', 'SoundMatchingGameText', 'enter the text to appear on your image for SoundMatchingGame')
-            except: pass
-            try: self.data.set('common', 'TextMatchingGameText', 'enter the text to appear on your image for TextMatchingGame')
-            except: pass
-            try: self.data.set('common', 'textBoxX', 'enter the x location for the text box to appear in the text matching game')
-            except: pass
-            try: self.data.set('common', 'textBoxY', 'enter the x location for the text box to appear in the text matching game')
-            except: pass
-            with open(gcompris.DATA_DIR + '/' + self.gcomprisBoard.name + '/content.desktop.in', 'wb') as configfile:
-                self.data.write(configfile)
-
         # silence any currently playing music
         gcompris.sound.play_ogg('boards/sounds/silence1s.ogg')
         self.rootitem.remove()
diff --git a/src/explore-activity/resources/explore/Makefile.am b/src/explore-activity/resources/explore/Makefile.am
index bda4741..563b796 100644
--- a/src/explore-activity/resources/explore/Makefile.am
+++ b/src/explore-activity/resources/explore/Makefile.am
@@ -3,6 +3,7 @@ img_DATA = \
 	border.png \
 	playbutton.png \
 	ribbon.png \
-	star.png
+	star.png \
+	world.png
 
 EXTRA_DIST = $(img_DATA)
diff --git a/src/explore-activity/resources/explore/world.png b/src/explore-activity/resources/explore/world.png
new file mode 100644
index 0000000..c87cc33
Binary files /dev/null and b/src/explore-activity/resources/explore/world.png differ
diff --git a/src/explore_farm_animals-activity/resources/explore_farm_animals/Makefile.am b/src/explore_farm_animals-activity/resources/explore_farm_animals/Makefile.am
index 05906f7..7c8740e 100644
--- a/src/explore_farm_animals-activity/resources/explore_farm_animals/Makefile.am
+++ b/src/explore_farm_animals-activity/resources/explore_farm_animals/Makefile.am
@@ -11,14 +11,13 @@ img_DATA = \
 	dog.ogg \
 	duck.jpg \
 	duck.ogg \
-	farm-animals.svg \
+	farm-animals.svgz \
 	horse.jpg \
 	horse.ogg \
 	owl.jpg \
 	owl.ogg \
 	pig.jpg \
 	pig.ogg \
-	questionpic.png \
 	rooster.jpg \
 	rooster.ogg
 
diff --git a/src/explore_farm_animals-activity/resources/explore_farm_animals/content.desktop.in b/src/explore_farm_animals-activity/resources/explore_farm_animals/content.desktop.in
index 47fcf33..7672039 100644
--- a/src/explore_farm_animals-activity/resources/explore_farm_animals/content.desktop.in
+++ b/src/explore_farm_animals-activity/resources/explore_farm_animals/content.desktop.in
@@ -1,10 +1,8 @@
 # Created by Beth Hadley
 [common]
-background = farm-animals.svg
-backgroundx = 0
-backgroundy = 0
+background = farm-animals.svgz
+backSvgId = #BACKGROUND
 credits = Public domain animal sounds: http://www.animal-sounds.org/index.html, Public domain animal pictures: http://commons.wikimedia.org/wiki/Main_Page, The farm is built on OpenClipart content by Bruno.
-locationpic = questionpic.png
 _generalText = Click on the questions to explore each farm animal.
 _SoundMatchingGameText = Click on the farm animal that makes the sound you hear.
 _TextMatchingGameText = Click the animal that matches the description.
@@ -12,82 +10,73 @@ textBoxX = 200
 textBoxY = 150
 
 [1]
-x = 514
-y = 152
 _title = Horse
 _text = The horse goes "neigh! neigh!". Horses usually sleep standing up.
 image = horse.jpg
 music = horse.ogg
 _shortPrompt = You can ride on the back of this animal!
+svgId = #HORSE
 
 [2]
-x = 279
-y = 460
 _title = Chickens
 _text = The chicken goes "cluck, cackle, cluck". Chickens have over 200 different noises they can use to communicate.
 image = chicken.jpg
 music =chickens.ogg
 _shortPrompt = This animal lays eggs.
+svgId = #CHICKEN
 
 [3]
-x = 565
-y = 360
 _title = Cows
 _text = The cow goes "moo. moo.". Cows are herbivorous mammals. They graze all day in the meadow.
 image = cow.jpg
 music = cow.ogg
 _shortPrompt = You can drink the milk this animal produces.
+svgId = #COW
 
 [4]
-x = 366
-y = 200
 _title = Cat
 _text = The cat goes "meow, meow". Cats usually hate water because their fur doesn't stay warm when it is wet.
 image = cat.jpg
 music = cat.ogg
 _shortPrompt = This pet likes chasing mice.
+svgId = #CAT
 
 [5]
-x = 645
-y = 450
 _title = Pigs
 _text = The pig goes "oink, oink". Pigs are the 4th most intelligent animal.
 image = pig.jpg
 music = pig.ogg
 _shortPrompt = This animal likes to lay in the mud.
+svgId = #PIG
 
 [6]
-x = 185
-y = 450
 _title = White Duck
 _text = The duck goes "quack, quack". Ducks have special features like webbed feet and produce an oil to make their feathers "waterproof".
 image = duck.jpg
 music = duck.ogg
 _shortPrompt = This animal has webbed feet so it can swim in the water.
+svgId = #DUCK
 
 [7]
-x = 630
-y = 106
 _title = Owl
 _text = The owl goes "hoo. hoo." The owl has excellent vision and hearing at night.
 image = owl.jpg
 music = owl.ogg
 _shortPrompt = This animal likes to come out at night.
+svgId = #OWL
 
 [9]
-x = 210
-y = 300
 _title = Dogs
 _text = The dog goes "bark! bark!". Dogs are great human companions and usually enjoy love and attention.
 image = dog.jpg
 music = dog.ogg
 _shortPrompt = This animal's ancestors were wolves.
+svgId = #DOG
 
 [10]
-x = 565
-y = 450
 _title = Rooster
 _text = The rooster goes "coc-a-doodle-doo!". Roosters have been on farms for about 5,000 years. Every morning it wakes the farm up with its noises.
 image = rooster.jpg
 music = rooster.ogg
 _shortPrompt = This animal wakes the farm up in the morning.
+svgId = #ROOSTER
diff --git a/src/explore_farm_animals-activity/resources/explore_farm_animals/farm-animals.svgz b/src/explore_farm_animals-activity/resources/explore_farm_animals/farm-animals.svgz
new file mode 100644
index 0000000..27b4c52
Binary files /dev/null and b/src/explore_farm_animals-activity/resources/explore_farm_animals/farm-animals.svgz differ
diff --git a/src/explore_world_animals-activity/resources/explore_world_animals/Makefile.am b/src/explore_world_animals-activity/resources/explore_world_animals/Makefile.am
index b229492..359e5ec 100644
--- a/src/explore_world_animals-activity/resources/explore_world_animals/Makefile.am
+++ b/src/explore_world_animals-activity/resources/explore_world_animals/Makefile.am
@@ -2,13 +2,13 @@ imgdir = $(pkgdatadir)/@PACKAGE_DATA_DIR@/explore_world_animals
 img_DATA = \
 	bison.jpg \
 	content.desktop.in \
+	content.svgz \
 	giraffe.jpg \
 	hedgy.jpg \
 	jaggy.jpg \
 	Makefile.am \
 	narwhal.jpg \
-	tux.png \
-	world.jpg
+	tux.png
 
 EXTRA_DIST = $(img_DATA)
 
diff --git a/src/explore_world_animals-activity/resources/explore_world_animals/content.desktop.in b/src/explore_world_animals-activity/resources/explore_world_animals/content.desktop.in
index 2a9a394..49210b5 100644
--- a/src/explore_world_animals-activity/resources/explore_world_animals/content.desktop.in
+++ b/src/explore_world_animals-activity/resources/explore_world_animals/content.desktop.in
@@ -1,52 +1,45 @@
 # Created by Christina Hadley (with help from Beth Hadley)
 [common]
-background = world.jpg
-backgroundx = 10
-backgroundy = 10
+background = content.svgz
+backSvgId = #BACKGROUND
 credits = http://commons.wikimedia.org
-locationpic = tux.png
 _generalText = Explore exotic animals from around the world.
 _TextMatchingGameText = Click on location where the given animal lives.
 textBoxX =105
 textBoxY = 150
 
 [1]
-x = 263
-y = 221
 _title = Jaguars in South America
 _text = Jaguars are named after the Native American word meaning 'he who kills with one leap'
  because they like to climb trees to attack their prey.
 image = jaggy.jpg
+svgId = #JAGGY
 _shortPrompt = Jaguar
 
 [2]
-x = 428
-y = 90
 _title = Hedgehogs in Europe
 _text = Hedgehogs eat small animals, like frogs and insects, so many people keep them as useful pets. When in danger, they will curl up into a ball and stick up their coat of sharp spines.
 image = hedgy.jpg
+svgId = #HEDGY
 _shortPrompt = Hedgehog
 
 [3]
-x = 443
-y = 193
 _title = Giraffes in Africa
 _text = The giraffe lives in Africa and is the tallest mammal in the world. Just their legs, which are usually 1.8 meters long, are taller than most humans!
 image = giraffe.jpg
+svgId = #GIRAFFE
 _shortPrompt = Giraffe
 
 [4]
-x = 180
-y = 127
 _title = Bison in America
 _text = Bison live on the plains of North America and were hunted by the Native Americans for food.
 image = bison.jpg
+svgId = #BISON
 _shortPrompt = Bison
 
 [5]
-x = 385
-y = 39
 _title = Narwhals in the Arctic
 _text = Narwhals are whales that live in the Arctic Ocean and have long tusks. These tusks remind many people of the mythical unicorn's horn.
 image = narwhal.jpg
+svgId = #NARWHAL
 _shortPrompt = Narwhal
diff --git a/src/explore_world_animals-activity/resources/explore_world_animals/content.svgz b/src/explore_world_animals-activity/resources/explore_world_animals/content.svgz
new file mode 100644
index 0000000..fb4fa70
Binary files /dev/null and b/src/explore_world_animals-activity/resources/explore_world_animals/content.svgz differ
diff --git a/src/explore_world_music-activity/resources/explore_world_music/Makefile.am b/src/explore_world_music-activity/resources/explore_world_music/Makefile.am
index e255d41..e35bdad 100644
--- a/src/explore_world_music-activity/resources/explore_world_music/Makefile.am
+++ b/src/explore_world_music-activity/resources/explore_world_music/Makefile.am
@@ -8,6 +8,7 @@ img_DATA = \
 	australia.ogg \
 	beethoven.ogg \
 	content.desktop.in \
+	content.svgz \
 	dancingWorld.png \
 	ireland.jpg \
 	ireland.ogg \
@@ -19,8 +20,6 @@ img_DATA = \
 	mexico.ogg \
 	middleeast.jpg \
 	middleeast.ogg \
-	orchestra.jpg \
-	suitcase.svg \
-	worldmap.jpg
+	orchestra.jpg
 
 EXTRA_DIST = $(img_DATA)
diff --git a/src/explore_world_music-activity/resources/explore_world_music/content.desktop.in b/src/explore_world_music-activity/resources/explore_world_music/content.desktop.in
index c024016..0c7ee10 100644
--- a/src/explore_world_music-activity/resources/explore_world_music/content.desktop.in
+++ b/src/explore_world_music-activity/resources/explore_world_music/content.desktop.in
@@ -1,61 +1,53 @@
 # Created by Beth Hadley
 [common]
-background = worldmap.jpg
-backgroundx = 10
-backgroundy = 10
+background = content.svgz
+backSvgId = #BACKGROUND
 credits =  http://commons.wikimedia.org/wiki, http://archive.org
-locationpic = suitcase.svg
 _generalText = Explore world music! Click on the suitcases.
 _SoundMatchingGameText = Click on the location that matches the music you hear.
 _TextMatchingGameText = Click on the location that matches the text.
-textBoxX = 300
-textBoxY = 350
+textBoxX = 400
+textBoxY = 370
 
 [1]
-x = 678
-y = 260
 _title = Australia
 _text = Aboriginals were the first people to live in Australia. They sing and play instruments, like the didgeridoo. It is made from a log and can be up to five meters long!
 image = australia.jpg
 music = australia.ogg
 _shortPrompt = Where is the didgeridoo played?
-
+svgId = #AUSTRALIA
 
 [2]
-x = 449
-y = 200
 _title = Africa
 _text = Music is a part of everyday life in Africa. African music features a great variety of drums, and they believe it is a sacred and magical instrument.
 image = africa.jpg
 music = africa.ogg
 _shortPrompt = Where is the drum considered a magical instrument?
+svgId = #AFRICA
 
 [3]
-x = 500
-y = 134
 _title = Middle East
 _text = Music is a very important part of middle eastern culture. Specific songs are played to call worshipers to prayer. The lute is an instrument invented thousands of years ago and still in use today.
 image= middleeast.jpg
 music= middleeast.ogg
 _shortPrompt = Where is music used to call people to prayer?
+svgId = #MIDDLE_EAST
 
 [4]
-x = 691
-y = 133
 _title = Japan
 _text = Taiko drumming comes from Japan. This type of drumming was originally used to scare enemies in battle. It is very loud, and performances are very exciting with crowds cheering and performers yelling!
 image = japan.jpg
 music = japan.ogg
 _shortPrompt = Where do performers yelp as they play the drums?
+svgId = #JAPAN
 
 [5]
-x = 382
-y = 90
 _title = Scotland and Ireland
 _text = Folk music of this region is called celtic music, often incorporates a narrative poem or story. Typical instruments include bagpipes, fiddles, flutes, harps, and accordions.
 _shortPrompt = Bagpipers, who often wear kilts, are from this location.
 image = ireland.jpg
 music = ireland.ogg
+svgId = #IRELAND
 
 [6]
 x=421
@@ -65,25 +57,24 @@ _text = Italy is famous for its Opera. Opera is a musical theater where actors t
 _shortPrompt = This country is known for its opera music.
 image = italy.jpg
 music = italy.ogg
+svgId = #ITALY
 
 [7]
-x = 425
-y = 90
 _title = European Classical Music
 _text = Europe is the home of classical music. Famous composers like Bach, Beethoven, and Mozart forever changed music history.
 _shortPrompt = Bach, Beethoven, and Mozart composed music in this location.
 image = orchestra.jpg
 music = beethoven.ogg
+svgId = #ORCHESTRA
 
 [8]
-x = 185
-y = 170
 _title = Mexico
 _text = Mariachi is a famous type of Mexican music. It features guitars, trumpets, and violins. These bands play for many occasions, including weddings and parties.
 _question = At parties, people often dance to the Mariachi music. A Famous dance is:
 _shortPrompt = Where is Mariachi music from?
 music = mexico.ogg
 image = mexico.jpg
+svgId = #MEXICO
 
 [9]
 x=184
@@ -94,3 +85,4 @@ _question = The 'king' of rock n' roll is
 _shortPrompt = The 'king' of rock n' roll, Elvis Presley, made his music famous in this country.
 music = america.ogg
 image = america.jpg
+svgId = #USA
diff --git a/src/explore_world_music-activity/resources/explore_world_music/content.svgz b/src/explore_world_music-activity/resources/explore_world_music/content.svgz
new file mode 100644
index 0000000..3c2cc11
Binary files /dev/null and b/src/explore_world_music-activity/resources/explore_world_music/content.svgz differ



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]