Exemplo n.º 1
0
    def _createAreaSplitter(self):
        """
        Создать разделитель областей.
        @return: Объект главного вертикального разделителя или 
            None в случае ошибки.
        """
        try:
            if self.area_split:
                # Вертикальный сплиттер
                self._v_area_splitter = MultiSplitterWindow(
                    self, style=wx.SP_LIVE_UPDATE)
                self._v_area_splitter.SetOrientation(wx.VERTICAL)
                # Горизонтальный сплиттер
                self._h_area_splitter = MultiSplitterWindow(
                    self._v_area_splitter, style=wx.SP_LIVE_UPDATE)
                self._h_area_splitter.SetOrientation(wx.HORIZONTAL)
                self._insPanel(self._v_area_splitter, 1, self._h_area_splitter)

                # ВНИМАНИЕ!!!
                # Установить принудительно размер главного сплиттера,
                # а то объект не перерисовывается!!!
                self._v_area_splitter.SetSize(self.GetClientSize())

            return self._v_area_splitter
        except:
            io_prnt.outErr(u'Ошибка создания разделителя областей.')
            return None
Exemplo n.º 2
0
    def __init__(self, parent, log):
        self.log = log
        wx.Panel.__init__(self, parent, -1)

        cp = ControlPane(self)

        splitter = MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
        self.splitter = splitter
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(cp)
        sizer.Add(splitter, 1, wx.EXPAND)
        self.SetSizer(sizer)

        p1 = SamplePane(splitter, "pink", "Panel One")
        p1.SetOtherLabel("There are two sash\n"
                         "drag modes. Try\n"
                         "dragging with and\n"
                         "without the Shift\n"
                         "key held down.")
        splitter.AppendWindow(p1, 140)

        p2 = SamplePane(splitter, "sky blue", "Panel Two")
        p2.SetOtherLabel("This window\nhas a\nminsize.")
        p2.SetMinSize(p2.GetBestSize())
        splitter.AppendWindow(p2, 150)

        p3 = SamplePane(splitter, "yellow", "Panel Three")
        splitter.AppendWindow(p3, 125)

        p4 = SamplePane(splitter, "Lime Green", "Panel Four")
        splitter.AppendWindow(p4)

        self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.OnChanged)
        self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGING, self.OnChanging)
Exemplo n.º 3
0
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, 'Planet Hunt', size=(1400, 600))

        self.splitter = MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
        # The passing references to panels and controsl to each other
        # seems a bit sloppy and I want to do away with it. Not sure how yet.
        data_display_panel = DataDisplayPanel(self.splitter)
        data_modify_panel = DataModifyPanel(self.splitter, data_display_panel)
        data_search_panel = DataSearchPanel(self.splitter, data_display_panel,
                                            data_modify_panel)
        self.splitter.AppendWindow(data_search_panel, sashPos=150)
        self.splitter.AppendWindow(data_display_panel, sashPos=1050)
        self.splitter.AppendWindow(data_modify_panel)

        status_bar = self.CreateStatusBar()
        menubar_main = wx.MenuBar()
        file_menu = wx.Menu()
        edit_menu = wx.Menu()
        file_menu.Append(wx.NewIdRef(), 'Connect...',
                         'Connect to a new server')
        file_menu.Append(wx.NewIdRef(), 'Close', 'Quit the application')
        menubar_main.Append(file_menu, 'File')
        menubar_main.Append(edit_menu, 'Edit')
        self.SetMenuBar(menubar_main)
        self.SetStatusBar(status_bar)
Exemplo n.º 4
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)

        self.splitter = MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
        self.leftsplitter = wx.SplitterWindow(self.splitter,
                                              style=wx.BORDER_NONE)

        p1 = ControllersPanel(self.leftsplitter)
        p2 = RecordPanel(self.leftsplitter, True)
        self.leftsplitter.SplitHorizontally(p1, p2, -300)

        p3 = SpecialsPanel(self.splitter)
        p4 = DetailsPanel(self.splitter)
        self.splitter.AppendWindow(self.leftsplitter, 180)
        self.splitter.AppendWindow(p3, 180)
        self.splitter.AppendWindow(p4, 150)

        self.controllersPanel = p1
        self.specialsPanel = p3
        self.detailsPanel = p4
        self.recordPanel = p2

        # layout
        import Layout
        Layout.SingleLayout(self, self.splitter)

        # bindings
        self.Bind(wx.EVT_BUTTON, self.OnPlay, self.detailsPanel.testButton)
        self.specialsPanel.onSelChangedCallback = self.detailsPanel.Load
Exemplo n.º 5
0
    def __init__(self, parent, id):
        wx.Frame.__init__(self,
                          parent,
                          id,
                          'Profile Generation',
                          size=(1400, 800))

        self.splitter = MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
        self.control_panel = ControlPanel(self.splitter)
        self.field_panel = FieldPanel(self.splitter)
        self.field_panel.control_panel = self.control_panel
        self.control_panel.field_panel = self.field_panel
        self.splitter.AppendWindow(self.field_panel,
                                   sashPos=self.field_panel.w)
        self.splitter.AppendWindow(self.control_panel)
        # Window dressings like status and menu bars; not wired to anything
        status_bar = self.CreateStatusBar()
        menubar_main = wx.MenuBar()
        file_menu = wx.Menu()
        edit_menu = wx.Menu()
        file_menu.Append(wx.NewIdRef(), 'Open Profile...',
                         'Open an existing profile')
        file_menu.Append(wx.NewIdRef(), 'Close', 'Quit the application')
        menubar_main.Append(file_menu, 'File')
        menubar_main.Append(edit_menu, 'Edit')
        self.SetMenuBar(menubar_main)
        self.SetStatusBar(status_bar)
Exemplo n.º 6
0
    def InitPage(self):
        # Création des splitter
        self.splitterV = wx.SplitterWindow(self,
                                           -1,
                                           style=wx.SP_3D | wx.SP_NO_XP_THEME
                                           | wx.SP_LIVE_UPDATE)
        self.splitterH = MultiSplitterWindow(self.splitterV,
                                             -1,
                                             style=wx.SP_NOSASH
                                             | wx.SP_LIVE_UPDATE)
        self.splitterH.SetOrientation(wx.VERTICAL)
        self.splitterH.SetBackgroundColour(couleurFondPanneau)
        # Création du panel Planning
        self.panelPlanning = CTRL_Planning.PanelPlanning(self.splitterV, -1)
        # Création du panel Calendrier
        self.panelCalendrier = PanelCalendrier(self.splitterH, -1)
        self.panelCalendrier.SetMinSize((200, 220))
        self.splitterH.AppendWindow(self.panelCalendrier, 220)
        # Création du panel Légendes
        self.panelLegendes = PanelLegendes(self.splitterH, -1)
        #self.panelLegendes.SetMinSize((300, 200))
        self.splitterH.AppendWindow(self.panelLegendes, 160)
        # Création du panel Personnes
        self.panelPersonnes = PanelPersonnes(self.splitterH, -1)
        self.panelPersonnes.SetMinSize((200, 200))
        self.splitterH.AppendWindow(self.panelPersonnes, 200)

        self.splitterH.SetMinimumPaneSize(100)

        self.__do_layout()

        # Affichage des présences d'aujourd'hui
        self.panelCalendrier.MAJselectionDates(listeDates=selectionDates)

        self.init = True
 def __init__(self,parent,id,title=""):
     wx.Frame.__init__(self,parent,title = title,pos = (15,15),size = (1260,800))
     mainsplitter = MultiSplitterWindow(self, style=wx.SP_3D | wx.SP_LIVE_UPDATE)
     mainsplitter.SetOrientation(wx.VERTICAL)
     self.splitterpanel1 = MainPanel(mainsplitter)
     self.splitterpanel2 = BottomPanel(mainsplitter)
     mainsplitter.AppendWindow(self.splitterpanel1, -1)
     mainsplitter.AppendWindow(self.splitterpanel2, -1)
     mainsplitter.SetSashPosition(0, 410)
 def __init__(self,parent):
     wx.Panel.__init__(self, parent, pos = (5,409),size = (1000,350),style=wx.TAB_TRAVERSAL | wx.BORDER_SIMPLE)
     mainsplitter = MultiSplitterWindow(self)
     mainsplitter.SetOrientation(wx.VERTICAL)
     self.splitterpanel_result = ResultPanel(mainsplitter)
     self.splitterpanel_log = LogPanel(mainsplitter)
     mainsplitter.AppendWindow(self.splitterpanel_result,0)
     mainsplitter.AppendWindow(self.splitterpanel_log,0)
     mainsplitter.SetSashPosition(0,200)
Exemplo n.º 9
0
    def __init__(self, parent, frame, num_miners=4):
        wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)

        self.parent = parent
        self.frame = frame
        self.resize_lock = False

        self.num_miners = num_miners

        self.devicesJson = self.loadDevices()

        self.splitter = MultiSplitterWindow(self,
                                            id=wx.ID_ANY,
                                            style=wx.SP_LIVE_UPDATE)
        self.splitter.SetOrientation(wx.HORIZONTAL)

        self.splitter.SetMinimumPaneSize(1)

        self.miner0 = PMI.PanelMinerInstance(self.splitter, self, "Miner #0",
                                             self.devicesJson['miner0'],
                                             self.devicesJson['miner0num'],
                                             self.devicesJson['devices'])
        self.miner1 = PMI.PanelMinerInstance(self.splitter, self, "Miner #1",
                                             self.devicesJson['miner1'],
                                             self.devicesJson['miner1num'],
                                             self.devicesJson['devices'])
        self.miner2 = PMI.PanelMinerInstance(self.splitter, self, "Miner #2",
                                             self.devicesJson['miner2'],
                                             self.devicesJson['miner2num'],
                                             self.devicesJson['devices'])
        self.miner3 = PMI.PanelMinerInstance(self.splitter, self, "Miner #3",
                                             self.devicesJson['miner3'],
                                             self.devicesJson['miner3num'],
                                             self.devicesJson['devices'])

        self.splitter.AppendWindow(self.miner0)
        self.splitter.AppendWindow(self.miner1)
        self.splitter.AppendWindow(self.miner2)
        self.splitter.AppendWindow(self.miner3)

        self.splitter.Bind(wx.EVT_SIZE, self.resizeMinerPanels)
        #self.splitter.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGING, self.sashChanging)
        #self.splitter.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.resizeMinerPanels)

        self.collapsePanel = CollapsePanel(self, self.devicesJson['resize'],
                                           self.devicesJson['transfer'])

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizerW = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.splitter, 1, wx.EXPAND)
        sizerW.Add(self.collapsePanel, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, -1)
        sizer.Add(sizerW, 0, wx.EXPAND | wx.TOP, 1)

        self.SetSizer(sizer)
Exemplo n.º 10
0
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=wx.Size(1280, 800),style=wx.DEFAULT_FRAME_STYLE)
        # 窗口居中
        self.CenterOnScreen()
        # 分割窗口
        self.sp = MultiSplitterWindow(self)
        self.sp.SetOrientation(wx.VERTICAL)
        self.Bind(wx.PyEventBinder(wx.wxEVT_SPLITTER_SASH_POS_CHANGING),self.sashchange)
        # Top窗口:panel
        self.p_top = wx.Panel(self.sp, style=wx.SUNKEN_BORDER)
        self.p_top.Hide()
        # 下部分窗口:左右分割的splitter
        self.sp_main = MultiSplitterWindow(self.sp)
        # 上下两部分窗口填充
        self.sp.AppendWindow(self.p_top, sashPos=self.GetSize()[1] / 6)
        self.sp.AppendWindow(self.sp_main)

        # 下部分窗口的left:panel
        self.p_left = LeftPanel(self.sp_main, style=wx.SUNKEN_BORDER)
        self.p_left.Hide()
        # 下部分窗口的right:panel
        self.p_mains = [SearchPanel(self.sp_main, style=wx.SUNKEN_BORDER),
                        CheckPanel(self.sp_main, style=wx.SUNKEN_BORDER),
                        UpdataPanel(self.sp_main, style=wx.SUNKEN_BORDER),
                        SearchPanelByOffline(self.sp_main, style=wx.SUNKEN_BORDER)
                        ]
        for p in self.p_mains:
            p.Hide()

        # 下部分窗口默认填充查询页面
        self.sp_main.SetOrientation(wx.HORIZONTAL)
        self.sp_main.AppendWindow(self.p_left, sashPos=self.GetSize()[0] / 6)
        self.sp_main.AppendWindow(self.p_mains[0])
        self.main_index = 0

        self.Bind(wx.EVT_BUTTON, self.OnClick)
Exemplo n.º 11
0
    def __init__(self,parent,id):
        #Fenster initialiseren
        wx.Frame.__init__(self, parent=parent, id=id, title='Remote', size=(200,200))

        #Fenster aufteilen in mehrere Unterfenster
        splitter = MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
        #Unterfenster initialisieren (in jeweiligen Klassen) und anhaengen
        panel1=Controlpanel(splitter)
        graph1=MatplotPanel1(splitter)
        graph2=MatplotPanel2(splitter)
        graph3=MatplotPanel3(splitter)
        splitter.AppendWindow(panel1)
        splitter.AppendWindow(graph1)
        splitter.AppendWindow(graph2)
        splitter.AppendWindow(graph3)
        #setzt Trennlinie
        splitter.SetSashPosition(1,600)
        splitter.SetSashPosition(0,170)
        #verbindet Schliessen-Knopf mit Funktion
        self.Bind(wx.EVT_CLOSE,self.closewindow)
Exemplo n.º 12
0
    def __init__(self, parent):
        self.parent = parent
        wx.Panel.__init__(self, parent, -1)

        sizer = wx.BoxSizer(wx.VERTICAL)

        sizer1 = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(sizer1, 0, wx.EXPAND | wx.ALL, 2)

        regex_title = wx.StaticBox(self, -1, tr("Regular expression"))
        box1 = wx.StaticBoxSizer(regex_title, wx.VERTICAL)
        self.text = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)
        box1.Add(self.text, 1, wx.EXPAND | wx.ALL, 2)
        sizer1.Add(box1, 1, wx.EXPAND | wx.RIGHT, 4)

        box = wx.BoxSizer(wx.VERTICAL)
        self.btnRun = wx.Button(self, -1, tr('Run'))
        box.Add(self.btnRun, 0, wx.ALL, 2)
        self.btnCreate = wx.Button(self, -1, tr('Create'))
        box.Add(self.btnCreate, 0, wx.ALL, 2)
        sizer1.Add(box, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 4)

        find_title = wx.StaticBox(self, -1, tr("Methods"))
        box2 = wx.StaticBoxSizer(find_title, wx.VERTICAL)
        self.rdoFindFirst = wx.RadioButton(self,
                                           -1,
                                           tr("Find First"),
                                           style=wx.RB_GROUP)
        self.rdoFindAll = wx.RadioButton(self, -1, tr("Find All"))
        box2.Add(self.rdoFindFirst, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2)
        box2.Add(self.rdoFindAll, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2)
        sizer1.Add(box2, 0, wx.EXPAND | wx.RIGHT, 4)

        from_title = wx.StaticBox(self, -1, tr("From"))
        box3 = wx.StaticBoxSizer(from_title, wx.VERTICAL)
        self.rdoFromBeginning = wx.RadioButton(self,
                                               -1,
                                               tr("From beginning"),
                                               style=wx.RB_GROUP)
        self.rdoFromCaret = wx.RadioButton(self, -1, tr("From caret"))
        self.rdoInSelection = wx.RadioButton(self, -1, tr("In Selection"))
        box3.Add(self.rdoFromBeginning, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL,
                 2)
        box3.Add(self.rdoFromCaret, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2)
        box3.Add(self.rdoInSelection, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2)
        sizer1.Add(box3, 0, wx.EXPAND | wx.RIGHT, 4)

        flag_title = wx.StaticBox(self, -1, tr("Flags"))
        box4 = wx.StaticBoxSizer(flag_title, wx.VERTICAL)
        grid1 = wx.FlexGridSizer(0, 2, 0, 0)
        box4.Add(grid1, 1, wx.EXPAND | wx.ALL, 2)
        sizer1.Add(box4, 0, wx.EXPAND | wx.RIGHT, 4)

        groups = [
            ('ignore', tr("Ignore Case(I)"), re.I, 're.I'),
            ('locale', tr("Locale(L)"), re.L, 're.L'),
            ('multiline', tr("Multi Line(M)"), re.M, 're.M'),
            ('dotall', tr("Dot All(S)"), re.S, 're.S'),
            ('unicode', tr("Unicode(U)"), re.U, 're.U'),
            ('verbose', tr("Verbose(V)"), re.X, 're.X'),
        ]
        self.checks = {}
        k = 0
        for i, v in enumerate(groups):
            ctrl_name, label, flag, strflag = v
            obj = wx.CheckBox(self, -1, label)
            wx.EVT_CHECKBOX(obj, obj.GetId(), self.OnChange)
            self.checks[ctrl_name] = obj, flag, strflag
            grid1.Add(obj, k, wx.ALL, 2)
            if i % 2 == 0:
                k += 1

        self.splitter = splitter = MultiSplitterWindow(self)
        self.result = CheckList.List(splitter,
                                     columns=[
                                         (tr("Items"), 150, 'left'),
                                         (tr("Values"), 300, 'left'),
                                     ],
                                     style=wx.LC_REPORT | wx.SUNKEN_BORDER
                                     | wx.LC_SINGLE_SEL)
        splitter.AppendWindow(self.result, 450)
        self.matches = wx.TextCtrl(splitter,
                                   -1,
                                   "",
                                   style=wx.TE_MULTILINE | wx.TE_RICH2)
        splitter.AppendWindow(self.matches, 150)

        splitter.SetOrientation(wx.HORIZONTAL)
        sizer.Add(splitter, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 4)

        self.load()

        wx.EVT_BUTTON(self.btnRun, self.btnRun.GetId(), self.OnChange)
        wx.EVT_BUTTON(self.btnCreate, self.btnCreate.GetId(),
                      self.OnCreateExpression)
        wx.EVT_TEXT(self.text, self.text.GetId(), self.OnChange)

        self.SetSizer(sizer)
        self.SetAutoLayout(True)
Exemplo n.º 13
0
    def __init__(self, parent):
        self.initmixin()

        wx.Panel.__init__(self, parent, -1)

        self.mainframe = Globals.mainframe
        self.pref = self.mainframe.pref

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer1 = wx.BoxSizer(wx.HORIZONTAL)

        if not self.pref.pairprog_username:
            self.pref.pairprog_username = self.pref.personal_username

        sizer1.Add(wx.StaticText(self, -1,
                                 tr("Name") + ':'), 0,
                   wx.ALIGN_CENTER_VERTICAL | wx.RIGHT | wx.LEFT, 2)
        self.txtName = wx.TextCtrl(self,
                                   -1,
                                   self.pref.pairprog_username,
                                   size=(100, -1))
        sizer1.Add(self.txtName, 0,
                   wx.ALIGN_CENTER_VERTICAL | wx.RIGHT | wx.LEFT, 2)
        sizer1.Add(wx.StaticText(self, -1,
                                 tr("Host") + ':'), 0,
                   wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
        self.txtIP = wx.TextCtrl(self,
                                 -1,
                                 self.pref.pairprog_host,
                                 size=(150, -1))
        sizer1.Add(self.txtIP, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
        sizer1.Add(wx.StaticText(self, -1,
                                 tr("Port") + ':'), 0,
                   wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
        self.txtPort = wx.SpinCtrl(self,
                                   min=1,
                                   max=65536,
                                   value=str(self.pref.pairprog_port))
        sizer1.Add(self.txtPort, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
        self.btnStart = wx.Button(self, -1, tr("Start Server"))
        sizer1.Add(self.btnStart, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
        self.btnConnect = wx.Button(self, -1, tr("Connect Server"))
        sizer1.Add(self.btnConnect, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)

        sizer.Add(sizer1, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 2)

        self.splitter = MultiSplitterWindow(self, -1)

        userpanel = UserPanel(self.splitter)
        self.splitter.AppendWindow(userpanel, 200)
        self.userlist = userpanel.list

        filelistpanel = FileListPanel(self.splitter)
        self.splitter.AppendWindow(filelistpanel, 150)
        self.filelist = filelistpanel.list

        chatpanel = ChatPanel(self.splitter)
        self.splitter.AppendWindow(chatpanel)
        self.chat = chatpanel.chat
        self.chatroom = chatpanel.chatroom
        self.btnSend = chatpanel.btnSend
        self.btnClear = chatpanel.btnClear
        self.btnSave = chatpanel.btnSave
        self.splitter.SetMinimumPaneSize(150)
        self.splitter.SetOrientation(wx.HORIZONTAL)

        sizer.Add(self.splitter, 1, wx.EXPAND | wx.ALL, 2)

        self.SetSizer(sizer)
        self.SetAutoLayout(True)

        self.btnStart.Bind(wx.EVT_BUTTON, self.OnStart)
        self.btnConnect.Bind(wx.EVT_BUTTON, self.OnConnect)
        self.btnSend.Bind(wx.EVT_BUTTON, self.OnSend)
        self.btnClear.Bind(wx.EVT_BUTTON, self.OnClear)
        self.btnSave.Bind(wx.EVT_BUTTON, self.OnSave)
        self.filelist.Bind(wx.EVT_RIGHT_DOWN, self.OnFilelistRClick)
        self.userlist.Bind(wx.EVT_RIGHT_DOWN, self.OnUserlistRClick)
        self.chat.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)

        self.status = ''
        self.server = None
        self.client = None
        self.servercommands = ServerCommands(self)
        self.clientcommands = ClientCommands(self)
        self.users = {}
        self.files = {}
        self.cmdrecorder = CommandRecord.CommandRecord()
        self.filelistpopmenus = None
        self.userlistpopmenus = None
Exemplo n.º 14
0
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent=parent, title=title, size=(400, 400))

        self.model = None
        self.parent = parent

        self.edit_window_visible = False

        self.k1 = ''
        self.k2 = ''
        self.k3 = ''
        self.listen()

        self.status_bar = TodoStatusBar(self)
        self.SetStatusBar(self.status_bar)

        self.switch = False

        # Menu entries
        self.button_menu_ID1 = wx.NewId()
        self.button_menu_ID2 = wx.NewId()
        self.button_menu_ID3 = wx.NewId()
        self.button_menu_ID4 = wx.NewId()
        self.Bind(wx.EVT_MENU, self.OnMenuEntrySort, id=self.button_menu_ID1)
        self.Bind(wx.EVT_MENU, self.OnMenuEntryInfo, id=self.button_menu_ID2)
        self.Bind(wx.EVT_MENU,
                  self.OnMenuEntryVisualReport,
                  id=self.button_menu_ID3)
        self.Bind(wx.EVT_MENU,
                  self.OnMenuEntryToggleEditWindow,
                  id=self.button_menu_ID4)

        # Multiple keybindings states
        self.state_C_x_ID = wx.NewId()
        self.state_ID2 = wx.NewId()
        self.state_undo_ID = wx.NewId()
        self.Bind(wx.EVT_MENU, self.OnState_C_x, id=self.state_C_x_ID)
        self.Bind(wx.EVT_MENU, self.OnState2, id=self.state_ID2)
        self.Bind(wx.EVT_MENU, self.OnStateUndo, id=self.state_undo_ID)

        self.accelerator_entries = [
            # Single keybindings
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('S'), self.button_menu_ID1),
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('I'), self.button_menu_ID2),
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('R'), self.button_menu_ID3),
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('E'), self.button_menu_ID4),
            # Multiple keybindings
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('x'), self.state_C_x_ID),
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('f'), self.state_ID2),
            wx.AcceleratorEntry(wx.ACCEL_CTRL, ord('g'), self.state_undo_ID)
        ]
        self.accelerator_table = wx.AcceleratorTable(self.accelerator_entries)
        self.SetAcceleratorTable(self.accelerator_table)

        # temp_data must not be empty for selection to work correctly
        self.update_temp_data()

        self.main_panel = wx.Panel(self)
        self.main_panel_sizer = wx.BoxSizer(wx.VERTICAL)

        self.main_splitter = MultiSplitterWindow(self.main_panel,
                                                 style=wx.SP_LIVE_UPDATE
                                                 | wx.SP_BORDER)
        self.main_splitter.SetOrientation(wx.HORIZONTAL)

        # self.main_splitter.SetMinimumPaneSize(0)

        self.panel = TodoListCtrlPanel(self.main_splitter)
        self.panel.get_listctr().colorize()
        self.SetBackgroundColour(wx.Colour(255, 119, 0))

        self.edit_window = TodoEditWindow(self.main_splitter)
        self.edit_window.Hide()

        self.main_splitter.AppendWindow(self.panel, self.GetSize()[1] / 3 * 2)

        self.search_box = SearchBox(self)

        self.panel.get_listctr().brother_widget = self.search_box
        # self.Bind(wx.EVT_CHAR_HOOK, self.OnSearch, self.search_box)
        self.search_box.Bind(wx.EVT_TEXT, self.OnSearch, self.search_box)
        # self.Bind(wx.EVT_TEXT_ENTER, self.OnEnter)  #, self.search_box)
        self.Bind(wx.EVT_TEXT_ENTER, self.OnSearch)  #, self.search_box)
        # self.Bind(wx.EVT_CHAR, self.OnBackspace, self.search_box)
        # self.Bind(wx.EVT_CHAR_HOOK, self.OnEnter)  # , self.search_box)
        self.Bind(wx.EVT_SET_FOCUS, self.OnBackspace, self.search_box)
        self.Bind(wx.EVT_KILL_FOCUS, self.OnBackspace, self.search_box)
        self.Bind(wx.EVT_WINDOW_DESTROY, self.OnBackspace, self.search_box)
        self.Bind(wx.EVT_SIZE, self.OnSize, self)
        self.search_box.Bind(wx.EVT_CHAR, self.OnChar, self.search_box)

        self.search_box.SetFocus()

        self.main_slider = wx.Slider(
            # self, 100, 25, 1, 100, (30, 60), (250, -1),
            self.status_bar,
            100,
            25,
            1,
            len(temp_data),
            (30, 60),
            (250, -1),
            wx.SL_HORIZONTAL | wx.SL_AUTOTICKS)  # |wx.SL_LABELS)
        self.main_slider.SetTickFreq(5, 1)
        self.main_slider.SetLineSize(5)
        self.main_slider.SetPageSize(5)
        self.main_slider.SetBackgroundColour(wx.Colour(80, 80, 80))
        self.main_slider.Bind(wx.EVT_SLIDER, self.OnSlider, self.main_slider)
        # TODO: Add text for current value or move it somewhere else
        # self.main_slider.SetPosition((self.status_bar.GetFieldRect(1).x+200, 0))

        self.addTaskButton = wx.Button(self, 0,
                                       'Add &task')  # , size=(125, -1))
        self.addTaskButton.SetBackgroundColour(wx.Colour(255, 77, 0))
        self.addTaskButton.Bind(wx.EVT_BUTTON, self.OnClickAddTaskButton,
                                self.addTaskButton)

        self.setPriorityButton = wx.Button(self, 0, 'Set &priority')
        self.setPriorityButton.SetBackgroundColour(wx.Colour(255, 77, 0))
        self.setPriorityButton.Bind(wx.EVT_BUTTON,
                                    self.OnClickSetPriorityButton,
                                    self.setPriorityButton)

        self.deleteTaskButton = wx.Button(self, 0, '&Delete task')
        self.deleteTaskButton.SetBackgroundColour(wx.Colour(255, 77, 0))
        self.deleteTaskButton.Bind(wx.EVT_BUTTON, self.OnClickDeleteTaskButton,
                                   self.deleteTaskButton)

        self.moreButton = wx.Button(self, 0, '&More')
        self.moreButton.SetBackgroundColour(wx.Colour(255, 77, 0))
        self.moreButton.Bind(wx.EVT_BUTTON, self.OnClickMoreButton,
                             self.moreButton)

        self.main_panel_sizer.Add(self.main_splitter, 1, wx.EXPAND | wx.ALL)
        self.main_panel.SetSizer(self.main_panel_sizer)
        self.main_splitter.Layout()
        self.main_panel.Layout()

        self.buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
        self.panel.sizer.Layout()
        # self.buttonSizer.Add(self.main_slider, 0, wx.ALIGN_LEFT|wx.ALL)
        self.buttonSizer.Add(self.addTaskButton, 0, wx.ALIGN_LEFT | wx.ALL)
        self.buttonSizer.Add(self.setPriorityButton, 0,
                             wx.ALIGN_RIGHT | wx.ALL)
        self.buttonSizer.Add(self.deleteTaskButton, 0, wx.ALIGN_RIGHT | wx.ALL)
        self.buttonSizer.Add(self.moreButton, 0, wx.ALIGN_RIGHT | wx.ALL)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.search_box, 0, wx.GROW | wx.ALL, 6)
        # self.sizer.Add(self.addTaskButton, 0, wx.ALIGN_RIGHT|wx.ALL)
        # self.sizer.Add(self.setPriorityButton, 0, wx.ALIGN_RIGHT|wx.ALL)
        self.sizer.Add(self.buttonSizer, 0, wx.ALIGN_RIGHT | wx.ALL)
        self.sizer.Add(self.main_panel, 1, wx.EXPAND | wx.ALL)
        # self.sizer.Add(self.panel, 1, wx.EXPAND|wx.ALL)
        # self.sizer.Add(self.edit_window, 1, wx.EXPAND|wx.ALL)
        # self.sizer.Add(self.main_splitter, 1, wx.EXPAND|wx.ALL)
        self.SetSizer(self.sizer)
        self.SetAutoLayout(True)
        self.Show(True)
Exemplo n.º 15
0
    def InitPage(self):
        self.splitter = wx.SplitterWindow(self,
                                          -1,
                                          style=wx.SP_3D | wx.SP_NO_XP_THEME
                                          | wx.SP_LIVE_UPDATE)
        self.window_D = wx.Panel(self.splitter, -1)

        # Panel Etat des dossiers
        self.window_G = MultiSplitterWindow(self.splitter,
                                            -1,
                                            style=wx.SP_NOSASH
                                            | wx.SP_LIVE_UPDATE)
        self.window_G.SetOrientation(wx.VERTICAL)
        self.window_G.SetMinimumPaneSize(100)
        self.panel_dossiers = PanelDossiers(self.window_G)
        self.window_G.AppendWindow(
            self.panel_dossiers,
            500)  # Ici c'est la hauteur du panel pb de dossiers

        # Panel vide
        self.panel_vide = wx.Panel(self.window_G, -1)
        self.panel_vide.SetBackgroundColour((122, 161, 230))
        self.window_G.AppendWindow(self.panel_vide, 200)

        self.panel_resume = PanelResume(self.window_D)
        self.label_selection = wx.StaticText(self.window_D, -1, u"")
        self.label_selection.SetForegroundColour((122, 161, 230))
        self.label_selection.Show(False)
        self.listCtrl_personnes = OL_personnes.ListView(
            self.window_D,
            id=-1,
            name="OL_personnes",
            style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL
            | wx.LC_HRULES | wx.LC_VRULES)
        self.listCtrl_personnes.SetMinSize((20, 20))
        self.barreRecherche = BarreRecherche(self.window_D)

        self.bouton_ajouter = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ajouter.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_modifier = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Modifier.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_supprimer = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Supprimer.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_rechercher = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(
                Chemins.GetStaticPath("Images/16x16/Calendrier3jours.png"),
                wx.BITMAP_TYPE_ANY))
        self.bouton_affichertout = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Actualiser.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_options = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Mecanisme.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_courrier = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Mail.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_imprimer = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Imprimante.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_export_texte = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Document.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_export_excel = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Excel.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_aide = wx.BitmapButton(
            self.window_D, -1,
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Aide.png"),
                      wx.BITMAP_TYPE_ANY))

        self.barreTitre_liste = FonctionsPerso.BarreTitre(
            self.window_D, _(u"Liste des individus"),
            _(u"Liste des individus"))

        # Diminution de la taille de la police sous linux
        if "linux" in sys.platform:
            self.bouton_export_excel.Enable(False)

        self.__set_properties()
        self.__do_layout()

        # Binds
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAjouter, self.bouton_ajouter)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonModifier, self.bouton_modifier)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonSupprimer, self.bouton_supprimer)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonRechercher,
                  self.bouton_rechercher)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAfficherTout,
                  self.bouton_affichertout)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonOptions, self.bouton_options)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonCourrier, self.bouton_courrier)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonImprimer, self.bouton_imprimer)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonExportTexte,
                  self.bouton_export_texte)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonExportExcel,
                  self.bouton_export_excel)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide)

        self.bouton_modifier.Enable(False)
        self.bouton_supprimer.Enable(False)

        self.AffichePanelResume(False)

        self.init = True