Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Edit/EditToolbars.py142
-rw-r--r--Edit/MainWindow.py2
-rw-r--r--icons/edit-brush.svg16
-rw-r--r--icons/edit-pencil.svg21
-rw-r--r--icons/edit-pointer.svg9
-rw-r--r--icons/pencil.svg17
6 files changed, 148 insertions, 59 deletions
diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py
index 0c1ac6d..64cae7e 100644
--- a/Edit/EditToolbars.py
+++ b/Edit/EditToolbars.py
@@ -4,6 +4,7 @@ import gtk
import Config
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.toggletoolbutton import ToggleToolButton
+from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.palette import Palette
from sugar.graphics.icon import Icon
from Util.ThemeWidgets import *
@@ -69,15 +70,33 @@ class mainToolbar(gtk.Toolbar):
self.insert(self.recordButton, -1)
self.recordButton.show()
- _insertSeparator(13)
-
- #Pencil button
- self._pencilPalette = pencilPalette(_('Draw Tool'), self.edit, self)
- self.pencilButton = ToggleToolButton('pencil')
- self.pencilButton.set_palette(self._pencilPalette)
- self.pencilButton.connect('toggled', self.handlePencil)
- self.insert(self.pencilButton, -1)
- self.pencilButton.show()
+ _insertSeparator(5)
+
+ #Pointer button
+ self._pointerPalette = pointerPalette(_('Select Tool'), self.edit)
+ self.pointerButton = RadioToolButton('edit-pointer', group = None)
+ self.pointerButton.set_palette(self._pointerPalette)
+ self.pointerButton.connect('toggled', self.edit.handleToolClick, 'default')
+ self.insert(self.pointerButton, -1)
+ self.pointerButton.show()
+
+ #Draw button
+ self._drawPalette = drawPalette(_('Draw Tool'), self.edit)
+ self.drawButton = RadioToolButton('edit-pencil', group = self.pointerButton)
+ self.drawButton.set_palette(self._drawPalette)
+ self.drawButton.connect('toggled', self.edit.handleToolClick, 'draw')
+ self.insert(self.drawButton, -1)
+ self.drawButton.show()
+
+ #Paint button
+ self._paintPalette = paintPalette(_('Paint Tool'), self.edit)
+ self.paintButton = RadioToolButton('edit-brush', group = self.pointerButton)
+ self.paintButton.set_palette(self._paintPalette)
+ self.paintButton.connect('toggled', self.edit.handleToolClick, 'paint')
+ self.insert(self.paintButton, -1)
+ self.paintButton.show()
+
+ _insertSeparator(4)
#Duplicate button
self.duplicateButton = ToggleToolButton('duplicate')
@@ -85,7 +104,7 @@ class mainToolbar(gtk.Toolbar):
self.insert(self.duplicateButton, -1)
self.duplicateButton.show()
- _insertSeparator(18)
+ _insertSeparator(4)
#Volume / Tempo button
self._volumeTempoPalette = volumeTempoPalette(_('Volume / Tempo'), self.edit)
@@ -124,15 +143,6 @@ class mainToolbar(gtk.Toolbar):
self.edit.handleStop(widget, False)
self.playButton.set_active(False)
- def handlePencil(self, widget, data = None):
- if widget.get_active():
- if self._pencilPalette.checkbox.get_active():
- self.edit.handleToolClick(widget, 'paint')
- else:
- self.edit.handleToolClick(widget, 'draw')
- else:
- self.edit.handleToolClick(widget, 'default')
-
def handleDuplicate(self, widget):
if widget.get_active():
if self.edit.getContext() == 0: #Page
@@ -160,17 +170,79 @@ class recordPalette(Palette):
self.recordOggButton.show()
self.set_content(self.recordOggButton)
-class pencilPalette(Palette):
- def __init__(self, label, edit, _mainToolbar):
+class pointerPalette(Palette):
+ def __init__(self, label, edit):
+ Palette.__init__(self, label)
+
+ self.edit = edit
+
+ self.pointerBox = gtk.VBox()
+
+ self.snapGridHBox = gtk.HBox()
+ self.snapGridImage = gtk.Image()
+ self.snapGridImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/grid.svg')
+ self.snapGridBox = BigComboBox()
+ self.snapGridBox.connect('changed', self.handleSnapGrid)
+ durs = [_('3'), _('6'), _('12'), _('24'), _('48')]
+ for dur in durs:
+ self.snapGridBox.append_item(durs.index(dur),dur)
+ self.snapGridBox.set_active(0)
+ self.snapGridHBox.pack_start(self.snapGridImage, False, False, padding = 5)
+ self.snapGridHBox.pack_start(self.snapGridBox, False, False, padding = 5)
+
+ self.pointerBox.pack_start(self.snapGridHBox, False, False, padding = 5)
+ self.pointerBox.show_all()
+
+ self.set_content(self.pointerBox)
+
+ def handleNoteDur(self, widget):
+ pass
+ #self.noteDur = widget.props.value
+
+ def handleSnapGrid(self, widget):
+ pass
+ #self.edit.trackInterface.setGrid(int(widget.props.value))
+
+class drawPalette(Palette):
+ def __init__(self, label, edit):
Palette.__init__(self, label)
self.edit = edit
- self._mainToolbar = _mainToolbar
- self.pencilBox = gtk.VBox()
+ self.drawBox = gtk.VBox()
+
+ self.snapGridHBox = gtk.HBox()
+ self.snapGridImage = gtk.Image()
+ self.snapGridImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/grid.svg')
+ self.snapGridBox = BigComboBox()
+ self.snapGridBox.connect('changed', self.handleSnapGrid)
+ durs = [_('3'), _('6'), _('12'), _('24'), _('48')]
+ for dur in durs:
+ self.snapGridBox.append_item(durs.index(dur),dur)
+ self.snapGridBox.set_active(0)
+ self.snapGridHBox.pack_start(self.snapGridImage, False, False, padding = 5)
+ self.snapGridHBox.pack_start(self.snapGridBox, False, False, padding = 5)
+
+ self.drawBox.pack_start(self.snapGridHBox, False, False, padding = 5)
+ self.drawBox.show_all()
+
+ self.set_content(self.drawBox)
+
+ def handleNoteDur(self, widget):
+ pass
+ #self.noteDur = widget.props.value
+
+ def handleSnapGrid(self, widget):
+ pass
+ #self.edit.trackInterface.setGrid(int(widget.props.value))
+
+class paintPalette(Palette):
+ def __init__(self, label, edit):
+ Palette.__init__(self, label)
+
+ self.edit = edit
- self.checkbox = gtk.CheckButton(label = _('Continuous'))
- self.checkbox.connect('toggled',self.handleCheckBox)
+ self.paintBox = gtk.VBox()
self.noteDurHBox = gtk.HBox()
self.noteDurImage = gtk.Image()
@@ -196,22 +268,11 @@ class pencilPalette(Palette):
self.snapGridHBox.pack_start(self.snapGridImage, False, False, padding = 5)
self.snapGridHBox.pack_start(self.snapGridBox, False, False, padding = 5)
- self.pencilBox.pack_start(self.checkbox, False, False, padding = 5)
- self.pencilBox.pack_start(self.noteDurHBox, False, False, padding = 5)
- self.pencilBox.pack_start(self.snapGridHBox, False, False, padding = 5)
- self.pencilBox.show_all()
-
- self.set_content(self.pencilBox)
+ self.paintBox.pack_start(self.noteDurHBox, False, False, padding = 5)
+ self.paintBox.pack_start(self.snapGridHBox, False, False, padding = 5)
+ self.paintBox.show_all()
- def handleCheckBox(self, widget, data = None):
- if widget.get_active():
- if self._mainToolbar.pencilButton.get_active():
- self.edit.handleToolClick(widget, 'paint')
- else:
- if self._mainToolbar.pencilButton.get_active():
- self.edit.handleToolClick(widget, 'draw')
- else:
- self.edit.handleToolClick(widget, 'default')
+ self.set_content(self.paintBox)
def handleNoteDur(self, widget):
pass
@@ -221,7 +282,6 @@ class pencilPalette(Palette):
pass
#self.edit.trackInterface.setGrid(int(widget.props.value))
-
class volumeTempoPalette(Palette):
def __init__(self, label, edit):
Palette.__init__(self, label)
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index 0131cff..770d4b9 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -939,7 +939,7 @@ class MainWindow( SubActivity ):
self.csnd.loopSetTempo(self._data['tempo'])
def handleToolClick( self, widget, mode ):
- self.trackInterface.setInterfaceMode( mode )
+ if widget.get_active(): self.trackInterface.setInterfaceMode( mode )
def getTool( self ):
if self.GUI["2toolPointerButton"].get_active(): return "default"
diff --git a/icons/edit-brush.svg b/icons/edit-brush.svg
new file mode 100644
index 0000000..e888321
--- /dev/null
+++ b/icons/edit-brush.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="55px"
+ height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve">
+
+<g id="Brush" >
+ <g display="inline">
+ <path fill="#FFFFFF" d="M26.939,32.777c0,0,9.546-10.04,12.062-13.721c3.697-5.406,5.988-10.829,3.994-11.775
+ c-1.468-0.697-6.469,3.434-9.471,7.896C31.491,18.205,24,30.635,24,30.635L26.939,32.777z"/>
+ <path fill="#FFFFFF" d="M25.613,34.668l-2.971-2.166c0,0-3.054,1.592-4.602,3.862c-1.546,2.284-2.31,6.661-4.752,9.01
+ c-1.465,1.409-0.186,1.085-0.186,1.085s7.907-2.985,9.786-5.477C24.75,38.512,25.613,34.668,25.613,34.668z"/>
+ </g>
+</g>
+
+</svg>
diff --git a/icons/edit-pencil.svg b/icons/edit-pencil.svg
new file mode 100644
index 0000000..c7a1ef9
--- /dev/null
+++ b/icons/edit-pencil.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="55px"
+ height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve">
+
+<g id="Pencil" >
+ <g display="inline">
+ <path fill="#FFFFFF" d="M12.727,45.969c-0.053,0.132-0.02,0.281,0.09,0.373s0.264,0.103,0.385,0.025l4.635-2.984l-3.009-2.407
+ L12.727,45.969z M42.967,14.071c0-0.073-0.004-0.15-0.014-0.227c-0.112-0.949-0.903-2.109-2.062-3.025
+ c-1.16-0.915-2.474-1.413-3.424-1.304c-0.414,0.052-0.747,0.228-0.973,0.491l-0.021-0.015L19.716,32.17l-0.073,0.073l-0.011,0.015
+ c-0.026,0.029-0.029,0.069-0.05,0.103l-2.177,2.677c0,0,0.128,0.099,0.256,0.201l-0.002,0.004l-0.009,0.011
+ c-0.128-0.103-0.252-0.197-0.252-0.197l-0.042,0.051c-0.097,0.121-0.155,0.271-0.203,0.429c-0.015,0.019-0.046,0.025-0.057,0.048
+ l-1.361,3.236l4.097,3.278l3.202-2.062c0.019-0.011,0.015-0.037,0.031-0.052c0.083-0.065,0.178-0.121,0.243-0.201
+ c0.008-0.011,0.043-0.059,0.048-0.062l2.237-2.79l0.033-0.033l-0.004-0.004l0.023-0.029l0.006,0.004L42.59,15.02
+ c0.029-0.029,0.071-0.044,0.1-0.077c0.032-0.044,0.049-0.103,0.076-0.15l0.015-0.019l-0.003-0.003
+ C42.895,14.566,42.967,14.339,42.967,14.071z"/>
+ </g>
+</g>
+
+</svg>
diff --git a/icons/edit-pointer.svg b/icons/edit-pointer.svg
new file mode 100644
index 0000000..2397df3
--- /dev/null
+++ b/icons/edit-pointer.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14576) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve">
+<rect x="5.285" y="9.417" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="3" width="31.466" height="25.083"/>
+<polygon fill="#423F3D" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" points="
+ 33.225,30.118 39.89,46.332 42.087,40.904 48.34,46.951 50.126,45.508 43.874,39.05 49.576,36.714 "/>
+</svg>
diff --git a/icons/pencil.svg b/icons/pencil.svg
deleted file mode 100644
index cb17e04..0000000
--- a/icons/pencil.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14576) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve">
-<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M51,11.978l-0.018-0.203c-0.097-0.838-0.794-1.862-1.817-2.665
- c-1.024-0.812-2.18-1.245-3.018-1.156c-0.362,0.044-0.662,0.203-0.856,0.432l-0.026-0.008l-14.779,19.57l-0.07,0.062l-0.009,0.018
- l-0.035,0.079l-1.925,2.365l0.221,0.185h-0.009l-0.221-0.159l-0.034,0.036c-0.08,0.114-0.142,0.238-0.178,0.379l-0.061,0.044
- l-1.191,2.859l3.608,2.886l2.833-1.818l0.025-0.045l0.212-0.176l0.045-0.053l1.977-2.461l0.026-0.036l0.018-0.035v0.009
- l14.947-19.279l0.089-0.062l0.069-0.132l0.01-0.018C50.938,12.41,51,12.216,51,11.978z M24.317,40.116
- c-0.044,0.124-0.017,0.247,0.08,0.336c0.097,0.079,0.229,0.088,0.344,0.018l4.085-2.63l-2.656-2.127L24.317,40.116z"/>
-<path fill="#808284" d="M6,44.229c0-1.218,0.988-2.206,2.206-2.206h18.75c1.209,0,2.206,0.988,2.206,2.206
- c0,1.217-0.997,2.205-2.206,2.205H8.206C6.988,46.434,6,45.445,6,44.229z"/>
-<path fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M6,44.229
- c0-1.218,0.988-2.206,2.206-2.206h18.75c1.209,0,2.206,0.988,2.206,2.206c0,1.217-0.997,2.205-2.206,2.205H8.206
- C6.988,46.434,6,45.445,6,44.229z"/>
-</svg>