From 52c5b6afb9c9ee72b6fdc91b720b727423a4d0e9 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Sat, 3 Oct 2009 15:18:01 +0200 Subject: Implemented doubleclick behaviour for TOC treeview and Index listbox. Signed-off-by: Graeme Geldenhuys --- src/frm_main.pas | 63 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/src/frm_main.pas b/src/frm_main.pas index abc5081d..dc6bf02a 100644 --- a/src/frm_main.pas +++ b/src/frm_main.pas @@ -74,6 +74,9 @@ type procedure btnGoClicked(Sender: TObject); procedure tvContentsChange(Sender: TObject); procedure MainFormCloseQuery(Sender: TObject; var CanClose: boolean); + procedure PageControl1Change(Sender: TObject; NewActiveSheet: TfpgTabSheet); + procedure tvContentsDoubleClick(Sender: TObject; AButton: TMouseButton; AShift: TShiftState; const AMousePos: TPoint); + procedure lbIndexDoubleClick(Sender: TObject; AButton: TMouseButton; AShift: TShiftState; const AMousePos: TPoint); procedure FileOpen; function OpenFile(const AFileNames: string): boolean; procedure CloseFile; @@ -90,7 +93,6 @@ type function TranslateEnvironmentVar(AFilenames: TfpgString): TfpgString; // Given a "filename" which may include a path, find it in various paths and extensions function FindHelpFile(AFileName: TfpgString ): TfpgString; - public constructor Create(AOwner: TComponent); override; destructor Destroy; override; @@ -214,6 +216,28 @@ begin CloseFile; end; +procedure TMainForm.PageControl1Change(Sender: TObject; NewActiveSheet: TfpgTabSheet); +begin + if NewActiveSheet = tsIndex then + begin + if lbIndex.Items.Count = 0 then + btnShowIndex(nil); + end; +end; + +procedure TMainForm.tvContentsDoubleClick(Sender: TObject; AButton: TMouseButton; + AShift: TShiftState; const AMousePos: TPoint); +begin + if tvContents.Selection <> nil then + DisplayTopic; +end; + +procedure TMainForm.lbIndexDoubleClick(Sender: TObject; AButton: TMouseButton; + AShift: TShiftState; const AMousePos: TPoint); +begin + DisplayTopic; +end; + procedure TMainForm.FileOpen; var dlg: TfpgFileDialog; @@ -511,14 +535,28 @@ var Topic: TTopic; Begin ProfileEvent('DisplayTopic >>>>'); - if tvContents.Selection = nil then - begin - ShowMessage('You must select a topic first by clicking it.'); - Exit; //==> - end - else - Topic := TTopic(tvContents.Selection.Data); - ProfileEvent('Got Topic from Treeview'); + case PageControl1.ActivePageIndex of + 0: begin + if tvContents.Selection = nil then + begin + ShowMessage('You must select a topic first by clicking it.'); + Exit; //==> + end + else + Topic := TTopic(tvContents.Selection.Data); + ProfileEvent('Got Topic from Treeview'); + end; + 1: begin + if lbIndex.FocusItem = -1 then + begin + ShowMessage('You must select a index first by clicking it.'); + Exit; //==> + end + else + Topic := TTopic(lbIndex.Items.Objects[lbIndex.FocusItem]); + ProfileEvent('Got Topic from Index listbox'); + end; + end; Memo1.Lines.Clear; ImageIndices := TList.Create; @@ -619,9 +657,10 @@ begin begin Name := 'PageControl1'; SetPosition(0, 0, 260, 328); - ActivePageIndex := 4; + ActivePageIndex := 1; TabOrder := 0; Align := alLeft; + OnChange := @PageControl1Change; end; tsContents := TfpgTabSheet.Create(PageControl1); @@ -675,6 +714,7 @@ begin ShowImages := True; TabOrder := 0; // OnChange := @tvContentsChange; + OnDoubleClick := @tvContentsDoubleClick; end; Splitter1 := TfpgSplitter.Create(bvlBody); @@ -863,7 +903,7 @@ begin with edSearchText do begin Name := 'edSearchText'; - SetPosition(4, 20, 242, 24); + SetPosition(4, 20, 242, 26); Anchors := [anLeft,anRight,anTop]; TabOrder := 1; Text := ''; @@ -997,6 +1037,7 @@ begin HotTrack := False; PopupFrame := False; TabOrder := 1; + OnDoubleClick := @lbIndexDoubleClick; end; {@VFD_BODY_END: MainForm} -- cgit v1.2.3-70-g09d2