summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graeme@mastermaths.co.za>2011-12-05 14:52:50 +0200
committerGraeme Geldenhuys <graeme@mastermaths.co.za>2011-12-05 15:20:44 +0200
commitf8bf1bfdbf59953bbae97efa4d9490b1f1b5e285 (patch)
tree0e5c229cac0afd92c0ea9519df3a9ddcd2cef93d
parentd87814794a48cc35e65043c4e66edf67eb2997ed (diff)
downloadfpGUI-f8bf1bfdbf59953bbae97efa4d9490b1f1b5e285.tar.xz
Implements BorderStyle property for basegrid widget.
-rw-r--r--src/gui/fpg_basegrid.pas37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/gui/fpg_basegrid.pas b/src/gui/fpg_basegrid.pas
index 4d0c525c..cb77be2d 100644
--- a/src/gui/fpg_basegrid.pas
+++ b/src/gui/fpg_basegrid.pas
@@ -1,7 +1,7 @@
{
fpGUI - Free Pascal GUI Toolkit
- Copyright (C) 2006 - 2010 See the file AUTHORS.txt, included in this
+ Copyright (C) 2006 - 2011 See the file AUTHORS.txt, included in this
distribution, for details of the copyright.
See the file COPYING.modifiedLGPL, included in this distribution,
@@ -84,6 +84,7 @@ type
FOptions: TfpgGridOptions;
FPopupMenu: TfpgPopupMenu;
FAlternativeBGColor: TfpgColor;
+ FBorderStyle: TfpgEditBorderStyle;
function GetFontDesc: string;
function GetHeaderFontDesc: string;
function GetTotalColumnWidth: integer;
@@ -106,6 +107,7 @@ type
function VisibleHeight: integer;
procedure SetFirstRow(const AValue: Integer);
procedure SetAlternativeBGColor(const AValue: TfpgColor);
+ procedure SetBorderStyle(AValue: TfpgEditBorderStyle);
protected
property UpdateCount: integer read FUpdateCount;
procedure UpdateScrollBars; virtual;
@@ -136,6 +138,7 @@ type
procedure HandleRMouseUp(x, y: integer; shiftstate: TShiftState); override;
procedure FollowFocus; virtual;
property AlternateBGColor: TfpgColor read FAlternativeBGColor write SetAlternativeBGColor default clHilite1;
+ property BorderStyle: TfpgEditBorderStyle read FBorderStyle write SetBorderStyle default ebsDefault;
property DefaultColWidth: integer read FDefaultColWidth write SetDefaultColWidth default 64;
property DefaultRowHeight: integer read FDefaultRowHeight write SetDefaultRowHeight;
property Font: TfpgFont read FFont;
@@ -445,6 +448,8 @@ procedure TfpgBaseGrid.DrawGrid(ARow, ACol: Integer; ARect: TfpgRect;
begin
// default is inside bottom/right edge or cell
Canvas.SetColor(clGridLines);
+ if (BorderStyle <> ebsDefault) and (ACol = 0) then
+ Canvas.DrawLine(ARect.Left, ARect.Top, ARect.Left, ARect.Bottom); // cell left of first column only
Canvas.DrawLine(ARect.Left, ARect.Bottom, ARect.Right, ARect.Bottom); // cell bottom
Canvas.DrawLine(ARect.Right, ARect.Bottom, ARect.Right, ARect.Top-1); // cell right
end;
@@ -566,6 +571,14 @@ begin
FAlternativeBGColor := AValue;
end;
+procedure TfpgBaseGrid.SetBorderStyle(AValue: TfpgEditBorderStyle);
+begin
+ if FBorderStyle = AValue then
+ Exit;
+ FBorderStyle := AValue;
+ Repaint;
+end;
+
procedure TfpgBaseGrid.UpdateScrollBars;
var
HWidth: integer;
@@ -665,10 +678,25 @@ begin
Canvas.ClearClipRect;
r.SetRect(0, 0, Width, Height);
- Canvas.DrawControlFrame(r);
-
- InflateRect(r, -2, -2);
+ case BorderStyle of
+ ebsNone:
+ begin
+ // do nothing
+ end;
+ ebsDefault:
+ begin
+ Canvas.DrawControlFrame(r);
+ InflateRect(r, -2, -2);
+ end;
+ ebsSingle:
+ begin
+ Canvas.SetColor(clShadow2);
+ Canvas.DrawRectangle(r);
+ InflateRect(r, -1, -1);
+ end;
+ end;
Canvas.SetClipRect(r);
+
Canvas.SetColor(FBackgroundColor);
Canvas.FillRectangle(r);
@@ -1275,6 +1303,7 @@ begin
FUpdateCount := 0;
FOptions := [];
FHeaderStyle := ghsButton;
+ FBorderStyle := ebsDefault;
FFont := fpgGetFont('#Grid');
FHeaderFont := fpgGetFont('#GridHeader');