Beispiel #1
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: Home.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.window_1 = wx.SplitterWindow(self,
                                          -1,
                                          style=wx.SP_3DBORDER | wx.SP_BORDER
                                          | wx.SP_LIVE_UPDATE | wx.WANTS_CHARS)
        self.window_1_pane_2 = wx.ScrolledWindow(self.window_1,
                                                 -1,
                                                 style=wx.TAB_TRAVERSAL
                                                 | wx.WANTS_CHARS)
        self.window_1_pane_1 = wx.ScrolledWindow(self.window_1,
                                                 -1,
                                                 style=wx.TAB_TRAVERSAL
                                                 | wx.WANTS_CHARS)
        icono = wx.EmptyIcon()
        icono.CopyFromBitmap(
            wx.Image("images/icesIcone.png",
                     wx.BITMAP_TYPE_PNG).ConvertToBitmap())
        self.SetIcon(icono)
        self.html = wx.html.HtmlWindow(self.window_1_pane_2)
        if "gtk2" in wx.PlatformInfo:
            self.html.SetStandardFonts()
        self.html.LoadPage("html/index.html")

        # Tool Bar
        self.toolbar = wx.ToolBar(self, -1)
        self.SetToolBar(self.toolbar)
        self.toolbar.AddLabelTool(
            1, "Tree Help",
            wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, wx.ART_OTHER),
            wx.NullBitmap, wx.ITEM_NORMAL, "Tree Help", "See the tree help")
        self.toolbar.AddLabelTool(
            2, "Previous",
            wx.ArtProvider_GetBitmap(wx.ART_GO_BACK, wx.ART_OTHER),
            wx.NullBitmap, wx.ITEM_NORMAL, "Previous", "Previous Page")
        self.toolbar.AddLabelTool(
            3, "Next", wx.ArtProvider_GetBitmap(wx.ART_GO_FORWARD,
                                                wx.ART_OTHER), wx.NullBitmap,
            wx.ITEM_NORMAL, "Next", "Next Page")
        # Tool Bar end

        # ---------------- START tree config --------------------------------------------------- #

        self.tree = wx.TreeCtrl(self.window_1_pane_1, -1, wx.DefaultPosition,
                                wx.DefaultSize, wx.TR_HAS_BUTTONS)

        isz = (16, 16)
        il = wx.ImageList(isz[0], isz[1])
        self.fldridx = il.Add(
            wx.ArtProvider_GetBitmap(wx.ART_HELP_BOOK, wx.ART_OTHER, isz))
        self.fldropenidx = il.Add(
            wx.ArtProvider_GetBitmap(wx.ART_HELP_SIDE_PANEL, wx.ART_OTHER,
                                     isz))
        self.fileidx = il.Add(
            wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, isz))
        self.tipdx = il.Add(
            wx.ArtProvider_GetBitmap(wx.ART_TIP, wx.ART_OTHER, isz))
        #smileidx    = il.Add(images.Smiles.GetBitmap())

        self.tree.SetImageList(il)
        self.il = il

        # NOTE:  For some reason tree items have to have a data object in
        #        order to be sorted.  Since our compare just uses the labels
        #        we don't need any real data, so we'll just use None below for
        #        the item data.

        self.root = self.tree.AddRoot("Index")
        self.tree.SetPyData(self.root, "html/index.html")
        self.tree.SetItemImage(self.root, self.fldridx, wx.TreeItemIcon_Normal)
        self.tree.SetItemImage(self.root, self.fldropenidx,
                               wx.TreeItemIcon_Expanded)

        self.Bind(wx.EVT_TOOL, self.Ontree, id=1)
        self.Bind(wx.EVT_TOOL, self.OnBack, id=2)
        self.Bind(wx.EVT_TOOL, self.OnForward, id=3)

        self.tree.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick)
        self.tree.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown)
        self.tree.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        self.initTree()
        self.tree.Expand(self.root)

        # ---------------- END tree config --------------------------------------------------- #

        self.__set_properties()
        self.__do_layout()
Beispiel #2
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=TITLE,
                          pos=wx.DefaultPosition,
                          size=wx.Size(WIN_WIDTH, WIN_HEIGH),
                          style=wx.DEFAULT_FRAME_STYLE
                          | wx.TAB_TRAVERSAL & ~wx.MAXIMIZE)

        self.key_code = 0
        self.m_status = None
        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.data_load()

        bSizer5 = wx.BoxSizer(wx.HORIZONTAL)

        self.Bind(wx.EVT_SIZE, self.on_size)

        self.m_splitwin1 = wx.SplitterWindow(self, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.SP_3D)
        self.m_splitwin1.Bind(wx.EVT_IDLE, self.m_splitwin1OnIdle)

        self.m_panel5 = wx.Panel(self.m_splitwin1, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer6 = wx.BoxSizer(wx.VERTICAL)

        self.m_tree = wx.TreeCtrl(self.m_panel5, wx.ID_ANY, wx.DefaultPosition,
                                  wx.DefaultSize,
                                  wx.TR_MULTIPLE | wx.TR_DEFAULT_STYLE)
        self.m_tree.Bind(wx.EVT_TREE_SEL_CHANGING, self.on_tree_change)
        self.m_tree.Bind(wx.EVT_KEY_DOWN, self.on_key_down)
        self.m_tree.Bind(wx.EVT_KEY_UP, self.on_key_up)
        bSizer6.Add(self.m_tree, 0, wx.ALL, 0)

        self.m_panel5.SetSizer(bSizer6)
        self.m_panel5.Layout()
        bSizer6.Fit(self.m_panel5)
        self.m_splitwin1.Initialize(self.m_panel5)
        bSizer5.Add(self.m_splitwin1, 1, wx.EXPAND, 0)

        self.m_splitwin2 = wx.SplitterWindow(self, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.SP_3D)
        self.m_splitwin2.Bind(wx.EVT_IDLE, self.m_splitwin2OnIdle)

        self.m_panel6 = wx.Panel(self.m_splitwin2, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer8 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataVLC = wx.dataview.DataViewListCtrl(self.m_panel6, wx.ID_ANY,
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        for token in THE_SLC_DVC:
            self.m_dataVLC.AppendTextColumn(token)
        self.m_dataVLC.Bind(wx.dataview.EVT_DATAVIEW_ITEM_ACTIVATED,
                            self.on_detail_pdf)
        self.m_dataVLC.Bind(wx.dataview.EVT_DATAVIEW_SELECTION_CHANGED,
                            self.on_data_select)
        bSizer8.Add(self.m_dataVLC, 0, wx.ALL, BOND)

        self.m_comboBox = wx.ComboBox(self.m_panel6, wx.ID_ANY, wx.EmptyString,
                                      wx.DefaultPosition, wx.DefaultSize, [],
                                      wx.TE_PROCESS_ENTER)
        self.m_comboBox.Bind(wx.EVT_TEXT_ENTER, self.on_search)
        bSizer8.Add(self.m_comboBox, 0, wx.ALL, BOND)

        self.m_btnSearch = wx.Button(self.m_panel6, wx.ID_ANY, u"搜索",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_btnSearch.Bind(wx.EVT_BUTTON, self.on_search)
        bSizer8.Add(self.m_btnSearch, 0, wx.ALL, BOND)

        self.m_panel6.SetSizer(bSizer8)
        self.m_panel6.Layout()
        bSizer8.Fit(self.m_panel6)
        self.m_splitwin2.Initialize(self.m_panel6)
        bSizer5.Add(self.m_splitwin2, 1, wx.EXPAND, BOND)

        self.m_splitwin3 = wx.SplitterWindow(self, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.SP_3D)
        self.m_splitwin3.Bind(wx.EVT_IDLE, self.m_splitwin3OnIdle)

        self.m_panel7 = wx.Panel(self.m_splitwin3, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer9 = wx.BoxSizer(wx.VERTICAL)

        self.m_btnDetail = wx.Button(self.m_panel7, wx.ID_ANY, u"详细信息",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_btnDetail.Bind(wx.EVT_BUTTON, self.on_detail)
        bSizer9.Add(self.m_btnDetail, 0, wx.ALL, BOND)

        self.m_textDetail = wx.StaticText(self.m_panel7, wx.ID_ANY, u"详细信息",
                                          wx.DefaultPosition, wx.DefaultSize,
                                          0)
        self.m_textDetail.Wrap(-1)
        bSizer9.Add(self.m_textDetail, 0, wx.ALL, BOND)

        self.m_panel7.SetSizer(bSizer9)
        self.m_panel7.Layout()
        bSizer9.Fit(self.m_panel7)
        self.m_splitwin3.Initialize(self.m_panel7)
        bSizer5.Add(self.m_splitwin3, 1, wx.EXPAND, BOND)

        self.SetSizer(bSizer5)
        self.Layout()
        self.m_status = self.CreateStatusBar()
        self.m_status.SetFieldsCount(2)
        self.m_status.SetStatusText("名称:", 0)
        self.m_status.SetStatusText("数量:", 1)

        self.m_menubar = wx.MenuBar(0)
        self.m_menuFile = wx.Menu()
        self.m_menuItemInsert = wx.MenuItem(self.m_menuFile,
                                            ID_INSERT,
                                            text=U"插入")
        self.m_menuFile.Append(self.m_menuItemInsert)
        self.m_menuItemLoad = wx.MenuItem(self.m_menuFile,
                                          ID_RELOAD,
                                          text=u"重载")
        self.m_menuFile.Append(self.m_menuItemLoad)
        self.m_menubar.Append(self.m_menuFile, u"文件")
        self.SetMenuBar(self.m_menubar)
        # event
        self.Bind(wx.EVT_MENU, self.on_menu_handler)
        self.Centre(wx.BOTH)
Beispiel #3
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: cAU_VaccV01Panel.__init__
        kwds["style"] = wx.TAB_TRAVERSAL
        wx.Panel.__init__(self, *args, **kwds)
        self.notebook_1 = wx.Notebook(self, -1, style=0)
        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, -1)
        self.window_1 = wx.SplitterWindow(self.notebook_1_pane_2,
                                          -1,
                                          style=wx.SP_3D | wx.SP_BORDER)
        self.window_1_pane_2 = wx.Panel(self.window_1, -1)
        self.window_1_pane_1 = wx.Panel(self.window_1, -1)
        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, -1)
        self.window_2 = wx.SplitterWindow(self.notebook_1_pane_1,
                                          -1,
                                          style=wx.SP_3D | wx.SP_BORDER
                                          | wx.CLIP_CHILDREN)
        self.window_3 = wx.SplitterWindow(self.window_2,
                                          -1,
                                          style=wx.CLIP_CHILDREN)
        self.window_3_pane_2 = wx.Panel(self.window_3, -1)
        self.window_3_pane_1 = wx.Panel(self.window_3, -1)
        self.window_2_pane_1 = wx.Panel(self.window_2, -1)
        self.sizer_20_staticbox = wx.StaticBox(self.window_3_pane_1, -1,
                                               "vaccs scheduled")
        self.sizer_18_staticbox = wx.StaticBox(
            self.window_1_pane_1, -1,
            "Vacc Regimes -  X  selected ,  O - not selected")
        self.sizer_19_staticbox = wx.StaticBox(
            self.window_1_pane_2, -1, "vaccinations in selected regimes")
        self.sizer_21_staticbox = wx.StaticBox(self.window_2_pane_1, -1,
                                               "Vacc Given")
        self.list_ctrl_1 = wx.ListCtrl(self.window_2_pane_1,
                                       -1,
                                       style=wx.LC_REPORT | wx.SUNKEN_BORDER)
        self.tree_ctrl_2 = wx.TreeCtrl(self.window_3_pane_1,
                                       -1,
                                       style=wx.TR_HAS_BUTTONS | wx.TR_NO_LINES
                                       | wx.TR_HIDE_ROOT | wx.TR_DEFAULT_STYLE
                                       | wx.SUNKEN_BORDER)
        self.label_2 = wx.StaticText(self.window_3_pane_1, -1,
                                     "vaccinations given")
        self.list_box_1 = wx.ListBox(self.window_3_pane_1, -1, choices=[])
        self.label_3 = wx.StaticText(self.window_3_pane_2, -1, "date")
        self.combo_box_1 = wx.ComboBox(self.window_3_pane_2,
                                       -1,
                                       choices=[],
                                       style=wx.CB_DROPDOWN)
        self.checkbox_1 = wx.CheckBox(self.window_3_pane_2, -1,
                                      "mark schedule\nupto current age")
        self.label_9 = wx.StaticText(self.window_3_pane_2, -1, "narrative")
        self.text_ctrl_1 = wx.TextCtrl(self.window_3_pane_2,
                                       -1,
                                       "",
                                       style=wx.TE_MULTILINE)
        self.label_4 = wx.StaticText(self.window_3_pane_2, -1, "vacc")
        self.checkbox_dtpa = wx.CheckBox(self.window_3_pane_2, -1, "DTPa")
        self.checkbox_2_ipv = wx.CheckBox(self.window_3_pane_2, -1, "IPV")
        self.checkbox_paed_hepb = wx.CheckBox(self.window_3_pane_2, -1,
                                              "paed HepB")
        self.checkbox_hib = wx.CheckBox(self.window_3_pane_2, -1, "HIB")
        self.checkbox_7pneumo = wx.CheckBox(self.window_3_pane_2, -1,
                                            "7VPneumo")
        self.checkbox_varicella = wx.CheckBox(self.window_3_pane_2, -1,
                                              "varicella")
        self.checkbox_mmr = wx.CheckBox(self.window_3_pane_2, -1, "MMR")
        self.checkbox_mening_c = wx.CheckBox(self.window_3_pane_2, -1,
                                             "mening-C")
        self.checkbox_tick_enceph = wx.CheckBox(self.window_3_pane_2, -1,
                                                "tick-borne encephalitis")
        self.static_line_1 = wx.StaticLine(self.window_3_pane_2, -1)
        self.checkbox_opv = wx.CheckBox(self.window_3_pane_2, -1, "OPV")
        self.label_8 = wx.StaticText(self.window_3_pane_2,
                                     -1,
                                     "  not listed",
                                     style=wx.ALIGN_RIGHT)
        self.combo_box_3 = wx.ComboBox(self.window_3_pane_2,
                                       -1,
                                       choices=[],
                                       style=wx.CB_DROPDOWN)
        self.checkbox_Dtpa = wx.CheckBox(self.window_3_pane_2, -1,
                                         "Dtpa( less antigen, >3prev)")
        self.checkbox_ADT = wx.CheckBox(self.window_3_pane_2, -1, "ADT")
        self.checkbox_tettox = wx.CheckBox(self.window_3_pane_2, -1, "Tet Tox")
        self.static_line_2 = wx.StaticLine(self.window_3_pane_2, -1)
        self.checkbox_23vpneum = wx.CheckBox(self.window_3_pane_2, -1,
                                             "23VPneum")
        self.checkbox_influenza = wx.CheckBox(self.window_3_pane_2, -1,
                                              "influenza")
        self.static_line_3 = wx.StaticLine(self.window_3_pane_2, -1)
        self.checkbox_paed_hepa = wx.CheckBox(self.window_3_pane_2, -1,
                                              "paed HepA")
        self.checkbox_adult_hepa = wx.CheckBox(self.window_3_pane_2, -1,
                                               "adult HepA")
        self.checkbox_adult_hepb = wx.CheckBox(self.window_3_pane_2, -1,
                                               "adult HepB")
        self.checkbox_typhoid = wx.CheckBox(self.window_3_pane_2, -1,
                                            "typhoid")
        self.checkbox_mening_acwy = wx.CheckBox(self.window_3_pane_2, -1,
                                                "mening-ACWY")
        self.checkbox_yellow_fever = wx.CheckBox(self.window_3_pane_2, -1,
                                                 "yellow fever")
        self.checkbox_cholera = wx.CheckBox(self.window_3_pane_2, -1,
                                            "cholera")
        self.static_line_4 = wx.StaticLine(self.window_3_pane_2, -1)
        self.checkbox_rabies = wx.CheckBox(self.window_3_pane_2, -1, "rabies")
        self.checkbox_japan_enceph = wx.CheckBox(self.window_3_pane_2, -1,
                                                 "Japanese Enceph")
        self.checkbox_qfever = wx.CheckBox(self.window_3_pane_2, -1, "Q Fever")
        self.label_5 = wx.StaticText(self.window_3_pane_2, -1, "batch no")
        self.combo_box_2 = wx.ComboBox(self.window_3_pane_2,
                                       -1,
                                       choices=[],
                                       style=wx.CB_DROPDOWN)
        self.checkbox_18 = wx.CheckBox(self.window_3_pane_2, -1,
                                       "save batch no")
        self.button_2 = wx.Button(self.window_3_pane_2, -1, "delete this no")
        self.label_6 = wx.StaticText(self.window_3_pane_2, -1, "site")
        self.radio_box_side = wx.RadioBox(self.window_3_pane_2,
                                          -1,
                                          "side",
                                          choices=["left", "right"],
                                          majorDimension=0,
                                          style=wx.RA_SPECIFY_COLS)
        self.radio_box_site = wx.RadioBox(
            self.window_3_pane_2,
            -1,
            "site",
            choices=["thigh", "deltoid", "gluteal"],
            majorDimension=0,
            style=wx.RA_SPECIFY_ROWS)
        self.radio_box_route = wx.RadioBox(self.window_3_pane_2,
                                           -1,
                                           "route",
                                           choices=["im", "sc", "po"],
                                           majorDimension=0,
                                           style=wx.RA_SPECIFY_ROWS)
        self.button_1 = wx.Button(self.window_3_pane_2,
                                  -1,
                                  "add vaccination /\nnarrative / override",
                                  style=wx.BU_RIGHT)
        self.tree_ctrl_1 = wx.TreeCtrl(self.window_1_pane_1,
                                       -1,
                                       style=wx.TR_HAS_BUTTONS | wx.TR_NO_LINES
                                       | wx.TR_HIDE_ROOT | wx.TR_DEFAULT_STYLE
                                       | wx.SUNKEN_BORDER)
        self.list_ctrl_2 = wx.ListCtrl(self.window_1_pane_2,
                                       -1,
                                       style=wx.LC_REPORT | wx.SUNKEN_BORDER)

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.EVT_LIST_DELETE_ITEM, self.delete_vacc_history_item,
                  self.list_ctrl_1)
        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.vacc_history_item_activated,
                  self.list_ctrl_1)
        self.Bind(wx.EVT_LISTBOX_DCLICK, self.double_clicked_vaccination_given,
                  self.list_box_1)
        self.Bind(wx.EVT_TEXT, self.date_being_entered, self.combo_box_1)
        self.Bind(wx.EVT_COMBOBOX, self.select_combo_date, self.combo_box_1)
        self.Bind(wx.EVT_TEXT, self.narrative_text, self.text_ctrl_1)
        self.Bind(wx.EVT_CHECKBOX, self.combo_with_hep_b_selected,
                  self.checkbox_hib)
        self.Bind(wx.EVT_TEXT, self.unlisted_text_changed, self.combo_box_3)
        self.Bind(wx.EVT_COMBOBOX, self.unlisted_combo_selected,
                  self.combo_box_3)
        self.Bind(wx.EVT_TEXT, self.check_for_similiar_batchno,
                  self.combo_box_2)
        self.Bind(wx.EVT_COMBOBOX, self.get_batchno_for_vacc, self.combo_box_2)
        self.Bind(wx.EVT_BUTTON, self.delete_this_batchno, self.button_2)
        self.Bind(wx.EVT_BUTTON, self.add_vaccination, self.button_1)
        self.Bind(wx.EVT_TREE_DELETE_ITEM, self.deleting_node,
                  self.tree_ctrl_1)
        self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.activating_node,
                  self.tree_ctrl_1)
        # end wxGlade

        # gnumed events
        gmDispatcher.connect(signal='post_patient_selection',
                             receiver=self._on_post_patient_selection)
Beispiel #4
0
    def __init__(self,
                 parent=None,
                 id=wx.ID_ANY,
                 title="SwitchHosts!",
                 pos=wx.DefaultPosition,
                 size=wx.DefaultSize,
                 style=wx.DEFAULT_FRAME_STYLE,
                 cls_TaskBarIcon=None):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)

        self.SetIcon(co.GetMondrianIcon())
        self.SetSizeHintsSz(wx.Size(400, 300), wx.DefaultSize)

        self.m_menubar1 = wx.MenuBar(0)
        self.m_menu1 = wx.Menu()
        self.m_menuItem_new = wx.MenuItem(self.m_menu1, wx.ID_NEW, u"新建(&N)",
                                          wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu1.AppendItem(self.m_menuItem_new)
        self.m_menu1.AppendSeparator()

        self.m_menuItem_export = wx.MenuItem(self.m_menu1, wx.NewId(),
                                             u"导出(&E)", wx.EmptyString,
                                             wx.ITEM_NORMAL)
        self.m_menu1.AppendItem(self.m_menuItem_export)
        self.m_menuItem_import = wx.MenuItem(self.m_menu1, wx.NewId(),
                                             u"导入(&I)", wx.EmptyString,
                                             wx.ITEM_NORMAL)
        self.m_menu1.AppendItem(self.m_menuItem_import)

        self.m_menu1.AppendSeparator()
        self.m_menuItem_exit = wx.MenuItem(self.m_menu1, wx.ID_EXIT, u"退出(&X)",
                                           wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu1.AppendItem(self.m_menuItem_exit)

        self.m_menubar1.Append(self.m_menu1, u"文件(&F)")

        self.m_menu2 = wx.Menu()
        self.m_menuItem_about = wx.MenuItem(self.m_menu2, wx.ID_ABOUT,
                                            u"关于(&A)", wx.EmptyString,
                                            wx.ITEM_NORMAL)
        self.m_menu2.AppendItem(self.m_menuItem_about)
        self.m_menuItem_homepage = wx.MenuItem(self.m_menu2, wx.ID_ANY,
                                               u"主页(&H)", wx.EmptyString,
                                               wx.ITEM_NORMAL)
        self.m_menu2.AppendItem(self.m_menuItem_homepage)
        self.m_menuItem_feedback = wx.MenuItem(self.m_menu2, wx.ID_ANY,
                                               u"反馈建议(&F)", wx.EmptyString,
                                               wx.ITEM_NORMAL)
        self.m_menu2.AppendItem(self.m_menuItem_feedback)
        self.m_menuItem_chkUpdate = wx.MenuItem(self.m_menu2, wx.ID_ANY,
                                                u"检查更新(&U)", wx.EmptyString,
                                                wx.ITEM_NORMAL)
        self.m_menu2.AppendItem(self.m_menuItem_chkUpdate)
        self.m_menuItem_donate = wx.MenuItem(self.m_menu2, wx.ID_ANY,
                                             u"捐赠(&D)", wx.EmptyString,
                                             wx.ITEM_NORMAL)
        self.m_menu2.AppendItem(self.m_menuItem_donate)

        self.m_menubar1.Append(self.m_menu2, u"帮助(&H)")

        self.SetMenuBar(self.m_menubar1)

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        self.m_panel1 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer4 = wx.BoxSizer(wx.HORIZONTAL)

        bSizer5 = wx.BoxSizer(wx.VERTICAL)

        self.m_tree = wx.TreeCtrl(self.m_panel1, wx.ID_ANY, wx.DefaultPosition, wx.Size(200, -1),
            style=wx.TR_DEFAULT_STYLE|wx.NO_BORDER|wx.TR_NO_LINES\
                |wx.TR_FULL_ROW_HIGHLIGHT#|wx.TR_HIDE_ROOT
        )

        self.m_tree.SetBackgroundColour(wx.Colour(218, 223, 230))
        self.m_tree_root = self.m_tree.AddRoot(u"hosts")
        self.m_tree_common = self.m_tree.AppendItem(self.m_tree_root,
                                                    lang.trans("common_hosts"))
        self.m_tree_origin = self.m_tree.AppendItem(self.m_tree_root,
                                                    lang.trans("origin_hosts"))
        self.m_tree_local = self.m_tree.AppendItem(self.m_tree_root,
                                                   lang.trans("local_hosts"))
        self.m_tree_online = self.m_tree.AppendItem(self.m_tree_root,
                                                    lang.trans("online_hosts"))
        self.m_tree.SetItemTextColour(self.m_tree_root, "#999999")
        self.m_tree.SetItemTextColour(self.m_tree_common, "#3333ff")
        self.m_tree.SetItemTextColour(self.m_tree_local, "#999999")
        self.m_tree.SetItemTextColour(self.m_tree_online, "#999999")
        self.m_tree.ExpandAll()
        bSizer5.Add(self.m_tree, 1, wx.ALL | wx.EXPAND, 0)

        self.image_list = wx.ImageList(16, 16)
        self.ico_folder_idx = self.image_list.Add(
            wx.ArtProvider.GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, (16, 16)))
        self.ico_folder_open_idx = self.image_list.Add(
            wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, (16, 16)))
        self.ico_file_idx = self.image_list.Add(
            wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER,
                                     (16, 16)))
        self.ico_colors_idx = []
        for i, icon in enumerate(co.ICONS):
            self.ico_colors_idx.append(
                self.image_list.Add(co.GetMondrianBitmap(i)))

        self.m_tree.AssignImageList(self.image_list)

        for item_idx in (self.m_tree_root, self.m_tree_local,
                         self.m_tree_online):
            self.m_tree.SetItemImage(item_idx, self.ico_folder_idx,
                                     wx.TreeItemIcon_Normal)
            self.m_tree.SetItemImage(item_idx, self.ico_folder_open_idx,
                                     wx.TreeItemIcon_Expanded)

        self.m_staticline_left_bottom = wx.StaticLine(self.m_panel1, wx.ID_ANY,
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize,
                                                      wx.LI_HORIZONTAL)
        bSizer5.Add(self.m_staticline_left_bottom, 0, wx.EXPAND | wx.ALL, 0)

        bSizer61 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_btn_add = wx.BitmapButton(self.m_panel1, wx.ID_ADD,
                                         co.GetMondrianBitmap(fn="add"),
                                         wx.DefaultPosition, wx.DefaultSize,
                                         wx.BU_AUTODRAW | wx.NO_BORDER)
        self.m_btn_add.SetToolTipString(u"添加")
        bSizer61.Add(self.m_btn_add, 0,
                     wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.m_btn_refresh = wx.BitmapButton(
            self.m_panel1, wx.ID_REFRESH,
            co.GetMondrianBitmap(fn="arrow_refresh"), wx.DefaultPosition,
            wx.DefaultSize, wx.BU_AUTODRAW | wx.NO_BORDER)
        self.m_btn_add.SetToolTipString(u"刷新")
        bSizer61.Add(self.m_btn_refresh, 0,
                     wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.m_btn_edit_info = wx.BitmapButton(
            self.m_panel1, wx.ID_EDIT, co.GetMondrianBitmap(fn="pencil"),
            wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW | wx.NO_BORDER)
        self.m_btn_add.SetToolTipString(u"编辑")
        bSizer61.Add(self.m_btn_edit_info, 0,
                     wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.m_btn_del = wx.BitmapButton(self.m_panel1, wx.ID_DELETE,
                                         co.GetMondrianBitmap(fn="delete"),
                                         wx.DefaultPosition, wx.DefaultSize,
                                         wx.BU_AUTODRAW | wx.NO_BORDER)
        self.m_btn_del.SetToolTipString(u"删除")
        bSizer61.Add(self.m_btn_del, 0,
                     wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        bSizer5.Add(bSizer61, 0, wx.EXPAND, 5)

        bSizer4.Add(bSizer5, 1, wx.EXPAND, 5)

        self.m_staticline_main = wx.StaticLine(self.m_panel1, wx.ID_ANY,
                                               wx.DefaultPosition,
                                               wx.DefaultSize, wx.LI_VERTICAL)
        bSizer4.Add(self.m_staticline_main, 0, wx.EXPAND | wx.ALL, 0)

        bSizer6 = wx.BoxSizer(wx.VERTICAL)

        self.m_textCtrl_content = self.makeTextCtrl(bSizer6)

        bSizer7 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_panel3 = wx.Panel(self.m_panel1, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer71 = wx.BoxSizer(wx.HORIZONTAL)

        #        self.m_btn_save = buttons.GenBitmapTextButton(self.m_panel3, wx.ID_SAVE, co.GetMondrianBitmap(fn="disk"), u"保存")
        #        bSizer71.Add(self.m_btn_save, 0, wx.ALL, 0)

        self.m_panel3.SetSizer(bSizer71)
        self.m_panel3.Layout()
        bSizer71.Fit(self.m_panel3)
        bSizer7.Add(self.m_panel3, 1, wx.EXPAND | wx.ALL, 5)

        #        self.m_btn_apply = buttons.GenBitmapTextButton(self.m_panel1, wx.ID_APPLY,
        #            co.GetMondrianBitmap(fn="accept"), u"应用",
        #            size=wx.Size(-1, 24),
        #            style=wx.BU_AUTODRAW|wx.STATIC_BORDER)
        #        self.m_btn_apply = wx.Button(self.m_panel1, wx.ID_APPLY, u"应用", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_btn_apply = wx.BitmapButton(self.m_panel1, wx.ID_APPLY,
                                           co.GetMondrianBitmap(fn="accept"),
                                           wx.DefaultPosition, wx.Size(60, -1),
                                           wx.BU_AUTODRAW | wx.SIMPLE_BORDER)
        self.m_btn_apply.SetToolTipString(u"应用当前 hosts 方案")
        bSizer7.Add(self.m_btn_apply, 0, wx.ALL, 5)

        if cls_TaskBarIcon and os.name == "nt":
            # ubuntu 10.04 下点击这个图标时会报错,图标的菜单无法正常工作
            # ubuntu 11.04 下这个图标总是无法显示
            # 由于跨平台问题,暂时决定只在 windows 下显示快捷的任务栏图标
            # 参见:http://stackoverflow.com/questions/7144756/wx-taskbaricon-on-ubuntu-11-04
            self.m_btn_exit = buttons.GenBitmapTextButton(
                self.m_panel1, wx.ID_CLOSE, co.GetMondrianBitmap(fn="door"),
                u"隐藏")
            #            self.m_btn_exit = wx.Button(self.m_panel1, wx.ID_CLOSE, u"隐藏", wx.DefaultPosition, wx.DefaultSize, 0)
            bSizer7.Add(self.m_btn_exit, 0, wx.ALL, 5)

        self.m_staticline_right_bottom = wx.StaticLine(self.m_panel1,
                                                       wx.ID_ANY,
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize,
                                                       wx.LI_HORIZONTAL)
        bSizer6.Add(self.m_staticline_right_bottom, 0, wx.EXPAND | wx.ALL, 0)

        bSizer6.Add(bSizer7, 0, wx.EXPAND, 5)

        bSizer4.Add(bSizer6, 5, wx.EXPAND, 5)

        self.m_panel1.SetSizer(bSizer4)
        self.m_panel1.Layout()
        bSizer4.Fit(self.m_panel1)
        bSizer1.Add(self.m_panel1, 1, wx.EXPAND | wx.ALL, 0)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

        self.font_bold = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
        self.font_bold.SetWeight(wx.BOLD)
        self.font_normal = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
        self.font_normal.SetWeight(wx.NORMAL)

        self.font_mono = wx.Font(10,
                                 wx.ROMAN,
                                 wx.NORMAL,
                                 wx.NORMAL,
                                 faceName="Courier New")
Beispiel #5
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        wx.Frame.__init__(self, *args, **kwds)
        self.CreateStatusBar()
        self.notebook_1 = wx.Notebook(self, wx.ID_ANY)
        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.button_1 = wx.Button(self.notebook_1_pane_1, wx.ID_ANY, _("New"))
        self.tree_ctrl_1 = wx.TreeCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       style=wx.TR_HIDE_ROOT)
        #        self.dir = wx.TreeCtrl(self.notebook_1_pane_1, wx.ID_ANY)#, style=wx.TR_HIDE_ROOT)
        #        self.dir = wx.GenericDirCtrl(self.notebook_1_pane_1, -1, dir='/home/pirl/PycharmProjects/tensorflowGUI/data',
        #        self.dir = wx.GenericDirCtrl(self.notebook_1_pane_1, -1, dir='~/',
        #                                     style=wx.DIRCTRL_DIR_ONLY)
        #        self.dir_tree_ctrl = self.dir.GetTreeCtrl()
        #        print(self.dir_tree_ctrl.SetWindowStyle(wx.TR_HIDE_ROOT))

        self.label_1 = wx.StaticText(self.notebook_1_pane_1, wx.ID_ANY,
                                     _("Dataset Spec"))
        self.label_2 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("Path: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_2 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.label_3 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("# of Train/Test Data: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_4 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.label_4 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("# of Classes: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_5 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.label_5 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("Image Size: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_6 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.label_6 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("Image Type: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_7 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.label_7 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("Resize Transformation: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_8 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.label_8 = wx.StaticText(self.notebook_1_pane_1,
                                     wx.ID_ANY,
                                     _("Image Encoding: "),
                                     style=wx.ALIGN_CENTER)
        self.text_ctrl_9 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_CENTRE)
        self.text_ctrl_3 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_READONLY)
        self.text_ctrl_1 = wx.TextCtrl(self.notebook_1_pane_1,
                                       wx.ID_ANY,
                                       _("log field..\n\n\n\n"),
                                       style=wx.TE_MULTILINE | wx.TE_READONLY)
        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1_pane_3 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1_pane_4 = wx.Panel(self.notebook_1, wx.ID_ANY)

        self.__set_properties()
        self.__do_layout()
        self.__bind_events()
Beispiel #6
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: MainFrame.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.notebook_1 = wx.Notebook(self, -1, style=0)
        self.notebook_1_pane_5 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_4 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_3 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, -1)

        # Menu Bar
        self.MainFrameMenuBar = wx.MenuBar()
        wxglade_tmp_menu = wx.Menu()
        self.mnuLoadFormDB = wx.MenuItem(wxglade_tmp_menu, wx.NewId(),
                                         "Load Form DB...", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuLoadFormDB)
        self.mnuSaveFormDB = wx.MenuItem(wxglade_tmp_menu, wx.NewId(),
                                         "Save Form DB...", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuSaveFormDB)
        wxglade_tmp_menu.AppendSeparator()
        self.mnuQuit = wx.MenuItem(wxglade_tmp_menu, wx.NewId(), "&Quit", "",
                                   wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuQuit)
        self.MainFrameMenuBar.Append(wxglade_tmp_menu, "&File")
        wxglade_tmp_menu = wx.Menu()
        self.mnuPrefs = wx.MenuItem(wxglade_tmp_menu, wx.NewId(),
                                    "&Preferences", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuPrefs)
        self.MainFrameMenuBar.Append(wxglade_tmp_menu, "&Edit")
        wxglade_tmp_menu = wx.Menu()
        self.mnuCodec = wx.MenuItem(wxglade_tmp_menu, wx.NewId(),
                                    "&String encoder", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuCodec)
        self.mnuXSRF = wx.MenuItem(wxglade_tmp_menu, wx.NewId(),
                                   "&XSRF editor", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuXSRF)
        self.MainFrameMenuBar.Append(wxglade_tmp_menu, "&Tools")
        wxglade_tmp_menu = wx.Menu()
        self.mnuAbout = wx.MenuItem(wxglade_tmp_menu, wx.NewId(),
                                    "&About XSSploit", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.mnuAbout)
        self.MainFrameMenuBar.Append(wxglade_tmp_menu, "&Help")
        self.SetMenuBar(self.MainFrameMenuBar)
        # Menu Bar end
        self.MainFrameStatusBar = self.CreateStatusBar(1, 0)
        self.txtUrl = wx.TextCtrl(self.notebook_1_pane_1, -1,
                                  "http://localhost/xss/")
        self.btnSpider = wx.Button(self.notebook_1_pane_1, -1, "Spider")
        self.label_1 = wx.StaticText(self.notebook_1_pane_1, -1,
                                     "Pages spidered : ")
        self.lsPages = wx.ListBox(self.notebook_1_pane_1, -1, choices=[])
        self.label_4 = wx.StaticText(self.notebook_1_pane_1, -1,
                                     "Forms Found :")
        self.trvForms = wx.TreeCtrl(self.notebook_1_pane_1,
                                    -1,
                                    style=wx.TR_HAS_BUTTONS | wx.TR_NO_LINES
                                    | wx.TR_DEFAULT_STYLE | wx.SUNKEN_BORDER)
        self.btnAnalyze = wx.Button(self.notebook_1_pane_1, -1, "Analyze")
        self.label_2 = wx.StaticText(self.notebook_1_pane_3, -1, "XSS found :")
        self.lsXSS = wx.ListBox(self.notebook_1_pane_3,
                                -1,
                                choices=[],
                                style=wx.LB_SINGLE)
        self.trvXssSummary = wx.TreeCtrl(self.notebook_1_pane_3,
                                         -1,
                                         style=wx.TR_HAS_BUTTONS
                                         | wx.TR_NO_LINES | wx.TR_DEFAULT_STYLE
                                         | wx.SUNKEN_BORDER)
        self.static_line_1 = wx.StaticLine(self.notebook_1_pane_3, -1)
        self.label_19 = wx.StaticText(self.notebook_1_pane_4, -1,
                                      "Exploitable XSS :")
        self.cmbExploitableXss = wx.ComboBox(self.notebook_1_pane_4,
                                             -1,
                                             choices=[],
                                             style=wx.CB_DROPDOWN
                                             | wx.CB_READONLY)
        self.static_line_8 = wx.StaticLine(self.notebook_1_pane_4, -1)
        self.label_3 = wx.StaticText(self.notebook_1_pane_4, -1,
                                     "Available exploits :")
        self.lsExploits = wx.ListBox(self.notebook_1_pane_4,
                                     -1,
                                     choices=[],
                                     style=wx.LB_SINGLE)
        self.lblExploitDescription = wx.StaticText(self.notebook_1_pane_4, -1,
                                                   "Description")
        self.label_6 = wx.StaticText(self.notebook_1_pane_4, -1, "Options :")
        self.lsExploitOptions = wx.ListBox(self.notebook_1_pane_4,
                                           -1,
                                           choices=[],
                                           style=wx.LB_SINGLE)
        self.txtOptionValue = wx.TextCtrl(self.notebook_1_pane_4,
                                          -1,
                                          "",
                                          style=wx.TE_MULTILINE)
        self.btnGenCode = wx.Button(self.notebook_1_pane_4, -1,
                                    "Generate exploit code")
        self.txtJavaCode = wx.TextCtrl(self.notebook_1_pane_4,
                                       -1,
                                       "",
                                       style=wx.TE_MULTILINE)
        self.txtExploitUrl = wx.TextCtrl(self.notebook_1_pane_4,
                                         -1,
                                         "",
                                         style=wx.TE_MULTILINE | wx.TE_RICH
                                         | wx.TE_RICH2 | wx.TE_AUTO_URL)
        self.label_10 = wx.StaticText(self.notebook_1_pane_5, -1,
                                      "Report options")
        self.static_line_5 = wx.StaticLine(self.notebook_1_pane_5, -1)
        self.chkRptSpider = wx.CheckBox(self.notebook_1_pane_5, -1,
                                        "Include spidered pages")
        self.chkRptForm = wx.CheckBox(self.notebook_1_pane_5, -1,
                                      "Include forms and parameters found")
        self.chkRptXSS = wx.CheckBox(self.notebook_1_pane_5, -1,
                                     "Include XSS found")
        self.chkRptPXSS = wx.CheckBox(
            self.notebook_1_pane_5, -1,
            "Include possible XSS (not exploitable by XSSploit)")
        self.chkRptExample = wx.CheckBox(self.notebook_1_pane_5, -1,
                                         "Include example (Messagebox)")
        self.btnRptSave = wx.Button(self.notebook_1_pane_5, -1, "Save...")

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

        #Interface inits
        self.btnAnalyze.Enable(False)

        #Controls binding
        self.btnSpider.Bind(wx.EVT_BUTTON, self.onSpider, self.btnSpider)
        self.lsXSS.Bind(wx.EVT_LISTBOX, self.xssSelected, self.lsXSS)
        self.lsExploits.Bind(wx.EVT_LISTBOX, self.exploitSelected,
                             self.lsExploits)
        self.lsExploitOptions.Bind(wx.EVT_LISTBOX, self.exploitOptionSelected,
                                   self.lsExploitOptions)
        self.txtOptionValue.Bind(wx.EVT_TEXT, self.exploitOptionChange,
                                 self.txtOptionValue)
        self.btnGenCode.Bind(wx.EVT_BUTTON, self.genCode, self.btnGenCode)
        self.btnAnalyze.Bind(wx.EVT_BUTTON, self.onAnalyze, self.btnAnalyze)
        self.btnRptSave.Bind(wx.EVT_BUTTON, self.report, self.btnRptSave)

        #Menu Handling
        EVT_MENU(self, self.mnuAbout.GetId(), self.onAbout)
        EVT_MENU(self, self.mnuSaveFormDB.GetId(), self.onSaveDB)
        EVT_MENU(self, self.mnuLoadFormDB.GetId(), self.onLoadDB)
        EVT_MENU(self, self.mnuXSRF.GetId(), self.onXsrf)
        EVT_MENU(self, self.mnuCodec.GetId(), self.onCodec)
        EVT_MENU(self, self.mnuPrefs.GetId(), self.onPrefs)
        EVT_MENU(self, self.mnuQuit.GetId(), self.onQuit)

        #XSSploit vars
        self.wwwIOInstance = wwwIO()
        self.compilerInstance = compiler()
        self.xssCollection = {}
        self.formDBInstance = None
        self.activeXss = None

        #Options
        self.useProxy = False
        self.proxyHost = ''
        self.proxyPort = ''
        self.proxyUser = ''
        self.proxyPass = ''
        self.useAuth = False
        self.authUser = ''
        self.authPass = ''
        self.maxParams = 2
        self.doPermCheck = 1

        #XSSploit inits
        self.loadExploitsList()
Beispiel #7
0
    def make_gui(self):
        # Fonts
        if(os.environ["POL_OS"] == "Mac"):
            self.fontTitre = wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "", wx.FONTENCODING_DEFAULT)
            self.fontText = wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL,False, "", wx.FONTENCODING_DEFAULT)
        else :
            self.fontTitre = wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "", wx.FONTENCODING_DEFAULT)
            self.fontText = wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL,False, "", wx.FONTENCODING_DEFAULT)

        # GUI elements
        self.panel = wx.Panel(self, -1, pos=(0,0), size=((520, 398+Variables.windows_add_size)))
        self.header = wx.Panel(self.panel, -1, style=Variables.widget_borders, size=(522,65))
        self.header.SetBackgroundColour((255,255,255))
        self.footer = wx.Panel(self.panel, -1, size=(522,45), pos=(-1,358), style=Variables.widget_borders)

        # Panels
        self.MainPanel = wx.Panel(self.panel, -1, pos=(150,0), size=(370,356))
        self.MainPanel.SetBackgroundColour((255,255,255))


        # Images
        self.top_image = wx.StaticBitmap(self.header, -1, self.small_image, (self.small_x,0), wx.DefaultSize)
        self.left_image = wx.StaticBitmap(self.panel, -1, self.big_image, (0,0), wx.DefaultSize)


        # Text
        self.titre_header = wx.StaticText(self.header, -1, _('{0} Wizard').format(os.environ["APPLICATION_TITLE"]),pos=(5,5), size=(340,356),style=wx.ST_NO_AUTORESIZE)
        self.titre_header.SetFont(self.fontTitre)
        self.titre_header.SetForegroundColour((0,0,0)) # For dark themes

        self.texte = wx.StaticText(self.panel, -1, "",pos=(20,80),size=(480,275),style=wx.ST_NO_AUTORESIZE)
        self.texte_bis = wx.StaticText(self.panel, -1, "",size=(480,30),style=wx.ST_NO_AUTORESIZE)
        self.titre = wx.StaticText(self.header, -1, "",pos=(20,30), size=(340,356),style=wx.ST_NO_AUTORESIZE)
        self.titre.SetForegroundColour((0,0,0)) # For dark themes

        self.texteP = wx.StaticText(self.MainPanel, -1, "",pos=(5,50))
        self.texteP.SetForegroundColour((0,0,0)) # For dark themes

        self.titreP = wx.StaticText(self.MainPanel, -1,"",pos=(5,5), size=(340,356))
        self.titreP.SetFont(self.fontTitre)
        self.titreP.SetForegroundColour((0,0,0)) # For dark themes

        self.txtEstimation = wx.StaticText(self.panel, -1, "",size=(480,30),style=wx.ST_NO_AUTORESIZE)
        self.register_link = ""


        # Buttons
        self.CancelButton = wx.Button(self.footer, wx.ID_CANCEL, _("Cancel"), pos=(430,0),size=(85,37))
        if(self.ProtectedWindow == True):
            self.CancelButton.Enable(False)

        self.NextButton = wx.Button(self.footer, wx.ID_FORWARD, _("Next"), pos=(340,0),size=(85,37))
        self.BackButton = wx.Button(self.footer, wx.ID_FORWARD, _("Back"), pos=(250,0),size=(85,37))
        self.InfoScript = wx.StaticBitmap(self.footer, -1, wx.Bitmap(os.environ['PLAYONLINUX']+"/resources/images/setups/about.png"), pos=(10,8))
        self.InfoScript.Hide()
        self.script_ID = 0
        self.InfoScript.Bind(wx.EVT_LEFT_DOWN, self.InfoClick)
        self.InfoScript.SetCursor(wx.StockCursor(wx.CURSOR_HAND))

        self.NoButton = wx.Button(self.footer, wx.ID_NO, _("No"), pos=(430,0),size=(85,37))
        self.YesButton = wx.Button(self.footer, wx.ID_YES, _("Yes"), pos=(340,0), size=(85,37))
        self.browse = wx.Button(self.panel, 103, _("Browse"), size=(130,40))
        self.browse_text = wx.StaticText(self.panel, -1, "")
        self.browse_image = wx.StaticBitmap(self.panel, -1, wx.Bitmap(os.environ['PLAYONLINUX']+"/etc/playonlinux.png"))

        # D'autres trucs
        self.champ = wx.TextCtrl(self.panel, 400, "",size=(300,22))

        self.bigchamp = wx.TextCtrl(self.panel, -1, "",size=wx.Size(460,240), pos=(30,105),style=Variables.widget_borders|wx.TE_MULTILINE)
        self.MCheckBox = wx.CheckBox(self.panel, 302, _("I Agree"), pos=(20,325))
        self.PCheckBox = wx.CheckBox(self.panel, 304, _("Show virtual drives"), pos=(20,325))
        self.Menu = wx.ListBox(self.panel, 104, pos=(25,105),size=(460,220), style=Variables.widget_borders)
        self.scrolled_panel = wx.ScrolledWindow(self.panel, -1, pos=(20,100), size=(460,220), style=Variables.widget_borders|wx.HSCROLL|wx.VSCROLL)
        self.scrolled_panel.SetBackgroundColour((255,255,255))
        self.texte_panel = wx.StaticText(self.scrolled_panel, -1, "",pos=(5,5))

        self.gauge = wx.Gauge(self.panel, -1, 50, size=(375, 20))
        self.WaitButton = wx.Button(self.panel, 310, "", size=(250,25))

        
        
        self.animation = wx.StaticBitmap(self.panel, -1, self.GetLoaderFromAngle(1), (228,170))
        self.current_angle = 1
    
        self.images = wx.ImageList(22, 22)
        self.MenuGames = wx.TreeCtrl(self.panel, 111, style=wx.TR_HIDE_ROOT|wx.TR_FULL_ROW_HIGHLIGHT|Variables.widget_borders, pos=(25,105),size=(460,220))
        self.MenuGames.SetImageList(self.images)
        self.MenuGames.SetSpacing(0)
        

        # Login
        self.login = wx.StaticText(self.panel, -1, _("Login: "******"Password: "******"",size=(250,22),pos=(200,115))
        self.passbox =  wx.TextCtrl(self.panel, -1, "",size=(250,22),pos=(200,145), style=wx.TE_PASSWORD)
        self.register = wx.HyperlinkCtrl(self.panel, 303, _("Register"), "", pos=(20,180))
        self.register.SetNormalColour(wx.Colour(0,0,0))

        # Fixed Events
        wx.EVT_BUTTON(self, wx.ID_YES, self.release_yes)
        wx.EVT_BUTTON(self, wx.ID_NO, self.release_no)
        wx.EVT_BUTTON(self, wx.ID_CANCEL , self.Cancel)
        wx.EVT_BUTTON(self, 103, self.Parcourir)
        wx.EVT_CHECKBOX(self, 302, self.agree)
        wx.EVT_CHECKBOX(self, 304, self.switch_menu)
        wx.EVT_HYPERLINK(self, 303, self.POL_register)

        # Debug Window
        self.debugImage = wx.StaticBitmap(self.panel, -1, wx.Bitmap(os.environ["PLAYONLINUX"]+"/resources/images/setups/face-sad.png"), (196,130))
        self.debugZone = wx.TextCtrl(self.panel, -1, "",size=wx.Size(440,82), pos=(40,274),style=Variables.widget_borders|wx.TE_MULTILINE|wx.TE_READONLY)

        # Hide all
        self.Destroy_all()
        self.Result = ""
        self.animation.Show()
        self.footer.Hide()
        
        # Set the timer
        self.timer = wx.Timer(self, 3)
        self.Bind(wx.EVT_TIMER, self.TimerAction, self.timer)
        self.timer.Start(100)
        self.Timer_downloading = False
        self.Timer_animate = True
Beispiel #8
0
    def _init_ctrls(self, prnt):
        ''' Initialize the wx controls'''

        frame_size = wx.Size(770, 350)

        wx.Frame.__init__(self, id=-1, name='', parent=prnt,
                          pos=wx.Point(10, 20), size=frame_size,
                          style=wx.DEFAULT_FRAME_STYLE, 
                          title='Connection Tool')


        panel = wx.Panel(self, -1)


        # --------------------------------------------------------------------
        # create the top sizer


        # Static Texts (labels)
        self.blankLabel  = wx.StaticText(id=-1, label='',
                                        name='blankLabel', parent=panel, 
                                        size=wx.Size(150, 30), style=0)
        self.usesLabel = wx.StaticText(id=-1, label='Select Uses Port:',
                                        name='usesLabel', parent=panel, 
                                        size=wx.Size(250, 30), 
                                        style=wx.ALIGN_CENTER)
        self.providesLabel = wx.StaticText(id=-1, label='Select Provides Port:',
                                        name='providesLabel', parent=panel, 
                                        size=wx.Size(250, 30), 
                                        style = wx.ALIGN_CENTER)
        treeSize = (350,200)
        
        #Changing to Tree style listing of waveforms/components/ports from previously used Choice style
        self.usesTree = wx.TreeCtrl(parent=panel, id=-1, size=treeSize , style=wx.TR_HIDE_ROOT|wx.TR_HAS_BUTTONS)
        self.providesTree = wx.TreeCtrl(parent=panel, id=-1, size=treeSize , style=wx.TR_HIDE_ROOT|wx.TR_HAS_BUTTONS)
        
        # connect button
        self.ConnectBtn = wx.Button(id = -1, label='Connect',
                                    parent=panel)
        self.ConnectBtn.Bind(wx.EVT_BUTTON, self.OnConnectBtn, id=-1)
        
        blankLabel2 = wx.StaticText(label = '', parent = panel)
        blankLabel3 = wx.StaticText(label = '', parent = panel)
        blankLabel4 = wx.StaticText(label = '', parent = panel)


        flexSizer1 = wx.FlexGridSizer(cols=3, hgap=6, vgap = 6)
        flexSizer1.AddMany([blankLabel2, self.usesLabel, self.providesLabel, 
                            blankLabel3, self.usesTree, self.providesTree,
                            blankLabel4, self.ConnectBtn])
        # --------------------------------------------------------------------
        # second sizer
        vSizer1 = wx.BoxSizer(wx.VERTICAL)
        self.connectionsLabel = wx.StaticText(parent = panel,
                                            label = "Connections:")
        self.connectionsListBox = wx.ListBox(parent=panel,
                                            size=wx.Size(700,150),
                                            style=wx.LB_MULTIPLE,
                                            )
        self.DisconnectBtn = wx.Button(parent=panel,
                                            label='Disconnect')
        self.DisconnectBtn.Bind(wx.EVT_BUTTON, self.OnDisconnectBtn)
        vSizer1.Add(self.connectionsLabel, 0, wx.ALL, 5)
        vSizer1.Add(self.connectionsListBox, 0, wx.ALL, 5)
        vSizer1.Add(self.DisconnectBtn, 0, wx.ALL, 5)
        # --------------------------------------------------------------------


        # --------------------------------------------------------------------
        # third sizer
        hSizer1 = wx.BoxSizer(wx.HORIZONTAL)
        self.automationFileEditor = wx.TextCtrl(id=-1,
                                        name=u'automationFileEditor', 
                                        parent=panel, 
                                        size=wx.Size(350, 30), 
                                        style=0, value=u'')
        self.browseAutomationBtn = wx.Button(id = -1, 
                                           label='Browse',
                                    parent=panel, 
                                    size=wx.Size(80, 30))
        self.browseAutomationBtn.Bind(wx.EVT_BUTTON, 
                                    self.onBrowseAutomationButton,
                                    id=-1)
        self.loadAutomationBtn = wx.Button(id = -1, 
                                           label='Load Automation File',
                                    parent=panel, 
                                    size=wx.Size(180, 30))
        self.loadAutomationBtn.Bind(wx.EVT_BUTTON, 
                                    self.onLoadAutomationFileButton,
                                    id=-1)
        hSizer1.Add(self.automationFileEditor, 0, wx.ALL, 5)
        hSizer1.Add(self.browseAutomationBtn, 0, wx.ALL, 5)
        hSizer1.Add(self.loadAutomationBtn, 0, wx.ALL, 5)
        # --------------------------------------------------------------------



        # --------------------------------------------------------------------
        # assemble main sizer from other sizers

        # topLabel = wx.StaticText(label = 'Connect Tool.  OSSIE 0.6.2', 
        #                         parent = panel)

        mainSizer = wx.BoxSizer(wx.VERTICAL)
        
        mainSizer.Add(flexSizer1, 0 , wx.EXPAND|wx.ALL, 10)
        mainSizer.Add(wx.StaticLine(panel), 0 , wx.EXPAND|wx.TOP|wx.BOTTOM, 5)
        mainSizer.Add(vSizer1, 0, wx.EXPAND|wx.ALL, 10)
        mainSizer.Add(wx.StaticLine(panel), 0 , wx.EXPAND|wx.TOP|wx.BOTTOM, 5)
        mainSizer.Add(hSizer1, 0, wx.EXPAND|wx.ALL, 10)

        panel.SetSizer(mainSizer)
        mainSizer.Fit(self)
    def __init__(self, module_view, v, pipeline):
        assert isinstance(v, FileCollectionDisplay)
        self.module_view = module_view
        self.v = v
        assert isinstance(pipeline, Pipeline)
        self.pipeline = pipeline
        self.panel = wx.Panel(self.module_view.module_panel,
                              -1,
                              name=edit_control_name(v))
        self.panel.controller = self
        self.panel.Sizer = wx.BoxSizer(wx.VERTICAL)
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.panel.Sizer.Add(sizer, 0, wx.EXPAND)
        self.status_text = wx.StaticText(self.panel, -1)
        sizer.Add(self.status_text, 0, wx.ALIGN_LEFT | wx.ALIGN_CENTER)
        sizer.AddStretchSpacer()
        sizer.Add(
            wx.StaticText(self.panel, -1, "Drag folders and/or files here or"),
            0,
            wx.ALIGN_LEFT | wx.ALIGN_CENTER,
        )
        sizer.AddSpacer((3, 0))
        browse_button = wx.Button(self.panel, -1, "Browse...")
        sizer.Add(browse_button, 0, wx.ALIGN_LEFT | wx.ALIGN_CENTER)
        browse_button.Bind(wx.EVT_BUTTON, self.on_browse)
        tree_style = wx.TR_HIDE_ROOT | wx.TR_HAS_BUTTONS | wx.TR_MULTIPLE
        self.tree_ctrl = wx.TreeCtrl(self.panel, -1, style=tree_style)
        self.panel.Sizer.Add(self.tree_ctrl, 1, wx.EXPAND)
        self.tree_ctrl.SetImageList(self.IMAGE_LIST)
        self.tree_ctrl.Bind(wx.EVT_TREE_ITEM_MENU, self.on_tree_item_menu)
        self.tree_ctrl.Bind(wx.EVT_TREE_KEY_DOWN, self.on_tree_key_down)
        #
        # Don't auto-expand after the user collapses a node.
        #
        self.user_collapsed_a_node = False

        def on_item_collapsed(event):
            logging.debug("On item collapsed")
            self.user_collapsed_a_node = True

        self.tree_ctrl.Bind(wx.EVT_TREE_ITEM_COLLAPSED, on_item_collapsed)
        self.tree_ctrl.Bind(wx.EVT_TREE_ITEM_ACTIVATED,
                            self.on_tree_doubleclick)
        self.tree_ctrl.Bind(wx.EVT_ERASE_BACKGROUND, self.on_erase_background)

        self.panel.Bind(wx.EVT_WINDOW_DESTROY, self.on_destroy)
        self.root_item = self.tree_ctrl.AddRoot("I am the invisible root")
        self.tree_ctrl.SetPyData(self.root_item, None)
        self.tree_ctrl.SetItemImage(self.root_item, self.FOLDER_IMAGE_INDEX)
        self.tree_ctrl.SetItemImage(self.root_item,
                                    self.FOLDER_OPEN_IMAGE_INDEX,
                                    wx.TreeItemIcon_Expanded)
        self.tree_ctrl.SetMinSize((100, 300))
        self.tree_ctrl.SetMaxSize((sys.maxsize, 300))
        self.file_drop_target = self.FCDCDropTarget(self.on_drop_files,
                                                    self.on_drop_text)
        self.tree_ctrl.SetDropTarget(self.file_drop_target)
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.panel.Sizer.Add(sizer, 0, wx.EXPAND)
        self.hide_show_ctrl = wx.CheckBox(self.panel, -1, self.v.hide_text)
        sizer.Add(self.hide_show_ctrl, 0, wx.ALIGN_LEFT | wx.ALIGN_BOTTOM)
        self.hide_show_ctrl.Bind(wx.EVT_CHECKBOX, self.on_hide_show_checked)
        self.hide_show_ctrl.SetValue(not self.v.show_filtered)
        sizer.AddStretchSpacer()
        self.stop_button = wx.Button(self.panel, -1, "Stop")
        self.stop_button.Enable(False)
        self.stop_button.Bind(wx.EVT_BUTTON, self.on_stop)
        sizer.Add(self.stop_button, 0,
                  wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        self.pause_button = wx.Button(self.panel, -1, "Pause")
        self.pause_button.Enable(False)
        self.pause_button.Bind(wx.EVT_BUTTON, self.on_pause_resume)
        sizer.Add(self.pause_button, 0,
                  wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)
        v.set_update_function(self.request_update)
        self.needs_update = False
        self.modpath_to_item = {}
        self.request_update()
Beispiel #10
0
	def __init__(self, parent):
		"""
		Initialization
		"""        
		wx.SashLayoutWindow.__init__(self, parent, -1)
		self.treeId = wx.NewId()
		self.parent = parent
		self.tree = wx.TreeCtrl(self, self.treeId, style = wx.TR_HAS_BUTTONS | wx.TR_MULTIPLE)
		self.multiSelect = 0
		self.programmatic = 0
		self.lastobj = None
		self.ignore = 0
		self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.onSelectionChanged, id = self.tree.GetId())    
		self.tree.Bind(wx.EVT_TREE_SEL_CHANGING, self.onSelectionChanging, id = self.tree.GetId())
		self.tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onActivateItem, id = self.tree.GetId())
		self.tree.Bind(wx.EVT_KEY_DOWN, self.onKeyDown, id = self.tree.GetId())
		self.items = OrderedDict()
		self.greenitems = []
		self.yellowitems = []
		self.dataUnitToPath = {}
		self.selectedItem = None
		
		isz = (16, 16)
		il = wx.ImageList(isz[0], isz[1])
		fldridx     = il.Add(wx.ArtProvider_GetBitmap(wx.ART_FOLDER,      wx.ART_OTHER, isz))
		fldropenidx = il.Add(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN,   wx.ART_OTHER, isz))
		fileidx     = il.Add(wx.ArtProvider_GetBitmap(wx.ART_REPORT_VIEW, wx.ART_OTHER, isz))
		
		self.tree.SetImageList(il)
		self.il = il
	
		self.root = self.tree.AddRoot("Datasets")
		self.tree.SetPyData(self.root, "1")
		self.tree.SetItemImage(self.root, fldridx, which = wx.TreeItemIcon_Normal)
		self.tree.SetItemImage(self.root, fldropenidx, which = wx.TreeItemIcon_Expanded)

		self.lsmfiles = None
		self.leicafiles = None
		self.bxdfiles = None
		self.oiffiles = None
		self.bioradfiles = None
		self.interfilefiles = None
		self.liffiles = None
		self.mrcfiles = None
		self.ometiffiles = None
		self.lastSelection = None
		
		self.dataUnitItems = []
		self.groupedDataUnit = None
		self.groupedItems = []
		self.removeParents = []
		
		self.itemColor = (0, 0, 0)
		
		
		self.tree.Bind(wx.EVT_RIGHT_DOWN, self.onRightClick)
		self.Bind(wx.EVT_RIGHT_DOWN, self.onRightClick)
		self.ID_CLOSE_DATAUNIT = wx.NewId()
		self.ID_GROUP_DATAUNIT = wx.NewId()
		self.ID_UNGROUP = wx.NewId()
		self.menu = wx.Menu()
		self.tree.SetHelpText("Files that you open appear in this tree.")        
	   
		item = wx.MenuItem(self.menu, self.ID_CLOSE_DATAUNIT, "Close dataset")
		self.tree.Bind(wx.EVT_MENU, self.onCloseDataset, id = self.ID_CLOSE_DATAUNIT)
		self.Bind(wx.EVT_MENU, self.onCloseDataset, id = self.ID_CLOSE_DATAUNIT)
		self.menu.AppendItem(item)
		item = wx.MenuItem(self.menu, self.ID_GROUP_DATAUNIT, "Group dataset")
		self.tree.Bind(wx.EVT_MENU, self.onCloseDataset, id = self.ID_GROUP_DATAUNIT)
		self.Bind(wx.EVT_MENU, self.onGroupDataset, id = self.ID_GROUP_DATAUNIT)
		self.menu.AppendItem(item)
		item = wx.MenuItem(self.menu, self.ID_UNGROUP, "Ungroup")
		self.tree.Bind(wx.EVT_MENU, self.onUngroup, id = self.ID_UNGROUP)
		self.Bind(wx.EVT_MENU, self.onUngroup, id = self.ID_UNGROUP)
		self.menu.AppendItem(item)
Beispiel #11
0
    def __init__(self, parent, editor, object):
        wx.Dialog.__init__(self,
                           parent,
                           id=wx.ID_ANY,
                           title="Graph Editor",
                           pos=wx.DefaultPosition,
                           size=(735, 535))

        self.editor = editor
        self.editor.GRAPH_EDITOR = True
        self.object = object
        self.xRange = 24 + 1
        self.yRange = 50
        if self.editor.mode == self.editor.ANIM_MODE:
            self.curFrame = self.editor.ui.animUI.curFrame
        self.curFrame = 1

        self.mainPanel1 = wx.Panel(self, -1)

        bmpZoomIn = ZoomIn.GetBitmap()
        bmpZoomOut = ZoomOut.GetBitmap()
        bmpOneTangent = OneTangent.GetBitmap()
        bmpTwoTangents = TwoTangents.GetBitmap()

        self.buttonZoomIn = wx.BitmapButton(self.mainPanel1,
                                            -1,
                                            bmpZoomIn,
                                            size=(30, 30),
                                            style=wx.BU_AUTODRAW)
        self.buttonZoomOut = wx.BitmapButton(self.mainPanel1,
                                             -1,
                                             bmpZoomOut,
                                             size=(30, 30),
                                             style=wx.BU_AUTODRAW)
        self.buttonOneTangent = wx.BitmapButton(self.mainPanel1,
                                                -1,
                                                bmpOneTangent,
                                                size=(30, 30),
                                                style=wx.BU_AUTODRAW)
        self.buttonTwoTangents = wx.BitmapButton(self.mainPanel1,
                                                 -1,
                                                 bmpTwoTangents,
                                                 size=(30, 30),
                                                 style=wx.BU_AUTODRAW)

        self.mainPanel2 = wx.Panel(self, -1)

        self.tree = self.tree = wx.TreeCtrl(self.mainPanel2,
                                            id=-1,
                                            pos=wx.DefaultPosition,
                                            size=wx.Size(200, 450),
                                            style=wx.TR_MULTIPLE
                                            | wx.TR_DEFAULT_STYLE,
                                            validator=wx.DefaultValidator,
                                            name="treeCtrl")
        self.namestr = "%s" % (object[OG.OBJ_DEF].name)
        self.root = self.tree.AddRoot(self.namestr)
        self.AddTreeNodes(self.root, property)
        self.tree.Expand(self.root)
        self.tree.SelectItem(self.root, select=True)
        self.str = self.tree.GetItemText(self.root)

        self.graphEditorWindow = GraphEditorWindow(
            self.mainPanel2, wx.Size(500, 450), str(object[OG.OBJ_DEF].name),
            self.xRange, self.yRange, self.curFrame, self.object)

        self.SetProperties()
        self.DoLayout()

        self.Bind(wx.EVT_BUTTON, self.OnZoomIn, self.buttonZoomIn)
        self.Bind(wx.EVT_BUTTON, self.OnZoomOut, self.buttonZoomOut)
        self.Bind(wx.EVT_BUTTON, self.OnOneTangent, self.buttonOneTangent)
        self.Bind(wx.EVT_BUTTON, self.OnTwoTangents, self.buttonTwoTangents)

        self.Bind(wx.EVT_CLOSE, self.OnExit)
        self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged)
Beispiel #12
0
    def __init__(self, prnt):
        # First, call the base class' __init__ method to create the frame
        wx.Frame.__init__(self,
                          id=-1,
                          name='',
                          parent=prnt,
                          pos=wx.Point(0, 0),
                          size=wx.Size(600, 600),
                          style=wx.DEFAULT_FRAME_STYLE,
                          title="Dir tree view")

        self.panViewFolders = wx.Panel(id=-1,
                                       name='panViewFolders',
                                       parent=self,
                                       pos=wx.Point(8, 176),
                                       size=wx.Size(500, 500),
                                       style=wx.TAB_TRAVERSAL)
        self.panViewFolders.SetBackgroundColour(wx.Colour(225, 236, 255))
        #self.panViewFolders.SetAutoLayout(True)

        self.treeViewFolders = wx.TreeCtrl(id=wx.NewId(),
                                           name='treeViewFolders',
                                           parent=self.panViewFolders,
                                           pos=wx.Point(0, 0),
                                           size=wx.Size(600, 600),
                                           style=wx.HSCROLL | wx.VSCROLL
                                           | wx.TR_HAS_BUTTONS)

        self.DirectoryDict = {}
        """
        print "start walking at ", time.ctime()
        startTime = time.time()
        self.WalkDir()
        
        print "end walking at ", time.ctime()
        
        endTime = time.time()
        print "Time taken to walk ", CommonFunctions.ConvertSecondsToDayHourMinSec(endTime - startTime)
        
        startTime = time.time()
        #save in db
   
        DBFunctions.SetupProjectEvidencesTable("caseNew.cfi", True)
        db = SqliteDatabase("caseNew.cfi")
        if db.OpenConnection():
            query = "insert into " + Constants.ProjectEvidencesTable + " (ID, DisplayName, Location, DirTree) values (?, ?, ?, ?)"
            db.ExecuteMany(query, [(1, self.evidenceName, self.evidencePath, cPickle.dumps(self.DirectoryDict[self.evidenceName]))] )
            db.CloseConnection()
        endTime = time.time()
        
        print "Time taken to add in db ", CommonFunctions.ConvertSecondsToDayHourMinSec(endTime - startTime)
        """

        print 'start time load ', time.ctime()
        startTime = time.time()
        db = SqliteDatabase("caseNew.cfi")
        if db.OpenConnection():
            query = "select Location, DisplayName, DirTree from " + Constants.EvidencesTable
            row = db.FetchOneRow(query)
            self.evidencePath = row[0]
            self.evidenceName = row[1]
            self.DirectoryDict = cPickle.loads(str(row[2]))

        print "end time ", time.ctime()
        endTime = time.time()
        print "Time taken to load db ", CommonFunctions.ConvertSecondsToDayHourMinSec(
            endTime - startTime)

        print "start build tree time ", time.ctime()
        startTime = time.time()
        self.treeDir = DirectoryTreeView(self, self.treeViewFolders,
                                         self.DirectoryDict, self.evidenceName,
                                         self.evidencePath)
        print "end build tree time ", time.ctime()
        endTime = time.time()
        print "Time taken ", CommonFunctions.ConvertSecondsToDayHourMinSec(
            endTime - startTime)
Beispiel #13
0
    def __init__(self,
                 parent,
                 knownHosts=None,
                 knownAccounts=None,
                 filterType=None,
                 filters=None):
        """Create a ``XNATBrowserPanel``.

        :arg parent:        ``wx`` parent object.

        :arg knownHosts:    A sequence of hosts to be used as auto-complete
                            options in the host input field.

        :arg knownAccounts: A mapping of ``{ host : (username, password) }``,
                            which are used to automatically fill in the
                            login credentials when a particular host name
                            is entered.

        :arg filterType:    How the filter patterns should be applied -
                            either ``'regexp'`` for regular expressions, or
                            ``'glob'`` for shell-style wildcard patterns.
                            Defaults to ``'regexp'``.

        :arg filters:       Mapping containing initial filter values. Must
                            be of the form  ``{ level : pattern }``, where
                            ``level`` is the name of an XNAT hierarchy level
                            (e.g. ``'subject'``, ``'file'``, etc.).
        """

        if knownHosts    is None: knownHosts    = []
        if knownAccounts is None: knownAccounts = {}
        if filterType    is None: filterType    = 'regexp'
        if filters       is None: filters       = {}

        if filterType not in ('regexp', 'glob'):
            raise ValueError('Unrecognised value for filterType: '
                             '{}. May be one of \'regexp\' or '
                             '\'glob\''.format(filterType))

        # store hosts without
        # the http[s]:// prefix
        knownHosts    = [h.strip('https://')          for h in knownHosts]
        knownAccounts = {h.strip('https://') : (u, p) for h, (u, p)
                         in knownAccounts.items()}
        knownHosts   += [h for h in knownAccounts.keys()
                         if h not in knownHosts]

        wx.Panel.__init__(self, parent)

        self.__knownHosts    = knownHosts
        self.__knownAccounts = knownAccounts
        self.__filterType    = filterType
        self.__session       = None
        self.__filters = collections.OrderedDict([
            ('subject',    ''),
            ('experiment', ''),
            ('file',       ''),
        ])

        self.__filters.update(**filters)

        self.__host       = at.AutoTextCtrl(self)
        self.__username   = pt.PlaceholderTextCtrl(self,
                                                   placeholder='username')
        self.__password   = pt.PlaceholderTextCtrl(self,
                                                   placeholder='password',
                                                   style=wx.TE_PASSWORD)
        self.__connect    = wx.Button(self)
        self.__status     = wx.StaticText(self)
        self.__project    = wx.Choice(self)
        self.__refresh    = wx.Button(self)
        self.__filter     = wx.Choice(self)

        self.__filterText = pt.PlaceholderTextCtrl(self,
                                                   placeholder=filterType,
                                                   style=wx.TE_PROCESS_ENTER)
        self.__splitter   = wx.SplitterWindow(self,
                                              style=(wx.SP_LIVE_UPDATE |
                                                     wx.SP_BORDER))
        self.__info       = wgrid.WidgetGrid(self.__splitter)
        self.__browser    = wx.TreeCtrl(self.__splitter,
                                        style=(wx.TR_MULTIPLE    |
                                               wx.TR_NO_LINES    |
                                               wx.TR_HAS_BUTTONS |
                                               wx.TR_TWIST_BUTTONS))

        self.__splitter.SetMinimumPaneSize(50)
        self.__splitter.SplitHorizontally(self.__info, self.__browser)
        self.__splitter.SetSashPosition(50)
        self.__splitter.SetSashGravity(0.2)

        images = [icons.loadBitmap(icons.FILE_ICON),
                  icons.loadBitmap(icons.FOLDER_UNLOADED_ICON),
                  icons.loadBitmap(icons.FOLDER_LOADED_ICON)]

        self.__fileImageId           = 0
        self.__unloadedFolderImageId = 1
        self.__loadedFolderImageId   = 2

        imageList = wx.ImageList(16, 16)
        for i in images:
            imageList.Add(images[0])
            imageList.Add(images[1])
            imageList.Add(images[2])

        self.__browser.AssignImageList(imageList)

        self.__filter.SetItems([LABELS[f] for f in self.__filters.keys()])
        self.__filter.SetSelection(0)

        self.__hostLabel     = wx.StaticText(self)
        self.__usernameLabel = wx.StaticText(self)
        self.__passwordLabel = wx.StaticText(self)
        self.__projectLabel  = wx.StaticText(self)
        self.__filterLabel   = wx.StaticText(self)

        self.__status.SetFont(self.__status.GetFont().Larger().Larger())
        self.__info.SetColours(border=self.__info._defaultEvenColour)
        self.__host         .AutoComplete(knownHosts)
        self.__hostLabel    .SetLabel(LABELS['host'])
        self.__usernameLabel.SetLabel(LABELS['username'])
        self.__passwordLabel.SetLabel(LABELS['password'])
        self.__connect      .SetLabel(LABELS['connect'])
        self.__projectLabel .SetLabel(LABELS['project'])
        self.__filterLabel  .SetLabel(LABELS['filter'])
        self.__refresh      .SetLabel(LABELS['refresh'])

        filterTooltip = wx.ToolTip(TOOLTIPS['filter.{}'.format(filterType)])

        self.__filterLabel.SetToolTip(filterTooltip)
        self.__filter     .SetToolTip(filterTooltip)
        self.__filterText .SetToolTip(filterTooltip)

        self.__loginSizer  = wx.BoxSizer(wx.HORIZONTAL)
        self.__filterSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.__mainSizer   = wx.BoxSizer(wx.VERTICAL)

        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__hostLabel)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__host, proportion=1)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__usernameLabel)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__username, proportion=1)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__passwordLabel)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__password, proportion=1)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__connect)
        self.__loginSizer.Add((5, 1))
        self.__loginSizer.Add(self.__status)
        self.__loginSizer.Add((5, 1))

        self.__filterSizer.Add((5, 1))
        self.__filterSizer.Add(self.__projectLabel)
        self.__filterSizer.Add((5, 1))
        self.__filterSizer.Add(self.__project, proportion=1)
        self.__filterSizer.Add((5, 1))
        self.__filterSizer.Add(self.__filterLabel)
        self.__filterSizer.Add((5, 1))
        self.__filterSizer.Add(self.__filter)
        self.__filterSizer.Add((5, 1))
        self.__filterSizer.Add(self.__filterText, proportion=1)
        self.__filterSizer.Add((5, 1))
        self.__filterSizer.Add(self.__refresh)
        self.__filterSizer.Add((5, 1))

        self.__mainSizer.Add(self.__loginSizer, flag=wx.EXPAND)
        self.__mainSizer.Add((1, 10))
        self.__mainSizer.Add(self.__filterSizer, flag=wx.EXPAND)
        self.__mainSizer.Add((1, 10))
        self.__mainSizer.Add(self.__splitter, flag=wx.EXPAND, proportion=1)

        self.SetSizer(self.__mainSizer)

        self.__host   .Bind(at.EVT_ATC_TEXT_ENTER,      self.__onHost)
        self.__connect.Bind(wx.EVT_BUTTON,              self.__onConnect)
        self.__project.Bind(wx.EVT_CHOICE,              self.__onProject)
        self.__refresh.Bind(wx.EVT_BUTTON,              self.__onRefresh)
        self.__filter .Bind(wx.EVT_CHOICE,              self.__onFilter)
        self.__browser.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.__onTreeActivate)
        self.__browser.Bind(wx.EVT_TREE_SEL_CHANGED,    self.__onTreeSelect)
        self.__filterText.Bind(wx.EVT_TEXT_ENTER,       self.__onFilterText)

        self.__updateFilter()
        self.EndSession()
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Smach Viewer", size=(720, 480))

        # Create graph
        self._containers = {}
        self._top_containers = {}
        self._update_cond = threading.Condition()
        self._needs_refresh = True

        vbox = wx.BoxSizer(wx.VERTICAL)

        # Create Splitter
        self.content_splitter = wx.SplitterWindow(self,
                                                  -1,
                                                  style=wx.SP_LIVE_UPDATE)
        self.content_splitter.SetMinimumPaneSize(24)
        self.content_splitter.SetSashGravity(0.85)

        # Create viewer pane
        viewer = wx.Panel(self.content_splitter, -1)

        # Create smach viewer
        nb = wx.Notebook(viewer, -1, style=wx.NB_TOP | wx.WANTS_CHARS)
        viewer_box = wx.BoxSizer()
        viewer_box.Add(nb, 1, wx.EXPAND | wx.ALL, 4)
        viewer.SetSizer(viewer_box)

        # Create graph view
        graph_view = wx.Panel(nb, -1)
        gv_vbox = wx.BoxSizer(wx.VERTICAL)
        graph_view.SetSizer(gv_vbox)

        # Construct toolbar
        toolbar = wx.ToolBar(graph_view, -1)

        toolbar.AddControl(wx.StaticText(toolbar, -1, "Path: "))

        # Path list
        self.path_combo = wx.ComboBox(toolbar, -1, style=wx.CB_DROPDOWN)
        self.path_combo.Bind(wx.EVT_COMBOBOX, self.set_path)
        self.path_combo.Append('/')
        self.path_combo.SetValue('/')
        toolbar.AddControl(self.path_combo)

        # Depth spinner
        self.depth_spinner = wx.SpinCtrl(toolbar,
                                         -1,
                                         size=wx.Size(50, -1),
                                         min=-1,
                                         max=1337,
                                         initial=-1)
        self.depth_spinner.Bind(wx.EVT_SPINCTRL, self.set_depth)
        self._max_depth = -1
        toolbar.AddControl(wx.StaticText(toolbar, -1, "    Depth: "))
        toolbar.AddControl(self.depth_spinner)

        # Label width spinner
        self.width_spinner = wx.SpinCtrl(toolbar,
                                         -1,
                                         size=wx.Size(50, -1),
                                         min=1,
                                         max=1337,
                                         initial=40)
        self.width_spinner.Bind(wx.EVT_SPINCTRL, self.set_label_width)
        self._label_wrapper = textwrap.TextWrapper(40, break_long_words=True)
        toolbar.AddControl(wx.StaticText(toolbar, -1, "    Label Width: "))
        toolbar.AddControl(self.width_spinner)

        # Implicit transition display
        toggle_all = wx.ToggleButton(toolbar, -1, 'Show Implicit')
        toggle_all.Bind(wx.EVT_TOGGLEBUTTON, self.toggle_all_transitions)
        self._show_all_transitions = False

        toolbar.AddControl(wx.StaticText(toolbar, -1, "    "))
        toolbar.AddControl(toggle_all)

        toolbar.AddControl(wx.StaticText(toolbar, -1, "    "))
        toolbar.AddLabelTool(
            wx.ID_HELP, 'Help',
            wx.ArtProvider.GetBitmap(wx.ART_HELP, wx.ART_OTHER, (16, 16)))
        toolbar.Realize()

        self.Bind(wx.EVT_TOOL, self.ShowControlsDialog, id=wx.ID_HELP)

        # Create dot graph widget
        self.widget = xdot.wxxdot.WxDotWindow(graph_view, -1)

        gv_vbox.Add(toolbar, 0, wx.EXPAND)
        gv_vbox.Add(self.widget, 1, wx.EXPAND)

        # Create tree view widget
        self.tree = wx.TreeCtrl(nb, -1, style=wx.TR_HAS_BUTTONS)
        nb.AddPage(graph_view, "Graph View")
        nb.AddPage(self.tree, "Tree View")

        # Create userdata widget
        borders = wx.LEFT | wx.RIGHT | wx.TOP
        border = 4
        self.ud_win = wx.ScrolledWindow(self.content_splitter, -1)
        self.ud_gs = wx.BoxSizer(wx.VERTICAL)

        self.ud_gs.Add(wx.StaticText(self.ud_win, -1, "Path:"), 0, borders,
                       border)

        self.path_input = wx.ComboBox(self.ud_win, -1, style=wx.CB_DROPDOWN)
        self.path_input.Bind(wx.EVT_COMBOBOX, self.selection_changed)
        self.ud_gs.Add(self.path_input, 0, wx.EXPAND | borders, border)

        self.ud_gs.Add(wx.StaticText(self.ud_win, -1, "Userdata:"), 0, borders,
                       border)

        self.ud_txt = wx.TextCtrl(self.ud_win,
                                  -1,
                                  style=wx.TE_MULTILINE | wx.TE_READONLY)
        self.ud_gs.Add(self.ud_txt, 1, wx.EXPAND | borders, border)

        # Add initial state button
        self.is_button = wx.Button(self.ud_win, -1, "Set as Initial State")
        self.is_button.Bind(wx.EVT_BUTTON, self.on_set_initial_state)
        self.is_button.Disable()
        self.ud_gs.Add(self.is_button, 0, wx.EXPAND | wx.BOTTOM | borders,
                       border)

        self.ud_win.SetSizer(self.ud_gs)

        # Set content splitter
        self.content_splitter.SplitVertically(viewer, self.ud_win, 512)

        # Add statusbar
        self.statusbar = wx.StatusBar(self, -1)

        # Add elements to sizer
        vbox.Add(self.content_splitter, 1, wx.EXPAND | wx.ALL)
        vbox.Add(self.statusbar, 0, wx.EXPAND)

        self.SetSizer(vbox)
        self.Center()

        # smach introspection client
        self._client = smach_ros.IntrospectionClient()
        self._containers = {}
        self._selected_paths = []

        # Message subscribers
        self._structure_subs = {}
        self._status_subs = {}

        self.Bind(wx.EVT_IDLE, self.OnIdle)
        self.Bind(wx.EVT_CLOSE, self.OnQuit)

        # Register mouse event callback
        self.widget.register_select_callback(self.select_cb)
        self._path = '/'
        self._needs_zoom = True
        self._structure_changed = True

        # Start a thread in the background to update the server list
        self._keep_running = True
        self._server_list_thread = threading.Thread(
            target=self._update_server_list)
        self._server_list_thread.start()

        self._update_graph_thread = threading.Thread(target=self._update_graph)
        self._update_graph_thread.start()
        self._update_tree_thread = threading.Thread(target=self._update_tree)
        self._update_tree_thread.start()
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.notebook_1 = wx.Notebook(self, -1, style=wx.NB_BOTTOM)
        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, -1)
        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, -1)
        self.panel_1 = wx.Panel(self, -1)

        # Menu Bar
        self.menuBar = wx.MenuBar()

        menu = wx.Menu()
        menu.Append(ITEM_BATCH_EXPORT_ID,
                    u"für alle Semestergruppen und Dozenten exportieren", "",
                    wx.ITEM_NORMAL)
        self.menuBar.Append(menu, "Batch")

        menu = wx.Menu()
        menu.Append(ITEM_EUI_ID, "Elektrotechnik und Informatik", "",
                    wx.ITEM_NORMAL)
        menu.Append(ITEM_EUI_LOAD_ID, "            -> direkt einlesen", "",
                    wx.ITEM_NORMAL)
        menu.Append(ITEM_INF_ID, "Informatik", "", wx.ITEM_NORMAL)
        menu.Append(ITEM_INF_LOAD_ID, "            -> direkt einlesen", "",
                    wx.ITEM_NORMAL)
        menu.AppendSeparator()
        menu.Append(ITEM_GOOGLE_CALENDAR_ID, "Google Calendar", "",
                    wx.ITEM_NORMAL)
        menu.AppendSeparator()
        menu.Append(ITEM_RFC5545_ID, "iCalendar rfc5545", "", wx.ITEM_NORMAL)
        self.menuBar.Append(menu, "Links")

        menu = wx.Menu()
        menu.Append(ITEM_HELP_ID, "Anleitung", "", wx.ITEM_NORMAL)
        menu.Append(ITEM_GPL_ID, "GPL", "", wx.ITEM_NORMAL)
        menu.Append(ITEM_ABOUT_ID, "About", "", wx.ITEM_NORMAL)
        self.menuBar.Append(menu, "Hilfe")

        self.SetMenuBar(self.menuBar)

        # frame pane
        self.button_Load = wx.Button(self, BTN_LOAD_ID,
                                     "HAW-Kalender einlesen")
        self.button_Export = wx.Button(
            self, BTN_EXPORT_ID, "Termin-Auswahl als iCalendar exportieren")
        self.infoString = wx.StaticText(
            self.panel_1, TXT_INFO_STRING_ID,
            "      Bitte eine HAW-Kalender Textdatei einlesen                    "
        )
        self.treeCtrl_Stud = wx.TreeCtrl(
            self.notebook_1_pane_1,
            TREE_CTRL_STUD_ID,
            style=wx.TR_HIDE_ROOT | wx.TR_HAS_BUTTONS | wx.TR_NO_LINES
            | wx.TR_DEFAULT_STYLE | wx.SUNKEN_BORDER | wx.TR_MULTIPLE)
        self.treeCtrl_Doz = wx.TreeCtrl(
            self.notebook_1_pane_2,
            TREE_CTRL_DOZ_ID,
            style=wx.TR_HIDE_ROOT | wx.TR_HAS_BUTTONS | wx.TR_NO_LINES
            | wx.TR_DEFAULT_STYLE | wx.SUNKEN_BORDER | wx.TR_MULTIPLE)

        self.__doLayout()
        self.__doFrameBindings()
        self.__doMenuBindings()

        self.menuItem_AlleSemUndDoz = self.menuBar.FindItemById(
            ITEM_BATCH_EXPORT_ID)
        self.menuItem_AlleSemUndDoz.Enable(False)

        self.space = "      "
Beispiel #16
0
	def __init__( self, parent, id = wx.ID_ANY, samba_provider = None ):
		wx.Panel.__init__( self, parent, id, pos = ( -1, -1 ), size = ( -1, -1 ) )

		self.samba_provider = samba_provider
		self.samba_provider.AddMountFinishedObserver( self )
		
		self.valid_selected_samba_item = None
		
		sizer = wx.BoxSizer( wx.HORIZONTAL )
		self.SetSizer( sizer )
		
		self.tree_panel = wx.Panel( self )
		
		self.tree = wx.TreeCtrl( self.tree_panel, wx.ID_ANY, wx.DefaultPosition, (-1,-1), wx.TR_HIDE_ROOT|wx.TR_HAS_BUTTONS|wx.TR_FULL_ROW_HIGHLIGHT|wx.TR_SINGLE )
		self.root = self.tree.AddRoot('Network')
		self._FillTree()
		self.tree.ExpandAll()
		self.tree.Bind( wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged )
		
		self.expand_all_BTN = wx.Button( self.tree_panel, label='Expand all' )
		self.expand_all_BTN.Bind( wx.EVT_BUTTON, self.OnExpandAll )
		self.collapse_all_BTN = wx.Button( self.tree_panel, label='Colapse all' )
		self.collapse_all_BTN.Bind( wx.EVT_BUTTON, self.OnCollapseAll )
		self.refresh_tree_BTN = wx.Button( self.tree_panel, label='Refresh' )
		self.refresh_tree_BTN.Bind( wx.EVT_BUTTON, self.OnRefreshTree )
		
		selectionLabelST = wx.StaticText( self, label = 'Selected:' )
		usernameLabelST = wx.StaticText( self, label = 'username:'******'password:'******'Automount' )
		self.automount_CHK.Bind( wx.EVT_CHECKBOX, self.OnCheckClick )
		
		test_BTN = wx.Button( self, wx.ID_ANY, 'Mount' )
		test_BTN.Bind( wx.EVT_BUTTON, self.OnMount )
		
		#save_BTN = wx.Button( self, wx.ID_ANY, 'Save' )
		#save_BTN.Bind( wx.EVT_BUTTON, self.OnSave )
		
		self.statusST = wx.StaticText( self )
		
		tree_panel_sizer = wx.BoxSizer( wx.VERTICAL )
		self.tree_panel.SetSizer( tree_panel_sizer )
		tree_buttons_sizer = wx.BoxSizer( wx.HORIZONTAL )

		tree_buttons_sizer.Add( self.expand_all_BTN )
		tree_buttons_sizer.Add( self.collapse_all_BTN )
		tree_buttons_sizer.Add( self.refresh_tree_BTN )

		tree_panel_sizer.Add( self.tree, 1, wx.EXPAND | wx.ALL, 5 )
		tree_panel_sizer.Add( tree_buttons_sizer, 0, wx.ALIGN_CENTER | wx.ALL, 5 )
		
		data_sizer = wx.FlexGridSizer( 2, 2 )
		data_sizer.AddMany([
			usernameLabelST, ( self.usernameTC, 1, wx.EXPAND ),
			passwordLabelST, ( self.passwordTC, 1, wx.EXPAND )
		])
		data_sizer.AddGrowableCol(1, 1)
		
		vsizer = wx.BoxSizer( wx.VERTICAL )

		vh_sizer = wx.BoxSizer( wx.HORIZONTAL )		
		vh_sizer.Add( selectionLabelST, 0, wx.ALL, 5 )
		vh_sizer.Add( self.selectedST, 1, wx.ALL, 5 )
		
		vh_sizer2 = wx.BoxSizer( wx.HORIZONTAL )
		vh_sizer2.Add( test_BTN )
		#vh_sizer2.Add( save_BTN )
		
		vsizer.Add( vh_sizer, 1, wx.EXPAND | wx.ALL, 5 )
		vsizer.Add( data_sizer, 0, wx.EXPAND | wx.ALL, 5 )
		vsizer.Add( self.automount_CHK, 0, wx.ALIGN_CENTER | wx.ALL, 5 )
		vsizer.Add( vh_sizer2, 0, wx.ALIGN_CENTER | wx.ALL, 5 )
		vsizer.Add( self.statusST, 0, wx.ALIGN_CENTER | wx.ALL, 5 )

		sizer.Add( self.tree_panel, 2, wx.EXPAND | wx.ALL, 5 )
		sizer.Add( vsizer, 1, wx.ALL, 5 )
Beispiel #17
0
    def _init_ctrls(self, prnt):

        wx.Frame.__init__(self,
                          id=-1,
                          name='',
                          parent=prnt,
                          pos=wx.Point(0, 0),
                          size=wx.Size(1200, 700),
                          style=wx.DEFAULT_FRAME_STYLE,
                          title=u'the maker')

        self.base = "/Users/maker/Documents/workspace/TheMaker"

        try:  # - don't sweat it if it doesn't load
            self.SetIcon(
                wx.Icon(os.path.join(self.base, "system/tags.ico"),
                        wx.BITMAP_TYPE_ICO))
        finally:
            pass

        self._init_utils()

        self.SetMenuBar(self.mainMenuBar)
        self.SetStatusBarPane(0)

        #the other splitter

        #self.splitter2 = MySplitter(self, -1,None)

        #the top splitter

        self.splitter = makerWxGUI.MySplitter(self, -1, None)

        # and the stc is added to it

        # it is very importat to keep the NODRAG style
        #
        # if dragging is added at some point the
        # makerProjectController.py method noteBookPageClosed has to be
        # changed where the noteBoolPages dict is updated
        #

        #        self.noteBook = nb.FlatNotebook(self.splitter, -1, style= wx.lib.flatnotebook.FNB_NODRAG
        #                                        | wx.lib.flatnotebook.FNB_X_ON_TAB)

        self.noteBook = makerWxGUI.MyCustomNoteBook(self.splitter, -1, None,
                                                    None)

        self.noteBook.SetPadding(wx.Size(20))

        # add a welcome message to the noteBook

        self.styledTextCtrl1 = (makerEditorWxView.editorView(self,
                                                             "default")).editor
        self.welcomeId = self.styledTextCtrl1.GetId()
        self.noteBook.AddPage(self.styledTextCtrl1,
                              "Thank you for using The Maker.")
        self.styledTextCtrl1.SetText(self.BoilerPlate)

        #switch off popup

        #self.styledTextCtrl1.Bind(wx.EVT_RIGHT_DOWN, self.OnSTCRightDown)

        #add widgets to the first splitter

        self.listWindow = wx.Panel(self.splitter, -1, style=wx.NO_BORDER)
        #self.listWindow.SetBackgroundColour(wx.RED)

        self.listSizer = wx.BoxSizer(orient=wx.VERTICAL)

        # the listbox is added to the splitter too
        self.tree = wx.TreeCtrl(self.listWindow,
                                -1,
                                style=wx.TR_HAS_BUTTONS
                                | wx.TR_LINES_AT_ROOT
                                | wx.TR_DEFAULT_STYLE)

        def drawAfterPaint(evt):

            Size = self.tree.GetClientSizeTuple()

            dc = wx.ClientDC(self.tree)
            dc.SetPen(self.treePen)
            dc.DrawLine(Size[0] - 1, 0, Size[0] - 1, Size[1])

        def onTreePaint(evt):

            wx.CallAfter(drawAfterPaint, evt)

            evt.Skip()

        self.treePen = wx.Pen('#666666', 1)
        self.tree.Bind(wx.EVT_PAINT, onTreePaint)

        image_size = (16, 16)

        projectArt = wx.Image(
            os.path.join(self.base, "./system/ToolBarIcons/114.png"),
            wx.BITMAP_TYPE_PNG).Scale(16, 16).ConvertToBitmap()

        folderArt = wx.Image(
            os.path.join(self.base, "./system/ToolBarIcons/99.png"),
            wx.BITMAP_TYPE_PNG).Scale(16, 16).ConvertToBitmap()

        folderOpenArt = wx.Image(
            os.path.join(self.base, "./system/ToolBarIcons/107.png"),
            wx.BITMAP_TYPE_PNG).Scale(16, 16).ConvertToBitmap()

        fileArt = wx.Image(
            os.path.join(self.base, "./system/ToolBarIcons/93.png"),
            wx.BITMAP_TYPE_PNG).Scale(16, 16).ConvertToBitmap()

        fileChangeArt = wx.Image(
            os.path.join(self.base, "./system/ToolBarIcons/118.png"),
            wx.BITMAP_TYPE_PNG).Scale(16, 16).ConvertToBitmap()

        partArt = wx.Image(
            os.path.join(self.base, "./system/ToolBarIcons/24-16.png"),
            wx.BITMAP_TYPE_PNG).Scale(16, 16).ConvertToBitmap()

        il = wx.ImageList(image_size[0], image_size[1])
        self.projidx = il.Add(projectArt)
        self.fldridx = il.Add(folderArt)
        self.fldropenidx = il.Add(folderOpenArt)
        self.fileidx = il.Add(fileArt)
        self.filechange = il.Add(fileChangeArt)
        self.part = il.Add(partArt)

        #self.partArt(il, image_size)

        self.tree.SetImageList(il)
        self.il = il

        self.listSizer.Add(self.tree, 1, border=0, flag=wx.EXPAND)

        self.listWindow.SetAutoLayout(True)
        self.listWindow.SetSizer(self.listSizer)
        self.listSizer.Fit(self.listWindow)

        self.splitter.SetMinimumPaneSize(200)
        self.splitter.SplitVertically(self.listWindow, self.noteBook, 180)

        self.toolBar = self.CreateToolBar(style=wx.TB_HORIZONTAL
                                          | wx.NO_BORDER
                                          #| wx.TB_FLAT
                                          | wx.TB_TEXT)

        self.search = wx.SearchCtrl(self.toolBar,
                                    id=-1,
                                    pos=(750, -1),
                                    size=(180, 25),
                                    style=wx.TE_PROCESS_ENTER)

        #extract the searchCtrl's textCtrl
        self.searchStatus = wx.StaticText(self.toolBar,
                                          -1,
                                          size=wx.DefaultSize,
                                          pos=wx.DefaultPosition,
                                          style=0)
        self.searchStatus.SetLabel("                         ")

        saveArt = wx.Bitmap(
            os.path.join(self.base, "./system/ToolBarIcons/23.png"))

        publishArt = wx.Bitmap(
            os.path.join(self.base, "./system/ToolBarIcons/53.png"))
        previewArt = wx.Bitmap(
            os.path.join(self.base, "./system/ToolBarIcons/25.png"))
        makeAllArt = wx.Bitmap(
            os.path.join(self.base, "./system/ToolBarIcons/24.png"))

        self.toolBar.AddSeparator()

        self.toolBar.AddLabelTool(10, "Save", saveArt)
        self.toolBar.AddLabelTool(20, "Publish", publishArt)
        self.toolBar.AddLabelTool(30, "Preview", previewArt)
        self.toolBar.AddLabelTool(40, "Make All", makeAllArt)

        self.toolBar.AddStretchableSpace()

        self.toolBar.AddControl(self.searchStatus)
        self.toolBar.AddControl(self.search)

        self.toolBar.Realize()

        self.statusBar1 = wx.StatusBar(id=-1,
                                       name='statusBar1',
                                       parent=self,
                                       style=wx.ST_SIZEGRIP)

        #self.statusBar1.SetConstraints(LayoutAnchors(self.statusBar1, True,
        #      True, False, False))
        self._init_coll_statusBar1_Fields(self.statusBar1)
        self.SetStatusBar(self.statusBar1)

        self.styledTextCtrl1.Bind(wx.EVT_PAINT, self.OnStyledTextCtrl1Paint)
        self.styledTextCtrl1.Bind(wx.EVT_ERASE_BACKGROUND,
                                  self.OnStyledTextCtrl1EraseBackground)
Beispiel #18
0
    def __init__(self, gui, parent=None, id=None):
        """Set up the tree GUI element.

        @param gui:         The gui object.
        @type gui:          wx object
        @keyword parent:    The parent GUI element that this is to be attached to.
        @type parent:       wx object
        @keyword id:        The ID number.
        @type id:           int
        """

        # Store the args.
        self.gui = gui
        self.parent = parent

        # Execute the base class method.
        wx.Window.__init__(self, parent, id, style=wx.WANTS_CHARS)

        # Some default values.
        self.icon_size = 22

        # The tree.
        self.tree = wx.TreeCtrl(parent=self,
                                id=-1,
                                pos=wx.DefaultPosition,
                                size=wx.DefaultSize,
                                style=wx.TR_DEFAULT_STYLE)

        # A tracking structure for the tree IDs.
        self.tree_ids = {}

        # Resize the tree element.
        self.Bind(wx.EVT_SIZE, self._resize)

        # The tree roots.
        self.root = self.tree.AddRoot("Spin system information")
        if dep_check.wx_classic:
            self.tree.SetPyData(self.root, "root")
        else:
            self.tree.SetItemData(self.root, "root")

        # Build the icon list.
        icon_list = wx.ImageList(self.icon_size, self.icon_size)

        # The normal icons.
        self.icon_mol_index = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.molecule", "22x22"),
                      wx.BITMAP_TYPE_ANY))
        self.icon_mol_unfold_index = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.molecule_unfolded", "22x22"),
                      wx.BITMAP_TYPE_ANY))
        self.icon_res_index = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.residue", "22x22"),
                      wx.BITMAP_TYPE_ANY))
        self.icon_spin_index = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.spin", "22x22"), wx.BITMAP_TYPE_ANY))

        # The deselected icons.
        self.icon_mol_index_desel = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.molecule_grey", "22x22"),
                      wx.BITMAP_TYPE_ANY))
        self.icon_mol_unfold_index_desel = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.molecule_unfolded_grey", "22x22"),
                      wx.BITMAP_TYPE_ANY))
        self.icon_res_index_desel = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.residue_grey", "22x22"),
                      wx.BITMAP_TYPE_ANY))
        self.icon_spin_index_desel = icon_list.Add(
            wx.Bitmap(fetch_icon("relax.spin_grey", "22x22"),
                      wx.BITMAP_TYPE_ANY))

        # Set the icon list.
        self.tree.SetImageList(icon_list)

        # Some weird black magic (this is essential)!!
        self.icon_list = icon_list

        # Populate the tree.
        self.update()

        # Catch mouse events.
        self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self._selection)
        self.tree.Bind(wx.EVT_RIGHT_DOWN, self._right_click)
Beispiel #19
0
    def __init__(self, parent):
        wx.Panel.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          pos=wx.DefaultPosition,
                          size=wx.DefaultSize,
                          style=wx.TAB_TRAVERSAL)
        self.SetBackgroundColour(
            wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW))

        pmainSizer = wx.BoxSizer(wx.HORIZONTAL)

        availableSizer = wx.BoxSizer(wx.VERTICAL)

        self.searchBox = SearchBox(self)
        self.itemView = ItemView(self)

        self.itemView.Hide()

        availableSizer.Add(self.searchBox, 0, wx.EXPAND)
        availableSizer.Add(self.itemView, 1, wx.EXPAND)
        '''
        self.availableImplantsSearch = wx.SearchCtrl(self, wx.ID_ANY, style=wx.TE_PROCESS_ENTER)
        self.availableImplantsSearch.ShowCancelButton(True)

        availableSizer.Add(self.availableImplantsSearch, 0, wx.BOTTOM | wx.EXPAND, 2)
        '''

        self.availableImplantsTree = wx.TreeCtrl(self,
                                                 wx.ID_ANY,
                                                 style=wx.TR_DEFAULT_STYLE
                                                 | wx.TR_HIDE_ROOT)
        root = self.availableRoot = self.availableImplantsTree.AddRoot(
            "Available")
        self.availableImplantsImageList = wx.ImageList(16, 16)
        self.availableImplantsTree.SetImageList(
            self.availableImplantsImageList)

        availableSizer.Add(self.availableImplantsTree, 1, wx.EXPAND)

        pmainSizer.Add(availableSizer, 1, wx.ALL | wx.EXPAND, 5)

        buttonSizer = wx.BoxSizer(wx.VERTICAL)
        buttonSizer.AddSpacer((0, 0), 1)

        self.btnAdd = GenBitmapButton(self,
                                      wx.ID_ADD,
                                      BitmapLoader.getBitmap(
                                          "fit_add_small", "gui"),
                                      style=wx.BORDER_NONE)
        buttonSizer.Add(self.btnAdd, 0)

        self.btnRemove = GenBitmapButton(self,
                                         wx.ID_REMOVE,
                                         BitmapLoader.getBitmap(
                                             "fit_delete_small", "gui"),
                                         style=wx.BORDER_NONE)
        buttonSizer.Add(self.btnRemove, 0)

        buttonSizer.AddSpacer((0, 0), 1)
        pmainSizer.Add(buttonSizer, 0, wx.EXPAND, 0)

        characterImplantSizer = wx.BoxSizer(wx.VERTICAL)
        self.pluggedImplantsTree = AvailableImplantsView(self)
        characterImplantSizer.Add(self.pluggedImplantsTree, 1,
                                  wx.ALL | wx.EXPAND, 5)
        pmainSizer.Add(characterImplantSizer, 1, wx.EXPAND, 5)

        self.SetSizer(pmainSizer)

        # Populate the market tree

        sMkt = service.Market.getInstance()
        for mktGrp in sMkt.getImplantTree():
            iconId = self.addMarketViewImage(sMkt.getIconByMarketGroup(mktGrp))
            childId = self.availableImplantsTree.AppendItem(
                root, mktGrp.name, iconId, data=wx.TreeItemData(mktGrp.ID))
            if sMkt.marketGroupHasTypesCheck(mktGrp) is False:
                self.availableImplantsTree.AppendItem(childId, "dummy")

        self.availableImplantsTree.SortChildren(self.availableRoot)

        #Bind the event to replace dummies by real data
        self.availableImplantsTree.Bind(wx.EVT_TREE_ITEM_EXPANDING,
                                        self.expandLookup)
        self.availableImplantsTree.Bind(wx.EVT_TREE_ITEM_ACTIVATED,
                                        self.itemSelected)

        self.itemView.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.itemSelected)

        #Bind add & remove buttons
        self.btnAdd.Bind(wx.EVT_BUTTON, self.itemSelected)
        self.btnRemove.Bind(wx.EVT_BUTTON, self.removeItem)

        # We update with an empty list first to set the initial size for Layout(), then update later with actual
        # implants for character. This helps with sizing issues.
        self.pluggedImplantsTree.update([])
        self.bindContext()
        self.Layout()

        self.update()
Beispiel #20
0
    def __init__(self,
                 parent,
                 position=wx.DefaultPosition,
                 sz=wx.Size(324, 455),
                 stl=wx.TAB_TRAVERSAL):
        wx.Panel.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          pos=position,
                          size=sz,
                          style=stl)

        bSizer = wx.BoxSizer(wx.VERTICAL)
        self.frame = parent

        self.tb1 = aui.AuiToolBar(self, -1)
        self.tb1.SetAuiManager(self.frame._mgr)
        # tbmp = wx.ArtProvider_GetBitmap(str(ed_glob.ID_UP), wx.ART_MENU, wx.Size(16, 16))
        # gbmp = tbmp.ConvertToImage().ConvertToGreyscale().ConvertToBitmap()
        # self.tb1.AddTool( self.ID_Commit, '', tbmp, gbmp,
        # 	wx.ITEM_NORMAL, _('Commit'), _('Store version locally'), None)
        tbmp = wx.ArtProvider_GetBitmap(str(ed_glob.ID_DECA_PUSH), wx.ART_MENU,
                                        wx.Size(16, 16))
        gbmp = tbmp.ConvertToImage().ConvertToGreyscale().ConvertToBitmap()
        self.tb1.AddTool(self.ID_Push, '', tbmp, gbmp,
                         wx.ITEM_NORMAL, _('Push'),
                         _('Save version to remote repository'), None)
        tbmp = wx.ArtProvider_GetBitmap(str(ed_glob.ID_DECA_PULL), wx.ART_MENU,
                                        wx.Size(16, 16))
        gbmp = tbmp.ConvertToImage().ConvertToGreyscale().ConvertToBitmap()
        self.tb1.AddTool(self.ID_Pull, '', tbmp, gbmp, wx.ITEM_NORMAL,
                         _('Synchronize'), _('Update from remote repository'),
                         None)
        self.tb1.AddStretchSpacer()
        tbmp = wx.ArtProvider_GetBitmap(str(ed_glob.ID_DECA_REPOSITORY),
                                        wx.ART_MENU, wx.Size(16, 16))
        gbmp = tbmp.ConvertToImage().ConvertToGreyscale().ConvertToBitmap()
        self.tb1.AddTool(self.ID_RepoView, '', tbmp, gbmp, wx.ITEM_NORMAL,
                         _('Repository'), _('Explore repository'), None)
        self.tb1.Realize()

        self.FixToolsState()

        bSizer.Add(self.tb1, proportion=0, flag=wx.EXPAND, border=0)

        self.explorer = wx.TreeCtrl(self, wx.ID_ANY, wx.DefaultPosition,
                                    wx.DefaultSize,
                                    wx.TR_DEFAULT_STYLE | wx.NO_BORDER)
        bSizer.Add(self.explorer,
                   proportion=1,
                   flag=wx.ALL | wx.EXPAND,
                   border=0)

        self.SetSizer(bSizer)
        self.Layout()

        self.explorer.Bind(wx.EVT_LEFT_DCLICK, self.OnExplDouble)
        self.explorer.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnExplChaged)

        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_AddEFolder)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_AddEPackage)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_AddECode)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_ERemove)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_OpenECode)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_RunECode)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_ReloadEPackage)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_ImportECode)
        self.Bind(wx.EVT_MENU, self.OnEngineMenu, id=self.ID_ERefresh)

        self.Bind(wx.EVT_MENU, self.OnReportMenu, id=self.ID_AddRFolder)
        self.Bind(wx.EVT_MENU, self.OnReportMenu, id=self.ID_AddRCode)
        self.Bind(wx.EVT_MENU, self.OnReportMenu, id=self.ID_RRemove)
        self.Bind(wx.EVT_MENU, self.OnReportMenu, id=self.ID_RGenerate)

        self.Bind(wx.EVT_MENU, self.OnLayerMenu, id=self.ID_RemoveLayer)
        self.Bind(wx.EVT_MENU, self.OnRefreshWorld, id=self.ID_RefreshWorld)
        self.Bind(wx.EVT_MENU, self.OnRefreshWorld, id=self.ID_RefreshLayers)
        self.Bind(wx.EVT_MENU, self.OnRefreshWorld, id=self.ID_RefreshEngines)
        self.Bind(wx.EVT_MENU, self.OnRefreshWorld, id=self.ID_RefreshReports)

        # self.Bind(wx.EVT_MENU, self.OnCommit, id=self.ID_Commit)
        self.Bind(wx.EVT_MENU, self.OnPush, id=self.ID_Push)
        self.Bind(wx.EVT_MENU, self.OnPull, id=self.ID_Pull)
        self.Bind(wx.EVT_MENU, self.OnRepoView, id=self.ID_RepoView)

        self.Bind(wx.EVT_TREE_ITEM_MENU, self.OnViewMenu)
Beispiel #21
0
    def create_layout(self):
        self.main_grid = wx.BoxSizer(wx.HORIZONTAL)
        style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_TWIST_BUTTONS | wx.TR_NO_LINES
        # style = wx.TR_HAS_BUTTONS | wx.TR_SINGLE | wx.TR_HIDE_ROOT

        image_list = wx.ImageList(16, 16)

        tree_ctrl_id = modules.interface.functions.id_renew('settings.tree',
                                                            update=True)
        self.tree_ctrl = wx.TreeCtrl(self, id=tree_ctrl_id, style=style)
        root_key = get_key('settings', 'tree', 'root')
        root_node = self.tree_ctrl.AddRoot(translate_key(root_key))
        for cat_name, category in self.categories.items():
            item_node = self.get_tree_item(get_key('settings', cat_name),
                                           root_node)
            for module_name, module_settings in category.items():
                if module_name == cat_name:
                    continue
                if '.' in module_name:
                    continue

                config = module_settings.get('config')
                if config.icon:
                    icon = wx.Bitmap(config.icon)
                    self.tree_ctrl_image_dict[
                        module_name] = image_list.GetImageCount()
                    image_list.Add(icon)
                else:
                    self.tree_ctrl_image_dict[module_name] = -1

                module_node = self.get_tree_item(
                    get_key('settings', cat_name, module_name),
                    item_node,
                    name_key=module_name,
                    image=self.tree_ctrl_image_dict[module_name])

                tree_nodes = self._get_panels(config)
                if not tree_nodes:
                    continue
                self.create_nested_tree_item(tree_nodes,
                                             node=module_node,
                                             key=get_key(
                                                 'settings', cat_name,
                                                 module_name))

        if self.show_icons:
            self.tree_ctrl.AssignImageList(image_list)
        self.tree_ctrl.ExpandAll()

        self.Bind(wx.EVT_TREE_SEL_CHANGED,
                  self.on_tree_ctrl_changed,
                  id=tree_ctrl_id)

        self.main_grid.Add(self.tree_ctrl, 7, wx.EXPAND | wx.ALL, 7)

        content_page_id = modules.interface.functions.id_renew(
            MODULE_KEY.join(['settings', 'content']))
        self.content_page = wx.Panel(self, id=content_page_id)
        self.main_grid.Add(self.content_page, 15, wx.EXPAND)

        self.main_grid.Layout()
        self.SetSizer(self.main_grid)
        self.tree_ctrl.SelectItem(self.tree_ctrl.GetFirstChild(root_node)[0])
Beispiel #22
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.SetSize((800, 600))
        self.wildcard = 'CSV文件(*.csv)|*.csv|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*'
        self.filelist = []
        self.dfs = []
        self.window_1 = wx.SplitterWindow(self, wx.ID_ANY)
        self.window_1_pane_1 = wx.Panel(self.window_1, wx.ID_ANY)
        self.tree_ctrl_1 = wx.TreeCtrl(self.window_1_pane_1, wx.ID_ANY)
        # 创建根节点和子节点并展开
        root = self.tree_ctrl_1.AddRoot('项目', image=0)
        self.item1 = self.tree_ctrl_1.AppendItem(root, '训练数据', 0)
        self.tree_ctrl_1.Expand(root)
        self.tree_ctrl_1.SelectItem(root)
        self.window_1_pane_2 = wx.Panel(self.window_1, wx.ID_ANY)
        self.notebook_1 = wx.Notebook(self.window_1_pane_2, wx.ID_ANY)
        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.window_2 = wx.SplitterWindow(self.notebook_1_pane_1, wx.ID_ANY)
        self.window_2_pane_1 = wx.Panel(self.window_2, wx.ID_ANY)
        self.choice_1 = wx.Choice(
            self.window_2_pane_1,
            wx.ID_ANY,
            choices=[u"<\u9009\u62e9\u6570\u636e\u96c6>"])
        self.list_box_1 = wx.ListBox(self.window_2_pane_1,
                                     wx.ID_ANY,
                                     choices=[])
        self.notebook_2 = wx.Notebook(self.window_2_pane_1, wx.ID_ANY)
        self.notebook_2_pane_1 = wx.Panel(self.notebook_2, wx.ID_ANY)
        self.checkbox_1 = wx.CheckBox(self.notebook_2_pane_1, wx.ID_ANY,
                                      u"\u65e5\u671f\u548c\u65f6\u95f4")
        self.checkbox_2 = wx.CheckBox(self.notebook_2_pane_1, wx.ID_ANY,
                                      u"\u6807\u51c6\u5316\u6570\u636e")
        self.checkbox_3 = wx.CheckBox(self.notebook_2_pane_1, wx.ID_ANY,
                                      u"\u663e\u793a\u62a5\u8b66\u7ebf")
        self.choice_2 = wx.Choice(
            self.notebook_2_pane_1,
            wx.ID_ANY,
            choices=[u"\u663e\u793a", u"\u6807\u8bb0", u"\u9690\u85cf"])
        self.choice_3 = wx.Choice(
            self.notebook_2_pane_1,
            wx.ID_ANY,
            choices=[u"\u663e\u793a", u"\u6807\u8bb0", u"\u9690\u85cf"])
        self.notebook_2_ = wx.Panel(self.notebook_2, wx.ID_ANY)
        self.checkbox_4 = wx.CheckBox(
            self.notebook_2_, wx.ID_ANY,
            u"\u9009\u62e9\u6570\u636e\u70b9\u8fdb\u884c\u7f16\u8f91")
        self.button_1 = wx.Button(self.notebook_2_, wx.ID_ANY, u"\u5305\u542b")
        self.button_2 = wx.Button(self.notebook_2_, wx.ID_ANY, u"\u6392\u9664")
        self.button_3 = wx.Button(self.notebook_2_, wx.ID_ANY, u"\u5220\u9664")
        self.window_2_pane_2 = wx.Panel(self.window_2, wx.ID_ANY)
        self.window_3 = matplotlib_canvas.MatplotlibCanvas(
            self.window_2_pane_2, wx.ID_ANY)
        self.notebook_1_ = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.window_4 = wx.SplitterWindow(self.notebook_1_, wx.ID_ANY)
        self.window_4_pane_1 = wx.Panel(self.window_4, wx.ID_ANY)
        self.check_list_box_1 = wx.CheckListBox(self.window_4_pane_1,
                                                wx.ID_ANY,
                                                choices=[])
        self.list_box_2 = wx.ListBox(self.window_4_pane_1,
                                     wx.ID_ANY,
                                     choices=[])
        self.list_box_3 = wx.ListBox(self.window_4_pane_1,
                                     wx.ID_ANY,
                                     choices=[])
        self.checkbox_5 = wx.CheckBox(self.window_4_pane_1, wx.ID_ANY,
                                      u"\u663e\u793a\u9884\u89c8")
        self.choice_4 = wx.Choice(
            self.window_4_pane_1,
            wx.ID_ANY,
            choices=[u"\u663e\u793a", u"\u6807\u8bb0", u"\u9690\u85cf"])
        self.choice_5 = wx.Choice(
            self.window_4_pane_1,
            wx.ID_ANY,
            choices=[u"\u663e\u793a", u"\u6807\u8bb0", u"\u9690\u85cf"])
        self.button_4 = wx.Button(self.window_4_pane_1, wx.ID_ANY,
                                  u"\u9884\u89c8")
        self.button_5 = wx.Button(self.window_4_pane_1, wx.ID_ANY,
                                  u"\u6bd4\u8f83")
        self.button_6 = wx.Button(self.window_4_pane_1, wx.ID_ANY,
                                  u"\u5305\u542b")
        self.button_7 = wx.Button(self.window_4_pane_1, wx.ID_ANY,
                                  u"\u6bd4\u8f83")
        self.button_8 = wx.Button(self.window_4_pane_1, wx.ID_ANY,
                                  u"\u5220\u9664")
        self.window_4_pane_2 = wx.Panel(self.window_4, wx.ID_ANY)
        self.window_5 = matplotlib_canvas.MatplotlibCanvas(
            self.window_4_pane_2, wx.ID_ANY)
        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.choice_6 = wx.Choice(
            self.notebook_1_pane_2,
            wx.ID_ANY,
            choices=[u"\u4e2d\u534e", u"\u7ea2\u53cc\u559c", u"\u5229\u7fa4"])
        self.grid_1 = wx.grid.Grid(self.notebook_1_pane_2,
                                   wx.ID_ANY,
                                   size=(1, 1))
        self.notebook_1_pane_3 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.grid_2 = wx.grid.Grid(self.notebook_1_pane_3,
                                   wx.ID_ANY,
                                   size=(1, 1))
        self.notebook_1_pane_4 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.window_6 = wx.SplitterWindow(self.notebook_1_pane_4, wx.ID_ANY)
        self.window_6_pane_1 = wx.Panel(self.window_6, wx.ID_ANY)
        self.choice_7 = wx.Choice(
            self.window_6_pane_1,
            wx.ID_ANY,
            choices=[u"<\u9009\u62e9\u6570\u636e\u96c6>"])
        self.list_box_4 = wx.ListBox(self.window_6_pane_1,
                                     wx.ID_ANY,
                                     choices=[])
        self.window_6_pane_2 = wx.Panel(self.window_6, wx.ID_ANY)
        self.window_7 = matplotlib_canvas.MatplotlibCanvas(
            self.window_6_pane_2, wx.ID_ANY)
        self.notebook_1_pane_5 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.list_box_5 = wx.ListBox(self.notebook_1_pane_5,
                                     wx.ID_ANY,
                                     choices=[])
        self.spin_ctrl_1 = wx.SpinCtrl(self.notebook_1_pane_5,
                                       wx.ID_ANY,
                                       "0",
                                       min=0,
                                       max=100)
        self.spin_ctrl_2 = wx.SpinCtrl(self.notebook_1_pane_5,
                                       wx.ID_ANY,
                                       "0",
                                       min=0,
                                       max=100)
        self.spin_ctrl_3 = wx.SpinCtrl(self.notebook_1_pane_5,
                                       wx.ID_ANY,
                                       "0",
                                       min=0,
                                       max=100)
        self.spin_ctrl_4 = wx.SpinCtrl(self.notebook_1_pane_5,
                                       wx.ID_ANY,
                                       "0",
                                       min=0,
                                       max=100)
        self.spin_ctrl_5 = wx.SpinCtrl(self.notebook_1_pane_5,
                                       wx.ID_ANY,
                                       "0",
                                       min=0,
                                       max=100)
        self.button_9 = wx.Button(self.notebook_1_pane_5, wx.ID_ANY,
                                  u"\u4fdd\u5b58")
        self.button_10 = wx.Button(self.notebook_1_pane_5, wx.ID_ANY,
                                   u"\u53d6\u6d88")

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.EVT_TREE_SEL_CHANGED, self.openfile, self.tree_ctrl_1)
        self.Bind(wx.EVT_CHOICE, self.onchoice1, self.choice_1)
        self.Bind(wx.EVT_LISTBOX, self.onlistbox1, self.list_box_1)
        self.Bind(wx.EVT_CHECKLISTBOX, self.onchecklistbox1,
                  self.check_list_box_1)
        self.Bind(wx.EVT_LISTBOX, self.onlistbox2, self.list_box_2)
        self.Bind(wx.EVT_LISTBOX, self.onlistbox3, self.list_box_3)
        self.Bind(wx.EVT_CHOICE, self.onchoice7, self.choice_7)
        self.Bind(wx.EVT_LISTBOX, self.onlistbox4, self.list_box_4)
        self.Bind(wx.EVT_LISTBOX, self.onlistbox5, self.list_box_5)
    def __init__(self, *args, **kwds):
        # begin wxGlade: All_Widgets_Frame.__init__
        kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.SetSize((800, 417))

        # Menu Bar
        self.All_Widgets_menubar = wx.MenuBar()
        global mn_IDUnix
        mn_IDUnix = wx.NewId()
        global mn_IDWindows
        mn_IDWindows = wx.NewId()
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.ID_OPEN, _("&Open"),
                                _("Open an existing document"))
        wxglade_tmp_menu.Append(wx.ID_CLOSE, _("&Close file"),
                                _("Close current document"))
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(wx.ID_EXIT, _("E&xit"), _("Finish program"))
        self.All_Widgets_menubar.Append(wxglade_tmp_menu, _("&File"))
        wxglade_tmp_menu = wx.Menu()
        self.All_Widgets_menubar.mn_Unix = wxglade_tmp_menu.Append(
            mn_IDUnix, _("Unix"), _("Use Unix line endings"), wx.ITEM_RADIO)
        self.Bind(wx.EVT_MENU, self.onSelectUnix, id=mn_IDUnix)
        self.All_Widgets_menubar.mn_Windows = wxglade_tmp_menu.Append(
            mn_IDWindows, _("Windows"), _("Use Windows line endings"),
            wx.ITEM_RADIO)
        self.Bind(wx.EVT_MENU, self.onSelectWindows, id=mn_IDWindows)
        wxglade_tmp_menu.AppendSeparator()
        self.All_Widgets_menubar.mn_RemoveTabs = wxglade_tmp_menu.Append(
            wx.ID_ANY, _("Remove Tabs"), _("Remove all leading tabs"),
            wx.ITEM_CHECK)
        self.Bind(wx.EVT_MENU,
                  self.onRemoveTabs,
                  id=self.All_Widgets_menubar.mn_RemoveTabs.GetId())
        self.All_Widgets_menubar.Append(wxglade_tmp_menu, _("&Edit"))
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.ID_HELP, _("Manual"),
                                _("Show the application manual"))
        self.Bind(wx.EVT_MENU, self.onShowManual, id=wx.ID_HELP)
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(wx.ID_ABOUT, _("About"),
                                _("Show the About dialog"))
        self.All_Widgets_menubar.Append(wxglade_tmp_menu, _("&Help"))
        self.SetMenuBar(self.All_Widgets_menubar)
        # Menu Bar end
        self.All_Widgets_statusbar = self.CreateStatusBar(1, wx.ST_SIZEGRIP)

        # Tool Bar
        self.All_Widgets_toolbar = wx.ToolBar(self, -1)
        self.SetToolBar(self.All_Widgets_toolbar)
        self.All_Widgets_toolbar.AddLabelTool(
            wx.ID_UP, _("UpDown"),
            wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_OTHER, (32, 32)),
            wx.ArtProvider.GetBitmap(wx.ART_GO_DOWN, wx.ART_OTHER, (32, 32)),
            wx.ITEM_CHECK, _("Up or Down"), _("Up or Down"))
        self.All_Widgets_toolbar.AddLabelTool(wx.ID_OPEN, _("Open"),
                                              wx.EmptyBitmap(32, 32),
                                              wx.NullBitmap, wx.ITEM_NORMAL,
                                              _("Open a new file"),
                                              _("Open a new file"))
        # Tool Bar end
        self.notebook_1 = wx.Notebook(self, wx.ID_ANY, style=wx.NB_BOTTOM)
        self.notebook_1_wxBitmapButton = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.bitmap_button_icon1 = wx.BitmapButton(
            self.notebook_1_wxBitmapButton, wx.ID_ANY,
            wx.Bitmap("icon.xpm", wx.BITMAP_TYPE_ANY))
        self.bitmap_button_empty1 = wx.BitmapButton(
            self.notebook_1_wxBitmapButton, wx.ID_ANY, wx.EmptyBitmap(10, 10))
        self.bitmap_button_icon2 = wx.BitmapButton(
            self.notebook_1_wxBitmapButton,
            wx.ID_ANY,
            wx.Bitmap("icon.xpm", wx.BITMAP_TYPE_ANY),
            style=wx.BORDER_NONE | wx.BU_BOTTOM)
        self.bitmap_button_art = wx.BitmapButton(
            self.notebook_1_wxBitmapButton,
            wx.ID_ANY,
            wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_OTHER, (32, 32)),
            style=wx.BORDER_NONE | wx.BU_BOTTOM)
        self.notebook_1_wxButton = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.button_3 = wx.Button(self.notebook_1_wxButton, wx.ID_BOLD, "")
        self.notebook_1_wxCalendarCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.calendar_ctrl_1 = wx.calendar.CalendarCtrl(
            self.notebook_1_wxCalendarCtrl,
            wx.ID_ANY,
            style=wx.calendar.CAL_MONDAY_FIRST
            | wx.calendar.CAL_SEQUENTIAL_MONTH_SELECTION
            | wx.calendar.CAL_SHOW_SURROUNDING_WEEKS)
        self.notebook_1_wxCheckBox = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.checkbox_1 = wx.CheckBox(self.notebook_1_wxCheckBox, wx.ID_ANY,
                                      _("one (unchecked)"))
        self.checkbox_2 = wx.CheckBox(self.notebook_1_wxCheckBox, wx.ID_ANY,
                                      _("two (checked)"))
        self.checkbox_3 = wx.CheckBox(self.notebook_1_wxCheckBox,
                                      wx.ID_ANY,
                                      _("three"),
                                      style=wx.CHK_2STATE)
        self.checkbox_4 = wx.CheckBox(self.notebook_1_wxCheckBox,
                                      wx.ID_ANY,
                                      _("four (unchecked)"),
                                      style=wx.CHK_3STATE)
        self.checkbox_5 = wx.CheckBox(self.notebook_1_wxCheckBox,
                                      wx.ID_ANY,
                                      _("five (checked)"),
                                      style=wx.CHK_3STATE
                                      | wx.CHK_ALLOW_3RD_STATE_FOR_USER)
        self.checkbox_6 = wx.CheckBox(self.notebook_1_wxCheckBox,
                                      wx.ID_ANY,
                                      _("six (undetermined)"),
                                      style=wx.CHK_3STATE
                                      | wx.CHK_ALLOW_3RD_STATE_FOR_USER)
        self.notebook_1_wxCheckListBox = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.check_list_box_1 = wx.CheckListBox(
            self.notebook_1_wxCheckListBox,
            wx.ID_ANY,
            choices=[_("one"), _("two"),
                     _("three"), _("four")])
        self.notebook_1_wxChoice = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.choice_empty = wx.Choice(self.notebook_1_wxChoice,
                                      wx.ID_ANY,
                                      choices=[])
        self.choice_filled = wx.Choice(
            self.notebook_1_wxChoice,
            wx.ID_ANY,
            choices=[_("Item 1"), _("Item 2 (pre-selected)")])
        self.notebook_1_wxComboBox = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.combo_box_empty = wx.ComboBox(self.notebook_1_wxComboBox,
                                           wx.ID_ANY,
                                           choices=[],
                                           style=0)
        self.combo_box_filled = wx.ComboBox(
            self.notebook_1_wxComboBox,
            wx.ID_ANY,
            choices=[_("Item 1 (pre-selected)"),
                     _("Item 2")],
            style=0)
        self.notebook_1_wxDatePickerCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.datepicker_ctrl_1 = wx.DatePickerCtrl(
            self.notebook_1_wxDatePickerCtrl,
            wx.ID_ANY,
            style=wx.DP_SHOWCENTURY)
        self.notebook_1_wxGauge = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.gauge_1 = wx.Gauge(self.notebook_1_wxGauge, wx.ID_ANY, 20)
        self.notebook_1_wxGrid = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.grid_1 = wx.grid.Grid(self.notebook_1_wxGrid,
                                   wx.ID_ANY,
                                   size=(1, 1))
        self.notebook_1_wxHyperlinkCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.hyperlink_1 = wx.HyperlinkCtrl(self.notebook_1_wxHyperlinkCtrl,
                                            wx.ID_ANY, _("Homepage wxGlade"),
                                            _("http://wxglade.sf.net"))
        self.notebook_1_wxListBox = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.list_box_empty = wx.ListBox(self.notebook_1_wxListBox,
                                         wx.ID_ANY,
                                         choices=[],
                                         style=0)
        self.list_box_filled = wx.ListBox(
            self.notebook_1_wxListBox,
            wx.ID_ANY,
            choices=[_("Item 1"), _("Item 2 (pre-selected)")],
            style=wx.LB_MULTIPLE | wx.LB_SORT)
        self.notebook_1_wxListCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.list_ctrl_1 = wx.ListCtrl(self.notebook_1_wxListCtrl,
                                       wx.ID_ANY,
                                       style=wx.BORDER_SUNKEN | wx.LC_REPORT)
        self.notebook_1_wxRadioBox = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.radio_box_empty1 = wx.RadioBox(self.notebook_1_wxRadioBox,
                                            wx.ID_ANY,
                                            _("radio_box_empty1"),
                                            choices=[""],
                                            majorDimension=1,
                                            style=wx.RA_SPECIFY_ROWS)
        self.radio_box_filled1 = wx.RadioBox(self.notebook_1_wxRadioBox,
                                             wx.ID_ANY,
                                             _("radio_box_filled1"),
                                             choices=[
                                                 _("choice 1"),
                                                 _("choice 2 (pre-selected)"),
                                                 _("choice 3")
                                             ],
                                             majorDimension=0,
                                             style=wx.RA_SPECIFY_ROWS)
        self.radio_box_empty2 = wx.RadioBox(self.notebook_1_wxRadioBox,
                                            wx.ID_ANY,
                                            _("radio_box_empty2"),
                                            choices=[""],
                                            majorDimension=1,
                                            style=wx.RA_SPECIFY_COLS)
        self.radio_box_filled2 = wx.RadioBox(
            self.notebook_1_wxRadioBox,
            wx.ID_ANY,
            _("radio_box_filled2"),
            choices=[_("choice 1"),
                     _("choice 2 (pre-selected)")],
            majorDimension=0,
            style=wx.RA_SPECIFY_COLS)
        self.notebook_1_wxRadioButton = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.radio_btn_1 = wx.RadioButton(self.notebook_1_wxRadioButton,
                                          wx.ID_ANY,
                                          _("Alice"),
                                          style=wx.RB_GROUP)
        self.text_ctrl_1 = wx.TextCtrl(self.notebook_1_wxRadioButton,
                                       wx.ID_ANY, "")
        self.radio_btn_2 = wx.RadioButton(self.notebook_1_wxRadioButton,
                                          wx.ID_ANY, _("Bob"))
        self.text_ctrl_2 = wx.TextCtrl(self.notebook_1_wxRadioButton,
                                       wx.ID_ANY, "")
        self.radio_btn_3 = wx.RadioButton(self.notebook_1_wxRadioButton,
                                          wx.ID_ANY, _("Malroy"))
        self.text_ctrl_3 = wx.TextCtrl(self.notebook_1_wxRadioButton,
                                       wx.ID_ANY, "")
        self.notebook_1_wxSlider = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.slider_1 = wx.Slider(self.notebook_1_wxSlider,
                                  wx.ID_ANY,
                                  5,
                                  0,
                                  10,
                                  style=0)
        self.notebook_1_wxSpinButton = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.tc_spin_button = wx.TextCtrl(self.notebook_1_wxSpinButton,
                                          wx.ID_ANY,
                                          _("1"),
                                          style=wx.TE_RIGHT)
        self.spin_button = wx.SpinButton(self.notebook_1_wxSpinButton,
                                         wx.ID_ANY)
        self.notebook_1_wxSpinCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.spin_ctrl_1 = wx.SpinCtrl(self.notebook_1_wxSpinCtrl,
                                       wx.ID_ANY,
                                       "4",
                                       min=0,
                                       max=100)
        self.notebook_1_wxSplitterWindow_horizontal = wx.ScrolledWindow(
            self.notebook_1, wx.ID_ANY, style=wx.TAB_TRAVERSAL)
        self.splitter_1 = wx.SplitterWindow(
            self.notebook_1_wxSplitterWindow_horizontal, wx.ID_ANY, style=0)
        self.splitter_1_pane_1 = wx.Panel(self.splitter_1, wx.ID_ANY)
        self.label_top_pane = wx.StaticText(self.splitter_1_pane_1, wx.ID_ANY,
                                            _("top pane"))
        self.splitter_1_pane_2 = wx.Panel(self.splitter_1, wx.ID_ANY)
        self.label_buttom_pane = wx.StaticText(self.splitter_1_pane_2,
                                               wx.ID_ANY, _("bottom pane"))
        self.notebook_1_wxSplitterWindow_vertical = wx.ScrolledWindow(
            self.notebook_1, wx.ID_ANY, style=wx.TAB_TRAVERSAL)
        self.splitter_2 = wx.SplitterWindow(
            self.notebook_1_wxSplitterWindow_vertical, wx.ID_ANY, style=0)
        self.splitter_2_pane_1 = wx.Panel(self.splitter_2, wx.ID_ANY)
        self.label_left_pane = wx.StaticText(self.splitter_2_pane_1, wx.ID_ANY,
                                             _("left pane"))
        self.splitter_2_pane_2 = wx.Panel(self.splitter_2, wx.ID_ANY)
        self.label_right_pane = wx.StaticText(self.splitter_2_pane_2,
                                              wx.ID_ANY, _("right pane"))
        self.notebook_1_wxStaticBitmap = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.bitmap_empty = wx.StaticBitmap(self.notebook_1_wxStaticBitmap,
                                            wx.ID_ANY, wx.EmptyBitmap(32, 32))
        self.bitmap_file = wx.StaticBitmap(
            self.notebook_1_wxStaticBitmap, wx.ID_ANY,
            wx.Bitmap("icon.xpm", wx.BITMAP_TYPE_ANY))
        self.bitmap_nofile = wx.StaticBitmap(
            self.notebook_1_wxStaticBitmap, wx.ID_ANY,
            wx.Bitmap("non-existing.bmp", wx.BITMAP_TYPE_ANY))
        self.bitmap_art = wx.StaticBitmap(
            self.notebook_1_wxStaticBitmap, wx.ID_ANY,
            wx.ArtProvider.GetBitmap(wx.ART_PRINT, wx.ART_OTHER, (32, 32)))
        self.notebook_1_wxStaticLine = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.static_line_2 = wx.StaticLine(self.notebook_1_wxStaticLine,
                                           wx.ID_ANY,
                                           style=wx.LI_VERTICAL)
        self.static_line_3 = wx.StaticLine(self.notebook_1_wxStaticLine,
                                           wx.ID_ANY,
                                           style=wx.LI_VERTICAL)
        self.static_line_4 = wx.StaticLine(self.notebook_1_wxStaticLine,
                                           wx.ID_ANY)
        self.static_line_5 = wx.StaticLine(self.notebook_1_wxStaticLine,
                                           wx.ID_ANY)
        self.notebook_1_wxStaticText = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.label_1 = wx.StaticText(self.notebook_1_wxStaticText,
                                     wx.ID_ANY,
                                     _("red text (RGB)"),
                                     style=wx.ALIGN_CENTER)
        self.label_4 = wx.StaticText(self.notebook_1_wxStaticText,
                                     wx.ID_ANY,
                                     _("black on red (RGB)"),
                                     style=wx.ALIGN_CENTER)
        self.label_5 = wx.StaticText(self.notebook_1_wxStaticText,
                                     wx.ID_ANY,
                                     _("green on pink (RGB)"),
                                     style=wx.ALIGN_CENTER)
        self.notebook_1_Spacer = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.label_3 = wx.StaticText(self.notebook_1_Spacer, wx.ID_ANY,
                                     _("Two labels with a"))
        self.label_2 = wx.StaticText(self.notebook_1_Spacer, wx.ID_ANY,
                                     _("spacer between"))
        self.notebook_1_wxTextCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.text_ctrl = wx.TextCtrl(self.notebook_1_wxTextCtrl,
                                     wx.ID_ANY,
                                     _("This\nis\na\nmultiline\nwxTextCtrl"),
                                     style=wx.TE_CHARWRAP | wx.TE_MULTILINE
                                     | wx.TE_WORDWRAP)
        self.notebook_1_wxToggleButton = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.button_2 = wx.ToggleButton(self.notebook_1_wxToggleButton,
                                        wx.ID_ANY, _("Toggle Button 1"))
        self.button_4 = wx.ToggleButton(self.notebook_1_wxToggleButton,
                                        wx.ID_ANY,
                                        _("Toggle Button 2"),
                                        style=wx.BU_BOTTOM | wx.BU_EXACTFIT)
        self.notebook_1_wxTreeCtrl = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.tree_ctrl_1 = wx.TreeCtrl(self.notebook_1_wxTreeCtrl,
                                       wx.ID_ANY,
                                       style=0)
        self.static_line_1 = wx.StaticLine(self, wx.ID_ANY)
        self.button_5 = wx.Button(self, wx.ID_CLOSE, "")
        self.button_1 = wx.Button(self, wx.ID_OK, "", style=wx.BU_TOP)

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnNotebookPageChanged,
                  self.notebook_1)
        self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnNotebookPageChanging,
                  self.notebook_1)
        self.Bind(wx.EVT_BUTTON, self.onStartConverting, self.button_1)
Beispiel #24
0
    def __init__(self,
                 parent=None,
                 id=wx.ID_ANY,
                 title="SwitchHost!",
                 pos=wx.DefaultPosition,
                 size=wx.DefaultSize,
                 style=wx.DEFAULT_FRAME_STYLE,
                 cls_TaskBarIcon=None):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)

        self.SetIcon(co.GetMondrianIcon())
        self.taskbar_icon = cls_TaskBarIcon(self)
        #        self.Bind(wx.EVT_CLOSE, self.OnClose)
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        self.m_menubar1 = wx.MenuBar(0)
        self.m_menu1 = wx.Menu()
        self.m_menuItem_new = wx.MenuItem(self.m_menu1, wx.ID_NEW, u"新建(&N)",
                                          wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu1.AppendItem(self.m_menuItem_new)
        self.m_menu1.AppendSeparator()
        self.m_menuItem_exit = wx.MenuItem(self.m_menu1, wx.ID_EXIT, u"退出(&X)",
                                           wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu1.AppendItem(self.m_menuItem_exit)

        self.m_menubar1.Append(self.m_menu1, u"文件(&F)")

        self.m_menu2 = wx.Menu()
        self.m_menuItem_about = wx.MenuItem(self.m_menu2, wx.ID_ABOUT,
                                            u"关于(&A)", wx.EmptyString,
                                            wx.ITEM_NORMAL)
        self.m_menu2.AppendItem(self.m_menuItem_about)

        self.m_menubar1.Append(self.m_menu2, u"帮助(&H)")

        self.SetMenuBar(self.m_menubar1)

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        self.m_panel1 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer4 = wx.BoxSizer(wx.HORIZONTAL)

        bSizer5 = wx.BoxSizer(wx.VERTICAL)

        self.m_list = wx.ListCtrl(self.m_panel1, wx.ID_ANY, wx.DefaultPosition,
                                  wx.Size(160, 320), wx.LC_REPORT)
        self.m_list.Hide()
        bSizer5.Add(self.m_list, 0, wx.ALL | wx.EXPAND, 5)

        self.m_tree = wx.TreeCtrl(self.m_panel1, wx.ID_ANY, wx.DefaultPosition,
                                  wx.Size(160, 320))
        self.tree_root = self.m_tree.AddRoot(u"hosts")
        self.tree_local = self.m_tree.AppendItem(self.tree_root, u"本地方案")
        self.tree_online = self.m_tree.AppendItem(self.tree_root, u"在线方案")
        self.m_tree.ExpandAll()
        bSizer5.Add(self.m_tree, 0, wx.ALL | wx.EXPAND, 5)

        bSizer61 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_btn_add = buttons.GenBitmapTextButton(
            self.m_panel1, wx.ID_ADD, co.GetMondrianBitmap(fn="add"), u"添加")
        bSizer61.Add(self.m_btn_add, 0, wx.ALL, 5)

        self.m_btn_del = buttons.GenBitmapTextButton(
            self.m_panel1, wx.ID_DELETE, co.GetMondrianBitmap(fn="delete"),
            u"删除")
        bSizer61.Add(self.m_btn_del, 0, wx.ALL, 5)

        bSizer5.Add(bSizer61, 1, wx.EXPAND, 5)

        bSizer4.Add(bSizer5, 0, wx.EXPAND, 5)

        bSizer6 = wx.BoxSizer(wx.VERTICAL)

        self.m_textCtrl_content = wx.TextCtrl(
            self.m_panel1, self.ID_HOSTS_TEXT, wx.EmptyString,
            wx.DefaultPosition, wx.DefaultSize,
            wx.TE_MULTILINE | wx.TE_RICH2 | wx.TE_PROCESS_TAB | wx.HSCROLL)
        self.m_textCtrl_content.SetMaxLength(0)
        bSizer6.Add(self.m_textCtrl_content, 1, wx.ALL | wx.EXPAND, 5)

        bSizer7 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_panel3 = wx.Panel(self.m_panel1, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer71 = wx.BoxSizer(wx.HORIZONTAL)

        #        self.m_btn_save = buttons.GenBitmapTextButton(self.m_panel3, wx.ID_SAVE, co.GetMondrianBitmap(fn="disk"), u"保存")
        #        bSizer71.Add(self.m_btn_save, 0, wx.ALL, 0)

        self.m_panel3.SetSizer(bSizer71)
        self.m_panel3.Layout()
        bSizer71.Fit(self.m_panel3)
        bSizer7.Add(self.m_panel3, 1, wx.EXPAND | wx.ALL, 5)

        self.m_btn_apply = buttons.GenBitmapTextButton(
            self.m_panel1, wx.ID_APPLY, co.GetMondrianBitmap(fn="accept"),
            u"应用")
        #        self.m_btn_apply = wx.Button(self.m_panel1, wx.ID_APPLY, u"应用", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer7.Add(self.m_btn_apply, 0, wx.ALL, 5)

        if cls_TaskBarIcon and os.name == "nt":
            # ubuntu 10.04 下点击这个图标时会报错,图标的菜单无法正常工作
            # ubuntu 11.04 下这个图标总是无法显示
            # 由于跨平台问题,暂时决定只在 windows 下显示快捷的任务栏图标
            # 参见:http://stackoverflow.com/questions/7144756/wx-taskbaricon-on-ubuntu-11-04
            self.m_btn_exit = buttons.GenBitmapTextButton(
                self.m_panel1, wx.ID_CLOSE, co.GetMondrianBitmap(fn="door"),
                u"隐藏")
            #            self.m_btn_exit = wx.Button(self.m_panel1, wx.ID_CLOSE, u"隐藏", wx.DefaultPosition, wx.DefaultSize, 0)
            bSizer7.Add(self.m_btn_exit, 0, wx.ALL, 5)

        bSizer6.Add(bSizer7, 0, wx.EXPAND, 5)

        bSizer4.Add(bSizer6, 1, wx.EXPAND, 5)

        self.m_panel1.SetSizer(bSizer4)
        self.m_panel1.Layout()
        bSizer4.Fit(self.m_panel1)
        bSizer1.Add(self.m_panel1, 1, wx.EXPAND | wx.ALL, 0)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

        self.font_bold = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
        self.font_bold.SetWeight(wx.BOLD)
        self.font_normal = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
        self.font_normal.SetWeight(wx.NORMAL)

        self.font_mono = wx.Font(10,
                                 wx.ROMAN,
                                 wx.NORMAL,
                                 wx.NORMAL,
                                 faceName="Courier New")
Beispiel #25
0
    def __init__(self,
                 parent,
                 id=wx.ID_ANY,
                 pos=wx.DefaultPosition,
                 size=wx.Size(900, 600),
                 style=wx.TAB_TRAVERSAL,
                 name=wx.EmptyString):
        wx.Panel.__init__(self,
                          parent,
                          id=id,
                          pos=pos,
                          size=size,
                          style=style,
                          name=name)

        fs_layout = wx.BoxSizer(wx.VERTICAL)

        self.fs_split_ft_fp = wx.SplitterWindow(self, wx.ID_ANY,
                                                wx.DefaultPosition,
                                                wx.DefaultSize,
                                                wx.SP_3D | wx.SP_LIVE_UPDATE)
        self.fs_split_ft_fp.Bind(wx.EVT_IDLE, self.fs_split_ft_fpOnIdle)

        self.fs_filetree = wx.Panel(self.fs_split_ft_fp, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        ft_layout = wx.BoxSizer(wx.VERTICAL)

        self.ft_filetree = wx.TreeCtrl(
            self.fs_filetree, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize,
            wx.TR_DEFAULT_STYLE | wx.TR_EDIT_LABELS | wx.TR_FULL_ROW_HIGHLIGHT
            | wx.TR_HIDE_ROOT | wx.TR_NO_LINES | wx.TR_TWIST_BUTTONS)
        self.ft_filetree.SetFont(
            wx.Font(wx.NORMAL_FONT.GetPointSize(), wx.FONTFAMILY_DEFAULT,
                    wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False,
                    wx.EmptyString))

        ft_layout.Add(self.ft_filetree, 1, wx.EXPAND, 5)

        self.fs_filetree.SetSizer(ft_layout)
        self.fs_filetree.Layout()
        ft_layout.Fit(self.fs_filetree)
        self.fs_filepreview = wx.Panel(self.fs_split_ft_fp, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize,
                                       wx.TAB_TRAVERSAL)
        fp_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_formats_book = wx.Simplebook(self.fs_filepreview, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.fp_empty = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        self.fp_formats_book.AddPage(self.fp_empty, u"a page", True)
        self.fp_text = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                                wx.DefaultPosition, wx.DefaultSize,
                                wx.TAB_TRAVERSAL)
        fp_text_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_text_edit = wx.TextCtrl(self.fp_text, wx.ID_ANY,
                                        u"Hello World!", wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_MULTILINE)
        fp_text_layout.Add(self.fp_text_edit, 1, wx.EXPAND, 5)

        self.fp_text.SetSizer(fp_text_layout)
        self.fp_text.Layout()
        fp_text_layout.Fit(self.fp_text)
        self.fp_formats_book.AddPage(self.fp_text, u"a page", False)
        self.fp_gds = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                               wx.DefaultPosition, wx.DefaultSize,
                               wx.TAB_TRAVERSAL)
        fp_gds_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_gds_stc = GdsSTC(self.fp_gds, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, 0)
        self.fp_gds_stc.SetUseTabs(True)
        self.fp_gds_stc.SetTabWidth(4)
        self.fp_gds_stc.SetIndent(4)
        self.fp_gds_stc.SetTabIndents(True)
        self.fp_gds_stc.SetBackSpaceUnIndents(True)
        self.fp_gds_stc.SetViewEOL(False)
        self.fp_gds_stc.SetViewWhiteSpace(False)
        self.fp_gds_stc.SetMarginWidth(2, 0)
        self.fp_gds_stc.SetIndentationGuides(True)
        self.fp_gds_stc.SetReadOnly(False)
        self.fp_gds_stc.SetMarginType(1, wx.stc.STC_MARGIN_SYMBOL)
        self.fp_gds_stc.SetMarginMask(1, wx.stc.STC_MASK_FOLDERS)
        self.fp_gds_stc.SetMarginWidth(1, 16)
        self.fp_gds_stc.SetMarginSensitive(1, True)
        self.fp_gds_stc.SetProperty("fold", "1")
        self.fp_gds_stc.SetFoldFlags(
            wx.stc.STC_FOLDFLAG_LINEBEFORE_CONTRACTED
            | wx.stc.STC_FOLDFLAG_LINEAFTER_CONTRACTED)
        self.fp_gds_stc.SetMarginType(0, wx.stc.STC_MARGIN_NUMBER)
        self.fp_gds_stc.SetMarginWidth(
            0, self.fp_gds_stc.TextWidth(wx.stc.STC_STYLE_LINENUMBER,
                                         "_99999"))
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDER,
                                     wx.stc.STC_MARK_BOXPLUS)
        self.fp_gds_stc.MarkerSetBackground(wx.stc.STC_MARKNUM_FOLDER,
                                            wx.BLACK)
        self.fp_gds_stc.MarkerSetForeground(wx.stc.STC_MARKNUM_FOLDER,
                                            wx.WHITE)
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEROPEN,
                                     wx.stc.STC_MARK_BOXMINUS)
        self.fp_gds_stc.MarkerSetBackground(wx.stc.STC_MARKNUM_FOLDEROPEN,
                                            wx.BLACK)
        self.fp_gds_stc.MarkerSetForeground(wx.stc.STC_MARKNUM_FOLDEROPEN,
                                            wx.WHITE)
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERSUB,
                                     wx.stc.STC_MARK_EMPTY)
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEREND,
                                     wx.stc.STC_MARK_BOXPLUS)
        self.fp_gds_stc.MarkerSetBackground(wx.stc.STC_MARKNUM_FOLDEREND,
                                            wx.BLACK)
        self.fp_gds_stc.MarkerSetForeground(wx.stc.STC_MARKNUM_FOLDEREND,
                                            wx.WHITE)
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEROPENMID,
                                     wx.stc.STC_MARK_BOXMINUS)
        self.fp_gds_stc.MarkerSetBackground(wx.stc.STC_MARKNUM_FOLDEROPENMID,
                                            wx.BLACK)
        self.fp_gds_stc.MarkerSetForeground(wx.stc.STC_MARKNUM_FOLDEROPENMID,
                                            wx.WHITE)
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERMIDTAIL,
                                     wx.stc.STC_MARK_EMPTY)
        self.fp_gds_stc.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERTAIL,
                                     wx.stc.STC_MARK_EMPTY)
        self.fp_gds_stc.SetSelBackground(
            True, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
        self.fp_gds_stc.SetSelForeground(
            True, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT))
        fp_gds_layout.Add(self.fp_gds_stc, 1, wx.EXPAND, 5)

        fp_gds_cmd_layout = wx.BoxSizer(wx.HORIZONTAL)

        self.fp_gds_cmd_name = wx.StaticText(self.fp_gds, wx.ID_ANY,
                                             wx.EmptyString,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.fp_gds_cmd_name.Wrap(-1)

        self.fp_gds_cmd_name.SetFont(
            wx.Font(wx.NORMAL_FONT.GetPointSize(), wx.FONTFAMILY_DEFAULT,
                    wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False,
                    wx.EmptyString))

        fp_gds_cmd_layout.Add(self.fp_gds_cmd_name, 0,
                              wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.fp_gds_cmd_help = wx.StaticText(self.fp_gds, wx.ID_ANY, u"g",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.fp_gds_cmd_help.Wrap(-1)

        fp_gds_cmd_layout.Add(self.fp_gds_cmd_help, 0, wx.ALL, 5)

        fp_gds_layout.Add(fp_gds_cmd_layout, 0, wx.EXPAND, 5)

        self.fp_gds.SetSizer(fp_gds_layout)
        self.fp_gds.Layout()
        fp_gds_layout.Fit(self.fp_gds)
        self.fp_formats_book.AddPage(self.fp_gds, u"a page", False)
        self.fp_bg = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                              wx.DefaultPosition, wx.DefaultSize,
                              wx.TAB_TRAVERSAL)
        fp_bg_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_bg_viewimage_scaled = ScaledImage(self.fp_bg, wx.ID_ANY,
                                                  wx.DefaultPosition,
                                                  wx.DefaultSize,
                                                  wx.TAB_TRAVERSAL)
        self.fp_bg_viewimage_scaled.SetBackgroundColour(
            wx.Colour(248, 248, 248))

        fp_bg_layout.Add(self.fp_bg_viewimage_scaled, 1, wx.EXPAND, 5)

        self.fp_bg.SetSizer(fp_bg_layout)
        self.fp_bg.Layout()
        fp_bg_layout.Fit(self.fp_bg)
        self.fp_formats_book.AddPage(self.fp_bg, u"a page", False)
        self.fp_ani = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                               wx.DefaultPosition, wx.DefaultSize,
                               wx.TAB_TRAVERSAL)
        fp_ani_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_ani_imageindex = wx.Slider(
            self.fp_ani, wx.ID_ANY, 0, 0, 4, wx.DefaultPosition,
            wx.DefaultSize, wx.SL_AUTOTICKS | wx.SL_HORIZONTAL | wx.SL_LABELS)
        fp_ani_layout.Add(self.fp_ani_imageindex, 0,
                          wx.EXPAND | wx.RIGHT | wx.LEFT, 5)

        self.fp_ani_viewimage_scaled = ScaledImage(self.fp_ani, wx.ID_ANY,
                                                   wx.DefaultPosition,
                                                   wx.DefaultSize,
                                                   wx.TAB_TRAVERSAL)
        self.fp_ani_viewimage_scaled.SetBackgroundColour(
            wx.Colour(248, 248, 248))

        fp_ani_layout.Add(self.fp_ani_viewimage_scaled, 1, wx.ALL | wx.EXPAND,
                          5)

        self.fp_ani.SetSizer(fp_ani_layout)
        self.fp_ani.Layout()
        fp_ani_layout.Fit(self.fp_ani)
        self.fp_formats_book.AddPage(self.fp_ani, u"a page", False)
        self.fp_place = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fp_place_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_place_viewer = PlaceViewer(self.fp_place, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.TAB_TRAVERSAL)
        fp_place_layout.Add(self.fp_place_viewer, 1, wx.EXPAND | wx.ALL, 5)

        self.fp_place.SetSizer(fp_place_layout)
        self.fp_place.Layout()
        fp_place_layout.Fit(self.fp_place)
        self.fp_formats_book.AddPage(self.fp_place, u"a page", False)
        self.fp_samplebank = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                                      wx.DefaultPosition, wx.DefaultSize,
                                      wx.TAB_TRAVERSAL)
        fp_samplebank_layout = wx.BoxSizer(wx.VERTICAL)

        fp_samplebank_listChoices = []
        self.fp_samplebank_list = wx.ListBox(self.fp_samplebank, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize,
                                             fp_samplebank_listChoices, 0)
        fp_samplebank_layout.Add(self.fp_samplebank_list, 1,
                                 wx.ALL | wx.EXPAND, 5)

        self.fp_samplebank.SetSizer(fp_samplebank_layout)
        self.fp_samplebank.Layout()
        fp_samplebank_layout.Fit(self.fp_samplebank)
        self.fp_formats_book.AddPage(self.fp_samplebank, u"a page", False)
        self.fp_info = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                                wx.DefaultPosition, wx.DefaultSize,
                                wx.TAB_TRAVERSAL)
        fp_info_layout = wx.BoxSizer(wx.VERTICAL)

        self.fp_info_text = wx.TextCtrl(self.fp_info, wx.ID_ANY,
                                        u"Hello World!", wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_MULTILINE)
        self.fp_info_text.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU))

        fp_info_layout.Add(self.fp_info_text, 1, wx.EXPAND, 5)

        self.fp_info.SetSizer(fp_info_layout)
        self.fp_info.Layout()
        fp_info_layout.Fit(self.fp_info)
        self.fp_formats_book.AddPage(self.fp_info, u"a page", False)
        self.fp_puzzle = wx.Panel(self.fp_formats_book, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        fp_puzzle_layout = wx.BoxSizer(wx.VERTICAL)

        self.puzzle_scintilla = wx.stc.StyledTextCtrl(self.fp_puzzle,
                                                      wx.ID_ANY,
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.puzzle_scintilla.SetUseTabs(False)
        self.puzzle_scintilla.SetTabWidth(4)
        self.puzzle_scintilla.SetIndent(4)
        self.puzzle_scintilla.SetTabIndents(True)
        self.puzzle_scintilla.SetBackSpaceUnIndents(True)
        self.puzzle_scintilla.SetViewEOL(False)
        self.puzzle_scintilla.SetViewWhiteSpace(False)
        self.puzzle_scintilla.SetMarginWidth(2, 0)
        self.puzzle_scintilla.SetIndentationGuides(True)
        self.puzzle_scintilla.SetReadOnly(False)
        self.puzzle_scintilla.SetMarginType(1, wx.stc.STC_MARGIN_SYMBOL)
        self.puzzle_scintilla.SetMarginMask(1, wx.stc.STC_MASK_FOLDERS)
        self.puzzle_scintilla.SetMarginWidth(1, 16)
        self.puzzle_scintilla.SetMarginSensitive(1, True)
        self.puzzle_scintilla.SetProperty("fold", "1")
        self.puzzle_scintilla.SetFoldFlags(
            wx.stc.STC_FOLDFLAG_LINEBEFORE_CONTRACTED
            | wx.stc.STC_FOLDFLAG_LINEAFTER_CONTRACTED)
        self.puzzle_scintilla.SetMarginType(0, wx.stc.STC_MARGIN_NUMBER)
        self.puzzle_scintilla.SetMarginWidth(
            0,
            self.puzzle_scintilla.TextWidth(wx.stc.STC_STYLE_LINENUMBER,
                                            "_99999"))
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDER,
                                           wx.stc.STC_MARK_BOXPLUS)
        self.puzzle_scintilla.MarkerSetBackground(wx.stc.STC_MARKNUM_FOLDER,
                                                  wx.BLACK)
        self.puzzle_scintilla.MarkerSetForeground(wx.stc.STC_MARKNUM_FOLDER,
                                                  wx.WHITE)
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEROPEN,
                                           wx.stc.STC_MARK_BOXMINUS)
        self.puzzle_scintilla.MarkerSetBackground(
            wx.stc.STC_MARKNUM_FOLDEROPEN, wx.BLACK)
        self.puzzle_scintilla.MarkerSetForeground(
            wx.stc.STC_MARKNUM_FOLDEROPEN, wx.WHITE)
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERSUB,
                                           wx.stc.STC_MARK_EMPTY)
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEREND,
                                           wx.stc.STC_MARK_BOXPLUS)
        self.puzzle_scintilla.MarkerSetBackground(wx.stc.STC_MARKNUM_FOLDEREND,
                                                  wx.BLACK)
        self.puzzle_scintilla.MarkerSetForeground(wx.stc.STC_MARKNUM_FOLDEREND,
                                                  wx.WHITE)
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEROPENMID,
                                           wx.stc.STC_MARK_BOXMINUS)
        self.puzzle_scintilla.MarkerSetBackground(
            wx.stc.STC_MARKNUM_FOLDEROPENMID, wx.BLACK)
        self.puzzle_scintilla.MarkerSetForeground(
            wx.stc.STC_MARKNUM_FOLDEROPENMID, wx.WHITE)
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERMIDTAIL,
                                           wx.stc.STC_MARK_EMPTY)
        self.puzzle_scintilla.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERTAIL,
                                           wx.stc.STC_MARK_EMPTY)
        self.puzzle_scintilla.SetSelBackground(
            True, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
        self.puzzle_scintilla.SetSelForeground(
            True, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT))
        fp_puzzle_layout.Add(self.puzzle_scintilla, 1, wx.EXPAND | wx.ALL, 0)

        self.fp_puzzle.SetSizer(fp_puzzle_layout)
        self.fp_puzzle.Layout()
        fp_puzzle_layout.Fit(self.fp_puzzle)
        self.fp_formats_book.AddPage(self.fp_puzzle, u"a page", False)

        fp_layout.Add(self.fp_formats_book, 1, wx.EXPAND, 5)

        self.fs_filepreview.SetSizer(fp_layout)
        self.fs_filepreview.Layout()
        fp_layout.Fit(self.fs_filepreview)
        self.fs_split_ft_fp.SplitVertically(self.fs_filetree,
                                            self.fs_filepreview, 0)
        fs_layout.Add(self.fs_split_ft_fp, 1, wx.EXPAND, 5)

        self.SetSizer(fs_layout)
        self.Layout()

        # Connect Events
        self.ft_filetree.Bind(wx.EVT_TREE_END_LABEL_EDIT,
                              self.ft_filetree_end_label_edit)
        self.ft_filetree.Bind(wx.EVT_TREE_ITEM_ACTIVATED,
                              self.ft_filetree_activated)
        self.ft_filetree.Bind(wx.EVT_TREE_KEY_DOWN, self.ft_filetree_keydown)
        self.ft_filetree.Bind(wx.EVT_TREE_SEL_CHANGED,
                              self.ft_filetree_selchanged)
        self.fp_text_edit.Bind(wx.EVT_TEXT, self.fp_text_edit_changed)
        self.fp_gds_stc.Bind(wx.EVT_UPDATE_UI, self.fp_gds_stc_updateui)
        self.fp_ani_imageindex.Bind(wx.EVT_SLIDER,
                                    self.fp_ani_imageindex_on_slider)
Beispiel #26
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          title="DF Mod Manager",
                          size=(500, 300))

        def except_hook(type, value, tb):
            self.show_exception_dialog(type, value, tb)
            sys.exit(0)

        sys.excepthook = except_hook

        if not os.path.exists('core'):
            dialog = wx.MessageDialog(
                self,
                'It appears that you are running DFMM for the first time. Are the files currently in your raws folder unmodified?',
                'Setup',
                style=wx.YES | wx.NO)
            if dialog.ShowModal() == wx.ID_YES:
                if not os.path.exists(os.path.join('..', 'raw', 'objects')):
                    dialog = wx.MessageDialog(
                        self,
                        'Unable to find DF files. The "dfmm" folder should be on the same level as "Dwarf Fortress.exe".',
                        style=wx.OK)
                    dialog.ShowModal()
                    sys.exit(0)
                shutil.copytree(os.path.join('..', 'raw', 'objects'), 'core')
            else:
                dialog = wx.MessageDialog(
                    self,
                    'Please restore the raw files to their unmodified state and relaunch DFMM. (Backup your changes to another directory for later import)',
                    style=wx.OK)
                dialog.ShowModal()
                sys.exit(0)

        if not os.path.exists('mods'):
            os.mkdir('mods')

        self.core_dataset = decode_core()

        self.tree = wx.TreeCtrl(self,
                                wx.ID_ANY,
                                pos=(0, 0),
                                size=(-1, -1),
                                style=wx.TR_HAS_BUTTONS)

        self.init_image_list()
        self.tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.toggle_mod)
        self.tree.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.mod_context_menu)
        self.tree.Bind(wx.EVT_TREE_BEGIN_DRAG, self.begin_drag)
        self.tree.Bind(wx.EVT_TREE_END_DRAG, self.end_drag)

        self.mod_db = shelve.open(os.path.join('mods', 'mods.db'),
                                  'c',
                                  writeback=True)

        self.reload_mods(initial=True)

        self.update_title()

        self.filemenu = wx.Menu()
        menu_new = self.filemenu.Append(wx.ID_ANY, "&New mod\tCtrl+N", "")
        self.filemenu.AppendSeparator()
        menu_merge = self.filemenu.Append(wx.ID_ANY, "&Merge mods\tCtrl+M", "")
        menu_install = self.filemenu.Append(wx.ID_ANY, "&Install mods\tCtrl+S",
                                            "")
        self.filemenu.AppendSeparator()
        menu_exit = self.filemenu.Append(wx.ID_EXIT, "Exit", "")

        self.Bind(wx.EVT_MENU, self.merge, menu_merge)
        self.Bind(wx.EVT_MENU, self.install, menu_install)
        self.Bind(wx.EVT_MENU, self.new_mod, menu_new)
        self.Bind(wx.EVT_MENU, self.exit, menu_exit)

        self.importmenu = wx.Menu()
        menu_import_dfmod = self.importmenu.Append(wx.ID_ANY, "Import .dfmod",
                                                   "")
        menu_import_dfmod_zip = self.importmenu.Append(wx.ID_ANY,
                                                       "Import .dfmod zip", "")
        menu_import_files = self.importmenu.Append(wx.ID_ANY,
                                                   "Import from directory", "")

        self.Bind(wx.EVT_MENU, self.import_dfmod, menu_import_dfmod)
        self.Bind(wx.EVT_MENU, self.import_dfmod_zip, menu_import_dfmod_zip)
        self.Bind(wx.EVT_MENU, self.import_files, menu_import_files)

        OPTIONS = [['_merge_changes', 'Merge changes'],
                   ['_partial_merge', 'Allow partial merge'],
                   ['_delete_override', 'Delete overrides edit'],
                   ['_show_numbers', 'Show detailed change numbers']]

        self.options_menu = {}
        self.optionsmenu = wx.Menu()
        for key, value in OPTIONS:
            item = self.optionsmenu.Append(wx.ID_ANY,
                                           value,
                                           '',
                                           kind=wx.ITEM_CHECK)
            if key not in self.mod_db:
                self.mod_db[key] = True if key == '_merge_changes' else False
                self.mod_db.sync()
            if self.mod_db[key]:
                item.Check()
            self.Bind(wx.EVT_MENU, self.toggle_option(key), item)
            self.options_menu[key] = item

        menuBar = wx.MenuBar()
        menuBar.Append(self.filemenu, "&File")
        menuBar.Append(self.importmenu, "&Import")
        menuBar.Append(self.optionsmenu, "&Options")
        self.SetMenuBar(menuBar)
Beispiel #27
0
 def createTree(self):
     self.tree = wx.TreeCtrl(self.rpanel,
                             style=wx.TR_HIDE_ROOT | wx.TR_DEFAULT_STYLE)
     self.treeroot = self.tree.AddRoot("数据包")
Beispiel #28
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=wx.EmptyString,
                          pos=wx.DefaultPosition,
                          size=wx.Size(1200, 728),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        bSizer2 = wx.BoxSizer(wx.VERTICAL)

        self.m_notebook1 = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.tab_mainmenupanel = wx.Panel(self.m_notebook1, wx.ID_ANY,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          wx.TAB_TRAVERSAL)
        self.m_notebook1.AddPage(self.tab_mainmenupanel, u"Main Menu", False)
        self.tab_characterpanel = wx.Panel(self.m_notebook1, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.TAB_TRAVERSAL)
        gs_character = wx.GridSizer(0, 4, 0, 0)

        self.m_charlist = wx.ListCtrl(self.tab_characterpanel, wx.ID_ANY,
                                      wx.DefaultPosition, wx.DefaultSize,
                                      wx.LC_LIST)
        gs_character.Add(self.m_charlist, 0, wx.ALL | wx.EXPAND, 5)

        fg_char_main = wx.FlexGridSizer(16, 3, 0, 0)
        fg_char_main.SetFlexibleDirection(wx.BOTH)
        fg_char_main.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.t_charname = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                        u"Name", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.t_charname.Wrap(-1)
        fg_char_main.Add(self.t_charname, 0, wx.ALL, 5)

        self.tf_charname = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.DefaultSize, wx.TE_READONLY)
        fg_char_main.Add(self.tf_charname, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        self.t_charclass = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                         u"Class", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_charclass.Wrap(-1)
        fg_char_main.Add(self.t_charclass, 0, wx.ALL, 5)

        self.tf_charclass = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        fg_char_main.Add(self.tf_charclass, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        self.t_charlevel = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                         u"Level", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_charlevel.Wrap(-1)
        fg_char_main.Add(self.t_charlevel, 0, wx.ALL, 5)

        self.tf_charlevel = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        fg_char_main.Add(self.tf_charlevel, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        self.t_charphys = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                        u"Physical state", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.t_charphys.Wrap(-1)
        fg_char_main.Add(self.t_charphys, 0, wx.ALL, 5)

        self.tf_charphys = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.DefaultSize, wx.TE_READONLY)
        fg_char_main.Add(self.tf_charphys, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        self.t_charhp = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                      u"Hit Points", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_charhp.Wrap(-1)
        fg_char_main.Add(self.t_charhp, 0, wx.ALL, 5)

        self.tf_charhp = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                     wx.EmptyString, wx.DefaultPosition,
                                     wx.DefaultSize, wx.TE_READONLY)
        fg_char_main.Add(self.tf_charhp, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        self.t_charexp = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"Experience", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_charexp.Wrap(-1)
        fg_char_main.Add(self.t_charexp, 0, wx.ALL, 5)

        self.tf_charexp = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        fg_char_main.Add(self.tf_charexp, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        fg_char_main.AddSpacer(5)

        self.b_levelup = wx.Button(self.tab_characterpanel, wx.ID_ANY,
                                   u"LevelUp", wx.DefaultPosition,
                                   wx.Size(75, 30), 0)
        fg_char_main.Add(self.b_levelup, 0, wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        fg_char_main.AddSpacer(5)

        self.m_staticline1 = wx.StaticLine(self.tab_characterpanel, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fg_char_main.Add(self.m_staticline1, 0, wx.EXPAND | wx.ALL, 5)

        fg_char_main.AddSpacer(5)

        fg_char_main.AddSpacer(5)

        self.t_dsc1 = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                    u"STAT", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.t_dsc1.Wrap(-1)
        fg_char_main.Add(self.t_dsc1, 0, wx.ALL, 5)

        self.t_dsc2 = wx.StaticText(self.tab_characterpanel, wx.ID_ANY, u"MOD",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        self.t_dsc2.Wrap(-1)
        fg_char_main.Add(self.t_dsc2, 0, wx.ALL, 5)

        self.t_charstr = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"STRENGTH", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_charstr.Wrap(-1)
        fg_char_main.Add(self.t_charstr, 0, wx.ALL, 5)

        self.tf_char_str_stat = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_str_stat, 0, wx.ALL, 5)

        self.tf_char_str_mod = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_str_mod, 0, wx.ALL, 5)

        self.t_chardex = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"DEXTERITY", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_chardex.Wrap(-1)
        fg_char_main.Add(self.t_chardex, 0, wx.ALL, 5)

        self.tf_char_dex_stat = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_dex_stat, 0, wx.ALL, 5)

        self.tf_char_dex_mod = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_dex_mod, 0, wx.ALL, 5)

        self.t_charconst = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                         u"CONSTITUTION", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_charconst.Wrap(-1)
        fg_char_main.Add(self.t_charconst, 0, wx.ALL, 5)

        self.tf_char_cons_stat = wx.TextCtrl(self.tab_characterpanel,
                                             wx.ID_ANY, wx.EmptyString,
                                             wx.DefaultPosition,
                                             wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_cons_stat, 0, wx.ALL, 5)

        self.tf_char_cons_mod = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_cons_mod, 0, wx.ALL, 5)

        self.t_charint = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"INTELLIGENCE", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_charint.Wrap(-1)
        fg_char_main.Add(self.t_charint, 0, wx.ALL, 5)

        self.tf_char_int_stat = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_int_stat, 0, wx.ALL, 5)

        self.tf_char_int_mod = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_int_mod, 0, wx.ALL, 5)

        self.t_charwis = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"WISDOM", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_charwis.Wrap(-1)
        fg_char_main.Add(self.t_charwis, 0, wx.ALL, 5)

        self.tf_char_wis_stat = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_wis_stat, 0, wx.ALL, 5)

        self.tf_char_wis_mod = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_wis_mod, 0, wx.ALL, 5)

        self.t_charcha = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"CHARISMA", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_charcha.Wrap(-1)
        fg_char_main.Add(self.t_charcha, 0, wx.ALL, 5)

        self.tf_char_cha_stat = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_cha_stat, 0, wx.ALL, 5)

        self.tf_char_cha_mod = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main.Add(self.tf_char_cha_mod, 0, wx.ALL, 5)

        gs_character.Add(fg_char_main, 1, wx.EXPAND, 5)

        fg_char_main2 = wx.FlexGridSizer(13, 3, 0, 0)
        fg_char_main2.SetFlexibleDirection(wx.BOTH)
        fg_char_main2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.t_charac = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                      u"Armor Class", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_charac.Wrap(-1)
        fg_char_main2.Add(self.t_charac, 0, wx.ALL, 5)

        self.tf_charac = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                     wx.EmptyString, wx.DefaultPosition,
                                     wx.DefaultSize, wx.TE_READONLY)
        fg_char_main2.Add(self.tf_charac, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        self.t_charinit = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                        u"Initiative", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.t_charinit.Wrap(-1)
        fg_char_main2.Add(self.t_charinit, 0, wx.ALL, 5)

        self.tf_charinit = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.DefaultSize, wx.TE_READONLY)
        fg_char_main2.Add(self.tf_charinit, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        self.t_charspeed = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                         u"Speed", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_charspeed.Wrap(-1)
        fg_char_main2.Add(self.t_charspeed, 0, wx.ALL, 5)

        self.tf_charspeed = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        fg_char_main2.Add(self.tf_charspeed, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        self.t_charhit = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"Hit Dice", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_charhit.Wrap(-1)
        fg_char_main2.Add(self.t_charhit, 0, wx.ALL, 5)

        self.tf_charhit = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        fg_char_main2.Add(self.tf_charhit, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.t_chards = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                      u"Death Saves", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_chards.Wrap(-1)
        fg_char_main2.Add(self.t_chards, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        self.tf_chars = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                    wx.EmptyString, wx.DefaultPosition,
                                    wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main2.Add(self.tf_chars, 0, wx.ALL, 5)

        self.t_charsf = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                      u"Success/Failure", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_charsf.Wrap(-1)
        fg_char_main2.Add(self.t_charsf, 0, wx.ALL, 5)

        self.tf_charf = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                    wx.EmptyString, wx.DefaultPosition,
                                    wx.Size(50, -1), wx.TE_READONLY)
        fg_char_main2.Add(self.tf_charf, 0, wx.ALL, 5)

        self.t_charperception = wx.StaticText(self.tab_characterpanel,
                                              wx.ID_ANY, u"Perception",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.t_charperception.Wrap(-1)
        fg_char_main2.Add(self.t_charperception, 0, wx.ALL, 5)

        self.m_textCtrl25 = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        fg_char_main2.Add(self.m_textCtrl25, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.m_staticline2 = wx.StaticLine(self.tab_characterpanel,
                                           wx.ID_ANY, wx.DefaultPosition,
                                           wx.Size(-1, 10), wx.LI_HORIZONTAL)
        fg_char_main2.Add(self.m_staticline2, 0, wx.EXPAND | wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.m_bitmap2 = wx.StaticBitmap(self.tab_characterpanel, wx.ID_ANY,
                                         wx.NullBitmap, wx.DefaultPosition,
                                         wx.Size(100, 120), 0)
        fg_char_main2.Add(self.m_bitmap2, 0,
                          wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.b_charprofic = wx.Button(self.tab_characterpanel, wx.ID_ANY,
                                      u"Proficiency", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        fg_char_main2.Add(self.b_charprofic, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.b_charperks = wx.Button(self.tab_characterpanel, wx.ID_ANY,
                                     u"Perks", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        fg_char_main2.Add(self.b_charperks, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.b_charexpertise = wx.Button(self.tab_characterpanel, wx.ID_ANY,
                                         u"Expertise", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fg_char_main2.Add(self.b_charexpertise, 0, wx.ALL, 5)

        fg_char_main2.AddSpacer(5)

        fg_char_main2.AddSpacer(5)

        self.t_charpersonal = wx.Button(self.tab_characterpanel, wx.ID_ANY,
                                        u"Personal", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        fg_char_main2.Add(self.t_charpersonal, 0, wx.ALL, 5)

        gs_character.Add(fg_char_main2, 1, wx.EXPAND, 5)

        g_skills = wx.GridSizer(18, 2, 0, 0)

        self.t_acrobatics = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                          u"Acrobatics", wx.DefaultPosition,
                                          wx.DefaultSize, 0)
        self.t_acrobatics.Wrap(-1)
        g_skills.Add(self.t_acrobatics, 0, wx.ALL, 5)

        self.tf_acrobatics = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_acrobatics, 0, wx.ALL, 5)

        self.t_animalhandling = wx.StaticText(self.tab_characterpanel,
                                              wx.ID_ANY, u"Animal Handling",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.t_animalhandling.Wrap(-1)
        g_skills.Add(self.t_animalhandling, 0, wx.ALL, 5)

        self.tf_animalhandling = wx.TextCtrl(self.tab_characterpanel,
                                             wx.ID_ANY, wx.EmptyString,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_animalhandling, 0, wx.ALL, 5)

        self.t_arcana = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                      u"Arcana", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_arcana.Wrap(-1)
        g_skills.Add(self.t_arcana, 0, wx.ALL, 5)

        self.tf_arcana = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                     wx.EmptyString, wx.DefaultPosition,
                                     wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_arcana, 0, wx.ALL, 5)

        self.t_athletics = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                         u"Athletics", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_athletics.Wrap(-1)
        g_skills.Add(self.t_athletics, 0, wx.ALL, 5)

        self.tf_athletics = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_athletics, 0, wx.ALL, 5)

        self.t_deception = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                         u"Deception", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_deception.Wrap(-1)
        g_skills.Add(self.t_deception, 0, wx.ALL, 5)

        self.tf_deception = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_deception, 0, wx.ALL, 5)

        self.t_history = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"History", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_history.Wrap(-1)
        g_skills.Add(self.t_history, 0, wx.ALL, 5)

        self.tf_history = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_history, 0, wx.ALL, 5)

        self.t_insight = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"Insight", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_insight.Wrap(-1)
        g_skills.Add(self.t_insight, 0, wx.ALL, 5)

        self.tf_insight = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_insight, 0, wx.ALL, 5)

        self.t_intimidation = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                            u"Intimidation",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.t_intimidation.Wrap(-1)
        g_skills.Add(self.t_intimidation, 0, wx.ALL, 5)

        self.tf_intimidation = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_intimidation, 0, wx.ALL, 5)

        self.t_investigation = wx.StaticText(self.tab_characterpanel,
                                             wx.ID_ANY, u"Investigation",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.t_investigation.Wrap(-1)
        g_skills.Add(self.t_investigation, 0, wx.ALL, 5)

        self.tf_investigation = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                            wx.EmptyString, wx.DefaultPosition,
                                            wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_investigation, 0, wx.ALL, 5)

        self.t_medicine = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                        u"Medicine", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.t_medicine.Wrap(-1)
        g_skills.Add(self.t_medicine, 0, wx.ALL, 5)

        self.tf_medicine = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_medicine, 0, wx.ALL, 5)

        self.t_nature = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                      u"Nature", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_nature.Wrap(-1)
        g_skills.Add(self.t_nature, 0, wx.ALL, 5)

        self.tf_nature = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                     wx.EmptyString, wx.DefaultPosition,
                                     wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_nature, 0, wx.ALL, 5)

        self.t_perception = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                          u"Perception", wx.DefaultPosition,
                                          wx.DefaultSize, 0)
        self.t_perception.Wrap(-1)
        g_skills.Add(self.t_perception, 0, wx.ALL, 5)

        self.tf_perception = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_perception, 0, wx.ALL, 5)

        self.t_performance = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                           u"Performance", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.t_performance.Wrap(-1)
        g_skills.Add(self.t_performance, 0, wx.ALL, 5)

        self.tf_performance = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                          wx.EmptyString, wx.DefaultPosition,
                                          wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_performance, 0, wx.ALL, 5)

        self.t_persuasion = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                          u"Persuasion", wx.DefaultPosition,
                                          wx.DefaultSize, 0)
        self.t_persuasion.Wrap(-1)
        g_skills.Add(self.t_persuasion, 0, wx.ALL, 5)

        self.tf_persuasion = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_persuasion, 0, wx.ALL, 5)

        self.t_religion = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                        u"Religion", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.t_religion.Wrap(-1)
        g_skills.Add(self.t_religion, 0, wx.ALL, 5)

        self.tf_religion = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_religion, 0, wx.ALL, 5)

        self.t_sleighofhand = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                            u"Sleigh of hand",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.t_sleighofhand.Wrap(-1)
        g_skills.Add(self.t_sleighofhand, 0, wx.ALL, 5)

        self.tf_sleighofhand = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_sleighofhand, 0, wx.ALL, 5)

        self.t_stealth = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                       u"Stealth", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.t_stealth.Wrap(-1)
        g_skills.Add(self.t_stealth, 0, wx.ALL, 5)

        self.tf_stealth = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_stealth, 0, wx.ALL, 5)

        self.t_survival = wx.StaticText(self.tab_characterpanel, wx.ID_ANY,
                                        u"Survival", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.t_survival.Wrap(-1)
        g_skills.Add(self.t_survival, 0, wx.ALL, 5)

        self.tf_survival = wx.TextCtrl(self.tab_characterpanel, wx.ID_ANY,
                                       wx.EmptyString, wx.DefaultPosition,
                                       wx.DefaultSize, wx.TE_READONLY)
        g_skills.Add(self.tf_survival, 0, wx.ALL, 5)

        gs_character.Add(g_skills, 1, wx.EXPAND, 5)

        self.tab_characterpanel.SetSizer(gs_character)
        self.tab_characterpanel.Layout()
        gs_character.Fit(self.tab_characterpanel)
        self.m_notebook1.AddPage(self.tab_characterpanel, u"Character", True)
        self.tab_equipmentpanel = wx.Panel(self.m_notebook1, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.TAB_TRAVERSAL)
        gSizer9 = wx.GridSizer(0, 3, 0, 0)

        bSizer9 = wx.BoxSizer(wx.VERTICAL)

        box_characterChoices = []
        self.box_character = wx.ComboBox(self.tab_equipmentpanel, wx.ID_ANY,
                                         u"Character", wx.DefaultPosition,
                                         wx.DefaultSize, box_characterChoices,
                                         0)
        bSizer9.Add(self.box_character, 0, wx.ALL, 5)

        gSizer11 = wx.GridSizer(10, 6, 0, 0)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.i_head = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.NullBitmap, wx.DefaultPosition,
                                      wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_head, 1,
                     wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.i_neck = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.NullBitmap, wx.DefaultPosition,
                                      wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_neck, 1, wx.ALL | wx.EXPAND, 5)

        self.i_chest = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                       wx.NullBitmap, wx.DefaultPosition,
                                       wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_chest, 1, wx.ALL | wx.EXPAND, 5)

        self.i_arms = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.NullBitmap, wx.DefaultPosition,
                                      wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_arms, 1, wx.ALL | wx.EXPAND, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.i_ring = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.NullBitmap, wx.DefaultPosition,
                                      wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_ring, 1, wx.ALL | wx.EXPAND, 5)

        self.i_legs = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.NullBitmap, wx.DefaultPosition,
                                      wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_legs, 1, wx.ALL | wx.EXPAND, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.i_boots = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                       wx.NullBitmap, wx.DefaultPosition,
                                       wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_boots, 1, wx.ALL | wx.EXPAND, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.i_weapon1 = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                         wx.NullBitmap, wx.DefaultPosition,
                                         wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_weapon1, 1, wx.ALL | wx.EXPAND, 5)

        self.i_weapon2 = wx.BitmapButton(self.tab_equipmentpanel, wx.ID_ANY,
                                         wx.NullBitmap, wx.DefaultPosition,
                                         wx.Size(30, 30), wx.BU_AUTODRAW)
        gSizer11.Add(self.i_weapon2, 1, wx.ALL | wx.EXPAND, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.tf_weapon1 = wx.TextCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        gSizer11.Add(self.tf_weapon1, 0, wx.ALL, 5)

        gSizer11.AddSpacer(5)

        self.tf_weapon2 = wx.TextCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.DefaultSize, wx.TE_READONLY)
        gSizer11.Add(self.tf_weapon2, 0, wx.ALL, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.t_armor = wx.StaticText(self.tab_equipmentpanel, wx.ID_ANY,
                                     u"Armor: ", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        self.t_armor.Wrap(-1)
        gSizer11.Add(self.t_armor, 0, wx.ALL, 5)

        gSizer11.AddSpacer(5)

        self.tf_armor = wx.TextCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                    wx.EmptyString, wx.DefaultPosition,
                                    wx.DefaultSize, wx.TE_READONLY)
        gSizer11.Add(self.tf_armor, 0, wx.ALL, 5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        gSizer11.AddSpacer(5)

        self.t_modifiers = wx.StaticText(self.tab_equipmentpanel, wx.ID_ANY,
                                         u"Modifiers: ", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.t_modifiers.Wrap(-1)
        gSizer11.Add(self.t_modifiers, 0, wx.ALL, 5)

        gSizer11.AddSpacer(5)

        self.tf_modifiers = wx.TextCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.TE_READONLY)
        gSizer11.Add(self.tf_modifiers, 0, wx.ALL, 5)

        bSizer9.Add(gSizer11, 1, wx.EXPAND, 5)

        gSizer9.Add(bSizer9, 1, wx.EXPAND, 5)

        gSizer10 = wx.GridSizer(0, 1, 0, 0)

        self.l_backpack = wx.ListCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                      wx.DefaultPosition, wx.DefaultSize,
                                      wx.LC_LIST)
        gSizer10.Add(self.l_backpack, 1, wx.ALL | wx.EXPAND, 5)

        gSizer9.Add(gSizer10, 1, wx.EXPAND, 5)

        gSizer12 = wx.GridSizer(20, 3, 0, 0)

        self.t_money = wx.StaticText(self.tab_equipmentpanel, wx.ID_ANY,
                                     u"Money", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        self.t_money.Wrap(-1)
        gSizer12.Add(self.t_money, 0, wx.ALL, 5)

        self.tf_money = wx.TextCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                    wx.EmptyString, wx.DefaultPosition,
                                    wx.DefaultSize, wx.TE_READONLY)
        gSizer12.Add(self.tf_money, 0, wx.ALL, 5)

        gSizer12.AddSpacer(5)

        self.t_weigth = wx.StaticText(self.tab_equipmentpanel, wx.ID_ANY,
                                      u"Weight", wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.t_weigth.Wrap(-1)
        gSizer12.Add(self.t_weigth, 0, wx.ALL, 5)

        self.tf_weight = wx.TextCtrl(self.tab_equipmentpanel, wx.ID_ANY,
                                     wx.EmptyString, wx.DefaultPosition,
                                     wx.DefaultSize, wx.TE_READONLY)
        gSizer12.Add(self.tf_weight, 0, wx.ALL, 5)

        self.t_overencumbered = wx.StaticText(self.tab_equipmentpanel,
                                              wx.ID_ANY, u"Overencumbered!",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.t_overencumbered.Wrap(-1)
        self.t_overencumbered.Hide()

        gSizer12.Add(self.t_overencumbered, 0, wx.ALL, 5)

        self.b_trade = wx.Button(self.tab_equipmentpanel, wx.ID_ANY, u"Trade!",
                                 wx.DefaultPosition, wx.DefaultSize, 0)
        gSizer12.Add(self.b_trade, 0, wx.ALL, 5)

        gSizer12.AddSpacer(5)

        gSizer12.AddSpacer(5)

        gSizer12.AddSpacer(5)

        gSizer12.AddSpacer(5)

        gSizer12.AddSpacer(5)

        self.b_use = wx.Button(self.tab_equipmentpanel, wx.ID_ANY, u"Use",
                               wx.DefaultPosition, wx.DefaultSize, 0)
        gSizer12.Add(self.b_use, 0, wx.ALL, 5)

        gSizer9.Add(gSizer12, 1, wx.EXPAND, 5)

        self.tab_equipmentpanel.SetSizer(gSizer9)
        self.tab_equipmentpanel.Layout()
        gSizer9.Fit(self.tab_equipmentpanel)
        self.m_notebook1.AddPage(self.tab_equipmentpanel, u"Equipment", False)
        self.tab_actionpanel = wx.Panel(self.m_notebook1, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        wx.TAB_TRAVERSAL)
        gSizer13 = wx.GridSizer(0, 3, 0, 0)

        gSizer14 = wx.GridSizer(2, 1, 0, 0)

        bSizer15 = wx.BoxSizer(wx.VERTICAL)

        r_characteractionChoices = [u"sample"]
        self.r_characteraction = wx.RadioBox(self.tab_actionpanel, wx.ID_ANY,
                                             u"Character", wx.DefaultPosition,
                                             wx.DefaultSize,
                                             r_characteractionChoices, 1,
                                             wx.RA_SPECIFY_COLS)
        self.r_characteraction.SetSelection(0)
        bSizer15.Add(self.r_characteraction, 0,
                     wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        gSizer14.Add(bSizer15, 1, wx.EXPAND, 5)

        bSizer16 = wx.BoxSizer(wx.VERTICAL)

        self.b_goaction = wx.Button(self.tab_actionpanel, wx.ID_ANY, u"GO!",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer16.Add(self.b_goaction, 0, wx.ALL | wx.ALIGN_RIGHT, 5)

        self.tree_action = wx.TreeCtrl(self.tab_actionpanel, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize,
                                       wx.TR_DEFAULT_STYLE)
        bSizer16.Add(self.tree_action, 1, wx.ALL | wx.EXPAND, 5)

        gSizer14.Add(bSizer16, 1, wx.EXPAND, 5)

        gSizer13.Add(gSizer14, 1, wx.EXPAND, 5)

        bSizer18 = wx.BoxSizer(wx.VERTICAL)

        bSizer19 = wx.BoxSizer(wx.VERTICAL)

        bSizer19.SetMinSize(wx.Size(-1, 400))
        r_enemyactionChoices = [u"sample"]
        self.r_enemyaction = wx.RadioBox(self.tab_actionpanel, wx.ID_ANY,
                                         u"Enemy", wx.DefaultPosition,
                                         wx.DefaultSize, r_enemyactionChoices,
                                         1, wx.RA_SPECIFY_COLS)
        self.r_enemyaction.SetSelection(0)
        bSizer19.Add(self.r_enemyaction, 0,
                     wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        bSizer18.Add(bSizer19, 1, wx.EXPAND, 5)

        bSizer21 = wx.BoxSizer(wx.VERTICAL)

        bSizer21.SetMinSize(wx.Size(-1, 25))
        bSizer23 = wx.BoxSizer(wx.VERTICAL)

        gSizer21 = wx.GridSizer(1, 3, 1, 0)

        gSizer21.SetMinSize(wx.Size(-1, 25))
        box_charactionindChoices = []
        self.box_charactionind = wx.ComboBox(self.tab_actionpanel, wx.ID_ANY,
                                             u"Character", wx.DefaultPosition,
                                             wx.DefaultSize,
                                             box_charactionindChoices, 0)
        gSizer21.Add(self.box_charactionind, 0, wx.ALL | wx.ALIGN_BOTTOM, 5)

        box_actionindChoices = []
        self.box_actionind = wx.ComboBox(self.tab_actionpanel, wx.ID_ANY,
                                         u"Action", wx.DefaultPosition,
                                         wx.DefaultSize, box_actionindChoices,
                                         0)
        gSizer21.Add(self.box_actionind, 0, wx.ALL | wx.ALIGN_BOTTOM, 5)

        self.b_goind = wx.Button(self.tab_actionpanel, wx.ID_ANY, u"GO!",
                                 wx.DefaultPosition, wx.DefaultSize, 0)
        gSizer21.Add(self.b_goind, 0, wx.ALL | wx.ALIGN_BOTTOM, 5)

        bSizer23.Add(gSizer21, 1, wx.EXPAND, 5)

        self.m_treeCtrl5 = wx.TreeCtrl(self.tab_actionpanel,
                                       wx.ID_ANY, wx.DefaultPosition,
                                       wx.Size(-1, 300), wx.TR_DEFAULT_STYLE)
        bSizer23.Add(
            self.m_treeCtrl5, 1, wx.ALL | wx.EXPAND
            | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        bSizer21.Add(bSizer23, 1, wx.EXPAND, 5)

        bSizer18.Add(bSizer21, 1, wx.EXPAND, 5)

        gSizer13.Add(bSizer18, 1, wx.EXPAND, 5)

        bSizer24 = wx.BoxSizer(wx.VERTICAL)

        l_logChoices = []
        self.l_log = wx.ListBox(self.tab_actionpanel, wx.ID_ANY,
                                wx.DefaultPosition, wx.DefaultSize,
                                l_logChoices, wx.LB_EXTENDED)
        bSizer24.Add(self.l_log, 1, wx.ALL | wx.EXPAND, 5)

        self.c_commandline = wx.TextCtrl(self.tab_actionpanel, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.Size(-1, 200), 0)
        bSizer24.Add(self.c_commandline, 0, wx.ALL | wx.EXPAND, 5)

        gSizer13.Add(bSizer24, 1, wx.EXPAND, 5)

        self.tab_actionpanel.SetSizer(gSizer13)
        self.tab_actionpanel.Layout()
        gSizer13.Fit(self.tab_actionpanel)
        self.m_notebook1.AddPage(self.tab_actionpanel, u"Action", False)
        self.tab_mappanel = wx.Panel(self.m_notebook1, wx.ID_ANY,
                                     wx.DefaultPosition, wx.DefaultSize,
                                     wx.TAB_TRAVERSAL)
        self.m_notebook1.AddPage(self.tab_mappanel, u"Map", False)

        bSizer2.Add(self.m_notebook1, 1, wx.EXPAND | wx.ALL, 5)

        self.SetSizer(bSizer2)
        self.Layout()
        self.m_statusBar1 = self.CreateStatusBar(1, 0, wx.ID_ANY)
        self.m_menubar2 = wx.MenuBar(0)
        self.SetMenuBar(self.m_menubar2)

        self.Centre(wx.BOTH)

        # Connect Events
        self.m_charlist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.UpdateScreen)
        self.b_charperks.Bind(wx.EVT_BUTTON, self.PerksPopUp)
    def __init__(self, parent, d, *args, **kwargs):
        '''Initialize the dialog
        
        d - dictionary representing the tree.
            Keys form the dictionary labels, values are dictionaries of subtrees
            A leaf is marked with a dictionary entry whose key is None and
            whose value is True or False, depending on whether it is
            initially selected or not.
        '''
        wx.Dialog.__init__(self, parent, *args, **kwargs)

        self.bitmaps = []
        self.parent_reflects_child = True
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.SetSizer(sizer)
        tree_style = wx.TR_DEFAULT_STYLE
        self.tree_ctrl = wx.TreeCtrl(self, 
                                     style = tree_style)
        sizer.Add(self.tree_ctrl, 1, wx.EXPAND | wx.ALL, 5)
        
        image_list = wx.ImageList(16, 16)
        for i, state_flag in enumerate(
            (0, wx.CONTROL_CHECKED, wx.CONTROL_UNDETERMINED)):
            for j, selection_flag in enumerate((0, wx.CONTROL_CURRENT)):
                idx = image_list.Add(
                    self.get_checkbox_bitmap(state_flag | selection_flag,
                                             16, 16))
        self.tree_ctrl.SetImageList(image_list)
        self.image_list = image_list
        image_index, selected_image_index = self.img_idx(d)
        root_id = self.tree_ctrl.AddRoot("All", image_index, 
                                         selected_image_index, 
                                         wx.TreeItemData(d))
        self.tree_ctrl.SetItemImage(root_id, image_index,
                                    wx.TreeItemIcon_Normal)
        self.tree_ctrl.SetItemImage(root_id, selected_image_index, 
                                    wx.TreeItemIcon_Selected)
        self.tree_ctrl.SetItemImage(root_id, image_index, 
                                    wx.TreeItemIcon_Expanded)
        self.tree_ctrl.SetItemImage(root_id, image_index, 
                                    wx.TreeItemIcon_SelectedExpanded)
        self.root_id = root_id
        self.tree_ctrl.SetItemHasChildren(root_id, len(d) > 1)
        self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.on_expanding, self.tree_ctrl)
        self.tree_ctrl.Bind(wx.EVT_LEFT_DOWN, self.on_left_down)
        self.tree_ctrl.Expand(root_id)
        table_sizer = wx.GridBagSizer()
        table_sizer.AddGrowableCol(2)
        sizer.Add(table_sizer, 0, wx.EXPAND)
        table_sizer.Add(wx.StaticText(self, label='Key:'), (0, 0), flag=wx.LEFT | wx.RIGHT, border=3)
        for i, (bitmap, description) in enumerate((
            (image_list.GetBitmap(0), "No subitems selected / not selected"),
            (image_list.GetBitmap(2), "All subitems selected / selected"),
            (image_list.GetBitmap(4), "Some subitems selected. Open tree to see selections."))):
            bitmap_ctrl = wx.StaticBitmap(self)
            bitmap_ctrl.SetBitmap(bitmap)
            table_sizer.Add(bitmap_ctrl, (i, 1), flag=wx.RIGHT, border=5)
            table_sizer.Add(wx.StaticText(self, label=description), (i, 2))
        sizer.Add(self.CreateStdDialogButtonSizer(wx.CANCEL | wx.OK), 
                  flag=wx.CENTER)
        self.Layout()
Beispiel #30
0
    def CreateRepoTreeCtrl(self):
        panel = wx.Panel(self)
        self.repo_tree = tree = wx.TreeCtrl(panel, -1, wx.Point(0, 0), wx.Size(160, 250),
                           wx.TR_DEFAULT_STYLE | wx.NO_BORDER)
        
        imglist = wx.ImageList(16, 16, True, 2)
        imglist.Add(images.folder.GetBitmap())
        imglist.Add(images.file_new.GetBitmap())
        
        # create a icon for each file type / status:
        
        bmp_stat = {'modified': images.modified, 'added': images.added, 
                       'deleted': images.deleted, 'clean': images.clean,
                       'unknown': images.conflict, 
                       'missing': None, 'ignored': None}
        bmp_exts = {'txt': images.file_txt, 'xml': images.file_xml, 
                     'py': images.file_py, '': images.file_new}
        self.repo_icons = {}
        i = 2
        for f_ex, f_st in [(ex, st) for ex in bmp_exts for st in bmp_stat]:
            b_ex = bmp_exts[f_ex]
            b_st = bmp_stat[f_st]
            if b_st:
                bmp = images.merge_bitmaps(b_ex.GetBitmap(), 
                                             b_st.GetBitmap())
            else:
                bmp = b_ex.GetBitmap()
            imglist.Add(bmp)
            self.repo_icons['%s_%s' % (f_ex, f_st)] = i
            i += 1

        tree.AssignImageList(imglist)

        # extra controls to search / filter
        
        self.repo_slider = wx.Slider(panel, style=wx.SL_HORIZONTAL)
        tip = wx.ToolTip('Filter context files by relevance (active task)')
        self.repo_slider.SetToolTip(tip)
        self.repo_slider.Bind(wx.EVT_SLIDER, self.OnSearchRepo)

        self.repo_filter = wx.SearchCtrl(panel, style=wx.TE_PROCESS_ENTER)
        self.repo_filter.ShowCancelButton(True)
        self.repo_filter.Bind(wx.EVT_TEXT_ENTER, self.OnSearchRepo)
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.repo_tree, 1, wx.EXPAND)
        sizer.Add(self.repo_slider, 0, wx.EXPAND|wx.ALL, 5)
        sizer.Add(self.repo_filter, 0, wx.EXPAND|wx.ALL, 5)
        if 'wxMac' in wx.PlatformInfo:
            sizer.Add((5,5))  # Make sure there is room for the focus ring
        panel.SetSizer(sizer)
        
        menu = wx.Menu()
        #item = menu.AppendRadioItem(-1, "Search Filenames")
        #self.Bind(wx.EVT_MENU, self.OnSearchRepo, item)
        #item = menu.AppendRadioItem(-1, "Search Content")
        #self.Bind(wx.EVT_MENU, self.OnSearchRepo, item)
        for st in ('modified', 'added', 'deleted', 'clean', 'unknown', 
                   'missing', 'ignored'):
            item = menu.AppendCheckItem(-1, "%s" % st, "Show %s files" % st)
            item.Check((st not in ('ignored', 'unknown')))
            self.Bind(wx.EVT_MENU, self.OnSearchRepo, item)
        self.repo_filter.SetMenu(menu)

        # restore file history config:
        cfg_history = wx.GetApp().get_config("HISTORY")
        for filenum in range(9,-1,-1):
            filename = cfg_history.get('repo_%s' % filenum, "")
            if filename:
                self.repo_filehistory.AddFileToHistory(filename)
        
        return panel