def __do_events(self): wx.EVT_BUTTON(self.parent_window, self.tab_send.GetId(), self.OnSendMessage) wx.EVT_BUTTON(self.parent_window, self.tab_clear.GetId(), self.OnClearMessage) wx.EVT_TEXT_ENTER(self.tab_panel, self.tab_chatBox.GetId(), self.OnSendMessage) wx.EVT_KEY_DOWN(self.parent_window, self.OnKeyDown) wx.EVT_LIST_ITEM_RIGHT_CLICK(self.tab_panel, self.tab_listPeople.GetId(), self.OnRightClick_People) wx.EVT_RIGHT_DOWN(self.tab_chatArea, self.OnRightClick_ChatArea) #wx.EVT_RIGHT_DOWN(self.tab_panel, self.tab_chatArea.GetId(), self.OnRightClick_ChatArea) wx.EVT_MENU(self.tab_panel, ID_POPUP_USERS_PRIVATEMSG, self.OnPrivateMessage) wx.EVT_MENU(self.tab_panel, ID_POPUP_USERS_SETAWAY, self.OnSetAway) wx.EVT_MENU(self.tab_panel, ID_POPUP_USERS_GETINFO, self.OnGetUserInfo) wx.EVT_MENU(self.tab_panel, ID_POPUP_CHANNEL_LOGGING, self.OnLogging) wx.EVT_MENU(self.tab_panel, ID_POPUP_CHANNEL_TIMESTAMP, self.OnTimeStamps) wx.EVT_MENU(self.tab_panel, ID_POPUP_CHANNEL_CLOSE, self.OnCloseTab)
def __init__(self, *args, **kwds): ''' Constructor ''' wx.ScrolledWindow.__init__(self, *args, **kwds) #CONSTANTES self.COLOR_TUITS = wx.Colour(225, 255, 255) #(Rojo, Verde, Azul) #VARIABLES self.cronologia = None self.esDM = False self.primeraVezClickDerecho = False self.controla = None self.visuali = None #self.tCtrlInfoTweet = wx.TextCtrl(self, -1, "", style=wx.TE_PROCESS_ENTER|wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_AUTO_URL) self.listCtrlListaTweets = ULC.UltimateListCtrl( self, -1, agwStyle=ULC.ULC_REPORT | ULC.ULC_HAS_VARIABLE_ROW_HEIGHT | ULC.ULC_SEND_LEFTCLICK) self.__set_properties() self.__do_layout() self.listCtrlListaTweets.Bind(wx.EVT_LIST_ITEM_SELECTED, self.casillaSeleccionada) wx.EVT_LIST_ITEM_RIGHT_CLICK(self, self.listCtrlListaTweets.GetId(), self.clicDerechoEstado)
def init_events(self): tID = self.GetId() wx.EVT_LIST_BEGIN_DRAG(self, tID, self.OnMouseDown) wx.EVT_LEFT_DCLICK(self, self.OnDoubleClick) wx.EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected) wx.EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemSelected) wx.EVT_LIST_ITEM_RIGHT_CLICK(self, tID, self.OnRightClick) wx.EVT_CHAR(self, self.OnKeyPress)
def __events__(self): wx.EVT_BUTTON(self.folderNew, -1, self.onFolderNew) wx.EVT_BUTTON(self.folderDelete, -1, self.onFolderDelete) wx.EVT_LISTBOX(self.folderList, -1, self.onFolderSelect) wx.EVT_LIST_ITEM_SELECTED(self.fileList, -1, self.onFileSelect) wx.EVT_LIST_ITEM_RIGHT_CLICK(self.fileList, -1, self.onFileRightClick) wx.EVT_LIST_ITEM_MIDDLE_CLICK(self.fileList, -1, self.onFileMiddleClick) self.folderList.GetSelection()
def __init__(self, parent): """ Class constructor @param parent: parent object """ wx.Panel.__init__(self, parent, id=wx.ID_ANY) # Create list box self.log_list = wx.ListCtrl(self, -1, style=wx.LC_REPORT) self.log_list.ScrollList(10, 10) self.log_list.InsertColumn(0, "Timestamp") self.log_list.InsertColumn(1, "Type") self.log_list.InsertColumn(2, "Message") self.log_list.SetColumnWidth(0, 140) self.log_list.SetColumnWidth(1, 60) self.log_list.SetColumnWidth(2, 400) # create the image list: il = wx.ImageList(16, 16) self.icons = os.path.join( os.path.abspath(os.path.dirname(sys.argv[0])), "images") self.arrow_left_icon = il.Add( wx.Bitmap(os.path.join(self.icons, "arrow_left.ico"), wx.BITMAP_TYPE_ICO)) self.arrow_right_icon = il.Add( wx.Bitmap(os.path.join(self.icons, "arrow_right.ico"), wx.BITMAP_TYPE_ICO)) self.warning_icon = il.Add( wx.Bitmap(os.path.join(self.icons, "warning.ico"), wx.BITMAP_TYPE_ICO)) self.log_list.AssignImageList(il, wx.IMAGE_LIST_SMALL) # Right-click event wx.EVT_LIST_ITEM_RIGHT_CLICK(self.log_list, -1, self._cb_right_click) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.log_list, 1, wx.EXPAND) self.SetSizer(sizer) # Redirect stdout to the LogCtrl widget #sys.stdout = RedirectText(self) pub.subscribe(self.cb_packet_received, "packet_received") pub.subscribe(self.cb_packet_sent, "packet_sent")
def __init__(self, *args, **kwargs): """ Construct the list control. """ kwargs['style'] = wx.LC_VIRTUAL | wx.LC_REPORT self.popup_menu = kwargs.pop('popup_menu') wx.ListCtrl.__init__(self, *args, **kwargs) self.InsertColumn(0, "Service name", width=150) self.InsertColumn(1, "Current state", width=100) self.InsertColumn(2, "Controls accepted", width=100) self.InsertColumn(3, "Start type", width=100) self.InsertColumn(4, "Binary path name", width=300) self.InsertColumn(5, "Last Error", width=200) wx.EVT_LIST_ITEM_RIGHT_CLICK(self, -1, self.on_context_menu) self.image_list = wx.ImageList(16, 16) self.image_list.Add(wx.Bitmap('lock.png', wx.BITMAP_TYPE_PNG)) self.SetImageList(self.image_list, wx.IMAGE_LIST_SMALL) self.image_list_dict = { 'lock': 0, }
def __init__(self, parent, id, x, y): wx.Panel.__init__(self, parent, id) self.parent = parent # Create the playlist control self.TracksId = wx.NewId() self.TrackList = wx.ListCtrl(self, self.TracksId, style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.SUNKEN_BORDER | wx.LC_EDIT_LABELS) self.TrackList.InsertColumn(0, "Track list", width=DEFAULT_WIDTH) self.TrackList.Show(True) # Create the status bar self.StatusBar = wx.StatusBar(self, -1) self.StatusBar.SetStatusText("No rip loaded") # Create a sizer for the tree view and status bar self.VertSizer = wx.BoxSizer(wx.VERTICAL) self.VertSizer.Add(self.TrackList, 1, wx.EXPAND, 0) self.VertSizer.Add(self.StatusBar, 0, wx.EXPAND, 0) self.SetSizer(self.VertSizer) # Create IDs for popup menu self.menuRenameId = wx.NewId() self.menuEncodeId = wx.NewId() # Add handlers for right-click in the listbox wx.EVT_LIST_ITEM_RIGHT_CLICK(self.TrackList, wx.ID_ANY, self.OnRightClick) self.RightClickedItemIndex = -1 # Resize column width to the same as list width (or max title width, which larger) wx.EVT_SIZE(self.TrackList, self.onResize) self.MaxTitleWidth = 0 self.Show(True)
def __init__(self, parent, mainframe): self.initmixin() self.parent = parent self.mainframe = mainframe self.pref = self.mainframe.pref wx.Panel.__init__(self, parent, -1) self.box = wx.BoxSizer(wx.VERTICAL) self.box1 = wx.BoxSizer(wx.HORIZONTAL) obj = wx.StaticText(self, -1, tr('Account:')) self.box1.Add(obj, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) self.ID_SITELIST = wx.NewId() self.cmbSite= wx.ComboBox(self, self.ID_SITELIST, "", choices=self.mainframe.pref.blog_sites, size=(100, 20), style=wx.CB_READONLY) self.box1.Add(self.cmbSite, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) #manage self.ID_MANAGE = wx.NewId() self.btnManage = wx.Button(self, self.ID_MANAGE, tr('Manage'), size=(50, -1)) self.box1.Add(self.btnManage, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) #new button self.ID_NEW= wx.NewId() self.btnNew = wx.Button(self, self.ID_NEW, tr('New'), size=(40, -1)) self.box1.Add(self.btnNew, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) #delete button self.ID_DELETE= wx.NewId() self.btnDelete = wx.Button(self, self.ID_DELETE, tr('Del'), size=(40, -1)) self.box1.Add(self.btnDelete, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) #get last post self.ID_GETPOSTS = wx.NewId() self.btnGetposts = wx.Button(self, self.ID_GETPOSTS, tr('Get Post'), size=(65, -1)) self.box1.Add(self.btnGetposts, 0, wx.ALIGN_CENTER_VERTICAL) #get posts more self.ID_GETPOSTSMORE = wx.NewId() self.btnGetpostsMore = wx.Button(self, self.ID_GETPOSTSMORE, tr('>'), size=(15, -1)) self.box1.Add(self.btnGetpostsMore, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) #get posts more self.ID_CACHE = wx.NewId() self.btnCache = wx.Button(self, self.ID_CACHE, tr('Cache'), size=(40, -1)) self.box1.Add(self.btnCache, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 2) self.box.Add(self.box1, 0, wx.ALL|wx.EXPAND, 2) self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT | wx.LC_SINGLE_SEL) self.box.Add(self.list, 1, wx.EXPAND) self.SetSizer(self.box) self.SetAutoLayout(True) self.load() self.data = [] self.initlist() wx.EVT_UPDATE_UI(self.btnDelete, self.ID_DELETE, self.OnUpdateUI) wx.EVT_BUTTON(self.btnManage, self.ID_MANAGE, self.OnManage) wx.EVT_BUTTON(self.btnNew, self.ID_NEW, self.OnNew) wx.EVT_BUTTON(self.btnDelete, self.ID_DELETE, self.OnDelete) wx.EVT_BUTTON(self.btnGetposts, self.ID_GETPOSTS, self.OnGetPosts) wx.EVT_BUTTON(self.btnGetpostsMore, self.ID_GETPOSTSMORE, self.OnGetPostsMore) wx.EVT_BUTTON(self.btnCache, self.ID_CACHE, self.OnCache) wx.EVT_LIST_ITEM_ACTIVATED(self.list, self.list.GetId(), self.OnEntryEntered) wx.EVT_COMBOBOX(self.cmbSite, self.ID_SITELIST, self.OnSiteChanged) if self.popmenulist: self.popmenu = makemenu.makepopmenu(self, self.popmenulist, self.imagelist) wx.EVT_LIST_ITEM_RIGHT_CLICK(self.list, self.list.GetId(), self.OnRClick) wx.EVT_RIGHT_UP(self.list, self.OnRClick) self.callplugin('init', self)
def init(self, parent): """ Finishes initializing the editor by creating the underlying toolkit widget. """ factory = self.factory # Set up the adapter to use: self.adapter = factory.adapter self.sync_value(factory.adapter_name, 'adapter', 'from') # Determine the style to use for the list control: style = wx.LC_REPORT | wx.LC_VIRTUAL if factory.editable: style |= wx.LC_EDIT_LABELS if factory.horizontal_lines: style |= wx.LC_HRULES if not factory.multi_select: style |= wx.LC_SINGLE_SEL if (factory.title == '') and (factory.title_name == ''): style |= wx.LC_NO_HEADER # Create the list control and link it back to us: self.control = control = wxListCtrl(parent, -1, style=style) control._editor = self # Create the list control column: control.InsertColumn(0, '') # Set up the list control's event handlers: id = control.GetId() wx.EVT_LIST_BEGIN_DRAG(parent, id, self._begin_drag) wx.EVT_LIST_BEGIN_LABEL_EDIT(parent, id, self._begin_label_edit) wx.EVT_LIST_END_LABEL_EDIT(parent, id, self._end_label_edit) wx.EVT_LIST_ITEM_SELECTED(parent, id, self._item_selected) wx.EVT_LIST_ITEM_DESELECTED(parent, id, self._item_selected) wx.EVT_LIST_ITEM_RIGHT_CLICK(parent, id, self._right_clicked) wx.EVT_LIST_ITEM_ACTIVATED(parent, id, self._item_activated) wx.EVT_SIZE(control, self._size_modified) # Handle key events: wx.EVT_CHAR(control, self._key_pressed) # Handle mouse events: if 'edit' in factory.operations: wx.EVT_LEFT_DOWN(control, self._left_down) # Set up the drag and drop target: if PythonDropTarget is not None: control.SetDropTarget(PythonDropTarget(self)) # Initialize the editor title: self.title = factory.title self.sync_value(factory.title_name, 'title', 'from') # Set up the selection listener (if necessary): if factory.multi_select: self.sync_value(factory.selected, 'multi_selected', 'both', is_list=True) self.sync_value(factory.selected_index, 'multi_selected_indices', 'both', is_list=True) else: self.sync_value(factory.selected, 'selected', 'both') self.sync_value(factory.selected_index, 'selected_index', 'both') # Synchronize other interesting traits as necessary: self.sync_value(factory.activated, 'activated', 'to') self.sync_value(factory.activated_index, 'activated_index', 'to') self.sync_value(factory.right_clicked, 'right_clicked', 'to') self.sync_value(factory.right_clicked_index, 'right_clicked_index', 'to') # Make sure we listen for 'items' changes as well as complete list # replacements: self.context_object.on_trait_change(self.update_editor, self.extended_name + '_items', dispatch='ui') # Create the mapping from user supplied images to wx.ImageList indices: for image_resource in factory.images: self._add_image(image_resource) # Refresh the editor whenever the adapter changes: self.on_trait_change(self._refresh, 'adapter.+update', dispatch='ui') # Set the list control's tooltip: self.set_tooltip()
def __init__(self): if islogin() == False: dlg = LoginDialog() if wx.ID_OK == dlg.ShowModal(): dlg.Destroy() else: dlg.Destroy() wx.Exit() wx.Frame.__init__(self, None, -1, u'知乎收藏夹', size=(900, 500)) self.SetIcon(images_icon.AppIcon.GetIcon()) self.SetBackgroundColour(wx.Colour(240, 240, 240)) self.panel = wx.Panel(self) self.horizontalBoxSizer = wx.BoxSizer(wx.HORIZONTAL) self.baseBoxSizer = wx.BoxSizer(wx.HORIZONTAL) self.baseBoxSizer.Add(self.panel, proportion=1, flag=wx.ALL | wx.EXPAND, border=0) self.SetSizer(self.baseBoxSizer) self.statusBar = ZhihuStatusBar(self) self.SetStatusBar(self.statusBar) self.statusBar.Hide() self.menuBar_menubar_menu_items = [{ 'id': ControlID.MENUBAR_MENU_ITEM_REFRESH, 'title': u'刷新', 'separator': True, 'IsShown': lambda: True }, { 'id': ControlID.MENUBAR_MENU_ITEM_CREATE, 'title': u'新建收藏夹', 'separator': True, 'IsShown': lambda: True }, { 'id': ControlID.MENUBAR_MENU_ITEM_SHOW_STATUSBAR, 'title': u'隐藏状态栏', 'separator': True, 'IsShown': lambda: self.statusBar.IsShown() }, { 'id': ControlID.MENUBAR_MENU_ITEM_HIDE_STATUSBAR, 'title': u'显示状态栏', 'separator': True, 'IsShown': lambda: not self.statusBar.IsShown() }, { 'id': ControlID.MENUBAR_MENU_ITEM_EXPORT_ALL, 'title': u'导出所有', 'separator': True, 'IsShown': lambda: True, 'hasSub': True, 'sub': [{ 'id': ControlID.MENUBAR_MENU_ITEM_EXPORT_ALL_CHM_UTF8, 'title': u"导出为CHM(UTF-8)" }, { 'id': ControlID.MENUBAR_MENU_ITEM_EXPORT_ALL_CHM_GBK, 'title': u"导出为CHM(GBK)", 'IsShown': lambda: False }, { 'id': ControlID.MENUBAR_MENU_ITEM_EXPORT_ALL_HTML, 'title': u"导出为HTML" }] }, { 'id': ControlID.MENUBAR_MENU_ITEM_QUIT, 'title': u'退出', 'separator': False, 'IsShown': lambda: True }] self.menuBar_menuBar = wx.MenuBar() self.SetMenuBar(self.menuBar_menuBar) self.UpdaetMenuBarMenu() self.collections_menu_itemms = [{ 'id': ControlID.COLLECTION_LIST_MENU_OPEN, 'title': u"打开" }, { 'id': ControlID.COLLECTION_LIST_MENU_RENAME, 'title': u"编辑收藏夹" }, { 'id': ControlID.COLLECTION_LIST_MENU_EXPORT, 'title': u"导出", 'hasSub': True, 'sub': [{ 'id': ControlID.COLLECTION_LIST_MENU_EXPORT_CHM_UTF8, 'title': u"导出为CHM(UTF-8)" }, { 'id': ControlID.COLLECTION_LIST_MENU_EXPORT_CHM_GBK, 'title': u"导出为CHM(GBK)", 'IsShown': lambda: False }, { 'id': ControlID.COLLECTION_LIST_MENU_EXPORT_HTML, 'title': u"导出为HTML" }] }, { 'id': ControlID.COLLECTION_LIST_MENU_DELETE, 'title': u"删除" }] # create the list control self.ListCtrl_CollectionList = wx.ListCtrl(self.panel, -1, style=wx.LC_REPORT) self.ListCtrl_CollectionList_imgs = wx.ImageList(16, 16, True) self.ListCtrl_CollectionList_imgs.Add(images_icon.LockIcon.GetBitmap()) self.ListCtrl_CollectionList.AssignImageList( self.ListCtrl_CollectionList_imgs, wx.IMAGE_LIST_SMALL) wx.EVT_LIST_ITEM_RIGHT_CLICK(self.ListCtrl_CollectionList, -1, self.OnCollectionListRightClick) wx.EVT_LIST_ITEM_ACTIVATED(self.ListCtrl_CollectionList, -1, self.OnCollectionListDoubleClick) self.ListCtrl_CollectionList_item_clicked = None for col, text in enumerate(Utils.getUserCollectionListColumns()): self.ListCtrl_CollectionList.InsertColumn(col, text) self.horizontalBoxSizer.Add(self.ListCtrl_CollectionList, proportion=0, flag=wx.ALL | wx.EXPAND, border=5) self.favorites_list_menu_copy_to = [] self.favorites_list_menu_move_to = [] # init collection answers list self.collections_answers_menu_items = [ { 'id': ControlID.ANSWER_LIST_MENU_BROWSE, 'title': u"浏览" }, { 'id': ControlID.ANSWER_LIST_MENU_BROWSE_COPY, 'title': u"复制到", 'hasSub': True, 'sub': self.favorites_list_menu_copy_to }, { 'id': ControlID.ANSWER_LIST_MENU_BROWSE_MOVE, 'title': u"移动到", 'hasSub': True, 'sub': self.favorites_list_menu_move_to }, { 'id': ControlID.ANSWER_LIST_MENU_BROWSE_DELETE, 'title': u"取消收藏" }, ] # create the list control self.ListCtrl_CollectionAnswersList = wx.ListCtrl(self.panel, -1, style=wx.LC_REPORT) wx.EVT_LIST_ITEM_RIGHT_CLICK(self.ListCtrl_CollectionAnswersList, -1, self.OnCollectionAnswersListRightClick) wx.EVT_LIST_ITEM_ACTIVATED(self.ListCtrl_CollectionAnswersList, -1, self.OnCollectionAnswersListDoubleClick) self.ListCtrl_CollectionAnswersList_item_clicked = None for col, text in enumerate( Utils.getUserCollectionAnswersListColumns()): self.ListCtrl_CollectionAnswersList.InsertColumn(col, text) self.horizontalBoxSizer.Add(self.ListCtrl_CollectionAnswersList, proportion=2, flag=wx.ALL | wx.EXPAND, border=5) self.ListCtrl_TaskList = wx.ListCtrl(self.panel, -1, style=wx.LC_REPORT) # wx.EVT_LIST_ITEM_RIGHT_CLICK( self.ListCtrl_TaskList, -1, self.OnCollectionListRightClick ) # wx.EVT_LIST_ITEM_ACTIVATED( self.ListCtrl_TaskList, -1, self.OnCollectionListDoubleClick ) self.ListCtrl_TaskList_item_clicked = None for col, text in enumerate(Utils.getTaskListColumns()): self.ListCtrl_TaskList.InsertColumn(col, text) self.ListCtrl_TaskList.SetColumnWidth(col, 40) self.tasklist_items = [] self.horizontalBoxSizer.Add(self.ListCtrl_TaskList, proportion=1, flag=wx.ALL | wx.EXPAND, border=5) self.OnMenuRefresh() self.status_msg = {} self.status_msg[True] = u'成功' self.status_msg[False] = u'失败' # init task queue self.taskExecutor = TaskExecutor(self.OnTaskFinish, self.OnTaskProgress) self.taskExecutor.start() # create tmpfile self.temp_dir_path = tempfile.mkdtemp() self.panel.SetSizer(self.horizontalBoxSizer) self.horizontalBoxSizer.Fit(self.panel) self.Layout() self.Center()
def __do_base_bindings(self): wx.EVT_LIST_ITEM_RIGHT_CLICK(self.ListDisplay, -1, self._makemenu) self.ListDisplay.Bind(wx.EVT_LIST_BEGIN_DRAG, self.onLeftDown) self.ListDisplay.Bind(wx.EVT_KEY_DOWN, self._base_key_down)
def __init__(self, parent, mainframe): self.initmixin() self.parent = parent self.mainframe = mainframe self.pref = self.mainframe.pref wx.Panel.__init__(self, parent, -1) self.alive = False self.running = False self.box = box = ui.VBox( namebinding='widget').create(self).auto_layout() box1 = box.add(ui.HBox) box1.add(ui.Label(tr('Sites:'))) box1.add(ui.ComboBox("", self.mainframe.pref.ftp_sites), name='cmbSite').bind(wx.EVT_COMBOBOX, self.OnSiteChanged) box1.add(ui.Label(tr('Username:'******'', size=(100, -1)), name='txtUser') box1.add(ui.Label(tr('Password:'******'', size=(100, -1)), name='txtPassword') box1.add(ui.Button(tr('Connect')), name='btnConnect').bind('click', self.OnConnect) box1.add(ui.Button(tr('Disconnect')), name='btnDisconnect').bind('click', self.OnDisconnect) box.add(ui.List(columns=[ (tr("Name"), 500, 'left'), (tr("Size"), 80, 'right'), (tr("Format"), 80, 'left'), ], style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL), name='list') box2 = box.add(ui.HBox) box2.add(ui.Label(tr('Encoding:'))) box2.add(ui.ComboBox("Default", ['Default', 'UTF-8', 'Custom'], size=(100, -1)), name='txtEncoding') box2.add(ui.Label(tr('Remote path:'))) box2.add(ui.ComboBox("", self.mainframe.pref.remote_paths), name='txtPath') box2.add(ui.Button(tr('Refresh')), name='btnRefresh').bind('click', self.OnRefresh) box2.add(ui.Button(tr('Set FTP site...')), name='btnSite').bind('click', self.OnSite) self.load() self.initlist() box.bind('btnConnect', wx.EVT_UPDATE_UI, self.OnUpdateUI) box.bind('btnDisconnect', wx.EVT_UPDATE_UI, self.OnUpdateUI) box.bind('btnRefresh', wx.EVT_UPDATE_UI, self.OnUpdateUI) box.bind('btnSite', wx.EVT_UPDATE_UI, self.OnUpdateUI) box.bind('list', wx.EVT_LIST_ITEM_ACTIVATED, self.OnEnter) #@add_menu menulist self.callplugin_once('add_menu', Ftp.popmenulist) #make popup menu if self.popmenulist: self.popmenu = makemenu.makepopmenu(self, self.popmenulist, self.imagelist) wx.EVT_LIST_ITEM_RIGHT_CLICK(self.list, self.list.GetId(), self.OnRClick) wx.EVT_RIGHT_UP(self.list, self.OnRClick)
def InitUI(self): # improve this layout using wx.SplitterWindow instead sizerWholeFrame = wx.GridBagSizer(5, 5) hdr = wx.StaticText(self, label="Drag Stations and Series to assign them to Channel Segments") sizerWholeFrame.Add(hdr, pos=(0, 0), span=(1, 2), flag=wx.TOP|wx.LEFT|wx.BOTTOM, border=5) hLine = wx.StaticLine(self) sizerWholeFrame.Add(hLine, pos=(1, 0), span=(1, 3), flag=wx.EXPAND|wx.BOTTOM, border=1) sizerSta = wx.GridBagSizer(1, 1) hdrStation = wx.StaticText(self, label="Stations:") sizerSta.Add(hdrStation, pos=(0, 0), span=(1, 1), flag=wx.ALIGN_LEFT|wx.TOP|wx.LEFT, border=1) StbHorizSizer = wx.BoxSizer(wx.HORIZONTAL) btnAddStation = wx.Button(self, label="New", size=(32, 20)) btnAddStation.Bind(wx.EVT_BUTTON, lambda evt, str=btnAddStation.GetLabel(): self.onClick_BtnWorkOnStation(evt, str)) StbHorizSizer.Add(btnAddStation) btnEditStation = wx.Button(self, label="Edit", size=(32, 20)) btnEditStation.Bind(wx.EVT_BUTTON, lambda evt, str=btnEditStation.GetLabel(): self.onClick_BtnWorkOnStation(evt, str)) StbHorizSizer.Add(btnEditStation) sizerSta.Add(StbHorizSizer, pos=(0, 1), span=(1, 1)) self.lstStations = DragStationList(self, style=wx.LC_REPORT|wx.LC_NO_HEADER|wx.LC_SINGLE_SEL) self.lstStations.InsertColumn(0, "Station") self.fillStationsList() sizerSta.Add(self.lstStations, pos=(1, 0), span=(2, 2), flag=wx.EXPAND) sizerSta.AddGrowableRow(1) sizerSta.AddGrowableCol(1) sizerWholeFrame.Add(sizerSta, pos=(2, 0), span=(1, 1), flag=wx.EXPAND) sizerSer = wx.GridBagSizer(1, 1) hdrSeries = wx.StaticText(self, label="Series:") sizerSer.Add(hdrSeries, pos=(0, 0), span=(1, 1), flag=wx.ALIGN_LEFT|wx.TOP|wx.LEFT, border=1) btnAddSeries = wx.Button(self, label="New", size=(32, 20)) btnAddSeries.Bind(wx.EVT_BUTTON, lambda evt, str=btnAddSeries.GetLabel(): self.onClick_BtnAddSeries(evt, str)) sizerSer.Add(btnAddSeries, pos=(0, 1), flag=wx.ALIGN_LEFT|wx.LEFT, border=10) self.lstSeries = DragSeriesList(self, style=wx.LC_REPORT|wx.LC_NO_HEADER|wx.LC_SINGLE_SEL) self.lstSeries.InsertColumn(0, "Series") self.fillSeriesList() sizerSer.Add(self.lstSeries, pos=(1, 0), span=(2, 2), flag=wx.EXPAND) sizerSer.AddGrowableRow(1) sizerSer.AddGrowableCol(1) sizerWholeFrame.Add(sizerSer, pos=(2, 1), span=(1, 1), flag=wx.EXPAND) sizerChanSegs = wx.GridBagSizer(1, 1) hdrChanSegs = wx.StaticText(self, label="Channel Segments:") sizerChanSegs.Add(hdrChanSegs, pos=(0, 0), span=(1, 1), flag=wx.ALIGN_LEFT|wx.TOP, border=5) self.lstChanSegs = DragChannelSegmentList(self, style=wx.LC_REPORT|wx.LC_VRULES|wx.LC_SINGLE_SEL) self.lstChanSegs.InsertColumn(0, "Station") self.lstChanSegs.InsertColumn(1, "Series") self.lstChanSegs.InsertColumn(2, "Channel Segment (Col, Logger, Sensor, Type, Units, HrOffset)") self.lstChanSegs.InsertColumn(3, "Start") self.lstChanSegs.InsertColumn(4, "End") self.fillChannelSegmentsList() # 1. Register source's EVT_s to invoke pop-up menu launcher wx.EVT_LIST_ITEM_RIGHT_CLICK(self.lstChanSegs, -1, self.lstChanSegsRightClick) sizerChanSegs.Add(self.lstChanSegs, pos=(1, 0), span=(1, 2), flag=wx.EXPAND) sizerChanSegs.AddGrowableRow(1) sizerChanSegs.AddGrowableCol(1) sizerWholeFrame.Add(sizerChanSegs, pos=(3, 0), span=(1, 3), flag=wx.EXPAND) sizerWholeFrame.AddGrowableCol(0) sizerWholeFrame.AddGrowableCol(1) sizerWholeFrame.AddGrowableRow(3) self.SetSizerAndFit(sizerWholeFrame)
def __init__(self, *args, **kwds): # begin wxGlade: MainLibFrame.__init__ kwds["style"] = wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) # tell wx about our hard coded IDs so wx.NewId() doesn't collide # with them for i in range(ID_MINNUM, ID_MAXNUM): wx.RegisterId(i) # set up list control self.list = wx.ListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) self.list.InsertColumn(0, "Artist", width=150) self.list.InsertColumn(1, "Album", width=350) self.list.InsertColumn(2, "Date", width=100) wx.EVT_LIST_COL_CLICK(self, -1, self.OnListSort) wx.EVT_LIST_ITEM_RIGHT_CLICK(self, -1, self.OnListClick) wx.EVT_LIST_ITEM_ACTIVATED(self, -1, self.OnListDoubleClick) wx.EVT_LIST_ITEM_FOCUSED(self, -1, self.OnListSelect) # set up controls in properties panel self.bmpCoverArt = wx.StaticBitmap(self, -1) self.lblArtist = wx.StaticText(self, -1, "Welcome to Flacenstein") self.lblAlbum = wx.StaticText(self, -1, "Right click to select library items") self.ggeProgress = wx.Gauge(self, -1, 1) # Menu Bar self.library_menubar = wx.MenuBar() self.SetMenuBar(self.library_menubar) wxglade_tmp_menu = wx.Menu() wxglade_tmp_menu.Append(ID_OPEN, "Load Library\tCTRL-O", "", wx.ITEM_NORMAL) wxglade_tmp_menu.Append(ID_SAVE, "Save Library\tCTRL-S", "", wx.ITEM_NORMAL) wxglade_tmp_menu.Append(ID_EXPORT, "Export List", "", wx.ITEM_NORMAL) wxglade_tmp_menu.AppendSeparator() wxglade_tmp_menu.Append(ID_SETPATH, "Configure Paths", "", wx.ITEM_NORMAL) wxglade_tmp_menu.Append(ID_RESCAN, "Rescan\tF5", "", wx.ITEM_NORMAL) wxglade_tmp_menu.AppendSeparator() wxglade_tmp_menu.Append(ID_RIP, "Rip...", "", wx.ITEM_NORMAL) wxglade_tmp_menu.AppendSeparator() wxglade_tmp_menu.Append(wx.ID_EXIT, "Quit\tCTRL-Q", "", wx.ITEM_NORMAL) self.library_menubar.Append(wxglade_tmp_menu, "Library") wxglade_tmp_menu = wx.Menu() wxglade_tmp_menu.Append(ID_LOADSELECT, "Load Selection\tCTRL-G", "", wx.ITEM_NORMAL) wxglade_tmp_menu.Append(ID_SAVESELECT, "Save Selection\tCTRL-D", "", wx.ITEM_NORMAL) wxglade_tmp_menu.AppendSeparator() wxglade_tmp_menu.Append(ID_SELECTALL, "All\tCTRL-A", "", wx.ITEM_NORMAL) wxglade_tmp_menu.Append(ID_SELECTNONE, "None", "", wx.ITEM_NORMAL) self.library_menubar.Append(wxglade_tmp_menu, "Select") tmp_menu = wx.Menu() tmp_menu.Append(ID_CONFIGURE, "Configure", "", wx.ITEM_NORMAL) # mnuStop has to be explicitly created so that we can call .Enable() self.mnuStop = wx.MenuItem(tmp_menu, ID_STOP, "Stop", "", wx.ITEM_NORMAL) tmp_menu.AppendItem(self.mnuStop) tmp_menu.AppendSeparator() self.transforms = {} for xfm in flaccfg.XFM_MODS: global xfmmod xfmmod = __import__('flacenstein.xfm%s' % xfm, globals(), locals(), 'xfm%s' % xfm) i = wx.NewId() self.transforms[i] = xfm tmp_menu.Append(i, xfmmod.description, "", wx.ITEM_NORMAL) works = xfmmod.ready() tmp_menu.Enable(i, works) if not works: print '"%s" module failed self-tests and is disabled.' % \ xfmmod.description wx.EVT_MENU(self, i, self.OnTransform) del xfmmod self.library_menubar.Append(tmp_menu, "Transform") wx.EVT_MENU(self, ID_OPEN, self.OnOpen) wx.EVT_MENU(self, ID_SAVE, self.OnSave) wx.EVT_MENU(self, ID_EXPORT, self.OnExport) wx.EVT_MENU(self, ID_SETPATH, self.OnSetPath) wx.EVT_MENU(self, ID_RESCAN, self.OnRescan) wx.EVT_MENU(self, wx.ID_EXIT, self.OnQuit) wx.EVT_MENU(self, ID_SELECTALL, self.OnSelectAll) wx.EVT_MENU(self, ID_SELECTNONE, self.OnSelectNone) wx.EVT_MENU(self, ID_LOADSELECT, self.OnLoadSelection) wx.EVT_MENU(self, ID_SAVESELECT, self.OnSaveSelection) wx.EVT_MENU(self, ID_CONFIGURE, self.OnConfigure) wx.EVT_MENU(self, ID_STOP, self.OnStop) wx.EVT_MENU(self, ID_RIP, self.OnRip) # Menu Bar end self.library_statusbar = self.CreateStatusBar(1, 0) self.__set_properties() self.__do_layout() # end wxGlade # horrible kludge to try to work around the fact that on my home # machine, e.RequestMore(True) in an idle handler appears to do # nothing: idle events stop coming in if you don't move the mouse, # etc. self.timer = wx.Timer(self, ID_TIMER) wx.EVT_TIMER(self, ID_TIMER, self.OnIdle) #wx.EVT_IDLE(self, self.OnIdle) self.listdict = {} self.sortfields = ["artist", "date"] self.savefile = "flaclibrary.dat" self.listfile = "flacselection.lst" self.outpath = "/tmp/flac" self.parallelism = flaccfg.DEFAULT_PARALLELISM self.children = {} self.jobs = [] self.workinprogress = False self.mnuStop.Enable(False) self.lib = flaclib.FlacLibrary("/mnt/flac") self.lib.statusnotify = self.statusNotify if os.path.isfile(flaccfg.DEFAULT_LIBRARY): self.loadLibrary(flaccfg.DEFAULT_LIBRARY) else: self.lib.scan() self.displayLibrary() self.setState(STATE_IDLE)
def __init__(self, parent=None, id=-1, title='Player management', pos=wx.DefaultPosition, size=wx.DefaultSize): wx.Frame.__init__(self, parent, id, title, pos, size) wx.InitAllImageHandlers() self.icon = images.getMondrianIcon() self.SetIcon(self.icon) # Load XRC resource if not USE_RESOURCE: self.res = wxPython.xrc.wxXmlResource('playerdb.xrc') panel = self.res.LoadPanel(self, 'playerdb_panel') menubar = self.res.LoadMenuBar('playerdb_menu') else: resource.InitXmlResource() panel = wxPython.xrc.wxXmlResource_Get().LoadPanel( self, 'playerdb_panel') menubar = wxPython.xrc.wxXmlResource_Get().LoadMenuBar( 'playerdb_menu') # Layout self.SetMenuBar(menubar) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(sizer) sizer.SetSizeHints(self) # Init lists self.friends_list = wxPython.xrc.XRCCTRL(self, 'friends_list', wx.ListBox) self.bozo_list = wxPython.xrc.XRCCTRL(self, 'bozo_list', wx.ListBox) self.all_list = wxPython.xrc.XRCCTRL(self, 'all_list', wx.ListCtrl) img_list = wx.ImageList(16, 16) img_list.Add(images.getSmilesBitmap()) img_list.Add(images.getBozoBitmap()) self.all_list.AssignImageList(img_list, wx.IMAGE_LIST_SMALL) self.flag_filter = 0 self.init_lists() # Event table wx.EVT_BUTTON(self, wxPython.xrc.XRCID('add_friend'), self.OnAddFriend) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('remove_friend'), self.OnRemoveFriend) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('add_bozo'), self.OnAddBozo) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('remove_bozo'), self.OnRemoveBozo) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('all_add'), self.OnAddToAll) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('all_remove'), self.OnRemoveFromAll) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('all_edit'), self.OnAllEdit) wx.EVT_BUTTON(self, wx.ID_EXIT, self.OnClose) wx.EVT_MENU(self, wx.ID_EXIT, self.OnClose) wx.EVT_CLOSE(self, self.OnClose) wx.EVT_BUTTON(self, wxPython.xrc.XRCID('reload'), self.OnReload) wx.EVT_MENU(self, wxPython.xrc.XRCID('reload'), self.OnReload) wx.EVT_MENU(self, wxPython.xrc.XRCID('cleanup'), self.OnCleanupDB) wx.EVT_MENU(self, wxPython.xrc.XRCID('edit_flags'), self.OnEditFlags) wx.EVT_MENU(self, wxPython.xrc.XRCID('scan_games'), self.OnScanDir) wx.EVT_MENU(self, wxPython.xrc.XRCID('list_games'), self.OnListGames) wx.EVT_MENU(self, wxPython.xrc.XRCID('cleanup_games'), self.OnCleanupGames) wx.EVT_MENU(self, wxPython.xrc.XRCID('show_graph_of'), self.OnShowGraphOf) wx.EVT_MENU(self, wx.ID_ABOUT, self.OnAbout) wx.EVT_LISTBOX_DCLICK(self, wxPython.xrc.XRCID('friends_list'), self.OnFriendsDblClick) wx.EVT_LISTBOX_DCLICK(self, wxPython.xrc.XRCID('bozo_list'), self.OnBozosDblClick) wx.EVT_LIST_ITEM_ACTIVATED(self, wxPython.xrc.XRCID('all_list'), self.OnAllDblClick) wx.EVT_LIST_ITEM_SELECTED(self, wxPython.xrc.XRCID('all_list'), self.OnAllItemSelected) wx.EVT_LIST_ITEM_RIGHT_CLICK(self, wxPython.xrc.XRCID('all_list'), self.OnAllItemRightClick) wx.EVT_CHOICE(self, wxPython.xrc.XRCID('filter_flag'), self.OnFilterFlag) # Init and load custom flag categories for i in range(0, NUMBER_CUSTOM_FLAGS): self.flag_categories.append((0, '')) self.load_edit_flags(load_config()) self.filter_choice = wxPython.xrc.XRCCTRL(self, 'filter_flag', wx.Choice) self.init_filter_choice()