From 4e0210968c6fb8862b6c808f783536899ade1644 Mon Sep 17 00:00:00 2001 From: Gonzalo Odiard Date: Tue, 22 Jan 2013 15:46:25 +0000 Subject: Start port of TamTamJam to Gtk3 Using pygi-convert.sh, sugar-convert.sh and a few manual fixes. Signed-off-by: Gonzalo Odiard --- diff --git a/Jam/Block.py b/Jam/Block.py index 14cd8c0..004adae 100644 --- a/Jam/Block.py +++ b/Jam/Block.py @@ -1,7 +1,4 @@ - -import pygtk -pygtk.require( '2.0' ) -import gtk +from gi.repository import Gtk import random diff --git a/Jam/Desktop.py b/Jam/Desktop.py index 0698e88..ac84c3f 100644 --- a/Jam/Desktop.py +++ b/Jam/Desktop.py @@ -1,7 +1,6 @@ - -import pygtk -pygtk.require( '2.0' ) -import gtk +from gi.repository import GObject +from gi.repository import Gtk +from gi.repository import Gdk import common.Config as Config @@ -11,15 +10,15 @@ import common.Util.InstrumentDB as InstrumentDB from Jam import Block from Jam import Popup -class Desktop( gtk.EventBox ): +class Desktop( Gtk.EventBox ): def __init__( self, owner ): - gtk.EventBox.__init__( self ) + GObject.GObject.__init__( self ) self.instrumentDB = InstrumentDB.getRef() self.owner = owner - self.drawingArea = gtk.DrawingArea() + self.drawingArea = Gtk.DrawingArea() self.add( self.drawingArea ) # take drawing setup from owner @@ -29,10 +28,10 @@ class Desktop( gtk.EventBox ): self.noteDB = owner.noteDB - self.dirtyRectToAdd = gtk.gdk.Rectangle() # used by the invalidate_rect function + self.dirtyRectToAdd = Gdk.Rectangle() # used by the invalidate_rect function self.screenBuf = None self.screenBufDirty = False - self.screenBufDirtyRect = gtk.gdk.Rectangle() + self.screenBufDirtyRect = () self.blocks = [] # items on the desktop self.activeInstrument = None @@ -40,7 +39,7 @@ class Desktop( gtk.EventBox ): self.loops = {} # dict of playing loops by loop root self.drums = [] # list of active drums - self.add_events(gtk.gdk.POINTER_MOTION_MASK|gtk.gdk.POINTER_MOTION_HINT_MASK) + self.add_events(Gdk.EventMask.POINTER_MOTION_MASK|Gdk.EventMask.POINTER_MOTION_HINT_MASK) self.connect( "size-allocate", self.on_size_allocate ) self.connect( "button-press-event", self.on_button_press ) @@ -70,8 +69,8 @@ class Desktop( gtk.EventBox ): def on_size_allocate( self, widget, allocation ): if self.screenBuf == None or self.alloc.width != allocation.width or self.alloc.height != allocation.height: - win = gtk.gdk.get_default_root_window() - self.screenBuf = gtk.gdk.Pixmap( win, allocation.width, allocation.height ) + win = Gdk.get_default_root_window() + self.screenBuf = Gdk.Pixmap( win, allocation.width, allocation.height ) self.invalidate_rect( 0, 0, allocation.width, allocation.height ) self.alloc = allocation self.absoluteLoc = [0,0] @@ -100,7 +99,7 @@ class Desktop( gtk.EventBox ): else: y = self.alloc.height//2 if drag: - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() display = win.get_display() screen = display.get_default_screen() display.warp_pointer( screen, int(self.absoluteLoc[0] + x), int(self.absoluteLoc[1] + y) ) diff --git a/Jam/Fillin.py b/Jam/Fillin.py index 8588f6d..61af3cc 100644 --- a/Jam/Fillin.py +++ b/Jam/Fillin.py @@ -1,7 +1,4 @@ -import pygtk -pygtk.require( '2.0' ) -import gtk -import gobject +from gi.repository import GObject from RythmGenerator import * from common.Util.CSoundClient import new_csound_client @@ -43,7 +40,7 @@ class Fillin: def setBeats( self, nbeats ): if self.playBackTimeout != None: - gobject.source_remove( self.playBackTimeout ) + GObject.source_remove( self.playBackTimeout ) self.nbeats = nbeats self.clear() @@ -52,7 +49,7 @@ class Fillin: def setTempo( self, tempo ): self.tempo = tempo if self.playBackTimeout != None: - gobject.source_remove( self.playBackTimeout ) + GObject.source_remove( self.playBackTimeout ) self.play() def setReverb( self, reverb ): @@ -63,12 +60,12 @@ class Fillin: def play( self ): if self.playBackTimeout == None: - self.playBackTimeout = gobject.timeout_add( int(60000/self.tempo/8), self.handleClock ) + self.playBackTimeout = GObject.timeout_add( int(60000/self.tempo/8), self.handleClock ) self.handleClock() def stop( self ): if self.playBackTimeout != None: - gobject.source_remove( self.playBackTimeout ) + GObject.source_remove( self.playBackTimeout ) self.clear() def clear( self ): diff --git a/Jam/JamMain.py b/Jam/JamMain.py index beee980..e8a7341 100644 --- a/Jam/JamMain.py +++ b/Jam/JamMain.py @@ -1,7 +1,7 @@ -import pygtk -pygtk.require('2.0') -import gtk -import pango +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import GObject +from gi.repository import Pango import os import sys @@ -14,7 +14,7 @@ import common.Config as Config from common.Config import scale from common.Config import imagefile from gettext import gettext as _ -import sugar.graphics.style as style +import sugar3.graphics.style as style from Jam.Desktop import Desktop import Jam.Picker as Picker @@ -44,10 +44,9 @@ import common.Util.Network as Net import xdrlib import time -import gobject -from sugar.presence import presenceservice -from sugar.graphics.xocolor import XoColor +from sugar3.presence import presenceservice +from sugar3.graphics.xocolor import XoColor from math import sqrt @@ -56,10 +55,10 @@ from math import sqrt HEARTBEAT_BUFFER = 100 -class JamMain(gtk.EventBox): +class JamMain(Gtk.EventBox): def __init__(self, activity): - gtk.EventBox.__init__(self) + GObject.GObject.__init__(self) self.activity = activity @@ -113,9 +112,9 @@ class JamMain(gtk.EventBox): xoColorKey = ("#8D8D8D,#FFDDEA") xoColor = XoColor(xoColorKey) - win = gtk.gdk.get_default_root_window() - self.gc = gtk.gdk.GC(win) - colormap = gtk.gdk.colormap_get_system() + win = Gdk.get_default_root_window() + self.gc = Gdk.GC(win) + colormap = Gdk.colormap_get_system() self.colors = {"bg": colormap.alloc_color(Config.PANEL_BCK_COLOR), "black": colormap.alloc_color( style.COLOR_BLACK.get_html()), @@ -151,7 +150,7 @@ class JamMain(gtk.EventBox): self.colors["Note_Border_Inactive"] = self.colors["Border_Inactive"] if True: # load block clipmask - pix = gtk.gdk.pixbuf_new_from_file(imagefile('jam-blockMask.png')) + pix = GdkPixbuf.Pixbuf.new_from_file(imagefile('jam-blockMask.png')) pixels = pix.get_pixels() stride = pix.get_rowstride() channels = pix.get_n_channels() @@ -173,17 +172,17 @@ class JamMain(gtk.EventBox): bitmap += "%c" % byte byte = 0 shift = 0 - self.blockMask = gtk.gdk.bitmap_create_from_data( + self.blockMask = Gdk.bitmap_create_from_data( None, bitmap, pix.get_width(), pix.get_height()) - pix = gtk.gdk.pixbuf_new_from_file(imagefile('sampleBG.png')) - self.sampleBg = gtk.gdk.Pixmap(win, pix.get_width(), pix.get_height()) + pix = GdkPixbuf.Pixbuf.new_from_file(imagefile('sampleBG.png')) + self.sampleBg = Gdk.Pixmap(win, pix.get_width(), pix.get_height()) self.sampleBg.draw_pixbuf(self.gc, pix, 0, 0, 0, 0, pix.get_width(), - pix.get_height(), gtk.gdk.RGB_DITHER_NONE) + pix.get_height(), Gdk.RGB_DITHER_NONE) self.sampleBg.endOffset = pix.get_width() - 5 self.sampleNoteHeight = 7 if True: # load sample note clipmask - pix = gtk.gdk.pixbuf_new_from_file(imagefile('sampleNoteMask.png')) + pix = GdkPixbuf.Pixbuf.new_from_file(imagefile('sampleNoteMask.png')) pixels = pix.get_pixels() stride = pix.get_rowstride() channels = pix.get_n_channels() @@ -205,7 +204,7 @@ class JamMain(gtk.EventBox): bitmap += "%c" % byte byte = 0 shift = 0 - self.sampleNoteMask = gtk.gdk.bitmap_create_from_data( + self.sampleNoteMask = Gdk.bitmap_create_from_data( None, bitmap, pix.get_width(), pix.get_height()) self.sampleNoteMask.endOffset = pix.get_width() - 3 @@ -246,7 +245,7 @@ class JamMain(gtk.EventBox): #-- Toolbars ------------------------------------------ if Config.HAVE_TOOLBOX: - from sugar.graphics.toolbarbox import ToolbarButton + from sugar3.graphics.toolbarbox import ToolbarButton self.jamToolbar = JamToolbar(self) jam_toolbar_button = ToolbarButton(label=_('Jam'), @@ -281,7 +280,7 @@ class JamMain(gtk.EventBox): record_toolbar_button.show() self.activity.toolbox.toolbar.insert(record_toolbar_button, -1) - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.props.draw = True separator.set_expand(False) self.activity.toolbox.toolbar.insert(separator, -1) @@ -311,25 +310,25 @@ class JamMain(gtk.EventBox): #-- GUI ----------------------------------------------- if True: # GUI - self.modify_bg(gtk.STATE_NORMAL, self.colors["bg"]) # window bg + self.modify_bg(Gtk.StateType.NORMAL, self.colors["bg"]) # window bg self.GUI = {} - self.GUI["mainVBox"] = gtk.VBox() + self.GUI["mainVBox"] = Gtk.VBox() self.add(self.GUI["mainVBox"]) #-- Desktop ------------------------------------------- self.desktop = self.GUI["desktop"] = Desktop(self) - self.GUI["mainVBox"].pack_start(self.GUI["desktop"]) + self.GUI["mainVBox"].pack_start(self.GUI["desktop"], True, True, 0) #-- Bank ---------------------------------------------- - separator = gtk.Label(" ") + separator = Gtk.Label(label=" ") separator.set_size_request(-1, style.TOOLBOX_SEPARATOR_HEIGHT) self.GUI["mainVBox"].pack_start(separator, False) - self.GUI["notebook"] = gtk.Notebook() + self.GUI["notebook"] = Gtk.Notebook() self.GUI["notebook"].set_scrollable(True) - self.GUI["notebook"].modify_bg(gtk.STATE_NORMAL, + self.GUI["notebook"].modify_bg(Gtk.StateType.NORMAL, self.colors["Picker_Bg"]) - self.GUI["notebook"].modify_bg(gtk.STATE_ACTIVE, + self.GUI["notebook"].modify_bg(Gtk.StateType.ACTIVE, self.colors["Picker_Bg_Inactive"]) self.GUI["notebook"].props.tab_vborder = style.TOOLBOX_TAB_VBORDER self.GUI["notebook"].props.tab_hborder = style.TOOLBOX_TAB_HBORDER @@ -342,10 +341,10 @@ class JamMain(gtk.EventBox): self.pickers[type] = type(self) def prepareLabel(name): - label = gtk.Label(Tooltips.categories.get(name) or name) + label = Gtk.Label(label=Tooltips.categories.get(name) or name) label.set_alignment(0.0, 0.5) - label.modify_fg(gtk.STATE_NORMAL, self.colors["Picker_Fg"]) - label.modify_fg(gtk.STATE_ACTIVE, self.colors["Picker_Fg"]) + label.modify_fg(Gtk.StateType.NORMAL, self.colors["Picker_Fg"]) + label.modify_fg(Gtk.StateType.ACTIVE, self.colors["Picker_Fg"]) return label self.GUI["notebook"].append_page(self.pickers[Picker.Drum], @@ -356,7 +355,7 @@ class JamMain(gtk.EventBox): sets = self.instrumentDB.getLabels()[:] sets.sort() for set in sets: - page = gtk.HBox() + page = Gtk.HBox() page.set = set self.GUI["notebook"].append_page(page, prepareLabel(set)) @@ -422,7 +421,7 @@ class JamMain(gtk.EventBox): self.heartbeatStart = time.time() self.csnd.loopStart(self.heartbeatLoop) self.curBeat = 0 - self.beatWheelTimeout = gobject.timeout_add(100, self.updateBeatWheel) + self.beatWheelTimeout = GObject.timeout_add(100, self.updateBeatWheel) # data packing classes self.packer = xdrlib.Packer() @@ -431,10 +430,10 @@ class JamMain(gtk.EventBox): # handle forced networking if self.network.isHost(): self.updateSync() - self.syncTimeout = gobject.timeout_add(1000, self.updateSync) + self.syncTimeout = GObject.timeout_add(1000, self.updateSync) elif self.network.isPeer(): self.sendTempoQuery() - self.syncTimeout = gobject.timeout_add(1000, self.updateSync) + self.syncTimeout = GObject.timeout_add(1000, self.updateSync) self.activity.connect("shared", self.shared) @@ -515,7 +514,7 @@ class JamMain(gtk.EventBox): self.instrumentDB.instNamed[inst.kit[pitch]].instrumentId, self.instrument["reverb"]) else: - if event.state == gtk.gdk.MOD1_MASK: + if event.get_state() == Gdk.ModifierType.MOD1_MASK: pitch += 5 # Percussions resonance @@ -992,28 +991,28 @@ class JamMain(gtk.EventBox): # Pixmaps def prepareInstrumentImage(self, id, img_path): - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() try: - pix = gtk.gdk.pixbuf_new_from_file(img_path) + pix = GdkPixbuf.Pixbuf.new_from_file(img_path) except: if Config.DEBUG >= 5: print "JamMain:: file does not exist: " + img_path - pix = gtk.gdk.pixbuf_new_from_file(imagefile('generic.png')) + pix = GdkPixbuf.Pixbuf.new_from_file(imagefile('generic.png')) x = (Block.Block.WIDTH - pix.get_width()) // 2 y = (Block.Block.HEIGHT - pix.get_height()) // 2 - img = gtk.gdk.Pixmap(win, Block.Block.WIDTH, Block.Block.HEIGHT) + img = Gdk.Pixmap(win, Block.Block.WIDTH, Block.Block.HEIGHT) self.gc.foreground = self.colors["Bg_Inactive"] img.draw_rectangle(self.gc, True, 0, 0, Block.Block.WIDTH, Block.Block.HEIGHT) img.draw_pixbuf(self.gc, pix, 0, 0, x, y, pix.get_width(), - pix.get_height(), gtk.gdk.RGB_DITHER_NONE) + pix.get_height(), Gdk.RGB_DITHER_NONE) self.instrumentImage[id] = img - img = gtk.gdk.Pixmap(win, Block.Block.WIDTH, Block.Block.HEIGHT) + img = Gdk.Pixmap(win, Block.Block.WIDTH, Block.Block.HEIGHT) self.gc.foreground = self.colors["Bg_Active"] img.draw_rectangle(self.gc, True, 0, 0, Block.Block.WIDTH, Block.Block.HEIGHT) img.draw_pixbuf(self.gc, pix, 0, 0, x, y, pix.get_width(), - pix.get_height(), gtk.gdk.RGB_DITHER_NONE) + pix.get_height(), Gdk.RGB_DITHER_NONE) self.instrumentImageActive[id] = img def _drawNotes(self, pixmap, beats, notes, active): @@ -1048,15 +1047,15 @@ class JamMain(gtk.EventBox): self.sampleNoteHeight) def prepareKeyImage(self, key): - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() pangolayout = self.create_pango_layout(_(self.valid_shortcuts[key])) - fontDesc = pango.FontDescription("bold") + fontDesc = Pango.FontDescription("bold") pangolayout.set_font_description(fontDesc) extents = pangolayout.get_pixel_extents() x = (Block.Block.KEYSIZE - extents[1][2]) // 2 y = (Block.Block.KEYSIZE - extents[1][3]) // 2 - pixmap = gtk.gdk.Pixmap(win, Block.Block.KEYSIZE, Block.Block.KEYSIZE) + pixmap = Gdk.Pixmap(win, Block.Block.KEYSIZE, Block.Block.KEYSIZE) self.gc.foreground = self.colors["Border_Inactive"] pixmap.draw_rectangle(self.gc, True, 0, 0, Block.Block.KEYSIZE, Block.Block.KEYSIZE) @@ -1064,7 +1063,7 @@ class JamMain(gtk.EventBox): pixmap.draw_layout(self.gc, x, y, pangolayout) self.keyImage[key] = pixmap - pixmap = gtk.gdk.Pixmap(win, Block.Block.KEYSIZE, Block.Block.KEYSIZE) + pixmap = Gdk.Pixmap(win, Block.Block.KEYSIZE, Block.Block.KEYSIZE) self.gc.foreground = self.colors["Border_Active"] pixmap.draw_rectangle(self.gc, True, 0, 0, Block.Block.KEYSIZE, Block.Block.KEYSIZE) @@ -1075,22 +1074,22 @@ class JamMain(gtk.EventBox): def updateLoopImage(self, id): page = self.noteDB.getPage(id) - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() width = Block.Loop.WIDTH[page.beats] height = Block.Loop.HEIGHT - self.gc.set_clip_rectangle(gtk.gdk.Rectangle(0, 0, width, height)) + self.gc.set_clip_rectangle((0, 0, width, height)) - pixmap = gtk.gdk.Pixmap(win, width, height) + pixmap = Gdk.Pixmap(win, width, height) self.gc.foreground = self.colors["Bg_Inactive"] pixmap.draw_rectangle(self.gc, True, 0, 0, width, height) self._drawNotes(pixmap, page.beats, self.noteDB.getNotesByTrack(id, 0), False) self.loopImage[id] = pixmap - self.gc.set_clip_rectangle(gtk.gdk.Rectangle(0, 0, width, height)) + self.gc.set_clip_rectangle((0, 0, width, height)) - pixmap = gtk.gdk.Pixmap(win, width, height) + pixmap = Gdk.Pixmap(win, width, height) self.gc.foreground = self.colors["Bg_Active"] pixmap.draw_rectangle(self.gc, True, 0, 0, width, height) self._drawNotes(pixmap, page.beats, self.noteDB.getNotesByTrack(id, 0), @@ -1185,7 +1184,7 @@ class JamMain(gtk.EventBox): self.activity._shared_activity.connect("buddy-left", self.buddy_left) self.network.setMode(Net.MD_HOST) self.updateSync() - self.syncTimeout = gobject.timeout_add(1000, self.updateSync) + self.syncTimeout = GObject.timeout_add(1000, self.updateSync) def joined(self, activity): if Config.DEBUG: @@ -1245,12 +1244,12 @@ class JamMain(gtk.EventBox): def networkStatusWatcher(self, mode): if mode == Net.MD_OFFLINE: if self.syncTimeout: - gobject.source_remove(self.syncTimeout) + GObject.source_remove(self.syncTimeout) self.syncTimeout = None if mode == Net.MD_PEER: self.updateSync() if not self.syncTimeout: - self.syncTimeout = gobject.timeout_add(1000, self.updateSync) + self.syncTimeout = GObject.timeout_add(1000, self.updateSync) self.sendTempoQuery() def processHT_SYNC_REPLY(self, sock, message, data): diff --git a/Jam/Parasite.py b/Jam/Parasite.py index 74b9e0d..c5ac2ec 100644 --- a/Jam/Parasite.py +++ b/Jam/Parasite.py @@ -1,6 +1,5 @@ -import pygtk -pygtk.require( '2.0' ) -import gtk +from gi.repository import Gtk +from gi.repository import Gdk import common.Config as Config @@ -170,7 +169,7 @@ class LoopParasite: playSample = False - if event.type == gtk.gdk._2BUTTON_PRESS: # select bar + if event.type == Gdk._2BUTTON_PRESS: # select bar self.potentialDeselect = False start = 0 check = self.note.cs.onset - Config.TICKS_PER_BEAT @@ -179,7 +178,7 @@ class LoopParasite: check += self.note.cs.duration while stop < check: stop += Config.TICKS_PER_BEAT emitter.selectNotesByBar( self.note.track, start, stop ) - elif event.type == gtk.gdk._3BUTTON_PRESS: # select track + elif event.type == Gdk._3BUTTON_PRESS: # select track self.potentialDeselect = False emitter.selectNotesByTrack( self.note.track ) else: diff --git a/Jam/Picker.py b/Jam/Picker.py index f1030bf..5456555 100644 --- a/Jam/Picker.py +++ b/Jam/Picker.py @@ -1,11 +1,8 @@ - -import pygtk -pygtk.require( '2.0' ) -import gtk +from gi.repository import Gtk +from gi.repository import Gdk import os -import random #TEMP import sets from common.Util.CSoundClient import new_csound_client @@ -13,7 +10,7 @@ from common.port.scrolledbox import HScrolledBox import common.Config as Config from gettext import gettext as _ -from sugar.graphics.palette import Palette, WidgetInvoker +from sugar3.graphics.palette import Palette, WidgetInvoker from common.Util import ControlStream from common.Util import InstrumentDB @@ -36,13 +33,13 @@ class Picker(HScrolledBox): self.desktop = owner.getDesktop() - self.pickerBox = gtk.HBox() + self.pickerBox = Gtk.HBox() self.set_viewport(self.pickerBox) - self.modify_bg( gtk.STATE_NORMAL, self.colors["Picker_Bg"] ) + self.modify_bg( Gtk.StateType.NORMAL, self.colors["Picker_Bg"] ) # spacers - self.pickerBox.pack_start( gtk.Label(" "), True, True ) - self.pickerBox.pack_end( gtk.Label(" "), True, True ) + self.pickerBox.pack_start( Gtk.Label(" "), True, True, 0) + self.pickerBox.pack_end( Gtk.Label(" "), True, True, 0) self.show_all() self.scroll = {} @@ -56,12 +53,12 @@ class Picker(HScrolledBox): invoker._position_hint = WidgetInvoker.AT_CURSOR invoker.set_palette(Palette(name)) - block.add_events( gtk.gdk.BUTTON_PRESS_MASK - | gtk.gdk.BUTTON_RELEASE_MASK - | gtk.gdk.ENTER_NOTIFY_MASK - | gtk.gdk.LEAVE_NOTIFY_MASK - | gtk.gdk.POINTER_MOTION_MASK - | gtk.gdk.POINTER_MOTION_HINT_MASK ) + block.add_events( Gdk.EventMask.BUTTON_PRESS_MASK + | Gdk.EventMask.BUTTON_RELEASE_MASK + | Gdk.EventMask.ENTER_NOTIFY_MASK + | Gdk.EventMask.LEAVE_NOTIFY_MASK + | Gdk.EventMask.POINTER_MOTION_MASK + | Gdk.EventMask.POINTER_MOTION_HINT_MASK ) block.connect( "button-press-event", self.on_button_press ) block.connect( "button-release-event", self.on_button_release ) block.connect( "motion-notify-event", self.on_motion_notify ) @@ -145,12 +142,12 @@ class Instrument( Picker ): data = { "name": self.instrumentDB.instId[id].nameTooltip, "id": id } - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() width = Block.Instrument.WIDTH height = Block.Instrument.HEIGHT - pixmap = gtk.gdk.Pixmap( win, width, height ) + pixmap = Gdk.Pixmap( win, width, height ) - self.gc.set_clip_rectangle( gtk.gdk.Rectangle( 0, 0, width, height ) ) + self.gc.set_clip_rectangle( ( 0, 0, width, height ) ) # draw bg self.gc.foreground = self.colors["Picker_Bg"] @@ -168,11 +165,11 @@ class Instrument( Picker ): self.gc.set_clip_origin( -Block.Instrument.MASK_START, -height ) pixmap.draw_drawable( self.gc, inst, 0, 0, 0, 0, width, height ) - image = gtk.Image() + image = Gtk.Image() image.set_from_pixmap( pixmap, None ) - block = gtk.EventBox() - block.modify_bg( gtk.STATE_NORMAL, self.colors["Picker_Bg"] ) + block = Gtk.EventBox() + block.modify_bg( Gtk.StateType.NORMAL, self.colors["Picker_Bg"] ) block.add( image ) Picker.addBlock( self, data, data["name"], block ) @@ -213,12 +210,12 @@ class Drum( Picker ): data = { "name": self.instrumentDB.instId[id].nameTooltip, "id": id } - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() width = Block.Drum.WIDTH height = Block.Drum.HEIGHT - pixmap = gtk.gdk.Pixmap( win, width, height ) + pixmap = Gdk.Pixmap( win, width, height ) - self.gc.set_clip_rectangle( gtk.gdk.Rectangle( 0, 0, width, height ) ) + self.gc.set_clip_rectangle( ( 0, 0, width, height ) ) # draw bg self.gc.foreground = self.colors["Picker_Bg"] @@ -236,11 +233,11 @@ class Drum( Picker ): self.gc.set_clip_origin( -Block.Drum.MASK_START, -height ) pixmap.draw_drawable( self.gc, inst, 0, 0, 0, 0, width, height ) - image = gtk.Image() + image = Gtk.Image() image.set_from_pixmap( pixmap, None ) - block = gtk.EventBox() - block.modify_bg( gtk.STATE_NORMAL, self.colors["Picker_Bg"] ) + block = Gtk.EventBox() + block.modify_bg( Gtk.StateType.NORMAL, self.colors["Picker_Bg"] ) block.add( image ) Picker.addBlock( self, data, data["name"], block ) @@ -310,12 +307,12 @@ class Loop( Picker ): page = self.owner.noteDB.getPage( id ) - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() width = Block.Loop.WIDTH[page.beats] height = Block.Loop.HEIGHT - pixmap = gtk.gdk.Pixmap( win, width, height ) + pixmap = Gdk.Pixmap( win, width, height ) - self.gc.set_clip_rectangle( gtk.gdk.Rectangle( 0, 0, width, height ) ) + self.gc.set_clip_rectangle( ( 0, 0, width, height ) ) # draw bg self.gc.foreground = self.colors["Picker_Bg"] @@ -373,11 +370,11 @@ class Loop( Picker ): self.gc.set_clip_origin( curx-Block.Loop.MASK_TAIL, -height ) pixmap.draw_drawable( self.gc, loop, curx, 0, curx, 0, Block.Loop.TAIL, height ) - image = gtk.Image() + image = Gtk.Image() image.set_from_pixmap( pixmap, None ) - block = gtk.EventBox() - block.modify_bg( gtk.STATE_NORMAL, self.colors["Picker_Bg"] ) + block = Gtk.EventBox() + block.modify_bg( Gtk.StateType.NORMAL, self.colors["Picker_Bg"] ) block.add( image ) Picker.addBlock( self, data, data["name"], block ) diff --git a/Jam/Popup.py b/Jam/Popup.py index 8ff1888..55eb299 100644 --- a/Jam/Popup.py +++ b/Jam/Popup.py @@ -1,14 +1,12 @@ - -import pygtk -pygtk.require( '2.0' ) -import gtk +from gi.repository import Gtk +from gi.repository import Gdk import common.Config as Config from gettext import gettext as _ -from sugar.graphics import style -from sugar.graphics.palette import Palette, Invoker -import gobject +from sugar3.graphics import style +from sugar3.graphics.palette import Palette, Invoker +from gi.repository import GObject from Jam import Block from common.Util.NoteDB import PARAMETER @@ -34,7 +32,7 @@ class NoneInvoker( Invoker ): self._position_hint = Invoker.AT_CURSOR def get_rect( self ): - return gtk.gdk.Rectangle( 0, 0, 0, 0 ) + return ( 0, 0, 0, 0 ) def get_toplevel( self ): return None @@ -110,75 +108,75 @@ class Instrument( Popup ): self.GUI = {} - self.GUI["mainBox"] = gtk.VBox() + self.GUI["mainBox"] = Gtk.VBox() self.set_content( self.GUI["mainBox"] ) #-- Volume -------------------------------------------- - self.GUI["volumeBox"] = gtk.HBox() + 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"] = Gtk.Label(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.01, 0.01, 0 ) + self.GUI["volumeAdjustment"] = Gtk.Adjustment( 0.5, 0.0, 1.0, 0.01, 0.01, 0 ) self.GUI["volumeAdjustment"].connect( 'value-changed', self.handleVolume ) - self.GUI["volumeSlider"] = gtk.HScale( adjustment = self.GUI["volumeAdjustment"] ) + self.GUI["volumeSlider"] = Gtk.HScale( adjustment = self.GUI["volumeAdjustment"] ) self.GUI["volumeSlider"].set_size_request( 250, -1 ) self.GUI["volumeSlider"].set_draw_value( True ) self.GUI["volumeSlider"].set_digits( 2 ) - self.GUI["volumeSlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["volumeSlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["volumeBox"].pack_start( self.GUI["volumeSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["volumeImage"] = gtk.Image() + 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["panBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["panBox"], padding = style.DEFAULT_PADDING ) - self.GUI["panLabel"] = gtk.Label( _("Pan:") ) + self.GUI["panLabel"] = Gtk.Label(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.01, 0.01, 0 ) + self.GUI["panAdjustment"] = Gtk.Adjustment( 0.5, 0, 1.0, 0.01, 0.01, 0 ) self.GUI["panAdjustment"].connect( 'value-changed', self.handlePan ) - self.GUI["panSlider"] = gtk.HScale( adjustment = self.GUI["panAdjustment"] ) + self.GUI["panSlider"] = Gtk.HScale( adjustment = self.GUI["panAdjustment"] ) self.GUI["panSlider"].set_size_request( 250, -1 ) self.GUI["panSlider"].set_draw_value( True ) self.GUI["panSlider"].set_digits( 2 ) - self.GUI["panSlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["panSlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["panBox"].pack_start( self.GUI["panSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["panImage"] = gtk.Image() + 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["reverbBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["reverbBox"], padding = style.DEFAULT_PADDING ) - self.GUI["reverbLabel"] = gtk.Label( _("Reverb") + ':' ) + self.GUI["reverbLabel"] = Gtk.Label(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.01, 0.01, 0 ) + self.GUI["reverbAdjustment"] = Gtk.Adjustment( 0.5, 0, 1.0, 0.01, 0.01, 0 ) self.GUI["reverbAdjustment"].connect( 'value-changed', self.handleReverb ) - self.GUI["reverbSlider"] = gtk.HScale( adjustment = self.GUI["reverbAdjustment"] ) + self.GUI["reverbSlider"] = Gtk.HScale( adjustment = self.GUI["reverbAdjustment"] ) self.GUI["reverbSlider"].set_size_request( 250, -1 ) self.GUI["reverbSlider"].set_draw_value( True ) self.GUI["reverbSlider"].set_digits( 2 ) - self.GUI["reverbSlider"].set_value_pos(gtk.POS_RIGHT) + self.GUI["reverbSlider"].set_value_pos(Gtk.PositionType.RIGHT) self.GUI["reverbBox"].pack_start( self.GUI["reverbSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["reverbImage"] = gtk.Image() + self.GUI["reverbImage"] = Gtk.Image() self.GUI["reverbBox"].pack_start( self.GUI["reverbImage"], False, padding = style.DEFAULT_PADDING ) if False: # TEMP quote out - self.GUI["separator"] = gtk.HSeparator() + 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["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["exportEntry"] = Gtk.Entry() + self.GUI["exportEntry"].modify_fg( Gtk.StateType.NORMAL, self.owner.colors["black"] ) + self.GUI["exportEntry"].modify_fg( Gtk.StateType.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["exportButton"] = Gtk.Button( "Export" ) self.GUI["exportBox"].pack_start( self.GUI["exportButton"], False, padding = style.DEFAULT_PADDING ) self.GUI["mainBox"].show_all() @@ -218,91 +216,91 @@ class Drum( Popup ): self.GUI = {} - self.GUI["mainBox"] = gtk.VBox() + self.GUI["mainBox"] = Gtk.VBox() self.set_content( self.GUI["mainBox"] ) #-- Volume -------------------------------------------- - self.GUI["volumeBox"] = gtk.HBox() + 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"] = Gtk.Label(label= _("Volume") + ':' ) self.GUI["volumeLabel"].set_size_request( 130, -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.01, 0.01, 0 ) + self.GUI["volumeAdjustment"] = Gtk.Adjustment( 0.5, 0.0, 1.0, 0.01, 0.01, 0 ) self.GUI["volumeAdjustment"].connect( 'value-changed', self.handleVolume ) - self.GUI["volumeSlider"] = gtk.HScale( adjustment = self.GUI["volumeAdjustment"] ) + self.GUI["volumeSlider"] = Gtk.HScale( adjustment = self.GUI["volumeAdjustment"] ) self.GUI["volumeSlider"].set_size_request( 250, -1 ) self.GUI["volumeSlider"].set_draw_value( True ) self.GUI["volumeSlider"].set_digits( 2 ) - self.GUI["volumeSlider"].set_value_pos(gtk.POS_RIGHT) + self.GUI["volumeSlider"].set_value_pos(Gtk.PositionType.RIGHT) self.GUI["volumeBox"].pack_start( self.GUI["volumeSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["volumeImage"] = gtk.Image() + self.GUI["volumeImage"] = Gtk.Image() self.GUI["volumeBox"].pack_start( self.GUI["volumeImage"], False, padding = style.DEFAULT_PADDING ) #-- Reverb -------------------------------------------- - self.GUI["reverbBox"] = gtk.HBox() + 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"] = Gtk.Label(label= _("Reverb") + ':' ) self.GUI["reverbLabel"].set_size_request( 130, -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.01, 0.01, 0 ) + self.GUI["reverbAdjustment"] = Gtk.Adjustment( 0.5, 0, 1.0, 0.01, 0.01, 0 ) self.GUI["reverbAdjustment"].connect( 'value-changed', self.handleReverb ) - self.GUI["reverbSlider"] = gtk.HScale( adjustment = self.GUI["reverbAdjustment"] ) + self.GUI["reverbSlider"] = Gtk.HScale( adjustment = self.GUI["reverbAdjustment"] ) self.GUI["reverbSlider"].set_size_request( 250, -1 ) self.GUI["reverbSlider"].set_draw_value( True ) self.GUI["reverbSlider"].set_digits( 2 ) - self.GUI["reverbSlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["reverbSlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["reverbBox"].pack_start( self.GUI["reverbSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["reverbImage"] = gtk.Image() + self.GUI["reverbImage"] = Gtk.Image() self.GUI["reverbBox"].pack_start( self.GUI["reverbImage"], False, padding = style.DEFAULT_PADDING ) - self.GUI["generationSeparator"] = gtk.HSeparator() + self.GUI["generationSeparator"] = Gtk.HSeparator() self.GUI["mainBox"].pack_start( self.GUI["generationSeparator"], padding = style.DEFAULT_PADDING ) #-- Beats --------------------------------------------- - self.GUI["beatsBox"] = gtk.HBox() + self.GUI["beatsBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["beatsBox"], padding = style.DEFAULT_PADDING ) - self.GUI["beatsLabel"] = gtk.Label( _("Beats:") ) + self.GUI["beatsLabel"] = Gtk.Label(label= _("Beats:") ) self.GUI["beatsLabel"].set_size_request( 130, -1 ) self.GUI["beatsLabel"].set_alignment( 0.0, 0.5 ) self.GUI["beatsBox"].pack_start( self.GUI["beatsLabel"], False, padding = style.DEFAULT_PADDING ) - self.GUI["beatsAdjustment"] = gtk.Adjustment( 4, 2, Config.MAXIMUM_BEATS, 1, 1, 0 ) + self.GUI["beatsAdjustment"] = Gtk.Adjustment( 4, 2, Config.MAXIMUM_BEATS, 1, 1, 0 ) self.GUI["beatsAdjustment"].connect( 'value-changed', self.handleBeats ) - self.GUI["beatsSlider"] = gtk.HScale( adjustment = self.GUI["beatsAdjustment"] ) + self.GUI["beatsSlider"] = Gtk.HScale( adjustment = self.GUI["beatsAdjustment"] ) self.GUI["beatsSlider"].set_size_request( 250, -1 ) self.GUI["beatsSlider"].set_draw_value( True ) - self.GUI["beatsSlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["beatsSlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["beatsSlider"].set_digits(0) self.GUI["beatsBox"].pack_start( self.GUI["beatsSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["beatsImage"] = gtk.Image() + self.GUI["beatsImage"] = Gtk.Image() self.GUI["beatsBox"].pack_start( self.GUI["beatsImage"], False, padding = style.DEFAULT_PADDING ) #-- Regularity ---------------------------------------- - self.GUI["regularityBox"] = gtk.HBox() + self.GUI["regularityBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["regularityBox"], padding = style.DEFAULT_PADDING ) - self.GUI["regularityLabel"] = gtk.Label( _("Regularity:") ) + self.GUI["regularityLabel"] = Gtk.Label(label= _("Regularity:") ) self.GUI["regularityLabel"].set_size_request( 130, -1 ) self.GUI["regularityLabel"].set_alignment( 0.0, 0.5 ) self.GUI["regularityBox"].pack_start( self.GUI["regularityLabel"], False, padding = style.DEFAULT_PADDING ) - self.GUI["regularityAdjustment"] = gtk.Adjustment( 0.8, 0.0, 1.0, 0.01, 0.01, 0 ) + self.GUI["regularityAdjustment"] = Gtk.Adjustment( 0.8, 0.0, 1.0, 0.01, 0.01, 0 ) self.GUI["regularityAdjustment"].connect( 'value-changed', self.handleRegularity ) - self.GUI["regularitySlider"] = gtk.HScale( adjustment = self.GUI["regularityAdjustment"] ) + self.GUI["regularitySlider"] = Gtk.HScale( adjustment = self.GUI["regularityAdjustment"] ) self.GUI["regularitySlider"].set_size_request( 250, -1 ) self.GUI["regularitySlider"].set_draw_value( True ) self.GUI["regularitySlider"].set_digits( 2 ) - self.GUI["regularitySlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["regularitySlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["regularityBox"].pack_start( self.GUI["regularitySlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["regularityImage"] = gtk.Image() + self.GUI["regularityImage"] = Gtk.Image() self.GUI["regularityBox"].pack_start( self.GUI["regularityImage"], False, padding = style.DEFAULT_PADDING ) #-- Generate ------------------------------------------ - self.GUI["generateBox"] = gtk.HBox() + self.GUI["generateBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["generateBox"], padding = style.DEFAULT_PADDING ) - self.GUI["regenerateButton"] = gtk.Button( "Regenerate" ) + self.GUI["regenerateButton"] = Gtk.Button( "Regenerate" ) self.GUI["regenerateButton"].connect( "clicked", self.handleRegenerate ) self.GUI["generateBox"].pack_start( self.GUI["regenerateButton"], True, False, padding = style.DEFAULT_PADDING ) - self.GUI["clearButton"] = gtk.Button( "Clear" ) + self.GUI["clearButton"] = Gtk.Button( "Clear" ) self.GUI["clearButton"].connect( "clicked", self.handleClear ) self.GUI["generateBox"].pack_start( self.GUI["clearButton"], True, False, padding = style.DEFAULT_PADDING ) @@ -365,69 +363,69 @@ class Loop( Popup ): self.GUI = {} - self.GUI["mainBox"] = gtk.VBox() + self.GUI["mainBox"] = Gtk.VBox() self.set_content( self.GUI["mainBox"] ) #-- Beats --------------------------------------------- - self.GUI["beatsBox"] = gtk.HBox() + self.GUI["beatsBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["beatsBox"], padding = style.DEFAULT_PADDING ) - self.GUI["beatsLabel"] = gtk.Label( _("Beats:") ) + self.GUI["beatsLabel"] = Gtk.Label(label= _("Beats:") ) self.GUI["beatsLabel"].set_size_request( 130, -1 ) self.GUI["beatsLabel"].set_alignment( 0.0, 0.5 ) self.GUI["beatsBox"].pack_start( self.GUI["beatsLabel"], False, padding = style.DEFAULT_PADDING ) - self.GUI["beatsAdjustment"] = gtk.Adjustment( 4, 2, Config.MAXIMUM_BEATS, 1, 1, 0 ) + self.GUI["beatsAdjustment"] = Gtk.Adjustment( 4, 2, Config.MAXIMUM_BEATS, 1, 1, 0 ) self.GUI["beatsAdjustment"].connect( 'value-changed', self.handleBeats ) - self.GUI["beatsSlider"] = gtk.HScale( adjustment = self.GUI["beatsAdjustment"] ) + self.GUI["beatsSlider"] = Gtk.HScale( adjustment = self.GUI["beatsAdjustment"] ) self.GUI["beatsSlider"].set_size_request( 250, -1 ) self.GUI["beatsSlider"].set_draw_value( True ) - self.GUI["beatsSlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["beatsSlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["beatsSlider"].set_digits( 0 ) self.GUI["beatsBox"].pack_start( self.GUI["beatsSlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["beatsImage"] = gtk.Image() + self.GUI["beatsImage"] = Gtk.Image() self.GUI["beatsBox"].pack_start( self.GUI["beatsImage"], False, padding = style.DEFAULT_PADDING ) #-- Regularity ---------------------------------------- - self.GUI["regularityBox"] = gtk.HBox() + self.GUI["regularityBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["regularityBox"], padding = style.DEFAULT_PADDING ) - self.GUI["regularityLabel"] = gtk.Label( _("Regularity:") ) + self.GUI["regularityLabel"] = Gtk.Label(label= _("Regularity:") ) self.GUI["regularityLabel"].set_size_request( 130, -1 ) self.GUI["regularityLabel"].set_alignment( 0.0, 0.5 ) self.GUI["regularityBox"].pack_start( self.GUI["regularityLabel"], False, padding = style.DEFAULT_PADDING ) - self.GUI["regularityAdjustment"] = gtk.Adjustment( 0.8, 0.0, 1.0, 0.01, 0.01, 0 ) + self.GUI["regularityAdjustment"] = Gtk.Adjustment( 0.8, 0.0, 1.0, 0.01, 0.01, 0 ) self.GUI["regularityAdjustment"].connect( 'value-changed', self.handleRegularity ) - self.GUI["regularitySlider"] = gtk.HScale( adjustment = self.GUI["regularityAdjustment"] ) + self.GUI["regularitySlider"] = Gtk.HScale( adjustment = self.GUI["regularityAdjustment"] ) self.GUI["regularitySlider"].set_size_request( 250, -1 ) self.GUI["regularitySlider"].set_draw_value( True ) self.GUI["regularitySlider"].set_digits( 2 ) - self.GUI["regularitySlider"].set_value_pos( gtk.POS_RIGHT ) + self.GUI["regularitySlider"].set_value_pos( Gtk.PositionType.RIGHT ) self.GUI["regularityBox"].pack_start( self.GUI["regularitySlider"], False, padding = style.DEFAULT_PADDING ) - self.GUI["regularityImage"] = gtk.Image() + self.GUI["regularityImage"] = Gtk.Image() self.GUI["regularityBox"].pack_start( self.GUI["regularityImage"], False, padding = style.DEFAULT_PADDING ) #-- Generate ------------------------------------------ - self.GUI["generateBox"] = gtk.HBox() + self.GUI["generateBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["generateBox"], padding = style.DEFAULT_PADDING ) - self.GUI["regenerateButton"] = gtk.Button( "Regenerate" ) + self.GUI["regenerateButton"] = Gtk.Button( "Regenerate" ) self.GUI["regenerateButton"].connect( "clicked", self.handleRegenerate ) self.GUI["generateBox"].pack_start( self.GUI["regenerateButton"], True, False, padding = style.DEFAULT_PADDING ) - self.GUI["clearButton"] = gtk.Button( "Clear" ) + self.GUI["clearButton"] = Gtk.Button( "Clear" ) self.GUI["clearButton"].connect( "clicked", self.handleClear ) self.GUI["generateBox"].pack_start( self.GUI["clearButton"], True, False, padding = style.DEFAULT_PADDING ) - self.GUI["recordButton"] = gtk.ToggleButton( "Record" ) + self.GUI["recordButton"] = Gtk.ToggleButton( "Record" ) self.GUI["recordButton"].connect( "toggled", self.handleRecord ) self.GUI["generateBox"].pack_start( self.GUI["recordButton"], True, False, padding = style.DEFAULT_PADDING ) #-- Preview ------------------------------------------- - self.GUI["previewBox"] = gtk.HBox() + self.GUI["previewBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["previewBox"], padding = style.DEFAULT_PADDING ) - self.GUI["previewEventBox"] = gtk.EventBox() - self.GUI["previewEventBox"].add_events(gtk.gdk.POINTER_MOTION_MASK|gtk.gdk.POINTER_MOTION_HINT_MASK) + self.GUI["previewEventBox"] = Gtk.EventBox() + self.GUI["previewEventBox"].add_events(Gdk.EventMask.POINTER_MOTION_MASK|Gdk.EventMask.POINTER_MOTION_HINT_MASK) self.GUI["previewEventBox"].connect( "button-press-event", self.handlePreviewPress ) self.GUI["previewEventBox"].connect( "button-release-event", self.handlePreviewRelease ) self.GUI["previewEventBox"].connect( "motion-notify-event", self.handlePreviewMotion ) self.GUI["previewEventBox"].connect( "leave-notify-event", self.handlePreviewLeave ) self.GUI["previewBox"].pack_start( self.GUI["previewEventBox"], True, padding = style.DEFAULT_PADDING ) - self.previewDA = self.GUI["previewDA"] = gtk.DrawingArea() + self.previewDA = self.GUI["previewDA"] = Gtk.DrawingArea() self.GUI["previewDA"].connect( "size-allocate", self.handlePreviewAlloc ) self.GUI["previewDA"].connect( "expose-event", self.handlePreviewExpose ) self.GUI["previewEventBox"].add( self.GUI["previewDA"] ) @@ -436,8 +434,8 @@ class Loop( Popup ): self.previewDA.alloced = False self.previewDirty = False - self.previewDirtyRect = gtk.gdk.Rectangle( 0, 0, 0, 0 ) - self.dirtyRectToAdd = gtk.gdk.Rectangle( 0, 0, 0, 0 ) + self.previewDirtyRect = ( 0, 0, 0, 0 ) + self.dirtyRectToAdd = ( 0, 0, 0, 0 ) self.sampleBg = self.owner.sampleBg self.GUI["previewDA"].set_size_request( -1, self.sampleBg.get_size()[1] ) @@ -452,12 +450,12 @@ class Loop( Popup ): self.cursor = { \ "default": None, \ - "drag-onset": gtk.gdk.Cursor(gtk.gdk.SB_RIGHT_ARROW), \ - "drag-pitch": gtk.gdk.Cursor(gtk.gdk.BOTTOM_SIDE), \ - "drag-duration": gtk.gdk.Cursor(gtk.gdk.RIGHT_SIDE), \ - "drag-playhead": gtk.gdk.Cursor(gtk.gdk.SB_H_DOUBLE_ARROW), \ - "pencil": gtk.gdk.Cursor(gtk.gdk.PENCIL), \ - "paste": gtk.gdk.Cursor(gtk.gdk.CENTER_PTR), \ + "drag-onset": Gdk.Cursor.new(Gdk.SB_RIGHT_ARROW), \ + "drag-pitch": Gdk.Cursor.new(Gdk.BOTTOM_SIDE), \ + "drag-duration": Gdk.Cursor.new(Gdk.RIGHT_SIDE), \ + "drag-playhead": Gdk.Cursor.new(Gdk.SB_H_DOUBLE_ARROW), \ + "pencil": Gdk.Cursor.new(Gdk.PENCIL), \ + "paste": Gdk.Cursor.new(Gdk.CursorType.CENTER_PTR), \ "error": None } self.recording = False @@ -600,8 +598,8 @@ class Loop( Popup ): self.clickButton = event.button - if event.type == gtk.gdk._2BUTTON_PRESS: self.buttonPressCount = 2 - elif event.type == gtk.gdk._3BUTTON_PRESS: self.buttonPressCount = 3 + if event.type == Gdk._2BUTTON_PRESS: self.buttonPressCount = 2 + elif event.type == Gdk._3BUTTON_PRESS: self.buttonPressCount = 3 else: self.buttonPressCount = 1 self.clickLoc = [ int(event.x), int(event.y) ] @@ -682,7 +680,7 @@ class Loop( Popup ): self.updateTooltip( event ) return - if event.state & gtk.gdk.BUTTON1_MASK: + if event.get_state() & Gdk.ModifierType.BUTTON1_MASK: if not self.curAction: # no action is in progress yet we're dragging, start a marquee self.setCurrentAction( "marquee", self ) @@ -708,11 +706,11 @@ class Loop( Popup ): def handlePreviewAlloc( self, widget, allocation ): self.previewDA.alloced = True - win = gtk.gdk.get_default_root_window() + win = Gdk.get_default_root_window() self.previewDA.width = allocation.width self.previewDA.height = allocation.height - self.previewBuffer = gtk.gdk.Pixmap( win, allocation.width, allocation.height ) - self.clearClipMask = gtk.gdk.Rectangle( 0, 0, allocation.width, allocation.height ) + self.previewBuffer = Gdk.Pixmap( win, allocation.width, allocation.height ) + self.clearClipMask = ( 0, 0, allocation.width, allocation.height ) self.pixelsPerTick = [0] + [ self.previewDA.width/float(i*Config.TICKS_PER_BEAT) for i in range(1,Config.MAXIMUM_BEATS+1) ] self.ticksPerPixel = [0] + [ 1.0/self.pixelsPerTick[i] for i in range(1,Config.MAXIMUM_BEATS+1) ] @@ -730,7 +728,7 @@ class Loop( Popup ): keyval = event.keyval # backspace and del keys - if keyval == gtk.keysyms.Delete or keyval == gtk.keysyms.BackSpace: + if keyval == Gdk.KEY_Delete or keyval == Gdk.KEY_BackSpace: if len( self.selectedNotes[0] ): self.owner.noteDB.deleteNotes( [ self.curPage, self.activeTrack, len( self.selectedNotes[0] ) ] @@ -762,7 +760,7 @@ class Loop( Popup ): self.previewBuffer.draw_drawable( self.gc, self.sampleBg, self.sampleBg.endOffset, 0, self.previewDA.width-5, 0, 5, self.previewDA.height ) # draw beat lines - self.gc.set_line_attributes( Config.BEAT_LINE_SIZE, gtk.gdk.LINE_ON_OFF_DASH, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) + self.gc.set_line_attributes( Config.BEAT_LINE_SIZE, Gdk.LINE_ON_OFF_DASH, Gdk.CAP_BUTT, Gdk.JOIN_MITER ) self.gc.foreground = self.colors["Beat_Line"] for i in range(1,beats): x = self.beatSpacing[beats][i] @@ -786,12 +784,12 @@ class Loop( Popup ): widget.window.draw_drawable( self.gc, self.previewBuffer, event.area.x, event.area.y, event.area.x, event.area.y, event.area.width, event.area.height ) if self.marqueeLoc: # draw the selection rect - self.gc.set_line_attributes( Config.MARQUEE_SIZE, gtk.gdk.LINE_ON_OFF_DASH, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) + self.gc.set_line_attributes( Config.MARQUEE_SIZE, Gdk.LINE_ON_OFF_DASH, Gdk.CAP_BUTT, Gdk.JOIN_MITER ) self.gc.foreground = self.colors["Preview_Note_Selected"] widget.window.draw_rectangle( self.gc, False, self.marqueeRect[0][0], self.marqueeRect[0][1], self.marqueeRect[1][0], self.marqueeRect[1][1] ) if self.recording: # draw playhead - self.gc.set_line_attributes( Config.PLAYHEAD_SIZE, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) + self.gc.set_line_attributes( Config.PLAYHEAD_SIZE, Gdk.LINE_SOLID, Gdk.CAP_BUTT, Gdk.JOIN_MITER ) self.gc.foreground = self.colors["black"] widget.window.draw_line( self.gc, self.playheadX, event.area.y, self.playheadX, event.area.y + event.area.height ) @@ -837,14 +835,14 @@ class Loop( Popup ): self.recordLoop = self.owner._playLoop( self.instrument["id"], self.instrument["amplitude"], self.instrument["reverb"], [ self.curPage ], force = True, sync = False ) self.updatePlayhead() - self.recordTimeout = gobject.timeout_add( 20, self._record_timeout ) + self.recordTimeout = GObject.timeout_add( 20, self._record_timeout ) self.recording = True def stopRecording( self ): if not self.recording: return - gobject.source_remove( self.recordTimeout ) + GObject.source_remove( self.recordTimeout ) self.recording = False if self.recordingNote: @@ -1359,7 +1357,7 @@ class Shortcut( Popup ): self.GUI = {} - self.GUI["mainBox"] = gtk.VBox() + self.GUI["mainBox"] = Gtk.VBox() self.set_content( self.GUI["mainBox"] ) #-- Keys ---------------------------------------------- @@ -1369,21 +1367,21 @@ class Shortcut( Popup ): [ 1.7, [ 47, 48, 51 ] ], [ 1.1, [ 60, 61 ] ] ] - self.GUI["keyBox"] = gtk.VBox() + self.GUI["keyBox"] = Gtk.VBox() self.GUI["mainBox"].pack_start( self.GUI["keyBox"], padding = style.DEFAULT_PADDING - 2 ) for row in layout: offset = row[0] - hbox = gtk.HBox() + hbox = Gtk.HBox() self.GUI["keyBox"].pack_start( hbox, padding = 2 ) - separator = gtk.Label("") + separator = Gtk.Label(label="") separator.set_size_request( int(Block.Block.KEYSIZE*row[0]) + style.DEFAULT_PADDING, -1 ) hbox.pack_start( separator, False ) - separator = gtk.Label("") + separator = Gtk.Label(label="") separator.set_size_request( style.DEFAULT_PADDING, -1 ) hbox.pack_end( separator, False ) for key in row[1]: - self.GUI[key] = gtk.ToggleButton() + self.GUI[key] = Gtk.ToggleButton() self.GUI[key].connect( "expose-event", self.keyExpose ) self.GUI[key].connect( "toggled", self.keyToggled ) self.GUI[key].set_size_request( Block.Block.KEYSIZE, Block.Block.KEYSIZE ) @@ -1393,9 +1391,9 @@ class Shortcut( Popup ): hbox.pack_start( self.GUI[key], False, padding = 2 ) #-- None ---------------------------------------------- - self.GUI["noneBox"] = gtk.HBox() + self.GUI["noneBox"] = Gtk.HBox() self.GUI["mainBox"].pack_start( self.GUI["noneBox"], padding = style.DEFAULT_PADDING ) - self.GUI["noneButton"] = gtk.Button( _("None") ) + self.GUI["noneButton"] = Gtk.Button( _("None") ) self.GUI["noneButton"].connect( "clicked", self.handleNone ) self.GUI["noneBox"].pack_start( self.GUI["noneButton"], True, False, padding = style.DEFAULT_PADDING ) diff --git a/Jam/Toolbars.py b/Jam/Toolbars.py index 23da473..7d54a10 100644 --- a/Jam/Toolbars.py +++ b/Jam/Toolbars.py @@ -1,41 +1,39 @@ - -import pygtk -pygtk.require('2.0') -import gtk -import gobject +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import GObject import os, commands from gettext import gettext as _ -from sugar.graphics.palette import Palette, WidgetInvoker -from sugar.graphics.radiotoolbutton import RadioToolButton -from sugar.graphics.toolbutton import ToolButton -from sugar.graphics.toggletoolbutton import ToggleToolButton -from sugar.graphics.combobox import ComboBox -from sugar.graphics.toolcombobox import ToolComboBox +from sugar3.graphics.palette import Palette, WidgetInvoker +from sugar3.graphics.radiotoolbutton import RadioToolButton +from sugar3.graphics.toolbutton import ToolButton +from sugar3.graphics.toggletoolbutton import ToggleToolButton +from sugar3.graphics.combobox import ComboBox +from sugar3.graphics.toolcombobox import ToolComboBox from common.Util.ThemeWidgets import * import common.Config as Config from common.Util import OS -class JamToolbar(gtk.Toolbar): +class JamToolbar(Gtk.Toolbar): def __init__(self, owner): - gtk.Toolbar.__init__(self) + GObject.GObject.__init__(self) self.owner = owner self.toolItem = {} - self.volumeImg = gtk.Image() + self.volumeImg = Gtk.Image() self._insert_separator(True) - self.volumeAdjustment = gtk.Adjustment(0.0, 0, 1.0, 0.1, 0.1, 0) + self.volumeAdjustment = Gtk.Adjustment(0.0, 0, 1.0, 0.1, 0.1, 0) self.volumeAdjustment.connect('value-changed', self.handleVolume) - self.volumeSlider = gtk.HScale(adjustment=self.volumeAdjustment) + self.volumeSlider = Gtk.HScale(adjustment=self.volumeAdjustment) self.volumeSlider.set_size_request(260, -1) self.volumeSlider.set_draw_value(False) self._add_tooltip(self.volumeSlider, _("Master volume")) @@ -44,18 +42,18 @@ class JamToolbar(gtk.Toolbar): self._insert_separator(True) - self.tempoImg = gtk.Image() + self.tempoImg = Gtk.Image() # used to store tempo updates while the slider is active self.delayedTempo = 0 self.tempoSliderActive = False - self.tempoAdjustment = gtk.Adjustment( + self.tempoAdjustment = Gtk.Adjustment( Config.PLAYER_TEMPO_LOWER, Config.PLAYER_TEMPO_LOWER, Config.PLAYER_TEMPO_UPPER + 1, 10, 10, 0) self.tempoAdjustmentHandler = self.tempoAdjustment.connect( 'value-changed', self.handleTempo) - self.tempoSlider = gtk.HScale(adjustment=self.tempoAdjustment) + self.tempoSlider = Gtk.HScale(adjustment=self.tempoAdjustment) self.tempoSlider.set_size_request(260, -1) self.tempoSlider.set_draw_value(False) self.tempoSlider.connect("button-press-event", @@ -81,12 +79,12 @@ class JamToolbar(gtk.Toolbar): self._add_palette(widget, Palette(tooltip)) def _insert_widget(self, widget, pos): - self.toolItem[widget] = gtk.ToolItem() + self.toolItem[widget] = Gtk.ToolItem() self.toolItem[widget].add(widget) self.insert(self.toolItem[widget], pos) def _insert_separator(self, expand=False): - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(expand) self.insert(separator, -1) @@ -159,10 +157,10 @@ def common_playback_buttons(toolbar, owner): toolbar.muteButton.set_tooltip(_('Mute Loops')) -class PlaybackToolbar(gtk.Toolbar): +class PlaybackToolbar(Gtk.Toolbar): def __init__(self, owner): - gtk.Toolbar.__init__(self) + GObject.GObject.__init__(self) self.owner = owner @@ -172,10 +170,10 @@ class PlaybackToolbar(gtk.Toolbar): self.show_all() -class BeatToolbar(gtk.Toolbar): +class BeatToolbar(Gtk.Toolbar): def __init__(self, owner): - gtk.Toolbar.__init__(self) + GObject.GObject.__init__(self) self.owner = owner @@ -199,8 +197,8 @@ class BeatToolbar(gtk.Toolbar): self.insert(btn, -1) self.beatWheel.append(btn) - label = gtk.Label(_("Synch to:")) - self.syncLabel = gtk.ToolItem() + label = Gtk.Label(label=_("Synch to:")) + self.syncLabel = Gtk.ToolItem() self.syncLabel.add(label) self.insert(self.syncLabel, 0) @@ -235,12 +233,12 @@ class BeatToolbar(gtk.Toolbar): self._add_palette(widget, Palette(tooltip)) def _insert_widget(self, widget, pos): - self.toolItem[widget] = gtk.ToolItem() + self.toolItem[widget] = Gtk.ToolItem() self.toolItem[widget].add(widget) self.insert(self.toolItem[widget], pos) def _insert_separator(self, expand=False): - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(expand) self.insert(separator, -1) @@ -267,10 +265,10 @@ class BeatToolbar(gtk.Toolbar): self.owner._setSyncBeats(beats) -class DesktopToolbar(gtk.Toolbar): +class DesktopToolbar(Gtk.Toolbar): def __init__(self, owner): - gtk.Toolbar.__init__(self) + GObject.GObject.__init__(self) self.owner = owner @@ -298,7 +296,7 @@ class DesktopToolbar(gtk.Toolbar): self.show_all() def _insert_separator(self, expand=False): - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.set_draw(False) separator.set_expand(expand) self.insert(separator, -1) @@ -311,13 +309,13 @@ class DesktopToolbar(gtk.Toolbar): self.owner._setDesktop(which) -class RecordToolbar(gtk.Toolbar): +class RecordToolbar(Gtk.Toolbar): def __init__(self, jam): - gtk.Toolbar.__init__(self) + GObject.GObject.__init__(self) def _insertSeparator(x=1): for i in range(x): - self.separator = gtk.SeparatorToolItem() + self.separator = Gtk.SeparatorToolItem() self.separator.set_draw(True) self.insert(self.separator, -1) self.separator.show() @@ -372,7 +370,7 @@ class LoopSettingsPalette(Palette): self.jam = jam - self.tooltips = gtk.Tooltips() + self.tooltips = Gtk.Tooltips() self.loopedSound = False self.soundLength = 1.00 self.start = 0 @@ -382,14 +380,14 @@ class LoopSettingsPalette(Palette): self.register = 0 self.ok = True - self.mainBox = gtk.VBox() + self.mainBox = Gtk.VBox() - self.controlsBox = gtk.HBox() + self.controlsBox = Gtk.HBox() self.GUI = {} - self.soundBox = gtk.HBox() - self.soundLabel = gtk.Label(_('Sound: ')) + self.soundBox = Gtk.HBox() + self.soundLabel = Gtk.Label(label=_('Sound: ')) self.soundMenuBox = BigComboBox() self.sounds = [snd for snd in os.listdir(Config.DATA_DIR) \ if snd != 'snds_info'] @@ -401,16 +399,16 @@ class LoopSettingsPalette(Palette): self.mainBox.pack_start(self.soundBox, False, False, 10) - nameBox = gtk.VBox() - self.nameEntry = gtk.Entry() - entrycolor = gtk.gdk.Color() - self.nameEntry.modify_text(gtk.STATE_NORMAL, entrycolor) + nameBox = Gtk.VBox() + self.nameEntry = Gtk.Entry() + entrycolor = Gdk.Color() + self.nameEntry.modify_text(Gtk.StateType.NORMAL, entrycolor) self.nameEntry.set_text("name_of_the_sound") - nameBox.pack_start(self.nameEntry) + nameBox.pack_start(self.nameEntry, True, True, 0) self.mainBox.pack_start(nameBox, False, False, 10) - registerBox = gtk.HBox() - self.registerBoxLabel = gtk.Label(_('Register: ')) + registerBox = Gtk.HBox() + self.registerBoxLabel = Gtk.Label(label=_('Register: ')) self.registerMenuBox = BigComboBox() self.registers = ['LOW', 'MID', 'HIGH', 'PUNCH'] for reg in self.registers: @@ -420,17 +418,17 @@ class LoopSettingsPalette(Palette): registerBox.pack_end(self.registerMenuBox, False, False, padding=10) self.mainBox.pack_start(registerBox, False, False, 10) - loopedBox = gtk.HBox() - loopedLabel = gtk.Label("Looped sound: ") + loopedBox = Gtk.HBox() + loopedLabel = Gtk.Label(label="Looped sound: ") loopedToggle = ImageToggleButton('checkOff.png', 'checkOn.png') loopedToggle.connect('button-press-event', self.handleLooped) loopedBox.pack_start(loopedLabel, False, False, padding=10) loopedBox.pack_end(loopedToggle, False, False, padding=10) self.mainBox.pack_start(loopedBox, False, False, 10) - startBox = gtk.VBox() - self.startAdjust = gtk.Adjustment(0.01, 0, 1., .001, .001, 0) - self.GUI['startSlider'] = gtk.VScale(adjustment=self.startAdjust) + startBox = Gtk.VBox() + self.startAdjust = Gtk.Adjustment(0.01, 0, 1., .001, .001, 0) + self.GUI['startSlider'] = Gtk.VScale(adjustment=self.startAdjust) self.startAdjust.connect("value-changed", self.handleStart) self.GUI['startSlider'].set_inverted(True) self.GUI['startSlider'].set_size_request(50, 200) @@ -439,54 +437,54 @@ class LoopSettingsPalette(Palette): #self._add_tooltip(self.GUI['startSlider'], _("Loop start position")) self.handleStart(self.startAdjust) startBox.pack_start(self.GUI['startSlider'], True, True, 5) - self.controlsBox.pack_start(startBox) + self.controlsBox.pack_start(startBox, True, True, 0) - endBox = gtk.VBox() - self.endAdjust = gtk.Adjustment(0.9, 0, 1, .001, .001, 0) - self.GUI['endSlider'] = gtk.VScale(adjustment=self.endAdjust) + endBox = Gtk.VBox() + self.endAdjust = Gtk.Adjustment(0.9, 0, 1, .001, .001, 0) + self.GUI['endSlider'] = Gtk.VScale(adjustment=self.endAdjust) self.endAdjust.connect("value-changed", self.handleEnd) self.GUI['endSlider'].set_inverted(True) self.GUI['endSlider'].set_size_request(50, 200) self.GUI['endSlider'].set_digits(3) self.handleEnd(self.endAdjust) endBox.pack_start(self.GUI['endSlider'], True, True, 5) - self.controlsBox.pack_start(endBox) + self.controlsBox.pack_start(endBox, True, True, 0) - durBox = gtk.VBox() - self.durAdjust = gtk.Adjustment(0.01, 0, 0.2, .001, .001, 0) - self.GUI['durSlider'] = gtk.VScale(adjustment=self.durAdjust) + durBox = Gtk.VBox() + self.durAdjust = Gtk.Adjustment(0.01, 0, 0.2, .001, .001, 0) + self.GUI['durSlider'] = Gtk.VScale(adjustment=self.durAdjust) self.durAdjust.connect("value-changed", self.handleDur) self.GUI['durSlider'].set_inverted(True) self.GUI['durSlider'].set_size_request(50, 200) self.GUI['durSlider'].set_digits(3) self.handleDur(self.durAdjust) durBox.pack_start(self.GUI['durSlider'], True, True, 5) - self.controlsBox.pack_start(durBox) + self.controlsBox.pack_start(durBox, True, True, 0) - volBox = gtk.VBox() - self.volAdjust = gtk.Adjustment(1, 0, 2, .01, .01, 0) - self.GUI['volSlider'] = gtk.VScale(adjustment=self.volAdjust) + volBox = Gtk.VBox() + self.volAdjust = Gtk.Adjustment(1, 0, 2, .01, .01, 0) + self.GUI['volSlider'] = Gtk.VScale(adjustment=self.volAdjust) self.volAdjust.connect("value-changed", self.handleVol) self.GUI['volSlider'].set_inverted(True) self.GUI['volSlider'].set_size_request(50, 200) self.GUI['volSlider'].set_digits(3) self.handleVol(self.volAdjust) volBox.pack_start(self.GUI['volSlider'], True, True, 5) - self.controlsBox.pack_start(volBox) + self.controlsBox.pack_start(volBox, True, True, 0) self.mainBox.pack_start(self.controlsBox, False, False, 10) - previewBox = gtk.VBox() + previewBox = Gtk.VBox() self.playStopButton = ImageToggleButton('miniplay.png', 'stop.png') self.playStopButton.connect('button-press-event', self.handlePlayButton) - previewBox.pack_start(self.playStopButton) + previewBox.pack_start(self.playStopButton, True, True, 0) self.mainBox.pack_start(previewBox, False, False, 10) - checkBox = gtk.VBox() + checkBox = Gtk.VBox() checkButton = ImageButton(Config.TAM_TAM_ROOT + '/icons/accept.svg') checkButton.connect('clicked', self.handleCheck) - checkBox.pack_start(checkButton) + checkBox.pack_start(checkButton, True, True, 0) self.mainBox.pack_start(checkBox, False, False, 10) self.mainBox.show_all() @@ -526,11 +524,11 @@ class LoopSettingsPalette(Palette): self.startAdjust.set_all(0.01, 0, soundLength, .001, .001, 0) self.endAdjust.set_all( soundLength - 0.01, 0, soundLength, .001, .001, 0) - self.timeoutLoad = gobject.timeout_add(2000, self.loopSettingsDelay) + self.timeoutLoad = GObject.timeout_add(2000, self.loopSettingsDelay) def loopSettingsDelay(self): self.jam.load_ls_instrument(self.sndname) - gobject.source_remove(self.timeoutLoad) + GObject.source_remove(self.timeoutLoad) def handleCheck(self, widget): if self.nameEntry.get_text() != self.sndname: @@ -607,7 +605,7 @@ class LoopSettingsPalette(Palette): self.jam.loopSettingsPlayStop(widget.get_active(), self.loopedSound) if self.loopedSound == False and widget.get_active() == False: - self.timeoutStop = gobject.timeout_add( + self.timeoutStop = GObject.timeout_add( int(self.soundLength * 1000) + 500, self.playButtonState) def setButtonState(self): @@ -618,5 +616,5 @@ class LoopSettingsPalette(Palette): def playButtonState(self): self.ok = False self.playStopButton.set_active(False) - gobject.source_remove(self.timeoutStop) + GObject.source_remove(self.timeoutStop) self.ok = True diff --git a/TamTamJam.py b/TamTamJam.py index e419aa6..ab34bdc 100644 --- a/TamTamJam.py +++ b/TamTamJam.py @@ -20,19 +20,14 @@ import locale locale.setlocale(locale.LC_NUMERIC, 'C') -import signal import time import sys import os import shutil -import pygtk -pygtk.require('2.0') -import gtk +from gi.repository import Gtk +from gi.repository import Gdk import logging -import gobject -import time - import common.Config as Config from common.Util.CSoundClient import new_csound_client from common.Util.Profiler import TP @@ -41,11 +36,11 @@ from Jam.JamMain import JamMain from common.Util.Trackpad import Trackpad from gettext import gettext as _ import commands -from sugar.activity import activity +from sugar3.activity import activity if Config.HAVE_TOOLBOX: - from sugar.graphics.toolbarbox import ToolbarBox - from sugar.activity import widgets + from sugar3.graphics.toolbarbox import ToolbarBox + from sugar3.activity import widgets class TamTamJam(activity.Activity): @@ -53,7 +48,7 @@ class TamTamJam(activity.Activity): # !!!!!! initialize threading in gtk !!!!! # ! this is important for the networking ! # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - gtk.gdk.threads_init() + Gdk.threads_init() activity.Activity.__init__(self, handle) @@ -62,8 +57,8 @@ class TamTamJam(activity.Activity): shutil.copyfile(Config.SOUNDS_DIR + '/' + snd, Config.DATA_DIR + '/' + snd) os.system('chmod 0777 ' + Config.DATA_DIR + '/' + snd + ' &') - color = gtk.gdk.color_parse(Config.WS_BCK_COLOR) - self.modify_bg(gtk.STATE_NORMAL, color) + color = Gdk.color_parse(Config.WS_BCK_COLOR) + self.modify_bg(Gtk.StateType.NORMAL, color) self.set_title('TamTam Jam') self.set_resizable(False) @@ -79,7 +74,7 @@ class TamTamJam(activity.Activity): if Config.HAVE_TOOLBOX: self.toolbox = ToolbarBox() self.toolbox.toolbar.insert(widgets.ActivityToolbarButton(self), -1) - self.toolbox.toolbar.insert(gtk.SeparatorToolItem(), -1) + self.toolbox.toolbar.insert(Gtk.SeparatorToolItem(), -1) else: self.toolbox = activity.ActivityToolbox(self) self.set_toolbox(self.toolbox) @@ -97,7 +92,7 @@ class TamTamJam(activity.Activity): self.jam.onActivate(arg=None) if Config.HAVE_TOOLBOX: - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) self.toolbox.toolbar.insert(separator, -1) @@ -150,7 +145,7 @@ class TamTamJam(activity.Activity): csnd.connect(False) csnd.destroy() - gtk.main_quit() + Gtk.main_quit() def ensure_dir(self, dir, perms=0777, rw=os.R_OK | os.W_OK): if not os.path.isdir(dir): -- cgit v0.9.1