You've already forked lazarus-ccr
tvplanit: Several further improvements of NavBar component editor (avoid crashes, hopefully; enable/disable buttons).
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6371 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -11,6 +11,7 @@ object frmNavBarEd: TfrmNavBarEd
|
|||||||
FormStyle = fsStayOnTop
|
FormStyle = fsStayOnTop
|
||||||
OnClose = FormClose
|
OnClose = FormClose
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
|
OnDestroy = FormDestroy
|
||||||
OnShow = FormShow
|
OnShow = FormShow
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
LCLVersion = '1.9.0.0'
|
LCLVersion = '1.9.0.0'
|
||||||
|
@ -34,30 +34,17 @@ unit VpNabEd;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
{$IFDEF LCL}
|
lazlogger,
|
||||||
|
|
||||||
lazlogger,
|
|
||||||
|
|
||||||
LCLProc, LCLType, LCLIntf,
|
LCLProc, LCLType, LCLIntf,
|
||||||
PropEdits, LazarusPackageIntf, FieldsEditor, ComponentEditors,
|
PropEdits, LazarusPackageIntf, FieldsEditor, ComponentEditors,
|
||||||
{$ELSE}
|
|
||||||
Windows, Messages,
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
DesignIntf, DesignEditors,
|
|
||||||
{$ELSE}
|
|
||||||
DsgnIntf,
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||||
StdCtrls, ExtCtrls, Buttons,
|
StdCtrls, ExtCtrls, Buttons,
|
||||||
VpBase, VpNavBar;
|
VpBase, VpNavBar;
|
||||||
|
|
||||||
type
|
type
|
||||||
{$IFNDEF LCL}
|
|
||||||
{$IFDEF VERSION6}
|
{ TVpNavBarEditor }
|
||||||
TProtectedSelList = class(TDesignerSelections);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
TVpNavBarEditor = class(TComponentEditor)
|
TVpNavBarEditor = class(TComponentEditor)
|
||||||
procedure ExecuteVerb(Index : Integer); override;
|
procedure ExecuteVerb(Index : Integer); override;
|
||||||
@ -105,13 +92,14 @@ type
|
|||||||
|
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure FormDestroy(Sender: TObject);
|
||||||
// procedure FormResize(Sender: TObject);
|
// procedure FormResize(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
|
|
||||||
procedure lbFoldersClick(Sender: TObject);
|
procedure lbFoldersClick(Sender: TObject);
|
||||||
procedure lbItemsMeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
|
|
||||||
procedure lbItemsClick(Sender: TObject);
|
procedure lbItemsClick(Sender: TObject);
|
||||||
procedure lbItemsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
procedure lbItemsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
||||||
|
procedure lbItemsMeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
|
||||||
|
|
||||||
procedure pnlImageViewClick(Sender: TObject);
|
procedure pnlImageViewClick(Sender: TObject);
|
||||||
procedure pnlImageViewPaint(Sender: TObject);
|
procedure pnlImageViewPaint(Sender: TObject);
|
||||||
@ -120,37 +108,30 @@ type
|
|||||||
|
|
||||||
private
|
private
|
||||||
FBar: TVpNavBar;
|
FBar: TVpNavBar;
|
||||||
FDesigner: TIDesigner;
|
FDesigner: TComponentEditorDesigner;
|
||||||
RefreshTimer: TTimer;
|
RefreshTimer: TTimer;
|
||||||
FSelImgIndex: Integer;
|
FSelImgIndex: Integer;
|
||||||
{$IFDEF LCL}
|
|
||||||
function FindBtnIndex(APersistent: TPersistent): Integer;
|
function FindBtnIndex(APersistent: TPersistent): Integer;
|
||||||
function FindFolderIndex(APersistent: TPersistent): Integer;
|
function FindFolderIndex(APersistent: TPersistent): Integer;
|
||||||
procedure OnGetSelection(const ASelection: TPersistentSelectionList);
|
procedure OnGetSelection(const ASelection: TPersistentSelectionList);
|
||||||
procedure OnPersistentAdded(APersistent: TPersistent; Select: boolean);
|
procedure OnPersistentAdded(APersistent: TPersistent; Select: boolean);
|
||||||
procedure OnPersistentDeleting(APersistent: TPersistent);
|
procedure OnPersistentDeleting(APersistent: TPersistent);
|
||||||
procedure OnSetSelection(const ASelection: TPersistentSelectionList);
|
procedure OnSetSelection(const ASelection: TPersistentSelectionList);
|
||||||
procedure SelectList(SelList: TPersistentSelectionList);
|
|
||||||
{$ELSE}
|
|
||||||
{$IFDEF VERSION5}
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
procedure SelectList(SelList: TDesignerSelections);
|
|
||||||
{$ELSE}
|
|
||||||
procedure SelectList(SelList: TDesignerSelectionList);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
|
||||||
procedure SelectList(SelList: TComponentList);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
procedure OnTimer(Sender: TObject);
|
procedure OnTimer(Sender: TObject);
|
||||||
|
procedure SelectionChanged(AOrderChanged: Boolean = false);
|
||||||
|
procedure SelectList(SelList: TPersistentSelectionList);
|
||||||
|
procedure UpdateBtnState;
|
||||||
|
|
||||||
public
|
public
|
||||||
{ Public declarations }
|
{ Public declarations }
|
||||||
|
constructor Create(AOwner: TComponent; ABar: TVpNavBar;
|
||||||
|
ADesigner: TComponentEditorDesigner); reintroduce;
|
||||||
|
destructor Destroy; override;
|
||||||
procedure PopulateFolderList;
|
procedure PopulateFolderList;
|
||||||
procedure PopulateItemList;
|
procedure PopulateItemList;
|
||||||
procedure SetData(ADesigner: TIDesigner; ABar: TVpNavBar);
|
procedure SetData(ADesigner: TComponentEditorDesigner; ABar: TVpNavBar);
|
||||||
property Bar: TVpNavBar read FBar;
|
property Bar: TVpNavBar read FBar;
|
||||||
property Designer: TIDesigner read FDesigner;
|
property Designer: TComponentEditorDesigner read FDesigner;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -158,11 +139,7 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{$IFDEF LCL}
|
{$R *.lfm}
|
||||||
{$R *.lfm}
|
|
||||||
{$ELSE}
|
|
||||||
{$R *.DFM}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
uses
|
uses
|
||||||
PropEditUtils,
|
PropEditUtils,
|
||||||
@ -172,22 +149,23 @@ const
|
|||||||
ITEMS_MARGIN = 2;
|
ITEMS_MARGIN = 2;
|
||||||
IMG_MARGIN = 4;
|
IMG_MARGIN = 4;
|
||||||
|
|
||||||
{$IFDEF LCL}
|
procedure EditNavBar(ADesigner: TComponentEditorDesigner; ABar: TVpNavBar);
|
||||||
procedure EditNavBar(Designer: TIDesigner; Bar: TVpNavBar);
|
var
|
||||||
{$ELSE}
|
editor: TObject;
|
||||||
{$IFDEF VERSION6}
|
|
||||||
procedure EditNavBar(Designer: TIDesigner; Bar: TVpNavBar);
|
|
||||||
{$ELSE}
|
|
||||||
procedure EditNavBar(Designer: TIFormDesigner; Bar: TVpNavBar);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
begin
|
begin
|
||||||
if frmNavEd = nil then
|
editor := FindEditorForm(ABar);
|
||||||
frmNavEd := TfrmNavBarEd.Create(Application);
|
if editor = nil then begin
|
||||||
frmNavEd.SetData(Designer, Bar);
|
editor := TfrmNavBarEd.Create(Application, ABar, ADesigner);
|
||||||
frmNavEd.Show;
|
//RegisterEditorForm(editor, ABar); -- wp
|
||||||
|
end;
|
||||||
|
if editor <> nil then
|
||||||
|
with TfrmNavBarEd(editor) do begin
|
||||||
|
//ComponentEditor := Self;
|
||||||
|
ShowOnTop;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{*** TVpNavBarEditor ***}
|
{*** TVpNavBarEditor ***}
|
||||||
|
|
||||||
procedure TVpNavBarEditor.ExecuteVerb(Index : Integer);
|
procedure TVpNavBarEditor.ExecuteVerb(Index : Integer);
|
||||||
@ -210,6 +188,53 @@ end;
|
|||||||
|
|
||||||
{*** TfrmNavBarEd ***}
|
{*** TfrmNavBarEd ***}
|
||||||
|
|
||||||
|
constructor TfrmNavBarEd.Create(AOwner: TComponent; ABar: TVpNavBar;
|
||||||
|
ADesigner: TComponentEditorDesigner);
|
||||||
|
var
|
||||||
|
w: Integer;
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
|
||||||
|
FBar := ABar;
|
||||||
|
FDesigner := ADesigner;
|
||||||
|
|
||||||
|
PopulateFolderList;
|
||||||
|
|
||||||
|
if FBar.Images <> nil then begin
|
||||||
|
w := (FBar.Images.Width + 2*IMG_MARGIN) * FBar.Images.Count;
|
||||||
|
pnlImageView.ClientWidth := w;
|
||||||
|
pnlImageView.Constraints.MinHeight := FBar.Images.Height + 2 * IMG_MARGIN + GetScrollbarHeight;
|
||||||
|
if w > sbImages.ClientWidth then begin
|
||||||
|
sbImages.HorzScrollbar.Range := w - sbImages.ClientWidth;
|
||||||
|
sbImages.HorzScrollbar.Visible := true;
|
||||||
|
end else
|
||||||
|
sbImages.HorzScrollbar.Visible := false;
|
||||||
|
end;
|
||||||
|
FSelImgIndex := -1;
|
||||||
|
|
||||||
|
if Assigned(GlobalDesignHook) then
|
||||||
|
begin
|
||||||
|
// GlobalDesignHook.AddHandlerComponentRenamed(OnComponentRenamed);
|
||||||
|
GlobalDesignHook.AddHandlerPersistentDeleting(OnPersistentDeleting);
|
||||||
|
GlobalDesignHook.AddHandlerGetSelection(OnGetSelection);
|
||||||
|
GlobalDesignHook.AddHandlerSetSelection(OnSetSelection);
|
||||||
|
GlobalDesignHook.AddHandlerPersistentAdded(OnPersistentAdded);
|
||||||
|
end;
|
||||||
|
SelectionChanged;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TfrmNavBarEd.Destroy;
|
||||||
|
begin
|
||||||
|
//UnregisterEditorForm(Self); -- wp
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmNavBarEd.FormClose(Sender: TObject;
|
||||||
|
var Action: TCloseAction);
|
||||||
|
begin
|
||||||
|
Action := caFree;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.FormCreate(Sender: TObject);
|
procedure TfrmNavBarEd.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Top := (Screen.Height - Height) div 3;
|
Top := (Screen.Height - Height) div 3;
|
||||||
@ -220,18 +245,14 @@ begin
|
|||||||
RefreshTimer.Enabled := true;
|
RefreshTimer.Enabled := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{=====}
|
procedure TfrmNavBarEd.FormDestroy(Sender: TObject);
|
||||||
|
|
||||||
procedure TfrmNavBarEd.FormClose(Sender: TObject;
|
|
||||||
var Action: TCloseAction);
|
|
||||||
begin
|
begin
|
||||||
(*
|
if GlobalDesignHook = nil then
|
||||||
Unused(Action);
|
exit;
|
||||||
RefreshTimer.Free;
|
if Assigned(FBar) and ((lbFolders.SelCount > 0) or (lbItems.SelCount > 0)) then
|
||||||
Release;
|
GlobalDesignHook.SelectOnlyThis(FBar);
|
||||||
*)
|
GlobalDesignHook.RemoveAllHandlersForObject(Self);
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
{ Changed}
|
{ Changed}
|
||||||
{ Could not find a way to get notification from the IDE that a change had }
|
{ Could not find a way to get notification from the IDE that a change had }
|
||||||
@ -241,7 +262,7 @@ procedure TfrmNavBarEd.OnTimer(Sender: TObject);
|
|||||||
var
|
var
|
||||||
S : string;
|
S : string;
|
||||||
begin
|
begin
|
||||||
if Bar.ActiveFolder < 0 then
|
if (Bar = nil) or (Bar.ActiveFolder = -1) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
{ update folder }
|
{ update folder }
|
||||||
@ -257,33 +278,15 @@ begin
|
|||||||
lbItems.ItemIndex := lbItems.Items.IndexOf(S);
|
lbItems.ItemIndex := lbItems.Items.IndexOf(S);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
(*
|
|
||||||
procedure TfrmNavBarEd.FormResize(Sender: TObject);
|
|
||||||
begin
|
|
||||||
pnlFolders.Width := (pnlItems.Width + pnlFolders.Width) div 2;
|
|
||||||
if Bar.Images <> nil then begin
|
|
||||||
pnlImages.Height := 25 + (5 * (Bar.Images.Height div 3));
|
|
||||||
lbImages.Columns := lbImages.ClientWidth div Bar.Images.Width;
|
|
||||||
{Allow for scrollbar if excessive number of images}
|
|
||||||
if (lbImages.Width >= Bar.Images.Width) then
|
|
||||||
pnlImages.Height := pnlImages.Height + 20;
|
|
||||||
end;
|
|
||||||
end; *)
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.FormShow(Sender: TObject);
|
procedure TfrmNavBarEd.FormShow(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if Bar.Images <> nil then begin
|
if (Bar <> nil) and (Bar.Images <> nil) then begin
|
||||||
// sbImages.Constraints.MinHeight := Bar.Images.Height + GetScrollbarHeight + 2*IMG_MARGIN;
|
|
||||||
pnlImages.Height := Bar.Images.Height + GetScrollbarHeight + 2*IMG_MARGIN +
|
pnlImages.Height := Bar.Images.Height + GetScrollbarHeight + 2*IMG_MARGIN +
|
||||||
Panel8.Height + pnlImages.BorderSpacing.Top + pnlImages.BorderSpacing.Bottom;
|
Panel8.Height + pnlImages.BorderSpacing.Top + pnlImages.BorderSpacing.Bottom;
|
||||||
//lbImages.Columns := lbImages.ClientWidth div Bar.Images.Width;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{=====}
|
|
||||||
|
|
||||||
{$IFDEF LCL}
|
|
||||||
function TfrmNavBarEd.FindFolderIndex(APersistent: TPersistent): Integer;
|
function TfrmNavBarEd.FindFolderIndex(APersistent: TPersistent): Integer;
|
||||||
begin
|
begin
|
||||||
for Result := 0 to lbFolders.Items.Count-1 do
|
for Result := 0 to lbFolders.Items.Count-1 do
|
||||||
@ -299,9 +302,7 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
Result := -1;
|
Result := -1;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{$IFDEF LCL}
|
|
||||||
procedure TfrmNavBarEd.OnGetSelection(const ASelection: TPersistentSelectionList);
|
procedure TfrmNavBarEd.OnGetSelection(const ASelection: TPersistentSelectionList);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -322,18 +323,20 @@ begin
|
|||||||
ASelection.Add(TPersistent(lbItems.Items.Objects[i]));
|
ASelection.Add(TPersistent(lbItems.Items.Objects[i]));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{$IFDEF LCL}
|
|
||||||
procedure TfrmNavBarEd.OnPersistentAdded(APersistent: TPersistent; Select: boolean);
|
procedure TfrmNavBarEd.OnPersistentAdded(APersistent: TPersistent; Select: boolean);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
if APersistent = nil then
|
||||||
|
DebugLn('OnPersistentAdded: Persistent = nil');
|
||||||
|
|
||||||
if not Assigned(APersistent) then
|
if not Assigned(APersistent) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
if (APersistent is TVpNavFolder) then
|
if (APersistent is TVpNavFolder) then
|
||||||
begin
|
begin
|
||||||
|
DebugLn('OnPersistentAdded: Persistent is folder');
|
||||||
PopulateFolderList;
|
PopulateFolderList;
|
||||||
if Select then begin
|
if Select then begin
|
||||||
i := FindFolderIndex(APersistent);
|
i := FindFolderIndex(APersistent);
|
||||||
@ -342,6 +345,7 @@ begin
|
|||||||
end else
|
end else
|
||||||
if (APersistent is TVpNavBtnItem) then
|
if (APersistent is TVpNavBtnItem) then
|
||||||
begin
|
begin
|
||||||
|
DebugLn('OnPersistentAdded: Persistent is item');
|
||||||
PopulateItemList;
|
PopulateItemList;
|
||||||
if Select then begin
|
if Select then begin
|
||||||
i := FindBtnIndex(APersistent);
|
i := FindBtnIndex(APersistent);
|
||||||
@ -349,9 +353,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{$IFDEF LCL}
|
|
||||||
procedure TfrmNavBarEd.OnPersistentDeleting(APersistent: TPersistent);
|
procedure TfrmNavBarEd.OnPersistentDeleting(APersistent: TPersistent);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -367,9 +369,7 @@ begin
|
|||||||
if i <> -1 then lbItems.Items.Delete(i);
|
if i <> -1 then lbItems.Items.Delete(i);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{$IFDEF LCL}
|
|
||||||
procedure TfrmNavBarEd.OnSetSelection(const ASelection: TPersistentSelectionList);
|
procedure TfrmNavBarEd.OnSetSelection(const ASelection: TPersistentSelectionList);
|
||||||
var
|
var
|
||||||
i, j: Integer;
|
i, j: Integer;
|
||||||
@ -399,7 +399,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.PopulateFolderList;
|
procedure TfrmNavBarEd.PopulateFolderList;
|
||||||
var
|
var
|
||||||
@ -414,7 +413,6 @@ begin
|
|||||||
lbFolders.Items.AddObject(S, Bar.Folders[I]);
|
lbFolders.Items.AddObject(S, Bar.Folders[I]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.PopulateItemList;
|
procedure TfrmNavBarEd.PopulateItemList;
|
||||||
var
|
var
|
||||||
@ -431,9 +429,8 @@ begin
|
|||||||
lbItems.Items.AddObject(S,Items[i]);
|
lbItems.Items.AddObject(S,Items[i]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.SetData(ADesigner: TIDesigner; ABar: TVpNavBar);
|
procedure TfrmNavBarEd.SetData(ADesigner: TComponentEditorDesigner; ABar: TVpNavBar);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
w: Integer;
|
w: Integer;
|
||||||
@ -458,11 +455,6 @@ begin
|
|||||||
sbImages.HorzScrollbar.Visible := true;
|
sbImages.HorzScrollbar.Visible := true;
|
||||||
end else
|
end else
|
||||||
sbImages.HorzScrollbar.Visible := false;
|
sbImages.HorzScrollbar.Visible := false;
|
||||||
(*
|
|
||||||
lbImages.ItemHeight := Bar.Images.Height + 4;
|
|
||||||
for i := 0 to pred(FBar.Images.Count) do
|
|
||||||
lbImages.Items.Add(IntToStr(i));
|
|
||||||
*)
|
|
||||||
end;
|
end;
|
||||||
FSelImgIndex := -1;
|
FSelImgIndex := -1;
|
||||||
|
|
||||||
@ -480,7 +472,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbFoldersClick(Sender: TObject);
|
procedure TfrmNavBarEd.lbFoldersClick(Sender: TObject);
|
||||||
{$IFDEF LCL}
|
|
||||||
var
|
var
|
||||||
SelList: TPersistentSelectionList;
|
SelList: TPersistentSelectionList;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -492,73 +483,18 @@ begin
|
|||||||
|
|
||||||
SelList := TPersistentSelectionList.Create;
|
SelList := TPersistentSelectionList.Create;
|
||||||
SelList.ForceUpdate := true;
|
SelList.ForceUpdate := true;
|
||||||
|
|
||||||
for i := 0 to pred(lbFolders.Items.Count) do
|
for i := 0 to pred(lbFolders.Items.Count) do
|
||||||
if lbFolders.Selected[i] then begin
|
if lbFolders.Selected[i] then begin
|
||||||
SelList.Add(TPersistent(lbFolders.Items.Objects[i]));
|
SelList.Add(TPersistent(lbFolders.Items.Objects[i]));
|
||||||
Bar.FolderCollection.DoOnItemSelected(i);
|
Bar.FolderCollection.DoOnItemSelected(i);
|
||||||
end;
|
end;
|
||||||
if not Bar.FolderCollection.ReadOnly then
|
|
||||||
begin
|
|
||||||
btnFolderUp.Enabled := SelList.Count = 1;
|
|
||||||
btnFolderDown.Enabled := btnFolderUp.Enabled;
|
|
||||||
btnFolderDelete.Enabled := btnFolderUp.Enabled;
|
|
||||||
end;
|
|
||||||
if SelList.Count > 0 then
|
|
||||||
SelectList(SelList);
|
|
||||||
end;
|
|
||||||
{$ELSE}
|
|
||||||
var
|
|
||||||
{$IFDEF VERSION5}
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
SelList : TDesignerSelections;
|
|
||||||
{$ELSE}
|
|
||||||
SelList : TDesignerSelectionList;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
|
||||||
SelList : TComponentList;
|
|
||||||
{$ENDIF}
|
|
||||||
{%H-}i : Integer;
|
|
||||||
begin
|
|
||||||
PopulateItemList;
|
|
||||||
Bar.ActiveFolder := lbFolders.ItemIndex;
|
|
||||||
|
|
||||||
{$IFDEF VERSION5}
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
SelList := TDesignerSelections.Create;
|
|
||||||
{$ELSE}
|
|
||||||
SelList := TDesignerSelectionList.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
|
||||||
SelList := TComponentList.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
for i := 0 to pred(lbFolders.Items.Count) do
|
|
||||||
if lbFolders.Selected[i] then begin
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
TProtectedSelList(SelList).Add(TComponent(lbFolders.Items.Objects[i]));
|
|
||||||
{$ELSE}
|
|
||||||
SelList.Add(TComponent(lbFolders.Items.Objects[i]));
|
|
||||||
{$ENDIF}
|
|
||||||
Bar.FolderCollection.DoOnItemSelected(I);
|
|
||||||
end;
|
|
||||||
if not Bar.FolderCollection.ReadOnly
|
|
||||||
then begin
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
btnFolderUp.Enabled := TProtectedSelList(SelList).Count = 1;
|
|
||||||
{$ELSE}
|
|
||||||
btnFolderUp.Enabled := SelList.Count = 1;
|
|
||||||
{$ENDIF}
|
|
||||||
btnFolderDown.Enabled := btnFolderUp.Enabled;
|
|
||||||
btnFolderDelete.Enabled := btnFolderUp.Enabled;
|
|
||||||
end;
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
if TProtectedSelList(SelList).Count > 0 then
|
|
||||||
{$ELSE}
|
|
||||||
if SelList.Count > 0 then
|
if SelList.Count > 0 then
|
||||||
{$ENDIF}
|
|
||||||
SelectList(SelList);
|
SelectList(SelList);
|
||||||
|
|
||||||
|
UpdateBtnState;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbItemsMeasureItem(Control: TWinControl;
|
procedure TfrmNavBarEd.lbItemsMeasureItem(Control: TWinControl;
|
||||||
Index: Integer; var Height: Integer);
|
Index: Integer; var Height: Integer);
|
||||||
@ -567,7 +503,6 @@ begin
|
|||||||
if (Bar.Images <> nil) then
|
if (Bar.Images <> nil) then
|
||||||
Height := Bar.Images.Height + 2 * ITEMS_MARGIN;
|
Height := Bar.Images.Height + 2 * ITEMS_MARGIN;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbItemsDrawItem(Control: TWinControl;
|
procedure TfrmNavBarEd.lbItemsDrawItem(Control: TWinControl;
|
||||||
Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
||||||
@ -610,16 +545,14 @@ begin
|
|||||||
y := (Rect.Top + Rect.Bottom - lb.Canvas.TextHeight('Tg')) div 2;
|
y := (Rect.Top + Rect.Bottom - lb.Canvas.TextHeight('Tg')) div 2;
|
||||||
lb.Canvas.TextRect(Rect, x, y, lb.Items[Index]);
|
lb.Canvas.TextRect(Rect, x, y, lb.Items[Index]);
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbItemsClick(Sender: TObject);
|
procedure TfrmNavBarEd.lbItemsClick(Sender: TObject);
|
||||||
{$IFDEF LCL}
|
|
||||||
var
|
var
|
||||||
SelList: TPersistentSelectionList;
|
SelList: TPersistentSelectionList;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
btn: TVpNavBtnItem;
|
btn: TVpNavBtnItem;
|
||||||
begin
|
begin
|
||||||
if (lbItems.ItemIndex <> -1) and (Bar.ActiveFolder <> 1) then
|
if (FBar <> nil) and (FBar.ActiveFolder <> -1) and (lbItems.ItemIndex <> -1) then
|
||||||
begin
|
begin
|
||||||
btn := TVpNavBtnItem(lbItems.Items.Objects[lbItems.ItemIndex]);
|
btn := TVpNavBtnItem(lbItems.Items.Objects[lbItems.ItemIndex]);
|
||||||
FSelImgIndex := btn.IconIndex;
|
FSelImgIndex := btn.IconIndex;
|
||||||
@ -632,86 +565,12 @@ begin
|
|||||||
SelList.Add(TPersistent(lbItems.Items.Objects[i]));
|
SelList.Add(TPersistent(lbItems.Items.Objects[i]));
|
||||||
Bar.Folders[Bar.ActiveFolder].ItemCollection.DoOnItemSelected(I);
|
Bar.Folders[Bar.ActiveFolder].ItemCollection.DoOnItemSelected(I);
|
||||||
end;
|
end;
|
||||||
if not Bar.Folders[Bar.ActiveFolder].ItemCollection.ReadOnly
|
|
||||||
then begin
|
|
||||||
btnItemUp.Enabled := SelList.Count = 1;
|
|
||||||
btnItemDown.Enabled := btnItemUp.Enabled;
|
|
||||||
btnItemDelete.Enabled := btnItemUp.Enabled;
|
|
||||||
end;
|
|
||||||
if SelList.Count > 0 then
|
if SelList.Count > 0 then
|
||||||
SelectList(SelList);
|
SelectList(SelList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
UpdateBtnState;
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
|
||||||
var
|
|
||||||
{$IFDEF VERSION5}
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
SelList : TDesignerSelections;
|
|
||||||
{$ELSE}
|
|
||||||
SelList : TDesignerSelectionList;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
|
||||||
SelList : TComponentList;
|
|
||||||
{$ENDIF}
|
|
||||||
i : Integer;
|
|
||||||
begin
|
|
||||||
if (lbItems.ItemIndex <> -1) then begin
|
|
||||||
lbImages.ItemIndex :=
|
|
||||||
TVpNavBtnItem(lbItems.Items.Objects[lbItems.ItemIndex]).IconIndex;
|
|
||||||
|
|
||||||
{$IFDEF VERSION5}
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
SelList := TDesignerSelections.Create;
|
|
||||||
{$ELSE}
|
|
||||||
SelList := TDesignerSelectionList.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
|
||||||
SelList := TComponentList.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
for i := 0 to pred(lbItems.Items.Count) do
|
|
||||||
if lbItems.Selected[i] then begin
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
TProtectedSelList(SelList).Add(TComponent(lbItems.Items.Objects[i]));
|
|
||||||
{$ELSE}
|
|
||||||
SelList.Add(TComponent(lbItems.Items.Objects[i]));
|
|
||||||
{$ENDIF}
|
|
||||||
Bar.Folders[Bar.ActiveFolder].ItemCollection.DoOnItemSelected(I);
|
|
||||||
end;
|
|
||||||
if not Bar.Folders[Bar.ActiveFolder].ItemCollection.ReadOnly
|
|
||||||
then begin
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
btnItemUp.Enabled := TProtectedSelList(SelList).Count = 1;
|
|
||||||
{$ELSE}
|
|
||||||
btnItemUp.Enabled := SelList.Count = 1;
|
|
||||||
{$ENDIF}
|
|
||||||
btnItemDown.Enabled := btnItemUp.Enabled;
|
|
||||||
btnItemDelete.Enabled := btnItemUp.Enabled;
|
|
||||||
end;
|
|
||||||
{$IFDEF VERSION6}
|
|
||||||
if TProtectedSelList(SelList).Count > 0 then
|
|
||||||
SelectList(SelList);
|
|
||||||
{$ELSE}
|
|
||||||
if SelList.Count > 0 then
|
|
||||||
SelectList(SelList);
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
{$ENDIF}
|
|
||||||
{=====}
|
|
||||||
(*
|
|
||||||
procedure TfrmNavBarEd.lbImagesClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if (lbImages.ItemIndex <> -1) and (lbItems.ItemIndex <> -1) then begin
|
|
||||||
TVpNavBtnItem(lbItems.Items.Objects[lbItems.ItemIndex]).IconIndex :=
|
|
||||||
lbImages.ItemIndex;
|
|
||||||
lbItems.Invalidate;
|
|
||||||
if assigned(Designer) then
|
|
||||||
Designer.Modified;
|
|
||||||
end;
|
|
||||||
end; *)
|
|
||||||
|
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnItemUpClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnItemUpClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
@ -724,18 +583,16 @@ begin
|
|||||||
if Item.Index > 0 then
|
if Item.Index > 0 then
|
||||||
Item.Index := Item.Index - 1;
|
Item.Index := Item.Index - 1;
|
||||||
|
|
||||||
|
PopulateItemList;
|
||||||
|
UpdateBtnState;
|
||||||
|
|
||||||
if Assigned(Designer) then begin
|
if Assigned(Designer) then begin
|
||||||
GlobalDesignHook.SelectOnlyThis(nil);
|
GlobalDesignHook.SelectOnlyThis(nil);
|
||||||
GlobalDesignHook.SelectOnlyThis(Item);
|
GlobalDesignHook.SelectOnlyThis(Item);
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
PopulateItemList;
|
|
||||||
|
|
||||||
lbItems.ItemIndex := SaveItemIndex - 1;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnItemDownClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnItemDownClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
@ -747,18 +604,16 @@ begin
|
|||||||
if Item.Index < Pred(lbItems.Items.Count) then
|
if Item.Index < Pred(lbItems.Items.Count) then
|
||||||
Item.Index := Item.Index + 1;
|
Item.Index := Item.Index + 1;
|
||||||
|
|
||||||
|
PopulateItemList;
|
||||||
|
UpdateBtnState;
|
||||||
|
|
||||||
if Assigned(Designer) then begin
|
if Assigned(Designer) then begin
|
||||||
GlobalDesignHook.SelectOnlyThis(nil);
|
GlobalDesignHook.SelectOnlyThis(nil);
|
||||||
GlobalDesignHook.SelectOnlyThis(Item);
|
GlobalDesignHook.SelectOnlyThis(Item);
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
PopulateItemList;
|
|
||||||
|
|
||||||
lbItems.ItemIndex := Item.Index;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnFolderUpClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnFolderUpClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
@ -772,18 +627,17 @@ begin
|
|||||||
if Folder.Index > 0 then
|
if Folder.Index > 0 then
|
||||||
Folder.Index := Folder.Index - 1;
|
Folder.Index := Folder.Index - 1;
|
||||||
|
|
||||||
|
PopulateFolderList;
|
||||||
|
lbFolders.ItemIndex := SaveItemIndex - 1;
|
||||||
|
UpdateBtnState;
|
||||||
|
|
||||||
if Assigned(Designer) then begin
|
if Assigned(Designer) then begin
|
||||||
GlobalDesignHook.SelectOnlyThis(nil);
|
GlobalDesignHook.SelectOnlyThis(nil);
|
||||||
GlobalDesignHook.SelectOnlyThis(folder);
|
GlobalDesignHook.SelectOnlyThis(folder);
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
PopulateFolderList;
|
|
||||||
|
|
||||||
lbFolders.ItemIndex := SaveItemIndex - 1;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnFolderDownClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnFolderDownClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
@ -795,18 +649,17 @@ begin
|
|||||||
if Folder.Index < pred(lbFolders.Items.Count) then
|
if Folder.Index < pred(lbFolders.Items.Count) then
|
||||||
Folder.Index := Folder.Index + 1;
|
Folder.Index := Folder.Index + 1;
|
||||||
|
|
||||||
|
PopulateFolderList;
|
||||||
|
lbFolders.ItemIndex := Folder.Index;
|
||||||
|
UpdateBtnState;
|
||||||
|
|
||||||
if Assigned(Designer) then begin
|
if Assigned(Designer) then begin
|
||||||
GlobalDesignHook.SelectOnlyThis(nil);
|
GlobalDesignHook.SelectOnlyThis(nil);
|
||||||
GlobalDesignHook.SelectOnlyThis(folder);
|
GlobalDesignHook.SelectOnlyThis(folder);
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
PopulateFolderList;
|
|
||||||
|
|
||||||
lbFolders.ItemIndex := Folder.Index;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnItemDeleteClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnItemDeleteClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -815,11 +668,11 @@ begin
|
|||||||
lbItems.ItemIndex := -1;
|
lbItems.ItemIndex := -1;
|
||||||
FSelImgIndex := -1;
|
FSelImgIndex := -1;
|
||||||
PopulateItemList;
|
PopulateItemList;
|
||||||
if assigned(Designer) then
|
if Assigned(Designer) then
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
|
UpdateBtnState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnFolderDeleteClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnFolderDeleteClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -828,22 +681,23 @@ begin
|
|||||||
lbFolders.ItemIndex := -1;
|
lbFolders.ItemIndex := -1;
|
||||||
PopulateFolderList;
|
PopulateFolderList;
|
||||||
PopulateItemList;
|
PopulateItemList;
|
||||||
if assigned(Designer) then
|
if Assigned(Designer) then
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
|
UpdateBtnState;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnFolderAddClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnFolderAddClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Bar.FolderCollection.Add;
|
Bar.FolderCollection.Add;
|
||||||
PopulateFolderList;
|
PopulateFolderList;
|
||||||
lbFolders.ItemIndex := lbFolders.Items.Count - 1;
|
lbFolders.ItemIndex := lbFolders.Items.Count - 1;
|
||||||
if assigned(Designer) then
|
SelectionChanged(true);
|
||||||
|
if Assigned(Designer) then
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
lbFoldersClick(Self);
|
lbFoldersClick(Self);
|
||||||
|
UpdateBtnState;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.btnItemAddClick(Sender: TObject);
|
procedure TfrmNavBarEd.btnItemAddClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -852,11 +706,12 @@ begin
|
|||||||
lbFolders.Items.Objects[lbFolders.ItemIndex]).ItemCollection.Add;
|
lbFolders.Items.Objects[lbFolders.ItemIndex]).ItemCollection.Add;
|
||||||
lbItems.ItemIndex := -1;
|
lbItems.ItemIndex := -1;
|
||||||
PopulateItemList;
|
PopulateItemList;
|
||||||
|
SelectionChanged(true);
|
||||||
if assigned(Designer) then
|
if assigned(Designer) then
|
||||||
Designer.Modified;
|
Designer.Modified;
|
||||||
end;
|
end;
|
||||||
|
UpdateBtnState;
|
||||||
end;
|
end;
|
||||||
{=====}
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.pnlImageViewPaint(Sender: TObject);
|
procedure TfrmNavBarEd.pnlImageViewPaint(Sender: TObject);
|
||||||
var
|
var
|
||||||
@ -866,32 +721,32 @@ var
|
|||||||
x, y: Integer;
|
x, y: Integer;
|
||||||
wimg, himg: Integer;
|
wimg, himg: Integer;
|
||||||
begin
|
begin
|
||||||
R := Rect(0, 0, sbImages.Width, sbImages.Height);
|
R := Rect(0, 0, sbImages.Width, sbImages.Height);
|
||||||
pnlImageView.Canvas.Brush.Color := clWindow;
|
pnlImageView.Canvas.Brush.Color := clWindow;
|
||||||
pnlImageView.Canvas.FillRect(R);
|
pnlImageView.Canvas.FillRect(R);
|
||||||
|
|
||||||
if (Bar.Images = nil) or (Bar.Images.Count = 0) then
|
if (Bar.Images = nil) or (Bar.Images.Count = 0) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
wimg := Bar.Images.Width;
|
wimg := Bar.Images.Width;
|
||||||
himg := Bar.Images.Height;
|
himg := Bar.Images.Height;
|
||||||
|
|
||||||
x := 0;
|
x := 0;
|
||||||
y := R.Top + IMG_MARGIN;
|
y := R.Top + IMG_MARGIN;
|
||||||
if pnlImageView.Width <= sbImages.Width then // no scrollbar
|
if pnlImageView.Width <= sbImages.Width then // no scrollbar
|
||||||
inc(y, GetScrollbarHeight div 2);
|
inc(y, GetScrollbarHeight div 2);
|
||||||
|
|
||||||
i := 0;
|
i := 0;
|
||||||
while i < Bar.Images.Count do begin
|
while i < Bar.Images.Count do begin
|
||||||
if i = FSelImgIndex then begin
|
if i = FSelImgIndex then begin
|
||||||
R := Rect(x, R.Top, x+wimg+2*IMG_MARGIN, R.Bottom);
|
R := Rect(x, R.Top, x+wimg+2*IMG_MARGIN, R.Bottom);
|
||||||
pnlImageView.Canvas.Brush.Color := clHighlight;
|
pnlImageView.Canvas.Brush.Color := clHighlight;
|
||||||
pnlImageView.Canvas.FillRect(R);
|
pnlImageView.Canvas.FillRect(R);
|
||||||
end;
|
end;
|
||||||
Bar.Images.Draw(pnlImageView.Canvas, x + IMG_MARGIN, y, i, true);
|
FBar.Images.Draw(pnlImageView.Canvas, x + IMG_MARGIN, y, i, true);
|
||||||
inc(i);
|
inc(i);
|
||||||
inc(x, wimg + 2*IMG_MARGIN);
|
inc(x, wimg + 2*IMG_MARGIN);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.pnlImageViewClick(Sender: TObject);
|
procedure TfrmNavBarEd.pnlImageViewClick(Sender: TObject);
|
||||||
@ -928,7 +783,29 @@ begin
|
|||||||
sbImages.HorzScrollbar.Visible := sbImages.ClientWidth < pnlImageView.ClientWidth;
|
sbImages.HorzScrollbar.Visible := sbImages.ClientWidth < pnlImageView.ClientWidth;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF LCL}
|
procedure TfrmNavBarEd.SelectionChanged(AOrderChanged: Boolean = false);
|
||||||
|
var
|
||||||
|
SelList: TPersistentSelectionList;
|
||||||
|
begin
|
||||||
|
{
|
||||||
|
if (FUpdateSelectionCount>0) or (GlobalDesignHook=nil) then
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
GlobalDesignHook.RemoveHandlerSetSelection(OnSetSelection);
|
||||||
|
try
|
||||||
|
SelList := TPersistentSelectionList.Create;
|
||||||
|
SelList.ForceUpdate := AOrderChanged;
|
||||||
|
try
|
||||||
|
OnGetSelection(SelList);
|
||||||
|
FDesigner.PropertyEditorHook.SetSelection(SelList) ;
|
||||||
|
finally
|
||||||
|
SelList.Free;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
GlobalDesignHook.AddHandlerSetSelection(OnSetSelection);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.Selectlist(SelList: TPersistentSelectionList);
|
procedure TfrmNavBarEd.Selectlist(SelList: TPersistentSelectionList);
|
||||||
begin
|
begin
|
||||||
if GlobalDesignHook <> nil then
|
if GlobalDesignHook <> nil then
|
||||||
@ -938,36 +815,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
SelList.Free;
|
SelList.Free;
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
|
||||||
{$IFDEF VERSION5}
|
procedure TfrmNavBarEd.UpdateBtnState;
|
||||||
{$IFDEF VERSION6}
|
var
|
||||||
procedure TfrmNavBarEd.SelectList(SelList : TDesignerSelections);
|
canChangeFolders: Boolean;
|
||||||
{$ELSE}
|
canChangeItems: Boolean;
|
||||||
procedure TfrmNavBarEd.SelectList(SelList : TDesignerSelectionList);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
|
||||||
procedure TfrmNavBarEd.SelectList(SelList : TComponentList);
|
|
||||||
{$ENDIF}
|
|
||||||
begin
|
begin
|
||||||
{$IFNDEF Ver80}
|
canChangeFolders := (FBar <> nil);
|
||||||
{$IFDEF VERSION4}
|
canChangeItems := (FBar <> nil) and (FBar.ActiveFolder <> -1) and
|
||||||
if Designer <> nil then
|
not FBar.Folders[FBar.ActiveFolder].ItemCollection.ReadOnly;
|
||||||
{$IFDEF VERSION6}
|
|
||||||
(Designer as IDesigner).SetSelections(SelList);
|
btnFolderAdd.Enabled := canChangeFolders;
|
||||||
{$ELSE}
|
btnFolderDelete.Enabled := canChangeFolders and (lbFolders.ItemIndex > -1);
|
||||||
(Designer as IFormDesigner).SetSelections(SelList);
|
btnFolderUp.Enabled := canChangeFolders and (lbFolders.ItemIndex > 0);
|
||||||
{$ENDIF}
|
btnFolderDown.Enabled := canChangeFolders and (lbFolders.ItemIndex < lbFolders.Items.Count-1);
|
||||||
{$ELSE}
|
|
||||||
if Designer <> nil then
|
btnItemAdd.Enabled := canChangeItems;
|
||||||
(Designer as TFormDesigner).SetSelections(SelList);
|
btnItemDelete.Enabled := canChangeItems and (lbItems.ItemIndex > -1);
|
||||||
{$ENDIF}
|
btnItemUp.Enabled := canChangeItems and (lbItems.ItemIndex > 0);
|
||||||
SelList.Free;
|
btnItemDown.Enabled := canChangeItems and (lbItems.ItemIndex < lbItems.Items.Count-1);
|
||||||
{$ELSE}
|
|
||||||
CompLib.SetSelection(Designer, Designer.Form, SelList);
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
{=====}
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
{$IFDEF LCL}
|
{$IFDEF LCL}
|
||||||
LCLProc, LCLType, LCLIntf, LazFileUtils,
|
LCLProc, LCLType, LCLIntf, LazFileUtils,
|
||||||
PropEdits, LazarusPackageIntf, FieldsEditor, ComponentEditors,
|
PropEdits, LazarusPackageIntf, FieldsEditor, ComponentEditors,
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
Windows,
|
Windows,
|
||||||
{$IFDEF VERSION6}
|
{$IFDEF VERSION6}
|
||||||
|
Reference in New Issue
Block a user