From 8e4368840302ddf1239640de3bc1855be61b8d40 Mon Sep 17 00:00:00 2001 From: Aaron Gordon Date: Thu, 03 Jan 2013 23:30:39 +0000 Subject: Ported some toolbars to Gtk3. Fixed part of the TrackInterface --- diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py index de85625..b4fe190 100644 --- a/Edit/EditToolbars.py +++ b/Edit/EditToolbars.py @@ -117,7 +117,7 @@ class mainToolbar(Gtk.Toolbar): self.edit = edit - #self.tooltips = gtk.Tooltips() + #self.tooltips = Gtk.Tooltips() common_buttons(self, self.edit) @@ -128,7 +128,7 @@ class generateToolbar(Gtk.Toolbar): self.edit = edit - #self.tooltips = gtk.Tooltips() + #self.tooltips = Gtk.Tooltips() # BigGeneration button self.bigGenerationButton = ToolButton('diceB') @@ -152,7 +152,7 @@ class recordToolbar(Gtk.Toolbar): self.edit = edit - #self.tooltips = gtk.Tooltips() + #self.tooltips = Gtk.Tooltips() # Record button self.recordButton = ToggleToolButton('recordK') @@ -176,7 +176,7 @@ class toolsToolbar(Gtk.Toolbar): self.edit = edit - #self.tooltips = gtk.Tooltips() + #self.tooltips = Gtk.Tooltips() # Volume / Tempo button self._volumeTempoPalette = volumeTempoPalette(_('Volume / Tempo'), self.edit) @@ -353,8 +353,8 @@ class volumeTempoPalette(Palette): self.tempoSliderBox.pack_start(self.tempoSliderLabel, False, False, padding = 5) self.tempoSliderBox.pack_end(self.tempoSlider, False, False, padding = 5) - self.volumeTempoBox.pack_start(self.volumeSliderBox, padding = 5) - self.volumeTempoBox.pack_start(self.tempoSliderBox, padding = 5) + self.volumeTempoBox.pack_start(self.volumeSliderBox, False, False, padding = 5) + self.volumeTempoBox.pack_start(self.tempoSliderBox, False, False, padding = 5) self.volumeTempoBox.show_all() self.set_content(self.volumeTempoBox) @@ -391,14 +391,14 @@ class generationPalette(Palette): self.YSlider1Img = Gtk.Image() self.YSlider1Img.set_from_file(Config.TAM_TAM_ROOT + '/icons/updownR.svg') self.YSlider1BottomLabel = Gtk.Label(_('Regularity')) - self.XYSliderBox1 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') - self.XYSliderBox1.set_size_request(200,200) + #self.XYSliderBox1 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') + #self.XYSliderBox1.set_size_request(200,200) self.XYButton1 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') self.XAdjustment1 = Gtk.Adjustment(self.rythmDensity[0] * 100, 0, 100, 1, 1, 1) self.XAdjustment1.connect("value-changed", self.handleXAdjustment1) self.YAdjustment1 = Gtk.Adjustment(self.rythmRegularity[0] * 100, 0, 100, 1, 1, 1) self.YAdjustment1.connect("value-changed", self.handleYAdjustment1) - self.XYSlider1 = XYSlider( self.XYSliderBox1, self.XYButton1, self.XAdjustment1, self.YAdjustment1, False, True ) + #self.XYSlider1 = XYSlider( self.XYSliderBox1, self.XYButton1, self.XAdjustment1, self.YAdjustment1, False, True ) self.XSlider1BottomLabelBox.pack_start(self.XSlider1Img, False, False, padding = 5) self.XSlider1BottomLabelBox.pack_start(self.XSlider1BottomLabel, False, False, padding = 5) self.YSlider1BottomLabelBox.pack_start(self.YSlider1Img, False, False, padding = 5) @@ -418,14 +418,14 @@ class generationPalette(Palette): self.YSlider2Img = Gtk.Image() self.YSlider2Img.set_from_file(Config.TAM_TAM_ROOT + '/icons/updownR.svg') self.YSlider2BottomLabel = Gtk.Label(_('Maximum step')) - self.XYSliderBox2 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') - self.XYSliderBox2.set_size_request(200,200) + #self.XYSliderBox2 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') + #self.XYSliderBox2.set_size_request(200,200) self.XYButton2 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') self.XAdjustment2 = Gtk.Adjustment(self.pitchRegularity[0] * 100, 0, 100, 1, 1, 1) self.XAdjustment2.connect("value-changed", self.handleXAdjustment2) self.YAdjustment2 = Gtk.Adjustment(self.pitchStep[0] * 100, 0, 100, 1, 1, 1) self.YAdjustment2.connect("value-changed", self.handleYAdjustment2) - self.XYSlider2 = XYSlider( self.XYSliderBox2, self.XYButton2, self.XAdjustment2, self.YAdjustment2, False, True ) + #self.XYSlider2 = XYSlider( self.XYSliderBox2, self.XYButton2, self.XAdjustment2, self.YAdjustment2, False, True ) self.XSlider2BottomLabelBox.pack_start(self.XSlider2Img, False, False, padding = 5) self.XSlider2BottomLabelBox.pack_start(self.XSlider2BottomLabel, False, False, padding = 5) self.YSlider2BottomLabelBox.pack_start(self.YSlider2Img, False, False, padding = 5) @@ -445,14 +445,14 @@ class generationPalette(Palette): self.YSlider3Img = Gtk.Image() self.YSlider3Img.set_from_file(Config.TAM_TAM_ROOT + '/icons/updownR.svg') self.YSlider3BottomLabel = Gtk.Label(_('Silence density')) - self.XYSliderBox3 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') - self.XYSliderBox3.set_size_request(200,200) + #self.XYSliderBox3 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') + #self.XYSliderBox3.set_size_request(200,200) self.XYButton3 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') self.XAdjustment3 = Gtk.Adjustment(self.duration[0] * 100, 0, 100, 1, 1, 1) self.XAdjustment3.connect("value-changed", self.handleXAdjustment3) self.YAdjustment3 = Gtk.Adjustment(self.silence[0] * 100, 0, 100, 1, 1, 1) self.YAdjustment3.connect("value-changed", self.handleYAdjustment3) - self.XYSlider3 = XYSlider( self.XYSliderBox3, self.XYButton3, self.XAdjustment3, self.YAdjustment3, False, True ) + #self.XYSlider3 = XYSlider( self.XYSliderBox3, self.XYButton3, self.XAdjustment3, self.YAdjustment3, False, True ) self.XSlider3BottomLabelBox.pack_start(self.XSlider3Img, False, False, padding = 5) self.XSlider3BottomLabelBox.pack_start(self.XSlider3BottomLabel, False, False, padding = 5) self.YSlider3BottomLabelBox.pack_start(self.YSlider3Img, False, False, padding = 5) @@ -822,7 +822,7 @@ class propertiesPalette(Palette): self.gridDivisionSlider.set_digits(0) self.gridDivisionSlider.connect('button-release-event', self.handleBeat) self.gridDivisionSlider.set_size_request(200,-1) - self.gridDivisionSlider.set_value_pos(Gtk.POS_RIGHT) + self.gridDivisionSlider.set_value_pos(Gtk.PositionType.RIGHT) self.gridDivisionBox.pack_start(self.gridDivisionLabel, False, False, padding = 5) self.gridDivisionBox.pack_end(self.gridDivisionSlider, False, False, padding = 52) @@ -876,7 +876,7 @@ class propertiesPalette(Palette): self.panSliderAdj.connect('value-changed', self.handlePan) self.panSlider = Gtk.HScale(adjustment = self.panSliderAdj) self.panSlider.set_size_request(200,-1) - #self.panSlider.set_value_pos(Gtk.POS_RIGHT) + self.panSlider.set_value_pos(Gtk.PositionType.RIGHT) self.panSlider.set_digits(2) #self.panSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) self.panCheckButton = Gtk.CheckButton() @@ -892,7 +892,7 @@ class propertiesPalette(Palette): self.reverbSliderAdj.connect("value-changed", self.handleReverb) self.reverbSlider = Gtk.HScale(adjustment = self.reverbSliderAdj) self.reverbSlider.set_size_request(200,-1) - #self.reverbSlider.set_value_pos(Gtk.POS_RIGHT) + self.reverbSlider.set_value_pos(Gtk.PositionType.RIGHT) self.reverbSlider.set_digits(2) #self.reverbSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) self.reverbCheckButton = Gtk.CheckButton() @@ -908,9 +908,9 @@ class propertiesPalette(Palette): self.attackDurSliderAdj.connect('value-changed', self.handleAttack) self.attackDurSlider = Gtk.HScale(adjustment = self.attackDurSliderAdj) self.attackDurSlider.set_size_request(200,-1) - #self.attackDurSlider.set_value_pos(gtk.POS_RIGHT) + self.attackDurSlider.set_value_pos(Gtk.PositionType.RIGHT) self.attackDurSlider.set_digits(2) - #self.attackDurSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) + #self.attackDurSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) self.attackDurCheckButton = Gtk.CheckButton() self.attackDurCheckButton.connect('toggled', self.handleGeneCheckButton) self.geneCheckButtonDic['attack'] = self.attackDurCheckButton @@ -924,9 +924,9 @@ class propertiesPalette(Palette): self.decayDurSliderAdj.connect('value-changed', self.handleDecay) self.decayDurSlider = Gtk.HScale(adjustment = self.decayDurSliderAdj) self.decayDurSlider.set_size_request(200,-1) - #self.decayDurSlider.set_value_pos(gtk.POS_RIGHT) + self.decayDurSlider.set_value_pos(Gtk.PositionType.RIGHT) self.decayDurSlider.set_digits(2) - #self.decayDurSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) + #self.decayDurSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) self.decayDurCheckButton = Gtk.CheckButton() self.decayDurCheckButton.connect('toggled', self.handleGeneCheckButton) self.geneCheckButtonDic['decay'] = self.decayDurCheckButton @@ -936,12 +936,12 @@ class propertiesPalette(Palette): self.filterTypeBox = Gtk.HBox() self.filterTypeLabel = Gtk.Label(_('Filter Type: ')) - #self.filterTypeComboBox = BigComboBox() - #for filtertype in self.filterTypes: - # self.filterTypeComboBox.append_item(self.filterTypes.index(filtertype), filtertype) - # self.filterTypeComboBox.connect('changed', self.handleFilterTypes) - #self.filterTypeBox.pack_start(self.filterTypeLabel, False, False, padding = 5) - #self.filterTypeBox.pack_end(self.filterTypeComboBox, False, False, padding = 55) + self.filterTypeComboBox = BigComboBox() + for filtertype in self.filterTypes: + self.filterTypeComboBox.append_item(self.filterTypes.index(filtertype), filtertype) + self.filterTypeComboBox.connect('changed', self.handleFilterTypes) + self.filterTypeBox.pack_start(self.filterTypeLabel, False, False, padding = 5) + self.filterTypeBox.pack_end(self.filterTypeComboBox, False, False, padding = 55) self.filterCutoffBox = Gtk.HBox() self.filterCutoffLabel = \ @@ -950,9 +950,9 @@ class propertiesPalette(Palette): self.filterCutoffSliderAdj.connect('value-changed', self.handleFilter) self.filterCutoffSlider = Gtk.HScale(adjustment = self.filterCutoffSliderAdj) self.filterCutoffSlider.set_size_request(200,-1) - s#elf.filterCutoffSlider.set_value_pos(gtk.POS_RIGHT) + self.filterCutoffSlider.set_value_pos(Gtk.PositionType.RIGHT) self.filterCutoffSlider.set_digits(0) - #self.filterCutoffSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) + #self.filterCutoffSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) self.filterCutoffCheckButton = Gtk.CheckButton() self.filterCutoffCheckButton.connect('toggled', self.handleGeneCheckButton) self.geneCheckButtonDic['filter'] = self.filterCutoffCheckButton @@ -966,13 +966,13 @@ class propertiesPalette(Palette): self.generationTypeBox = Gtk.HBox() self.generationTypeLabel = Gtk.Label(_('Type') + ': ') - #self.generationTypeComboBox = BigComboBox() - #for genetype in self.geneTypes: - # self.generationTypeComboBox.append_item(self.geneTypes.index(genetype), genetype) - #self.generationTypeComboBox.connect('changed', self.handleGeneTypes) - #self.generationTypeComboBox.set_active(0) - #self.generationTypeBox.pack_start(self.generationTypeLabel, False, False, padding = 5) - #self.generationTypeBox.pack_end(self.generationTypeComboBox, False, False, padding = 55) + self.generationTypeComboBox = BigComboBox() + for genetype in self.geneTypes: + self.generationTypeComboBox.append_item(self.geneTypes.index(genetype), genetype) + self.generationTypeComboBox.connect('changed', self.handleGeneTypes) + self.generationTypeComboBox.set_active(0) + self.generationTypeBox.pack_start(self.generationTypeLabel, False, False, padding = 5) + self.generationTypeBox.pack_end(self.generationTypeComboBox, False, False, padding = 55) self.minimumBox = Gtk.HBox() self.minimumLabel = Gtk.Label(_('Minimum') + ': ') @@ -980,8 +980,8 @@ class propertiesPalette(Palette): self.minimumSliderAdj.connect('value-changed', self.handleMinimum) self.minimumSlider = Gtk.HScale(adjustment = self.minimumSliderAdj) self.minimumSlider.set_size_request(200,-1) - #self.minimumSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) - #self.minimumSlider.set_value_pos(gtk.POS_RIGHT) + #self.minimumSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) + self.minimumSlider.set_value_pos(Gtk.PositionType.RIGHT) self.minimumSlider.set_digits(0) self.minimumBox.pack_start(self.minimumLabel, False, False, padding = 5) self.minimumBox.pack_end(self.minimumSlider, False, False, padding = 52) @@ -992,8 +992,8 @@ class propertiesPalette(Palette): self.maximumSliderAdj.connect('value-changed', self.handleMaximum) self.maximumSlider = Gtk.HScale(adjustment = self.maximumSliderAdj) self.maximumSlider.set_size_request(200,-1) - #self.maximumSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) - #self.maximumSlider.set_value_pos(gtk.POS_RIGHT) + #self.maximumSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) + self.maximumSlider.set_value_pos(Gtk.PositionType.RIGHT) self.maximumSlider.set_digits(0) self.maximumBox.pack_start(self.maximumLabel, False, False, padding = 5) self.maximumBox.pack_end(self.maximumSlider, False, False, padding = 52) @@ -1004,8 +1004,8 @@ class propertiesPalette(Palette): self.randomSliderAdj.connect('value-changed', self.handleRandom) self.randomSlider = Gtk.HScale(adjustment = self.randomSliderAdj) self.randomSlider.set_size_request(200,-1) - #self.randomSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS) - #self.randomSlider.set_value_pos(gtk.POS_RIGHT) + #self.randomSlider.set_update_policy(Gtk.UPDATE_DISCONTINUOUS) + self.randomSlider.set_value_pos(Gtk.PositionType.RIGHT) self.randomSlider.set_digits(0) self.randomBox.pack_start(self.randomLabel, False, False, padding = 5) self.randomBox.pack_end(self.randomSlider, False, False, padding = 52) diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py index e839dcd..95da077 100644 --- a/Edit/MainWindow.py +++ b/Edit/MainWindow.py @@ -11,11 +11,11 @@ from common.Util import ControlStream from common.Util.CSoundClient import new_csound_client from common.Util.CSoundNote import CSoundNote from common.Config import imagefile -#from EditToolbars import common_buttons -#from EditToolbars import mainToolbar -#from EditToolbars import recordToolbar -#from EditToolbars import generateToolbar -#from EditToolbars import toolsToolbar +from EditToolbars import common_buttons +from EditToolbars import mainToolbar +from EditToolbars import recordToolbar +from EditToolbars import generateToolbar +from EditToolbars import toolsToolbar from gettext import gettext as _ from subprocess import Popen from sugar3.graphics.palette import Palette, Invoker @@ -294,7 +294,6 @@ class MainWindow(Gtk.EventBox): #------------------------------------------------------------------------ # tune interface - # Commented out by Aaron if 1: # + tune interface self.GUI["2tuneScrolledWindow"] = HScrolledBox() self.tuneInterface = TuneInterface( self.noteDB, self, self.GUI["2tuneScrolledWindow"].get_adjustment() ) @@ -407,18 +406,17 @@ class MainWindow(Gtk.EventBox): # Toolbar if Config.HAVE_TOOLBOX: - pass #from sugar.graphics.toolbarbox import ToolbarButton - #common_buttons(self.activity.toolbox.toolbar, self) - #self._activity_toolbar = self.activity.toolbox.toolbar - #self._play_button = self.activity.toolbox.toolbar.playButton - #self._stop_button = self.activity.toolbox.toolbar.stopButton + common_buttons(self.activity.toolbox.toolbar, self) + self._activity_toolbar = self.activity.toolbox.toolbar + self._play_button = self.activity.toolbox.toolbar.playButton + self._stop_button = self.activity.toolbox.toolbar.stopButton - #separator = Gtk.SeparatorToolItem() - #separator.props.draw = True - #separator.set_expand(False) - #self.activity.toolbox.toolbar.insert(separator, -1) + separator = Gtk.SeparatorToolItem() + separator.props.draw = True + separator.set_expand(False) + self.activity.toolbox.toolbar.insert(separator, -1) #self._generateToolbar = generateToolbar(self) #self._generateToolbar.show() @@ -428,27 +426,27 @@ class MainWindow(Gtk.EventBox): #generate_toolbar_button.show() #self.activity.toolbox.toolbar.insert(generate_toolbar_button, -1) - #self._recordToolbar = recordToolbar(self) - #self._recordToolbar.show() - #record_toolbar_button = ToolbarButton(label=_('Record'), - # page=self._recordToolbar, - # icon_name='media-record') - #record_toolbar_button.show() - #self.activity.toolbox.toolbar.insert(record_toolbar_button, -1) - #self._record_button = self._recordToolbar.recordButton + self._recordToolbar = recordToolbar(self) + self._recordToolbar.show() + record_toolbar_button = ToolbarButton(label=_('Record'), + page=self._recordToolbar, + icon_name='media-record') + record_toolbar_button.show() + self.activity.toolbox.toolbar.insert(record_toolbar_button, -1) + self._record_button = self._recordToolbar.recordButton #self._toolsToolbar = toolsToolbar(self) #self._toolsToolbar.show() #tools_toolbar_button = ToolbarButton(label=_('Tools'), - # page=self._toolsToolbar, - # icon_name='preferences-system') + # page=self._toolsToolbar, + # icon_name='preferences-system') #tools_toolbar_button.show() #self.activity.toolbox.toolbar.insert(tools_toolbar_button, -1) - #separator = Gtk.SeparatorToolItem() - #separator.props.draw = False - #separator.set_expand(True) - #self.activity.toolbox.toolbar.insert(separator, -1) + separator = Gtk.SeparatorToolItem() + separator.props.draw = False + separator.set_expand(True) + self.activity.toolbox.toolbar.insert(separator, -1) else: pass #self._mainToolbar = mainToolbar(self) diff --git a/Edit/TrackInterface.py b/Edit/TrackInterface.py index b9f80c1..47208a8 100644 --- a/Edit/TrackInterface.py +++ b/Edit/TrackInterface.py @@ -134,11 +134,14 @@ class TrackInterface( Gtk.EventBox ): self.image = {} - def prepareDrawable( name, width = -1 ): - #pix = cairo.ImageSurface.create_from_png(imagefile(name + '.png')) - path = "common/Resources/Images/" - pix = cairo.ImageSurface.create_from_png(path + name + '.png') + def prepareDrawable( name, width ): + pix = cairo.ImageSurface.create_from_png(imagefile(name + '.png')) self.image[name] = pix + #surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, pix.get_height()) + #cxt = cairo.Context(surface) + #cxt.scale(1 , 1) + # cxt.set_source_surface(pix, 0, 0) + #self.image[name] = surface #if width != -1: # pix = pix.scale_simple(width, pix.get_height(), gtk.gdk.INTERP_BILINEAR) #self.image[name] = gtk.gdk.Pixmap( win, pix.get_width(), pix.get_height() ) @@ -1219,12 +1222,14 @@ class TrackInterface( Gtk.EventBox ): # draw background if self.owner.getTrackSelected( i ): - cxt.set_source_surface(self.image["trackBGSelected"], 0, 0) - cxt.paint() + cxt.set_source_surface(self.image["trackBGSelected"], 0, self.trackLimits[i][0]) + cxt.rectangle(0, self.trackLimits[i][0], self.trackFullWidth, self.trackFullHeight) + cxt.fill() #pixmap.draw_drawable( self.gc, self.image["trackBGSelected"], 0, 0, 0, self.trackLimits[i][0], self.trackFullWidth, self.trackFullHeight ) else: - cxt.set_source_surface(self.image["trackBG"], 0, 0) - cxt.paint() + cxt.set_source_surface(self.image["trackBG"], 0, self.trackLimits[i][0]) + cxt.rectangle(0, self.trackLimits[i][0], self.trackFullWidth, self.trackFullHeight) + cxt.fill() #pixmap.draw_drawable( self.gc, self.image["trackBG"], 0, 0, 0, self.trackLimits[i][0], self.trackFullWidth, self.trackFullHeight ) # draw beat lines @@ -1260,11 +1265,11 @@ class TrackInterface( Gtk.EventBox ): if resume[1] == 0: # draw background if self.owner.getTrackSelected( self.drumIndex ): - cxt.set_source_surface(self.image["trackBGDrumSelected"], 0, 0) + cxt.set_source_surface(self.image["trackBGDrumSelected"], 0, self.trackLimits[self.drumIndex][0]) cxt.paint() #pixmap.draw_drawable( self.gc, self.image["trackBGDrumSelected"], 0, 0, 0, self.trackLimits[self.drumIndex][0], self.trackFullWidth, self.trackFullHeightDrum ) else: - cxt.set_source_surface(self.image["trackBGDrum"], 0, 0) + cxt.set_source_surface(self.image["trackBGDrum"], 0, self.trackLimits[self.drumIndex][0]) cxt.paint() #pixmap.draw_drawable( self.gc, self.image["trackBGDrum"], 0, 0, 0, self.trackLimits[self.drumIndex][0], self.trackFullWidth, self.trackFullHeightDrum ) diff --git a/common/Util/ThemeWidgets.py b/common/Util/ThemeWidgets.py index a786761..808126b 100644 --- a/common/Util/ThemeWidgets.py +++ b/common/Util/ThemeWidgets.py @@ -8,6 +8,8 @@ from common.Config import imagefile from sugar3.graphics.combobox import ComboBox from sugar3.graphics.palette import Palette, WidgetInvoker +def gdk_color_to_cairo(color): + return (color.red/65536.0, color.green/65536.0, color.blue/65536.0) class ITYPE: PIXBUF = 0 @@ -615,11 +617,10 @@ class RoundFixed( Gtk.Fixed ): self.radius = radius - colormap = self.get_colormap() - self.fillcolor = colormap.alloc_color(fillcolor,True,True) - self.bordercolor = colormap.alloc_color(bordercolor,True,True) + self.fillcolor = Gdk.Color.parse(fillcolor) + self.bordercolor = Gdk.Color.parse(bordercolor) - self.connect( "expose-event", self.expose ) + self.connect( "draw", self.expose ) self.connect( "size-allocate", self.size_allocate ) def update_constants( self ): @@ -669,49 +670,48 @@ class RoundFixed( Gtk.Fixed ): self.update_constants() def set_fill_color( self, color ): - colormap = self.get_colormap() - self.fillcolor = colormap.alloc_color(color,True,True) + self.fillcolor = Gdk.Color.parse(color) def set_border_color( self, color ): - colormap = self.get_colormap() - self.bordercolor = colormap.alloc_color(color,True,True) + self.bordercolor = Gdk.Color.parse(color) - def expose( self, widget, event ): + def expose( self, widget, cr ): if self.alloc == None: return #TP.ProfileBegin( "Round*Box::expose" ) + area = widget.get_allocation() + startX = area.x - self.alloc.x + startY = area.y - self.alloc.y + stopX = startX + area.width + stopY = startY + area.height - style = self.get_style() - gc = style.fg_gc[gtk.STATE_NORMAL] - - startX = event.area.x - self.alloc.x - startY = event.area.y - self.alloc.y - stopX = startX + event.area.width - stopY = startY + event.area.height - - saveForeground = gc.foreground + #saveForeground = gc.foreground # Note: could maybe do some optimization to fill only areas that are within the dirty rect, but drawing # seems to be quite fast compared to python code, so just leave it at clipping by each geometry feature - gc.foreground = self.bordercolor + cr.set_source_rgb(*gdk_color_to_cairo(self.bordercolor)) if self.borderW: if stopY > self.corner and startY < self.heightMINcorner: if startX < self.borderW: # draw left border - self.window.draw_rectangle( gc, True, self.alloc.x, self.yPLUcorner, self.borderW, self.heightMINcornerMUL2 ) + cr.rectangle(self.alloc.x, self.yPLUcorner, self.borderW, self.heightMINcornerMUL2) + cr.fill() if stopX > self.widthMINborderW: # draw right border - self.window.draw_rectangle( gc, True, self.xPLUwidthMINborderW, self.yPLUcorner, self.borderW, self.heightMINcornerMUL2 ) + cr.rectangle(self.xPLUwidthMINborderW, self.yPLUcorner, self.borderW, self.heightMINcornerMUL2) + cr.fill() if stopX > self.corner and startX < self.widthMINcorner: if startY < self.borderW: # draw top border - self.window.draw_rectangle( gc, True, self.xPLUcorner, self.alloc.y, self.widthMINcornerMUL2, self.borderW ) + cr.rectangle(self.xPLUcorner, self.alloc.y, self.widthMINcornerMUL2, self.borderW) + cr.fill() if stopY > self.heightMINborderW: # draw bottom border - self.window.draw_rectangle( gc, True, self.xPLUcorner, self.yPLUheightMINborderW, self.widthMINcornerMUL2, self.borderW ) + cr.rectangle(self.xPLUcorner, self.yPLUheightMINborderW, self.widthMINcornerMUL2, self.borderW ) + cr.fill() if startX < self.corner: if startY < self.corner: # draw top left corner - self.window.draw_rectangle( gc, True, self.alloc.x, self.alloc.y, self.corner, self.corner ) + cr.rectangle(self.alloc.x, self.alloc.y, self.corner, self.corner ) gc.foreground = self.fillcolor self.window.draw_arc( gc, True, self.roundX1, self.roundY1, self.roundD, self.roundD, self.rightAngle, self.rightAngle ) gc.foreground = self.bordercolor @@ -1295,9 +1295,12 @@ class keyButton(Gtk.Button): class BigComboBox(Gtk.ComboBox): def __init__(self): Gtk.ComboBox.__init__(self) - self._model = Gtk.ListStore(int, str, GdkPixbuf.Pixbuf, bool) - self.set_model(self._model) - + self.model = Gtk.ListStore(int, str) + self.set_model(self.model) + self.text_renderer = Gtk.CellRendererText() + self.pack_start(self.text_renderer, True) + self.add_attribute(self.text_renderer, "text", 1) + def append_item(self, action_id, text, icon_name=None, size=None, pixbuf=None): if (icon_name or pixbuf): @@ -1310,10 +1313,10 @@ class BigComboBox(Gtk.ComboBox): self.pack_start(self._icon_renderer, False) self.add_attribute(self._icon_renderer, 'pixbuf', 2) - if text: - self._text_renderer = Gtk.CellRendererText() - self.pack_end(self._text_renderer, True) - self.add_attribute(self._text_renderer, 'text', 1) + #if text: + #self._text_renderer = Gtk.CellRendererText() + #self.pack_start(self._text_renderer, True) + #self.add_attribute(self._text_renderer, 'text', 1) if not pixbuf: if icon_name: @@ -1328,4 +1331,4 @@ class BigComboBox(Gtk.ComboBox): else: pixbuf = None - self._model.append([action_id, text, pixbuf, False]) + self.model.append([action_id, text]) -- cgit v0.9.1