backported Roman's latest updates on HEAD to 2.8 branch

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@45694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-04-27 18:49:06 +00:00
parent e78f78e598
commit d698728cea
19 changed files with 381 additions and 192 deletions

View File

@@ -16,7 +16,6 @@ GROUP_WINDOWS, GROUP_MENUS, GROUP_SIZERS, GROUP_CONTROLS = range(GROUPNUM)
# States depending on current selection and Control/Shift keys
STATE_ROOT, STATE_MENUBAR, STATE_TOOLBAR, STATE_MENU, STATE_STDDLGBTN, STATE_ELSE = range(6)
# Left toolbar for GUI elements
class Tools(wx.Panel):
TOOL_SIZE = (30, 30)
@@ -97,17 +96,18 @@ class Tools(wx.Panel):
self.SetSizeHints(self.GetSize()[0], -1)
# Events
wx.EVT_COMMAND_RANGE(self, ID_NEW.PANEL, ID_NEW.LAST,
wx.wxEVT_COMMAND_BUTTON_CLICKED, g.frame.OnCreate)
wx.wxEVT_COMMAND_BUTTON_CLICKED, g.frame.OnCreate)
wx.EVT_KEY_DOWN(self, self.OnKeyDown)
wx.EVT_KEY_UP(self, self.OnKeyUp)
def AddButton(self, id, image, text):
from wx.lib import buttons
button = buttons.GenBitmapButton(self, id, image, size=self.TOOL_SIZE,
style=wx.NO_BORDER|wx.WANTS_CHARS)
style=wx.NO_BORDER|wx.WANTS_CHARS)
button.SetBezelWidth(0)
wx.EVT_KEY_DOWN(button, self.OnKeyDown)
wx.EVT_KEY_UP(button, self.OnKeyUp)
wx.EVT_RIGHT_DOWN(button, self.OnRightClick)
button.SetToolTipString(text)
self.curSizer.Add(button)
self.groups[-1][1][id] = button
@@ -160,6 +160,22 @@ class Tools(wx.Panel):
else: box.SetLabel('[-] ' + box.name)
self.Layout()
# Drag
def OnRightClick(self, evt):
do = MyDataObject()
do.SetData(str(evt.GetId()))
bm = evt.GetEventObject().GetBitmapLabel()
if wx.Platform != '__WXMAC__':
icon = wx.EmptyIcon()
icon.CopyFromBitmap(bm)
dragSource = wx.DropSource(self, icon)
else: # on Mac DragSource requires cursor (but does not work anyway)
curs = wx.CursorFromImage(wx.ImageFromBitmap(bm))
dragSource = wx.DropSource(self, curs)
dragSource.SetData(do)
g.frame.SetStatusText('Release the mouse button over the test window')
dragSource.DoDragDrop()
# Process key events
def OnKeyDown(self, evt):
if evt.GetKeyCode() == wx.WXK_CONTROL: