diff --git a/gui/patternEditor.py b/gui/patternEditor.py
index 9b01e5cea..812c6d868 100644
--- a/gui/patternEditor.py
+++ b/gui/patternEditor.py
@@ -10,106 +10,167 @@
#
# pyfa is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with pyfa. If not, see .
+# along with pyfa. If not, see .
#===============================================================================
import wx
-
+import bitmapLoader
+from wx.lib.intctrl import IntCtrl
###########################################################################
## Class DmgPatternEditorDlg
###########################################################################
class DmgPatternEditorDlg ( wx.Dialog ):
- def __init__( self, parent ):
- wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Damage profile editor", pos = wx.DefaultPosition, size = wx.Size( 339,191 ), style = wx.DEFAULT_DIALOG_STYLE )
+ def __init__( self, parent ):
+ wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Damage Pattern Editor", pos = wx.DefaultPosition, size = wx.Size( 300,240 ), style = wx.DEFAULT_DIALOG_STYLE )
- self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
+ self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
- mainSizer = wx.BoxSizer( wx.VERTICAL )
+ mainSizer = wx.BoxSizer( wx.VERTICAL )
- headerSizer = wx.BoxSizer( wx.HORIZONTAL )
+ headerSizer = wx.BoxSizer( wx.HORIZONTAL )
- ccDmgPatternChoices = [ u"uniform", u"sansha", u"gurista", u"blood raiders", u"drones", u"angels" ]
- self.ccDmgPattern = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, ccDmgPatternChoices, 0 )
- self.ccDmgPattern.SetSelection( 0 )
- headerSizer.Add( self.ccDmgPattern, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+ ccDmgPatternChoices = [ u"uniform", u"sansha", u"gurista", u"blood raiders", u"drones", u"angels", "cnc" ]
+ self.ccDmgPattern = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, ccDmgPatternChoices, 0 )
+ self.ccDmgPattern.SetSelection( 0 )
+ size = None
+ headerSizer.Add( self.ccDmgPattern, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT|wx.LEFT, 3 )
+ for name, art in (("new", wx.ART_NEW), ("rename", bitmapLoader.getBitmap("rename", "icons")), ("copy", wx.ART_COPY), ("delete", wx.ART_DELETE)):
+ bitmap = wx.ArtProvider.GetBitmap(art, wx.ART_BUTTON) if name != "rename" else art
+ btn = wx.BitmapButton(self, wx.ID_ANY, bitmap)
+ if size is None:
+ size = btn.GetSize()
- self.btnNew = wx.BitmapButton( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
- headerSizer.Add( self.btnNew, 0, wx.ALIGN_CENTER_VERTICAL, 5 )
+ btn.SetMinSize(size)
+ btn.SetMaxSize(size)
- self.btnCopy = wx.BitmapButton( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
- headerSizer.Add( self.btnCopy, 0, wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.btnRename = wx.BitmapButton( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
- headerSizer.Add( self.btnRename, 0, wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.btnDelete = wx.BitmapButton( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
- headerSizer.Add( self.btnDelete, 0, wx.ALIGN_CENTER_VERTICAL, 5 )
-
- mainSizer.Add( headerSizer, 0, wx.EXPAND, 5 )
-
- contentSizer = wx.BoxSizer( wx.VERTICAL )
-
- dmgeditSizer = wx.FlexGridSizer( 4, 3, 0, 2 )
- dmgeditSizer.AddGrowableCol( 2 )
- dmgeditSizer.SetFlexibleDirection( wx.BOTH )
- dmgeditSizer.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
-
- self.bmpEM = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.bmpEM, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.editEM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.editEM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.stEM = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
- self.stEM.Wrap( -1 )
- dmgeditSizer.Add( self.stEM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.bmpTERM = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.bmpTERM, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.editTERM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.editTERM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.stTERM = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
- self.stTERM.Wrap( -1 )
- dmgeditSizer.Add( self.stTERM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.bmpKIN = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.bmpKIN, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.editKIN = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.editKIN, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.stKIN = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
- self.stKIN.Wrap( -1 )
- dmgeditSizer.Add( self.stKIN, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.bmpEXP = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.bmpEXP, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.editEXP = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
- dmgeditSizer.Add( self.editEXP, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- self.stEXP = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
- self.stEXP.Wrap( -1 )
- dmgeditSizer.Add( self.stEXP, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
-
- contentSizer.Add( dmgeditSizer, 1, wx.EXPAND, 0 )
-
- mainSizer.Add( contentSizer, 1, wx.EXPAND, 0 )
-
- self.SetSizer( mainSizer )
- self.Layout()
-
- self.Centre( wx.BOTH )
-
- def __del__( self ):
- pass
+ btn.Layout()
+ setattr(self, name, btn)
+ btn.Enable(True)
+ btn.SetToolTipString("%s fit" % name.capitalize())
+ headerSizer.Add(btn, 0, wx.ALIGN_CENTER_VERTICAL)
+ mainSizer.Add( headerSizer, 0, wx.EXPAND | wx.ALL, 2 )
+
+ self.sl = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
+ mainSizer.Add( self.sl, 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5 )
+
+ contentSizer = wx.BoxSizer( wx.VERTICAL )
+ self.embitmap = bitmapLoader.getBitmap("em_big", "icons")
+ self.thermbitmap = bitmapLoader.getBitmap("thermal_big", "icons")
+ self.kinbitmap = bitmapLoader.getBitmap("kinetic_big", "icons")
+ self.expbitmap = bitmapLoader.getBitmap("explosive_big", "icons")
+
+ dmgeditSizer = wx.FlexGridSizer( 2, 4, 0, 2 )
+ dmgeditSizer.AddGrowableCol( 1 )
+ dmgeditSizer.AddGrowableCol( 2 )
+ dmgeditSizer.SetFlexibleDirection( wx.BOTH )
+ dmgeditSizer.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
+
+ #width,height = self.GetTextExtent("9999999999")
+ width = -1
+ defSize = wx.Size(width,-1)
+
+
+ self.editEM = IntCtrl( self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT )
+ dmgeditSizer.Add( self.editEM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+# self.stEM = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
+# self.stEM.Wrap( -1 )
+# dmgeditSizer.Add( self.stEM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+ self.bmpEM = wx.StaticBitmap( self, wx.ID_ANY, self.embitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
+ dmgeditSizer.Add( self.bmpEM, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+ self.bmpTHERM = wx.StaticBitmap( self, wx.ID_ANY, self.thermbitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
+ dmgeditSizer.Add( self.bmpTHERM, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5 )
+
+ self.editTHERM = IntCtrl( self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0, )
+ dmgeditSizer.Add( self.editTHERM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+# self.stTHERM = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
+# self.stTHERM.Wrap( -1 )
+# dmgeditSizer.Add( self.stTHERM, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+
+ self.editKIN = IntCtrl( self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT )
+ dmgeditSizer.Add( self.editKIN, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+# self.stKIN = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
+# self.stKIN.Wrap( -1 )
+# dmgeditSizer.Add( self.stKIN, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+ self.bmpKIN = wx.StaticBitmap( self, wx.ID_ANY, self.kinbitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
+ dmgeditSizer.Add( self.bmpKIN, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+ self.bmpEXP = wx.StaticBitmap( self, wx.ID_ANY, self.expbitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
+ dmgeditSizer.Add( self.bmpEXP, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5 )
+
+ self.editEXP = IntCtrl( self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0 )
+ dmgeditSizer.Add( self.editEXP, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+# self.stEXP = wx.StaticText( self, wx.ID_ANY, u"0%", wx.DefaultPosition, wx.DefaultSize, 0 )
+# self.stEXP.Wrap( -1 )
+# dmgeditSizer.Add( self.stEXP, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
+
+ contentSizer.Add( dmgeditSizer, 1, wx.EXPAND|wx.ALL, 5 )
+ self.slfooter = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
+ contentSizer.Add( self.slfooter, 0, wx.EXPAND|wx.TOP, 5 )
+
+ footerSizer = wx.BoxSizer( wx.HORIZONTAL )
+
+ perSizer = wx.BoxSizer( wx.VERTICAL )
+
+ self.stPercentages = wx.StaticText( self, wx.ID_ANY, u"EM: 0% THERM: 0% KIN: 0% EXP: 0%", wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.stPercentages.Wrap( -1 )
+ perSizer.Add( self.stPercentages, 0, wx.BOTTOM|wx.LEFT, 5 )
+
+ footerSizer.Add( perSizer, 0, 0, 5 )
+
+ totSizer = wx.BoxSizer( wx.VERTICAL )
+
+ self.stTotal = wx.StaticText( self, wx.ID_ANY, u"Total: 0 hp", wx.DefaultPosition, wx.DefaultSize, 0 )
+ self.stTotal.Wrap( -1 )
+ totSizer.Add( self.stTotal, 0, wx.ALIGN_RIGHT|wx.BOTTOM|wx.RIGHT, 5 )
+
+ footerSizer.Add( totSizer, 1, 0, 5 )
+
+ contentSizer.Add( footerSizer, 0, wx.EXPAND, 5 )
+
+ mainSizer.Add( contentSizer, 1, wx.EXPAND, 0 )
+
+ self.SetSizer( mainSizer )
+
+
+ self.Layout()
+ bsize = self.GetBestSize()
+ self.SetSize((-1,bsize.height))
+ self.Show()
+
+ self.new.Bind(wx.EVT_BUTTON, self.newPattern)
+ self.rename.Bind(wx.EVT_BUTTON, self.renamePattern)
+ self.delete.Bind(wx.EVT_BUTTON, self.deletePattern)
+ self.copy.Bind(wx.EVT_BUTTON, self.copyPattern)
+
+
+ def newPattern(self,event):
+ event.Skip()
+
+ def renamePattern(self,event):
+ event.Skip()
+
+ def copyPattern(self,event):
+ event.Skip()
+
+ def deletePattern(self,event):
+ event.Skip()
+
+
+ def __del__( self ):
+ pass
diff --git a/service/damagePattern.py b/service/damagePattern.py
index ac571288f..2f84d8092 100755
--- a/service/damagePattern.py
+++ b/service/damagePattern.py
@@ -1,46 +1,46 @@
-#===============================================================================
-# Copyright (C) 2010 Diego Duclos
-#
-# This file is part of pyfa.
-#
-# pyfa is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# pyfa is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with pyfa. If not, see .
-#===============================================================================
-
-import eos.db
-import eos.types
-
-class DamagePattern():
- instance = None
- @classmethod
- def getInstance(cls):
- if cls.instance is None:
- cls.instance = DamagePattern()
-
- return cls.instance
-
- def __init__(self):
- self.getDamagePatternList()
-
- def getDamagePatternList(self):
- patterns = eos.db.getDamagePatternList()
- if len(patterns) == 0:
- uniform = eos.types.DamagePattern(25, 25, 25, 25)
- uniform.name = "Uniform"
- eos.db.save(uniform)
- patterns.append(uniform)
-
- return patterns
-
- def getDamagePattern(self, name):
+#===============================================================================
+# Copyright (C) 2010 Diego Duclos
+#
+# This file is part of pyfa.
+#
+# pyfa is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# pyfa is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with pyfa. If not, see .
+#===============================================================================
+
+import eos.db
+import eos.types
+
+class DamagePattern():
+ instance = None
+ @classmethod
+ def getInstance(cls):
+ if cls.instance is None:
+ cls.instance = DamagePattern()
+
+ return cls.instance
+
+ def __init__(self):
+ self.getDamagePatternList()
+
+ def getDamagePatternList(self):
+ patterns = eos.db.getDamagePatternList()
+ if len(patterns) == 0:
+ uniform = eos.types.DamagePattern(25, 25, 25, 25)
+ uniform.name = "Uniform"
+ eos.db.save(uniform)
+ patterns.append(uniform)
+
+ return patterns
+
+ def getDamagePattern(self, name):
return eos.db.getDamagePattern(name)
\ No newline at end of file