diff options
author | Graeme Geldenhuys <graemeg@users.sourceforge.net> | 2006-12-12 12:01:28 +0000 |
---|---|---|
committer | Graeme Geldenhuys <graemeg@users.sourceforge.net> | 2006-12-12 12:01:28 +0000 |
commit | f1cfdfd5027990c3e1900507a3c1d22a60cd9b6a (patch) | |
tree | 7b7cb8aab0ae82954656cbe1aec9216e73bc18d2 /gui | |
parent | 76d1326f6363f1f2dbd5661fe6d253834a12ae8a (diff) | |
download | fpGUI-f1cfdfd5027990c3e1900507a3c1d22a60cd9b6a.tar.xz |
* Replaced the Direction parameter in DrawDirectionArrow function with a
enumerated type.
* Arrows now indent with the button when pressed.
* Replaced the ComboBox image arrow with the DrawDirectionArrow function.
Diffstat (limited to 'gui')
-rw-r--r-- | gui/style.inc | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/gui/style.inc b/gui/style.inc index 4f48b386..abbd7c8b 100644 --- a/gui/style.inc +++ b/gui/style.inc @@ -94,7 +94,7 @@ ImageCanvas: TFCustomCanvas; MaskCanvas: TFCustomCanvas; // ArrowBitmaps: array[TArrowDirection] of TGfxImage; - procedure DrawDirectionArrows(ACanvas: TFCanvas; const ARect: TRect; ADirection: integer); + procedure DrawDirectionArrows(ACanvas: TFCanvas; const ARect: TRect; ADirection: TArrowDirection); public constructor Create; override; destructor Destroy; override; @@ -231,9 +231,8 @@ const {$I defimpl/defstyle.inc} {$ENDIF} -{ ADirection values: 0 - down, 1 - up, 2 - right, 3 - left } procedure TDefaultStyle.DrawDirectionArrows(ACanvas: TFCanvas; - const ARect: TRect; ADirection: integer); + const ARect: TRect; ADirection: TArrowDirection); var peekx, peeky: Cardinal; basex, basey: Cardinal; @@ -242,16 +241,16 @@ begin side := (ARect.Right div 4) + 1; margin := side;// + 1; - if ADirection < 2 then // vertical + if ADirection in [arrowUp, arrowDown] then begin peekx := ARect.Left+(ARect.Right div 2); - if ADirection = 1 then // down + if ADirection = arrowDown then begin peeky := ARect.Top + ARect.Bottom - margin; basey := peeky-side; end else - begin // up + begin // up peeky := ARect.Top+margin; basey := peeky+side; end; @@ -263,12 +262,12 @@ begin else // horizontal begin peeky := ARect.Top + (ARect.Bottom div 2); - if ADirection = 3 then // right + if ADirection = arrowRight then begin peekx := ARect.Left + ARect.Right - margin; basex := peekx - side; end - else // left + else // left begin peekx := ARect.Left + margin; basex := peekx + side; @@ -712,24 +711,29 @@ end; function TDefaultStyle.GetComboBoxArrowSize: TSize; begin - Result := gfxbase.Size(16, 17); + Result := Size(16, 17); end; procedure TDefaultStyle.DrawComboBoxArrow(Canvas: TFCanvas; const ARect: TRect; IsPressed, IsEnabled: Boolean); var - Pt: TPoint; - Index: Integer; + r: TRect; begin - with ARect do - Pt := TopLeft + Point((Right - Left - 8) div 2, (Bottom - Top - 8) div 2); - - if IsPressed then - Pt := Pt + Point(1, 1); + r := ARect; + if IsEnabled then + begin + Canvas.SetColor(GetGUIColor(clWindowText)); + if IsPressed then + begin + r.Top := ARect.Top + 1; + r.Left := ARect.Left + 1; + end; + end + else + Canvas.SetColor(GetGUIColor(clGrayText)); - Index := 1 + Ord(not IsEnabled) * 4; - Canvas.CopyRect(ImageCanvas, Rect(Index * 8, 25, (Index + 1) * 8, 33), Pt); + DrawDirectionArrows(Canvas, r, arrowDown); end; @@ -777,24 +781,22 @@ procedure TDefaultStyle.DrawScrollBarButton(Canvas: TFCanvas; const ARect: TRect; Direction: TArrowDirection; IsPressed, IsEnabled: Boolean); var - Index: Integer; + r: TRect; begin - { This uses a internal image } -{ Index := Ord(Direction) + Ord(not IsEnabled) * 4; - with ARect do - Canvas.CopyRect( - ImageCanvas, - Rect(Index * 8, 25, (Index + 1) * 8, 33), - TopLeft + Point((Right - Left - 8) div 2, (Bottom - Top - 8) div 2)); -} - { This draws the rectangle directly } + r := ARect; if IsEnabled then - Canvas.SetColor(GetGUIColor(clWindowText)) + begin + Canvas.SetColor(GetGUIColor(clWindowText)); + if IsPressed then + begin + r.Top := ARect.Top + 1; + r.Left := ARect.Left + 1; + end; + end else Canvas.SetColor(GetGUIColor(clGrayText)); - - DrawDirectionArrows(Canvas, ARect, Ord(Direction)); + DrawDirectionArrows(Canvas, r, Direction); end; |