summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graeme@mastermaths.co.za>2012-09-21 09:21:05 +0100
committerGraeme Geldenhuys <graeme@mastermaths.co.za>2012-09-21 09:21:05 +0100
commitf6bdaf28c36db18b1c7110a9720f9264a8b0672d (patch)
tree8cef811782dd83d01d8b79ceefddb9605be6744f /src
parenta364a5e89bebd6a359ee55f9618e937c9ce3633a (diff)
downloadfpGUI-f6bdaf28c36db18b1c7110a9720f9264a8b0672d.tar.xz
trackbar: made sure all painting only occurs in the HandlePaint event
Diffstat (limited to 'src')
-rw-r--r--src/gui/fpg_trackbar.pas32
1 files changed, 5 insertions, 27 deletions
diff --git a/src/gui/fpg_trackbar.pas b/src/gui/fpg_trackbar.pas
index 9134a96d..89b9b0da 100644
--- a/src/gui/fpg_trackbar.pas
+++ b/src/gui/fpg_trackbar.pas
@@ -110,7 +110,6 @@ type
procedure HandleMouseMove(x, y: integer; btnstate: word; shiftstate: TShiftState); override;
procedure HandlePaint; override;
procedure DrawSlider(recalc: boolean); virtual;
- procedure RepaintSlider;
procedure PositionChange(d: integer);
public
constructor Create(AOwner: TComponent); override;
@@ -254,7 +253,6 @@ var
drawwidth: integer;
i: integer;
begin
- Canvas.BeginDraw;
// inherited HandlePaint;
r.SetRect(0, 0, Width, Height);
Canvas.Clear(FBackgroundColor);
@@ -294,8 +292,6 @@ begin
DrawSlider(round(2 + FSliderSize div 2 + linepos * position));
end;
end; { if/else }
-
- Canvas.EndDraw;
end;
procedure TfpgTrackBarExtra.HandleLMouseUp(x, y: integer; shiftstate: TShiftState);
@@ -415,9 +411,7 @@ begin
else
FPosition := AValue;
- if HasHandle then
- DrawSlider(False);
- Repaint;
+ RePaint;
end;
procedure TfpgTrackBar.SetShowPosition(const AValue: boolean);
@@ -463,7 +457,7 @@ begin
if FSliderDragging then
begin
FSliderDragStart := FSliderPos;
- DrawSlider(False);
+ RePaint;
end;
end;
@@ -471,7 +465,7 @@ procedure TfpgTrackBar.HandleLMouseUp(x, y: integer; shiftstate: TShiftState);
begin
inherited HandleLMouseUp(x, y, shiftstate);
FSliderDragging := False;
- HandlePaint;
+ RePaint;
end;
procedure TfpgTrackBar.HandleMouseMove(x, y: integer; btnstate: word; shiftstate: TShiftState);
@@ -513,9 +507,6 @@ begin
if FSliderPos > area then
FSliderPos := area;
- if ppos <> FSliderPos then
- DrawSlider(False);
-
if area <> FMin then
newp := FMin + Trunc((FMax - FMin) * (FSliderPos / area))
else
@@ -524,6 +515,7 @@ begin
if newp <> FPosition then
begin
Position := newp;
+ RePaint;
if Assigned(FOnChange) then
FOnChange(self, FPosition);
end;
@@ -533,16 +525,12 @@ procedure TfpgTrackBar.HandlePaint;
var
r: TfpgRect;
begin
- Canvas.BeginDraw;
-
DrawSlider(True);
if Focused then
begin
r.SetRect(0, 0, Width, Height);
Canvas.DrawFocusRect(r);
end;
-
- Canvas.EndDraw;
end;
procedure TfpgTrackBar.DrawSlider(recalc: boolean);
@@ -552,7 +540,6 @@ var
r: TfpgRect;
tw: TfpgCoord;
begin
- Canvas.BeginDraw;
Canvas.Clear(FBackgroundColor);
Canvas.SetColor(FBackgroundColor);
@@ -584,7 +571,6 @@ begin
if Orientation = orVertical then
begin
Canvas.DrawButtonFace(0, Width + FSliderPos, Width, FSliderLength, [btfIsEmbedded]);
- Canvas.EndDraw(0, Width, Width, Height - Width - Width);
end
else
begin
@@ -598,14 +584,6 @@ begin
fpgStyle.DrawString(Canvas, Width - tw, (Height - FFont.Height) div 2, IntToStr(Position), Enabled);
end;
end;
- Canvas.EndDraw;
-end;
-
-procedure TfpgTrackBar.RepaintSlider;
-begin
- if not HasHandle then
- Exit; //==>
- DrawSlider(True);
end;
procedure TfpgTrackBar.PositionChange(d: integer);
@@ -617,7 +595,7 @@ begin
FPosition := FMax;
if Visible then
- DrawSlider(True);
+ RePaint;
if Assigned(FOnChange) then
FOnChange(self, FPosition);