From 02d3e3904572b1250386e4efd86314e3fa0de020 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Sun, 23 Jan 2011 17:14:26 +0000 Subject: Mini: Cleanup launch code, reorg window on rotating --- diff --git a/TamTamMini.activity/Mini/InstrumentPanel.py b/TamTamMini.activity/Mini/InstrumentPanel.py index 7f7ebf0..b6c1229 100644 --- a/TamTamMini.activity/Mini/InstrumentPanel.py +++ b/TamTamMini.activity/Mini/InstrumentPanel.py @@ -15,23 +15,22 @@ InstrumentSize = 116 Tooltips = Config.Tooltips class InstrumentPanel( gtk.EventBox ): - def __init__(self,setInstrument = None, playInstrument = None, enterMode = False, micRec = None, synthRec = None, rowLen = 8, _instDic = None, force_load = True ): + def __init__(self,setInstrument=None): gtk.EventBox.__init__(self) self.instrumentDB = InstrumentDB.getRef() self.setInstrument = setInstrument - self.playInstrument = playInstrument - self.micRec = micRec - self.synthRec = synthRec - self.rowLen = rowLen - self.enterMode = enterMode + self.playInstrument = None + self.micRec = None + self.synthRec = None + self.rowLen = None + self.enterMode = False - self.instDic = _instDic + self.instDic = None self.loaded = False self.loadData = {} self.loadStage = [0,0,0] - if force_load: self.load() def configure( self, setInstrument = None, playInstrument = None, enterMode = False, micRec = None, synthRec = None, rowLen = 8, width = -1 ): @@ -42,12 +41,13 @@ class InstrumentPanel( gtk.EventBox ): if width != -1: rowLen = width / InstrumentSize + if self.rowLen == rowLen: + return + + self.rowLen = rowLen - if self.rowLen != rowLen: - self.rowLen = rowLen - self.prepareInstrumentTable( self.category ) - else: - self.rowLen = rowLen + if self.loaded: + self.prepareInstrumentTable(self.category) def load( self, timeout = -1 ): if self.loaded: return True diff --git a/TamTamMini.activity/Mini/miniTamTamMain.py b/TamTamMini.activity/Mini/miniTamTamMain.py index bc0ea37..8232e75 100644 --- a/TamTamMini.activity/Mini/miniTamTamMain.py +++ b/TamTamMini.activity/Mini/miniTamTamMain.py @@ -48,6 +48,7 @@ class miniTamTamMain(gtk.EventBox): def __init__(self, activity): gtk.EventBox.__init__(self) + self.instrumentPanel = None self.activity = activity #self.set_border_width(Config.MAIN_WINDOW_PADDING) @@ -318,14 +319,16 @@ class miniTamTamMain(gtk.EventBox): def load_ls_instrument(self, soundName): self.csnd.load_ls_instrument(soundName) - def setInstrumentPanel( self, instrumentPanel ): + def updateInstrumentPanel(self): + if self.instrumentPanel is None: + self.instrumentPanel = InstrumentPanel() + self.leftBox.pack_start(self.instrumentPanel) + width = gtk.gdk.screen_width() - self.rightBox.get_size_request()[0] - instrumentPanel.configure( self.setInstrument,self.playInstrumentNote, False, self.micRec, width = width ) - self.instrumentPanel = instrumentPanel - self.leftBox.pack_start( instrumentPanel ) + self.instrumentPanel.configure(self.setInstrument, + self.playInstrumentNote, False, self.micRec, width=width) - def releaseInstrumentPanel( self ): - self.leftBox.remove( self.instrumentPanel ) + self.instrumentPanel.load() def micRec(self, widget, mic): self.csnd.inputMessage("i5600 0 4") @@ -595,7 +598,6 @@ class miniTamTamMain(gtk.EventBox): def onDeactivate( self ): SubActivity.onDeactivate( self ) - self.releaseInstrumentPanel() self.csnd.loopPause() self.csnd.loopClear() diff --git a/TamTamMini.activity/TamTamMini.py b/TamTamMini.activity/TamTamMini.py index 7c28558..3981cbd 100644 --- a/TamTamMini.activity/TamTamMini.py +++ b/TamTamMini.activity/TamTamMini.py @@ -13,7 +13,6 @@ import common.Config as Config from common.Util.CSoundClient import new_csound_client from common.Util.Profiler import TP -from Mini.InstrumentPanel import InstrumentPanel from Mini.miniTamTamMain import miniTamTamMain from common.Util.Trackpad import Trackpad from gettext import gettext as _ @@ -21,7 +20,12 @@ import commands from sugar.activity import activity class TamTamMini(activity.Activity): + + __gtype_name__ = 'TamTamMiniWindow' + def __init__(self, handle): + self.mini = None + activity.Activity.__init__(self, handle) color = gtk.gdk.color_parse(Config.WS_BCK_COLOR) @@ -31,54 +35,32 @@ class TamTamMini(activity.Activity): self.set_resizable(False) self.trackpad = Trackpad( self ) - - self.preloadTimeout = None + self.trackpad.setContext('mini') self.connect('notify::active', self.onActive) self.connect('destroy', self.onDestroy) - self.instrumentPanel = InstrumentPanel( force_load = False ) - self.preloadList = [ self.instrumentPanel ] - #load the sugar toolbar toolbox = activity.ActivityToolbox(self) self.set_toolbox(toolbox) - self.activity_toolbar = toolbox.get_activity_toolbar() - toolbox.show() - self.trackpad.setContext('mini') self.mini = miniTamTamMain(self) - self.connect('key-press-event', self.mini.onKeyPress) - self.connect('key-release-event', self.mini.onKeyRelease) - #self.modeList[mode].regenerate() - if self.instrumentPanel in self.preloadList: - self.instrumentPanel.load() # finish loading - self.mini.setInstrumentPanel( self.instrumentPanel ) - - self.set_canvas( self.mini ) - self.mini.onActivate(arg = None) - self.show() + self.mini.updateInstrumentPanel() + #self.modeList[mode].regenerate() self.activity_toolbar.share.hide() self.activity_toolbar.keep.hide() - def onPreloadTimeout( self ): - if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList - - t = time.time() - if self.preloadList[0].load( t + 0.100 ): # finished preloading this object - self.preloadList.pop(0) - if not len(self.preloadList): - if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t - self.preloadTimeout = False - return False # finished preloading everything - - if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t + self.set_canvas(self.mini) + self.show() - return True + def do_size_allocate(self, allocation): + activity.Activity.do_size_allocate(self, allocation) + if self.mini is not None: + self.mini.updateInstrumentPanel() def onActive(self, widget = None, event = None): if widget.props.active == False: @@ -88,12 +70,6 @@ class TamTamMini(activity.Activity): csnd = new_csound_client() csnd.connect(True) - def onKeyPress(self, widget, event): - pass - - def onKeyRelease(self, widget, event): - pass - def onDestroy(self, arg2): if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()' -- cgit v0.9.1