|
@@ -38,6 +38,7 @@ type
|
|
{$interfaces corba}
|
|
{$interfaces corba}
|
|
IToolOwner = interface
|
|
IToolOwner = interface
|
|
['{A7908D38-1E13-4E8D-8FA7-8830A2FF9290}']
|
|
['{A7908D38-1E13-4E8D-8FA7-8830A2FF9290}']
|
|
|
|
+ function ExecuteToolItem(Item: TKASToolItem): Boolean;
|
|
function GetToolItemShortcutsHint(Item: TKASToolItem): String;
|
|
function GetToolItemShortcutsHint(Item: TKASToolItem): String;
|
|
end;
|
|
end;
|
|
{$interfaces default}
|
|
{$interfaces default}
|
|
@@ -61,6 +62,7 @@ type
|
|
property ToolOwner: IToolOwner read FToolOwner;
|
|
property ToolOwner: IToolOwner read FToolOwner;
|
|
public
|
|
public
|
|
procedure Assign(OtherItem: TKASToolItem); virtual;
|
|
procedure Assign(OtherItem: TKASToolItem); virtual;
|
|
|
|
+ function CheckExecute(ToolItemID: String): Boolean; virtual;
|
|
function Clone: TKASToolItem; virtual; abstract;
|
|
function Clone: TKASToolItem; virtual; abstract;
|
|
function ConfigNodeName: String; virtual; abstract;
|
|
function ConfigNodeName: String; virtual; abstract;
|
|
function GetEffectiveHint: String; virtual; abstract;
|
|
function GetEffectiveHint: String; virtual; abstract;
|
|
@@ -96,6 +98,7 @@ type
|
|
Text: String;
|
|
Text: String;
|
|
Hint: String;
|
|
Hint: String;
|
|
procedure Assign(OtherItem: TKASToolItem); override;
|
|
procedure Assign(OtherItem: TKASToolItem); override;
|
|
|
|
+ function CheckExecute(ToolItemID: String): Boolean; override;
|
|
function Clone: TKASToolItem; override;
|
|
function Clone: TKASToolItem; override;
|
|
function ConfigNodeName: String; override;
|
|
function ConfigNodeName: String; override;
|
|
function GetEffectiveHint: String; override;
|
|
function GetEffectiveHint: String; override;
|
|
@@ -116,6 +119,7 @@ type
|
|
constructor Create; reintroduce;
|
|
constructor Create; reintroduce;
|
|
destructor Destroy; override;
|
|
destructor Destroy; override;
|
|
procedure Assign(OtherItem: TKASToolItem); override;
|
|
procedure Assign(OtherItem: TKASToolItem); override;
|
|
|
|
+ function CheckExecute(ToolItemID: String): Boolean; override;
|
|
function Clone: TKASToolItem; override;
|
|
function Clone: TKASToolItem; override;
|
|
function ConfigNodeName: String; override;
|
|
function ConfigNodeName: String; override;
|
|
procedure Load(Config: TXmlConfig; Node: TXmlNode; Loader: TKASToolBarLoader); override;
|
|
procedure Load(Config: TXmlConfig; Node: TXmlNode; Loader: TKASToolBarLoader); override;
|
|
@@ -176,6 +180,11 @@ begin
|
|
FUserData := OtherItem.FUserData;
|
|
FUserData := OtherItem.FUserData;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TKASToolItem.CheckExecute(ToolItemID: String): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result := False;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TKASToolItem.Save(Config: TXmlConfig; Node: TXmlNode);
|
|
procedure TKASToolItem.Save(Config: TXmlConfig; Node: TXmlNode);
|
|
begin
|
|
begin
|
|
Node := Config.AddNode(Node, ConfigNodeName);
|
|
Node := Config.AddNode(Node, ConfigNodeName);
|
|
@@ -282,6 +291,21 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TKASMenuItem.CheckExecute(ToolItemID: String): Boolean;
|
|
|
|
+var
|
|
|
|
+ I: Integer;
|
|
|
|
+begin
|
|
|
|
+ Result := inherited CheckExecute(ToolItemID);
|
|
|
|
+ if not Result then
|
|
|
|
+ begin
|
|
|
|
+ for I := 0 to SubItems.Count - 1 do
|
|
|
|
+ begin
|
|
|
|
+ if SubItems[I].CheckExecute(ToolItemID) then
|
|
|
|
+ Exit(True);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
function TKASMenuItem.Clone: TKASToolItem;
|
|
function TKASMenuItem.Clone: TKASToolItem;
|
|
begin
|
|
begin
|
|
Result := TKASMenuItem.Create;
|
|
Result := TKASMenuItem.Create;
|
|
@@ -396,6 +420,13 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TKASNormalItem.CheckExecute(ToolItemID: String): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result := (ID = ToolItemID);
|
|
|
|
+ if Result and Assigned(FToolOwner) then
|
|
|
|
+ FToolOwner.ExecuteToolItem(Self);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TKASNormalItem.Clone: TKASToolItem;
|
|
function TKASNormalItem.Clone: TKASToolItem;
|
|
begin
|
|
begin
|
|
Result := TKASNormalItem.Create;
|
|
Result := TKASNormalItem.Create;
|