tvplanit: Activate inplace-editor of NavBar

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4997 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-07-18 20:09:42 +00:00
parent 79a381a046
commit 4f73e6effd
2 changed files with 30 additions and 4 deletions

View File

@ -14,10 +14,10 @@ object Form1: TForm1
Top = 0
Width = 128
ActiveFolder = 0
AllowInplaceEdit = True
AllowRearrange = True
BackgroundColor = clInactiveCaption
BackgroundMethod = bmTile
BorderStyle = bsNone
ButtonHeight = 20
DrawingStyle = dsEtchedButton
FolderCollection = <

View File

@ -206,6 +206,8 @@ type
FShowButtons: Boolean;
FSoundAlias: string;
FLoadingFolder: Integer;
FMouseDownPt: TPoint;
FAllowInplaceEdit: Boolean;
{event variables}
FOnArrange: TNotifyEvent;
@ -305,6 +307,7 @@ type
function AddContainer(Container: TVpFOlderContainer): Integer;
procedure RemoveContainer(Container: TVpFolderContainer);
procedure DblClick; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseLeave; override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
@ -320,6 +323,7 @@ type
{properties}
property ActiveFolder: Integer read FActiveFolder write SetActiveFolder;
property AllowInplaceEdit: Boolean read FAllowInplaceEdit write FAllowInplaceEdit default false;
property AllowRearrange: Boolean read FAllowRearrange write FAllowRearrange;
property BackgroundColor: TColor read FBackgroundColor write SetBackgroundColor;
property BackgroundImage: TBitmap read FBackgroundImage write SetBackgroundImage;
@ -373,8 +377,8 @@ type
procedure RenameFolder(AFolderIndex: Integer);
procedure InsertItem(const ACaption: string; AFolderIndex, AItemIndex, AIconIndex: Integer);
procedure AddItem(const ACaption: string; AFolderIndex, AIconIndex: Integer);
procedure RemoveItem(AFolderIndex, AItemIndex: Integer);
procedure InvalidateItem(FolderIndex, ItemIndex: Integer);
procedure RemoveItem(AFolderIndex, AItemIndex: Integer);
procedure RenameItem(AFolderIndex, AItemIndex: Integer);
property ActiveItem: Integer read FActiveItem;
property Containers[Index: Integer]: TVpFolderContainer read GetContainer;
@ -387,6 +391,7 @@ type
TVpNavBar = class(TVpCustomNavBar)
published
property ActiveFolder;
property AllowInplaceEdit;
property AllowRearrange;
property BackgroundColor;
property BackgroundImage;
@ -1454,8 +1459,7 @@ begin
nabEdit.FolderIndex := AFolderIndex;
nabEdit.ItemIndex := AItemIndex;
nabEdit.Font.Size := ItemFont.Size;
nabEdit.Font.Size := ItemFont.Size;
nabEdit.BorderStyle := bsSingle;
nabEdit.BorderStyle := bsNone;
nabEdit.Top := Item.LabelRect.Top-1;
nabEdit.Left := 10;
nabEdit.Height := HeightOf(Item.LabelRect) + 2;
@ -1788,9 +1792,31 @@ begin
end;
{=====}
procedure TVpCustomNavBar.DblClick;
var
folder: TVpNavFolder;
begin
inherited;
if FAllowInplaceEdit and (FActiveFolder <> -1) then
begin
folder := Folders[FActiveFolder];
if PtInRect(folder.Rect, FMouseDownPt) then
RenameFolder(FActiveFolder)
else
if (FSelectedItem <> -1) then
begin
if PtInRect(folder.Items[FSelectedItem].LabelRect, FMouseDownPt) then
RenameItem(FActiveFolder, FSelectedItem);
end;
end;
end;
procedure TVpCustomNavBar.MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
begin
FMouseDownPt := Point(X,Y);
{complete any editing}
nabCommitEdit(nil);