annotate orpg/gametree/nodehandlers/core.py~ @ 33:6f460a73989e ornery-orc

Traipse 'OpenRPG' {100503-02} 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 Namespace 2.0 documentation in the User Manual New Namespace plugin, Allows Traipse users to use the Standard syntax !@ :: @! New Mini Library with minis from Devin Knight 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 New to Mini Lib node, change title in design mode New to Game Tree, never lose a node, appends a number to the end of corrupted trees New to Server GUI, Traipse Suite's Debug Console New Warhammer PC Sheet Updates: Update to White Board layer, uses a pencil image for color button Update to Grid Layer, uses a grid image for color button Update to Chat Window, size of drop down menus Update to default lobby message Update to template Text node Update to 4e PC Sheet node Update to how display names are acquired Update to Server, added some 'Pious' technology Update to features node 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 Fix to Mini Lib node that was preventing use Fix to plugins that parce dice but did not call InterParse Fix to nodes for name changing by double click Fix to Game Tree, node ordering on drag and drop corrected Fix to Game Tree, corrupted error message was not showing Fix to Update Manager, checks for internet connection Fix to Update Manager, Auto Update corrections Fix to Server GUI's broadcast, room, player messaging Daily-01: Figured out, this time, why the version file is copied. because of the linux .py~ files. Daily-02: Incomplete feature node updates, sorry. Should be a complete transition after this. Files in the update: Currently selected branch: ornery-orc Author: sirebral Files Modified (in update): data/tips.txt images/draw.png images/grid.png orpg/chat/chatwnd.py orpg/chat/commands.py orpg/dieroller/base.py orpg/dieroller/rollers/std.py orpg/gametree/gametree.py orpg/gametree/nodehandlers/chatmacro.py orpg/gametree/nodehandlers/containers.py orpg/gametree/nodehandlers/core.py~ orpg/gametree/nodehandlers/forms.py orpg/gametree/nodehandlers/minilib.py orpg/gametree/nodehandlers/minilib.py~ orpg/gametree/nodehandlers/rpg_grid.py orpg/main.py orpg/mapper/background.py orpg/mapper/grid_handler.py orpg/mapper/map.py orpg/mapper/whiteboard_handler.py orpg/networking/mplay_server.py orpg/networking/mplay_server_gui.py orpg/orpg_version.py orpg/pluginhandler.py orpg/templates/default_LobbyMessage.html orpg/templates/feature.xml orpg/templates/nodes/4e_char_sheet.xml orpg/templates/nodes/Warhammerv2CS2-Traipse.xml orpg/templates/nodes/split.xml orpg/templates/nodes/textctrl.xml orpg/tools/InterParse.py orpg/tools/aliaslib.py orpg/tools/orpg_log.py orpg/tools/orpg_settings.py plugins/xxhiddendice.py plugins/xxsimpleinit.py plugins/xxstdnamespace.py plugins/xxurl2link.py readme.txt rollback.py start_developer.py start_noupdate.py upmana/updatemana.py
author sirebral
date Mon, 03 May 2010 03:47:00 -0500
parents fc48380f0c9f
children
rev   line source
31
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
1 # Copyright (C) 2000-2001 The OpenRPG Project
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
2 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
3 # openrpg-dev@lists.sourceforge.net
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
4 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
5 # This program is free software; you can redistribute it and/or modify
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
6 # it under the terms of the GNU General Public License as published by
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
7 # the Free Software Foundation; either version 2 of the License, or
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
8 # (at your option) any later version.
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
9 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
10 # This program is distributed in the hope that it will be useful,
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
13 # GNU General Public License for more details.
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
14 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
15 # You should have received a copy of the GNU General Public License
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
16 # along with this program; if not, write to the Free Software
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
18 # --
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
19 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
20 # File: core.py
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
21 # Author: Chris Davis
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
22 # Maintainer:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
23 # Version:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
24 # $Id: core.py,v 1.49 2007/12/07 20:39:48 digitalxero Exp $
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
25 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
26 # Description: The file contains code for the core nodehanlers
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
27 #
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
28
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
29 __version__ = "$Id: core.py,v 1.49 2007/12/07 20:39:48 digitalxero Exp $"
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
30
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
31 from nodehandler_version import NODEHANDLER_VERSION
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
32
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
33 try:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
34 from orpg.orpg_windows import *
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
35 from orpg.dirpath import dir_struct
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
36 from orpg.orpgCore import component
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
37 import webbrowser, os
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
38 from orpg.mapper import map
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
39 from wx import DisplaySize
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
40 except:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
41 import wx
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
42
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
43 from xml.etree.ElementTree import ElementTree, Element, tostring, XML
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
44 from orpg.tools.orpg_log import debug
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
45
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
46 #html defaults
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
47 TH_BG = "#E9E9E9"
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
48 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
49 ## base node handler
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
50 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
51 class node_handler:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
52 """ Base nodehandler with virtual functions and standard implmentations """
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
53 def __init__(self,xml,tree_node):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
54 self.xml = xml
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
55 self.mytree_node = tree_node
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
56 self.tree = open_rpg.get_component('tree')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
57 self.frame = open_rpg.get_component('frame')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
58 self.chat = open_rpg.get_component('chat')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
59 self.drag = True
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
60 self.myeditor = None # designing
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
61 self.myviewer = None # prett print
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
62 self.mywindow = None # using
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
63 # call version hook
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
64 self.on_version(self.xml.get("version"))
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
65 # set to current version
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
66 self.xml.set("version",NODEHANDLER_VERSION)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
67 # null events
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
68 self.frame_size = None
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
69 self.frame_pos = None
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
70 try:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
71 frame = self.xml.get("frame")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
72 if len(frame):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
73 (sx,sy,px,py) = [int(value) for value in frame.split(',')]
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
74 self.frame_size = (sx, sy)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
75 (maxx, maxy) = DisplaySize()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
76 if px < maxx-80 and py < maxy-50: self.frame_pos = (px, py) #if it's off screen ignore the saved pos
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
77 except: pass
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
78
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
79 def on_version(self,old_version):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
80 ## added version control code here or implement a new on_version in your derived class.
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
81 ## always call the base class on_version !
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
82 pass
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
83
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
84 def on_rclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
85 self.tree.do_std_menu(evt,self)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
86
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
87 def on_ldclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
88 return 0
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
89
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
90 def usefulness(self,text):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
91 if text=="useful": self.xml.set('status',"useful")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
92 elif text=="useless": self.xml.set('status',"useless")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
93 elif text=="indifferent": self.xml.set('status',"indifferent")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
94
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
95 def on_design(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
96 try:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
97 self.myeditor.Show()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
98 self.myeditor.Raise()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
99 except:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
100 del self.myeditor
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
101 if self.create_designframe():
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
102 self.myeditor.Show()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
103 self.myeditor.Raise()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
104 else: return
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
105 wx.CallAfter(self.myeditor.Layout)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
106
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
107 def create_designframe(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
108 title = self.xml.get('name') + " Editor"
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
109 self.myeditor = wx.Frame(None, -1, title)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
110 self.myeditor.Freeze()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
111 if wx.Platform == '__WXMSW__':
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
112 icon = wx.Icon(orpg.dirpath.dir_struct["icon"] + 'grid.ico', wx.BITMAP_TYPE_ICO)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
113 self.myeditor.SetIcon(icon)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
114 del icon
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
115
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
116 self.myeditor.panel = self.get_design_panel(self.myeditor)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
117 if self.myeditor.panel == None:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
118 self.myeditor.Destroy()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
119 return False
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
120 sizer = wx.BoxSizer(wx.VERTICAL)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
121 sizer.Add(self.myeditor.panel, 1, wx.EXPAND)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
122
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
123 self.myeditor.SetSizer(sizer)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
124 self.myeditor.SetAutoLayout(True)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
125
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
126 (x, y) = self.myeditor.GetSize()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
127 if x < 400: x = 400
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
128 if y < 400: y = 400
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
129
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
130 self.myeditor.SetSize((x, y))
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
131 self.myeditor.Layout()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
132 self.myeditor.Thaw()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
133 return True
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
134
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
135 def on_use(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
136 try:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
137 self.mywindow.Show()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
138 self.mywindow.Raise()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
139 except:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
140 del self.mywindow
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
141 if self.create_useframe():
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
142 self.mywindow.SetSize(self.frame_size)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
143 if self.frame_pos: self.mywindow.SetPosition(self.frame_pos)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
144 self.mywindow.Show()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
145 self.mywindow.Raise()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
146 else: return
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
147 wx.CallAfter(self.mywindow.Layout)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
148
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
149 def create_useframe(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
150 caption = self.xml.get('name', '')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
151 self.mywindow = wx.Frame(None, -1, caption)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
152 self.mywindow.Freeze()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
153 if wx.Platform == '__WXMSW__':
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
154 icon = wx.Icon(orpg.dirpath.dir_struct["icon"] + 'note.ico', wx.BITMAP_TYPE_ICO)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
155 self.mywindow.SetIcon(icon)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
156 del icon
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
157 self.mywindow.panel = self.get_use_panel(self.mywindow)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
158 if self.mywindow.panel == None:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
159 self.mywindow.Destroy()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
160 return False
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
161 sizer = wx.BoxSizer(wx.VERTICAL)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
162 sizer.Add(self.mywindow.panel, 2, wx.EXPAND)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
163
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
164 self.mywindow.SetSizer(sizer)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
165 self.mywindow.SetAutoLayout(True)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
166
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
167 if self.frame_size is None:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
168 self.frame_size = self.mywindow.GetSize()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
169 if self.frame_size.x < 400: self.frame_size.x = 400
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
170 if self.frame_size.y < 400: self.frame_size.y = 400
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
171
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
172 self.mywindow.Layout()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
173 self.mywindow.Thaw()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
174 self.mywindow.Bind(wx.EVT_CLOSE, self.close_useframe)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
175 return True
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
176
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
177 def close_useframe(self, evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
178 self.frame_size = self.mywindow.GetSize()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
179 self.frame_pos = self.mywindow.GetPosition()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
180 frame_values = str(self.frame_size.x)+','+str(self.frame_size.y)+','+str(self.frame_pos.x)+','+str(self.frame_pos.y)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
181 self.xml.set("frame", frame_values)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
182 self.mywindow.Destroy()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
183
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
184
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
185 def on_html_view(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
186 try: self.myviewer.Raise()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
187 except:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
188 caption = self.xml.get('name')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
189 self.myviewer = wx.Frame(None, -1, caption)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
190 if wx.Platform == '__WXMSW__':
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
191 icon = wx.Icon(orpg.dirpath.dir_struct["icon"] + 'grid.ico', wx.BITMAP_TYPE_ICO)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
192 self.myviewer.SetIcon(icon)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
193 del icon
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
194 self.myviewer.panel = self.get_html_panel(self.myviewer)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
195 self.myviewer.Show()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
196
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
197 def map_aware(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
198 return 0
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
199
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
200 def can_clone(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
201 return 1;
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
202
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
203 def on_del(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
204 print "on del"
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
205
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
206 def on_new_data(self,xml):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
207 pass
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
208
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
209 def get_scaled_bitmap(self,x,y):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
210 return None
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
211
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
212 def on_send_to_map(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
213 pass
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
214
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
215 def on_send_to_chat(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
216 self.chat.ParsePost(self.tohtml(),True,True)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
217
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
218 def on_drop(self, evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
219 drag_obj = self.tree.drag_obj
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
220 if drag_obj == self or self.tree.is_parent_node(self.mytree_node, drag_obj.mytree_node):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
221 return
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
222 drop_xml = self.tree.drag_obj.delete()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
223 parent_node = self.tree.GetItemParent(self.mytree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
224 prev_sib = self.tree.GetPrevSibling(self.mytree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
225 if parent_node == self.tree.root: parent_xml = self.tree.GetPyData(parent_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
226 else: parent_xml = self.tree.GetPyData(parent_node).xml
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
227 for i in range(len(parent_xml)):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
228 if parent_xml[i] is self.xml:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
229 parent_xml.insert(i, drop_xml)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
230 break
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
231 if not prev_sib.IsOk():
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
232 prev_sib = parent_node
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
233 self.tree.load_xml(drop_xml, parent_node, prev_sib)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
234
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
235 def get_tree(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
236 family = []
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
237 test = treenode
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
238 while test != self.tree.root:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
239 test = self.tree.GetItemParent(test)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
240 parent = self.tree.GetItemText(test)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
241 family.append(parent)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
242 return family
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
243
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
244 def toxml(self,pretty=0):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
245 return tostring(self.xml) #toxml(self.master_dom,pretty)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
246
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
247 def tohtml(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
248 return self.xml.get("name")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
249
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
250 def delete(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
251 """ removes the tree_node and xml_node, and returns the removed xml_node """
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
252 parent_node = self.tree.GetItemParent(self.mytree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
253 if parent_node == self.tree.root: parent_xml = self.tree.GetPyData(parent_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
254 else: parent_xml = self.tree.GetPyData(parent_node).xml
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
255 parent_xml.remove(self.xml)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
256 self.tree.Delete(self.mytree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
257 return self.xml
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
258
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
259 def rename(self,name):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
260 if len(name):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
261 self.tree.SetItemText(self.mytree_node,name)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
262 self.xml.set('name', name)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
263
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
264 def change_icon(self,icon):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
265 self.xml.set("icon",icon)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
266 self.tree.SetItemImage(self.mytree_node, self.tree.icons[icon])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
267 self.tree.SetItemImage(self.mytree_node, self.tree.icons[icon], wx.TreeItemIcon_Selected)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
268 self.tree.Refresh()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
269
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
270 def on_save(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
271 f = wx.FileDialog(self.tree,"Select a file", orpg.dirpath.dir_struct["user"],"","XML files (*.xml)|*.xml",wx.SAVE)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
272 if f.ShowModal() == wx.ID_OK: ElementTree(self.xml).write(f.GetPath())
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
273 f.Destroy()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
274
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
275 def get_design_panel(self,parent):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
276 return None
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
277
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
278 def get_use_panel(self,parent):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
279 return None
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
280
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
281 def get_html_panel(self,parent):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
282 html_str = "<html><body bgcolor=\"#FFFFFF\" >"+self.tohtml()+"</body></html>"
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
283 wnd = wx.html.HtmlWindow(parent,-1)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
284 html_str = self.chat.ParseDice(html_str)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
285 wnd.SetPage(html_str)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
286 return wnd
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
287
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
288 def get_size_constraint(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
289 return 0
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
290
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
291 def about(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
292 """html_str = "<b>"+ self.xml.get('class')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
293 html_str += " Applet</b><br />by Chris Davis<br />chris@rpgarchive.com"
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
294 return html_str"""
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
295 text = self.xml.get('class') + 'Applet\n'
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
296 text += 'by Chris Davis chris@rpgarchive.com'
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
297 return text
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
298
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
299 def get_value(self):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
300 return None
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
301
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
302 P_TITLE = 10
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
303 P_BODY = 20
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
304
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
305 class text_edit_panel(wx.Panel):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
306 def __init__(self, parent, handler):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
307 wx.Panel.__init__(self, parent, -1)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
308 self.handler = handler
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
309 sizer = wx.BoxSizer(wx.VERTICAL)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
310 self.text = { P_TITLE : wx.TextCtrl(self, P_TITLE, handler.xml.get('name')),
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
311 P_BODY : html_text_edit(self,P_BODY,handler.text,self.on_text)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
312 }
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
313 sizer.Add(wx.StaticText(self, -1, "Title:"), 0, wx.EXPAND)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
314 sizer.Add(self.text[P_TITLE], 0, wx.EXPAND)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
315 sizer.Add(wx.StaticText(self, -1, "Text Body:"), 0, wx.EXPAND)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
316 sizer.Add(self.text[P_BODY], 1, wx.EXPAND)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
317 self.sizer = sizer
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
318 self.outline = wx.StaticBox(self,-1,"Text Block")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
319 self.Bind(wx.EVT_TEXT, self.on_text, id=P_TITLE)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
320
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
321 def on_text(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
322 id = evt.GetId()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
323 if id == P_TITLE:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
324 txt = self.text[id].GetValue()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
325 # The following block strips out 8-bit characters
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
326 u_txt = ""
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
327 bad_txt_found = 0
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
328 for c in txt:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
329 if ord(c) < 128: u_txt += c
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
330 else: bad_txt_found = 1
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
331 if bad_txt_found:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
332 wx.MessageBox("Some non 7-bit ASCII characters found and stripped","Warning!")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
333 txt = u_txt
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
334 if txt != "":
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
335 self.handler.xml.set('name',txt)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
336 self.handler.rename(txt)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
337 elif id == P_BODY:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
338 txt = self.text[id].get_text()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
339 u_txt = ""
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
340 bad_txt_found = 0
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
341 for c in txt:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
342 if ord(c) < 128: u_txt += c
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
343 else: bad_txt_found = 1
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
344 if bad_txt_found:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
345 wx.MessageBox("Some non 7-bit ASCII characters found and stripped","Warning!")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
346 txt = u_txt
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
347 self.handler.text._set_nodeValue(txt)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
348
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
349
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
350
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
351 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
352 ## node loader
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
353 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
354 class node_loader(node_handler):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
355 """ clones childe node and insert it at top of tree
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
356 <nodehandler name='?' module='core' class='node_loader' />
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
357 """
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
358 def __init__(self,xml,tree_node):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
359 node_handler.__init__(self,xml,tree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
360
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
361 def on_rclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
362 pass
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
363
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
364 def on_ldclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
365 title = self.xml.get('name')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
366 new_xml = XML(tostring(self.xml[0]))
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
367 self.tree.root_xml.insert(0, new_xml)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
368 tree_node = self.tree.load_xml(new_xml,self.tree.root,self.tree.root)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
369 return 1
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
370
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
371 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
372 ## file loader
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
373 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
374
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
375 class file_loader(node_handler):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
376 """ loads file and insert into game tree
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
377 <nodehandler name='?' module='core' class='file_loader' >
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
378 <file name="file_name.xml" />
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
379 </nodehandler>
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
380 """
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
381 def __init__(self,xml,tree_node):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
382 node_handler.__init__(self,xml,tree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
383 self.file_node = self.xml[0]
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
384 self.frame = open_rpg.get_component('frame')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
385
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
386 def on_ldclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
387 file_name = self.file_node.get("name")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
388 self.tree.insert_xml(open(orpg.dirpath.dir_struct["nodes"] + file_name,"r").read())
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
389 return 1
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
390
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
391 def on_design(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
392 tlist = ['Title','File Name']
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
393 vlist = [self.xml.get("name"),
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
394 self.file_node.get("name")]
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
395 dlg = orpgMultiTextEntry(self.tree.GetParent(),tlist,vlist,"File Loader Edit")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
396 if dlg.ShowModal() == wx.ID_OK:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
397 vlist = dlg.get_values()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
398 self.file_node.set('name', vlist[1])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
399 self.xml.set('name', vlist[0])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
400 self.tree.SetItemText(self.mytree_node,vlist[0])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
401 dlg.Destroy()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
402
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
403 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
404 ## URL loader
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
405 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
406
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
407 class url_loader(node_handler):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
408 """ loads file from url and insert into game tree
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
409 <nodehandler name='?' module='core' class='url_loader' >
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
410 <file name="http://file_name.xml" />
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
411 </nodehandler>
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
412 """
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
413 def __init__(self,xml,tree_node):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
414 node_handler.__init__(self,xml,tree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
415 self.file_node = self.xml[0]
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
416 self.frame = open_rpg.get_component('frame')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
417
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
418 def on_ldclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
419 file_name = self.file_node.get("url")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
420 file = urllib.urlopen(file_name)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
421 self.tree.insert_xml(file.read())
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
422 return 1
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
423
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
424 def on_design(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
425 tlist = ['Title','URL']
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
426 print "design filename",self.xml.get('name')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
427 vlist = [self.xml.get("name"),
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
428 self.file_node.get("url")]
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
429 dlg = orpgMultiTextEntry(self.tree.GetParent(),tlist,vlist,"File Loader Edit")
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
430 if dlg.ShowModal() == wx.ID_OK:
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
431 vlist = dlg.get_values()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
432 self.file_node.set('url', vlist[1])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
433 self.xml.set('name', vlist[0])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
434 self.tree.SetItemText(self.mytree_node,vlist[0])
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
435 dlg.Destroy()
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
436
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
437
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
438 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
439 ## minature map loader
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
440 ##########################
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
441 class min_map(node_handler):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
442 """ clones childe node and insert it at top of tree
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
443 <nodehandler name='?' module='core' class='min_map' />
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
444 """
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
445 def __init__(self,xml,tree_node):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
446 node_handler.__init__(self,xml,tree_node)
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
447 self.map = open_rpg.get_component('map')
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
448 self.mapdata = self.xml[0]
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
449
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
450 def on_ldclick(self,evt):
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
451 self.map.new_data(tostring(self.mapdata))
fc48380f0c9f Traipse Beta 'OpenRPG' {100503-00}
sirebral
parents: 0
diff changeset
452 return 1