Exemplo n.º 1
0
def spinctrl(element, instance: wx.SpinCtrl):
    props = element['props']
    set_basic_props(instance, props)
    instance.SetMax(props.get('max', 100))
    instance.SetMin(props.get('min', 0))
    instance.Unbind(wx.EVT_SPINCTRL)
    if 'on_change' in props:
        instance.Bind(wx.EVT_SLIDER, props['on_change'])
    return instance
Exemplo n.º 2
0
    def __init__(self,
                 parent: Window,
                 displayText: str,
                 valueChangedCallback: Callable,
                 minValue: int = DEFAULT_MIN_VALUE,
                 maxValue: int = DEFAULT_MAX_VALUE):
        """

        Args:
            parent          The parent window
            displayText:    The text to display as the static box title
            valueChangedCallback:  The method to call when the value changes;  The method should expect the
                                   first parameter to be an object of type SpinnerValues
            minValue:       The minimum value for the width/height
            maxValue:       The maximum value for the width/height

        """
        self.logger: Logger = getLogger(__name__)
        self.__callback: Callable = valueChangedCallback

        box: StaticBox = StaticBox(parent, ID_ANY, displayText)

        super().__init__(box, HORIZONTAL)

        self._wxValue0SpinnerId: int = wxNewIdRef()
        self._wxValue1SpinnerId: int = wxNewIdRef()

        self._scValue0: SpinCtrl = SpinCtrl(parent, self._wxValue0SpinnerId,
                                            "",
                                            (SPINNER_WIDTH, SPINNER_HEIGHT))
        self._scValue1: SpinCtrl = SpinCtrl(parent, self._wxValue1SpinnerId,
                                            "",
                                            (SPINNER_WIDTH, SPINNER_HEIGHT))

        self.Add(self._scValue0, 0, ALL, DualSpinnerContainer.HORIZONTAL_GAP)
        self.Add(self._scValue1, 0, ALL, DualSpinnerContainer.HORIZONTAL_GAP)

        self._scValue0.SetRange(minValue, maxValue)
        self._scValue1.SetRange(minValue, maxValue)

        parent.Bind(EVT_SPINCTRL,
                    self.__onSpinnerValueChanged,
                    id=self._wxValue0SpinnerId)
        parent.Bind(EVT_SPINCTRL,
                    self.__onSpinnerValueChanged,
                    id=self._wxValue1SpinnerId)

        self._spinnerValues: SpinnerValues = SpinnerValues(minValue, minValue)
Exemplo n.º 3
0
    def __createSimpleGridOptions(self) -> BoxSizer:

        szrSimple: BoxSizer = BoxSizer(VERTICAL)

        cbEnableBackgroundGrid: CheckBox = CheckBox(
            self, self.enableBackgroundGridID, _('Enable Background Grid'))
        cbSnapToGrid: CheckBox = CheckBox(self, self.snapToGridID,
                                          _('Snap to Grid'))

        box: StaticBox = StaticBox(self, ID_ANY, _("Grid Interval"))
        szrGridInterval: StaticBoxSizer = StaticBoxSizer(
            box, HORIZONTAL | ALIGN_LEFT)

        scGridInterval: SpinCtrl = SpinCtrl(self, self.scGridIntervalID, "")

        szrGridInterval.Add(scGridInterval, 0, LEFT | RIGHT,
                            BackgroundPreferences.HORIZONTAL_GAP)

        szrSimple.Add(cbEnableBackgroundGrid, 0, LEFT | RIGHT,
                      BackgroundPreferences.VERTICAL_GAP)
        szrSimple.Add(cbSnapToGrid, 0, LEFT | BOTTOM,
                      BackgroundPreferences.VERTICAL_GAP)

        szrSimple.AddSpacer(BackgroundPreferences.VERTICAL_GAP)
        szrSimple.Add(szrGridInterval, 0, LEFT | RIGHT | TOP,
                      BackgroundPreferences.VERTICAL_GAP)

        self._cbEnableBackgroundGrid: CheckBox = cbEnableBackgroundGrid
        self._cbSnapToGrid: CheckBox = cbSnapToGrid
        self._scGridInterval: SpinCtrl = scGridInterval

        return szrSimple
Exemplo n.º 4
0
    def __layoutImagePadding(self) -> StaticBoxSizer:

        box: StaticBox = StaticBox(self, ID_ANY, "Shape Padding")
        szrImagePaddingSizer: StaticBoxSizer = StaticBoxSizer(box, HORIZONTAL)

        hGap: int = self._imageOptions.horizontalGap
        vGap: int = self._imageOptions.verticalGap

        horizontalGap: SpinCtrl = SpinCtrl(
            self,
            id=self.__horizontalGapId,
            value=str(hGap),
            min=DlgImageOptions.MIN_UML_SHAPE_GAP,
            max=DlgImageOptions.MAX_UML_SHAPE_GAP)
        verticalGap: SpinCtrl = SpinCtrl(self,
                                         id=self.__verticalGapId,
                                         value=str(vGap),
                                         min=DlgImageOptions.MIN_UML_SHAPE_GAP,
                                         max=DlgImageOptions.MAX_UML_SHAPE_GAP)

        szrImagePaddingSizer.Add(horizontalGap, flag=ALL, border=5)
        szrImagePaddingSizer.Add(verticalGap, flag=ALL, border=5)

        return szrImagePaddingSizer
Exemplo n.º 5
0
    def __createAppPositionControls(self) -> StaticBoxSizer:

        scAppPosX = SpinCtrl(self, self.__scAppPosXID, "", (30, 50))
        scAppPosY = SpinCtrl(self, self.__scAppPosYID, "", (30, 50))

        scAppPosX.SetRange(0, 4096)
        scAppPosY.SetRange(0, 4096)
        scAppPosX.SetValue(self.__prefs.appStartupPosition[0])
        scAppPosY.SetValue(self.__prefs.appStartupPosition[1])

        box: StaticBox = StaticBox(self, ID_ANY, "Startup Position")
        szrAppPosition: StaticBoxSizer = StaticBoxSizer(box, HORIZONTAL)

        szrAppPosition.Add(scAppPosX, 0, ALL,
                           DlgPyutPreferences.HORIZONTAL_GAP)
        szrAppPosition.Add(scAppPosY, 0, ALL,
                           DlgPyutPreferences.HORIZONTAL_GAP)

        self.__scAppPosX = scAppPosX
        self.__scAppPosY = scAppPosY

        self.__setPositionControls()
        return szrAppPosition
Exemplo n.º 6
0
 def construct_entry_control(self, entry):
     """Creates the primary entry control"""
     if 'boolean' == entry.var_type:
         control = CheckBox(
             self.scrolled_panel,
             name=entry.key_name
         )
         control.SetValue(entry.current)
     elif 'number' == entry.var_type:
         control = SpinCtrl(
             self.scrolled_panel,
             name=entry.key_name,
         )
         control.SetValue(entry.current)
     else:
         control = TextCtrl(
             self.scrolled_panel,
             value=str(entry.current),
             name=entry.key_name,
             size=(-1, -1)
         )
     self.grid_sizer.Add(control, -1, EXPAND)
Exemplo n.º 7
0
    def __createAppSizeControls(self) -> StaticBoxSizer:

        scAppWidth = SpinCtrl(self, self.__scAppWidthID, "", (30, 50))
        scAppHeight = SpinCtrl(self, self.__scAppHeightID, "", (30, 50))

        scAppWidth.SetRange(960, 4096)
        scAppHeight.SetRange(480, 4096)

        box: StaticBox = StaticBox(self, ID_ANY, "Startup Width/Height")
        szrAppSize: StaticBoxSizer = StaticBoxSizer(box, HORIZONTAL)

        szrAppSize.Add(scAppWidth, 0, ALL, DlgPyutPreferences.HORIZONTAL_GAP)
        szrAppSize.Add(scAppHeight, 0, ALL, DlgPyutPreferences.HORIZONTAL_GAP)

        self.__scAppWidth = scAppWidth
        self.__scAppHeight = scAppHeight

        return szrAppSize
Exemplo n.º 8
0
    def __layoutImageSizeControls(self) -> StaticBoxSizer:

        imageWidth = SpinCtrl(self,
                              self.__imageWidthId,
                              value=str(self._imageOptions.imageWidth))
        imageHeight = SpinCtrl(self,
                               self.__imageHeightId,
                               value=str(self._imageOptions.imageHeight))

        imageWidth.SetRange(500, 3000)
        imageHeight.SetRange(500, 3000)

        box: StaticBox = StaticBox(self, ID_ANY, "Layout Width/Height")
        szrAppSize: StaticBoxSizer = StaticBoxSizer(box, HORIZONTAL)

        szrAppSize.Add(imageWidth, 0, ALL, DlgImageOptions.HORIZONTAL_GAP)
        szrAppSize.Add(imageHeight, 0, ALL, DlgImageOptions.HORIZONTAL_GAP)

        return szrAppSize
Exemplo n.º 9
0
    def __createLayoutSizeControls(self) -> StaticBoxSizer:

        layoutWidth = SpinCtrl(self, self.__layoutWidthID, "", (30, 50))
        layoutHeight = SpinCtrl(self, self.__layoutHeightID, "", (30, 50))

        layoutWidth.SetRange(500, 3000)
        layoutHeight.SetRange(500, 3000)

        box: StaticBox = StaticBox(self, ID_ANY, "Layout Width/Height")
        szrAppSize: StaticBoxSizer = StaticBoxSizer(box, HORIZONTAL)

        szrAppSize.Add(layoutWidth, 0, ALL, DlgLayoutSize.HORIZONTAL_GAP)
        szrAppSize.Add(layoutHeight, 0, ALL, DlgLayoutSize.HORIZONTAL_GAP)

        self.__layoutWidth = layoutWidth
        self.__layoutHeight = layoutHeight

        self.__layoutWidth.SetValue(self._layoutWidth)
        self.__layoutHeight.SetValue(self._layoutHeight)

        return szrAppSize
Exemplo n.º 10
0
def on_spin_control_changed(event: wx.KeyEvent, spin_control: wx.SpinCtrl,
                            callback: Callable):
    callback(spin_control.GetValue())