Skip to content

Commit 3d44073

Browse files
author
César Cardoso
committed
feature/add-subitens-a-open-external
1 parent e15e0fc commit 3d44073

12 files changed

Lines changed: 186 additions & 32 deletions

Src/Consts/C4D.Wizard.Consts.pas

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ TC4DConsts = class
136136
OPEN_EXTERNAL_INI_Order = 'Order';
137137
OPEN_EXTERNAL_INI_Shortcut = 'Shortcut';
138138
OPEN_EXTERNAL_INI_IconHas = 'IconHas';
139-
OPEN_EXTERNAL_INI_GuidMenuParent = 'GuidMenuParent';
139+
OPEN_EXTERNAL_INI_GuidMenuMaster = 'GuidMenuMaster';
140140
OPEN_EXTERNAL_INI_PREFIX_IMG = 'OPEN_EXTERNAL_IMG_';
141141

142142
//TOOLBAR BRANCH
@@ -167,6 +167,9 @@ TC4DConsts = class
167167

168168
EXTENSIONS_PERMITTED_BACKUP_EXPORT: TC4DExtensionsOfFiles = [TC4DExtensionsFiles.INI,
169169
TC4DExtensionsFiles.BMP];
170+
171+
STR_CMD_COMMANDS = 'CMD Commands';
172+
STR_MENU_MASTER_ONLY = 'Menu Master Only';
170173
end;
171174

172175
implementation

Src/IDE/MainMenu/C4D.Wizard.IDE.MainMenu.OpenExternal.pas

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ TC4DWizardIDEMainMenuOpenExternal = class(TInterfacedObject, IC4DWizardIDEMain
2424
function CreateSubMenu(const AMenuItemParent: TMenuItem; const AC4DWizardOpenExternal: TC4DWizardOpenExternal): TMenuItem; overload;
2525
procedure CustomizeClick(Sender: TObject);
2626
procedure ItemMenuClick(Sender: TObject);
27-
procedure CreateMenuItensList;
27+
procedure CreateMenuItemsList;
2828
protected
2929
function CreateMenusOpenExternal: IC4DWizardIDEMainMenuOpenExternal;
3030
public
@@ -74,6 +74,7 @@ function TC4DWizardIDEMainMenuOpenExternal.CreateMenusOpenExternal: IC4DWizardID
7474
begin
7575
if(not AC4DWizardOpenExternal.Visible)then
7676
Exit;
77+
7778
LC4DWizardOpenExternal := TC4DWizardOpenExternal.Create;
7879
LC4DWizardOpenExternal.Guid := AC4DWizardOpenExternal.Guid;
7980
LC4DWizardOpenExternal.Description := AC4DWizardOpenExternal.Description;
@@ -83,21 +84,21 @@ function TC4DWizardIDEMainMenuOpenExternal.CreateMenusOpenExternal: IC4DWizardID
8384
LC4DWizardOpenExternal.Order := AC4DWizardOpenExternal.Order;
8485
LC4DWizardOpenExternal.Shortcut := AC4DWizardOpenExternal.Shortcut;
8586
LC4DWizardOpenExternal.IconHas := AC4DWizardOpenExternal.IconHas;
86-
LC4DWizardOpenExternal.GuidMenuParent := AC4DWizardOpenExternal.GuidMenuParent;
87+
LC4DWizardOpenExternal.GuidMenuMaster := AC4DWizardOpenExternal.GuidMenuMaster;
8788
LC4DWizardOpenExternal.Created := False;
8889
FList.Add(LC4DWizardOpenExternal);
8990
end);
90-
Self.CreateMenuItensList;
91+
Self.CreateMenuItemsList;
9192
end;
9293

93-
procedure TC4DWizardIDEMainMenuOpenExternal.CreateMenuItensList;
94+
procedure TC4DWizardIDEMainMenuOpenExternal.CreateMenuItemsList;
9495
var
9596
LItem: TC4DWizardOpenExternal;
9697
LListOrder: TList<Integer>;
9798
LOrder: Integer;
9899
LMenuItem: TMenuItem;
99100

100-
procedure AddItensMenu(const AC4DWizardOpenExternal: TC4DWizardOpenExternal; const AMenuItem: TMenuItem);
101+
procedure AddSubMenuChildrens(const AC4DWizardOpenExternal: TC4DWizardOpenExternal; const AMenuItem: TMenuItem);
101102
var
102103
LOrder2: Integer;
103104
LItem2: TC4DWizardOpenExternal;
@@ -107,12 +108,14 @@ procedure TC4DWizardIDEMainMenuOpenExternal.CreateMenuItensList;
107108
for LItem2 in FList do
108109
begin
109110
if(LItem2.Order = LOrder2)then
110-
if(not LItem2.Created)and(LItem2.GuidMenuParent.Trim = AC4DWizardOpenExternal.Guid.Trim)then
111+
if(not LItem2.Created)and(LItem2.GuidMenuMaster.Trim = AC4DWizardOpenExternal.Guid.Trim)then
111112
begin
112113
LMenuItem2 := Self.CreateSubMenu(AMenuItem, LItem2);
113114
LItem2.Created := True;
115+
//RETIRA O CLICK DO MENU PAI, PARA NAO EXECUTAR O CLICK AO PASSAR O MOUSE E ATIVAR O SUBMENU
116+
AMenuItem.OnClick := nil;
114117

115-
AddItensMenu(LItem2, LMenuItem2);
118+
AddSubMenuChildrens(LItem2, LMenuItem2);
116119
end;
117120
end;
118121
end;
@@ -123,30 +126,46 @@ procedure TC4DWizardIDEMainMenuOpenExternal.CreateMenuItensList;
123126
LListOrder := TList<Integer>.Create;
124127
try
125128
for LItem in FList do
126-
if(LItem.Order > 0)and(not LListOrder.Contains(LItem.Order))then
129+
begin
130+
if(LItem.Order <= 0)then
131+
LItem.Order := 9999;
132+
133+
if(not LListOrder.Contains(LItem.Order))then //(LItem.Order > 0)and
127134
LListOrder.Add(LItem.Order);
135+
end;
128136

129137
LListOrder.Sort;
130138

139+
//LACO NA LListOrder PARA ADD PELA ORDEM, ADD OS QUE NAO TEM MENU MASTER, E A CADA MENU MASTER ADD SEU FILHOS
131140
for LOrder in LListOrder do
132141
for LItem in FList do
133142
begin
134143
if(LItem.Order = LOrder)then
135-
if(not LItem.Created)and(LITem.GuidMenuParent.Trim.IsEmpty)then
144+
if(not LItem.Created)and(LITem.GuidMenuMaster.Trim.IsEmpty)then
136145
begin
137146
LMenuItem := Self.CreateSubMenu(FMenuItemOpenExternal, LItem);
138147
LItem.Created := True;
139148

140-
AddItensMenu(LItem, LMenuItem);
149+
AddSubMenuChildrens(LItem, LMenuItem);
150+
end;
151+
end;
152+
153+
//ADD TODOS QUE TENHA A ORDEM MAIOR QUE ZERO, E QUE AINDA NAO FORAM ADICIONADOS
154+
for LOrder in LListOrder do
155+
for LItem in FList do
156+
begin
157+
if(LItem.Order = LOrder)then
158+
if(not LItem.Created)then
159+
begin
160+
LMenuItem := Self.CreateSubMenu(FMenuItemOpenExternal, LItem);
161+
LItem.Created := True;
162+
163+
AddSubMenuChildrens(LItem, LMenuItem);
141164
end;
142165
end;
143166
finally
144167
LListOrder.Free;
145168
end;
146-
147-
for LItem in FList do
148-
if(LItem.Order = 0)and(not LItem.Created)then
149-
Self.CreateSubMenu(FMenuItemOpenExternal, LItem);
150169
end;
151170

152171
procedure TC4DWizardIDEMainMenuOpenExternal.CreateItemMenuMain;

Src/IDE/PopupMenuDesigner/C4D.Wizard.IDE.PopupMenuDesigner.ComponentSel.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ TC4DWizardIDEPopupMenuDesignerComponentSel = class
1616
private
1717
class procedure CopyNamesClick(Sender: TObject);
1818
public
19-
class procedure AddSubItens(const AItem: IMenuItem);
19+
class procedure AddSubItems(const AItem: IMenuItem);
2020
class procedure CopyNames;
2121
end;
2222

@@ -25,7 +25,7 @@ implementation
2525
uses
2626
C4D.Wizard.Utils.OTA;
2727

28-
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.AddSubItens(const AItem: IMenuItem);
28+
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.AddSubItems(const AItem: IMenuItem);
2929
begin
3030
AItem.AddItem('Copy names of selected components', TextToShortCut(''), False, True, Self.CopyNamesClick, 0, 'C4DWizardIDEPopupMenuDesignerComponentSel1');
3131
end;

Src/IDE/PopupMenuDesigner/C4D.Wizard.IDE.PopupMenuDesigner.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ function TC4DWizardIDEPopupMenuDesigner.GetVerbCount: Integer;
4545
procedure TC4DWizardIDEPopupMenuDesigner.PrepareItem(Index: Integer; const AItem: IMenuItem);
4646
begin
4747
AItem.Visible := True;
48-
TC4DWizardIDEPopupMenuDesignerComponentSel.AddSubItens(AItem);
48+
TC4DWizardIDEPopupMenuDesignerComponentSel.AddSubItems(AItem);
4949
//AItem.AddLine();
5050
//AItem.AddItem('SubItem 05', TextToShortCut(''), False, True);
5151
end;

Src/IDE/ToolBars/C4D.Wizard.IDE.ToolBars.Utilities.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ procedure TC4DWizardIDEToolBarsUtilities.OpenExternalFillList;
273273
LC4DWizardOpenExternal.Order := AC4DWizardOpenExternal.Order;
274274
LC4DWizardOpenExternal.Shortcut := AC4DWizardOpenExternal.Shortcut;
275275
LC4DWizardOpenExternal.IconHas := AC4DWizardOpenExternal.IconHas;
276-
LC4DWizardOpenExternal.GuidMenuParent := AC4DWizardOpenExternal.GuidMenuParent;
276+
LC4DWizardOpenExternal.GuidMenuMaster := AC4DWizardOpenExternal.GuidMenuMaster;
277277
FList.Add(LC4DWizardOpenExternal);
278278
end);
279279
end;

Src/OpenExternal/C4D.Wizard.OpenExternal.AddEdit.View.dfm

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
1515
OldCreateOrder = False
1616
Position = poScreenCenter
1717
OnCreate = FormCreate
18+
OnDestroy = FormDestroy
1819
OnKeyDown = FormKeyDown
1920
OnShow = FormShow
2021
PixelsPerInch = 96
@@ -102,7 +103,10 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
102103
BevelOuter = bvNone
103104
ParentBackground = False
104105
TabOrder = 1
105-
ExplicitTop = -2
106+
ExplicitTop = -3
107+
DesignSize = (
108+
676
109+
412)
106110
object Label1: TLabel
107111
Left = 35
108112
Top = 54
@@ -165,6 +169,13 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
165169
Height = 13
166170
Caption = 'Icon (.bmp 16 x 16)'
167171
end
172+
object Label9: TLabel
173+
Left = 183
174+
Top = 13
175+
Width = 62
176+
Height = 13
177+
Caption = 'Menu master'
178+
end
168179
object edtDescription: TEdit
169180
Left = 35
170181
Top = 70
@@ -212,6 +223,7 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
212223
Top = 210
213224
Width = 126
214225
Height = 21
226+
MaxLength = 4
215227
NumbersOnly = True
216228
TabOrder = 5
217229
Text = '0'
@@ -221,8 +233,9 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
221233
Top = 210
222234
Width = 17
223235
Height = 21
236+
Cursor = crHandPoint
224237
Associate = edtOrder
225-
Max = 100000
238+
Max = 9999
226239
TabOrder = 6
227240
end
228241
object edtShortcut: THotKey
@@ -317,6 +330,20 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
317330
Caption = 'Visible in ToolBar Utilities'
318331
TabOrder = 12
319332
end
333+
object cBoxMenuMaster: TComboBox
334+
Left = 183
335+
Top = 28
336+
Width = 450
337+
Height = 21
338+
Margins.Left = 10
339+
Margins.Top = 15
340+
Margins.Right = 0
341+
Margins.Bottom = 0
342+
Style = csDropDownList
343+
Anchors = [akLeft, akTop, akRight]
344+
DropDownCount = 30
345+
TabOrder = 13
346+
end
320347
end
321348
object pnTagsBack: TPanel
322349
Left = 0
@@ -331,7 +358,6 @@ object C4DWizardOpenExternalAddEditView: TC4DWizardOpenExternalAddEditView
331358
Padding.Bottom = 3
332359
ParentBackground = False
333360
TabOrder = 2
334-
ExplicitTop = 416
335361
object Label8: TLabel
336362
Left = 3
337363
Top = 3

0 commit comments

Comments
 (0)