summaryrefslogtreecommitdiff
path: root/src/gui/fpg_form.pas
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graeme@mastermaths.co.za>2009-11-05 16:38:09 +0200
committerGraeme Geldenhuys <graeme@mastermaths.co.za>2009-11-05 16:38:49 +0200
commit6ea088287e44542e406f0571fb69dd3bc6830c57 (patch)
tree39c36bbf38dec7339ccd5ad8c91500b6f721d80e /src/gui/fpg_form.pas
parent00fe1d02a270f4cf2b9789de6fd3117e01007e4f (diff)
downloadfpGUI-6ea088287e44542e406f0571fb69dd3bc6830c57.tar.xz
More support for a help system
* Implemented InvokeHelp in TfpgWidget * implemented InvokeHelp and OnHelp event in TfpgForm * Implemented HelpConext, HelpKeyword and HelpType in TfpgComponent
Diffstat (limited to 'src/gui/fpg_form.pas')
-rw-r--r--src/gui/fpg_form.pas26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/gui/fpg_form.pas b/src/gui/fpg_form.pas
index 8c2545c1..a0a4c342 100644
--- a/src/gui/fpg_form.pas
+++ b/src/gui/fpg_form.pas
@@ -34,6 +34,9 @@ type
TFormCloseEvent = procedure(Sender: TObject; var CloseAction: TCloseAction) of object;
TFormCloseQueryEvent = procedure(Sender: TObject; var CanClose: boolean) of object;
+ TfpgHelpEvent = function(AHelpType: THelpType; AHelpContext: THelpContext;
+ const AHelpKeyword: String; const AHelpFile: String;
+ var AHandled: Boolean): Boolean of object;
TfpgBaseForm = class(TfpgWidget)
@@ -47,6 +50,7 @@ type
FOnDestroy: TNotifyEvent;
FOnHide: TNotifyEvent;
FOnShow: TNotifyEvent;
+ FOnHelp: TfpgHelpEvent;
protected
FModalResult: TfpgModalResult;
FParentForm: TfpgBaseForm;
@@ -67,6 +71,7 @@ type
procedure HandleResize(awidth, aheight: TfpgCoord); override;
procedure HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override;
procedure DoOnClose(var CloseAction: TCloseAction); virtual;
+ function DoOnHelp(AHelpType: THelpType; AHelpContext: THelpContext; const AHelpKeyword: String; const AHelpFile: String; var AHandled: Boolean): Boolean; virtual;
// properties
property Sizeable: boolean read FSizeable write FSizeable;
property ModalResult: TfpgModalResult read FModalResult write FModalResult;
@@ -80,6 +85,7 @@ type
property OnCreate: TNotifyEvent read FOnCreate write FOnCreate;
property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate;
property OnDestroy: TNotifyEvent read FOnDestroy write FOnDestroy;
+ property OnHelp: TfpgHelpEvent read FOnHelp write FOnHelp;
property OnHide: TNotifyEvent read FOnHide write FOnHide;
property OnShow: TNotifyEvent read FOnShow write FOnShow;
public
@@ -88,6 +94,7 @@ type
procedure AfterConstruction; override;
procedure BeforeDestruction; override;
procedure AfterCreate; virtual;
+ procedure InvokeHelp; override;
procedure Show;
procedure Hide;
function ShowModal: integer;
@@ -262,6 +269,18 @@ begin
// for the user
end;
+procedure TfpgBaseForm.InvokeHelp;
+var
+ lEventHandled: Boolean;
+ lSucceeded: Boolean;
+begin
+ lEventHandled := False;
+ lSucceeded := False;
+ lSucceeded := DoOnHelp(HelpType, HelpContext, HelpKeyword, fpgApplication.HelpFile, lEventHandled);
+ if (not lSucceeded) or (not lEventHandled) then
+ inherited InvokeHelp;
+end;
+
procedure TfpgBaseForm.Show;
begin
FVisible := True;
@@ -388,6 +407,13 @@ begin
OnClose(self, CloseAction);
end;
+function TfpgBaseForm.DoOnHelp(AHelpType: THelpType; AHelpContext: THelpContext;
+ const AHelpKeyword: String; const AHelpFile: String; var AHandled: Boolean): Boolean;
+begin
+ if Assigned(FOnHelp) then
+ Result := FOnHelp(AHelpType, AHelpContext, AHelpKeyword, AHelpFile, AHandled);
+end;
+
procedure TfpgBaseForm.Hide;
begin
Visible := False;