def __init__(self, parent): wx.Panel.__init__(self, parent) try: default_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENUBAR) except AttributeError: default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) self.SetBackgroundColour(default_colour) ## LINE 1 text1 = wx.StaticText(self, -1, _("Choose brush type, size or operation:")) ## LINE 2 menu = wx.Menu() CIRCLE_BMP = wx.Bitmap( os.path.join(const.ICON_DIR, "brush_circle.jpg"), wx.BITMAP_TYPE_JPEG) item = wx.MenuItem(menu, MENU_BRUSH_CIRCLE, _("Circle")) item.SetBitmap(CIRCLE_BMP) SQUARE_BMP = wx.Bitmap( os.path.join(const.ICON_DIR, "brush_square.jpg"), wx.BITMAP_TYPE_JPEG) item2 = wx.MenuItem(menu, MENU_BRUSH_SQUARE, _("Square")) item2.SetBitmap(SQUARE_BMP) menu.Append(item) menu.Append(item2) bmp_brush_format = { const.BRUSH_CIRCLE: CIRCLE_BMP, const.BRUSH_SQUARE: SQUARE_BMP } selected_bmp = bmp_brush_format[const.DEFAULT_BRUSH_FORMAT] btn_brush_format = pbtn.PlateButton(self, wx.ID_ANY, "", selected_bmp, style=pbtn.PB_STYLE_SQUARE) btn_brush_format.SetMenu(menu) self.btn_brush_format = btn_brush_format spin_brush_size = InvSpinCtrl(self, -1, value=const.BRUSH_SIZE, min_value=1, max_value=1000, spin_button=False) # To calculate best width to spinctrl spin_brush_size.CalcSizeFromTextSize("MMMM") spin_brush_size.Bind(wx.EVT_SPINCTRL, self.OnBrushSize) self.spin = spin_brush_size combo_brush_op = wx.ComboBox(self, -1, "", size=(15, -1), choices=const.BRUSH_OP_NAME, style=wx.CB_DROPDOWN | wx.CB_READONLY) combo_brush_op.SetSelection(const.DEFAULT_BRUSH_OP) if sys.platform != 'win32': combo_brush_op.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) self.combo_brush_op = combo_brush_op # Sizer which represents the second line line2 = wx.BoxSizer(wx.HORIZONTAL) line2.Add(btn_brush_format, 0, wx.EXPAND | wx.GROW | wx.RIGHT, 5) line2.Add(spin_brush_size, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5) line2.Add(combo_brush_op, 1, wx.RIGHT | wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5) ## LINE 3 text_thresh = wx.StaticText(self, -1, _("Brush threshold range:")) ## LINE 4 gradient_thresh = grad.GradientCtrl(self, -1, 0, 5000, 0, 5000, (0, 0, 255, 100)) self.gradient_thresh = gradient_thresh self.bind_evt_gradient = True # Add lines into main sizer sizer = wx.BoxSizer(wx.VERTICAL) sizer.AddSpacer(7) sizer.Add(text1, 0, wx.GROW | wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(2) sizer.Add(line2, 0, wx.GROW | wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(5) sizer.Add(text_thresh, 0, wx.GROW | wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(5) sizer.Add(gradient_thresh, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(7) sizer.Fit(self) self.SetSizerAndFit(sizer) self.Update() self.SetAutoLayout(1) self.__bind_events() self.__bind_events_wx()
def __init__(self, parent): wx.Panel.__init__(self, parent) ## LINE 1 # Combo related to mask naem combo_mask_name = wx.ComboBox(self, -1, "", choices=MASK_LIST, style=wx.CB_DROPDOWN | wx.CB_READONLY) #combo_mask_name.SetSelection(0) # wx.CB_SORT if sys.platform != 'win32': combo_mask_name.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) self.combo_mask_name = combo_mask_name # Mask colour button_colour = csel.ColourSelect(self, 111, colour=(0, 255, 0), size=(22, -1)) self.button_colour = button_colour # Sizer which represents the first line line1 = wx.BoxSizer(wx.HORIZONTAL) line1.Add(combo_mask_name, 1, wx.EXPAND | wx.GROW | wx.TOP | wx.RIGHT, 2) line1.Add(button_colour, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2) ### LINE 2 text_thresh = wx.StaticText(self, -1, _("Set predefined or manual threshold:")) ### LINE 3 THRESHOLD_LIST = [ "", ] combo_thresh = wx.ComboBox( self, -1, "", #size=(15,-1), choices=THRESHOLD_LIST, style=wx.CB_DROPDOWN | wx.CB_READONLY) combo_thresh.SetSelection(0) if sys.platform != 'win32': combo_thresh.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) self.combo_thresh = combo_thresh ## LINE 4 gradient = grad.GradientCtrl(self, -1, -5000, 5000, 0, 5000, (0, 255, 0, 100)) self.gradient = gradient # Add all lines into main sizer sizer = wx.BoxSizer(wx.VERTICAL) sizer.AddSpacer(7) sizer.Add(line1, 0, wx.GROW | wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(5) sizer.Add(text_thresh, 0, wx.GROW | wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(2) sizer.Add(combo_thresh, 0, wx.EXPAND | wx.GROW | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(5) sizer.Add(gradient, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer.AddSpacer(7) sizer.Fit(self) self.SetSizerAndFit(sizer) self.Update() self.SetAutoLayout(1) # Non GUI stuff proj = Project() self.threshold_modes = proj.threshold_modes self.threshold_modes_names = [] self.bind_evt_gradient = True self.__bind_events() self.__bind_events_wx()