controls/DurationCellEditor.py
changeset 714 131ea7f237b9
parent 663 6ea5c76ea7bc
child 723 5df934c273e1
equal deleted inserted replaced
713:95a0a427f3ef 714:131ea7f237b9
    26 
    26 
    27 from dialogs.DurationEditorDialog import DurationEditorDialog
    27 from dialogs.DurationEditorDialog import DurationEditorDialog
    28 
    28 
    29 class DurationCellControl(wx.PyControl):
    29 class DurationCellControl(wx.PyControl):
    30     
    30     
    31     def _init_coll_MainSizer_Items(self, parent):
       
    32         parent.AddWindow(self.Duration, 0, border=0, flag=wx.GROW)
       
    33         parent.AddWindow(self.EditButton, 0, border=0, flag=wx.GROW)
       
    34         
       
    35     def _init_coll_MainSizer_Growables(self, parent):
       
    36         parent.AddGrowableCol(0)
       
    37         parent.AddGrowableRow(0)
       
    38     
       
    39     def _init_sizers(self):
       
    40         self.MainSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0)
       
    41         
       
    42         self._init_coll_MainSizer_Items(self.MainSizer)
       
    43         self._init_coll_MainSizer_Growables(self.MainSizer)
       
    44         
       
    45         self.SetSizer(self.MainSizer)
       
    46     
       
    47     def _init_ctrls(self, prnt):
       
    48         wx.Control.__init__(self, id=-1, 
       
    49               name='DurationCellControl', parent=prnt,  
       
    50               size=wx.DefaultSize, style=0)
       
    51         
       
    52         # create location text control
       
    53         self.Duration = wx.TextCtrl(id=-1, name='Duration', parent=self,
       
    54               pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.TE_PROCESS_ENTER)
       
    55         self.Duration.Bind(wx.EVT_KEY_DOWN, self.OnDurationChar)
       
    56         
       
    57         # create browse button
       
    58         self.EditButton = wx.Button(id=-1, label='...', 
       
    59               name='EditButton', parent=self, pos=wx.Point(0, 0), 
       
    60               size=wx.Size(30, 0), style=0)
       
    61         self.EditButton.Bind(wx.EVT_BUTTON, self.OnEditButtonClick)
       
    62 
       
    63         self.Bind(wx.EVT_SIZE, self.OnSize)
       
    64         
       
    65         self._init_sizers()
       
    66 
       
    67     '''
    31     '''
    68     Custom cell editor control with a text box and a button that launches
    32     Custom cell editor control with a text box and a button that launches
    69     the DurationEditorDialog.
    33     the DurationEditorDialog.
    70     '''
    34     '''
    71     def __init__(self, parent):
    35     def __init__(self, parent):
    72         self._init_ctrls(parent)
    36         wx.Control.__init__(self, parent)
       
    37         
       
    38         main_sizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0)
       
    39         main_sizer.AddGrowableCol(0)
       
    40         main_sizer.AddGrowableRow(0)
       
    41         
       
    42         # create location text control
       
    43         self.Duration = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
       
    44         self.Duration.Bind(wx.EVT_KEY_DOWN, self.OnDurationChar)
       
    45         main_sizer.AddWindow(self.Duration, flag=wx.GROW)
       
    46         
       
    47         # create browse button
       
    48         self.EditButton = wx.Button(self, label='...', size=wx.Size(30, 0))
       
    49         self.Bind(wx.EVT_BUTTON, self.OnEditButtonClick, self.EditButton)
       
    50         main_sizer.AddWindow(self.EditButton, flag=wx.GROW)
       
    51         
       
    52         self.Bind(wx.EVT_SIZE, self.OnSize)
       
    53         
       
    54         self.SetSizer(main_sizer)
    73         
    55         
    74         self.Default = None
    56         self.Default = None
    75         
    57         
    76     def SetValue(self, value):
    58     def SetValue(self, value):
    77         self.Default = value
    59         self.Default = value
   115     '''
    97     '''
   116     Grid cell editor that uses DurationCellControl to display an edit button.
    98     Grid cell editor that uses DurationCellControl to display an edit button.
   117     '''
    99     '''
   118     def __init__(self, table):
   100     def __init__(self, table):
   119         wx.grid.PyGridCellEditor.__init__(self)
   101         wx.grid.PyGridCellEditor.__init__(self)
       
   102         
   120         self.Table = table
   103         self.Table = table
   121     
   104     
   122     def __del__(self):
   105     def __del__(self):
   123         self.CellControl = None
   106         self.CellControl = None
   124     
   107