Ver Fonte

ADD: Execute hotkeys for items in submenus of the toolbar buttons.

cobines há 13 anos atrás
pai
commit
1a3a826b2c
1 ficheiros alterados com 29 adições e 1 exclusões
  1. 29 1
      components/KASToolBar/kastoolbar.pas

+ 29 - 1
components/KASToolBar/kastoolbar.pas

@@ -103,6 +103,7 @@ type
     FKASToolBarFlags: TToolBarFlags;
     FKASToolBarFlags: TToolBarFlags;
     FResizeButtonsNeeded: Boolean;
     FResizeButtonsNeeded: Boolean;
     procedure AssignToolButtonProperties(ToolButton: TKASToolButton);
     procedure AssignToolButtonProperties(ToolButton: TKASToolButton);
+    function CheckMenuItemClick(ToolItem: TKASToolItem; ToolItemID: String): Boolean;
     procedure ClearExecutors;
     procedure ClearExecutors;
     function CreateButton(Item: TKASToolItem): TKASToolButton;
     function CreateButton(Item: TKASToolItem): TKASToolButton;
     function DoExecuteToolItem(Item: TKASToolItem): Boolean;
     function DoExecuteToolItem(Item: TKASToolItem): Boolean;
@@ -756,6 +757,31 @@ begin
   end;
   end;
 end;
 end;
 
 
+function TKASToolBar.CheckMenuItemClick(ToolItem: TKASToolItem; ToolItemID: String): Boolean;
+var
+  I: Integer;
+  MenuItem: TKASMenuItem;
+  NormalItem: TKASNormalItem;
+begin
+  if ToolItem is TKASMenuItem then
+  begin
+    MenuItem := TKASMenuItem(ToolItem);
+    for I := 0 to MenuItem.SubItems.Count - 1 do
+    begin
+      if MenuItem.SubItems[I] is TKASNormalItem then
+      begin
+        NormalItem := TKASNormalItem(MenuItem.SubItems[I]);
+        if NormalItem.ID = ToolItemID then
+        begin
+          DoExecuteToolItem(NormalItem);
+          Exit(True);
+        end;
+      end;
+    end;
+  end;
+  Result := False;
+end;
+
 procedure TKASToolBar.Clear;
 procedure TKASToolBar.Clear;
 var
 var
   I: Integer;
   I: Integer;
@@ -797,8 +823,10 @@ begin
         Button.Click;
         Button.Click;
         Break;
         Break;
       end;
       end;
+
+      if CheckMenuItemClick(Button.ToolItem, ToolItemID) then
+        Break;
     end;
     end;
-    // TODO Handle TKASMenuItem
   end;
   end;
 end;
 end;