Package Gnumed :: Package timelinelib :: Package wxgui :: Package components :: Module twostatebutton
[frames] | no frames]

Source Code for Module Gnumed.timelinelib.wxgui.components.twostatebutton

 1  # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg 
 2  # 
 3  # This file is part of Timeline. 
 4  # 
 5  # Timeline is free software: you can redistribute it and/or modify 
 6  # it under the terms of the GNU General Public License as published by 
 7  # the Free Software Foundation, either version 3 of the License, or 
 8  # (at your option) any later version. 
 9  # 
10  # Timeline is distributed in the hope that it will be useful, 
11  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
13  # GNU General Public License for more details. 
14  # 
15  # You should have received a copy of the GNU General Public License 
16  # along with Timeline.  If not, see <http://www.gnu.org/licenses/>. 
17   
18   
19  import wx 
20   
21   
22 -class TwoStateButton(wx.Button):
23 24 InitialStateClickedEvent, EVT_INITIAL_STATE_CLICKED = wx.lib.newevent.NewEvent() 25 SecondStateClickedEvent, EVT_SECOND_STATE_CLICKED = wx.lib.newevent.NewEvent() 26
27 - def __init__(self, parent, initial_state_label, second_state_label, *args, **kwargs):
28 wx.Button.__init__(self, parent, label=initial_state_label, *args, **kwargs) 29 self.initial_state_label = initial_state_label 30 self.second_state_label = second_state_label 31 self.Bind(wx.EVT_BUTTON, self._on_click)
32
33 - def _on_click(self, event):
34 if self.GetLabel() == self.initial_state_label: 35 wx.PostEvent(self, self.InitialStateClickedEvent()) 36 self.SetLabel(self.second_state_label) 37 elif self.GetLabel() == self.second_state_label: 38 wx.PostEvent(self, self.SecondStateClickedEvent()) 39 self.SetLabel(self.initial_state_label)
40