1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
import pygtk
pygtk.require( '2.0' )
import gtk
import Config
from gettext import gettext as _
from sugar.graphics import style
from sugar.graphics.palette import Palette, WidgetInvoker
class Popup( Palette ):
def __init__( self, label, owner ):
Palette.__init__( self, label )
self.owner = owner
self.props.invoker = WidgetInvoker( gtk.HBox() ) # garbage invoker
self.set_property( "position", Palette.AT_CURSOR )
self.set_group_id( "TamTamPopup" )
self.connect( "key-press-event", self.owner.onKeyPress )
self.connect( "key-release-event", self.owner.onKeyRelease )
self.connect( "focus_out_event", self.closePopup )
def _leave_notify_event_cb( self, widget, event ):
pass # don't popdown()
def popup( self, immediate = False ):
self.owner.activity.handler_block(self.owner.activity.focusOutHandler)
self.owner.activity.handler_block(self.owner.activity.focusInHandler)
Palette.popup( self, immediate )
def popdown( self, immediate = False ):
Palette.popdown( self, immediate )
self.owner.activity.handler_unblock(self.owner.activity.focusOutHandler)
self.owner.activity.handler_unblock(self.owner.activity.focusInHandler)
def closePopup( self, widget, event ):
self.popdown()
class Instrument( Popup ):
def __init__( self, label, owner ):
Popup.__init__( self, label, owner )
self.GUI = {}
self.GUI["mainBox"] = gtk.VBox()
self.set_content( self.GUI["mainBox"] )
#-- Volume --------------------------------------------
self.GUI["volumeBox"] = gtk.HBox()
self.GUI["mainBox"].pack_start( self.GUI["volumeBox"], padding = style.DEFAULT_PADDING )
self.GUI["volumeLabel"] = gtk.Label( _("Volume:") )
self.GUI["volumeLabel"].set_size_request( 100, -1 )
self.GUI["volumeLabel"].set_alignment( 0.0, 0.5 )
self.GUI["volumeBox"].pack_start( self.GUI["volumeLabel"], False, padding = style.DEFAULT_PADDING )
self.GUI["volumeAdjustment"] = gtk.Adjustment( 0.5, 0.0, 1.0, 0.1, 0.1, 0 )
self.GUI["volumeAdjustment"].connect( 'value-changed', self.handleVolume )
self.GUI["volumeSlider"] = gtk.HScale( adjustment = self.GUI["volumeAdjustment"] )
self.GUI["volumeSlider"].set_size_request( 250, -1 )
self.GUI["volumeSlider"].set_draw_value( False )
self.GUI["volumeBox"].pack_start( self.GUI["volumeSlider"], False, padding = style.DEFAULT_PADDING )
self.GUI["volumeImage"] = gtk.Image()
self.GUI["volumeBox"].pack_start( self.GUI["volumeImage"], False, padding = style.DEFAULT_PADDING )
#-- Pan -----------------------------------------------
self.GUI["panBox"] = gtk.HBox()
self.GUI["mainBox"].pack_start( self.GUI["panBox"], padding = style.DEFAULT_PADDING )
self.GUI["panLabel"] = gtk.Label( _("Pan:") )
self.GUI["panLabel"].set_size_request( 100, -1 )
self.GUI["panLabel"].set_alignment( 0.0, 0.5 )
self.GUI["panBox"].pack_start( self.GUI["panLabel"], False, padding = style.DEFAULT_PADDING )
self.GUI["panAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.1, 0.1, 0 )
self.GUI["panAdjustment"].connect( 'value-changed', self.handlePan )
self.GUI["panSlider"] = gtk.HScale( adjustment = self.GUI["panAdjustment"] )
self.GUI["panSlider"].set_size_request( 250, -1 )
self.GUI["panSlider"].set_draw_value( False )
self.GUI["panBox"].pack_start( self.GUI["panSlider"], False, padding = style.DEFAULT_PADDING )
self.GUI["panImage"] = gtk.Image()
self.GUI["panBox"].pack_start( self.GUI["panImage"], False, padding = style.DEFAULT_PADDING )
#-- Reverb --------------------------------------------
self.GUI["reverbBox"] = gtk.HBox()
self.GUI["mainBox"].pack_start( self.GUI["reverbBox"], padding = style.DEFAULT_PADDING )
self.GUI["reverbLabel"] = gtk.Label( _("Reverb:") )
self.GUI["reverbLabel"].set_size_request( 100, -1 )
self.GUI["reverbLabel"].set_alignment( 0.0, 0.5 )
self.GUI["reverbBox"].pack_start( self.GUI["reverbLabel"], False, padding = style.DEFAULT_PADDING )
self.GUI["reverbAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.1, 0.1, 0 )
self.GUI["reverbAdjustment"].connect( 'value-changed', self.handleReverb )
self.GUI["reverbSlider"] = gtk.HScale( adjustment = self.GUI["reverbAdjustment"] )
self.GUI["reverbSlider"].set_size_request( 250, -1 )
self.GUI["reverbSlider"].set_draw_value( False )
self.GUI["reverbBox"].pack_start( self.GUI["reverbSlider"], False, padding = style.DEFAULT_PADDING )
self.GUI["reverbImage"] = gtk.Image()
self.GUI["reverbBox"].pack_start( self.GUI["reverbImage"], False, padding = style.DEFAULT_PADDING )
self.GUI["separator"] = gtk.HSeparator()
self.GUI["mainBox"].pack_start( self.GUI["separator"], padding = style.DEFAULT_PADDING )
#-- Export --------------------------------------------
self.GUI["exportBox"] = gtk.HBox()
self.GUI["mainBox"].pack_start( self.GUI["exportBox"], padding = style.DEFAULT_PADDING )
self.GUI["exportEntry"] = gtk.Entry()
self.GUI["exportEntry"].modify_fg( gtk.STATE_NORMAL, self.owner.colors["black"] )
self.GUI["exportEntry"].modify_fg( gtk.STATE_ACTIVE, self.owner.colors["black"] )
self.GUI["exportBox"].pack_start( self.GUI["exportEntry"], padding = style.DEFAULT_PADDING )
self.GUI["exportButton"] = gtk.Button( "Export" )
self.GUI["exportBox"].pack_start( self.GUI["exportButton"], False, padding = style.DEFAULT_PADDING )
self.GUI["mainBox"].show_all()
def setBlock( self, block ):
self.block = block
self.GUI["volumeAdjustment"].set_value( block.getData( "volume" ) )
self.GUI["panAdjustment"].set_value( block.getData( "pan" ) )
self.GUI["reverbAdjustment"].set_value( block.getData( "reverb" ) )
self.GUI["exportEntry"].set_text( block.getData( "name" ) )
def handleVolume( self, widget ):
self.block.setData( "volume", widget.get_value() )
def handlePan( self, widget ):
self.block.setData( "pan", widget.get_value() )
def handleReverb( self, widget ):
self.block.setData( "reverb", widget.get_value() )
class Shortcut( Popup ):
def __init__( self, label, owner ):
Popup.__init__( self, label, owner )
|