Mercurial > traipse
diff orpg/tools/toolBars.py @ 0:4385a7d0efd1 grumpy-goblin
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author | sirebral |
---|---|
date | Tue, 14 Jul 2009 16:41:58 -0500 |
parents | |
children | 211ac836b6a0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/orpg/tools/toolBars.py Tue Jul 14 16:41:58 2009 -0500 @@ -0,0 +1,159 @@ +# Copyright (C) 2000-2001 The OpenRPG Project +# +# openrpg-dev@lists.sourceforge.net +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# -- +# +# File: toolBars.py +# Author: Greg Copeland +# Maintainer: +# +# Description: Contains all of the toolbars used in the application. +# +# + +__version__ = "$Id: toolBars.py,v 1.13 2006/11/04 21:24:22 digitalxero Exp $" + + +## +## Module Loading +## +from inputValidator import * +import string +import orpg.dirpath + +# DICE stuff +TB_IDC_D4 = wx.NewId() +TB_IDC_D6 = wx.NewId() +TB_IDC_D8 = wx.NewId() +TB_IDC_D10 = wx.NewId() +TB_IDC_D12 = wx.NewId() +TB_IDC_D20 = wx.NewId() +TB_IDC_D100 = wx.NewId() +TB_IDC_NUMDICE = wx.NewId() +TB_IDC_MODS = wx.NewId() + +# MAP stuff +TB_MAP_MODE = wx.NewId() +# Caution: the use of wxFRAME_TOOL_WINDOW screws up the window on GTK. Please don't use!!! + +class MapToolBar(wx.Panel): + """This is where all of the map related tools belong for quick reference.""" + def __init__( self, parent, id=-1, title="Map Tool Bar", size= wx.Size(300, 45), callBack=None ): + wx.Panel.__init__(self, parent, id, size=size) + self.callback = callBack + self.mapmode = 1 + self.modeicons = [orpg.dirpath.dir_struct["icon"]+"move.gif", + orpg.dirpath.dir_struct["icon"]+"draw.gif", + orpg.dirpath.dir_struct["icon"]+"tape.gif"] + # Make a sizer for everything to belong to + self.sizer = wx.BoxSizer( wx.HORIZONTAL ) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"move.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + self.butt = wx.BitmapButton( self, TB_MAP_MODE, bm ) + self.sizer.Add( self.butt,0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_MAP_MODE) + # Build the toolbar now + # Stubbed, but nothing here yet! + # Now, attach the sizer to the panel and tell it to do it's magic + self.SetSizer(self.sizer) + self.SetAutoLayout(True) + self.Fit() + + def onToolBarClick(self,evt): + data = "" + id = evt.GetId() + data = "" + mode = 1 + if id == TB_MAP_MODE: + mode = 1 + self.mapmode +=1 + if self.mapmode >3: + self.mapmode = 1 + bm = wx.Image(self.modeicons[self.mapmode-1],wx.BITMAP_TYPE_GIF).ConvertToBitmap() + self.butt= wx.BitmapButton(self,TB_MAP_MODE,bm) + data = self.mapmode + if self.callback != None: + self.callback(mode,data) + +class DiceToolBar(wx.Panel): + """This is where all of the dice related tools belong for quick reference.""" + def __init__( self, parent, id=-1, title="Dice Tool Bar", size=wx.Size(300, 45), callBack=None ): + wx.Panel.__init__(self, parent, id, size=size) + # Save our post callback + self.callBack = callBack + # Make a sizer for everything to belong to + self.sizer = wx.BoxSizer( wx.HORIZONTAL ) + # Build the toolbar now + self.numDieText = wx.TextCtrl( self, TB_IDC_NUMDICE, "1", size= wx.Size(50, 25), + validator=MathOnlyValidator() ) + self.sizer.Add( self.numDieText, 1, wx.EXPAND | wx.ALIGN_LEFT ) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d4.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D4, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D4) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d6.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D6, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D6) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d8.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D8, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D8) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d10.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D10, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D10) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d12.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D12, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D12) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d20.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D20, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D20) + bm = wx.Image(orpg.dirpath.dir_struct["icon"]+"b_d100.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap() + butt = wx.BitmapButton( self, TB_IDC_D100, bm, size=(bm.GetWidth(), bm.GetHeight()) ) + self.sizer.Add( butt, 0, wx.ALIGN_CENTER ) + self.Bind(wx.EVT_BUTTON, self.onToolBarClick, id=TB_IDC_D100) + # Add our other text control to the sizer + self.dieModText = wx.TextCtrl( self, TB_IDC_MODS, "+0", size= wx.Size(50, 25), + validator=MathOnlyValidator() ) + self.sizer.Add( self.dieModText, 1, wx.EXPAND | wx.ALIGN_RIGHT ) + # Now, attach the sizer to the panel and tell it to do it's magic + self.SetSizer(self.sizer) + self.SetAutoLayout(True) + self.Fit() + + def onToolBarClick( self, evt ): + # Get our modifiers + numDie = self.numDieText.GetValue() + dieMod = self.dieModText.GetValue() + # Init the die roll text + if not len(numDie): + numDie = 1 + dieRoll = str(numDie) + # Figure out which die roll was selected + id = evt.GetId() + recycle_bin = {TB_IDC_D4: "d4", TB_IDC_D6: "d6", TB_IDC_D8: "d8", TB_IDC_D10: "d10", TB_IDC_D12: "d12", TB_IDC_D20: "d20", TB_IDC_D100: "d100"} + dieType = recycle_bin[id]; recycle_bin = {} + # To appease tdb...I personally disagree with this! + if len(dieMod) and dieMod[0] not in "*/-+": + dieMod = "+" + dieMod + # Build the complete die roll text now + rollString = "[" + dieRoll + dieType + dieMod + "]" + # Now, call the post method to send everything off with + if self.callBack != None: + self.callBack( rollString,1,1 )