From fde82e5b5f3d64134347fed70c504b0f83aa9fdd Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 1 Aug 2009 11:49:10 +0000 Subject: [PATCH] IDE: fpdoc link editor: cursor up/down git-svn-id: trunk@21054 - --- ide/fpdocselectlink.pas | 64 +++++++++++++++++++++++++++++++++++++---- tools/lazres.lpi | 7 +---- 2 files changed, 60 insertions(+), 11 deletions(-) diff --git a/ide/fpdocselectlink.pas b/ide/fpdocselectlink.pas index 45555cd78d..8dccecebcc 100644 --- a/ide/fpdocselectlink.pas +++ b/ide/fpdocselectlink.pas @@ -31,7 +31,7 @@ interface uses Classes, SysUtils, LCLProc, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, ButtonPanel, FileUtil, + ExtCtrls, StdCtrls, ButtonPanel, FileUtil, LCLType, PackageIntf, ProjectIntf, CodeHelp, LazarusIDEStrConsts, PackageSystem, PackageDefs, Laz_DOM; @@ -50,10 +50,16 @@ type TFPDocLinkCompletionList = class private + FBGColor: TColor; + FItemHeight: integer; FItems: TFPList; // list of TFPDocLinkCompletionItem FPrefix: string; FSelected: integer; + FSelectedBGColor: TColor; + FSelectedTextColor: TColor; + FTextColor: TColor; FTop: integer; + FVisibleItems: integer; function GetCount: integer; function GetItems(Index: integer): TFPDocLinkCompletionItem; procedure SetSelected(const AValue: integer); @@ -69,9 +75,15 @@ type procedure Draw(Canvas: TCanvas; Width, Height: integer); property Count: integer read GetCount; property Items[Index: integer]: TFPDocLinkCompletionItem read GetItems; + property ItemHeight: integer read FItemHeight write FItemHeight;// pixel per item + property VisibleItems: integer read FVisibleItems write FVisibleItems;// visible lines property Top: integer read FTop write SetTop; property Selected: integer read FSelected write SetSelected; property Prefix: string read FPrefix write FPrefix; + property BGColor: TColor read FBGColor write FBGColor; + property TextColor: TColor read FTextColor write FTextColor; + property SelectedBGColor: TColor read FSelectedBGColor write FSelectedBGColor; + property SelectedTextColor: TColor read FSelectedTextColor write FSelectedTextColor; end; { TFPDocLinkEditorDlg } @@ -167,8 +179,12 @@ end; procedure TFPDocLinkEditorDlg.CompletionBoxPaint(Sender: TObject); begin - CompletionBox.Canvas.Brush.Color:=clInfoBk; - CompletionBox.Canvas.Font.Color:=clInfoText; + fItems.BGColor:=clWindow; + fItems.TextColor:=clWindowText; + fItems.SelectedBGColor:=clHighlight; + fItems.SelectedTextColor:=clHighlightText; + fItems.ItemHeight:=Canvas.TextHeight('ABCTWSMgqp')+4; + fItems.VisibleItems:=CompletionBox.ClientHeight div fItems.ItemHeight; fItems.Draw(CompletionBox.Canvas, CompletionBox.ClientWidth,CompletionBox.ClientHeight); end; @@ -181,8 +197,34 @@ end; procedure TFPDocLinkEditorDlg.LinkEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); +var + Handled: Boolean; begin - + if Shift=[] then begin + Handled:=true; + case Key of + VK_UP: + if FItems.Selected>0 then begin + FItems.Selected:=FItems.Selected-1; + if FItems.Top>fItems.Selected then + FItems.Top:=fItems.Selected; + CompletionBox.Invalidate; + end; + VK_DOWN: + if FItems.Selected=fItems.Top+fItems.VisibleItems then + FItems.Top:=FItems.Top+1; + CompletionBox.Invalidate; + end; + VK_RETURN: + if (FItems.Selected>=0) and (FItems.Selected + - <ActiveEditorIndexAtStart Value="0"/> </General> <PublishOptions> <Version Value="2"/> @@ -36,11 +36,6 @@ <Filename Value="lazres.pp"/> <IsPartOfProject Value="True"/> <UnitName Value="LazRes"/> - <CursorPos X="23" Y="101"/> - <TopLine Value="82"/> - <EditorIndex Value="0"/> - <UsageCount Value="21"/> - <Loaded Value="True"/> </Unit0> </Units> </ProjectOptions>