annotate orpg/gametree/nodehandlers/StarWarsd20.py @ 90:d1aff41c031b alpha

Traipse Alpha 'OpenRPG' {090919-00} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc''s main goal is to offer more advanced features and enhance the productivity of the user. Update Summary: 00: Adds menu changes to draw attention to important updates, errors, or other events. (image info coming soon) Traipse URL is not included in the repos tab and is set as default. 01: Fixes Copy for Windows and Linux (finally!!) users. Fixes incomplete update to Grid and List nodes. Fixes incomplete update to Chat Commands. 02: Fixes problems with Remote Image Upload. Fixes Drop and Drag of Minis to Map. CherryPy can now use any image in the webfiles/ folder and sub-folders. CherryPy can now Drop and Drag Minis to the Map. 03: Minor changes to Update Manager's GUI. Expert recommendation warning added to Revision Update. Step down compatibility with open_rpg & component added to orpgCore. 19-00: Better backwards compatibility in orpgCore. Using majority of 'Grumpy' network folder to correct server lag.
author sirebral
date Sat, 19 Sep 2009 06:45:21 -0500
parents c5bc2abaf7f8
children 8827271fbe1b
rev   line source
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1 # Copyright (C) 2000-2001 The OpenRPG Project
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
2 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
3 # openrpg-dev@lists.sourceforge.net
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
4 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
5 # This program is free software; you can redistribute it and/or modify
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
6 # it under the terms of the GNU General Public License as published by
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
7 # the Free Software Foundation; either version 2 of the License, or
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
8 # (at your option) any later version.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
9 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
10 # This program is distributed in the hope that it will be useful,
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
13 # GNU General Public License for more details.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
14 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
15 # You should have received a copy of the GNU General Public License
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
16 # along with this program; if not, write to the Free Software
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
18 # --
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
19 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
20 # File: StarWarsd20.py
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
21 # Author: Chris Davis; Mark Twombley
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
22 # Maintainer: Mark Twombley
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
23 # Version:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
24 # $Id: StarWarsd20.py,v 1.18 2006/11/15 12:11:23 digitalxero Exp $
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
25 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
26 # Description: The file contains code for the StarWarsd20 nodehanlers
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
27 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
28
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
29 __version__ = "$Id: StarWarsd20.py,v 1.18 2006/11/15 12:11:23 digitalxero Exp $"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
30
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
31 from core import *
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
32
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
33 SWD20_EXPORT = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
34 ############################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
35 ## StarWarsd20 character node handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
36 ############################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
37 ##The whole look and easy of use redone by Digitalxero
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
38 class container_handler(node_handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
39 """ should not be used! only a base class!
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
40 <nodehandler name='?' module='core' class='container_handler' />
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
41 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
42 def __init__(self,xml_dom,tree_node):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
43 node_handler.__init__(self,xml_dom,tree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
44 self.load_children()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
45
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
46 def load_children(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
47 children = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
48 for c in children:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
49 self.tree.load_xml(c,self.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
50
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
51
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
52 def on_drop(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
53 drag_obj = self.tree.drag_obj
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
54 #if self.is_my_child(self.mytree_node,drag_obj.mytree_node):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
55 # return
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
56 if drag_obj == self:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
57 return
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
58 opt = wx.MessageBox("Add node as child?","Container Node",wx.YES_NO|wx.CANCEL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
59 if opt == wx.YES:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
60 xml_dom = self.tree.drag_obj.delete()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
61 xml_dom = self.master_dom.insertBefore(xml_dom,None)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
62 self.tree.load_xml(xml_dom, self.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
63 self.tree.Expand(self.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
64 elif opt == wx.NO:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
65 node_handler.on_drop(self,evt)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
66
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
67 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
68 cookie = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
69 html_str = "<table border=\"1\" ><tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
70 html_str += "<b>"+self.master_dom.getAttribute("name") + "</b>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
71 html_str += "</td></tr>\n"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
72 html_str += "<tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
73 max = tree.GetChildrenCount(handler.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
74 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
75 (child,cookie)=self.tree.GetFirstChild(self.mytree_node,cookie)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
76 except: # If this happens we probably have a newer version of wxPython
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
77 (child,cookie)=self.tree.GetFirstChild(self.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
78 obj = self.tree.GetPyData(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
79 for m in xrange(max):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
80 html_str += "<p>" + obj.tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
81 if m < max-1:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
82 child = self.tree.GetNextSibling(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
83 obj = self.tree.GetPyData(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
84 html_str += "</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
85 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
86
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
87 def get_size_constraint(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
88 return 1
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
89
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
90 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
91 return self.child_handlers['general'].get_char_name()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
92
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
93 ## def set_char_pp(self,attr,evl):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
94 ## return self.child_handlers['pp'].set_char_pp(attr,evl)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
95 ##
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
96 ## def get_char_pp( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
97 ## return self.child_handlers['pp'].get_char_pp(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
98 ##
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
99 def get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
100 return self.child_handlers['classes'].get_char_lvl(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
101
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
102
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
103
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
104 class SWd20char_handler(node_handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
105 """ Node handler for a SWd20 charactor
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
106 <nodehandler name='?' module='StarWarsd20' class='SWd20char_handler' />
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
107 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
108 def __init__(self,xml_dom,tree_node):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
109 node_handler.__init__(self,xml_dom,tree_node)
66
c54768cffbd4 Traipse Dev 'OpenRPG' {090818-00}
sirebral
parents: 60
diff changeset
110 self.frame = component.get('frame')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
111 self.child_handlers = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
112 self.new_child_handler('howtouse','HowTO use this tool',SWd20howto,'note')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
113 self.new_child_handler('general','General Information',SWd20general,'gear')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
114 self.new_child_handler('inventory','Money and Inventory',SWd20inventory,'money')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
115 self.new_child_handler('abilities','Abilities Scores',SWd20ability,'gear')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
116 self.new_child_handler('classes','Classes',SWd20classes,'knight')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
117 self.new_child_handler('saves','Saves',SWd20saves,'skull')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
118 self.new_child_handler('skills','Skills',SWd20skill,'book')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
119 self.new_child_handler('feats','Feats',SWd20feats,'book')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
120 self.new_child_handler('wp','Wound Points',SWd20hp,'gear')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
121 self.new_child_handler('vp','Vitality Points',SWd20vp,'gear')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
122 self.new_child_handler('attacks','Attacks',SWd20attacks,'spears')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
123 self.new_child_handler('ac','Armor',SWd20armor,'spears')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
124 self.myeditor = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
125
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
126
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
127 def on_version(self,old_version):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
128 node_handler.on_version(self,old_version)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
129 if old_version == "":
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
130 tmp = open(dir_struct["nodes"]+"StarWars_d20character.xml","r")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
131 xml_dom = parseXml_with_dlg(self.tree,tmp.read())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
132 xml_dom = xml_dom._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
133 tmp.close()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
134 ## add new nodes
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
135 for tag in ("howtouse","inventory","powers","divine","pp"):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
136 node_list = xml_dom.getElementsByTagName(tag)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
137 self.master_dom.appendChild(node_list[0])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
138
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
139 ## add new atts
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
140 melee_attack = self.master_dom.getElementsByTagName('melee')[0]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
141 melee_attack.setAttribute("second","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
142 melee_attack.setAttribute("third","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
143 melee_attack.setAttribute("forth","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
144 melee_attack.setAttribute("fifth","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
145 melee_attack.setAttribute("sixth","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
146 range_attack = self.master_dom.getElementsByTagName('ranged')[0]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
147 range_attack.setAttribute("second","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
148 range_attack.setAttribute("third","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
149 range_attack.setAttribute("forth","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
150 range_attack.setAttribute("fifth","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
151 range_attack.setAttribute("sixth","0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
152
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
153 gen_list = self.master_dom.getElementsByTagName('general')[0]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
154
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
155 for tag in ("currentxp","xptolevel"):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
156 node_list = xml_dom.getElementsByTagName(tag)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
157 gen_list.appendChild(node_list[0])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
158 ## temp fix
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
159 #parent = self.master_dom._get_parentNode()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
160 #old_dom = parent.replaceChild(xml_dom,self.master_dom)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
161 #self.master_dom = xml_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
162 print old_version
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
163
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
164
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
165 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
166 return self.child_handlers['general'].get_char_name()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
167
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
168 ## def set_char_pp(self,attr,evl):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
169 ## return self.child_handlers['pp'].set_char_pp(attr,evl)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
170 ##
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
171 ## def get_char_pp( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
172 ## return self.child_handlers['pp'].get_char_pp(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
173
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
174 def get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
175 return self.child_handlers['classes'].get_char_lvl(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
176
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
177
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
178 def new_child_handler(self,tag,text,handler_class,icon='gear'):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
179 node_list = self.master_dom.getElementsByTagName(tag)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
180 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
181 i = self.tree.icons[icon]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
182 new_tree_node = tree.AppendItem(self.mytree_node,text,i,i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
183 handler = handler_class(node_list[0],new_tree_node,self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
184 tree.SetPyData(new_tree_node,handler)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
185 self.child_handlers[tag] = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
186
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
187 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
188 return tabbed_panel(parent,self,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
189
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
190
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
191 def get_use_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
192 return tabbed_panel(parent,self,2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
193
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
194
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
195 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
196 html_str = "<table><tr><td colspan=2 >"+self.child_handlers['general'].tohtml()+"</td></tr>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
197 html_str += "<tr><td width='50%' valign=top >"+self.child_handlers['abilities'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
198 html_str += "<P>" + self.child_handlers['saves'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
199 html_str += "<P>" + self.child_handlers['attacks'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
200 html_str += "<P>" + self.child_handlers['ac'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
201 html_str += "<P>" + self.child_handlers['feats'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
202 #html_str += "<P>" + self.child_handlers['spells'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
203 #html_str += "<P>" + self.child_handlers['divine'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
204 #html_str += "<P>" + self.child_handlers['powers'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
205 html_str += "<P>" + self.child_handlers['inventory'].tohtml() +"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
206 html_str += "<td width='50%' valign=top >"+self.child_handlers['classes'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
207 html_str += "<P>" + self.child_handlers['wp'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
208 html_str += "<P>" + self.child_handlers['vp'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
209 #html_str += "<P>" + self.child_handlers['pp'].tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
210 html_str += "<P>" + self.child_handlers['skills'].tohtml() +"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
211 html_str += "</tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
212 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
213
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
214 def about(self):
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
215 html_str = "<img src='" + dir_struct["icon"]+'d20_logo.gif' "><br /><b>d20 Character Tool v0.7 beta</b>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
216 html_str += "<br />by Chris Davis<br />chris@rpgarchive.com"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
217 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
218
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
219 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
220 return self.child_handlers['general'].get_char_name()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
221 def get_armor_class( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
222 return self.child_handlers['ac'].get_armor_class()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
223 def get_max_hp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
224 return self.child_handlers['wp'].get_max_hp()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
225 def get_current_hp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
226 return self.child_handlers['wp'].get_current_hp()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
227 def get_max_vp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
228 return self.child_handlers['vp'].get_max_vp()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
229 def get_current_vp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
230 return self.child_handlers['vp'].get_current_vp()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
231
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
232 ## def set_char_pp(self,attr,evl):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
233 ## return self.child_handlers['pp'].set_char_pp(attr,evl)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
234 ##
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
235 ## def get_char_pp( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
236 ## return self.child_handlers['pp'].get_char_pp(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
237
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
238 def get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
239 return self.child_handlers['classes'].get_char_lvl(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
240
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
241 class tabbed_panel(wx.Notebook):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
242 def __init__(self, parent, handler, mode):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
243 wx.Notebook.__init__(self, parent, -1, size=(1200,800))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
244 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
245 self.parent = parent
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
246 tree = self.handler.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
247 max = tree.GetChildrenCount(handler.mytree_node, False)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
248 cookie = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
249 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
250 (child,cookie)=tree.GetFirstChild(handler.mytree_node,cookie)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
251 except: # If this happens we probably have a newer version of wxPython
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
252 (child,cookie)=tree.GetFirstChild(handler.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
253 obj = tree.GetPyData(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
254 for m in xrange(max):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
255
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
256 if mode == 1:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
257 panel = obj.get_design_panel(self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
258 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
259 panel = obj.get_use_panel(self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
260 name = obj.master_dom.getAttribute("name")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
261
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
262 if panel:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
263 self.AddPage(panel,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
264 if m < max-1:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
265 child = tree.GetNextSibling(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
266 obj = tree.GetPyData(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
267
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
268
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
269 def about(self):
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
270 html_str = "<img src='" + dir_struct["icon"]+'d20_logo.gif' "><br /><b>d20 Character Tool v0.7 beta</b>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
271 html_str += "<br />by Chris Davis<br />chris@rpgarchive.com"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
272 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
273
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
274 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
275 return self.child_handlers['general'].get_char_name()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
276
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
277 ## def set_char_pp(self,attr,evl):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
278 ## return self.child_handlers['pp'].set_char_pp(attr,evl)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
279 ##
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
280 ## def get_char_pp( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
281 ## return self.child_handlers['pp'].get_char_pp(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
282
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
283 def get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
284 return self.child_handlers['classes'].get_char_lvl(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
285
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
286 class SWd20_char_child(node_handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
287 """ Node Handler for skill. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
288 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
289 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
290 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
291 node_handler.__init__(self,xml_dom, tree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
292 self.char_hander = parent
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
293 self.drag = False
66
c54768cffbd4 Traipse Dev 'OpenRPG' {090818-00}
sirebral
parents: 60
diff changeset
294 self.frame = component.get('frame')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
295 self.myeditor = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
296
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
297
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
298 def on_drop(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
299 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
300
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
301 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
302 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
303
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
304 def on_ldclick(self,evt): #Function needs help. Needs an OnClose I think.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
305 if self.myeditor == None or self.myeditor.destroyed:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
306 title = self.master_dom.getAttribute('name') + " Editor"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
307 # Frame created in correctly.
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
308 self.myeditor = wx.Frame(self.frame,title,dir_struct["icon"]+'grid.ico')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
309 wnd = self.get_design_panel(self.myeditor)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
310 self.myeditor.panel = wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
311 self.wnd = wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
312 self.myeditor.Show(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
313 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
314 self.myeditor.Raise()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
315
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
316 def on_html(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
317 html_str = self.tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
318 wnd = http_html_window(self.frame.note,-1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
319 wnd.title = self.master_dom.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
320 self.frame.add_panel(wnd)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
321 wnd.SetPage(html_str)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
322
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
323 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
324 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
325
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
326 def get_use_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
327 return self.get_design_panel(parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
328
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
329 def delete(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
330 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
331
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
332
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
333 class SWd20skill(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
334 """ Node Handler for skill. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
335 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
336 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
337 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
338 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
339 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
340 icons = self.tree.icons
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
341 node_list = self.master_dom.getElementsByTagName('skill')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
342 self.skills={}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
343 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
344 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
345 self.skills[name] = n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
346 new_tree_node = tree.AppendItem(self.mytree_node,name,icons['gear'],icons['gear'])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
347 tree.SetPyData(new_tree_node,self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
348
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
349 def get_mod(self,name):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
350 skill = self.skills[name]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
351 stat = skill.getAttribute('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
352 ac = int(skill.getAttribute('armorcheck'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
353 if ac:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
354 ac = self.char_hander.child_handlers['ac'].get_check_pen()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
355 stat_mod = self.char_hander.child_handlers['abilities'].get_mod(stat)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
356 rank = int(skill.getAttribute('rank'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
357 misc = int(skill.getAttribute('misc'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
358 total = stat_mod + rank + misc + ac
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
359 return total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
360
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
361 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
362 #updated with code for untrained use check
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
363 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
364 name = self.tree.GetItemText(item)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
365 skill = self.skills[name]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
366 rank = int(skill.getAttribute('rank'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
367 untrained = int(skill.getAttribute('untrained'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
368 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
369 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
370 SWd20_char_child.on_ldclick(self,evt)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
371 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
372 if rank == 0 and untrained == 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
373 chat.Post('Can\'t use untrained!',True,True)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
374 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
375 mod = self.get_mod(name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
376 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
377 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
378 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
379 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
380 txt = '%s Skill Check: [1d20%s%s]' % (name, mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
381 chat.ParsePost(txt,True,True)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
382
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
383 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
384 wnd = outline_panel(parent,self,skill_grid,"Skills")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
385 wnd.title = "Skills (edit)"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
386 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
387
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
388 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
389 html_str = """<table border='1' width=100% ><tr BGCOLOR=#E9E9E9 ><th width='30%'>Skill</th><th>Key</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
390 <th>Rank</th><th>Abil</th><th>Misc</th><th>Total</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
391 node_list = self.master_dom.getElementsByTagName('skill')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
392 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
393 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
394 stat = n.getAttribute('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
395 rank = n.getAttribute('rank')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
396 html_str = html_str + "<tr ALIGN='center'><td>"+name+"</td><td>"+stat+"</td><td>"+rank+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
397 stat_mod = str(self.char_hander.child_handlers['abilities'].get_mod(stat))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
398 misc = n.getAttribute('misc')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
399 mod = str(self.get_mod(name))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
400 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
401 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
402 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
403 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
404 html_str = html_str + "<td>"+stat_mod+"</td><td>"+misc+'</td><td>%s%s</td></tr>' % (mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
405 html_str = html_str + "</table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
406 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
407
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
408
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
409 class SWd20ability(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
410 """ Node Handler for ability. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
411 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
412 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
413 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
414 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
415 self.abilities = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
416 node_list = self.master_dom.getElementsByTagName('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
417 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
418 icons = tree.icons
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
419 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
420 name = n.getAttribute('abbr')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
421 self.abilities[name] = n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
422 new_tree_node = tree.AppendItem( self.mytree_node, name, icons['gear'], icons['gear'] )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
423 tree.SetPyData( new_tree_node, self )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
424
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
425 def on_rclick( self, evt ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
426 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
427 name = self.tree.GetItemText( item )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
428 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
429 SWd20_char_child.on_ldclick( self, evt )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
430 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
431 mod = self.get_mod( name )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
432 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
433 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
434 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
435 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
436 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
437 txt = '%s check: [1d20%s%s]' % ( name, mod1, mod )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
438 chat.ParsePost( txt, True, True )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
439
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
440 def get_mod(self,abbr):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
441 score = int(self.abilities[abbr].getAttribute('base'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
442 mod = (score - 10) / 2
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
443 return mod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
444
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
445 def set_score(self,abbr,score):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
446 if score >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
447 self.abilities[abbr].setAttribute("base",str(score))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
448
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
449 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
450 wnd = outline_panel(parent,self,abil_grid,"Abilities")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
451 wnd.title = "Abilities (edit)"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
452 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
453
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
454 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
455 html_str = """<table border='1' width=100%><tr BGCOLOR=#E9E9E9 ><th width='50%'>Ability</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
456 <th>Base</th><th>Modifier</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
457 node_list = self.master_dom.getElementsByTagName('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
458 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
459 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
460 abbr = n.getAttribute('abbr')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
461 base = n.getAttribute('base')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
462 mod = str(self.get_mod(abbr))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
463 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
464 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
465 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
466 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
467 html_str = html_str + "<tr ALIGN='center'><td>"+name+"</td><td>"+base+'</td><td>%s%s</td></tr>' % (mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
468 html_str = html_str + "</table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
469 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
470
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
471 class SWd20saves(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
472 """ Node Handler for saves. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
473 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
474 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
475 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
476 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
477 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
478 icons = self.tree.icons
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
479 node_list = self.master_dom.getElementsByTagName('save')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
480 self.saves={}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
481 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
482 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
483 self.saves[name] = n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
484 new_tree_node = tree.AppendItem(self.mytree_node,name,icons['gear'],icons['gear'])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
485 tree.SetPyData(new_tree_node,self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
486
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
487 def get_mod(self,name):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
488 save = self.saves[name]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
489 stat = save.getAttribute('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
490 stat_mod = self.char_hander.child_handlers['abilities'].get_mod(stat)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
491 base = int(save.getAttribute('base'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
492 miscmod = int(save.getAttribute('miscmod'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
493 # magmod = int(save.getAttribute('magmod'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
494 # total = stat_mod + base + miscmod + magmod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
495 total = stat_mod + base + miscmod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
496 return total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
497
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
498 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
499 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
500 name = self.tree.GetItemText(item)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
501 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
502 SWd20_char_child.on_ldclick(self,evt)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
503 #wnd = save_grid(self.frame.note,self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
504 #wnd.title = "Saves"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
505 #self.frame.add_panel(wnd)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
506 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
507 mod = self.get_mod(name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
508 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
509 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
510 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
511 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
512 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
513 txt = '%s save: [1d20%s%s]' % (name, mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
514 chat.ParsePost( txt, True, True )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
515
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
516 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
517 wnd = outline_panel(parent,self,save_grid,"Saves")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
518 wnd.title = "Saves"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
519 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
520
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
521 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
522 html_str = """<table border='1' width=100% ><tr BGCOLOR=#E9E9E9 ><th width='30%'>Save</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
523 <th>Key</th><th>Base</th><th>Abil</th><th>Magic</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
524 <th>Misc</th><th>Total</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
525 node_list = self.master_dom.getElementsByTagName('save')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
526 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
527 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
528 stat = n.getAttribute('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
529 base = n.getAttribute('base')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
530 html_str = html_str + "<tr ALIGN='center'><td>"+name+"</td><td>"+stat+"</td><td>"+base+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
531 stat_mod = str(self.char_hander.child_handlers['abilities'].get_mod(stat))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
532 mag = n.getAttribute('magmod')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
533 misc = n.getAttribute('miscmod')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
534 mod = str(self.get_mod(name))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
535 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
536 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
537 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
538 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
539 html_str = html_str + "<td>"+stat_mod+"</td><td>"+mag+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
540 html_str = html_str + '<td>'+misc+'</td><td>%s%s</td></tr>' % (mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
541 html_str = html_str + "</table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
542 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
543
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
544
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
545 class SWd20general(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
546 """ Node Handler for general information. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
547 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
548 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
549 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
550 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
551
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
552 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
553 wnd = outline_panel(parent,self,gen_grid,"General Information")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
554 wnd.title = "General Info"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
555 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
556
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
557 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
558 n_list = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
559 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>General Information</th></tr><tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
560 for n in n_list:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
561 t_node = component.get('xml').safe_get_text_node(n)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
562 html_str += "<B>"+n._get_tagName().capitalize() +":</B> "
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
563 html_str += t_node._get_nodeValue() + ", "
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
564 html_str = html_str[:len(html_str)-2] + "</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
565 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
566
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
567 def on_name_change(self,name):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
568 self.char_hander.rename(name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
569
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
570 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
571 node = self.master_dom.getElementsByTagName( 'name' )[0]
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
572 t_node = component.get('xml').safe_get_text_node( node )
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
573 return t_node._get_nodeValue()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
574
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
575
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
576 class SWd20classes(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
577 """ Node Handler for classes. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
578 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
579 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
580 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
581 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
582
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
583 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
584 wnd = outline_panel(parent,self,class_panel,"Classes")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
585 wnd.title = "Classes"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
586 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
587
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
588 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
589 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Classes</th></tr><tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
590 n_list = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
591 for n in n_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
592 html_str += n.getAttribute('name') + " ("+n.getAttribute('level')+"), "
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
593 html_str = html_str[:len(html_str)-2] + "</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
594 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
595
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
596 def get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
597 node_list = self.master_dom.getElementsByTagName('class')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
598 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
599 lvl = n.getAttribute('level')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
600 type = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
601 if attr == "level":
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
602 return lvl
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
603 elif attr == "class":
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
604 return type
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
605
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
606
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
607 class SWd20feats(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
608 """ Node Handler for classes. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
609 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
610 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
611 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
612 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
613
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
614 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
615 wnd = outline_panel(parent,self,feat_panel,"Feats")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
616 wnd.title = "Feats"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
617 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
618
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
619 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
620 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Feats</th></tr><tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
621 n_list = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
622 for n in n_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
623 html_str += n.getAttribute('name')+ ", "
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
624 html_str = html_str[:len(html_str)-2] + "</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
625 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
626
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
627 class SWd20howto(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
628 """ Node Handler for hit points. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
629 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
630 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
631 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
632 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
633
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
634 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
635 wnd = outline_panel(parent,self,howto_panel,"How To")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
636 wnd.title = "How To"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
637 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
638
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
639 class SWd20inventory(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
640 """ Node Handler for general information. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
641 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
642 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
643 def __init__(self, xml_dom, tree_node, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
644 SWd20_char_child.__init__(self, xml_dom, tree_node, parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
645
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
646 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
647 wnd = outline_panel(parent,self,inventory_grid,"Inventory")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
648 wnd.title = "General Info"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
649 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
650
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
651 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
652 n_list = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
653 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>General Information</th></tr><tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
654 for n in n_list:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
655 t_node = component.get('xml').safe_get_text_node(n)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
656 html_str += "<B>"+n._get_tagName().capitalize() +":</B> "
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
657 html_str += t_node._get_nodeValue() + "<br />"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
658 html_str = html_str[:len(html_str)-2] + "</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
659 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
660
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
661 def on_name_change(self,name):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
662 self.char_hander.rename(name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
663
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
664 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
665 node = self.master_dom.getElementsByTagName( 'name' )[0]
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
666 t_node = component.get('xml').safe_get_text_node( node )
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
667 return t_node._get_nodeValue()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
668
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
669 class SWd20hp(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
670 """ Node Handler for hit points. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
671 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
672 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
673 def __init__(self,xml_dom,tree_node,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
674 SWd20_char_child.__init__(self,xml_dom,tree_node,parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
675
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
676 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
677 wnd = outline_panel(parent,self,hp_panel,"Wound Points")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
678 wnd.title = "Wound Points"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
679 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
680
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
681 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
682 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=4>Wound Points</th></tr>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
683 html_str += "<tr><th>Max:</th><td>"+self.master_dom.getAttribute('max')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
684 html_str += "<th>Current:</th><td>"+self.master_dom.getAttribute('current')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
685 html_str += "</tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
686 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
687
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
688 def get_max_hp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
689 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
690 return eval( self.master_dom.getAttribute( 'max' ) )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
691 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
692 return 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
693 def get_current_hp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
694 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
695 return eval( self.master_dom.getAttribute( 'current' ) )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
696 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
697 return 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
698
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
699 class SWd20vp(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
700 """ Node Handler for hit points. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
701 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
702 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
703 def __init__(self,xml_dom,tree_node,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
704 SWd20_char_child.__init__(self,xml_dom,tree_node,parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
705
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
706 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
707 wnd = outline_panel(parent,self,vp_panel,"Vitality Points")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
708 wnd.title = "Vitality Points"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
709 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
710
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
711 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
712 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=4>Vitality Points</th></tr>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
713 html_str += "<tr><th>Max:</th><td>"+self.master_dom.getAttribute('max')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
714 html_str += "<th>Current:</th><td>"+self.master_dom.getAttribute('current')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
715 html_str += "</tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
716 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
717
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
718 def get_max_vp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
719 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
720 return eval( self.master_dom.getAttribute( 'max' ) )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
721 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
722 return 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
723 def get_current_vp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
724 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
725 return eval( self.master_dom.getAttribute( 'current' ) )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
726 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
727 return 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
728
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
729 class SWd20attacks(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
730 """ Node Handler for attacks. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
731 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
732 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
733 def __init__(self,xml_dom,tree_node,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
734 SWd20_char_child.__init__(self,xml_dom,tree_node,parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
735 node_list = self.master_dom.getElementsByTagName('melee')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
736 self.melee = node_list[0]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
737 node_list = self.master_dom.getElementsByTagName('ranged')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
738 self.ranged = node_list[0]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
739 self.refresh_weapons()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
740
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
741 def refresh_weapons(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
742 self.weapons = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
743 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
744 icons = self.tree.icons
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
745 tree.CollapseAndReset(self.mytree_node)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
746 node_list = self.master_dom.getElementsByTagName('weapon')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
747 for n in node_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
748 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
749 new_tree_node = tree.AppendItem(self.mytree_node,name,icons['sword'],icons['sword'])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
750 tree.SetPyData(new_tree_node,self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
751 self.weapons[name]=n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
752
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
753 def get_mod(self,type='m'):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
754 (base, base2, base3, base4, base5, base6, stat_mod, misc) = self.get_attack_data(type)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
755 return base + misc + stat_mod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
756
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
757 def get_attack_data(self,type='m'):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
758 if type=='m' or type=='0':
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
759 stat_mod = self.char_hander.child_handlers['abilities'].get_mod('Str')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
760 temp = self.melee
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
761 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
762 stat_mod = self.char_hander.child_handlers['abilities'].get_mod('Dex')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
763 temp = self.ranged
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
764 base = int(temp.getAttribute('base'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
765 base2 = int(temp.getAttribute('second'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
766 base3 = int(temp.getAttribute('third'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
767 base4 = int(temp.getAttribute('forth'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
768 base5 = int(temp.getAttribute('fifth'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
769 base6 = int(temp.getAttribute('sixth'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
770 misc = int(temp.getAttribute('misc'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
771 return (base, base2, base3, base4, base5, base6, stat_mod ,misc)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
772
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
773 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
774 #removed the DnD specific code
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
775 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
776 name = self.tree.GetItemText(item)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
777 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
778 SWd20_char_child.on_ldclick(self,evt)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
779 #self.frame.add_panel(self.get_design_panel(self.frame.note))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
780 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
781 mod = int(self.weapons[name].getAttribute('mod'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
782 if self.weapons[name].getAttribute('range') == '0':
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
783 mod = mod + self.get_mod('m')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
784 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
785 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
786 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
787 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
788 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
789 mod = mod + self.get_mod('r')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
790 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
791 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
792 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
793 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
794 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
795 dmg = self.weapons[name].getAttribute('damage')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
796 lvl = self.get_char_lvl('level')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
797 cname = self.char_hander.get_char_name()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
798 txt = '%s %s Attack Roll: [1d20%s%s] ===> DMG: [%s%s%s]' % (cname, name, mod1, mod, dmg, mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
799 chat.ParsePost( txt, True, False )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
800 temp = self.melee
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
801 stat_mod = self.char_hander.child_handlers['abilities'].get_mod('Str')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
802
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
803 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
804 wnd = outline_panel(parent,self,attack_panel,"Attacks")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
805 wnd.title = "Attacks"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
806 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
807
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
808 def get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
809 return self.char_hander.get_char_lvl(attr)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
810
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
811 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
812 melee = self.get_attack_data('m')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
813 ranged = self.get_attack_data('r')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
814 html_str = """<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Attack</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
815 <th>Total</th><th >Base</th><th>Abil</th><th>Misc</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
816 html_str += "<tr ALIGN='center' ><th >Melee:</th>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
817 html_str += "<td>"+str(melee[0]+melee[1]+melee[2])+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
818 html_str += "<td>"+str(melee[0])+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
819 html_str += "<td>"+str(melee[1])+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
820 html_str += "<td>"+str(melee[2])+"</td></tr>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
821
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
822 html_str += "<tr ALIGN='center' ><th >Ranged:</th>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
823 html_str += "<td>"+str(ranged[0]+ranged[1]+ranged[2])+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
824 html_str += "<td>"+str(ranged[0])+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
825 html_str += "<td>"+str(ranged[1])+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
826 html_str += "<td>"+str(ranged[2])+"</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
827
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
828 n_list = self.master_dom.getElementsByTagName('weapon')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
829 for n in n_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
830 mod = n.getAttribute('mod')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
831 if mod >= 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
832 mod1 = "+"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
833 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
834 mod1 = ""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
835 ran = n.getAttribute('range')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
836 total = str(int(mod) + self.get_mod(ran))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
837 html_str += """<P><table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=2>Weapon</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
838 <th>Attack</th><th >Damage</th><th>Critical</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
839 html_str += "<tr ALIGN='center' ><td colspan=2>"+n.getAttribute('name')+"</td><td>"+total+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
840 html_str += "<td>"+n.getAttribute('damage')+"</td><td>"+n.getAttribute('critical')+"</td></tr>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
841 html_str += """<tr BGCOLOR=#E9E9E9 ><th>Range</th><th>Weight</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
842 <th>Type</th><th>Size</th><th>Misc Mod</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
843 html_str += "<tr ALIGN='center'><td>"+ran+"</td><td>"+n.getAttribute('weight')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
844 html_str += "<td>"+n.getAttribute('type')+"</td><td>"+n.getAttribute('size')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
845 html_str += '<td>%s%s</td></tr></table>' % (mod1, mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
846 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
847
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
848 class SWd20armor(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
849 """ Node Handler for ac. This handler will be
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
850 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
851 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
852 def __init__(self,xml_dom,tree_node,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
853 SWd20_char_child.__init__(self,xml_dom,tree_node,parent)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
854
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
855 def get_total_weight(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
856 return self.get_total('weight')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
857
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
858 def get_check_pen(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
859 return self.get_total('checkpenalty')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
860
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
861 def get_armor_class(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
862 ac_total = 10
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
863 ac_total += self.get_total('bonus')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
864 dex_mod = self.char_hander.child_handlers['abilities'].get_mod('Dex')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
865 max_dex = self.get_max_dex()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
866 if dex_mod < max_dex:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
867 ac_total += dex_mod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
868 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
869 ac_total += max_dex
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
870 return ac_total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
871
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
872 def get_max_dex(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
873 armor_list = self.master_dom.getElementsByTagName('armor')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
874 dex = 10
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
875 for a in armor_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
876 temp = int(a.getAttribute("maxdex"))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
877 if temp < dex:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
878 dex = temp
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
879 return dex
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
880
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
881 def get_total(self,attr):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
882 armor_list = self.master_dom.getElementsByTagName('armor')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
883 total = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
884 for a in armor_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
885 total += int(a.getAttribute(attr))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
886 return total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
887
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
888 def get_design_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
889 wnd = outline_panel(parent,self,ac_panel,"Armor")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
890 wnd.title = "Armor"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
891 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
892
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
893 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
894 html_str = """<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>AC</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
895 <th>Check Penalty</th><th >Spell Failure</th><th>Max Dex</th><th>Total Weight</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
896 html_str += "<tr ALIGN='center' ><td>"+str(self.get_armor_class())+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
897 html_str += "<td>"+str(self.get_check_pen())+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
898 html_str += "<td>"+str(self.get_spell_failure())+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
899 html_str += "<td>"+str(self.get_max_dex())+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
900 html_str += "<td>"+str(self.get_total_weight())+"</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
901 n_list = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
902 for n in n_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
903 html_str += """<P><table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=3>Armor</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
904 <th>Type</th><th >Bonus</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
905 html_str += "<tr ALIGN='center' ><td colspan=3>"+n.getAttribute('name')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
906 html_str += "<td>"+n.getAttribute('type')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
907 html_str += "<td>"+n.getAttribute('bonus')+"</td></tr>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
908 html_str += """<tr BGCOLOR=#E9E9E9 ><th>Check Penalty</th><th>Spell Failure</th>
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
909 <th>Max Dex</th><th>Speed</th><th>Weight</th></tr>"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
910 html_str += "<tr ALIGN='center'><td>"+n.getAttribute('checkpenalty')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
911 html_str += "<td>"+n.getAttribute('maxdex')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
912 html_str += "<td>"+n.getAttribute('speed')+"</td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
913 html_str += "<td>"+n.getAttribute('weight')+"</td></tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
914 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
915
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
916
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
917 ########################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
918 ## d20 char windows
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
919 ########################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
920
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
921 class base_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
922 def __init__(self, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
923 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
924
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
925 #self.build_ctrls()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
926 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
927
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
928 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
929 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
930 #self.splitter.SetDimensions(0,0,s[0],s[1])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
931
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
932 class outline_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
933 def __init__(self, parent, handler, wnd, txt,):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
934 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
935 self.panel = wnd(self,handler)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
936 self.outline = wx.StaticBox(self,-1,txt)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
937 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
938
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
939 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
940 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
941 self.panel.SetDimensions(20,20,s[0]-40,s[1]-40)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
942 self.outline.SetDimensions(5,5,s[0]-10,s[1]-10)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
943
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
944 class char_panel(wx.ScrolledWindow):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
945 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
946 pname = handler.master_dom.setAttribute("name", 'TWO')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
947 wx.ScrolledWindow.__init__(self, parent, -1,style=wx.VSCROLL | wx.SUNKEN_BORDER )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
948 self.height = 1200
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
949 self.SetScrollbars(10, 10,80, self.height/10)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
950 self.main_sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
951 self.panels = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
952 keys = handler.child_handlers.keys()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
953 for k in keys:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
954 self.panels[k] = handler.child_handlers[k].get_design_panel(self, [k])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
955 self.sub_sizer = wx.BoxSizer(wx.VERTICAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
956 self.sub_sizer2 = wx.BoxSizer(wx.VERTICAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
957 self.sub_sizer.Add(self.panels['general'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
958 self.sub_sizer.Add(self.panels['abilities'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
959
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
960 self.sub_sizer.Add(self.panels['attacks'], 2, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
961 self.sub_sizer.Add(self.panels['ac'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
962 #self.sub_sizer.Add(self.panels['spells'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
963
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
964 self.sub_sizer2.Add(self.panels['classes'], 2, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
965 self.sub_sizer2.Add(self.panels['wp'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
966 self.sub_sizer2.Add(self.panels['vp'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
967 #self.sub_sizer2.Add(self.panels['pp'], 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
968 self.sub_sizer2.Add(self.panels['saves'], 2, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
969
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
970 self.sub_sizer2.Add(self.panels['feats'], 2, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
971 #self.sub_sizer2.Add(self.panels['powers'], 2, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
972 self.sub_sizer2.Add(self.panels['skills'], 3, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
973
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
974 self.main_sizer.Add(self.sub_sizer, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
975 self.main_sizer.Add(self.sub_sizer2, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
976 self.panels['abilities'].panel.char_wnd = self
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
977 self.SetSizer(self.main_sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
978 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
979
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
980
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
981 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
982 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
983 self.SetScrollbars(10, 10,s[0]/10, self.height/10)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
984 dc = wx.ClientDC(self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
985 x = dc.DeviceToLogicalX(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
986 y = dc.DeviceToLogicalY(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
987 self.main_sizer.SetDimension(x,y,s[0],self.height)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
988 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
989
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
990 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
991 self.panels['saves'].panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
992 self.panels['skills'].panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
993 self.panels['attacks'].panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
994 # self.panels['powers'].panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
995 # self.panels['spells'].panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
996
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
997 HOWTO_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
998
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
999 class howto_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1000 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1001 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1002 pname = handler.master_dom.setAttribute("name", 'How To')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1003 self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1004 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1005 n_list = self.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1006 for n in n_list:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1007 t_node = component.get('xml').safe_get_text_node(n)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1008 self.sizer.AddMany([ (wx.StaticText(self, -1, t_node._get_nodeValue()), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1009 ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1010 self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1011 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1012
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1013
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1014 WP_CUR = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1015 WP_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1016
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1017 class hp_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1018 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1019 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1020 pname = handler.master_dom.setAttribute("name", 'WoundPoints')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1021 self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1022 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1023 self.sizer.AddMany([ (wx.StaticText(self, -1, "WP Current:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1024 (wx.TextCtrl(self, WP_CUR, self.master_dom.getAttribute('current')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1025 (wx.StaticText(self, -1, "WP Max:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1026 (wx.TextCtrl(self, WP_MAX, self.master_dom.getAttribute('max')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1027 ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1028 self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1029 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1030 self.Bind(wx.EVT_TEXT, self.on_text, id=WP_MAX)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1031 self.Bind(wx.EVT_TEXT, self.on_text, id=WP_CUR)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1032 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1033
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1034 def on_text(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1035 id = evt.GetId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1036 if id == WP_CUR:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1037 self.master_dom.setAttribute('current',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1038 elif id == WP_MAX:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1039 self.master_dom.setAttribute('max',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1040
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1041 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1042 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1043 self.sizer.SetDimension(0,0,s[0],s[1])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1044
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1045 VP_CUR = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1046 VP_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1047
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1048 class vp_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1049 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1050 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1051 pname = handler.master_dom.setAttribute("name", 'VitalityPoints')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1052 self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1053 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1054 self.sizer.AddMany([ (wx.StaticText(self, -1, "VP Current:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1055 (wx.TextCtrl(self, VP_CUR, self.master_dom.getAttribute('current')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1056 (wx.StaticText(self, -1, "VP Max:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1057 (wx.TextCtrl(self, VP_MAX, self.master_dom.getAttribute('max')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1058 ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1059 self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1060 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1061 self.Bind(wx.EVT_TEXT, self.on_text, id=VP_MAX)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1062 self.Bind(wx.EVT_TEXT, self.on_text, id=VP_CUR)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1063 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1064
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1065 def on_text(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1066 id = evt.GetId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1067 if id == VP_CUR:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1068 self.master_dom.setAttribute('current',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1069 elif id == VP_MAX:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1070 self.master_dom.setAttribute('max',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1071
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1072 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1073 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1074 self.sizer.SetDimension(0,0,s[0],s[1])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1075
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1076 #PP_CUR = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1077 #PP_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1078 #PP_FRE = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1079 #PP_MFRE = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1080
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1081 #class pp_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1082 # def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1083 # wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1084 # pname = handler.master_dom.setAttribute("name", 'PowerPoints')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1085 # self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1086 # self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1087 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1088 # self.sizer.AddMany([ (wx.StaticText(self, -1, "PP Current:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1089 # (wx.TextCtrl(self, PP_CUR, self.master_dom.getAttribute('current1')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1090 # (wx.StaticText(self, -1, "PP Max:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1091 # (wx.TextCtrl(self, PP_MAX, self.master_dom.getAttribute('max1')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1092 # (wx.StaticText(self, -1, "Current Free Talants per day:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1093 # (wx.TextCtrl(self, PP_FRE, self.master_dom.getAttribute('free')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1094 # (wx.StaticText(self, -1, "Max Free Talants per day:"), 0, wx.ALIGN_CENTER_VERTICAL),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1095 # (wx.TextCtrl(self, PP_MFRE, self.master_dom.getAttribute('maxfree')), 0, wx.EXPAND),
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1096 # ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1097 # self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1098 # self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1099 # self.Bind(wx.EVT_TEXT, self.on_text, id=PP_MAX)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1100 # self.Bind(wx.EVT_TEXT, self.on_text, id=PP_CUR)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1101 # self.Bind(wx.EVT_TEXT, self.on_text, id=PP_FRE)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1102 # self.Bind(wx.EVT_TEXT, self.on_text, id=PP_MFRE)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1103 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1104 # def on_text(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1105 # id = evt.GetId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1106 # if id == PP_CUR:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1107 # self.master_dom.setAttribute('current1',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1108 # elif id == PP_MAX:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1109 # self.master_dom.setAttribute('max1',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1110 # elif id == PP_FRE:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1111 # self.master_dom.setAttribute('free',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1112 # elif id == PP_MFRE:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1113 # self.master_dom.setAttribute('maxfree',evt.GetString())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1114 #
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1115 # def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1116 # s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1117 # self.sizer.SetDimension(0,0,s[0],s[1])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1118
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1119
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1120 class gen_grid(wx.grid.Grid):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1121 """grid for gen info"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1122 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1123 pname = handler.master_dom.setAttribute("name", 'General')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1124 wx.grid.Grid.__init__(self, parent, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1125 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1126 self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1127 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1128 n_list = handler.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1129 self.CreateGrid(len(n_list),2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1130 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1131 self.SetColLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1132 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1133 i = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1134 for i in range(len(n_list)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1135 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1136
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1137 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1138 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1139 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1140 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1141 t_node = self.n_list[row]._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1142 t_node._set_nodeValue(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1143 if row==0: self.handler.on_name_change(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1144
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1145 def refresh_row(self,rowi):
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1146 t_node = component.get('xml').safe_get_text_node(self.n_list[rowi])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1147 self.SetCellValue(rowi,0,self.n_list[rowi]._get_tagName())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1148 self.SetReadOnly(rowi,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1149 self.SetCellValue(rowi,1,t_node._get_nodeValue())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1150
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1151 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1152 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1153 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1154 col_w = w/(cols)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1155 for i in range(0,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1156 self.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1157 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1158 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1159
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1160 class inventory_grid(wx.grid.Grid):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1161 """grid for gen info"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1162 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1163 pname = handler.master_dom.setAttribute("name", 'Money and Inventory')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1164 wx.grid.Grid.__init__(self, parent, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1165 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1166 self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1167 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1168 n_list = handler.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1169 self.CreateGrid(len(n_list),2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1170 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1171 self.SetColLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1172 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1173 i = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1174 for i in range(len(n_list)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1175 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1176
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1177 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1178 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1179 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1180 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1181 t_node = self.n_list[row]._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1182 t_node._set_nodeValue(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1183 if row==0: self.handler.on_name_change(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1184
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1185 def refresh_row(self,rowi):
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1186 t_node = component.get('xml').safe_get_text_node(self.n_list[rowi])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1187 self.SetCellValue(rowi,0,self.n_list[rowi]._get_tagName())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1188 self.SetReadOnly(rowi,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1189 self.SetCellValue(rowi,1,t_node._get_nodeValue())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1190
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1191 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1192 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1193 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1194 col_w = w/(cols)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1195 for i in range(0,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1196 self.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1197 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1198 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1199
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1200 class abil_grid(wx.grid.Grid):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1201 """grid for abilities"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1202 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1203 pname = handler.master_dom.setAttribute("name", 'Stats')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1204 wx.grid.Grid.__init__(self, parent, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1205 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1206 self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1207 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1208 stats = handler.master_dom.getElementsByTagName('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1209 self.CreateGrid(len(stats),3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1210 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1211 col_names = ['Ability','Score','Modifier']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1212 for i in range(len(col_names)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1213 self.SetColLabelValue(i,col_names[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1214 self.stats = stats
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1215 i = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1216 for i in range(len(stats)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1217 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1218 self.char_wnd = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1219
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1220 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1221 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1222 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1223 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1224 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1225 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1226 self.stats[row].setAttribute('base',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1227 self.refresh_row(row)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1228 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1229 self.SetCellValue(row,col,"0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1230 if self.char_wnd:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1231 self.char_wnd.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1232
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1233 def refresh_row(self,rowi):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1234 s = self.stats[rowi]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1235 name = s.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1236 abbr = s.getAttribute('abbr')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1237 self.SetCellValue(rowi,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1238 self.SetReadOnly(rowi,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1239 self.SetCellValue(rowi,1,s.getAttribute('base'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1240 self.SetCellValue(rowi,2,str(self.handler.get_mod(abbr)))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1241 self.SetReadOnly(rowi,2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1242
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1243 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1244 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1245 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1246 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1247 self.SetColSize(0,col_w*3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1248 for i in range(1,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1249 self.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1250 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1251 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1252
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1253 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1254 for r in range(self.GetNumberRows()-1):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1255 self.refresh_row(r)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1256
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1257
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1258 class save_grid(wx.grid.Grid):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1259 """grid for saves"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1260 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1261 pname = handler.master_dom.setAttribute("name", 'Saves')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1262 wx.grid.Grid.__init__(self, parent, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1263 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1264 self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1265 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1266 saves = handler.master_dom.getElementsByTagName('save')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1267 self.stats = handler.char_hander.child_handlers['abilities']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1268 self.CreateGrid(len(saves),7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1269 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1270 col_names = ['Save','Key','base','Abil','Magic','Misc','Total']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1271 for i in range(len(col_names)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1272 self.SetColLabelValue(i,col_names[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1273 self.saves = saves
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1274 i = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1275 for i in range(len(saves)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1276 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1277
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1278 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1279 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1280 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1281 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1282 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1283 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1284 if col == 2:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1285 self.saves[row].setAttribute('base',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1286 elif col ==4:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1287 self.saves[row].setAttribute('magmod',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1288 elif col ==4:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1289 self.saves[row].setAttribute('miscmod',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1290 self.refresh_row(row)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1291 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1292 self.SetCellValue(row,col,"0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1293
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1294 def refresh_row(self,rowi):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1295 s = self.saves[rowi]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1296 name = s.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1297 self.SetCellValue(rowi,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1298 self.SetReadOnly(rowi,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1299 stat = s.getAttribute('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1300 self.SetCellValue(rowi,1,stat)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1301 self.SetReadOnly(rowi,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1302 self.SetCellValue(rowi,2,s.getAttribute('base'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1303 self.SetCellValue(rowi,3,str(self.stats.get_mod(stat)))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1304 self.SetReadOnly(rowi,3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1305 self.SetCellValue(rowi,4,s.getAttribute('magmod'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1306 self.SetCellValue(rowi,5,s.getAttribute('miscmod'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1307 mod = str(self.handler.get_mod(name))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1308 self.SetCellValue(rowi,6,mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1309 self.SetReadOnly(rowi,6)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1310
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1311 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1312 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1313 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1314 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1315 self.SetColSize(0,col_w*3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1316 for i in range(1,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1317 self.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1318 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1319 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1320
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1321 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1322 for r in range(self.GetNumberRows()):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1323 self.refresh_row(r)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1324
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1325
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1326 class skill_grid(wx.grid.Grid):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1327 """ panel for skills """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1328 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1329 pname = handler.master_dom.setAttribute("name", 'Skills')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1330 wx.grid.Grid.__init__(self, parent, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1331 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1332 self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1333 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1334 skills = handler.master_dom.getElementsByTagName('skill')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1335 self.stats = handler.char_hander.child_handlers['abilities']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1336 self.CreateGrid(len(skills),7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1337 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1338 col_names = ['Skill','Key','Rank','Abil','Misc','Total']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1339 for i in range(len(col_names)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1340 self.SetColLabelValue(i,col_names[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1341 rowi = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1342 self.skills = skills
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1343 for i in range(len(skills)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1344 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1345
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1346 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1347 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1348 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1349 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1350 #print value
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1351 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1352 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1353 if col == 3:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1354 self.skills[row].setAttribute('rank',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1355 elif col ==5:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1356 self.skills[row].setAttribute('misc',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1357 elif col == 1:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1358 self.skills[row].setAttribute('untrained',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1359 self.refresh_row(row)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1360 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1361 self.SetCellValue(row,col,"0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1362
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1363 def refresh_row(self,rowi):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1364 s = self.skills[rowi]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1365 name = s.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1366 self.SetCellValue(rowi,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1367 self.SetReadOnly(rowi,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1368 self.SetCellValue(rowi,1,s.getAttribute('untrained'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1369 stat = s.getAttribute('stat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1370 self.SetCellValue(rowi,2,stat)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1371 self.SetReadOnly(rowi,2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1372 self.SetCellValue(rowi,3,s.getAttribute('rank'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1373 self.SetCellValue(rowi,4,str(self.stats.get_mod(stat)))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1374 self.SetReadOnly(rowi,4)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1375 self.SetCellValue(rowi,5,s.getAttribute('misc'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1376 mod = str(self.handler.get_mod(name))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1377 self.SetCellValue(rowi,6,mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1378 self.SetReadOnly(rowi,6)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1379
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1380 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1381 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1382 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1383 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1384 self.SetColSize(0,col_w*3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1385 for i in range(1,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1386 self.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1387 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1388 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1389
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1390 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1391 for r in range(self.GetNumberRows()):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1392 self.refresh_row(r)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1393
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1394
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1395
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1396 class feat_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1397 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1398 pname = handler.master_dom.setAttribute("name", 'Feats')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1399 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1400 self.grid =wx.grid.Grid(self, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1401 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1402 remove_btn = wx.Button(self, wx.ID_ANY, "Remove Feat")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1403 add_btn = wx.Button(self, wx.ID_ANY, "Add Feat")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1404 sizer.Add(remove_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1405 sizer.Add(wx.Size(10,10))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1406 sizer.Add(add_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1407 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1408 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1409 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1410 self.Bind(wx.EVT_BUTTON, self.on_remove, remove_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1411 self.Bind(wx.EVT_BUTTON, self.on_add, add_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1412
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1413 n_list = handler.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1414 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1415 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1416 self.grid.CreateGrid(len(n_list),2,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1417 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1418 self.grid.SetColLabelValue(0,"Feat")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1419 self.grid.SetColLabelValue(1,"Type")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1420 for i in range(len(n_list)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1421 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1422 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1423
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1424 def refresh_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1425 feat = self.n_list[i]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1426 name = feat.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1427 type = feat.getAttribute('type')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1428 self.grid.SetCellValue(i,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1429 self.grid.SetReadOnly(i,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1430 self.grid.SetCellValue(i,1,type)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1431 self.grid.SetReadOnly(i,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1432
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1433 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1434 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1435 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1436 if self.grid.IsInSelection(i,0):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1437 self.grid.DeleteRows(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1438 self.master_dom.removeChild(self.n_list[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1439
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1440 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1441 if not self.temp_dom:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1442 tmp = open(dir_struct["SWd20"]+"d20feats.xml","r")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1443 xml_dom = parseXml_with_dlg(self,tmp.read())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1444 xml_dom = xml_dom._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1445 tmp.close()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1446 self.temp_dom = xml_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1447 f_list = self.temp_dom.getElementsByTagName('feat')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1448 opts = []
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1449 for f in f_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1450 opts.append(f.getAttribute('name'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1451 dlg = wx.SingleChoiceDialog(self,'Choose Feat','Feats',opts)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1452 if dlg.ShowModal() == wx.ID_OK:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1453 i = dlg.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1454 new_node = self.master_dom.appendChild(f_list[i].cloneNode(False))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1455 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1456 self.refresh_row(self.grid.GetNumberRows()-1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1457 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1458
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1459
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1460 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1461 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1462 self.grid.SetDimensions(0,0,s[0],s[1]-25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1463 self.sizer.SetDimension(0,s[1]-25,s[0],25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1464 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1465 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1466 col_w = w/(cols)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1467 for i in range(0,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1468 self.grid.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1469
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1470 class attack_grid(wx.grid.Grid):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1471 """grid for attacks"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1472 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1473 pname = handler.master_dom.setAttribute("name", 'Melee')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1474 wx.grid.Grid.__init__(self, parent, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1475 self.parent = parent
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1476 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1477 self.rows = (self.handler.melee,self.handler.ranged)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1478 self.CreateGrid(2,10)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1479 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1480 col_names = ['Type','base','base 2','base 3','base 4','base 5','base 6','abil','misc','Total']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1481 for i in range(len(col_names)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1482 self.SetColLabelValue(i,col_names[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1483 self.SetCellValue(0,0,"Melee")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1484 self.SetCellValue(1,0,"Ranged")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1485 self.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1486 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1487 self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1488
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1489 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1490 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1491 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1492 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1493 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1494 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1495 if col==1:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1496 self.rows[row].setAttribute('base',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1497 elif col==2:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1498 self.rows[row].setAttribute('second',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1499 elif col==3:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1500 self.rows[row].setAttribute('third',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1501 elif col==4:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1502 self.rows[row].setAttribute('forth',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1503 elif col==5:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1504 self.rows[row].setAttribute('fifth',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1505 elif col==6:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1506 self.rows[row].setAttribute('sixth',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1507 elif col==8:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1508 self.rows[row].setAttribute('misc',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1509 self.parent.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1510 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1511 self.SetCellValue(row,col,"0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1512
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1513 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1514 melee = self.handler.get_attack_data('m')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1515 ranged = self.handler.get_attack_data('r')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1516 for i in range(0,7):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1517 self.SetCellValue(0,i+1,str(melee[i]))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1518 self.SetCellValue(1,i+1,str(ranged[i]))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1519 self.SetCellValue(0,9,str(melee[0]+melee[6]+melee[7]))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1520 self.SetCellValue(1,9,str(ranged[0]+ranged[6]+ranged[7]))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1521 self.SetReadOnly(0,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1522 self.SetReadOnly(1,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1523 self.SetReadOnly(0,7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1524 self.SetReadOnly(1,7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1525 self.SetReadOnly(0,9)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1526 self.SetReadOnly(1,9)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1527
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1528
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1529 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1530 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1531 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1532 col_w = w/(cols+1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1533 self.SetColSize(0,col_w*2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1534 for i in range(1,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1535 self.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1536 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1537 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1538
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1539 class weapon_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1540 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1541 pname = handler.master_dom.setAttribute("name", 'Weapons')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1542 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1543 self.grid =wx.grid.Grid(self, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1544 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1545 remove_btn = wx.Button(self, 10, "Remove Weapon")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1546 add_btn = wx.Button(self, 20, "Add Weapon")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1547 sizer.Add(remove_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1548 sizer.Add(wx.Size(10,10))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1549 sizer.Add(add_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1550 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1551 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1552 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1553 self.Bind(wx.EVT_BUTTON, self.on_remove, remove_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1554 self.Bind(wx.EVT_BUTTON, self.on_add, add_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1555 self.grid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1556 n_list = handler.master_dom.getElementsByTagName('weapon')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1557 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1558 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1559 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1560 self.grid.CreateGrid(len(n_list),9,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1561 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1562 col_names = ['Name','damage','mod','critical','type','weight','range','size','Total']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1563 for i in range(len(col_names)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1564 self.grid.SetColLabelValue(i,col_names[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1565 self.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1566 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1567
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1568 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1569 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1570 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1571 value = self.grid.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1572 if col == 0:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1573 self.n_list[row].setAttribute('name',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1574 elif col == 2:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1575 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1576 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1577 self.n_list[row].setAttribute('mod',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1578 self.refresh_row(row)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1579 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1580 self.grid.SetCellValue(row,col,"1")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1581 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1582 self.n_list[row].setAttribute(self.grid.GetColLabelValue(col),value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1583
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1584 def refresh_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1585 n = self.n_list[i]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1586 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1587 mod = n.getAttribute('mod')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1588 ran = n.getAttribute('range')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1589 total = str(int(mod) + self.handler.get_mod(ran))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1590 self.grid.SetCellValue(i,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1591 self.grid.SetCellValue(i,1,n.getAttribute('damage'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1592 self.grid.SetCellValue(i,2,mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1593 self.grid.SetCellValue(i,3,n.getAttribute('critical'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1594 self.grid.SetCellValue(i,4,n.getAttribute('type'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1595 self.grid.SetCellValue(i,5,n.getAttribute('weight'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1596 self.grid.SetCellValue(i,6,ran)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1597 self.grid.SetCellValue(i,7,n.getAttribute('size') )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1598 self.grid.SetCellValue(i,8,total)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1599 self.grid.SetReadOnly(i,8)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1600
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1601 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1602 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1603 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1604 if self.grid.IsInSelection(i,0):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1605 self.grid.DeleteRows(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1606 self.master_dom.removeChild(self.n_list[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1607 self.n_list = self.master_dom.getElementsByTagName('weapon')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1608 self.handler.refresh_weapons()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1609
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1610 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1611 if not self.temp_dom:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1612 tmp = open(dir_struct["SWd20"]+"d20weapons.xml","r")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1613 xml_dom = parseXml_with_dlg(self,tmp.read())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1614 xml_dom = xml_dom._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1615 tmp.close()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1616 self.temp_dom = xml_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1617 f_list = self.temp_dom.getElementsByTagName('weapon')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1618 opts = []
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1619 for f in f_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1620 opts.append(f.getAttribute('name'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1621 dlg = wx.SingleChoiceDialog(self,'Choose Weapon','Weapon List',opts)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1622 if dlg.ShowModal() == wx.ID_OK:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1623 i = dlg.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1624 new_node = self.master_dom.appendChild(f_list[i].cloneNode(False))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1625 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1626 self.n_list = self.master_dom.getElementsByTagName('weapon')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1627 self.refresh_row(self.grid.GetNumberRows()-1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1628 self.handler.refresh_weapons()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1629 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1630
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1631 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1632 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1633 self.grid.SetDimensions(0,0,s[0],s[1]-25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1634 self.sizer.SetDimension(0,s[1]-25,s[0],25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1635 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1636 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1637 col_w = w/(cols+1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1638 self.grid.SetColSize(0,col_w*2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1639 for i in range(1,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1640 self.grid.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1641
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1642 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1643 for i in range(len(self.n_list)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1644 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1645
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1646
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1647 class attack_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1648 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1649 pname = handler.master_dom.setAttribute("name", 'Melee')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1650 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1651
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1652 self.a_grid = attack_grid(self, handler)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1653 self.w_panel = weapon_panel(self, handler)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1654 self.sizer = wx.BoxSizer(wx.VERTICAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1655 self.sizer.Add(self.a_grid, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1656 self.sizer.Add(self.w_panel, 2, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1657 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1658 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1659
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1660 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1661 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1662 self.sizer.SetDimension(0,0,s[0],s[1])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1663
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1664 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1665 self.w_panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1666 self.a_grid.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1667
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1668
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1669 class ac_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1670 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1671 pname = handler.master_dom.setAttribute("name", 'Armor')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1672 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1673 self.grid =wx.grid.Grid(self, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1674 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1675 remove_btn = wx.Button(self, 10, "Remove Armor")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1676 add_btn = wx.Button(self, 20, "Add Armor")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1677 sizer.Add(remove_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1678 sizer.Add(wx.Size(10,10))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1679 sizer.Add(add_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1680 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1681 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1682 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1683 self.Bind(wx.EVT_BUTTON, self.on_remove, remove_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1684 self.Bind(wx.EVT_BUTTON, self.on_add, add_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1685 self.grid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1686 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1687 n_list = handler.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1688 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1689 col_names = ['Armor','DR','Max Dex','Check Penalty','Weight','Speed (10)','Speed (6)','type']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1690 self.grid.CreateGrid(len(n_list),len(col_names),1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1691 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1692 for i in range(len(col_names)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1693 self.grid.SetColLabelValue(i,col_names[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1694 self.atts =['name','bonus','maxdex','checkpenalty','weight','speed','speed6','type']
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1695 for i in range(len(n_list)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1696 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1697 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1698
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1699
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1700 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1701 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1702 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1703 value = self.grid.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1704 if col >= 1 and col <= 5:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1705 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1706 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1707 self.n_list[row].setAttribute(self.atts[col],value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1708 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1709 self.grid.SetCellValue(row,col,"0")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1710 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1711 self.n_list[row].setAttribute(self.atts[col],value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1712
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1713 def refresh_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1714 n = self.n_list[i]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1715 for y in range(len(self.atts)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1716 self.grid.SetCellValue(i,y,n.getAttribute(self.atts[y]))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1717
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1718 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1719 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1720 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1721 if self.grid.IsInSelection(i,0):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1722 self.grid.DeleteRows(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1723 self.master_dom.removeChild(self.n_list[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1724
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1725 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1726 if not self.temp_dom:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1727 tmp = open(dir_struct["SWd20"]+"d20armor.xml","r")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1728 xml_dom = parseXml_with_dlg(self,tmp.read())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1729 xml_dom = xml_dom._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1730 tmp.close()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1731 self.temp_dom = xml_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1732 f_list = self.temp_dom.getElementsByTagName('armor')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1733 opts = []
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1734 for f in f_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1735 opts.append(f.getAttribute('name'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1736 dlg = wx.SingleChoiceDialog(self,'Choose Armor:','Armor List',opts)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1737 if dlg.ShowModal() == wx.ID_OK:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1738 i = dlg.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1739 new_node = self.master_dom.appendChild(f_list[i].cloneNode(False))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1740 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1741 self.refresh_row(self.grid.GetNumberRows()-1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1742 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1743
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1744 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1745 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1746 self.grid.SetDimensions(0,0,s[0],s[1]-25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1747 self.sizer.SetDimension(0,s[1]-25,s[0],25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1748 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1749 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1750 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1751 self.grid.SetColSize(0,col_w*3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1752 for i in range(1,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1753 self.grid.SetColSize(i,col_w)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1754
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1755
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1756 class class_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1757 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1758 pname = handler.master_dom.setAttribute("name", 'Class')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1759 wx.Panel.__init__(self, parent, -1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1760 self.grid =wx.grid.Grid(self, -1, style=wx.SUNKEN_BORDER | wx.WANTS_CHARS)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1761 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1762 remove_btn = wx.Button(self, wx.ID_ANY, "Remove Class")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1763 add_btn = wx.Button(self, wx.ID_ANY, "Add Class")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1764 sizer.Add(remove_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1765 sizer.Add(wx.Size(10,10))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1766 sizer.Add(add_btn, 1, wx.EXPAND)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1767 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1768 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1769 self.Bind(wx.EVT_SIZE, self.on_size)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1770 self.Bind(wx.EVT_BUTTON, self.on_remove, remove_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1771 self.Bind(wx.EVT_BUTTON, self.on_add, add_btn)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1772 self.grid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1773
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1774 n_list = handler.master_dom._get_childNodes()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1775 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1776 self.master_dom = handler.master_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1777 self.grid.CreateGrid(len(n_list),2,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1778 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1779 self.grid.SetColLabelValue(0,"Class")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1780 self.grid.SetColLabelValue(1,"Level")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1781 for i in range(len(n_list)):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1782 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1783 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1784
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1785 def on_cell_change(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1786 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1787 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1788 value = self.grid.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1789 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1790 int(value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1791 self.n_list[row].setAttribute('level',value)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1792 except:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1793 self.grid.SetCellValue(row,col,"1")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1794
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1795
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1796 def refresh_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1797 n = self.n_list[i]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1798 name = n.getAttribute('name')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1799 level = n.getAttribute('level')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1800 self.grid.SetCellValue(i,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1801 self.grid.SetReadOnly(i,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1802 self.grid.SetCellValue(i,1,level)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1803 #self.grid.SetReadOnly(i,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1804
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1805 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1806 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1807 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1808 if self.grid.IsInSelection(i,0):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1809 self.grid.DeleteRows(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1810 self.master_dom.removeChild(self.n_list[i])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1811
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1812 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1813 if not self.temp_dom:
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
1814 tmp = open(dir_struct["SWd20"]+"SWd20classes.xml","r")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1815 xml_dom = parseXml_with_dlg(self,tmp.read())
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1816 xml_dom = xml_dom._get_firstChild()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1817 tmp.close()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1818 self.temp_dom = xml_dom
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1819 f_list = self.temp_dom.getElementsByTagName('class')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1820 opts = []
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1821 for f in f_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1822 opts.append(f.getAttribute('name'))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1823 dlg = wx.SingleChoiceDialog(self,'Choose Class','Classes',opts)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1824 if dlg.ShowModal() == wx.ID_OK:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1825 i = dlg.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1826 new_node = self.master_dom.appendChild(f_list[i].cloneNode(False))
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1827 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1828 self.refresh_row(self.grid.GetNumberRows()-1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1829 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1830
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1831
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1832 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1833 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1834 self.grid.SetDimensions(0,0,s[0],s[1]-25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1835 self.sizer.SetDimension(0,s[1]-25,s[0],25)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1836 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1837 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1838 col_w = w/(cols)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1839 for i in range(0,cols):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1840 self.grid.SetColSize(i,col_w)