X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..d4b73b1b8e585418459362c9bf9173aa21da8c41:/wxPython/wx/lib/popupctl.py diff --git a/wxPython/wx/lib/popupctl.py b/wxPython/wx/lib/popupctl.py index 76dfc6de19..44dc77dec1 100644 --- a/wxPython/wx/lib/popupctl.py +++ b/wxPython/wx/lib/popupctl.py @@ -9,38 +9,47 @@ # RCS-ID: $Id$ # License: wxWindows license #---------------------------------------------------------------------- +# 12/09/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o 2.5 compatability update. +# +# 12/20/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o wxPopupDialog -> PopupDialog +# o wxPopupControl -> PopupControl +# -from wxPython.wx import * -from wxPython.lib.buttons import wxGenButtonEvent +import wx +from wx.lib.buttons import GenButtonEvent -class PopButton(wxPyControl): +class PopButton(wx.PyControl): def __init__(self,*_args,**_kwargs): - apply(wxPyControl.__init__,(self,) + _args,_kwargs) + apply(wx.PyControl.__init__,(self,) + _args,_kwargs) self.up = True self.didDown = False self.InitColours() - EVT_LEFT_DOWN(self, self.OnLeftDown) - EVT_LEFT_UP(self, self.OnLeftUp) - EVT_MOTION(self, self.OnMotion) - EVT_PAINT(self, self.OnPaint) + self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) + self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) + self.Bind(wx.EVT_MOTION, self.OnMotion) + self.Bind(wx.EVT_PAINT, self.OnPaint) def InitColours(self): - faceClr = wxSystemSettings_GetSystemColour(wxSYS_COLOUR_BTNFACE) + faceClr = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BTNFACE) self.faceDnClr = faceClr self.SetBackgroundColour(faceClr) - shadowClr = wxSystemSettings_GetSystemColour(wxSYS_COLOUR_BTNSHADOW) - highlightClr = wxSystemSettings_GetSystemColour(wxSYS_COLOUR_BTNHIGHLIGHT) - self.shadowPen = wxPen(shadowClr, 1, wxSOLID) - self.highlightPen = wxPen(highlightClr, 1, wxSOLID) - self.blackPen = wxPen(wxBLACK, 1, wxSOLID) + shadowClr = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BTNSHADOW) + highlightClr = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BTNHIGHLIGHT) + self.shadowPen = wx.Pen(shadowClr, 1, wx.SOLID) + self.highlightPen = wx.Pen(highlightClr, 1, wx.SOLID) + self.blackPen = wx.Pen(wx.BLACK, 1, wx.SOLID) def Notify(self): - evt = wxGenButtonEvent(wxEVT_COMMAND_BUTTON_CLICKED, self.GetId()) + evt = GenButtonEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, self.GetId()) evt.SetIsDown(not self.up) evt.SetButtonObj(self) evt.SetEventObject(self) @@ -76,8 +85,8 @@ class PopButton(wxPyControl): return if event.LeftIsDown(): if self.didDown: - x,y = event.GetPositionTuple() - w,h = self.GetClientSizeTuple() + x,y = event.GetPosition() + w,h = self.GetClientSize() if self.up and x=0 and y=0: self.up = False self.Refresh() @@ -95,8 +104,8 @@ class PopButton(wxPyControl): else: dc.SetPen(self.shadowPen) for i in range(2): - dc.DrawLine(x1+i, y1, x1+i, y2-i) - dc.DrawLine(x1, y1+i, x2-i, y1+i) + dc.DrawLine((x1+i, y1), (x1+i, y2-i)) + dc.DrawLine((x1, y1+i), (x2-i, y1+i)) # draw the lower right sides if self.up: @@ -104,31 +113,31 @@ class PopButton(wxPyControl): else: dc.SetPen(self.highlightPen) for i in range(2): - dc.DrawLine(x1+i, y2-i, x2+1, y2-i) - dc.DrawLine(x2-i, y1+i, x2-i, y2) + dc.DrawLine((x1+i, y2-i), (x2+1, y2-i)) + dc.DrawLine((x2-i, y1+i), (x2-i, y2)) def DrawArrow(self,dc): - size = self.GetSize() - mx = size.x / 2 - my = size.y / 2 + w, h = self.GetSize() + mx = w / 2 + my = h / 2 dc.SetPen(self.highlightPen) - dc.DrawLine(mx-5,my-5,mx+5,my-5) - dc.DrawLine(mx-5,my-5,mx,my+5) + dc.DrawLine((mx-5,my-5), (mx+5,my-5)) + dc.DrawLine((mx-5,my-5), (mx,my+5)) dc.SetPen(self.shadowPen) - dc.DrawLine(mx+4,my-5,mx,my+5) + dc.DrawLine((mx+4,my-5), (mx,my+5)) dc.SetPen(self.blackPen) - dc.DrawLine(mx+5,my-5,mx,my+5) + dc.DrawLine((mx+5,my-5), (mx,my+5)) def OnPaint(self, event): - width, height = self.GetClientSizeTuple() + width, height = self.GetClientSize() x1 = y1 = 0 x2 = width - 1 y2 = height - 1 - dc = wxBufferedPaintDC(self) + dc = wx.BufferedPaintDC(self) if self.up: - dc.SetBackground(wxBrush(self.GetBackgroundColour(), wxSOLID)) + dc.SetBackground(wx.Brush(self.GetBackgroundColour(), wx.SOLID)) else: - dc.SetBackground(wxBrush(self.faceDnClr, wxSOLID)) + dc.SetBackground(wx.Brush(self.faceDnClr, wx.SOLID)) dc.Clear() self.DrawBezel(dc, x1, y1, x2, y2) self.DrawArrow(dc) @@ -138,12 +147,12 @@ class PopButton(wxPyControl): # Tried to use wxPopupWindow but the control misbehaves on MSW -class wxPopupDialog(wxDialog): +class PopupDialog(wx.Dialog): def __init__(self,parent,content = None): - wxDialog.__init__(self,parent,-1,'', style = wxBORDER_SIMPLE|wxSTAY_ON_TOP) + wx.Dialog.__init__(self,parent,-1,'', style = wx.BORDER_SIMPLE|wx.STAY_ON_TOP) self.ctrl = parent - self.win = wxWindow(self,-1,pos = wxPoint(0,0),style = 0) + self.win = wx.Window(self,-1,pos = (0,0),style = 0) if content: self.SetContent(content) @@ -157,23 +166,23 @@ class wxPopupDialog(wxDialog): def Display(self): pos = self.ctrl.ClientToScreen( (0,0) ) - dSize = wxGetDisplaySize() + dSize = wx.GetDisplaySize() selfSize = self.GetSize() tcSize = self.ctrl.GetSize() - pos.x -= (selfSize.x - tcSize.x) / 2 - if pos.x + selfSize.x > dSize.x: - pos.x = dSize.x - selfSize.x + pos.x -= (selfSize.width - tcSize.width) / 2 + if pos.x + selfSize.width > dSize.width: + pos.x = dSize.width - selfSize.width if pos.x < 0: pos.x = 0 pos.y += tcSize.height - if pos.y + selfSize.y > dSize.y: - pos.y = dSize.y - selfSize.y + if pos.y + selfSize.height > dSize.height: + pos.y = dSize.height - selfSize.height if pos.y < 0: pos.y = 0 - self.MoveXY(pos.x,pos.y) + self.Move(pos) self.ctrl.FormatContent() @@ -183,36 +192,36 @@ class wxPopupDialog(wxDialog): #--------------------------------------------------------------------------- -class wxPopupControl(wxPyControl): +class PopupControl(wx.PyControl): def __init__(self,*_args,**_kwargs): if _kwargs.has_key('value'): del _kwargs['value'] - apply(wxPyControl.__init__,(self,) + _args,_kwargs) + apply(wx.PyControl.__init__,(self,) + _args,_kwargs) - self.textCtrl = wxTextCtrl(self,-1,'',pos = wxPoint(0,0)) + self.textCtrl = wx.TextCtrl(self,-1,'',pos = (0,0)) self.bCtrl = PopButton(self,-1) self.pop = None self.content = None self.OnSize(None) - EVT_SIZE(self,self.OnSize) - EVT_BUTTON(self.bCtrl,self.bCtrl.GetId(),self.OnButton) + self.Bind(wx.EVT_SIZE, self.OnSize) + self.bCtrl.Bind(wx.EVT_BUTTON, self.OnButton, self.bCtrl) # embedded control should get focus on TAB keypress - EVT_SET_FOCUS(self,self.OnFocus) + self.Bind(wx.EVT_SET_FOCUS, self.OnFocus) def OnFocus(self,evt): self.textCtrl.SetFocus() evt.Skip() def OnSize(self,evt): - w,h = self.GetClientSizeTuple() + w,h = self.GetClientSize() self.textCtrl.SetDimensions(0,0,w-17,h) self.bCtrl.SetDimensions(w-17,0,17,h) def OnButton(self,evt): if not self.pop: if self.content: - self.pop = wxPopupDialog(self,self.content) + self.pop = PopupDialog(self,self.content) del self.content else: print 'No Content to pop' @@ -220,7 +229,7 @@ class wxPopupControl(wxPyControl): self.pop.Display() def Enable(self,flag): - wxPyControl.Enable(self,flag) + wx.PyControl.Enable(self,flag) self.textCtrl.Enable(flag) self.bCtrl.Enable(flag) @@ -246,4 +255,4 @@ class wxPopupControl(wxPyControl): # an alias -wxPopupCtrl = wxPopupControl +PopupCtrl = PopupControl