OSDN Git Service

add alchemy simulator
[amulettoolsmh4/main.git] / view / mainframeview.py
index a90011c..e7f6319 100644 (file)
@@ -1,12 +1,20 @@
 # -*- coding: utf-8 -*-
 
 # GUIのメインフレーム
-# 2013/12/05 written by kei9
+# 2013/12/15 written by kei9
 import wx
 from wx import xrc
-import wx.lib.intctrl
+import wx.grid
 
 import constnumbers
+from notebookflowview import NoteBookFlowView
+from notebooksettingview import NoteBookSettingView
+from notebookseed1view import NoteBookSeed1View
+from notebookseed2view import NoteBookSeed2View
+from notebookskill2view import NoteBookSkill2View
+from notebookskill1view import NoteBookSkill1View
+from notebookamuletview import NoteBookAmuletView
+from notebookalchemysimulatorview import NoteBookAlchemySimulatorView
 
 class MainFrameView():
     u""" メインのフレームクラス """
@@ -17,165 +25,102 @@ class MainFrameView():
     def _init_frame(self):
         # load controls
         self.frame = self.res.LoadFrame(None, "MainFrame")
-
         self.note_book = xrc.XRCCTRL(self.frame, "NoteBookMain")
 
-        # buttons
-        self.button_seed_seaerch = xrc.XRCCTRL(self.frame, "ButtonSeedSearch")
-        self.button_seed_clear = xrc.XRCCTRL(self.frame, "ButtonSeedClear")
-        self.button_skill_from_seed_search = xrc.XRCCTRL(self.frame, "ButtonSkillFromSeedSearch")
-        self.button_skill_search = xrc.XRCCTRL(self.frame, "ButtonSeedSkillSearch")
-        self.button_skill_clear = xrc.XRCCTRL(self.frame, "ButtonSeedSkillClear")
-        self.button_amulet_search_seaerch = xrc.XRCCTRL(self.frame, "ButtonAmuletSearchSearch")
-        self.button_amulet_search_clear = xrc.XRCCTRL(self.frame, "ButtonAmuletSearchClear")
-        self.button_amulet_search_skill = xrc.XRCCTRL(self.frame, "ButtonAmuletSearchSkill")
-        self.button_setting_ok = xrc.XRCCTRL(self.frame, "ButtonSettingOK")
-        self.button_setting_clear = xrc.XRCCTRL(self.frame, "ButtonSettingClear")
-
-        self.ID_BUTTON_SEED_SEARCH = xrc.XRCID("ButtonSeedSearch")
-        self.ID_BUTTON_SEED_CLEAR = xrc.XRCID("ButtonSeedClear")
-        self.ID_BUTTON_SKILL_FROM_SEED_SEARCH = xrc.XRCID("ButtonSkillFromSeedSearch")
-        self.ID_BUTTON_SKILL_SEARCH = xrc.XRCID("ButtonSeedSkillSearch")
-        self.ID_BUTTON_SKILL_CLEAR = xrc.XRCID("ButtonSeedSkillClear")
-        self.ID_BUTTON_AMULET_SEARCH_SEARCH = xrc.XRCID("ButtonAmuletSearchSearch")
-        self.ID_BUTTON_AMULET_SEARCH_CLEAR = xrc.XRCID("ButtonAmuletSearchClear")
-        self.ID_BUTTON_AMULET_SEARCH_SKILL = xrc.XRCID("ButtonAmuletSearchSkill")
-        self.ID_BUTTON_SETTING_OK = xrc.XRCID("ButtonSettingOK")
-        self.ID_BUTTON_SETTING_CLEAR = xrc.XRCID("ButtonSettingClear")
-
-        # radio button
-        self.radio_button_amulet1 = xrc.XRCCTRL(self.frame, "RadioButtonAmulet1")
-        self.radio_button_amulet2 = xrc.XRCCTRL(self.frame, "RadioButtonAmulet2")
-        self.radio_button_amulet3 = xrc.XRCCTRL(self.frame, "RadioButtonAmulet3")
-        self.ID_RADIO_BUTTON_AMULET1 = xrc.XRCID("RadioButtonAmulet1")
-        self.ID_RADIO_BUTTON_AMULET2 = xrc.XRCID("RadioButtonAmulet2")
-        self.ID_RADIO_BUTTON_AMULET3 = xrc.XRCID("RadioButtonAmulet3")
-        self.amulet2radio_button_dict = {}
-        self.amulet2radio_button_dict[constnumbers.NAME_AMULET1] = self.radio_button_amulet1
-        self.amulet2radio_button_dict[constnumbers.NAME_AMULET2] = self.radio_button_amulet2
-        self.amulet2radio_button_dict[constnumbers.NAME_AMULET3] = self.radio_button_amulet3
-        self.amulet2radio_id_dict = {}
-        self.amulet2radio_id_dict[constnumbers.NAME_AMULET1] = self.ID_RADIO_BUTTON_AMULET1
-        self.amulet2radio_id_dict[constnumbers.NAME_AMULET2] = self.ID_RADIO_BUTTON_AMULET2
-        self.amulet2radio_id_dict[constnumbers.NAME_AMULET3] = self.ID_RADIO_BUTTON_AMULET3
-
         # menu
         self.ID_MENU_ITEM_EXIT = xrc.XRCID("wxID_EXIT") # same as wx.ID_EXIT
         self.ID_MENU_ITEM_ABOUT = xrc.XRCID("wxID_ABOUT") # same as wx.ID_ABOUT
+        self.ID_MENU_MEMO = xrc.XRCID("MenuItemMemo") # open memo dialog
+
+        # seed1 decision view
+        self.notebook_seed1_view = NoteBookSeed1View(self.frame)
+
+        # seed2 decision view
+        self.notebook_seed2_view = NoteBookSeed2View(self.frame)
+
+        # skill2 search from seed2 view
+        self.notebook_skill2_view = NoteBookSkill2View(self.frame)
+
+        # skill2 search from seed2 view
+        self.notebook_skill1_view = NoteBookSkill1View(self.frame)
+
+        # simulator view
+        self.notebook_simulator_view = NoteBookAlchemySimulatorView(self.frame)
+
+        # amulet view
+        self.notebook_amulet_view = NoteBookAmuletView(self.frame)
+
+        # flow view
+        self.notebook_flow_view = NoteBookFlowView(self.frame)
+
+        # setting view
+        self.notebook_setting_view = NoteBookSettingView(self.frame)
+
+    def Show(self):
+        self.frame.Show()
+
+    def Close(self):
+        self.frame.Close(True)
+
+    def DisableNoteBook(self):
+        self.note_book.Disable()
+
+    def EnableNoteBook(self):
+        self.note_book.Enable()
+
+    def OnAboutBox(self, evt):
+        u""" Show About Box """
+        info = wx.AboutDialogInfo()
+        info.Name = constnumbers.NAME
+        info.Version = constnumbers.VERSION
+        info.Copyright = constnumbers.COPYRIGHT
+        info.Description = constnumbers.DESCRIPTION
+        info.WebSite = (constnumbers.WEBSITE_LINK, constnumbers.WEBSITE_TEXT)
+        info.Developers = constnumbers.DEVELOPERS
+        info.License = constnumbers.LICENSE_TEXT
+        wx.AboutBox(info)
+
+        # amulet view
+        self.notebook_amulet_view = NoteBookAmuletView(self.frame)
+
+        # flow view
+        self.notebook_flow_view = NoteBookFlowView(self.frame)
+
+        # setting view
+        self.notebook_setting_view = NoteBookSettingView(self.frame)
+
+    def Show(self):
+        self.frame.Show()
+
+    def Close(self):
+        self.frame.Close(True)
+
+    def DisableNoteBook(self):
+        self.note_book.Disable()
+
+    def EnableNoteBook(self):
+        self.note_book.Enable()
+
+    def OnAboutBox(self, evt):
+        u""" Show About Box """
+        info = wx.AboutDialogInfo()
+        info.Name = constnumbers.NAME
+        info.Version = constnumbers.VERSION
+        info.Copyright = constnumbers.COPYRIGHT
+        info.Description = constnumbers.DESCRIPTION
+        info.WebSite = (constnumbers.WEBSITE_LINK, constnumbers.WEBSITE_TEXT)
+        info.Developers = constnumbers.DEVELOPERS
+        info.License = constnumbers.LICENSE_TEXT
+        wx.AboutBox(info)
+
+        # amulet view
+        self.notebook_amulet_view = NoteBookAmuletView(self.frame)
 
-        # load text ctrls
-        self._load_text_ctrls()
-
-        # load combo box
-        self._load_combo_boxes()
-
-        # load list box
-        self.list_box_seed = xrc.XRCCTRL(self.frame, "ListBoxSeed")
-        self.list_box_amulet_search_seeds = xrc.XRCCTRL(self.frame, "ListBoxAmuletSearchSeeds")
-        self.list_box_seed_skill_amulet_prospect = xrc.XRCCTRL(self.frame, "ListBoxSeedSkillAmuletProspect")
-        self.ID_LIST_BOX_SEED = xrc.XRCID("ListBoxSeed")
-        self.ID_LIST_BOX_AMULET_SEARCH_SEEDS = xrc.XRCID("ListBoxAmuletSearchSeeds")
-        self.ID_LIST_BOX_SEED_SKILL_AMULET_PROSPECT = xrc.XRCID("ListBoxSeedSkillAmuletProspect")
-
-        # load spin ctrl
-        self.spin_ctrl_amulet_search_skill1_val = xrc.XRCCTRL(self.frame, "SpinCtrlAmuletSearchSkill1Value")
-        self.spin_ctrl_amulet_search_skill2_val = xrc.XRCCTRL(self.frame, "SpinCtrlAmuletSearchSkill2Value")
-        self.spin_ctrl_amulet_search_slot_num = xrc.XRCCTRL(self.frame, "SpinCtrlAmuletSearchSlotNumber")
-        self.ID_SPIN_CTRL_AMULET_SKILL1_VAL = xrc.XRCID("SpinCtrlAmuletSearchSkill1Value")
-        self.ID_SPIN_CTRL_AMULET_SKILL2_VAL = xrc.XRCID("SpinCtrlAmuletSearchSkill2Value")
-        self.spin_ctrl_highlight = xrc.XRCCTRL(self.frame, "SpinCtrlHighlightThreshold")
-
-        # load custom ctrl
-        panel = xrc.XRCCTRL(self.frame, "CheckListBoxPos")
-        #panel = xrc.XRCCTRL(self.frame, "NoteBookPanelSettings")
-        self.ID_CHECK_LIST_BOX_HIGHLIGHT_SKILL = wx.NewId()
-        #self.check_list_box_highlight_skill = wx.CheckListBox(self.frame, self.ID_CHECK_LIST_BOX_HIGHLIGHT_SKILL)
-        self.check_list_box_highlight_skill = wx.CheckListBox(panel, id=self.ID_CHECK_LIST_BOX_HIGHLIGHT_SKILL,
-                name="CheckListBoxHighlightSkills")
-        #self.res.AttachUnknownControl("CheckListBoxHighlightSkills", self.check_list_box_highlight_skill, panel) # list isn't shown. why?
-
-        vbox = wx.BoxSizer(wx.VERTICAL)
-        vbox.Add(self.check_list_box_highlight_skill, 1, wx.EXPAND)
-        panel.SetSizer(vbox)
-
-        #panel.Fit()
-
-        # set explanation text
-        self.text_ctrl_seed_explain.SetValue(constnumbers.SEED_DECISION_EXPLANATION)
-        self.text_ctrl_flow.SetValue(constnumbers.SECOND_SKILL_FLOW)
-
-    def _load_combo_boxes(self):
-        # load combo boxes
-        self.combo_box_skill_dict = {}
-        self.combo_box_skill_dict[constnumbers.KEY_AMULET1] = [
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_1"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_2"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_3"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_4"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_5"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_6"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_7")]
-        self.combo_box_skill_dict[constnumbers.KEY_AMULET2] = [
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_1"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_2"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_3"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_4"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_5"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_6"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_7")]
-        self.combo_box_skill_dict[constnumbers.KEY_AMULET3] = [
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_1"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_2"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_3"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_4"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_5"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_6"),
-                xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_7")]
-        self.combo_box_amulet_search_skill1 = xrc.XRCCTRL(self.frame, "ComboBoxAmuletSearchSkill1")
-        self.combo_box_amulet_search_skill2 = xrc.XRCCTRL(self.frame, "ComboBoxAmuletSearchSkill2")
-        self.ID_COMBO_BOX_AMULET_SEARCH_SKILL1 = xrc.XRCID("ComboBoxAmuletSearchSkill1")
-        self.ID_COMBO_BOX_AMULET_SEARCH_SKILL2 = xrc.XRCID("ComboBoxAmuletSearchSkill2")
-
-    def _load_text_ctrls(self):
-        # load text ctrls
-        self.text_ctrl_seed_explain = xrc.XRCCTRL(self.frame, "TextCtrlSeedExplain")
-        self.text_ctrl_seed_result = xrc.XRCCTRL(self.frame, "TextCtrlSeedResults")
-        self.text_ctrl_seed_select = xrc.XRCCTRL(self.frame, "TextCtrlSeedSelect")
-        self.text_ctrl_amulet_search_result = xrc.XRCCTRL(self.frame, "TextCtrlAmuletSearchResult")
-        self.text_ctrl_flow = xrc.XRCCTRL(self.frame, "TextCtrlFlow")
-        self.text_ctrl_seed_skill_dict = {}
-        self.text_ctrl_seed_skill_dict[constnumbers.KEY_AMULET1] = [
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_1"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_2"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_3"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_4"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_5"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_6"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet1_7")]
-        self.text_ctrl_seed_skill_dict[constnumbers.KEY_AMULET2] = [
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_1"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_2"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_3"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_4"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_5"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_6"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet2_7")]
-        self.text_ctrl_seed_skill_dict[constnumbers.KEY_AMULET3] = [
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_1"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_2"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_3"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_4"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_5"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_6"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillAmulet3_7")]
-        self.text_ctrl_seed_skill_dict[constnumbers.KEY_THRESHOLD2] = [
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_1"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_2"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_3"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_4"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_5"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_6"),
-                xrc.XRCCTRL(self.frame, "TextCtrlSeedSkillThreshold2_7")]
+        # flow view
+        self.notebook_flow_view = NoteBookFlowView(self.frame)
+
+        # setting view
+        self.notebook_setting_view = NoteBookSettingView(self.frame)
 
     def Show(self):
         self.frame.Show()
@@ -188,7 +133,7 @@ class MainFrameView():
 
     def EnableNoteBook(self):
         self.note_book.Enable()
-        
+
     def OnAboutBox(self, evt):
         u""" Show About Box """
         info = wx.AboutDialogInfo()
@@ -215,6 +160,6 @@ class MainFrameView():
 
 if __name__ == "__main__":
     app = wx.App(False)
-    mainframe = MainFrameView()
+    mainframe = MainFrameView(u"mainframe.xrc")
     mainframe.Show()
     app.MainLoop()