From: <nat...@us...> - 2010-09-07 22:49:36
|
Revision: 11323 http://cctbx.svn.sourceforge.net/cctbx/?rev=11323&view=rev Author: natechols Date: 2010-09-07 22:49:25 +0000 (Tue, 07 Sep 2010) Log Message: ----------- bug fix for font wrapping on linux Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2010-09-07 20:08:38 UTC (rev 11322) +++ trunk/wxtbx/metallicbutton.py 2010-09-07 22:49:25 UTC (rev 11323) @@ -53,11 +53,16 @@ self._bmp['disable'] = img.ConvertToBitmap() else : self._bmp['disable'] = None + self._label2_font = self.GetFont() + self._label2_font.SetPointSize(caption_size) + self._label2_font.SetStyle(wx.FONTSTYLE_ITALIC) if style & MB_STYLE_BOLD_LABEL : font_size = label_size - self._label_font = wx.Font(font_size, wx.SWISS, wx.NORMAL, wx.BOLD) + self._label_font = self.GetFont() + self._label_font.SetPointSize(label_size) + self._label_font.SetWeight(wx.FONTWEIGHT_BOLD) self.SetFont(self._label_font) - self._label2_font = wx.Font(caption_size, wx.SWISS, wx.ITALIC, wx.NORMAL) + #self._label2_font = wx.Font(caption_size, wx.SWISS, wx.ITALIC, wx.NORMAL) self._menu = None self.SetLabel(label) @@ -332,8 +337,10 @@ if min_w == -1 : min_w = 120 txt_w = min_w - width - 10 + if wx.Platform == '__WXGTK__' : + txt_w += 200 lines = wx.lib.wordwrap.wordwrap(self._label2, - width=min_w, + width=txt_w, dc=dc) self._caption_lines = lines offset = 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2010-09-08 00:14:45
|
Revision: 11325 http://cctbx.svn.sourceforge.net/cctbx/?rev=11325&view=rev Author: natechols Date: 2010-09-08 00:14:39 +0000 (Wed, 08 Sep 2010) Log Message: ----------- messy workaround for wxosx_cocoa bug Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2010-09-08 00:14:17 UTC (rev 11324) +++ trunk/wxtbx/metallicbutton.py 2010-09-08 00:14:39 UTC (rev 11325) @@ -55,7 +55,8 @@ self._bmp['disable'] = None self._label2_font = self.GetFont() self._label2_font.SetPointSize(caption_size) - self._label2_font.SetStyle(wx.FONTSTYLE_ITALIC) + if not ((wx.VERSION[0] == 2) and (wx.VERSION[1] == 9)) : + self._label2_font.SetStyle(wx.FONTSTYLE_ITALIC) if style & MB_STYLE_BOLD_LABEL : font_size = label_size self._label_font = self.GetFont() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2010-09-10 00:08:38
|
Revision: 11334 http://cctbx.svn.sourceforge.net/cctbx/?rev=11334&view=rev Author: natechols Date: 2010-09-10 00:08:32 +0000 (Fri, 10 Sep 2010) Log Message: ----------- simple test, bug fixes for snow leopard Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2010-09-09 10:20:48 UTC (rev 11333) +++ trunk/wxtbx/metallicbutton.py 2010-09-10 00:08:32 UTC (rev 11334) @@ -472,6 +472,8 @@ show the popup menu if one has been set. """ + if not self.IsEnabled() : + return pos = evt.GetPositionTuple() self.SetState(GRADIENT_PRESSED) size = self.GetSizeTuple() @@ -487,6 +489,8 @@ @param evt: wx.MouseEvent """ + if not self.IsEnabled() : + return if self._state['cur'] == GRADIENT_PRESSED: pos = evt.GetPositionTuple() size = self.GetSizeTuple() @@ -661,3 +665,95 @@ self.SetState(GRADIENT_PRESSED) else: self.SetState(GRADIENT_HIGHLIGHT) + +if __name__ == "__main__" : + from wx.lib.embeddedimage import PyEmbeddedImage + folder_home = PyEmbeddedImage( + "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" + "9vloG3iG4j+/GQJ2mLhyHwAAAABJRU5ErkJggg==") + getfolder_homeData = folder_home.GetData + getfolder_homeImage = folder_home.GetImage + getfolder_homeBitmap = folder_home.GetBitmap + + app = wx.App(0) + frame = wx.Frame(None, -1, "Test frame", style=wx.DEFAULT_FRAME_STYLE) + frame_sizer = wx.BoxSizer(wx.VERTICAL) + frame.SetSizer(frame_sizer) + panel = wx.Panel(frame, -1) + frame_sizer.Add(panel) + panel_sizer = wx.BoxSizer(wx.VERTICAL) + panel.SetSizer(panel_sizer) + btn1 = MetallicButton( + parent=panel, + label="Simple button", + button_margin=4) + panel_sizer.Add(btn1, 0, wx.ALL|wx.EXPAND, 10) + btn2 = MetallicButton( + parent=panel, + label="Button with bitmap", + bmp=folder_home.GetBitmap(), + button_margin=4) + panel_sizer.Add(btn2, 0, wx.ALL|wx.EXPAND, 10) + btn3 = MetallicButton( + parent=panel, + label="Disabled button", + bmp=folder_home.GetBitmap(), + button_margin=4) + btn3.Enable(False) + panel_sizer.Add(btn3, 0, wx.ALL|wx.EXPAND, 10) + btn4 = MetallicButton( + parent=panel, + label="Button with bitmap and caption", + label2="This is the button caption that I can't figure out how to wrap "+ + "properly on any platform (but especially Linux!).", + bmp=folder_home.GetBitmap(), + button_margin=4, + size=(320,-1)) + panel_sizer.Add(btn4, 0, wx.ALL|wx.EXPAND, 10) + panel_sizer.Fit(panel) + #frame_sizer.Fit(frame) + frame.Fit() + frame.Show() + app.MainLoop() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2010-09-29 23:59:32
|
Revision: 11507 http://cctbx.svn.sourceforge.net/cctbx/?rev=11507&view=rev Author: natechols Date: 2010-09-29 23:59:26 +0000 (Wed, 29 Sep 2010) Log Message: ----------- fixed for mac Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2010-09-29 23:56:13 UTC (rev 11506) +++ trunk/wxtbx/metallicbutton.py 2010-09-29 23:59:26 UTC (rev 11507) @@ -177,9 +177,14 @@ if False : #self._caption_lines is not None : lines = self._caption_lines else : + if wx.Platform == '__WXGTK__' : + dc = wx.MemoryDC() + txt_w += 100 + else : + dc = gc lines = wx.lib.wordwrap.wordwrap(self._label2, - width=txt_w + 200, - dc=wx.MemoryDC()) + width=txt_w, + dc=dc) #wx.MemoryDC()) offset = 0 for line in lines.splitlines() : line_w, line_h = gc.GetTextExtent(line) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2010-12-01 20:09:11
|
Revision: 11918 http://cctbx.svn.sourceforge.net/cctbx/?rev=11918&view=rev Author: natechols Date: 2010-12-01 20:09:04 +0000 (Wed, 01 Dec 2010) Log Message: ----------- minor improvements to button appearance Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2010-12-01 01:32:10 UTC (rev 11917) +++ trunk/wxtbx/metallicbutton.py 2010-12-01 20:09:04 UTC (rev 11918) @@ -42,7 +42,7 @@ highlight_color=(230,230,230), label_size=13, caption_size=11, button_margin=2, disable_after_click=0): wx.PyControl.__init__(self, parent, id_, pos, size, - wx.BORDER_SIMPLE, name=name) + wx.NO_BORDER, name=name) self.InheritAttributes() self._bmp = dict(enable=bmp) self._margin = button_margin @@ -112,8 +112,8 @@ bw, bh = bmp.GetSize() cw, ch = self.GetSize() if ch > (bh + 4) : # (self._margin * 2)): - ypos = ((ch - bh) / 2) - (self._margin / 2) - xpos = self._margin + ypos = ((ch - bh) / 2) - (self._margin / 2) + 1 + xpos = self._margin + 2 else : ypos = 0 xpos = 0 @@ -164,7 +164,7 @@ rgc = gc.GetGraphicsContext() brush = rgc.CreateLinearGradientBrush(0, 1, 0, height, color, end_color) rgc.SetBrush(brush) - gc.DrawRectangle(0, 0, width, height) + gc.DrawRectangle(1, 1, width-2, height-2) def __DrawCaption (self, gc, xpos, ypos) : if self._label2 != '' : @@ -215,24 +215,29 @@ txt_y = 4 #th + 4 #height - th - 4 txt2_y = th + 8 else : - txt_y = max((height - th) / 2 - 2, 1) + txt_y = max((height - th) / 2 - 1, 1) txt2_y = None #print height, th, txt_y, txt2_y + #gc.SetBrush(wx.TRANSPARENT_BRUSH) + #gc.DrawRectangle(0, 0, width, height) + gc.SetPen(wx.Pen((100,100,100))) + gc.SetBrush(wx.Brush((240,240,240))) + gc.DrawRectangle(0,0,width,height) + gc.SetPen(wx.TRANSPARENT_PEN) if self._state['cur'] == GRADIENT_HIGHLIGHT: gc.SetTextForeground(self._color['htxt']) - gc.SetPen(wx.TRANSPARENT_PEN) self.__DrawHighlight(gc, width, height) elif self._state['cur'] == GRADIENT_PRESSED: gc.SetTextForeground(self._color['htxt']) if wx.Platform == '__WXMAC__': - brush = wx.Brush(wx.BLACK) + brush = wx.Brush((100,100,100)) brush.MacSetTheme(Carbon.Appearance.kThemeBrushFocusHighlight) pen = wx.Pen(brush.GetColour(), 1, wx.SOLID) else: pen = wx.Pen(AdjustColour(self._color['press_start'], -80, 220), 1) - gc.SetPen(pen) + #gc.SetPen(pen) self.__DrawHighlight(gc, width, height) txt_x = self.__DrawBitmap(gc) @@ -242,12 +247,12 @@ else: rgc = gc.GetGraphicsContext() - gc.SetPen(wx.TRANSPARENT_PEN) + #gc.SetPen(wx.TRANSPARENT_PEN) color = wx.Colour(218,218,218) brush = rgc.CreateLinearGradientBrush(0, 1, 0, height, self._color['gradient_start'], self._color['gradient_end']) rgc.SetBrush(brush) - gc.DrawRectangle(0, 0, width, height) + gc.DrawRectangle(1, 2, width-2, height-3) if self.IsEnabled(): gc.SetTextForeground(self.GetForegroundColour()) else: @@ -325,7 +330,7 @@ caption_height = 0 if self._bmp['enable'] is not None: bsize = self._bmp['enable'].GetSize() - width += (bsize[0] + 10) + width += (bsize[0] + 12) height = bsize[1] + (self._margin * 2) else: width += 10 @@ -362,7 +367,7 @@ caption_width = line_w caption_height += line_h + buffer width += max(caption_width, label_width) + 4 - height = max(caption_height + label_height + 10, height) + height = max(caption_height + label_height + 12, height) if self._menu is not None or self._style & MB_STYLE_DROPARROW : width += 12 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2010-12-04 03:40:05
|
Revision: 11938 http://cctbx.svn.sourceforge.net/cctbx/?rev=11938&view=rev Author: natechols Date: 2010-12-04 03:39:58 +0000 (Sat, 04 Dec 2010) Log Message: ----------- possible bug fix for EVT_PAINT Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2010-12-04 01:19:43 UTC (rev 11937) +++ trunk/wxtbx/metallicbutton.py 2010-12-04 03:39:58 UTC (rev 11938) @@ -81,7 +81,7 @@ self.SetInitialSize() # Event Handlers - self.Bind(wx.EVT_PAINT, lambda evt: self.__DrawButton()) + self.Bind(wx.EVT_PAINT, self.OnPaint) self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnErase) self.Bind(wx.EVT_SET_FOCUS, self.OnFocus) self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus) @@ -97,6 +97,9 @@ self.Bind(wx.EVT_KEY_UP, self.OnKeyUp) self.Bind(wx.EVT_CONTEXT_MENU, self.OnContextMenu) + def OnPaint (self, event) : + self.__DrawButton() + def __DrawBitmap(self, gc): """Draw the bitmap if one has been set @param gc: GCDC to draw with This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2011-02-02 01:35:56
|
Revision: 12346 http://cctbx.svn.sourceforge.net/cctbx/?rev=12346&view=rev Author: natechols Date: 2011-02-02 01:35:34 +0000 (Wed, 02 Feb 2011) Log Message: ----------- minor tweaks for linux Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2011-02-01 19:01:17 UTC (rev 12345) +++ trunk/wxtbx/metallicbutton.py 2011-02-02 01:35:34 UTC (rev 12346) @@ -70,7 +70,7 @@ self.SetLabel(label) self._label2 = label2 self._style = style - self._size = tuple(size) + #self._size = tuple(size) self._state = dict(pre=GRADIENT_NORMAL, cur=GRADIENT_NORMAL) self._color = self.__InitColors(start_color, highlight_color, gradient_percent) @@ -78,7 +78,7 @@ self._disable_after_click = disable_after_click # Setup Initial Size - self.SetInitialSize() + self.SetInitialSize(size) # Event Handlers self.Bind(wx.EVT_PAINT, self.OnPaint) @@ -172,7 +172,7 @@ def __DrawCaption (self, gc, xpos, ypos) : if self._label2 != '' : gc.SetFont(self._label2_font) - min_w, min_h = self._size + min_w, min_h = self.GetSize() #self._size if min_w == -1 : min_w = 120 txt_w = min_w - xpos - 10 @@ -180,8 +180,9 @@ lines = self._caption_lines else : if wx.Platform == '__WXGTK__' : - dc = wx.MemoryDC() - txt_w += 100 + dc = wx.ClientDC(self) + dc.SetFont(self._label2_font) + #txt_w += 100 else : dc = gc lines = wx.lib.wordwrap.wordwrap(self._label2, @@ -347,14 +348,15 @@ if wx.Platform == '__WXMAC__' : dc = wx.GraphicsContext.CreateMeasuringContext() else : - dc = wx.MemoryDC() + dc = wx.ClientDC(self) + #dc = wx.MemoryDC() dc.SetFont(self._label2_font) - min_w, min_h = self._size + min_w, min_h = self.GetSize() #self._size if min_w == -1 : min_w = 120 txt_w = min_w - width - 10 - #if wx.Platform == '__WXGTK__' : - # txt_w -= 100 + if wx.Platform == '__WXGTK__' : + txt_w += 40 lines = wx.lib.wordwrap.wordwrap(self._label2, width=txt_w, dc=dc) @@ -375,8 +377,8 @@ if self._menu is not None or self._style & MB_STYLE_DROPARROW : width += 12 - if width < self._size[0] : - width = self._size[0] + if width < self.GetSize()[0] : #self._size[0] : + width = self.GetSize()[0] best = wx.Size(width, height) self.CacheBestSize(best) return best This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2012-02-24 22:06:34
|
Revision: 14928 http://cctbx.svn.sourceforge.net/cctbx/?rev=14928&view=rev Author: natechols Date: 2012-02-24 22:06:28 +0000 (Fri, 24 Feb 2012) Log Message: ----------- windows fixes Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2012-02-24 21:34:17 UTC (rev 14927) +++ trunk/wxtbx/metallicbutton.py 2012-02-24 22:06:28 UTC (rev 14928) @@ -23,8 +23,13 @@ from wx.lib.colourutils import * # Used on OSX to get access to carbon api constants +CAPTION_SIZE = 9 +LABEL_SIZE = 11 if wx.Platform == '__WXMAC__': - import Carbon.Appearance + import Carbon.Appearance +elif (wx.Platform == '__WXMSW__') : + CAPTION_SIZE = 9 + LABEL_SIZE = 11 GRADIENT_NORMAL = 0 GRADIENT_PRESSED = 1 @@ -35,12 +40,23 @@ MB_STYLE_DROPARROW = 4 class MetallicButton (wx.PyControl) : - def __init__ (self, parent, id_=wx.ID_ANY, label='', label2='', bmp=None, - pos=wx.DefaultPosition, size=wx.DefaultSize, - style=MB_STYLE_DEFAULT, name=wx.ButtonNameStr, - start_color=(218,218,218), gradient_percent=15.0, - highlight_color=(230,230,230), label_size=13, - caption_size=11, button_margin=2, disable_after_click=0): + def __init__ (self, + parent, + id_=wx.ID_ANY, + label='', + label2='', + bmp=None, + pos=wx.DefaultPosition, + size=wx.DefaultSize, + style=MB_STYLE_DEFAULT, + name=wx.ButtonNameStr, + start_color=(218,218,218), + gradient_percent=15.0, + highlight_color=(230,230,230), + label_size=LABEL_SIZE, + caption_size=CAPTION_SIZE, + button_margin=2, + disable_after_click=0): wx.PyControl.__init__(self, parent, id_, pos, size, wx.NO_BORDER, name=name) self.InheritAttributes() @@ -58,12 +74,12 @@ # XXX this crashes on wxOSX_Cocoa! if (not 'wxOSX-cocoa' in wx.PlatformInfo) : self._label2_font.SetStyle(wx.FONTSTYLE_ITALIC) + font_size = label_size + self._label_font = self.GetFont() + self._label_font.SetPointSize(label_size) if style & MB_STYLE_BOLD_LABEL : - font_size = label_size - self._label_font = self.GetFont() - self._label_font.SetPointSize(label_size) self._label_font.SetWeight(wx.FONTWEIGHT_BOLD) - self.SetFont(self._label_font) + self.SetFont(self._label_font) #self._label2_font = wx.Font(caption_size, wx.SWISS, wx.ITALIC, wx.NORMAL) self._menu = None @@ -179,7 +195,7 @@ if False : #self._caption_lines is not None : lines = self._caption_lines else : - if wx.Platform == '__WXGTK__' : + if (wx.Platform in ['__WXGTK__', '__WXMSW__']) : dc = wx.ClientDC(self) dc.SetFont(self._label2_font) #txt_w += 100 @@ -371,6 +387,8 @@ if line_w > caption_width : caption_width = line_w caption_height += line_h + buffer + if (wx.Platform == '__WXMSW__') : + caption_height += 4 width += max(caption_width, label_width) + 4 height = max(caption_height + label_height + 12, height) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nat...@us...> - 2013-04-12 23:02:49
|
Revision: 17213 http://sourceforge.net/p/cctbx/code/17213 Author: natechols Date: 2013-04-12 23:02:45 +0000 (Fri, 12 Apr 2013) Log Message: ----------- support for toggle between bitmaps Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2013-04-12 21:05:00 UTC (rev 17212) +++ trunk/wxtbx/metallicbutton.py 2013-04-12 23:02:45 UTC (rev 17213) @@ -57,7 +57,8 @@ label_size=LABEL_SIZE, caption_size=CAPTION_SIZE, button_margin=2, - disable_after_click=0): + disable_after_click=0, + bmp2=None): wx.PyControl.__init__(self, parent, id_, pos, size, wx.NO_BORDER, name=name) self.InheritAttributes() @@ -70,6 +71,8 @@ self._bmp['disable'] = img.ConvertToBitmap() else : self._bmp['disable'] = None + self._bmp2 = bmp2 + self._use_secondary_bitmap = False self._label2_font = self.GetFont() self._label2_font.SetPointSize(caption_size) # XXX this crashes on wxOSX_Cocoa! @@ -123,7 +126,11 @@ @return: x cordinate to draw text at """ - if self.IsEnabled(): + bmp = None + if (self._use_secondary_bitmap) : + assert (self._bmp2 is not None) + bmp = self._bmp2 + elif self.IsEnabled(): bmp = self._bmp['enable'] else: bmp = self._bmp['disable'] @@ -725,6 +732,13 @@ else: self.SetState(GRADIENT_HIGHLIGHT) + def SwapBitmap (self) : + assert (self._bmp2 is not None) + if (self._use_secondary_bitmap) : + self._use_secondary_bitmap = False + else : + self._use_secondary_bitmap = True + if __name__ == "__main__" : from wx.lib.embeddedimage import PyEmbeddedImage folder_home = PyEmbeddedImage( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oe...@us...> - 2014-09-30 13:02:58
|
Revision: 20764 http://sourceforge.net/p/cctbx/code/20764 Author: oeffner Date: 2014-09-30 13:02:45 +0000 (Tue, 30 Sep 2014) Log Message: ----------- Get text dimensions from dc rather than gc as gc reports wrong height for empty strings on Windows. Modified Paths: -------------- trunk/wxtbx/metallicbutton.py Modified: trunk/wxtbx/metallicbutton.py =================================================================== --- trunk/wxtbx/metallicbutton.py 2014-09-30 12:45:06 UTC (rev 20763) +++ trunk/wxtbx/metallicbutton.py 2014-09-30 13:02:45 UTC (rev 20764) @@ -238,7 +238,8 @@ # Calc Object Positions width, height = self.GetSize() - tw, th = gc.GetTextExtent(self.GetLabel()) + #get text dimensions from dc rather than gc as gc reports wrong height for empty strings on Windows + tw, th = dc.GetTextExtent(self.GetLabel()) if self._label2 != '' : txt_y = 4 #th + 4 #height - th - 4 txt2_y = th + 8 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |