@@ -22,11 +22,14 @@ TC4DWizardIDEToolBarsUtilities = class
2222 FCont: Integer;
2323 FINTAServices: INTAServices;
2424 FToolBarUtilities: TToolBar;
25+ FToolButtonOpenInVsCode: TToolButton;
2526 FToolButtonUnitInReadOnly: TToolButton;
2627 FList: TObjectList<TC4DWizardOpenExternal>;
2728 procedure NewToolBarUtilities ;
29+ procedure OnC4DToolButtonOpenInVsCodeClick (Sender: TObject);
2830 procedure OnC4DToolButtonUnitInReadOnlyClick (Sender: TObject);
2931 procedure RemoveToolBarUtilities ;
32+ procedure AddButtonOpenInVsCode ;
3033 procedure AddButtonUnitInReadOnly ;
3134 function GetReferenceToolBar : string;
3235 function GetIniFile : TIniFile;
@@ -108,6 +111,7 @@ procedure TC4DWizardIDEToolBarsUtilities.CreateAllButtons;
108111begin
109112 Self.OpenExternalFillList;
110113 Self.OpenExternalCreateButtonList;
114+ Self.AddButtonOpenInVsCode;
111115 Self.AddButtonUnitInReadOnly;
112116end ;
113117
@@ -194,6 +198,38 @@ function TC4DWizardIDEToolBarsUtilities.GetReferenceToolBar: string;
194198 end ;
195199end ;
196200
201+ procedure TC4DWizardIDEToolBarsUtilities.AddButtonOpenInVsCode ;
202+ begin
203+ FToolButtonOpenInVsCode := TToolButton(FToolBarUtilities.FindComponent(TC4DConsts.TOOL_BAR_UTILITIES_TOOL_BUTTON_OpenInVsCode_NAME));
204+ if (FToolButtonOpenInVsCode <> nil )then
205+ FToolButtonOpenInVsCode.Free;
206+
207+ FToolButtonOpenInVsCode := TToolButton.Create(FToolBarUtilities);
208+ FToolButtonOpenInVsCode.Parent := FToolBarUtilities;
209+ FToolButtonOpenInVsCode.Caption := ' ' ;
210+ FToolButtonOpenInVsCode.Hint := FToolButtonOpenInVsCode.Caption;
211+ FToolButtonOpenInVsCode.ShowHint := True;
212+ FToolButtonOpenInVsCode.Name := TC4DConsts.TOOL_BAR_UTILITIES_TOOL_BUTTON_OpenInVsCode_NAME;
213+ FToolButtonOpenInVsCode.Style := tbsButton;
214+ FToolButtonOpenInVsCode.ImageIndex := TC4DWizardIDEImageListMain.GetInstance.ImgIndexLockOFF;
215+ FToolButtonOpenInVsCode.Visible := True;
216+ FToolButtonOpenInVsCode.OnClick := OnC4DToolButtonOpenInVsCodeClick;
217+ FToolButtonOpenInVsCode.AutoSize := True;
218+ FToolButtonOpenInVsCode.Left := 0 ;
219+ end ;
220+
221+ procedure TC4DWizardIDEToolBarsUtilities.OnC4DToolButtonOpenInVsCodeClick (Sender: TObject);
222+ var
223+ LIOTAEditBuffer: IOTAEditBuffer;
224+ begin
225+ LIOTAEditBuffer := TC4DWizardUtilsOTA.GetIOTAEditBufferCurrentModule;
226+ if (LIOTAEditBuffer = nil )then
227+ Exit;
228+
229+ LIOTAEditBuffer.IsReadOnly := not LIOTAEditBuffer.IsReadOnly;
230+ Self.ConfigButtonUnitInReadOnly(LIOTAEditBuffer.IsReadOnly);
231+ end ;
232+
197233procedure TC4DWizardIDEToolBarsUtilities.AddButtonUnitInReadOnly ;
198234begin
199235 FToolButtonUnitInReadOnly := TToolButton(FToolBarUtilities.FindComponent(TC4DConsts.TOOL_BAR_UTILITIES_TOOL_BUTTON_UnitInReadOnly_NAME));
@@ -209,10 +245,9 @@ procedure TC4DWizardIDEToolBarsUtilities.AddButtonUnitInReadOnly;
209245 FToolButtonUnitInReadOnly.Style := tbsButton;
210246 FToolButtonUnitInReadOnly.ImageIndex := TC4DWizardIDEImageListMain.GetInstance.ImgIndexLockOFF;
211247 FToolButtonUnitInReadOnly.Visible := True;
212- FToolButtonUnitInReadOnly.Left := 0 ;
213248 FToolButtonUnitInReadOnly.OnClick := OnC4DToolButtonUnitInReadOnlyClick;
214249 FToolButtonUnitInReadOnly.AutoSize := True;
215- // FToolButtonUnitInReadOnly.Enabled := False ;
250+ FToolButtonUnitInReadOnly.Left := FToolButtonOpenInVsCode.Width + FToolButtonOpenInVsCode.Left ;
216251end ;
217252
218253procedure TC4DWizardIDEToolBarsUtilities.OnC4DToolButtonUnitInReadOnlyClick (Sender: TObject);
0 commit comments