diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-09-27 21:30:19 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-09-27 21:30:19 +0000 |
commit | ea69f79199e862e1d7f298202d9130415145cf31 (patch) | |
tree | e489739892486333c6015656720661a80bf07801 /src/gui/gui_label.pas | |
parent | e662c3d0202fc23ded7b8ff81b6bc35e554de485 (diff) | |
download | fpGUI-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_label.pas')
-rw-r--r-- | src/gui/gui_label.pas | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/src/gui/gui_label.pas b/src/gui/gui_label.pas deleted file mode 100644 index c4c2d271..00000000 --- a/src/gui/gui_label.pas +++ /dev/null @@ -1,255 +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 basic Label control. Also known as a Caption component. -} - -unit gui_label; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, - SysUtils, - fpg_base, - fpg_main, - fpg_widget; - -type - - - TfpgCustomLabel = class(TfpgWidget) - private - FAutoSize: boolean; - FAlignment: TAlignment; - FLayout: TLayout; - FWrapText: boolean; - FLineSpace: integer; - procedure SetWrapText(const AValue: boolean); - procedure SetAlignment(const AValue: TAlignment); - procedure SetLayout(const AValue: TLayout); - function GetFontDesc: string; - procedure SetAutoSize(const AValue: boolean); - procedure SetFontDesc(const AValue: string); - procedure SetText(const AValue: TfpgString); - procedure ResizeLabel; - protected - FText: TfpgString; - FFont: TfpgFont; - FTextHeight: integer; - procedure HandlePaint; override; - property WrapText: boolean read FWrapText write SetWrapText default False; - property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify; - property AutoSize: boolean read FAutoSize write SetAutoSize default False; - property Layout: TLayout read FLayout write SetLayout default tlTop; - property FontDesc: string read GetFontDesc write SetFontDesc; - property Text: TfpgString read FText write SetText; - property LineSpace: integer read FLineSpace write FLineSpace default 2; - public - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - property Font: TfpgFont read FFont; - property TextHeight: integer read FTextHeight; - end; - - - TfpgLabel = class(TfpgCustomLabel) - published - property Alignment; - property AutoSize; - property BackgroundColor; - property FontDesc; - property Hint; - property Layout; - property LineSpace; - property ParentShowHint; - property ShowHint; - property Text; - property TextColor; - property Width; - property WrapText; - property OnClick; - property OnDoubleClick; - property OnMouseDown; - property OnMouseEnter; - property OnMouseExit; - property OnMouseMove; - property OnMouseUp; - end; - - -// A convenience function to create a TfpgLabel instance -function CreateLabel(AOwner: TComponent; x, y: TfpgCoord; AText: string; w: TfpgCoord= 0; h: TfpgCoord= 0; - HAlign: TAlignment= taLeftJustify; VAlign: TLayout= tlTop; ALineSpace: integer= 2): TfpgLabel; overload; - -implementation - - -function CreateLabel(AOwner: TComponent; x, y: TfpgCoord; AText: string; w: TfpgCoord; h: TfpgCoord; - HAlign: TAlignment; VAlign: TLayout; ALineSpace: integer): TfpgLabel; -begin - Result := TfpgLabel.Create(AOwner); - Result.Left := x; - Result.Top := y; - Result.Text := AText; - Result.LineSpace := ALineSpace; - if w = 0 then - begin - Result.Width := Result.Font.TextWidth(Result.Text); - Result.FAutoSize := True; - end - else - Result.Width := w; - if h < Result.Font.Height then - Result.Height:= Result.Font.Height - else - Result.Height:= h; - Result.Alignment:= HAlign; - Result.Layout:= VAlign; -end; - -{ TfpgCustomLabel } - -procedure TfpgCustomLabel.SetWrapText(const AValue: boolean); -begin - if FWrapText <> AValue then - begin - FWrapText := AValue; - ResizeLabel; - end; -end; - -procedure TfpgCustomLabel.SetAlignment(const AValue: TAlignment); -begin - if FAlignment <> AValue then - begin - FAlignment := AValue; - ResizeLabel; - end; -end; - -procedure TfpgCustomLabel.SetLayout(const AValue: TLayout); -begin - if FLayout <> AValue then - begin - FLayout := AValue; - ResizeLabel; - end; -end; - -function TfpgCustomLabel.GetFontDesc: string; -begin - Result := FFont.FontDesc; -end; - -procedure TfpgCustomLabel.SetAutoSize(const AValue: boolean); -begin - if FAutoSize <> AValue then - begin - FAutoSize := AValue; - ResizeLabel; - end; -end; - -procedure TfpgCustomLabel.SetFontDesc(const AValue: string); -begin - FFont.Free; - FFont := fpgGetFont(AValue); - ResizeLabel; -end; - -procedure TfpgCustomLabel.SetText(const AValue: TfpgString); -begin - if FText <> AValue then - begin - FText := AValue; - ResizeLabel; - end; -end; - -procedure TfpgCustomLabel.ResizeLabel; -begin - if FAutoSize and not FWrapText then - Width:= FFont.TextWidth(FText); - UpdateWindowPosition; - RePaint; -end; - -constructor TfpgCustomLabel.Create(AOwner: TComponent); -begin - inherited Create(AOwner); - FText := 'Label'; - FFont := fpgGetFont('#Label1'); - FHeight := FFont.Height; - FWidth := 80; - FTextColor := Parent.TextColor; - FBackgroundColor := Parent.BackgroundColor; - FAutoSize := False; - FLayout := tlTop; - FAlignment := taLeftJustify; - FWrapText := False; - FLineSpace := 2; -end; - -destructor TfpgCustomLabel.Destroy; -begin - FText := ''; - FFont.Free; - inherited Destroy; -end; - -procedure TfpgCustomLabel.HandlePaint; -var - r: TfpgRect; - lTxtFlags: TFTextFlags; -begin - inherited HandlePaint; - Canvas.ClearClipRect; - r.SetRect(0, 0, Width, Height); - Canvas.Clear(FBackgroundColor); - Canvas.SetFont(Font); - if Enabled then - Canvas.SetTextColor(FTextColor) - else - Canvas.SetTextColor(clShadow1); - - lTxtFlags:= []; - if not Enabled then - Include(lTxtFlags, txtDisabled); - - if FWrapText then - Include(lTxtFlags, txtWrap); - case FAlignment of - taLeftJustify: - Include(lTxtFlags, txtLeft); - taRightJustify: - Include(lTxtFlags, txtRight); - taCenter: - Include(lTxtFlags, txtHCenter); - end; - case FLayout of - tlTop: - Include(lTxtFlags, txtTop); - tlBottom: - Include(lTxtFlags, txtBottom); - tlCenter: - Include(lTxtFlags, txtVCenter); - end; - FTextHeight := Canvas.DrawText(0, 0, Width, Height, FText, lTxtFlags); -end; - -end. - |