summaryrefslogtreecommitdiff
path: root/src/gui/gui_progressbar.pas
diff options
context:
space:
mode:
authorgraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-09-27 21:30:19 +0000
committergraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-09-27 21:30:19 +0000
commitea69f79199e862e1d7f298202d9130415145cf31 (patch)
treee489739892486333c6015656720661a80bf07801 /src/gui/gui_progressbar.pas
parente662c3d0202fc23ded7b8ff81b6bc35e554de485 (diff)
downloadfpGUI-ea69f79199e862e1d7f298202d9130415145cf31.tar.xz
* Phase 2 of the unit rename is complete. The gui units have now been renamed.
* UI Designer has been updated to reflect the new gui unit names.
Diffstat (limited to 'src/gui/gui_progressbar.pas')
-rw-r--r--src/gui/gui_progressbar.pas227
1 files changed, 0 insertions, 227 deletions
diff --git a/src/gui/gui_progressbar.pas b/src/gui/gui_progressbar.pas
deleted file mode 100644
index 14619bee..00000000
--- a/src/gui/gui_progressbar.pas
+++ /dev/null
@@ -1,227 +0,0 @@
-{
- fpGUI - Free Pascal GUI Toolkit
-
- Copyright (C) 2006 - 2008 See the file AUTHORS.txt, included in this
- distribution, for details of the copyright.
-
- See the file COPYING.modifiedLGPL, included in this distribution,
- for details about redistributing fpGUI.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- Description:
- Defines a component for a progress bar.
-}
-
-unit gui_progressbar;
-
-{$mode objfpc}{$H+}
-
-interface
-
-uses
- Classes,
- SysUtils,
- fpg_base,
- fpg_main,
- fpg_widget;
-
-type
- TfpgCustomProgressBar = class(TfpgWidget)
- private
- FMax: longint;
- FMin: longint;
- FPosition: longint;
- FShowCaption: boolean;
- FStep: longint;
- FFont: TfpgFont;
- procedure SetMax(const AValue: longint);
- procedure SetMin(const AValue: longint);
- procedure SetPBPosition(const AValue: longint);
- procedure SetShowCaption(const AValue: boolean);
- procedure SetStep(const AValue: longint);
- protected
- procedure HandlePaint; override;
- property Max: longint read FMax write SetMax default 100;
- property Min: longint read FMin write SetMin default 0;
- property Position: longint read FPosition write SetPBPosition default 0;
- property Step: longint read FStep write SetStep;
-// property FontName: string read GetFontName write SetFontName;
- property ShowCaption: boolean read FShowCaption write SetShowCaption default False;
- public
- constructor Create(AOwner: TComponent); override;
- procedure StepIt;
- procedure StepBy(AStep: integer);
- property Font: TfpgFont read FFont;
- end;
-
-
- TfpgProgressBar = class(TfpgCustomProgressBar)
- published
- property BackgroundColor default $c4c4c4;
- property ShowCaption;
- property Max;
- property Min;
- property ParentShowHint;
- property Position;
- property ShowHint;
- property Step;
- property TextColor;
- end;
-
-
-implementation
-
-
-{ TfpgCustomProgressBar }
-
-procedure TfpgCustomProgressBar.SetMax(const AValue: longint);
-begin
- if FMax = AValue then
- Exit; //==>
-
- // correct wrong inputs
- if FMin > AValue then
- FMin := AValue - 1;
- if FPosition > AValue then
- FPosition := AValue;
-
- FMax := AValue;
- RePaint;
-end;
-
-procedure TfpgCustomProgressBar.SetMin(const AValue: longint);
-begin
- if FMin = AValue then
- Exit; //==>
-
- // correct wrong inputs
- if AValue > FPosition then
- FPosition := AValue;
- if AValue > FMax then
- FMax := AValue+1;
-
- FMin := AValue;
- RePaint;
-end;
-
-procedure TfpgCustomProgressBar.SetPBPosition(const AValue: longint);
-begin
- if FPosition = AValue then
- Exit; //==>
-
- // correct limits
- if AValue < Min then
- FPosition := Min
- else if AValue > Max then
- FPosition := Max
- else
- FPosition := AValue;
-
- RePaint;
-end;
-
-procedure TfpgCustomProgressBar.SetShowCaption(const AValue: boolean);
-begin
- if FShowCaption = AValue then
- Exit; //==>
- FShowCaption := AValue;
- RePaint;
-end;
-
-procedure TfpgCustomProgressBar.SetStep(const AValue: longint);
-begin
- if AValue < 1 then
- Exit; //==>
- if FStep = AValue then
- Exit; //==>
- FStep := AValue;
-end;
-
-procedure TfpgCustomProgressBar.HandlePaint;
-var
- r: TfpgRect;
- diff: integer;
- aPos: integer; // absolute position
- pos: integer;
- percent: integer;
- txt: string;
- x: TfpgCoord;
- y: TfpgCoord;
-begin
- inherited HandlePaint;
- Canvas.ClearClipRect;
- r.SetRect(0, 0, Width, Height);
-
- Canvas.Clear(BackgroundColor);
-// Canvas.SetColor(clInactiveWgFrame);
-
- // calculate position
- diff := Max - Min; // diff..
- aPos := Position - Min; // absolute position
- percent := round(((100 / diff) * aPos));
- txt := IntToStr(percent) + '%';
- pos := round(percent * (Width-2) / 100);
-
- // Bluecurve theme :)
- // outer dark border
- Canvas.SetColor(TfpgColor($999999));
- Canvas.SetLineStyle(1, lsSolid);
- Canvas.DrawRectangle(r);
- InflateRect(r, -1, -1);
- r.Width := pos;
- if FPosition > 0 then
- begin
- // left top
- Canvas.SetColor(TfpgColor($98b2ed));
- Canvas.DrawLine(r.Left, r.Bottom, r.Left, r.Top); // left
- Canvas.DrawLine(r.Left, r.Top, r.Right, r.Top); // top
- // right bottom
- Canvas.SetColor(TfpgColor($3b4c71));
- Canvas.DrawLine(r.Right, r.Top, r.Right, r.Bottom); // right
- Canvas.DrawLine(r.Right, r.Bottom, r.Left, r.Bottom); // bottom
- // inside gradient fill
- InflateRect(r, -1, -1);
- Canvas.GradientFill(r, TfpgColor($425d9b), TfpgColor($97b0e8), gdVertical);
- end;
- // paint percentage if required
- if FShowCaption then
- begin
- x := (Width - FFont.TextWidth(txt)) div 2;
- y := (Height - FFont.Height) div 2;
- Canvas.SetTextColor(TextColor);
- Canvas.Font := FFont;
- Canvas.DrawString(x, y, txt);
- end;
-end;
-
-constructor TfpgCustomProgressBar.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- Focusable := False;
- Width := 150;
- Height := 22;
- FMin := 0;
- FMax := 100;
- FStep := 1;
- FPosition := 0;
- FBackgroundColor := TfpgColor($c4c4c4); // clListBox;
- FTextColor := Parent.TextColor;
- FShowCaption := False;
- FFont := fpgStyle.DefaultFont;
-end;
-
-procedure TfpgCustomProgressBar.StepIt;
-begin
- Position := Position + Step;
-end;
-
-procedure TfpgCustomProgressBar.StepBy(AStep: integer);
-begin
- Position := Position + AStep;
-end;
-
-end.
-