dialogs/LDPowerRailDialog.py
changeset 1250 7e6de17c687a
parent 1249 b956c924cbbd
child 1251 d9ed42e44a50
equal deleted inserted replaced
1249:b956c924cbbd 1250:7e6de17c687a
    46         @param tagname: Tagname of project POU edited
    46         @param tagname: Tagname of project POU edited
    47         """
    47         """
    48         BlockPreviewDialog.__init__(self, parent, controller, tagname,
    48         BlockPreviewDialog.__init__(self, parent, controller, tagname,
    49               size=wx.Size(350, 260), title=_('Power Rail Properties'))
    49               size=wx.Size(350, 260), title=_('Power Rail Properties'))
    50         
    50         
    51         # Create dialog main sizer
    51         # Init common sizers
    52         main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
    52         self._init_sizers(2, 0, 5, None, 2, 1)
    53         main_sizer.AddGrowableCol(0)
       
    54         main_sizer.AddGrowableRow(0)
       
    55         
       
    56         # Create a sizer for dividing power rail parameters in two columns
       
    57         column_sizer = wx.BoxSizer(wx.HORIZONTAL)
       
    58         main_sizer.AddSizer(column_sizer, border=20, 
       
    59               flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
       
    60         
       
    61         # Create a sizer for left column
       
    62         left_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=5, vgap=5)
       
    63         left_gridsizer.AddGrowableCol(0)
       
    64         column_sizer.AddSizer(left_gridsizer, 1, border=5, 
       
    65               flag=wx.GROW|wx.RIGHT)
       
    66         
    53         
    67         # Create label for connection type
    54         # Create label for connection type
    68         type_label = wx.StaticText(self, label=_('Type:'))
    55         type_label = wx.StaticText(self, label=_('Type:'))
    69         left_gridsizer.AddWindow(type_label, flag=wx.GROW)
    56         self.LeftGridSizer.AddWindow(type_label, flag=wx.GROW)
    70         
    57         
    71         # Create radio buttons for selecting power rail type
    58         # Create radio buttons for selecting power rail type
    72         self.TypeRadioButtons = {}
    59         self.TypeRadioButtons = {}
    73         first = True
    60         first = True
    74         for type, label in [(LEFTRAIL, _('Left PowerRail')),
    61         for type, label in [(LEFTRAIL, _('Left PowerRail')),
    75                             (RIGHTRAIL, _('Right PowerRail'))]:
    62                             (RIGHTRAIL, _('Right PowerRail'))]:
    76             radio_button = wx.RadioButton(self, label=label, 
    63             radio_button = wx.RadioButton(self, label=label, 
    77                   style=(wx.RB_GROUP if first else 0))
    64                   style=(wx.RB_GROUP if first else 0))
    78             radio_button.SetValue(first)
    65             radio_button.SetValue(first)
    79             self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, radio_button)
    66             self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, radio_button)
    80             left_gridsizer.AddWindow(radio_button, flag=wx.GROW)
    67             self.LeftGridSizer.AddWindow(radio_button, flag=wx.GROW)
    81             self.TypeRadioButtons[type] = radio_button
    68             self.TypeRadioButtons[type] = radio_button
    82             first = False
    69             first = False
    83         
    70         
    84         # Create label for power rail pin number
    71         # Create label for power rail pin number
    85         pin_number_label = wx.StaticText(self, label=_('Pin number:'))
    72         pin_number_label = wx.StaticText(self, label=_('Pin number:'))
    86         left_gridsizer.AddWindow(pin_number_label, flag=wx.GROW)
    73         self.LeftGridSizer.AddWindow(pin_number_label, flag=wx.GROW)
    87         
    74         
    88         # Create spin control for defining power rail pin number
    75         # Create spin control for defining power rail pin number
    89         self.PinNumber = wx.SpinCtrl(self, min=1, max=50,
    76         self.PinNumber = wx.SpinCtrl(self, min=1, max=50,
    90               style=wx.SP_ARROW_KEYS)
    77               style=wx.SP_ARROW_KEYS)
    91         self.Bind(wx.EVT_SPINCTRL, self.OnPinNumberChanged, self.PinNumber)
    78         self.Bind(wx.EVT_SPINCTRL, self.OnPinNumberChanged, self.PinNumber)
    92         left_gridsizer.AddWindow(self.PinNumber, flag=wx.GROW)
    79         self.LeftGridSizer.AddWindow(self.PinNumber, flag=wx.GROW)
    93         
       
    94         # Create a sizer for right column
       
    95         right_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
       
    96         right_gridsizer.AddGrowableCol(0)
       
    97         right_gridsizer.AddGrowableRow(1)
       
    98         column_sizer.AddSizer(right_gridsizer, 1, border=5, 
       
    99               flag=wx.GROW|wx.LEFT)
       
   100         
    80         
   101         # Add preview panel and associated label to sizers
    81         # Add preview panel and associated label to sizers
   102         right_gridsizer.AddWindow(self.PreviewLabel, flag=wx.GROW)
    82         self.RightGridSizer.AddWindow(self.PreviewLabel, flag=wx.GROW)
   103         right_gridsizer.AddWindow(self.Preview, flag=wx.GROW)
    83         self.RightGridSizer.AddWindow(self.Preview, flag=wx.GROW)
   104         
    84         
   105         # Add buttons sizer to sizers
    85         # Add buttons sizer to sizers
   106         main_sizer.AddSizer(self.ButtonSizer, border=20, 
    86         self.MainSizer.AddSizer(self.ButtonSizer, border=20, 
   107               flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
    87               flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
   108         
       
   109         self.SetSizer(main_sizer)
       
   110         
    88         
   111         # Left Power Rail radio button is default control having keyboard focus
    89         # Left Power Rail radio button is default control having keyboard focus
   112         self.TypeRadioButtons[LEFTRAIL].SetFocus()
    90         self.TypeRadioButtons[LEFTRAIL].SetFocus()
   113     
    91     
   114     def GetMinElementSize(self):
    92     def GetMinElementSize(self):