mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-05 03:20:08 +01:00
- allow to define a 'Focus' colour as an alternative to the pulse on focus
This commit is contained in:
@@ -39,6 +39,7 @@ class AquaButtonDemo(wx.Panel):
|
|||||||
|
|
||||||
self.backColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetBackgroundColour())
|
self.backColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetBackgroundColour())
|
||||||
self.hoverColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetHoverColour())
|
self.hoverColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetHoverColour())
|
||||||
|
self.focusColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetHoverColour())
|
||||||
self.textColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetForegroundColour())
|
self.textColour = wx.ColourPickerCtrl(self.mainPanel, colour=self.btn2.GetForegroundColour())
|
||||||
self.pulseCheck = wx.CheckBox(self.mainPanel, -1, "Pulse On Focus")
|
self.pulseCheck = wx.CheckBox(self.mainPanel, -1, "Pulse On Focus")
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ class AquaButtonDemo(wx.Panel):
|
|||||||
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
btnSizer = wx.FlexGridSizer(2, 2, 15, 15)
|
btnSizer = wx.FlexGridSizer(2, 2, 15, 15)
|
||||||
|
|
||||||
colourSizer = wx.FlexGridSizer(2, 3, 1, 10)
|
colourSizer = wx.FlexGridSizer(2, 4, 1, 10)
|
||||||
|
|
||||||
btnSizer.Add(self.btn1, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL)
|
btnSizer.Add(self.btn1, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL)
|
||||||
btnSizer.Add(self.pulseCheck, 0, wx.ALIGN_CENTER_VERTICAL)
|
btnSizer.Add(self.pulseCheck, 0, wx.ALIGN_CENTER_VERTICAL)
|
||||||
@@ -61,14 +62,17 @@ class AquaButtonDemo(wx.Panel):
|
|||||||
|
|
||||||
labelBack = wx.StaticText(self.mainPanel, -1, "Background Colour")
|
labelBack = wx.StaticText(self.mainPanel, -1, "Background Colour")
|
||||||
labelHover = wx.StaticText(self.mainPanel, -1, "Hover Colour")
|
labelHover = wx.StaticText(self.mainPanel, -1, "Hover Colour")
|
||||||
|
labelFocus = wx.StaticText(self.mainPanel, -1, "Focus Colour")
|
||||||
labelText = wx.StaticText(self.mainPanel, -1, "Text Colour")
|
labelText = wx.StaticText(self.mainPanel, -1, "Text Colour")
|
||||||
|
|
||||||
colourSizer.Add(labelBack)
|
colourSizer.Add(labelBack)
|
||||||
colourSizer.Add(labelHover)
|
colourSizer.Add(labelHover)
|
||||||
|
colourSizer.Add(labelFocus)
|
||||||
colourSizer.Add(labelText)
|
colourSizer.Add(labelText)
|
||||||
|
|
||||||
colourSizer.Add(self.backColour, 0, wx.EXPAND)
|
colourSizer.Add(self.backColour, 0, wx.EXPAND)
|
||||||
colourSizer.Add(self.hoverColour, 0, wx.EXPAND)
|
colourSizer.Add(self.hoverColour, 0, wx.EXPAND)
|
||||||
|
colourSizer.Add(self.focusColour, 0, wx.EXPAND)
|
||||||
colourSizer.Add(self.textColour, 0, wx.EXPAND)
|
colourSizer.Add(self.textColour, 0, wx.EXPAND)
|
||||||
|
|
||||||
btnSizer.Add(colourSizer, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL)
|
btnSizer.Add(colourSizer, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL)
|
||||||
@@ -112,6 +116,8 @@ class AquaButtonDemo(wx.Panel):
|
|||||||
self.btn2.SetBackgroundColour(colour)
|
self.btn2.SetBackgroundColour(colour)
|
||||||
elif obj == self.hoverColour:
|
elif obj == self.hoverColour:
|
||||||
self.btn2.SetHoverColour(colour)
|
self.btn2.SetHoverColour(colour)
|
||||||
|
elif obj == self.focusColour:
|
||||||
|
self.btn2.SetFocusColour(colour)
|
||||||
else:
|
else:
|
||||||
self.btn2.SetForegroundColour(colour)
|
self.btn2.SetForegroundColour(colour)
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class lib_agw_aquabutton_Tests(wtc.WidgetTestCase):
|
|||||||
btn2.SetShadowColour(wx.Colour('grey'))
|
btn2.SetShadowColour(wx.Colour('grey'))
|
||||||
btn2.SetRectColour(wx.WHITE)
|
btn2.SetRectColour(wx.WHITE)
|
||||||
btn2.SetHoverColour(wx.BLACK)
|
btn2.SetHoverColour(wx.BLACK)
|
||||||
|
btn2.SetFocusColour(wx.GREEN)
|
||||||
|
|
||||||
btn3 = AB.AquaToggleButton(self.frame, -1, None, 'Toggle')
|
btn3 = AB.AquaToggleButton(self.frame, -1, None, 'Toggle')
|
||||||
btn3.SetToggle(True)
|
btn3.SetToggle(True)
|
||||||
|
|||||||
@@ -222,6 +222,7 @@ class AquaButton(wx.Control):
|
|||||||
else:
|
else:
|
||||||
self._backColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION)
|
self._backColour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION)
|
||||||
self._hoverColour = self.LightColour(self._backColour, 30)
|
self._hoverColour = self.LightColour(self._backColour, 30)
|
||||||
|
self._focusColour = self.LightColour(self._backColour, 40)
|
||||||
self._disableColour = self.LightColour(self._backColour, 70)
|
self._disableColour = self.LightColour(self._backColour, 70)
|
||||||
self._textColour = wx.WHITE
|
self._textColour = wx.WHITE
|
||||||
self._shadowColour = wx.Colour("grey")
|
self._shadowColour = wx.Colour("grey")
|
||||||
@@ -294,6 +295,9 @@ class AquaButton(wx.Control):
|
|||||||
elif self._mouseAction == HOVER:
|
elif self._mouseAction == HOVER:
|
||||||
clr = self._hoverColour
|
clr = self._hoverColour
|
||||||
|
|
||||||
|
elif self._hasFocus:
|
||||||
|
clr = self._focusColour
|
||||||
|
|
||||||
elif not self.IsEnabled():
|
elif not self.IsEnabled():
|
||||||
clr = self._disableColour
|
clr = self._disableColour
|
||||||
|
|
||||||
@@ -827,6 +831,27 @@ class AquaButton(wx.Control):
|
|||||||
return self._textColour
|
return self._textColour
|
||||||
|
|
||||||
|
|
||||||
|
def SetFocusColour(self, colour):
|
||||||
|
"""
|
||||||
|
Sets the button colour when the button has focus.
|
||||||
|
|
||||||
|
:param `colour`: a valid :class:`Colour` object.
|
||||||
|
"""
|
||||||
|
|
||||||
|
self._focusColour = colour
|
||||||
|
self.Invalidate()
|
||||||
|
|
||||||
|
|
||||||
|
def GetFocusColour(self):
|
||||||
|
"""
|
||||||
|
Returns the button colour when the button has focus.
|
||||||
|
|
||||||
|
:return: An instance of :class:`Colour`.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return self._hoverColour
|
||||||
|
|
||||||
|
|
||||||
def Invalidate(self):
|
def Invalidate(self):
|
||||||
""" Invalidate the saved bitmap and refresh the button. """
|
""" Invalidate the saved bitmap and refresh the button. """
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user