Mercurial > traipse_dev
annotate orpg/mapper/miniatures.py @ 159:033887bb8a86 alpha
Traipse Alpha 'OpenRPG' {091126-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 (Keeping up with Beta)
New Features:
Added Bookmarks
Added 'boot' command to remote admin
Added confirmation window for sent nodes
Minor changes to allow for portability to an OpenSUSE linux OS
Miniatures Layer pop up box allows users to turn off Mini labels, from FlexiRPG
Zoom Mouse plugin added
Images added to Plugin UI
Switching to Element Tree
Map efficiency, from FlexiRPG
Added Status Bar to Update Manager
New TrueDebug Class in orpg_log (See documentation for usage)
Portable Mercurial
Tip of the Day added, from Core and community
New Reference Syntax added for custom PC sheets
New Child Reference for gametree
New Gametree Recursion method, mapping, context sensitivity, and effeciency..
New Features node with bonus nodes and Node Referencing help added
Fixes:
Fix to Text based Server
Fix to Remote Admin Commands
Fix to Pretty Print, from Core
Fix to Splitter Nodes not being created
Fix to massive amounts of images loading, from Core
Fix to Map from gametree not showing to all clients
Fix to gametree about menus
Fix to Password Manager check on startup
Fix to PC Sheets from tool nodes. They now use the tabber_panel
Fixed Whiteboard ID to prevent random line or text deleting.
Modified ID's to prevent non updated clients from ruining the fix. *Whiteboard
from Core not showing*
default_manifest.xml renamed to default_upmana.xml
Fix to Update Manager; cleaner clode for saved repositories
author | sirebral |
---|---|
date | Thu, 26 Nov 2009 14:24:19 -0600 |
parents | 06f10429eedc |
children | b633f4c64aae 81d0bfd5e800 |
rev | line source |
---|---|
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
1 # Copyright (C) 2000-2001 The OpenRPG Project |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
2 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
3 # openrpg-dev@lists.sourceforge.net |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
4 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
5 # This program is free software; you can redistribute it and/or modify |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
6 # it under the terms of the GNU General Public License as published by |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
7 # the Free Software Foundation; either version 2 of the License, or |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
8 # (at your option) any later version. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
9 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
10 # This program is distributed in the hope that it will be useful, |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
13 # GNU General Public License for more details. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
14 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
15 # You should have received a copy of the GNU General Public License |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
16 # along with this program; if not, write to the Free Software |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
18 # -- |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
19 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
20 # File: mapper/miniatures.py |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
21 # Author: Chris Davis |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
22 # Maintainer: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
23 # Version: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
24 # $Id: miniatures.py,v 1.46 2007/12/07 20:39:50 digitalxero Exp $ |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
25 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
26 # Description: This file contains some of the basic definitions for the chat |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
27 # utilities in the orpg project. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
28 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
29 __version__ = "$Id: miniatures.py,v 1.46 2007/12/07 20:39:50 digitalxero Exp $" |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
30 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
31 from base import * |
151 | 32 import thread, time, urllib, os.path, mimetypes |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
33 |
88 | 34 import xml.dom.minidom as minidom |
76
37a11fea3304
More clean up. Images now posts a Chat Info post if image doesn't load.
sirebral
parents:
71
diff
changeset
|
35 from orpg.tools.orpg_settings import settings |
37a11fea3304
More clean up. Images now posts a Chat Info post if image doesn't load.
sirebral
parents:
71
diff
changeset
|
36 |
118 | 37 from xml.etree.ElementTree import ElementTree, Element |
38 from xml.etree.ElementTree import fromstring, tostring | |
39 | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
40 MIN_STICKY_BACK = -0XFFFFFF |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
41 MIN_STICKY_FRONT = 0xFFFFFF |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
42 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
43 ##---------------------------------------- |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
44 ## miniature object |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
45 ##---------------------------------------- |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
46 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
47 FACE_NONE = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
48 FACE_NORTH = 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
49 FACE_NORTHEAST = 2 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
50 FACE_EAST = 3 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
51 FACE_SOUTHEAST = 4 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
52 FACE_SOUTH = 5 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
53 FACE_SOUTHWEST = 6 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
54 FACE_WEST = 7 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
55 FACE_NORTHWEST = 8 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
56 SNAPTO_ALIGN_CENTER = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
57 SNAPTO_ALIGN_TL = 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
58 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
59 def cmp_zorder(first,second): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
60 f = first.zorder |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
61 s = second.zorder |
20 | 62 if f == None: f = 0 |
63 if s == None: s = 0 | |
64 if f == s: value = 0 | |
65 elif f < s: value = -1 | |
66 else: value = 1 | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
67 return value |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
68 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
69 class BmpMiniature: |
118 | 70 def __init__(self, id, path, bmp, pos=cmpPoint(0,0), |
71
449a8900f9ac
Code refining almost completed, for this round. Some included files are still in need of some clean up, but this is test worthy.
sirebral
parents:
21
diff
changeset
|
71 heading=FACE_NONE, face=FACE_NONE, label="", |
449a8900f9ac
Code refining almost completed, for this round. Some included files are still in need of some clean up, but this is test worthy.
sirebral
parents:
21
diff
changeset
|
72 locked=False, hide=False, snap_to_align=SNAPTO_ALIGN_CENTER, |
118 | 73 zorder=0, width=0, height=0, log=None, local=False, localPath='', localTime=-1, func='none'): |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
74 self.heading = heading |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
75 self.face = face |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
76 self.label = label |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
77 self.path = path |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
78 self.pos = pos |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
79 self.selected = False |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
80 self.locked = locked |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
81 self.snap_to_align = snap_to_align |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
82 self.hide = hide |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
83 self.id = id |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
84 self.zorder = zorder |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
85 self.left = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
86 self.local = local |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
87 self.localPath = localPath |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
88 self.localTime = localTime |
20 | 89 if not width: self.width = 0 |
90 else: self.width = width | |
91 if not height: self.height = 0 | |
92 else: self.height = height | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
93 self.right = bmp.GetWidth() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
94 self.top = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
95 self.bottom = bmp.GetHeight() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
96 self.isUpdated = False |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
97 self.gray = False |
118 | 98 self.set_bmp(bmp) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
99 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
100 def __del__(self): |
118 | 101 del self.image |
102 self.image = None | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
103 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
104 def set_bmp(self, bmp): |
118 | 105 self.image = bmp |
106 self.image.ConvertAlphaToMask() | |
107 self.generate_bmps() | |
108 | |
109 def generate_bmps(self): | |
110 if self.width: | |
111 bmp = self.image.Copy() | |
112 bmp.Rescale(int(self.width), int(self.height)) | |
113 else: | |
114 bmp = self.image | |
115 self.bmp = bmp.ConvertToBitmap() | |
116 self.bmp_gray = bmp.ConvertToGreyscale().ConvertToBitmap() | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
117 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
118 def set_min_props(self, heading=FACE_NONE, face=FACE_NONE, label="", locked=False, hide=False, width=0, height=0): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
119 self.heading = heading |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
120 self.face = face |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
121 self.label = label |
20 | 122 if locked: self.locked = True |
123 else: self.locked = False | |
124 if hide: self.hide = True | |
125 else: self.hide = False | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
126 self.width = int(width) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
127 self.height = int(height) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
128 self.isUpdated = True |
118 | 129 self.generate_bmps() |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
130 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
131 def hit_test(self, pt): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
132 rect = self.get_rect() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
133 result = None |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
134 result = rect.InsideXY(pt.x, pt.y) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
135 return result |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
136 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
137 def get_rect(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
138 ret = wx.Rect(self.pos.x, self.pos.y, self.bmp.GetWidth(), self.bmp.GetHeight()) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
139 return ret |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
140 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
141 def draw(self, dc, mini_layer, op=wx.COPY): |
118 | 142 if self.hide and mini_layer.canvas.frame.session.my_role() == mini_layer.canvas.frame.session.ROLE_GM: |
143 # set the width and height of the image | |
144 self.left = 0 | |
145 self.right = self.bmp.GetWidth() | |
146 self.top = 0 | |
147 self.bottom = self.bmp.GetHeight() | |
148 # grey outline | |
149 graypen = wx.Pen("gray", 1, wx.DOT) | |
150 dc.SetPen(graypen) | |
151 dc.SetBrush(wx.TRANSPARENT_BRUSH) | |
152 #if width or height < 20 then offset = 1 | |
153 if self.bmp.GetWidth() <= 20: xoffset = 1 | |
154 else: xoffset = 5 | |
155 if self.bmp.GetHeight() <= 20: yoffset = 1 | |
156 else: yoffset = 5 | |
157 dc.DrawRectangle(self.pos.x + xoffset, | |
158 self.pos.y + yoffset, self.bmp.GetWidth(), | |
159 self.bmp.GetHeight()) | |
160 dc.SetBrush(wx.NullBrush) | |
161 dc.SetPen(wx.NullPen) | |
162 if mini_layer.show_labels: | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
163 ## draw label in the center of the mini |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
164 label = mini_layer.get_mini_label(self) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
165 if len(label): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
166 dc.SetTextForeground(wx.RED) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
167 (textWidth,textHeight) = dc.GetTextExtent(label) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
168 x = self.pos.x +((self.bmp.GetWidth() - textWidth) /2) - 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
169 y = self.pos.y + (self.bmp.GetHeight() / 2) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
170 dc.SetPen(wx.GREY_PEN) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
171 dc.SetBrush(wx.LIGHT_GREY_BRUSH) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
172 dc.DrawRectangle(x, y, textWidth+2, textHeight+2) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
173 if (textWidth+2 > self.right): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
174 self.right += int((textWidth+2-self.right)/2)+1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
175 self.left -= int((textWidth+2-self.right)/2)+1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
176 self.bottom = y+textHeight+2-self.pos.y |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
177 dc.SetPen(wx.NullPen) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
178 dc.SetBrush(wx.NullBrush) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
179 dc.DrawText(label, x+1, y+1) |
118 | 180 |
181 #selected outline | |
182 if self.selected: | |
183 dc.SetPen(wx.RED_PEN) | |
184 dc.SetBrush(wx.TRANSPARENT_BRUSH) | |
185 dc.DrawRectangle(self.pos.x, self.pos.y, self.bmp.GetWidth(), self.bmp.GetHeight()) | |
186 dc.SetBrush(wx.NullBrush) | |
187 dc.SetPen(wx.NullPen) | |
188 return True | |
189 elif self.hide: return True | |
190 | |
191 else: | |
192 bmp = self.bmp_gray if self.gray else self.bmp | |
193 try: dc.DrawBitmap(bmp, self.pos.x, self.pos.y, True) | |
194 except: print bmp | |
195 self.left = 0 | |
196 self.right = self.bmp.GetWidth() | |
197 self.top = 0 | |
198 self.bottom = self.bmp.GetHeight() | |
199 | |
200 # Draw the facing marker if needed | |
201 if self.face != 0: | |
202 x_mid = self.pos.x + (self.bmp.GetWidth()/2) | |
203 x_right = self.pos.x + self.bmp.GetWidth() | |
204 y_mid = self.pos.y + (self.bmp.GetHeight()/2) | |
205 y_bottom = self.pos.y + self.bmp.GetHeight() | |
206 dc.SetPen(wx.WHITE_PEN) | |
207 dc.SetBrush(wx.RED_BRUSH) | |
208 triangle = [] | |
209 | |
210 # Figure out which direction to draw the marker!! | |
211 tri_list = { | |
212 FACE_WEST: [cmpPoint(self.pos.x, self.pos.y), cmpPoint(self.pos.x-5, y_mid), cmpPoint(self.pos.x, y_bottom)], | |
213 FACE_EAST: [cmpPoint(x_right, self.pos.y), cmpPoint(x_right + 5, y_mid), cmpPoint(x_right, y_bottom)], | |
214 FACE_SOUTH: [cmpPoint(self.pos.x, y_bottom), cmpPoint(x_mid, y_bottom + 5), cmpPoint(x_right, y_bottom)], | |
215 FACE_NORTH: [cmpPoint(self.pos.x, self.pos.y), cmpPoint(x_mid, self.pos.y - 5), cmpPoint(x_right, self.pos.y)], | |
216 FACE_NORTHEAST: [cmpPoint(x_mid, self.pos.y), cmpPoint(x_right + 5, self.pos.y - 5), cmpPoint(x_right, y_mid), cmpPoint(x_right, self.pos.y)], | |
217 FACE_SOUTHEAST: [cmpPoint(x_right, y_mid), cmpPoint(x_right + 5, y_bottom + 5), cmpPoint(x_mid, y_bottom), cmpPoint(x_right, y_bottom)], | |
218 FACE_SOUTHWEST: [cmpPoint(x_mid, y_bottom), cmpPoint(self.pos.x - 5, y_bottom + 5), | |
219 cmpPoint(self.pos.x, y_mid), cmpPoint(self.pos.x, y_bottom)], | |
220 FACE_NORTHWEST: [cmpPoint(self.pos.x, y_mid), cmpPoint(self.pos.x - 5, self.pos.y - 5), cmpPoint(x_mid, self.pos.y), cmpPoint(self.pos.x, self.pos.y)] | |
221 } | |
222 for tri in tri_list[self.face]: | |
223 triangle.append(tri) | |
224 del tri_list | |
225 dc.DrawPolygon(triangle) | |
226 dc.SetBrush(wx.NullBrush) | |
227 dc.SetPen(wx.NullPen) | |
228 | |
229 # Draw the heading if needed | |
230 if self.heading: | |
231 x_adjust = 0 | |
232 y_adjust = 4 | |
233 x_half = self.bmp.GetWidth()/2 | |
234 y_half = self.bmp.GetHeight()/2 | |
235 x_quarter = self.bmp.GetWidth()/4 | |
236 y_quarter = self.bmp.GetHeight()/4 | |
237 x_3quarter = x_quarter*3 | |
238 y_3quarter = y_quarter*3 | |
239 x_full = self.bmp.GetWidth() | |
240 y_full = self.bmp.GetHeight() | |
241 x_center = self.pos.x + x_half | |
242 y_center = self.pos.y + y_half | |
243 # Remember, the pen/brush must be a different color than the | |
244 # facing marker!!!! We'll use black/cyan for starters. | |
245 # Also notice that we will draw the heading on top of the | |
246 # larger facing marker. | |
247 dc.SetPen(wx.BLACK_PEN) | |
248 dc.SetBrush(wx.CYAN_BRUSH) | |
249 triangle = [] | |
250 # Figure out which direction to draw the marker!! | |
251 tri_list = { | |
151 | 252 FACE_NORTH: [cmpPoint(x_center - x_quarter, y_center - y_half ), |
253 cmpPoint(x_center, y_center - y_3quarter ), | |
254 cmpPoint(x_center + x_quarter, y_center - y_half)], | |
255 FACE_SOUTH: [cmpPoint(x_center - x_quarter, y_center + y_half ), | |
256 cmpPoint(x_center, y_center + y_3quarter ), | |
257 cmpPoint(x_center + x_quarter, y_center + y_half )], | |
258 FACE_NORTHEAST: [cmpPoint(x_center + x_quarter, y_center - y_half ), | |
259 cmpPoint(x_center + x_3quarter, y_center - y_3quarter ), | |
260 cmpPoint(x_center + x_half, y_center - y_quarter)], | |
261 FACE_EAST: [cmpPoint(x_center + x_half, y_center - y_quarter ), | |
262 cmpPoint(x_center + x_3quarter, y_center ), | |
263 cmpPoint(x_center + x_half, y_center + y_quarter )], | |
264 FACE_SOUTHEAST: [cmpPoint(x_center + x_half, y_center + y_quarter ), | |
265 cmpPoint(x_center + x_3quarter, y_center + y_3quarter ), | |
266 cmpPoint(x_center + x_quarter, y_center + y_half )], | |
267 FACE_SOUTHWEST: [cmpPoint(x_center - x_quarter, y_center + y_half ), | |
268 cmpPoint(x_center - x_3quarter, y_center + y_3quarter ), | |
269 cmpPoint(x_center - x_half, y_center + y_quarter )], | |
270 FACE_WEST: [cmpPoint(x_center - x_half, y_center + y_quarter ), | |
271 cmpPoint(x_center - x_3quarter, y_center ), | |
272 cmpPoint(x_center - x_half, y_center - y_quarter )], | |
273 FACE_NORTHWEST: [cmpPoint(x_center - x_half, y_center - y_quarter ), | |
274 cmpPoint(x_center - x_3quarter, y_center - y_3quarter ), | |
275 cmpPoint(x_center - x_quarter, y_center - y_half )]} | |
118 | 276 for tri in tri_list[self.heading]: |
277 triangle.append(tri) | |
278 del tri_list | |
279 dc.DrawPolygon(triangle) | |
280 dc.SetBrush(wx.NullBrush) | |
281 dc.SetPen(wx.NullPen) | |
282 #selected outline | |
283 if self.selected: | |
284 dc.SetPen(wx.RED_PEN) | |
285 dc.SetBrush(wx.TRANSPARENT_BRUSH) | |
286 dc.DrawRectangle(self.pos.x, self.pos.y, self.bmp.GetWidth(), self.bmp.GetHeight()) | |
287 dc.SetBrush(wx.NullBrush) | |
288 dc.SetPen(wx.NullPen) | |
289 if mini_layer.show_labels: | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
290 # draw label |
118 | 291 self.mini_label(mini_layer, dc) |
292 self.top-=5 | |
293 self.bottom+=5 | |
294 self.left-=5 | |
295 self.right+=5 | |
296 return True | |
297 | |
298 | |
299 def mini_label(self, mini_layer, dc): | |
300 label = mini_layer.get_mini_label(self) | |
301 if len(label): | |
302 dc.SetTextForeground(wx.RED) | |
303 (textWidth,textHeight) = dc.GetTextExtent(label) | |
304 x = self.pos.x +((self.bmp.GetWidth() - textWidth) /2) - 1 | |
305 y = self.pos.y + self.bmp.GetHeight() + 6 | |
306 dc.SetPen(wx.WHITE_PEN) | |
307 dc.SetBrush(wx.WHITE_BRUSH) | |
308 dc.DrawRectangle(x,y,textWidth+2,textHeight+2) | |
309 if (textWidth+2 > self.right): | |
310 self.right += int((textWidth+2-self.right)/2)+1 | |
311 self.left -= int((textWidth+2-self.right)/2)+1 | |
312 self.bottom = y+textHeight+2-self.pos.y | |
313 dc.SetPen(wx.NullPen) | |
314 dc.SetBrush(wx.NullBrush) | |
315 dc.DrawText(label,x+1,y+1) | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
316 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
317 def toxml(self, action="update"): |
139 | 318 if action == "del": |
319 xml_str = "<miniature action='del' id='" + self.id + "'/>" | |
320 return xml_str | |
321 xml_str = "<miniature" | |
322 xml_str += " action='" + action + "'" | |
323 xml_str += " label='" + self.label + "'" | |
324 xml_str+= " id='" + self.id + "'" | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
325 if self.pos != None: |
139 | 326 xml_str += " posx='" + str(self.pos.x) + "'" |
327 xml_str += " posy='" + str(self.pos.y) + "'" | |
328 if self.heading != None: xml_str += " heading='" + str(self.heading) + "'" | |
329 if self.face != None: xml_str += " face='" + str(self.face) + "'" | |
330 if self.path != None: xml_str += " path='" + urllib.quote(self.path).replace('%3A', ':') + "'" | |
331 if self.locked: xml_str += " locked='1'" | |
332 else: xml_str += " locked='0'" | |
333 if self.hide: xml_str += " hide='1'" | |
334 else: xml_str += " hide='0'" | |
335 if self.snap_to_align != None: xml_str += " align='" + str(self.snap_to_align) + "'" | |
336 if self.id != None: xml_str += " zorder='" + str(self.zorder) + "'" | |
337 if self.width != None: xml_str += " width='" + str(self.width) + "'" | |
338 if self.height != None: xml_str += " height='" + str(self.height) + "'" | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
339 if self.local: |
139 | 340 xml_str += ' local="' + str(self.local) + '"' |
341 xml_str += ' localPath="' + str(urllib.quote(self.localPath).replace('%3A', ':')) + '"' | |
342 xml_str += ' localTime="' + str(self.localTime) + '"' | |
343 xml_str += " />" | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
344 if (action == "update" and self.isUpdated) or action == "new": |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
345 self.isUpdated = False |
139 | 346 print xml_str; return xml_str |
20 | 347 else: return '' |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
348 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
349 def takedom(self, xml_dom): |
139 | 350 self.id = xml_dom.getAttribute("id") |
151 | 351 if xml_dom.hasAttribute("posx"): self.pos.x = int(xml_dom.getAttribute("posx")) |
352 if xml_dom.hasAttribute("posy"): self.pos.y = int(xml_dom.getAttribute("posy")) | |
353 if xml_dom.hasAttribute("heading"): self.heading = int(xml_dom.getAttribute("heading")) | |
354 if xml_dom.hasAttribute("face"): self.face = int(xml_dom.getAttribute("face")) | |
139 | 355 if xml_dom.hasAttribute("path"): |
356 self.path = urllib.unquote(xml_dom.getAttribute("path")) | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
357 self.set_bmp(ImageHandler.load(self.path, 'miniature', self.id)) |
139 | 358 if xml_dom.hasAttribute("locked"): |
359 if xml_dom.getAttribute("locked") == '1' or xml_dom.getAttribute("locked") == 'True': self.locked = True | |
20 | 360 else: self.locked = False |
139 | 361 if xml_dom.hasAttribute("hide"): |
362 if xml_dom.getAttribute("hide") == '1' or xml_dom.getAttribute("hide") == 'True': self.hide = True | |
20 | 363 else: self.hide = False |
151 | 364 if xml_dom.hasAttribute("label"): self.label = xml_dom.getAttribute("label") |
365 if xml_dom.hasAttribute("zorder"): self.zorder = int(xml_dom.getAttribute("zorder")) | |
139 | 366 if xml_dom.hasAttribute("align"): |
367 if xml_dom.getAttribute("align") == '1' or xml_dom.getAttribute("align") == 'True': self.snap_to_align = 1 | |
20 | 368 else: self.snap_to_align = 0 |
151 | 369 if xml_dom.hasAttribute("width"): self.width = int(xml_dom.getAttribute("width")) |
370 if xml_dom.hasAttribute("height"): self.height = int(xml_dom.getAttribute("height")) | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
371 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
372 ##----------------------------- |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
373 ## miniature layer |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
374 ##----------------------------- |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
375 class miniature_layer(layer_base): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
376 def __init__(self, canvas): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
377 self.canvas = canvas |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
378 layer_base.__init__(self) |
7
2b9e766f9dee
Tests fixes issues with Linux GUI effecting miniatures
sirebral
parents:
0
diff
changeset
|
379 self.id = -1 #added. |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
380 self.miniatures = [] |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
381 self.serial_number = 0 |
118 | 382 self.show_labels = True |
7
2b9e766f9dee
Tests fixes issues with Linux GUI effecting miniatures
sirebral
parents:
0
diff
changeset
|
383 # Set the font of the labels to be the same as the chat window |
2b9e766f9dee
Tests fixes issues with Linux GUI effecting miniatures
sirebral
parents:
0
diff
changeset
|
384 # only smaller. |
76
37a11fea3304
More clean up. Images now posts a Chat Info post if image doesn't load.
sirebral
parents:
71
diff
changeset
|
385 font_size = int(settings.get_setting('defaultfontsize')) |
20 | 386 if (font_size >= 10): font_size -= 2 |
137 | 387 self.label_font = wx.Font(font_size, |
388 wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, | |
389 wx.FONTWEIGHT_NORMAL, | |
76
37a11fea3304
More clean up. Images now posts a Chat Info post if image doesn't load.
sirebral
parents:
71
diff
changeset
|
390 False, settings.get_setting('defaultfont')) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
391 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
392 def next_serial(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
393 self.serial_number += 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
394 return self.serial_number |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
395 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
396 def get_next_highest_z(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
397 z = len(self.miniatures)+1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
398 return z |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
399 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
400 def cleanly_collapse_zorder(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
401 # lock the zorder stuff |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
402 sorted_miniatures = self.miniatures[:] |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
403 sorted_miniatures.sort(cmp_zorder) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
404 i = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
405 for mini in sorted_miniatures: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
406 mini.zorder = i |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
407 i = i + 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
408 # unlock the zorder stuff |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
409 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
410 def collapse_zorder(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
411 # lock the zorder stuff |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
412 sorted_miniatures = self.miniatures[:] |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
413 sorted_miniatures.sort(cmp_zorder) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
414 i = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
415 for mini in sorted_miniatures: |
20 | 416 if (mini.zorder != MIN_STICKY_BACK) and (mini.zorder != MIN_STICKY_FRONT): mini.zorder = i |
417 else: pass | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
418 i = i + 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
419 # unlock the zorder stuff |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
420 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
421 def rollback_serial(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
422 self.serial_number -= 1 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
423 |
19
78407d627cba
Beginning of Code Clean-up. Some code untested, may break!
sirebral
parents:
7
diff
changeset
|
424 def add_miniature(self, id, path, pos=cmpPoint(0,0), label="", heading=FACE_NONE, |
78407d627cba
Beginning of Code Clean-up. Some code untested, may break!
sirebral
parents:
7
diff
changeset
|
425 face=FACE_NONE, width=0, height=0, local=False, localPath='', localTime=-1): |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
426 bmp = ImageHandler.load(path, 'miniature', id) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
427 if bmp: |
19
78407d627cba
Beginning of Code Clean-up. Some code untested, may break!
sirebral
parents:
7
diff
changeset
|
428 mini = BmpMiniature(id, path, bmp, pos, heading, face, label, |
118 | 429 zorder=self.get_next_highest_z(), width=width, |
71
449a8900f9ac
Code refining almost completed, for this round. Some included files are still in need of some clean up, but this is test worthy.
sirebral
parents:
21
diff
changeset
|
430 height=height, local=local, localPath=localPath, localTime=localTime) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
431 self.miniatures.append(mini) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
432 xml_str = "<map><miniatures>" |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
433 xml_str += mini.toxml("new") |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
434 xml_str += "</miniatures></map>" |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
435 self.canvas.frame.session.send(xml_str) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
436 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
437 def get_miniature_by_id(self, id): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
438 for mini in self.miniatures: |
151 | 439 if str(mini.id) == str(id): return mini |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
440 return None |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
441 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
442 def del_miniature(self, min): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
443 xml_str = "<map><miniatures>" |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
444 xml_str += min.toxml("del") |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
445 xml_str += "</miniatures></map>" |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
446 self.canvas.frame.session.send(xml_str) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
447 self.miniatures.remove(min) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
448 del min |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
449 self.collapse_zorder() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
450 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
451 def del_all_miniatures(self): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
452 while len(self.miniatures): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
453 min = self.miniatures.pop() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
454 del min |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
455 self.collapse_zorder() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
456 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
457 def layerDraw(self, dc, topleft, size): |
7
2b9e766f9dee
Tests fixes issues with Linux GUI effecting miniatures
sirebral
parents:
0
diff
changeset
|
458 dc.SetFont(self.label_font) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
459 sorted_miniatures = self.miniatures[:] |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
460 sorted_miniatures.sort(cmp_zorder) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
461 for m in sorted_miniatures: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
462 if (m.pos.x>topleft[0]-m.right and |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
463 m.pos.y>topleft[1]-m.bottom and |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
464 m.pos.x<topleft[0]+size[0]-m.left and |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
465 m.pos.y<topleft[1]+size[1]-m.top): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
466 m.draw(dc, self) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
467 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
468 def find_miniature(self, pt, only_unlocked=False): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
469 min_list = [] |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
470 for m in self.miniatures: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
471 if m.hit_test(pt): |
20 | 472 if m.hide and self.canvas.frame.session.my_role() != self.canvas.frame.session.ROLE_GM: continue |
473 if only_unlocked and not m.locked: min_list.append(m) | |
474 elif not only_unlocked and m.locked: min_list.append(m) | |
475 else: continue | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
476 if len(min_list) > 0: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
477 return min_list |
71
449a8900f9ac
Code refining almost completed, for this round. Some included files are still in need of some clean up, but this is test worthy.
sirebral
parents:
21
diff
changeset
|
478 else: return None |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
479 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
480 def layerToXML(self, action="update"): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
481 """ format """ |
139 | 482 minis_string = "" |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
483 if self.miniatures: |
139 | 484 for m in self.miniatures: minis_string += m.toxml(action) |
485 if minis_string != '': | |
486 s = "<miniatures" | |
487 s += " serial='" + str(self.serial_number) + "'" | |
488 s += ">" | |
489 s += minis_string | |
490 s += "</miniatures>" | |
491 return s | |
71
449a8900f9ac
Code refining almost completed, for this round. Some included files are still in need of some clean up, but this is test worthy.
sirebral
parents:
21
diff
changeset
|
492 else: return "" |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
493 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
494 def layerTakeDOM(self, xml_dom): |
139 | 495 if xml_dom.hasAttribute('serial'): |
496 self.serial_number = int(xml_dom.getAttribute('serial')) | |
497 children = xml_dom._get_childNodes() | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
498 for c in children: |
139 | 499 action = c.getAttribute("action") |
500 id = c.getAttribute('id') | |
21
fdd70f11bc7e
One too many deletes last time. This run tested on Linux and working
sirebral
parents:
20
diff
changeset
|
501 if action == "del": |
fdd70f11bc7e
One too many deletes last time. This run tested on Linux and working
sirebral
parents:
20
diff
changeset
|
502 mini = self.get_miniature_by_id(id) |
151 | 503 if mini: self.miniatures.remove(mini); del mini |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
504 elif action == "new": |
139 | 505 pos = cmpPoint(int(c.getAttribute('posx')),int(c.getAttribute('posy'))) |
506 path = urllib.unquote(c.getAttribute('path')) | |
507 label = c.getAttribute('label') | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
508 height = width = heading = face = snap_to_align = zorder = 0 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
509 locked = hide = False |
139 | 510 if c.hasAttribute('height'): height = int(c.getAttribute('height')) |
511 if c.hasAttribute('width'): width = int(c.getAttribute('width')) | |
512 if c.getAttribute('locked') == 'True' or c.getAttribute('locked') == '1': locked = True | |
513 if c.getAttribute('hide') == 'True' or c.getAttribute('hide') == '1': hide = True | |
514 if c.getAttribute('heading'): heading = int(c.getAttribute('heading')) | |
515 if c.hasAttribute('face'): face = int(c.getAttribute('face')) | |
516 if c.hasAttribute('align'): snap_to_align = int(c.getAttribute('align')) | |
517 if c.getAttribute('zorder'): zorder = int(c.getAttribute('zorder')) | |
518 min = BmpMiniature(id, path, ImageHandler.load(path, 'miniature', id), pos, heading, | |
519 face, label, locked, hide, snap_to_align, zorder, width, height) | |
520 self.miniatures.append(min) | |
521 if c.hasAttribute('local') and c.getAttribute('local') == 'True' and os.path.exists(urllib.unquote(c.getAttribute('localPath'))): | |
522 localPath = urllib.unquote(c.getAttribute('localPath')) | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
523 local = True |
139 | 524 localTime = float(c.getAttribute('localTime')) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
525 if localTime-time.time() <= 144000: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
526 file = open(localPath, "rb") |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
527 imgdata = file.read() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
528 file.close() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
529 filename = os.path.split(localPath) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
530 (imgtype,j) = mimetypes.guess_type(filename[1]) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
531 postdata = urllib.urlencode({'filename':filename[1], 'imgdata':imgdata, 'imgtype':imgtype}) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
532 thread.start_new_thread(self.upload, (postdata, localPath, True)) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
533 # collapse the zorder. If the client behaved well, then nothing should change. |
151 | 534 # Otherwise, this will ensure that there's some kind of z-order |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
535 self.collapse_zorder() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
536 else: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
537 mini = self.get_miniature_by_id(id) |
20 | 538 if mini: mini.takedom(c) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
539 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
540 def upload(self, postdata, filename, modify=False, pos=cmpPoint(0,0)): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
541 self.lock.acquire() |
76
37a11fea3304
More clean up. Images now posts a Chat Info post if image doesn't load.
sirebral
parents:
71
diff
changeset
|
542 url = settings.get_setting('ImageServerBaseURL') |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
543 file = urllib.urlopen(url, postdata) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
544 recvdata = file.read() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
545 file.close() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
546 try: |
137 | 547 xml_dom = fromstring(recvdata) |
548 if xml_dom.tag == 'path': | |
549 path = xml_dom.get('url') | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
550 path = urllib.unquote(path) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
551 if not modify: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
552 start = path.rfind("/") + 1 |
159 | 553 if self.canvas.parent.layer_handlers[2].auto_label: min_label = path[start:len(path)-4] |
20 | 554 else: min_label = "" |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
555 id = 'mini-' + self.canvas.frame.session.get_next_id() |
19
78407d627cba
Beginning of Code Clean-up. Some code untested, may break!
sirebral
parents:
7
diff
changeset
|
556 self.add_miniature(id, path, pos=pos, label=min_label, local=True, |
78407d627cba
Beginning of Code Clean-up. Some code untested, may break!
sirebral
parents:
7
diff
changeset
|
557 localPath=filename, localTime=time.time()) |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
558 else: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
559 self.miniatures[len(self.miniatures)-1].local = True |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
560 self.miniatures[len(self.miniatures)-1].localPath = filename |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
561 self.miniatures[len(self.miniatures)-1].localTime = time.time() |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
562 self.miniatures[len(self.miniatures)-1].path = path |
151 | 563 else: print xml_dom.get('msg') |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
564 except Exception, e: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
565 print e |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
566 print recvdata |
88 | 567 finally: |
568 urllib.urlcleanup() | |
569 self.lock.release() | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
570 #################################################################### |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
571 ## helper function |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
572 |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
573 def get_mini_label(self, mini): |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
574 # override this to change the label displayed under each mini (and the label on hidden minis) |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
575 return mini.label |