From 023de6240c79c8e1de0a961f80d9f557aac611bd Mon Sep 17 00:00:00 2001 From: Corollax Date: Thu, 25 Nov 2010 18:37:29 -0600 Subject: [PATCH 1/9] Revert 45d2190f68930c193f2892741aa25eb6c2f96831 Closing application when no tabs are open is annoying. Was worth testing, but definitely not the desired behavior. (Automatic revert caused conflicts, so I'm doing this commit manually). --- gui/multiSwitch.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gui/multiSwitch.py b/gui/multiSwitch.py index 0ad6364bb..5c15d48f9 100644 --- a/gui/multiSwitch.py +++ b/gui/multiSwitch.py @@ -19,7 +19,6 @@ import wx import gui.chromeTabs -import gui.mainFrame class MultiSwitch(gui.chromeTabs.PFNotebook): def __init__(self, parent): @@ -44,10 +43,7 @@ class MultiSwitch(gui.chromeTabs.PFNotebook): def DeletePage(self, n, *args, **kwargs): - if self.GetPageCount() > 1: - gui.chromeTabs.PFNotebook.DeletePage(self, n, *args, **kwargs) - else: - gui.mainFrame.MainFrame.getInstance().Close() + gui.chromeTabs.PFNotebook.DeletePage(self, n, *args, **kwargs) class BlankPage(wx.Panel): def __init__(self, parent): From 520b324b64cc40e62398a0c8457263ea1324ddcf Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 10:44:04 +0200 Subject: [PATCH 2/9] Show a default bitmap for ships that have their icons missing. Fixes ticket #305 --- gui/shipBrowser.py | 4 ++-- icons/ship_no_image_big.png | Bin 0 -> 4633 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 icons/ship_no_image_big.png diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index fdd1c71ba..9156cb584 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -842,7 +842,7 @@ class ShipItem(wx.Window): if shipID: self.shipBmp = bitmapLoader.getBitmap(str(shipID),"ships") if not self.shipBmp: - self.shipBmp = wx.EmptyBitmap(32, 32) + self.shipBmp = bitmapLoader.getBitmap("ship_no_image_big","icons") self.shipFittingInfo = shipFittingInfo self.shipName, self.shipFits = shipFittingInfo @@ -1195,7 +1195,7 @@ class FitItem(wx.Window): if shipID: self.shipBmp = bitmapLoader.getBitmap(str(shipID),"ships") if not self.shipBmp: - self.shipBmp = wx.EmptyBitmap(32, 32) + self.shipBmp = bitmapLoader.getBitmap("ship_no_image_big","icons") self.shipFittingInfo = shipFittingInfo self.shipName, self.fitName, self.timestamp = shipFittingInfo diff --git a/icons/ship_no_image_big.png b/icons/ship_no_image_big.png new file mode 100644 index 0000000000000000000000000000000000000000..a66606d28582ce4f3c790d34490ac983ea4c5037 GIT binary patch literal 4633 zcmV+!66WoRP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C2R2DWK~#9!WL8^mRM!>$_BnejUusMv!`KL7FoS`l7MKbP zH9{ip1J8&?viJu)phl^bN{N*G08^>_0UlDRP6QG{vP1-xrBaIGLJ)>H#;Aks8DGY8 z?74Vm&Y3gkthM^E_Zeur{V>~m_I&I1t#560~wW?eLOMohtEE%)$5!rVJ2=zLQL#P;GYnv3Y**EdnBVq#zV03h}(P#jOS}g!^6z%Tr z77B%Wz20m#p#V_|5LiDAJQHgXVI;W`A`vm)2@#QqHE`(Ap_P>t0AZ^IpjO*0l}Z5W zjk+HMu5y&49LE7*DoQb#O6xXXgqg`u$mWQdhy}p*_I7`N|G|R?ec!LuYCAhSl}fdz z=NDRQzu`B7z;PVcbzRqWl!5{a655ewVYY7byUWJN1YmxCespxy_x&h}N~Kb-07@x=FmY@Qu#oLup#(Z;2_2|)~gM)*qRH|C7Rw@-{B33cEN)eJpNtSgY3~afZFvwiU{yV$1 zwNQVm;SE|;5`nMtS9aUADzdEalit}ATmsgzPsZ6-3awrXO5-^maWGp*)U zgP<7%eh~OeOI{d;u6DP#JiQhgNKb z?W9l&j_YWh0u%rR$Dx>5lv2zrNK$4DBo#Ke+5}=@+wH;3u~kGCE2&B;$8{YM4G;iD zfFy|#hRuwKod>oCiU0KJ?>`lhM~@zT^wDobaQpV{mp}dV_19mCKtw+O{EvYA>H2jM zxp(j0%*+gc3l}a-PELx*lP6F9^36AYzH!6YBcdx;u9!mTWC-%e$OwRig@qF*P68M? zK9bMpKm71lrg7ppIx;+b>eML%arf@sbUHmXHMOy^vA({3_3G71r7}J~4&eIr>p|cr z>?hqGa|WnA06sYR!H-XWY&;_ph^O&-V260BAHC zX2_dliKziG#S~jllg++;`%a!b**4G&g8u$~vmYEB3|nCoMJAejKKH{9bGckD48vlv z7{yUC)wmFHX?u^2*$?70NlBA2f*pmr{gFx5r6yLcb|OnyXn79*X#9K zt@h;?UrtU=#uO0|#j!T5F^UL)h~hY2SXdYy9zK8m{M_7JCX-2}Qq5*FlgUI;^ybZ* zAP9~fJGQW}U?TW-dRj!Lr>C3EW)K9=pFb}ai%eF)b;5eBhW3WajHY?>2dCD5>lnAs4nTrMv!FR!hwy?F6r@7}%h^Yde4V@jz#d-i0r z+1c6I+1c65v5eNb(P+GW{W_P+6^q5i#l`LI?R-8ThN0nMTS6SuxJ2Z6o{@gf^IEOe z^73+}QrXzp*xuguJg=*(t5_^y=7nX=$metLw~}GmDFh)oQg+C{(M} zsi~=(H*dCOLtVannVF*~8XO#~)$4`LP35S~jZMdKy1Tpc`TT(c2Sg+c!;X#)&-0pL zGrd3E+1a_du^9yZ(BZ?Sa>;PMZ%-cp*L71V{qxU@5C}wFx^#(%q9_W(u+<8KAn=2r z6}F-%CW?)Q|KG9-l+60}oAbYJysd$0X0go&1?4Embrj$#rPSMBoAfGxO%;_=Myc9} z?=Ew$?JHQ!(@V@eaa_lR29X&itQ71sRaiu^Vn6}L{r>@ly~hHG$bSX^SzbJuNDIv= P00000NkvXXu0mjf>xSxJ literal 0 HcmV?d00001 From bac008da68fdef736185aac8a7ccab0b381b583e Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 11:39:30 +0200 Subject: [PATCH 3/9] Fixed ticket #257 (ugly way) --- gui/builtinStatsViews/targetingMiscViewFull.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gui/builtinStatsViews/targetingMiscViewFull.py b/gui/builtinStatsViews/targetingMiscViewFull.py index 0ebd4059d..bbbbe83d4 100644 --- a/gui/builtinStatsViews/targetingMiscViewFull.py +++ b/gui/builtinStatsViews/targetingMiscViewFull.py @@ -122,9 +122,9 @@ class TargetingMiscViewFull(StatsView): if labelName is "labelScanRes": lockTime = "%s\n" % "Lock Times".center(28) for size, radius in RADII: - left = "%s [%d]" % (size, radius) - right = "%.1fs" % fit.calculateLockTime(radius) - lockTime += "%-19s : %+5s\n" % (left, right) + left = "%s [%d] " % (size, radius) + right = "% .1fs" % fit.calculateLockTime(radius) + lockTime += "%s\t%s\n" % (right,left) # print lockTime # THIS IS ALIGNED! label.SetToolTip(wx.ToolTip(lockTime)) elif labelName is "labelSensorStr": From f462171dbb17ea029105deaa26fa7f2cf8855c00 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 12:38:52 +0200 Subject: [PATCH 4/9] Fixed ticket #306, probably this should be done eos side --- gui/builtinStatsViews/resourcesViewFull.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index eccbac060..80967805f 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -214,7 +214,7 @@ class ResourcesViewFull(StatsView): gauge = getattr(self, "gauge%s%s" % (panel, capitalizedType)) resUsed = getattr(fit,"%sUsed" % resourceType) - gauge.SetValueRange(resUsed, resMax[i]()) + gauge.SetValueRange(resUsed or 0, resMax[i]() or 0) i+=1 else: From 4661e42769f0f826aa9c6a566559d92452fa91db Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 13:14:59 +0200 Subject: [PATCH 5/9] Strip color information from item desc, fixes ticket #307 --- gui/itemStats.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index e070b5a97..d20495d87 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -18,10 +18,11 @@ #=============================================================================== import wx +import re import gui.mainFrame import bitmapLoader import sys -import wx.lib.mixins.listctrl as listmix +import wx.lib.mixins.listctrl as listmix import wx.html from eos.types import Ship, Module, Skill, Booster, Implant, Drone from util import formatAmount @@ -172,8 +173,9 @@ class ItemDescription ( wx.Panel ): self.description = wx.html.HtmlWindow(self) - desc = item.description.replace("\r","
") + desc = re.sub("<( *)font( *)color( *)=(.*)>", "", desc) + desc = re.sub("<( *)/( *)font( *)>","", desc) self.description.SetPage(desc) From e2db046d02b2e3119c9c0429fa570a8d349e4cc3 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 13:30:07 +0200 Subject: [PATCH 6/9] Tiny little optimization in pfnotebook tab renderer --- gui/chromeTabs.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gui/chromeTabs.py b/gui/chromeTabs.py index 87722c9fe..e7a35fb6a 100644 --- a/gui/chromeTabs.py +++ b/gui/chromeTabs.py @@ -272,6 +272,7 @@ class PFTabRenderer: self.tabBackBitmap = None self.cbSize = 5 self.padding = 4 + self.font = wx.FontFromPixelSize((0, self.fontSize), wx.SWISS, wx.NORMAL, wx.NORMAL, False) self.tabImg = img self.position = (0, 0) # Not used internaly for rendering - helper for tab container @@ -355,8 +356,6 @@ class PFTabRenderer: self.tabRegion = None self.closeBtnRegion = None - self.font = wx.FontFromPixelSize((0, self.fontSize), wx.SWISS, wx.NORMAL, wx.NORMAL, False) - self.InitColors() self.InitBitmaps() From efc62d2959999917d41cdfc90a6961426cc21068 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 14:04:58 +0200 Subject: [PATCH 7/9] Always have at least one tab shown in multiswitch (Empty tab) no matter what --- gui/multiSwitch.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gui/multiSwitch.py b/gui/multiSwitch.py index 5c15d48f9..e0a3bb886 100644 --- a/gui/multiSwitch.py +++ b/gui/multiSwitch.py @@ -44,6 +44,8 @@ class MultiSwitch(gui.chromeTabs.PFNotebook): def DeletePage(self, n, *args, **kwargs): gui.chromeTabs.PFNotebook.DeletePage(self, n, *args, **kwargs) + if self.GetPageCount() == 0: + self.AddPage() class BlankPage(wx.Panel): def __init__(self, parent): From 1410d11678ec030bc52901a7d9c0396efd7da5a8 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 15:23:35 +0200 Subject: [PATCH 8/9] Implemented stats window reuse (on ctrl/cmd pressed) --- gui/builtinContextMenus/itemStats.py | 19 ++++++++++++++++++- gui/itemStats.py | 23 ++++++++++++++++------- gui/mainFrame.py | 21 +++++++++++++++++++++ 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/gui/builtinContextMenus/itemStats.py b/gui/builtinContextMenus/itemStats.py index 9cfe69545..dfcbb0819 100644 --- a/gui/builtinContextMenus/itemStats.py +++ b/gui/builtinContextMenus/itemStats.py @@ -2,6 +2,7 @@ from gui.contextMenu import ContextMenu from gui.itemStats import ItemStatsDialog import gui.mainFrame import service +import wx class ItemStats(ContextMenu): def __init__(self): @@ -31,6 +32,22 @@ class ItemStats(ContextMenu): if context == "module" and stuff.isEmpty: return - dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context]) + mstate = wx.GetMouseState() + reuse = False + + if mstate.ControlDown() or mstate.CmdDown(): + reuse = True + + if self.mainFrame.GetActiveStatsWindow() == None and reuse: + dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context]) + + elif reuse: + lastWnd = self.mainFrame.GetActiveStatsWindow() + pos = lastWnd.GetPosition() + dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context], pos) + lastWnd.closeEvent(None) + + else: + dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context]) ItemStats.register() diff --git a/gui/itemStats.py b/gui/itemStats.py index d20495d87..45e75eaa3 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -30,10 +30,10 @@ import service class ItemStatsDialog(wx.Dialog): counter = 0 - def __init__(self, victim, context = None): + def __init__(self, victim, context = None, pos = wx.DefaultPosition): wx.Dialog.__init__(self, gui.mainFrame.MainFrame.getInstance(), - wx.ID_ANY, title="Item stats", + wx.ID_ANY, title="Item stats", pos = pos, style = wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER| wx.SYSTEM_MENU) @@ -66,11 +66,11 @@ class ItemStatsDialog(wx.Dialog): self.mainSizer.Add(self.container, 1, wx.EXPAND) self.SetSizer(self.mainSizer) - parent = gui.mainFrame.MainFrame.getInstance() + self.parentWnd = gui.mainFrame.MainFrame.getInstance() dlgsize = self.GetSize() - psize = parent.GetSize() - ppos = parent.GetPosition() + psize = self.parentWnd.GetSize() + ppos = self.parentWnd.GetPosition() ItemStatsDialog.counter += 1 self.dlgOrder = ItemStatsDialog.counter @@ -82,18 +82,27 @@ class ItemStatsDialog(wx.Dialog): dlgx = ppos.x + counter * dlgStep dlgy = ppos.y + counter * dlgStep - self.SetPosition((dlgx,dlgy)) + if pos == wx.DefaultPosition: + self.SetPosition((dlgx,dlgy)) + else: + self.SetPosition(pos) + self.parentWnd.RegisterStatsWindow(self) self.Show() self.Bind(wx.EVT_CLOSE, self.closeEvent) + self.Bind(wx.EVT_ACTIVATE, self.OnActivate) + + def OnActivate(self, event): + self.parentWnd.SetActiveStatsWindow(self) def closeEvent(self, event): if self.dlgOrder==ItemStatsDialog.counter: ItemStatsDialog.counter -= 1 + self.parentWnd.UnregisterStatsWindow(self) + self.Destroy() - event.Skip() ########################################################################### ## Class ItemStatsContainer diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 956e2a52b..f8268eaaa 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -124,6 +124,8 @@ class MainFrame(wx.Frame): self.closePageId = wx.NewId() self.graphFrame = None + self.statsWnds = [] + self.activeStatsWnd = None #Add menu self.SetMenuBar(MainMenuBar()) @@ -134,6 +136,25 @@ class MainFrame(wx.Frame): #Show ourselves self.Show() + def SetActiveStatsWindow(self, wnd): + self.activeStatsWnd = wnd + + def GetActiveStatsWindow(self): + + if self.activeStatsWnd in self.statsWnds: + return self.activeStatsWnd + + if len(self.statsWnds) > 0: + return self.statsWnds[len(self.statsWnds) - 1] + else: + return None + + def RegisterStatsWindow(self, wnd): + self.statsWnds.append(wnd) + + def UnregisterStatsWindow(self, wnd): + self.statsWnds.remove(wnd) + def getActiveFit(self): p = self.fitMultiSwitch.GetSelectedPage() m = getattr(p, "getActiveFit", None) From 24f0beac34bf1787233ca91c9eb9be7a06410f67 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 26 Nov 2010 15:46:28 +0200 Subject: [PATCH 9/9] Fix for maximized case of stats window --- gui/builtinContextMenus/itemStats.py | 8 +++++++- gui/itemStats.py | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gui/builtinContextMenus/itemStats.py b/gui/builtinContextMenus/itemStats.py index dfcbb0819..f42b09c53 100644 --- a/gui/builtinContextMenus/itemStats.py +++ b/gui/builtinContextMenus/itemStats.py @@ -44,7 +44,13 @@ class ItemStats(ContextMenu): elif reuse: lastWnd = self.mainFrame.GetActiveStatsWindow() pos = lastWnd.GetPosition() - dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context], pos) + maximized = lastWnd.IsMaximized() + if not maximized: + size = lastWnd.GetSize() + else: + size = wx.DefaultSize + pos = wx.DefaultPosition + dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context], pos, size, maximized) lastWnd.closeEvent(None) else: diff --git a/gui/itemStats.py b/gui/itemStats.py index 45e75eaa3..6890c9079 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -30,10 +30,10 @@ import service class ItemStatsDialog(wx.Dialog): counter = 0 - def __init__(self, victim, context = None, pos = wx.DefaultPosition): + def __init__(self, victim, context = None, pos = wx.DefaultPosition, size = wx.DefaultSize, maximized = False): wx.Dialog.__init__(self, gui.mainFrame.MainFrame.getInstance(), - wx.ID_ANY, title="Item stats", pos = pos, + wx.ID_ANY, title="Item stats", pos = pos, size = size, style = wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER| wx.SYSTEM_MENU) @@ -86,6 +86,11 @@ class ItemStatsDialog(wx.Dialog): self.SetPosition((dlgx,dlgy)) else: self.SetPosition(pos) + if maximized: + self.Maximize(True) + else: + if size != wx.DefaultSize: + self.SetSize(size) self.parentWnd.RegisterStatsWindow(self) self.Show()