annotate orpg/gametree/nodehandlers/StarWarsd20.py @ 212:13054be69834 beta

Traipse Beta 'OpenRPG' {100428-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 (Patch-2) New Features: New Namespace method with two new syntaxes New Namespace Internal is context sensitive, always! New Namespace External is 'as narrow as you make it' New Namespace FutureCheck helps ensure you don't receive an incorrect node New PluginDB access for URL2Link plugin New to Forms, they now show their content in Design Mode New to Update Manager, checks Repo for updates on software start Fixes: Fix to Server GUI startup errors Fix to Server GUI Rooms tab updating Fix to Chat and Settings if non existant die roller is picked Fix to Dieroller and .open() used with .vs(). Successes are correctly calculated Fix to Alias Lib's Export to Tree, Open, Save features Fix to alias node, now works properly Fix to Splitter node, minor GUI cleanup Fix to Backgrounds not loading through remote loader Fix to Node name errors Fix to rolling dice in chat Whispers Fix to Splitters Sizing issues Fix to URL2Link plugin, modified regex compilation should remove memory leak Fix to mapy.py, a roll back due to zoomed grid issues Fix to whiteboard_handler, Circles work by you clicking the center of the circle Fix to Servers parse_incoming_dom which was outdated and did not respect XML Fix to a broken link in the server welcome message Fix to InterParse and logger requiring traceback Fix to Update Manager Status Bar Fix to failed image and erroneous pop up
author sirebral
date Wed, 28 Apr 2010 08:08:09 -0500
parents dcae32e219f1
children
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:
184
dcae32e219f1 Traipse Beta 'OpenRPG' {100117-00}
sirebral
parents: 152
diff changeset
24 # $Id: StarWarsd20.py,v Traipse 'Ornery-Orc' prof.ebral Exp $
60
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
184
dcae32e219f1 Traipse Beta 'OpenRPG' {100117-00}
sirebral
parents: 152
diff changeset
29 __version__ = "$Id: StarWarsd20.py,v Traipse 'Ornery-Orc' prof.ebral Exp $"
60
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 *
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
32 from containers import *
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
33 from orpg.tools.orpg_log import debug
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
34 from xml.etree.ElementTree import parse
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
35
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
36 SWD20_EXPORT = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
37 ############################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
38 ## StarWarsd20 character node handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
39 ############################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
40 ##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
41 class container_handler(node_handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
42 """ 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
43 <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
44 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
45 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
46 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
47 self.load_children()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
48
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
49 def load_children(self):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
50 children = self.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
51 for c in children:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
52 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
53
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
54 def on_drop(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
55 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
56 #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
57 # return
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
58 if drag_obj == self:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
59 return
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
60 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
61 if opt == wx.YES:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
62 xml_dom = self.tree.drag_obj.delete()
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
63 xml_dom = self.xml.insertBefore(xml_dom,None)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
64 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
65 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
66 elif opt == wx.NO:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
67 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
68
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
69 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
70 cookie = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
71 html_str = "<table border=\"1\" ><tr><td>"
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
72 html_str += "<b>"+self.xml.get("name") + "</b>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
73 html_str += "</td></tr>\n"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
74 html_str += "<tr><td>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
75 max = tree.GetChildrenCount(handler.mytree_node)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
76 try: (child,cookie)=self.tree.GetFirstChild(self.mytree_node,cookie)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
77 except: (child,cookie)=self.tree.GetFirstChild(self.mytree_node)
60
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 get_char_lvl( self, attr ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
94 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
95
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
96
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
97 class SWd20char_handler(node_handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
98 """ 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
99 <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
100 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
101 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
102 node_handler.__init__(self,xml_dom,tree_node)
66
c54768cffbd4 Traipse Dev 'OpenRPG' {090818-00}
sirebral
parents: 60
diff changeset
103 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
104 self.child_handlers = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
105 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
106 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
107 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
108 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
109 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
110 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
111 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
112 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
113 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
114 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
115 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
116 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
117 self.myeditor = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
118
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
119
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
120 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
121 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
122 if old_version == "":
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
123 tree = parse(dir_struct["nodes"]+"StarWars_d20character.xml")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
124 xml_dom = tree.getroot()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
125 ## add new nodes
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
126 for tag in ("howtouse","inventory","powers","divine","pp"):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
127 node_list = xml_dom.findall(tag)
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
128 self.xml.append(node_list[0])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
129
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
130 ## add new atts
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
131 melee_attack = self.xml.findall('melee')[0]
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
132 melee_attack.set("second","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
133 melee_attack.set("third","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
134 melee_attack.set("forth","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
135 melee_attack.set("fifth","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
136 melee_attack.set("sixth","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
137 range_attack = self.xml.findall('ranged')[0]
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
138 range_attack.set("second","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
139 range_attack.set("third","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
140 range_attack.set("forth","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
141 range_attack.set("fifth","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
142 range_attack.set("sixth","0")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
143 gen_list = self.xml.findall('general')[0]
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
144
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
145 for tag in ("currentxp","xptolevel"):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
146 node_list = xml_dom.findall(tag)
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
147 gen_list.append(node_list[0])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
148 print old_version
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
149
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
150
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
151 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
152 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
153
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
154 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
155 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
156
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
157
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
158 def new_child_handler(self,tag,text,handler_class,icon='gear'):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
159 node_list = self.xml.findall(tag)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
160 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
161 i = self.tree.icons[icon]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
162 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
163 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
164 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
165 self.child_handlers[tag] = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
166
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
167 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
168 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
169
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_use_panel(self,parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
172 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
173
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
174 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
175 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
176 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
177 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
178 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
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 html_str += "</tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
187 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
188
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
189 def about(self):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
190 """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
191 html_str += "<br />by Chris Davis<br />chris@rpgarchive.com"
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
192 return html_str"""
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
193 text = 'd20 Character Tool 0.7 beta\n'
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
194 text += 'by Chris Davis chris@rpgarchive.com'
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
195 return text
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
196
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
197 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
198 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
199 def get_armor_class( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
200 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
201 def get_max_hp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
202 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
203 def get_current_hp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
204 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
205 def get_max_vp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
206 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
207 def get_current_vp( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
208 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
209 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
210 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
211
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
212 """ Removed to use the supplied Tabbed Panel
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
213 class tabbed_panel(wx.Notebook):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
214 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
215 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
216 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
217 self.parent = parent
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
218 tree = self.handler.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
219 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
220 cookie = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
221 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
222 (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
223 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
224 (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
225 obj = tree.GetPyData(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
226 for m in xrange(max):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
227
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
228 if mode == 1: panel = obj.get_design_panel(self)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
229 else: panel = obj.get_use_panel(self)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
230 name = obj.xml.get("name")
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
231 if panel: self.AddPage(panel,name)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
232 if m < max-1:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
233 child = tree.GetNextSibling(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
234 obj = tree.GetPyData(child)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
235
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
236 def about(self):
67
c5bc2abaf7f8 Traipse Dev 'OpenRPG' {090818-01}
sirebral
parents: 66
diff changeset
237 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
238 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
239 return html_str
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 def get_char_name( self ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
242 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
243
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
244 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
245 return self.child_handlers['classes'].get_char_lvl(attr)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
246 """
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
247
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
248 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
249 """ 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
250 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
251 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
252 def __init__(self, xml_dom, tree_node, parent):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
253 node_handler.__init__(self, xml_dom, tree_node)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
254 self.char_hander = parent
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
255 self.drag = False
66
c54768cffbd4 Traipse Dev 'OpenRPG' {090818-00}
sirebral
parents: 60
diff changeset
256 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
257 self.myeditor = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
258
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
259 def on_drop(self, evt):
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
260 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
261
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
262 def on_rclick(self, evt):
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
263 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
264
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
265 def on_ldclick(self, evt):
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
266 return
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
267
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
268 def on_html(self, evt):
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
269 html_str = self.tohtml()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
270 wnd = http_html_window(self.frame.note,-1)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
271 wnd.title = self.xml.get('name')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
272 self.frame.add_panel(wnd)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
273 wnd.SetPage(html_str)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
274
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
275 def get_design_panel(self, parent):
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
276 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
277
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
278 def get_use_panel(self, parent):
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
279 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
280
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
281 def delete(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
282 pass
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
283
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
284
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
285 class SWd20skill(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
286 """ 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
287 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
288 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
289 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
290 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
291 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
292 icons = self.tree.icons
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
293 node_list = self.xml.findall('skill')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
294 self.skills={}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
295 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
296 name = n.get('name')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
297 self.skills[name] = n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
298 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
299 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
300
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
301 def get_mod(self,name):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
302 skill = self.skills[name]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
303 stat = skill.get('stat')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
304 ac = int(skill.get('armorcheck'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
305 if ac:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
306 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
307 stat_mod = self.char_hander.child_handlers['abilities'].get_mod(stat)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
308 rank = int(skill.get('rank'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
309 misc = int(skill.get('misc'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
310 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
311 return total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
312
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
313 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
314 #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
315 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
316 name = self.tree.GetItemText(item)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
317 skill = self.skills[name]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
318 rank = int(skill.get('rank'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
319 untrained = int(skill.get('untrained'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
320 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
321 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
322 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
323 else:
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
324 if rank == 0 and untrained == 0: chat.Post("Can't use untrained!",True,True)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
325 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
326 mod = self.get_mod(name)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
327 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
328 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
329 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
330 chat.ParsePost(txt,True,True)
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 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
333 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
334 wnd.title = "Skills (edit)"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
335 return wnd
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 tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
338 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
339 <th>Rank</th><th>Abil</th><th>Misc</th><th>Total</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
340 node_list = self.xml.findall('skill')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
341 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
342 name = n.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
343 stat = n.get('stat')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
344 rank = n.get('rank')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
345 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
346 stat_mod = str(self.char_hander.child_handlers['abilities'].get_mod(stat))
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
347 misc = n.get('misc')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
348 mod = str(self.get_mod(name))
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
349 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
350 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
351 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
352 html_str = html_str + "</table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
353 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
354
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
355
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
356 class SWd20ability(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
357 """ 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
358 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
359 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
360 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
361 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
362 self.abilities = {}
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
363 node_list = self.xml.findall('stat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
364 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
365 icons = tree.icons
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
366 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
367 name = n.get('abbr')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
368 self.abilities[name] = n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
369 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
370 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
371
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
372 def on_rclick( self, evt ):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
373 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
374 name = self.tree.GetItemText( item )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
375 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
376 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
377 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
378 mod = self.get_mod( name )
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
379 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
380 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
381 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
382 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
383 chat.ParsePost( txt, True, True )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
384
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
385 def get_mod(self,abbr):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
386 score = int(self.abilities[abbr].get('base'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
387 mod = (score - 10) / 2
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
388 return mod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
389
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
390 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
391 if score >= 0:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
392 self.abilities[abbr].set("base",str(score))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
393
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
394 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
395 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
396 wnd.title = "Abilities (edit)"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
397 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
398
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
399 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
400 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
401 <th>Base</th><th>Modifier</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
402 node_list = self.xml.findall('stat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
403 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
404 name = n.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
405 abbr = n.get('abbr')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
406 base = n.get('base')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
407 mod = str(self.get_mod(abbr))
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
408 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
409 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
410 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
411 html_str = html_str + "</table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
412 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
413
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
414 class SWd20saves(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
415 """ 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
416 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
417 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
418 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
419 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
420 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
421 icons = self.tree.icons
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
422 node_list = self.xml.findall('save')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
423 self.saves={}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
424 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
425 name = n.get('name')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
426 self.saves[name] = n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
427 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
428 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
429
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
430 def get_mod(self,name):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
431 save = self.saves[name]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
432 stat = save.get('stat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
433 stat_mod = self.char_hander.child_handlers['abilities'].get_mod(stat)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
434 base = int(save.get('base'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
435 miscmod = int(save.get('miscmod'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
436 total = stat_mod + base + miscmod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
437 return total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
438
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
439 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
440 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
441 name = self.tree.GetItemText(item)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
442 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
443 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
444 #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
445 #wnd.title = "Saves"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
446 #self.frame.add_panel(wnd)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
447 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
448 mod = self.get_mod(name)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
449 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
450 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
451 chat = self.chat
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
452 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
453 chat.ParsePost( txt, True, True )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
454
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
455 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
456 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
457 wnd.title = "Saves"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
458 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
459
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
460 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
461 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
462 <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
463 <th>Misc</th><th>Total</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
464 node_list = self.xml.findall('save')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
465 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
466 name = n.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
467 stat = n.get('stat')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
468 base = n.get('base')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
469 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
470 stat_mod = str(self.char_hander.child_handlers['abilities'].get_mod(stat))
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
471 mag = n.get('magmod')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
472 misc = n.get('miscmod')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
473 mod = str(self.get_mod(name))
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
474 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
475 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
476 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
477 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
478 html_str = html_str + "</table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
479 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
480
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
481
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
482 class SWd20general(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
483 """ 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
484 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
485 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
486 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
487 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
488
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
489 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
490 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
491 wnd.title = "General Info"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
492 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
493
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
494 def tohtml(self):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
495 n_list = self.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
496 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
497 for n in n_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
498 html_str += "<B>"+n.tag.capitalize() +":</B> "
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
499 html_str += n.text + ", "
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
500 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
501 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
502
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
503 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
504 self.char_hander.rename(name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
505
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
506 def get_char_name( self ):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
507 node = self.xml.findall( 'name' )[0]
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
508 return node.text
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
509
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
510
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
511 class SWd20classes(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
512 """ 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
513 created by SWd20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
514 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
515 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
516 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
517
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
518 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
519 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
520 wnd.title = "Classes"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
521 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
522
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
523 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
524 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Classes</th></tr><tr><td>"
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
525 n_list = self.xml.getchildren()
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
526 for n in n_list: html_str += n.get('name') + " ("+n.get('level')+"), "
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
527 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
528 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
529
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
530 def get_char_lvl( self, attr ):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
531 node_list = self.xml.findall('class')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
532 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
533 lvl = n.get('level')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
534 type = n.get('name')
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
535 if attr == "level": return lvl
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
536 elif attr == "class": return type
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
537
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
538
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
539 class SWd20feats(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
540 """ 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
541 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
542 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
543 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
544 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
545
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
546 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
547 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
548 wnd.title = "Feats"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
549 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
550
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
551 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
552 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Feats</th></tr><tr><td>"
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
553 n_list = self.xml.getchildren()
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
554 for n in n_list: html_str += n.get('name')+ ", "
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
555 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
556 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
557
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
558 class SWd20howto(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
559 """ 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
560 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
561 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
562 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
563 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
564
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
565 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
566 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
567 wnd.title = "How To"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
568 return wnd
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 class SWd20inventory(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
571 """ 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
572 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
573 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
574 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
575 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
576
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
577 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
578 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
579 wnd.title = "General Info"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
580 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
581
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
582 def tohtml(self):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
583 n_list = self.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
584 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
585 for n in n_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
586 html_str += "<B>"+n.tag.capitalize() +":</B> "
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
587 html_str += n.text + "<br />"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
588 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
589 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
590
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
591 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
592 self.char_hander.rename(name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
593
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
594 def get_char_name( self ):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
595 node = self.xml.findall( 'name' )[0]
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
596 return node.text
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
597
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
598 class SWd20hp(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
599 """ 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
600 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
601 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
602 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
603 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
604
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
605 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
606 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
607 wnd.title = "Wound Points"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
608 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
609
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
610 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
611 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=4>Wound Points</th></tr>"
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
612 html_str += "<tr><th>Max:</th><td>"+self.xml.get('max')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
613 html_str += "<th>Current:</th><td>"+self.xml.get('current')+"</td>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
614 html_str += "</tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
615 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
616
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
617 def get_max_hp( self ):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
618 try: return eval( self.xml.get( 'max' ) )
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
619 except: return 0
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
620 def get_current_hp( self ):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
621 try: return eval( self.xml.get( 'current' ) )
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
622 except: return 0
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
623
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
624 class SWd20vp(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
625 """ 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
626 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
627 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
628 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
629 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
630
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
631 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
632 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
633 wnd.title = "Vitality Points"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
634 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
635
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
636 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
637 html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=4>Vitality Points</th></tr>"
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
638 html_str += "<tr><th>Max:</th><td>"+self.xml.get('max')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
639 html_str += "<th>Current:</th><td>"+self.xml.get('current')+"</td>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
640 html_str += "</tr></table>"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
641 return html_str
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 get_max_vp( self ):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
644 try: return eval( self.xml.get( 'max' ) )
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
645 except: return 0
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
646 def get_current_vp( self ):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
647 try: return eval( self.xml.get( 'current' ) )
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
648 except: return 0
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
649
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
650 class SWd20attacks(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
651 """ 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
652 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
653 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
654 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
655 SWd20_char_child.__init__(self,xml_dom,tree_node,parent)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
656 node_list = self.xml.findall('melee')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
657 self.melee = node_list[0]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
658 node_list = self.xml.findall('ranged')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
659 self.ranged = node_list[0]
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
660 self.refresh_weapons()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
661
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
662 def refresh_weapons(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
663 self.weapons = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
664 tree = self.tree
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
665 icons = self.tree.icons
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
666 tree.CollapseAndReset(self.mytree_node)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
667 node_list = self.xml.findall('weapon')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
668 for n in node_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
669 name = n.get('name')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
670 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
671 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
672 self.weapons[name]=n
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
673
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
674 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
675 (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
676 return base + misc + stat_mod
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
677
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
678 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
679 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
680 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
681 temp = self.melee
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
682 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
683 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
684 temp = self.ranged
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
685 base = int(temp.get('base'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
686 base2 = int(temp.get('second'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
687 base3 = int(temp.get('third'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
688 base4 = int(temp.get('forth'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
689 base5 = int(temp.get('fifth'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
690 base6 = int(temp.get('sixth'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
691 misc = int(temp.get('misc'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
692 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
693
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
694 def on_rclick(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
695 #removed the DnD specific code
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
696 item = self.tree.GetSelection()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
697 name = self.tree.GetItemText(item)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
698 if item == self.mytree_node:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
699 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
700 #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
701 else:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
702 mod = int(self.weapons[name].get('mod'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
703 if self.weapons[name].get('range') == '0':
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
704 mod = mod + self.get_mod('m')
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
705 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
706 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
707 else:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
708 mod = mod + self.get_mod('r')
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
709 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
710 else: mod1 = ""
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
711 chat = self.chat
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
712 dmg = self.weapons[name].get('damage')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
713 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
714 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
715 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
716 chat.ParsePost( txt, True, False )
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
717 temp = self.melee
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
718 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
719
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
720 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
721 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
722 wnd.title = "Attacks"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
723 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
724
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
725 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
726 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
727
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
728 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
729 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
730 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
731 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
732 <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
733 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
734 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
735 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
736 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
737 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
738
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
739 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
740 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
741 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
742 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
743 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
744
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
745 n_list = self.xml.findall('weapon')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
746 for n in n_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
747 mod = n.get('mod')
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
748 if mod >= 0: mod1 = "+"
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
749 else: mod1 = ""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
750 ran = n.get('range')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
751 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
752 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
753 <th>Attack</th><th >Damage</th><th>Critical</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
754 html_str += "<tr ALIGN='center' ><td colspan=2>"+n.get('name')+"</td><td>"+total+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
755 html_str += "<td>"+n.get('damage')+"</td><td>"+n.get('critical')+"</td></tr>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
756 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
757 <th>Type</th><th>Size</th><th>Misc Mod</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
758 html_str += "<tr ALIGN='center'><td>"+ran+"</td><td>"+n.get('weight')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
759 html_str += "<td>"+n.get('type')+"</td><td>"+n.get('size')+"</td>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
760 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
761 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
762
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
763 class SWd20armor(SWd20_char_child):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
764 """ 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
765 created by d20char_handler.
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
766 """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
767 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
768 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
769
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
770 def get_total_weight(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
771 return self.get_total('weight')
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 get_check_pen(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
774 return self.get_total('checkpenalty')
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
775
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
776 def get_armor_class(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
777 ac_total = 10
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
778 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
779 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
780 max_dex = self.get_max_dex()
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
781 if dex_mod < max_dex: ac_total += dex_mod
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
782 else: ac_total += max_dex
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
783 return ac_total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
784
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
785 def get_max_dex(self):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
786 armor_list = self.xml.findall('armor')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
787 dex = 10
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
788 for a in armor_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
789 temp = int(a.get("maxdex"))
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
790 if temp < dex: dex = temp
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
791 return dex
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
792
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
793 def get_total(self,attr):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
794 armor_list = self.xml.findall('armor')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
795 total = 0
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
796 for a in armor_list: total += int(a.get(attr))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
797 return total
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
798
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
799 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
800 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
801 wnd.title = "Armor"
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
802 return wnd
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
803
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
804 def tohtml(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
805 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
806 <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
807 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
808 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
809 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
810 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
811 html_str += "<td>"+str(self.get_total_weight())+"</td></tr></table>"
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
812 n_list = self.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
813 for n in n_list:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
814 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
815 <th>Type</th><th >Bonus</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
816 html_str += "<tr ALIGN='center' ><td colspan=3>"+n.get('name')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
817 html_str += "<td>"+n.get('type')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
818 html_str += "<td>"+n.get('bonus')+"</td></tr>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
819 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
820 <th>Max Dex</th><th>Speed</th><th>Weight</th></tr>"""
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
821 html_str += "<tr ALIGN='center'><td>"+n.get('checkpenalty')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
822 html_str += "<td>"+n.get('maxdex')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
823 html_str += "<td>"+n.get('speed')+"</td>"
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
824 html_str += "<td>"+n.get('weight')+"</td></tr></table>"
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
825 return html_str
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
826
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 ########################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
829 ## d20 char windows
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
830 ########################
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
831
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
832 class base_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
833 def __init__(self, parent):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
834 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
835
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
836 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
837
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
838 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
839 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
840
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
841 class outline_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
842 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
843 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
844 self.panel = wnd(self,handler)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
845 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
846 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
847
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
848 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
849 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
850 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
851 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
852
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
853 class char_panel(wx.ScrolledWindow):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
854 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
855 pname = handler.xml.set("name", 'TWO')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
856 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
857 self.height = 1200
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
858 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
859 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
860 self.panels = {}
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
861 keys = handler.child_handlers.keys()
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
862 for k in keys: self.panels[k] = handler.child_handlers[k].get_design_panel(self, [k])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
863 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
864 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
865 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
866 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
867
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
868 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
869 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
870
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
871 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
872 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
873 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
874 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
875
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
876 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
877 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
878
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
879 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
880 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
881 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
882 self.SetSizer(self.main_sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
883 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
884
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
885
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
886 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
887 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
888 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
889 dc = wx.ClientDC(self)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
890 x = dc.DeviceToLogicalX(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
891 y = dc.DeviceToLogicalY(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
892 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
893 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
894
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
895 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
896 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
897 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
898 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
899
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
900 HOWTO_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
901
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
902 class howto_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
903 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
904 wx.Panel.__init__(self, parent, -1)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
905 pname = handler.xml.set("name", 'How To')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
906 self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
907 self.xml = handler.xml
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
908 n_list = self.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
909 for n in n_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
910 self.sizer.AddMany([ (wx.StaticText(self, -1, n.text), 0, wx.ALIGN_CENTER_VERTICAL),
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
911 ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
912 self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
913 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
914
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 WP_CUR = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
917 WP_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
918
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
919 class hp_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
920 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
921 wx.Panel.__init__(self, parent, -1)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
922 pname = handler.xml.set("name", 'WoundPoints')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
923 self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
924 self.xml = handler.xml
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
925 self.sizer.AddMany([ (wx.StaticText(self, -1, "WP Current:"), 0, wx.ALIGN_CENTER_VERTICAL),
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
926 (wx.TextCtrl(self, WP_CUR, self.xml.get('current')), 0, wx.EXPAND),
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
927 (wx.StaticText(self, -1, "WP Max:"), 0, wx.ALIGN_CENTER_VERTICAL),
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
928 (wx.TextCtrl(self, WP_MAX, self.xml.get('max')), 0, wx.EXPAND),
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
929 ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
930 self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
931 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
932 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
933 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
934 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
935
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
936 def on_text(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
937 id = evt.GetId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
938 if id == WP_CUR:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
939 self.xml.set('current',evt.GetString())
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
940 elif id == WP_MAX:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
941 self.xml.set('max',evt.GetString())
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
942
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
943 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
944 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
945 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
946
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
947 VP_CUR = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
948 VP_MAX = wx.NewId()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
949
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
950 class vp_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
951 def __init__(self, parent, handler):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
952 wx.Panel.__init__(self, parent, -1)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
953 pname = handler.xml.set("name", 'VitalityPoints')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
954 self.sizer = wx.FlexGridSizer(2, 4, 2, 2) # rows, cols, hgap, vgap
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
955 self.xml = handler.xml
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
956 self.sizer.AddMany([ (wx.StaticText(self, -1, "VP Current:"), 0, wx.ALIGN_CENTER_VERTICAL),
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
957 (wx.TextCtrl(self, VP_CUR, self.xml.get('current')), 0, wx.EXPAND),
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
958 (wx.StaticText(self, -1, "VP Max:"), 0, wx.ALIGN_CENTER_VERTICAL),
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
959 (wx.TextCtrl(self, VP_MAX, self.xml.get('max')), 0, wx.EXPAND),
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
960 ])
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
961 self.sizer.AddGrowableCol(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
962 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
963 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
964 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
965 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
966
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
967 def on_text(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
968 id = evt.GetId()
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
969 if id == VP_CUR: self.xml.set('current',evt.GetString())
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
970 elif id == VP_MAX: self.xml.set('max',evt.GetString())
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
971
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
972 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
973 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
974 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
975
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
976
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
977 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
978 """grid for gen info"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
979 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
980 pname = handler.xml.set("name", 'General')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
981 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
982 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
983 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
984 self.handler = handler
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
985 n_list = handler.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
986 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
987 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
988 self.SetColLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
989 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
990 i = 0
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
991 for i in range(len(n_list)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
992
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
993 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
994 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
995 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
996 value = self.GetCellValue(row,col)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
997 self.n_list[row].text = value
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
998 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
999
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1000 def refresh_row(self,rowi):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1001 self.SetCellValue(rowi,0,self.n_list[rowi].tag)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1002 self.SetReadOnly(rowi,0)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1003 self.SetCellValue(rowi,1,self.n_list[rowi].text)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1004
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1005 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1006 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1007 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1008 col_w = w/(cols)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1009 for i in range(0,cols): self.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1010 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1011 self.Refresh()
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 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
1014 """grid for gen info"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1015 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1016 pname = handler.xml.set("name", 'Money and Inventory')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1017 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
1018 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
1019 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
1020 self.handler = handler
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1021 n_list = handler.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1022 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
1023 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1024 self.SetColLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1025 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1026 i = 0
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1027 for i in range(len(n_list)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1028
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1029 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
1030 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1031 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1032 value = self.GetCellValue(row,col)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1033 self.n_list[row].text = value
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1034 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
1035
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1036 def refresh_row(self,rowi):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1037 self.SetCellValue(rowi,0, self.n_list[rowi].tag)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1038 self.SetReadOnly(rowi,0)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1039 self.SetCellValue(rowi,1,self.n_list[rowi].text)
60
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 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1043 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1044 col_w = w/(cols)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1045 for i in range(0,cols): self.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1046 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1047 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1048
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1049 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
1050 """grid for abilities"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1051 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1052 pname = handler.xml.set("name", 'Stats')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1053 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
1054 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
1055 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
1056 self.handler = handler
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1057 stats = handler.xml.findall('stat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1058 self.CreateGrid(len(stats),3)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1059 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1060 col_names = ['Ability','Score','Modifier']
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1061 for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1062 self.stats = stats
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1063 i = 0
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1064 for i in range(len(stats)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1065 self.char_wnd = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1066
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1067 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
1068 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1069 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1070 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1071 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1072 int(value)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1073 self.stats[row].set('base',value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1074 self.refresh_row(row)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1075 except: self.SetCellValue(row,col,"0")
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1076 if self.char_wnd: self.char_wnd.refresh_data()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1077
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1078 def refresh_row(self,rowi):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1079 s = self.stats[rowi]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1080 name = s.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1081 abbr = s.get('abbr')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1082 self.SetCellValue(rowi,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1083 self.SetReadOnly(rowi,0)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1084 self.SetCellValue(rowi,1,s.get('base'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1085 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
1086 self.SetReadOnly(rowi,2)
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 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1089 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1090 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1091 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1092 self.SetColSize(0,col_w*3)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1093 for i in range(1,cols): self.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1094 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1095 self.Refresh()
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 def refresh_data(self):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1098 for r in range(self.GetNumberRows()-1): self.refresh_row(r)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1099
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1100
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1101 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
1102 """grid for saves"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1103 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1104 pname = handler.xml.set("name", 'Saves')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1105 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
1106 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
1107 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
1108 self.handler = handler
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1109 saves = handler.xml.findall('save')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1110 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
1111 self.CreateGrid(len(saves),7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1112 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1113 col_names = ['Save','Key','base','Abil','Magic','Misc','Total']
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1114 for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1115 self.saves = saves
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1116 i = 0
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1117 for i in range(len(saves)):self.refresh_row(i)
60
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 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
1120 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1121 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1122 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1123 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1124 int(value)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1125 if col == 2: self.saves[row].set('base',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1126 elif col == 4:self.saves[row].set('magmod',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1127 elif col == 4: self.saves[row].set('miscmod',value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1128 self.refresh_row(row)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1129 except: self.SetCellValue(row,col,"0")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1130
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1131 def refresh_row(self,rowi):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1132 s = self.saves[rowi]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1133 name = s.get('name')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1134 self.SetCellValue(rowi,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1135 self.SetReadOnly(rowi,0)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1136 stat = s.get('stat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1137 self.SetCellValue(rowi,1,stat)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1138 self.SetReadOnly(rowi,1)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1139 self.SetCellValue(rowi,2,s.get('base'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1140 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
1141 self.SetReadOnly(rowi,3)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1142 self.SetCellValue(rowi,4,s.get('magmod'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1143 self.SetCellValue(rowi,5,s.get('miscmod'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1144 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
1145 self.SetCellValue(rowi,6,mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1146 self.SetReadOnly(rowi,6)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1147
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1148 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1149 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1150 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1151 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1152 self.SetColSize(0,col_w*3)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1153 for i in range(1,cols): self.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1154 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1155 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1156
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1157 def refresh_data(self):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1158 for r in range(self.GetNumberRows()): self.refresh_row(r)
60
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
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1161 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
1162 """ panel for skills """
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1163 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1164 pname = handler.xml.set("name", 'Skills')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1165 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
1166 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
1167 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
1168 self.handler = handler
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1169 skills = handler.xml.findall('skill')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1170 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
1171 self.CreateGrid(len(skills),7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1172 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1173 col_names = ['Skill','Key','Rank','Abil','Misc','Total']
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1174 for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1175 rowi = 0
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1176 self.skills = skills
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1177 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
1178 self.refresh_row(i)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1179
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1180 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
1181 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1182 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1183 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1184 #print value
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1185 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1186 int(value)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1187 if col == 3: self.skills[row].set('rank',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1188 elif col == 5: self.skills[row].set('misc',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1189 elif col == 1: self.skills[row].set('untrained',value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1190 self.refresh_row(row)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1191 except: self.SetCellValue(row,col,"0")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1192
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1193 def refresh_row(self,rowi):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1194 s = self.skills[rowi]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1195 name = s.get('name')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1196 self.SetCellValue(rowi,0,name)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1197 self.SetReadOnly(rowi,0)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1198 self.SetCellValue(rowi,1,s.get('untrained'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1199 stat = s.get('stat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1200 self.SetCellValue(rowi,2,stat)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1201 self.SetReadOnly(rowi,2)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1202 self.SetCellValue(rowi,3,s.get('rank'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1203 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
1204 self.SetReadOnly(rowi,4)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1205 self.SetCellValue(rowi,5,s.get('misc'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1206 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
1207 self.SetCellValue(rowi,6,mod)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1208 self.SetReadOnly(rowi,6)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1209
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1210 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1211 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1212 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1213 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1214 self.SetColSize(0,col_w*3)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1215 for i in range(1,cols): self.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1216 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1217 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1218
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1219 def refresh_data(self):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1220 for r in range(self.GetNumberRows()): self.refresh_row(r)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1221
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1222
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1223 class feat_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1224 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1225 pname = handler.xml.set("name", 'Feats')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1226 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
1227 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
1228 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1229 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
1230 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
1231 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
1232 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
1233 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
1234 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1235 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1236 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
1237 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
1238 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
1239
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1240 n_list = handler.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1241 self.n_list = n_list
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1242 self.xml = handler.xml
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1243 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
1244 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1245 self.grid.SetColLabelValue(0,"Feat")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1246 self.grid.SetColLabelValue(1,"Type")
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1247 for i in range(len(n_list)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1248 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1249
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1250 def refresh_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1251 feat = self.n_list[i]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1252 name = feat.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1253 type = feat.get('type')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1254 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
1255 self.grid.SetReadOnly(i,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1256 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
1257 self.grid.SetReadOnly(i,1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1258
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1259 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1260 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1261 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1262 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
1263 self.grid.DeleteRows(i)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1264 self.xml.remove(self.n_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1265
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1266 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1267 if not self.temp_dom:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1268 tree = parse(dir_struct["SWd20"]+"d20feats.xml")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1269 self.temp_dom = tree.getroot()
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1270 f_list = self.temp_dom.findall('feat')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1271 opts = []
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1272 for f in f_list: opts.append(f.get('name'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1273 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
1274 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
1275 i = dlg.GetSelection()
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1276 new_node = self.xml.append(f_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1277 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1278 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
1279 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1280
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1281
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1282 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1283 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1284 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
1285 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
1286 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1287 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1288 col_w = w/(cols)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1289 for i in range(0,cols): self.grid.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1290
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1291 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
1292 """grid for attacks"""
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1293 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1294 pname = handler.xml.set("name", 'Melee')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1295 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
1296 self.parent = parent
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1297 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1298 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
1299 self.CreateGrid(2,10)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1300 self.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1301 col_names = ['Type','base','base 2','base 3','base 4','base 5','base 6','abil','misc','Total']
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1302 for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1303 self.SetCellValue(0,0,"Melee")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1304 self.SetCellValue(1,0,"Ranged")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1305 self.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1306 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
1307 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
1308
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1309 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
1310 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1311 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1312 value = self.GetCellValue(row,col)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1313 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1314 int(value)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1315 if col== 1: self.rows[row].set('base',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1316 elif col== 2: self.rows[row].set('second',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1317 elif col== 3: self.rows[row].set('third',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1318 elif col== 4: self.rows[row].set('forth',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1319 elif col== 5: self.rows[row].set('fifth',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1320 elif col== 6: self.rows[row].set('sixth',value)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1321 elif col== 8: self.rows[row].set('misc',value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1322 self.parent.refresh_data()
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1323 except: self.SetCellValue(row,col,"0")
60
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 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1326 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
1327 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
1328 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
1329 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
1330 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
1331 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
1332 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
1333 self.SetReadOnly(0,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1334 self.SetReadOnly(1,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1335 self.SetReadOnly(0,7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1336 self.SetReadOnly(1,7)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1337 self.SetReadOnly(0,9)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1338 self.SetReadOnly(1,9)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1339
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1340 def on_size(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1341 (w,h) = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1342 cols = self.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1343 col_w = w/(cols+1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1344 self.SetColSize(0,col_w*2)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1345 for i in range(1,cols): self.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1346 evt.Skip()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1347 self.Refresh()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1348
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1349 class weapon_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1350 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1351 pname = handler.xml.set("name", 'Weapons')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1352 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
1353 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
1354 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1355 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
1356 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
1357 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
1358 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
1359 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
1360 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1361 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1362 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
1363 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
1364 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
1365 self.grid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1366 n_list = handler.xml.findall('weapon')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1367 self.n_list = n_list
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1368 self.xml = handler.xml
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1369 self.handler = handler
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1370 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
1371 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1372 col_names = ['Name','damage','mod','critical','type','weight','range','size','Total']
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1373 for i in range(len(col_names)): self.grid.SetColLabelValue(i,col_names[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1374 self.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1375 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1376
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1377 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
1378 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1379 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1380 value = self.grid.GetCellValue(row,col)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1381 if col == 0: self.n_list[row].set('name',value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1382 elif col == 2:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1383 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1384 int(value)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1385 self.n_list[row].set('mod',value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1386 self.refresh_row(row)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1387 except: self.grid.SetCellValue(row,col,"1")
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1388 else: self.n_list[row].set(self.grid.GetColLabelValue(col),value)
60
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_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1391 n = self.n_list[i]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1392 name = n.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1393 mod = n.get('mod')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1394 ran = n.get('range')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1395 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
1396 self.grid.SetCellValue(i,0,name)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1397 self.grid.SetCellValue(i,1,n.get('damage'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1398 self.grid.SetCellValue(i,2,mod)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1399 self.grid.SetCellValue(i,3,n.get('critical'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1400 self.grid.SetCellValue(i,4,n.get('type'))
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1401 self.grid.SetCellValue(i,5,n.get('weight'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1402 self.grid.SetCellValue(i,6,ran)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1403 self.grid.SetCellValue(i,7,n.get('size') )
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1404 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
1405 self.grid.SetReadOnly(i,8)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1406
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1407 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1408 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1409 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1410 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
1411 self.grid.DeleteRows(i)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1412 self.xml.remove(self.n_list[i])
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1413 self.n_list = self.xml.findall('weapon')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1414 self.handler.refresh_weapons()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1415
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1416 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1417 if not self.temp_dom:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1418 tree = parse(dir_struct["SWd20"]+"d20weapons.xml")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1419 self.temp_dom = tree.getroot()
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1420 f_list = self.temp_dom.findall('weapon')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1421 opts = []
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1422 for f in f_list:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1423 opts.append(f.get('name'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1424 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
1425 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
1426 i = dlg.GetSelection()
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1427 new_node = self.xml.append(f_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1428 self.grid.AppendRows(1)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1429 self.n_list = self.xml.findall('weapon')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1430 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
1431 self.handler.refresh_weapons()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1432 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1433
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1434 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1435 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1436 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
1437 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
1438 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1439 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1440 col_w = w/(cols+1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1441 self.grid.SetColSize(0,col_w*2)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1442 for i in range(1,cols): self.grid.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1443
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1444 def refresh_data(self):
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1445 for i in range(len(self.n_list)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1446
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1447
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1448 class attack_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1449 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1450 pname = handler.xml.set("name", 'Melee')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1451 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
1452 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
1453 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
1454 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
1455 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
1456 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
1457 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1458 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
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.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
1463
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1464 def refresh_data(self):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1465 self.w_panel.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1466 self.a_grid.refresh_data()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1467
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1468
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1469 class ac_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1470 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1471 pname = handler.xml.set("name", 'Armor')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1472 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
1473 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
1474 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1475 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
1476 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
1477 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
1478 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
1479 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
1480 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1481 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1482 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
1483 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
1484 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
1485 self.grid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.on_cell_change)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1486 self.xml = handler.xml
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1487 n_list = handler.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1488 self.n_list = n_list
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1489 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
1490 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
1491 self.grid.SetRowLabelSize(0)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1492 for i in range(len(col_names)): self.grid.SetColLabelValue(i,col_names[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1493 self.atts =['name','bonus','maxdex','checkpenalty','weight','speed','speed6','type']
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1494 for i in range(len(n_list)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1495 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1496
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1497
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1498 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
1499 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1500 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1501 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
1502 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
1503 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1504 int(value)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1505 self.n_list[row].set(self.atts[col],value)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1506 except: self.grid.SetCellValue(row,col,"0")
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1507 else: self.n_list[row].set(self.atts[col],value)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1508
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1509 def refresh_row(self,i):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1510 n = self.n_list[i]
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1511 for y in range(len(self.atts)): self.grid.SetCellValue(i,y,n.get(self.atts[y]))
60
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 on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1514 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1515 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1516 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
1517 self.grid.DeleteRows(i)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1518 self.xml.remove(self.n_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1519
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1520 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1521 if not self.temp_dom:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1522 tree = parse(dir_struct["SWd20"]+"d20armor.xml")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1523 self.temp_dom = tree.getroot()
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1524 f_list = self.temp_dom.findall('armor')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1525 opts = []
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1526 for f in f_list: opts.append(f.get('name'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1527 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
1528 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
1529 i = dlg.GetSelection()
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1530 new_node = self.xml.append(f_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1531 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1532 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
1533 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1534
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1535 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1536 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1537 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
1538 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
1539 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1540 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1541 col_w = w/(cols+2)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1542 self.grid.SetColSize(0,col_w*3)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1543 for i in range(1,cols): self.grid.SetColSize(i,col_w)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1544
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1545
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1546 class class_panel(wx.Panel):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1547 def __init__(self, parent, handler):
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1548 pname = handler.xml.set("name", 'Class')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1549 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
1550 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
1551 sizer = wx.BoxSizer(wx.HORIZONTAL)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1552 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
1553 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
1554 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
1555 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
1556 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
1557 self.sizer = sizer
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1558 self.SetSizer(self.sizer)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1559 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
1560 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
1561 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
1562 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
1563
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1564 n_list = handler.xml.getchildren()
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1565 self.n_list = n_list
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1566 self.xml = handler.xml
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1567 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
1568 self.grid.SetRowLabelSize(0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1569 self.grid.SetColLabelValue(0,"Class")
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1570 self.grid.SetColLabelValue(1,"Level")
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1571 for i in range(len(n_list)): self.refresh_row(i)
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1572 self.temp_dom = None
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1573
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1574 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
1575 row = evt.GetRow()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1576 col = evt.GetCol()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1577 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
1578 try:
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1579 int(value)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1580 self.n_list[row].set('level',value)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1581 except: self.grid.SetCellValue(row,col,"1")
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1582
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]
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1586 name = n.get('name')
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1587 level = n.get('level')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1588 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
1589 self.grid.SetReadOnly(i,0)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1590 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
1591
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1592 def on_remove(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1593 rows = self.grid.GetNumberRows()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1594 for i in range(rows):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1595 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
1596 self.grid.DeleteRows(i)
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1597 self.xml.remove(self.n_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1598
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1599 def on_add(self,evt):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1600 if not self.temp_dom:
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1601 tree = parse(dir_struct["SWd20"]+"SWd20classes.xml")
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1602 self.temp_dom = tree.getroot()
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1603 f_list = self.temp_dom.findall('class')
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1604 opts = []
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1605 for f in f_list: opts.append(f.get('name'))
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1606 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
1607 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
1608 i = dlg.GetSelection()
135
dcf4fbe09b70 Traipse Beta 'OpenRPG' {091010-00}
sirebral
parents: 67
diff changeset
1609 new_node = self.xml.append(f_list[i])
60
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1610 self.grid.AppendRows(1)
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1611 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
1612 dlg.Destroy()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1613
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1614
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1615 def on_size(self,event):
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1616 s = self.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1617 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
1618 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
1619 (w,h) = self.grid.GetClientSizeTuple()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1620 cols = self.grid.GetNumberCols()
3b2cfa13b610 Fix to toolbar menus. More correct fix so docking is working on Ubuntu
sirebral
parents: 0
diff changeset
1621 col_w = w/(cols)
152
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1622 for i in range(0,cols): self.grid.SetColSize(i,col_w)
6081bdc2b8d5 Traipse Beta 'OpenRPG' {091125-00}
sirebral
parents: 135
diff changeset
1623