editortoolbar: In Configuration provides a ListView in place of a ListBox and allows inserting Items at the desired place. patch #26643 from Giuliano

git-svn-id: trunk@46124 -
This commit is contained in:
mattias 2014-09-03 22:18:59 +00:00
parent 86a9471dbc
commit 6a05eb38c7
15 changed files with 1210 additions and 238 deletions

View File

@ -14,17 +14,12 @@
<UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
<Linking>
<Debugging>
<UseHeaptrc Value="True"/>
</Debugging>
</Linking>
</CompilerOptions>
<Description Value="Provides a configurable Toolbar in the source editor window, which can be positioned at any side. The toolbar comes with a predefined Jump button, and then Jump Forward and Jump Back buttons.
"/>
<License Value="GPL
"/>
<Version Minor="6" Release="3"/>
<Version Minor="8"/>
<Files Count="4">
<Item1>
<Filename Value="jumpto_impl.pas"/>

View File

@ -34,12 +34,17 @@ uses
,IDEImagesIntf
,SrcEditorIntf
,editortoolbar_str
;
,IDECommands;
const
cSettingsFile = 'editortoolbar.xml';
cDivider = '---------------';
iAll = 15;
iDesign = 1;
iDebug = 2;
iHTML = 4;
iCustom = 8;
type
@ -51,11 +56,14 @@ type
FWindow: TSourceEditorWindowInterface;
TB: TToolbar;
PM: TPopupMenu;
PPUP: TPopupMenu;
CfgButton: TToolButton;
procedure CreateEditorToolbar(AW: TForm; var ATB: TToolbar);
function CreateJumpItem(AJumpType: TJumpType; O: TComponent): TMenuItem;
function CreateProfileItem(ProfIndx: Integer; O: TComponent): TMenuItem;
procedure DoConfigureToolbar(Sender: TObject);
protected
procedure MenuItemClick (Sender: TObject);
procedure AddButton(AMenuItem: TIDEMenuItem);
procedure PositionAtEnd(AToolbar: TToolbar; AButton: TToolButton);
procedure Reload;
@ -87,6 +95,8 @@ type
destructor Destroy; override;
end;
function GetShortcut(AMenuItem: TIDEMenuItem): string;
function GetProfileIndex (aMask: Integer): Integer;
procedure Register;
@ -94,6 +104,8 @@ var
sToolbarPos: string;
bToolBarShow: boolean;
EditorMenuCommand:TIDEMenuCommand;
ProfileMask: array [0..4] of Integer = (iAll,iDesign,iDebug,iHTML,iCustom);
ProfileNames: array [0..4] of String = (rsAll,rsDesign,rsDebug,rsHTML,rsCustom);
implementation
@ -225,6 +237,7 @@ begin
ATB.Images := IDEImages.Images_16;
ATB.ShowHint := True;
ATB.Hint := rsHint;
ATB.PopupMenu := PPUP;
end;
function TEditorToolbar.CreateJumpItem(AJumpType: TJumpType; O: TComponent): TMenuItem;
@ -235,12 +248,44 @@ begin
Result.Caption := cJumpNames[AJumpType];
end;
function TEditorToolbar.CreateProfileItem(ProfIndx: Integer; O: TComponent
): TMenuItem;
begin
Result := TMenuItem.Create(O);
Result.Tag := ProfIndx;
Result.Caption := ProfileNames[ProfIndx];
Result.GroupIndex := 1;
Result.RadioItem := True;
//Result.AutoCheck := True;
Result.OnClick := @MenuItemClick;
end;
procedure TEditorToolbar.DoConfigureToolbar(Sender: TObject);
begin
if TEdtTbConfigForm.Execute then
uEditorToolbarList.ReloadAll;
end;
procedure TEditorToolbar.MenuItemClick(Sender: TObject);
var
cfg: TConfigStorage;
Value: Integer;
begin
if (Sender <> nil ) and (Sender is TMenuItem) then begin
TMenuItem(Sender).Checked:= True;
Value:= TMenuItem(Sender).Tag;
CurrProfile := ProfileMask[Value];
cfg := GetIDEConfigStorage(cSettingsFile,True);
try
cfg.SetDeleteValue('Profile',CurrProfile,iAll);
cfg.WriteToDisk;
finally
cfg.Free;
end;
Reload;
end;
end;
constructor TEditorToolbar.Create(AOwner: TComponent);
var
T: TJumpType;
@ -252,6 +297,12 @@ begin
FJumpHandler := TJumpHandler.Create(nil);
FWindow := TSourceEditorWindowInterface(AOwner);
PPUP := TPopupMenu.Create(FWindow);
for c := 0 to High(ProfileNames) do begin
PPUP.Items.Add(CreateProfileItem(c,FWindow));
end;
CreateEditorToolBar(FWindow, TB);
PM := TPopupMenu.Create(FWindow);
@ -295,7 +346,9 @@ begin
ACaption := AMenuItem.Caption;
DeleteAmpersands(ACaption);
B.Caption := ACaption;
B.Hint := ACaption; // or should we use AMenuItem.Hint?
// Get Shortcut, if any, and append to Hint
ACaption:= ACaption + GetShortcut(AMenuItem);
B.Hint := ACaption;
// If we have a image, us it. Otherwise supply a default.
if AMenuItem.ImageIndex <> -1 then
B.ImageIndex := AMenuItem.ImageIndex
@ -335,7 +388,9 @@ var
c: integer;
cfg: TConfigStorage;
value: string;
profile: Integer;
mi: TIDEMenuItem;
ShowItem: Boolean;
procedure SetTbPos;
begin
@ -363,11 +418,17 @@ begin
cfg := GetIDEConfigStorage(cSettingsFile, True);
TB.BeginUpdate;
try
c:= cfg.GetValue('Profile',iAll);
CurrProfile := c;
c := GetProfileIndex(CurrProfile);
PPUP.Items[c].Checked:= True;
c := cfg.GetValue('Count', 0);
for i := 1 to c do
begin
value := cfg.GetValue('Button' + Format('%2.2d', [i]) + '/Value', '');
if value <> '' then
profile := cfg.GetValue('Button' + Format('%2.2d', [i]) + '/Profile', iall);
ShowItem := (CurrProfile = iAll) or ((profile and CurrProfile) <> 0);
if (value <> '') and ShowItem then
begin
if value = cDivider then
AddDivider
@ -450,21 +511,49 @@ begin
end;
end;
function GetShortcut(AMenuItem: TIDEMenuItem): string;
var
ACommand: TIDECommand;
AShortcut: string;
begin
Result := '';
AShortcut:= '';
if AMenuItem is TIDEMenuCommand then begin
ACommand := TIDEMenuCommand(AMenuItem).Command;
if Assigned(ACommand) then AShortcut:= ShortCutToText(ACommand.AsShortCut);
if AShortcut <> '' then Result:= ' (' + AShortcut +')';
end;
end;
function GetProfileIndex(aMask: Integer): Integer;
var
I: Integer;
begin
for I:= 0 to High(ProfileMask) do begin
if aMask = ProfileMask[I] then begin
Result := I;
Exit;
end;
end;
Result := 0;
end;
procedure Register;
{$IFDEF LCLQt}
var
MenuIcon: string;
{$ENDIF}
begin
MenuIcon:= 'menu_editor_options';
//MenuIcon:= 'menu_editor_toolbar'; TODO!
if uEditorToolbarList = nil then begin
TEditorToolbarList.Create;
EditorMenuCommand:= RegisterIDEMenuCommand(itmViewSecondaryWindows,'EditorToolBar',
rsEditorToolbar,nil,@ToggleToolbar);
EditorMenuCommand.Checked:= True;
EditorMenuCommand.Enabled:= True;
//EditorMenuCommand:= RegisterIDEMenuCommand(itmViewSecondaryWindows,'EditorToolBar',rsEditorToolbar,nil,@ConfigureToolbar);
{$IFNDEF LCLGTK2}
// GTK2 Doesn't show both Icon and checkbox. Qt Does - Windows?
// GTK2 and Windows do not show both Icon and checkbox. Only Qt Does
{$IFDEF LCLQt}
MenuIcon:= 'menu_editor_options';
//MenuIcon:= 'menu_editor_toolbar'; TODO!
EditorMenuCommand.ImageIndex := IDEImages.LoadImage(16, MenuIcon);
{$ENDIF}
end;
@ -476,6 +565,7 @@ initialization
uEditorToolbarList := nil;
sToolbarPos:= 'Top';
bToolBarShow:= True;
CurrProfile:= iAll;
finalization
uEditorToolbarList.Free;

View File

@ -21,6 +21,7 @@ resourcestring
rsRemoveSelected = 'Remove selected item from toolbar';
rsMoveSelectedUp = 'Move selected toolbar item up';
rsMoveSelectedDown = 'Move selected toolbar item down';
rsClearSelection = 'Clear selection';
rsHint = 'You may add here your favorite commands';
rsPosition = 'Position';
rsTop = 'Top';
@ -29,6 +30,18 @@ resourcestring
rsRight = 'Right';
rsEditorToolbar = 'Editor ToolBar';
rsMenuView = 'View';
rsAll = 'All';
rsDesign = 'Design';
rsDebug = 'Debug';
rsHTML = 'HTML';
rsCustom = 'Custom';
rsHelp1 = 'The "Add" button inserts a Menu Item before the '+
'selected Item of the Toolbar.';
rsHelp2 = 'If none is selected, the Item will be appended at the end '+
'of the Toolbar.';
rsHelp3 = 'You may rearrage Toolbar Items with "Move Up" and '+
'"Move Down" buttons.';
rsHelp4 = 'Hint: to append an Item at the end, use "Clear selection"';
// Root Node Captions
rsIDEMainMenu = 'IDE Main Menu';
rsSourceTab = 'Source Tab';

View File

@ -7,22 +7,26 @@ object EdtTbConfigForm: TEdtTbConfigForm
ClientHeight = 457
ClientWidth = 772
OnCreate = FormCreate
OnDestroy = FormDestroy
LCLVersion = '1.3'
object lblMenuTree: TLabel
Left = 16
AnchorSideLeft.Control = TV
AnchorSideLeft.Side = asrCenter
Left = 166
Height = 17
Top = 14
Width = 81
Width = 80
Caption = 'lblMenuTree'
ParentColor = False
end
object lblToolbar: TLabel
AnchorSideLeft.Control = lbToolbar
AnchorSideLeft.Control = lvToolbar
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = lblMenuTree
Left = 443
Left = 572
Height = 17
Top = 14
Width = 62
Width = 61
Caption = 'lblToolbar'
ParentColor = False
end
@ -32,7 +36,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
AnchorSideTop.Side = asrBottom
Left = 415
Height = 26
Top = 120
Top = 122
Width = 22
BorderSpacing.Top = 1
Enabled = False
@ -46,7 +50,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
AnchorSideTop.Control = TV
Left = 415
Height = 26
Top = 93
Top = 95
Width = 22
BorderSpacing.Left = 6
BorderSpacing.Top = 25
@ -61,7 +65,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
AnchorSideTop.Side = asrBottom
Left = 415
Height = 26
Top = 171
Top = 173
Width = 22
BorderSpacing.Top = 25
Enabled = False
@ -75,7 +79,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
AnchorSideTop.Side = asrBottom
Left = 415
Height = 26
Top = 198
Top = 200
Width = 22
BorderSpacing.Top = 1
Enabled = False
@ -94,7 +98,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
ClientWidth = 772
Color = clGreen
ParentColor = False
TabOrder = 4
TabOrder = 2
object Bevel1: TBevel
Left = 0
Height = 2
@ -145,117 +149,67 @@ object EdtTbConfigForm: TEdtTbConfigForm
ModalResult = 2
TabOrder = 1
end
object btnExpert: TButton
AnchorSideLeft.Control = pnlButtons
object btnHelp: TBitBtn
AnchorSideBottom.Control = pnlButtons
AnchorSideBottom.Side = asrBottom
Left = 6
Left = 16
Height = 25
Top = 11
Width = 75
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
Caption = 'Expert'
OnClick = btnExpertClick
Caption = 'Help'
OnClick = btnHelpClick
TabOrder = 2
Visible = False
end
object btnExpand: TButton
AnchorSideLeft.Control = btnExpert
AnchorSideLeft.Side = asrBottom
object cbProfile: TComboBox
AnchorSideLeft.Control = pnlButtons
AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Control = pnlButtons
AnchorSideBottom.Side = asrBottom
Left = 87
Height = 25
Top = 11
Width = 75
AnchorSideBottom.Side = asrCenter
Left = 336
Height = 27
Top = 7
Width = 100
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
Caption = 'Expand'
OnClick = btnExpandClick
ItemHeight = 0
ItemIndex = 0
Items.Strings = (
'All'
'Design'
'Debug'
'HTML'
'Custom'
''
)
OnChange = cbProfileChange
TabOrder = 3
Visible = False
Text = 'All'
end
object btnSections: TButton
AnchorSideLeft.Control = btnExpand
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = pnlButtons
AnchorSideBottom.Side = asrBottom
Left = 168
Height = 25
Top = 11
Width = 75
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
Caption = 'Sections'
OnClick = btnSectionsClick
TabOrder = 4
Visible = False
object lblProfile: TLabel
AnchorSideTop.Control = cbProfile
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = cbProfile
Left = 284
Height = 17
Top = 12
Width = 42
Anchors = [akTop, akRight]
BorderSpacing.Right = 10
Caption = 'Profile'
ParentColor = False
end
object btnCompress: TButton
AnchorSideLeft.Control = btnSections
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = pnlButtons
AnchorSideBottom.Side = asrBottom
Left = 249
Height = 25
Top = 11
Width = 75
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
Caption = 'Compress'
OnClick = btnCompressClick
TabOrder = 5
Visible = False
end
end
object btnAddDivider: TButton
AnchorSideLeft.Control = lblToolbar
AnchorSideBottom.Control = pnlButtons
Left = 443
Height = 25
Top = 384
Width = 116
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Bottom = 6
BorderSpacing.InnerBorder = 4
Caption = 'btnAddDivider'
Constraints.MaxHeight = 25
Constraints.MinHeight = 25
Constraints.MinWidth = 75
OnClick = btnAddDividerClick
TabOrder = 3
end
object lbToolbar: TListBox
AnchorSideLeft.Control = btnAdd
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = TV
AnchorSideBottom.Control = btnAddDivider
Left = 443
Height = 310
Top = 68
Width = 318
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
ItemHeight = 0
OnSelectionChange = lbToolbarSelectionChange
TabOrder = 2
end
object TV: TTreeView
AnchorSideLeft.Control = lblMenuTree
AnchorSideLeft.Control = FilterEdit
AnchorSideTop.Control = FilterEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Splitter1
AnchorSideBottom.Control = pnlButtons
Left = 16
Height = 341
Top = 68
Height = 339
Top = 70
Width = 381
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6
@ -268,11 +222,9 @@ object EdtTbConfigForm: TEdtTbConfigForm
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
object FilterEdit: TTreeFilterEdit
AnchorSideLeft.Control = lblMenuTree
AnchorSideTop.Control = lblMenuTree
AnchorSideTop.Side = asrBottom
Left = 16
Height = 25
Height = 27
Top = 37
Width = 192
UseFormActivate = True
@ -288,12 +240,12 @@ object EdtTbConfigForm: TEdtTbConfigForm
object cbPos: TComboBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = lbToolbar
AnchorSideRight.Control = lvToolbar
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlButtons
Left = 661
Height = 25
Top = 384
Height = 27
Top = 382
Width = 100
Anchors = [akRight, akBottom]
BorderSpacing.Bottom = 6
@ -306,7 +258,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
'Left'
)
OnChange = cbPosChange
TabOrder = 5
TabOrder = 3
Text = 'Top'
end
object lblpos: TLabel
@ -314,10 +266,10 @@ object EdtTbConfigForm: TEdtTbConfigForm
AnchorSideTop.Control = cbPos
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = cbPos
Left = 617
Left = 618
Height = 17
Top = 388
Width = 38
Top = 387
Width = 37
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = 'lblpos'
@ -330,10 +282,168 @@ object EdtTbConfigForm: TEdtTbConfigForm
AnchorSideBottom.Control = TV
AnchorSideBottom.Side = asrBottom
Left = 400
Height = 341
Top = 68
Height = 339
Top = 70
Width = 9
Align = alNone
Anchors = [akTop, akBottom]
end
object lvToolbar: TListView
AnchorSideLeft.Control = btnAdd
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = TV
AnchorSideBottom.Control = pnlButtons
Left = 443
Height = 308
Top = 70
Width = 318
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 37
Columns = <
item
AutoSize = True
Caption = 'Name'
Width = 100
end
item
AutoSize = True
Caption = 'Profile'
Visible = False
Width = 0
end>
PopupMenu = puMenuItems
ScrollBars = ssAutoBoth
ShowColumnHeaders = False
TabOrder = 5
ViewStyle = vsReport
OnSelectItem = lvToolbarSelectItem
end
object sbAddDivider: TSpeedButton
AnchorSideLeft.Control = btnAdd
AnchorSideTop.Control = btnMoveDown
AnchorSideTop.Side = asrBottom
Left = 415
Height = 26
Top = 276
Width = 22
BorderSpacing.Top = 50
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000008F9091FF8F90
91FF8F9091FF8F9091FF8F9091FF8F9091FF8F9091FF8F9091FF8F9091FF8F90
91FF8F9091FF8F9091FF8F9091FF8F9091FF8F9091FF8F9091FFC7CFD3FFC8D0
D4FFC6CED1FFC4CCD0FFC5CDD1FFC6CED2FFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFBAC0C3FFA0A3A5FF999C9DFFC3CBCFFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFBAC0C3FFA0A3A5FF999C9DFFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFD5DADDFFD2D6D8FF8F9192FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFD5DADDFFD2D6D8FF8F9192FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFDCE1E3FFE0E4E7FF929495FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFDCE1E3FFE0E4E7FF929495FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFD8DEE1FFEFF2F2FFA1A3A4FFC2CACDFFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFD8DEE1FFEFF2F2FFA1A3A4FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC8D0
D4FFC9D1D5FFCED5D8FFC2C9CCFFC6CED2FFC7CFD3FFD5DADDFF8F9091FFC7CF
D3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFC7CFD3FFE4E8EAFFE4E7
EAFFE4E7EAFFE4E7EAFFE4E8EAFFE4E7EAFFE4E7EAFFE4E7EAFFE4E8EAFFE4E7
EAFFE4E7EAFFE4E8EAFFE4E7EAFFE4E7EAFFE4E7EAFFE4E8EAFFD4D9DDFFD4D9
DCFFD4D9DCFFD4D9DCFFD4D9DDFFD4D9DCFFD4D9DCFFD4D9DCFFD4D9DDFFD4D9
DCFFD4D9DCFFD4D9DDFFD4D9DCFFD4D9DCFFD4D9DCFFD4D9DDFF
}
OnClick = btnAddDividerClick
ShowHint = True
ParentShowHint = False
end
object lbSelect: TLabel
AnchorSideLeft.Control = lvToolbar
AnchorSideTop.Control = FilterEdit
AnchorSideRight.Control = lvToolbar
AnchorSideRight.Side = asrBottom
Left = 706
Height = 17
Top = 37
Width = 55
Anchors = [akTop, akRight]
Caption = 'lbSelect'
ParentColor = False
Visible = False
end
object btnClear: TSpeedButton
AnchorSideLeft.Control = btnAdd
AnchorSideBottom.Control = lvToolbar
AnchorSideBottom.Side = asrBottom
Left = 415
Height = 26
Top = 352
Width = 23
Anchors = [akLeft, akBottom]
Enabled = False
OnClick = btnClearClick
ShowHint = True
ParentShowHint = False
end
object btnShow: TButton
Left = 443
Height = 25
Top = 384
Width = 50
Caption = 'Show'
OnClick = btnShowClick
TabOrder = 6
Visible = False
end
object btnHide: TButton
Left = 496
Height = 25
Top = 384
Width = 50
Caption = 'Hide'
OnClick = btnHideClick
TabOrder = 7
Visible = False
end
object puMenuItems: TPopupMenu
OnPopup = puMenuItemsPopup
left = 421
top = 16
object miAll: TMenuItem
AutoCheck = True
Caption = 'All'
OnClick = miAllClick
end
object miDesign: TMenuItem
AutoCheck = True
Caption = 'Design'
OnClick = miDesignClick
end
object miDebug: TMenuItem
AutoCheck = True
Caption = 'Debug'
OnClick = miDebugClick
end
object miHTML: TMenuItem
AutoCheck = True
Caption = 'HTML'
OnClick = miHTMLClick
end
object miCustom: TMenuItem
AutoCheck = True
Caption = 'Custom'
OnClick = miCustomClick
end
end
end

View File

@ -24,40 +24,58 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Buttons, StdCtrls, ComCtrls, MenuIntf, editortoolbar_str, TreeFilterEdit;
Buttons, StdCtrls, ComCtrls, Menus, MenuIntf, editortoolbar_str,
TreeFilterEdit;
type
{ TLvItem }
TLvItem = class (TObject)
Item: TIDEMenuItem;
LvIndex: Integer;
Profile: Integer;
end;
{ TEdtTbConfigForm }
TEdtTbConfigForm = class(TForm)
Bevel1: TBevel;
btnHelp: TBitBtn;
btnAdd: TSpeedButton;
btnMoveDown: TSpeedButton;
btnMoveUp: TSpeedButton;
btnOK: TButton;
btnCancel: TButton;
btnAddDivider: TButton;
btnRemove: TSpeedButton;
btnExpert: TButton;
btnExpand: TButton;
btnSections: TButton;
btnCompress: TButton;
btnShow: TButton;
btnHide: TButton;
cbPos: TComboBox;
cbProfile: TComboBox;
lblProfile: TLabel;
lbSelect: TLabel;
lblpos: TLabel;
lblMenuTree: TLabel;
lblToolbar: TLabel;
lbToolbar: TListBox;
lvToolbar: TListView;
miAll: TMenuItem;
miDesign: TMenuItem;
miDebug: TMenuItem;
miHTML: TMenuItem;
miCustom: TMenuItem;
pnlButtons: TPanel;
FilterEdit: TTreeFilterEdit;
puMenuItems: TPopupMenu;
sbAddDivider: TSpeedButton;
btnClear: TSpeedButton;
Splitter1: TSplitter;
TV: TTreeView;
procedure btnCompressClick(Sender: TObject);
procedure btnExpandClick(Sender: TObject);
procedure btnExpertClick(Sender: TObject);
procedure btnSectionsClick(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnHelpClick(Sender: TObject);
procedure btnShowClick(Sender: TObject);
procedure btnHideClick(Sender: TObject);
procedure cbPosChange(Sender: TObject);
procedure cbProfileChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure lbToolbarSelectionChange(Sender: TObject; User: boolean);
procedure btnAddClick(Sender: TObject);
procedure btnAddDividerClick(Sender: TObject);
@ -65,14 +83,28 @@ type
procedure btnMoveUpClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnRemoveClick(Sender: TObject);
procedure lvToolbarSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure miAllClick(Sender: TObject);
procedure miCustomClick(Sender: TObject);
procedure miDebugClick(Sender: TObject);
procedure miDesignClick(Sender: TObject);
procedure miHTMLClick(Sender: TObject);
procedure puMenuItemsPopup(Sender: TObject);
procedure TVSelectionChanged(Sender: TObject);
private
FToolBarPos: string;
FToolBarShow: boolean;
FExpert: boolean;
FExpandAll: boolean;
FShowSections: boolean;
FCompressSections: boolean;
defImageIndex: integer;
divImageIndex: Integer;
// Main list related entries
MainList: TStringList;
function GetMainListIndex(Item: TListItem): Integer;
procedure UpdateMainListProfile(Item: TListItem);
procedure InsertMainListItem (Item,NextItem: TListItem);
procedure RemoveMainListItem (Item:TListItem);
procedure ExchangeMainListItem (Item1,Item2: TListItem);
procedure SetupCaptions;
procedure LoadCategories;
procedure LoadSettings;
@ -80,7 +112,11 @@ type
procedure SaveSettings;
procedure AddMenuItem(ParentNode: TTreeNode; Item: TIDEMenuItem; Level: Integer);
function RootNodeCaption(Item: TIDEMenuItem): string;
procedure AddToolBarItem(Item: TIDEMenuItem);
procedure AddListItem(Item: TIDEMenuItem; PMask: Integer);
procedure AddToolBarItem(Item: TIDEMenuItem; PMask: Integer);
procedure AddDivider(PMask: Integer);
procedure FillToolBar;
procedure ReloadToolBar;
public
class function Execute: boolean;
class procedure Setup;
@ -90,6 +126,7 @@ type
Var
sPosValues: array[0..3] of string = ('Top','Bottom','Right','Left');
sLocalizedPosValues: array[0..3] of string;
CurrProfile: Integer;
implementation
@ -138,19 +175,37 @@ begin
btnRemove.LoadGlyphFromResourceName(HInstance, 'arrow_left');
btnMoveUp.LoadGlyphFromResourceName(HInstance, 'arrow_up');
btnMoveDown.LoadGlyphFromResourceName(HInstance, 'arrow_down');
btnClear.LoadGlyphFromResourceName(HINSTANCE,'menu_close');
btnHelp.LoadGlyphFromResourceName(HINSTANCE, 'menu_help');
btnAdd.Hint := rsAddSelected;
btnRemove.Hint := rsRemoveSelected;
btnMoveUp.Hint := rsMoveSelectedUp;
btnMoveDown.Hint := rsMoveSelectedDown;
sbAddDivider.Hint:= rsAddDivider;
btnClear.Hint := rsClearSelection;
TV.Images := IDEImages.Images_16;
lvToolbar.SmallImages := IDEImages.Images_16;
// default image to be used when none is available
defImageIndex := IDEImages.LoadImage(16, 'execute16');
// Image for divider
divImageIndex := IDEImages.Images_16.Add(sbAddDivider.Glyph,nil);
MainList := TStringList.Create;
MainList.OwnsObjects:= True; // it should be the default, but just to make sure...
LoadStyleSettings;
SetupCaptions;
LoadCategories;
LoadSettings;
end;
procedure TEdtTbConfigForm.FormDestroy(Sender: TObject);
begin
MainList.Free;
end;
procedure TEdtTbConfigForm.cbPosChange(Sender: TObject);
var
i: Integer;
@ -161,43 +216,40 @@ begin
end;
end;
procedure TEdtTbConfigForm.btnExpandClick(Sender: TObject);
procedure TEdtTbConfigForm.cbProfileChange(Sender: TObject);
begin
FExpandAll:= not FExpandAll;
if FExpandAll then btnExpand.Caption:= 'Collapse'
else btnExpand.Caption:= 'Expand';
LoadCategories;
CurrProfile:= ProfileMask[cbProfile.ItemIndex];
ReloadToolBar;
end;
procedure TEdtTbConfigForm.btnExpertClick(Sender: TObject);
procedure TEdtTbConfigForm.btnClearClick(Sender: TObject);
begin
FExpert:= not FExpert;
SetupCaptions;
LoadCategories;
lvToolbar.Selected := nil;
end;
procedure TEdtTbConfigForm.btnCompressClick(Sender: TObject);
procedure TEdtTbConfigForm.btnHelpClick(Sender: TObject);
begin
FCompressSections:= not FCompressSections;
SetupCaptions;
LoadCategories;
ShowMessageFmt('%s%s%s%s%s%s%s', [rsHelp1,LineEnding,rsHelp2,LineEnding,rsHelp3,LineEnding,rsHelp4]);
end;
procedure TEdtTbConfigForm.btnSectionsClick(Sender: TObject);
procedure TEdtTbConfigForm.btnShowClick(Sender: TObject);
begin
FShowSections:= not FShowSections;
SetupCaptions;
LoadCategories;
lvToolbar.Columns[1].Visible:= true;
end;
procedure TEdtTbConfigForm.btnHideClick(Sender: TObject);
begin
lvToolbar.Columns[1].Visible:= false;
end;
procedure TEdtTbConfigForm.lbToolbarSelectionChange(Sender: TObject; User: boolean);
var
i: Integer;
begin
i := lbToolbar.ItemIndex;
i := lvToolbar.ItemIndex;
btnRemove.Enabled := i > -1;
btnMoveUp.Enabled := i > 0;
btnMoveDown.Enabled := (i > -1) and (i < lbToolbar.Items.Count-1);
btnMoveDown.Enabled := (i > -1) and (i < lvToolbar.Items.Count-1);
end;
procedure TEdtTbConfigForm.TVSelectionChanged(Sender: TObject);
@ -208,19 +260,116 @@ begin
btnAdd.Enabled := (Assigned(n) and Assigned(n.Data));
end;
function TEdtTbConfigForm.GetMainListIndex(Item: TListItem): Integer;
var
I: Integer;
begin
for I:= 0 to MainList.Count -1 do begin
if TLvItem(MainList.Objects[I]).LvIndex = Item.Index then begin
Result := I;
Exit;
end;
end;
Result := -1;
end;
procedure TEdtTbConfigForm.UpdateMainListProfile(Item: TListItem);
var
I: Integer;
begin
I := GetMainListIndex(Item);
if I > -1 then TLvItem(MainList.Objects[I]).Profile:= StrToInt(Item.SubItems[0]);
end;
procedure TEdtTbConfigForm.InsertMainListItem(Item,NextItem: TListItem);
var
I,J: Integer;
aMainListItem: TLvItem;
begin
aMainListItem := TLvItem.Create;
aMainListItem.Item := TIDEMenuItem(Item.Data);
aMainListItem.Profile := StrToInt(Item.SubItems[0]);
aMainListItem.LvIndex := Item.Index;
if NextItem = Nil then
MainList.AddObject(Item.Caption,aMainListItem)
else begin
I := GetMainListIndex(NextItem);
MainList.InsertObject(I,Item.Caption,aMainListItem);
for J := I+1 to MainList.Count -1 do begin
aMainListItem := TLvItem(MainList.Objects[J]);
aMainListItem.LvIndex:= aMainListItem.LvIndex +1;
end;
end;
end;
procedure TEdtTbConfigForm.RemoveMainListItem(Item: TListItem);
var
I,J: Integer;
aMainListItem: TLvItem;
begin
I := GetMainListIndex(Item);
if I > -1 then begin
MainList.Delete(I);
for J := I to MainList.Count -1 do begin
aMainListItem := TLvItem(MainList.Objects[J]);
aMainListItem.LvIndex:= aMainListItem.LvIndex -1;
end;
end;
end;
procedure TEdtTbConfigForm.ExchangeMainListItem(Item1, Item2: TListItem);
var
I,J: Integer;
MainListItem1,MainListItem2: TLvItem;
MainIndex1,MainIndex2: Integer;
aMainListItem: TLvItem;
begin
MainIndex1:= GetMainListIndex(Item1);
MainIndex2:= GetMainListIndex(Item2);
MainList.Exchange(MainIndex1,MainIndex2);
aMainListItem := TLvItem(MainList.Objects[MainIndex1]);
aMainListItem.LvIndex:= Item1.Index;
aMainListItem := TLvItem(MainList.Objects[MainIndex2]);
aMainListItem.LvIndex:= Item2.Index;
end;
procedure TEdtTbConfigForm.btnAddClick(Sender: TObject);
var
n: TTreeNode;
ACaption: string;
lvItem: TListItem;
anIndex: Integer;
begin
n := TV.Selected;
if (Assigned(n) and Assigned(n.Data)) then
begin
btnAdd.Enabled := False;
anIndex:= lvToolbar.ItemIndex;
ACaption:= TIDEMenuItem(n.Data).Caption;
DeleteAmpersands(ACaption);
lbToolbar.Items.AddObject(ACaption, TObject(n.Data));
lbToolbar.ItemIndex := lbToolbar.Items.Count-1;
if anIndex > -1 then begin
lvItem := lvToolbar.Items.Insert(lvToolbar.ItemIndex);
end
else begin
lvItem := lvToolbar.Items.Add;
end;
lvItem.Caption := ACaption;
lvItem.Data := n.Data;
if n.ImageIndex > -1 then
lvItem.ImageIndex := n.ImageIndex
else
lvItem.ImageIndex := defImageIndex;
lvItem.SubItems.Add(IntToStr(CurrProfile));
if anIndex > -1 then begin
// clear previous selection to avoid double sel in Qt
lvToolbar.Selected := nil;
lvToolbar.ItemIndex := lvItem.Index;
InsertMainListItem(lvItem,lvToolbar.Items[anIndex]);
end
else begin
lvToolbar.ItemIndex := lvToolbar.Items.Count-1;
InsertMainListItem(lvItem,Nil);
end;
lbToolbarSelectionChange(lblToolbar, False);
TV.Selected.Visible:= False;
end;
@ -231,12 +380,17 @@ Var
mi: TIDEMenuItem;
n: TTreeNode;
I: Integer;
lvItem: TListItem;
begin
I := lbToolbar.ItemIndex;
I := lvToolbar.ItemIndex;
if I > -1 then begin
mi := TIDEMenuItem(lbToolbar.Items.Objects[I]);
lbToolbar.Items.Delete(lbToolbar.ItemIndex);
lbToolbarSelectionChange(lbToolbar, False);
lvItem := lvToolbar.Items[I];
mi := TIDEMenuItem(lvItem.Data);
RemoveMainListItem(lvItem);
lvToolbar.Items.Delete(lvToolbar.ItemIndex);
if I < lvToolbar.Items.Count then
lvToolbar.Selected := lvToolbar.Items[I]; // Qt Workaround
lbToolbarSelectionChange(lvToolbar, False);
if assigned(mi) then begin
n:= TV.Items.FindNodeWithData(mi);
n.Visible:= True;
@ -245,30 +399,189 @@ begin
end;
end;
procedure TEdtTbConfigForm.btnAddDividerClick(Sender: TObject);
procedure TEdtTbConfigForm.lvToolbarSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
lbToolbar.Items.Add(cDivider);
lbToolbarSelectionChange(Sender,False);
lbSelect.Caption:= IntToStr(lvToolbar.ItemIndex)+ ' / ' + IntToStr(lvToolbar.Items.Count);
btnClear.Enabled:= lvToolbar.Selected <> nil;
btnRemove.Enabled:= btnClear.Enabled;
end;
procedure TEdtTbConfigForm.btnMoveDownClick(Sender: TObject);
procedure TEdtTbConfigForm.miAllClick(Sender: TObject);
var
aMask: Integer;
begin
if lbToolbar.ItemIndex = -1 then
exit;
if lbToolbar.ItemIndex < lbToolbar.Items.Count - 1 then
begin
lbToolbar.Items.Exchange(lbToolbar.ItemIndex, lbToolbar.ItemIndex+1);
lbToolbar.ItemIndex := lbToolbar.ItemIndex+1;
if lvToolbar.ItemIndex = -1 then begin
puMenuItems.Close;
Exit
end;
aMask:= StrToInt(lvToolbar.Selected.SubItems[0]);
if miAll.Checked then begin
lvToolbar.Selected.SubItems[0] := IntToStr(iAll);
miDesign.Checked := False;
miDebug.Checked := False;
miHTML.Checked := False;
miCustom.Checked := False;
end
else
lvToolbar.Selected.SubItems[0] := '0';
UpdateMainListProfile(lvToolbar.Selected);
end;
procedure TEdtTbConfigForm.miCustomClick(Sender: TObject);
var
aMask: Integer;
begin
if lvToolbar.ItemIndex = -1 then begin
puMenuItems.Close;
Exit
end;
aMask:= StrToInt(lvToolbar.Selected.SubItems[0]);
if (aMask and iCustom) = 0 then
aMask := aMask or iCustom
else
aMask := aMask and (not iCustom);
miCustom.Checked:= (aMask and iCustom) <> 0;
lvToolbar.Selected.SubItems[0] := IntToStr(aMask);
UpdateMainListProfile(lvToolbar.Selected);
end;
procedure TEdtTbConfigForm.miDebugClick(Sender: TObject);
var
aMask: Integer;
begin
if lvToolbar.ItemIndex = -1 then begin
puMenuItems.Close;
Exit
end;
aMask:= StrToInt(lvToolbar.Selected.SubItems[0]);
if (aMask and iDebug) = 0 then
aMask := aMask or iDebug
else
aMask := aMask and (not iDebug);
miDebug.Checked:= (aMask and iDebug) <> 0;
lvToolbar.Selected.SubItems[0] := IntToStr(aMask);
UpdateMainListProfile(lvToolbar.Selected);
end;
procedure TEdtTbConfigForm.miDesignClick(Sender: TObject);
var
aMask: Integer;
begin
if lvToolbar.ItemIndex = -1 then begin
puMenuItems.Close;
Exit
end;
aMask:= StrToInt(lvToolbar.Selected.SubItems[0]);
if (aMask and iDesign) = 0 then
aMask := aMask or iDesign
else
aMask := aMask and (not iDesign);
miDesign.Checked:= (aMask and iDesign) <> 0;
lvToolbar.Selected.SubItems[0] := IntToStr(aMask);
UpdateMainListProfile(lvToolbar.Selected);
end;
procedure TEdtTbConfigForm.miHTMLClick(Sender: TObject);
var
aMask: Integer;
begin
if lvToolbar.ItemIndex = -1 then begin
puMenuItems.Close;
Exit
end;
aMask:= StrToInt(lvToolbar.Selected.SubItems[0]);
if (aMask and iHTML) = 0 then
aMask := aMask or iHTML
else
aMask := aMask and (not iHTML);
miHTML.Checked:= (aMask and iHTML) <> 0;
lvToolbar.Selected.SubItems[0] := IntToStr(aMask);
UpdateMainListProfile(lvToolbar.Selected);
end;
procedure TEdtTbConfigForm.puMenuItemsPopup(Sender: TObject);
var
aMask: Integer;
begin
if lvToolbar.ItemIndex = -1 then begin
puMenuItems.Close;
Exit
end;
aMask:= StrToInt(lvToolbar.Selected.SubItems[0]);
if aMask = iAll then begin
miAll.Checked:= True;
miDesign.Checked := False;
miDebug.Checked := False;
miHTML.Checked := False;
miCustom.Checked := False;
end
else begin
miAll.Checked:= False;
if (aMask and iDesign) <> 0 then miDesign.Checked:= True
else miDesign.Checked:= False;
if (aMask and iDebug) <> 0 then miDebug.Checked:= True
else miDebug.Checked:= False;
if (aMask and iHTML) <> 0 then miHTML.Checked:= True
else miHTML.Checked:= False;
if (aMask and iCustom) <> 0 then miCustom.Checked:= True
else miCustom.Checked:= False;
end;
end;
procedure TEdtTbConfigForm.btnMoveUpClick(Sender: TObject);
procedure TEdtTbConfigForm.btnAddDividerClick(Sender: TObject);
var
lvItem: TListItem;
anIndex: Integer;
begin
if lbToolbar.ItemIndex = -1 then
anIndex := lvToolbar.ItemIndex;
if anIndex > -1 then
lvItem := lvToolbar.Items.Insert(anIndex)
else
lvItem := lvToolbar.Items.Add;
lvItem.Caption:= cDivider;
lvItem.ImageIndex:= divImageIndex;
lvItem.SubItems.Add(IntToStr(CurrProfile));
if lvToolbar.ItemIndex > -1 then
InsertMainListItem(lvItem,lvToolbar.Items[anIndex])
else
InsertMainListItem(lvItem,Nil);
end;
procedure TEdtTbConfigForm.btnMoveDownClick(Sender: TObject);
var
Index1,Index2: Integer;
begin
if lvToolbar.ItemIndex = -1 then
Exit;
if lvToolbar.ItemIndex < lvToolbar.Items.Count - 1 then begin
Index1 := lvToolbar.ItemIndex;
Index2 := Index1+1;
lvToolbar.Items.Exchange(Index1,Index2);
ExchangeMainListItem(lvToolbar.Items[Index1],lvToolbar.Items[Index2]);
lvToolbar.Items[Index1].Selected := False;
lvToolbar.Items[Index2].Selected := False;
lvToolbar.Selected := nil;
lvToolbar.ItemIndex:= Index2;
end;
end;
procedure TEdtTbConfigForm.btnMoveUpClick(Sender: TObject);
var
Index1,Index2: Integer;
begin
if lvToolbar.ItemIndex = -1 then
exit;
if lbToolbar.ItemIndex > 0 then
begin
lbToolbar.Items.Exchange(lbToolbar.ItemIndex, lbToolbar.ItemIndex-1);
lbToolbar.ItemIndex := lbToolbar.ItemIndex-1;
if lvToolbar.ItemIndex > 0 then begin
Index1:= lvToolbar.ItemIndex;
Index2:= Index1-1;
lvToolbar.Items.Exchange(Index1, Index2);
ExchangeMainListItem(lvToolbar.Items[Index1],lvToolbar.Items[Index2]);
lvToolbar.Items[Index1].Selected := False;
lvToolbar.Items[Index2].Selected := False;
lvToolbar.Selected := nil;
lvToolbar.ItemIndex:= Index2;
end;
end;
@ -284,7 +597,6 @@ begin
Caption := rsEditorToolbarConfigForm;
btnOK.Caption := rsOK;
btnCancel.Caption := rsCancel;
btnAddDivider.Caption := rsAddDivider;
lblMenuTree.Caption := rsMenuTree;
lblToolbar.Caption := rsToolbar;
lblpos.Caption := rsPosition;
@ -296,26 +608,11 @@ begin
begin
cbPos.Items[i] := sLocalizedPosValues[i]; // localized
end;
{$IFDEF DebugOptions}
btnExpert.Show;
btnExpand.Show;
if FExpandAll then btnExpand.Caption:= 'Collapse'
else btnExpand.Caption:= 'Expand';
if FExpert then begin
btnExpert.Caption:= 'Normal';
btnSections.Hide;
btnCompress.Hide;
end
else begin
btnExpert.Caption:= 'Expert';
btnSections.Show;
btnCompress.Show;
end;
if FCompressSections then btnCompress.Color:= clRed
else btnCompress.Color:= clBtnFace;
if FShowSections then btnSections.Color:= clRed
else btnSections.Color:= clBtnFace;
{$ENDIF}
cbProfile.Items[0] := rsAll;
cbProfile.Items[1] := rsDesign;
cbProfile.Items[2] := rsDebug;
cbProfile.Items[3] := rsHTML;
cbProfile.Items[4] := rsCustom;
end;
procedure TEdtTbConfigForm.LoadCategories;
@ -330,7 +627,6 @@ begin
finally
TV.Items.EndUpdate;
end;
if FExpandAll then TV.FullExpand;
end;
procedure TEdtTbConfigForm.LoadSettings;
@ -339,8 +635,10 @@ var
c: integer;
cfg: TConfigStorage;
value: string;
aProfileMask: Integer;
mi: TIDEMenuItem;
ms: TIDEMenuSection;
lvItem: TListItem;
begin
cfg := GetIDEConfigStorage(cSettingsFile, True);
try
@ -349,37 +647,34 @@ begin
// Let's provide a Jump Back/Jump Forward as a starting default
ms := itmJumpings;
mi := ms.FindByName('itmJumpBack');
AddToolBarItem(mi);
AddListItem(mi,iAll);
mi := ms.FindByName('itmJumpForward');
AddToolBarItem(mi);
AddListItem(mi,iAll);
end
else begin
for i := 0 to c - 1 do
begin
value := cfg.GetValue('Button' + Format('%2.2d', [i+1]) + '/Value', '');
aProfileMask := cfg.GetValue('Button' + Format('%2.2d', [i+1]) + '/Profile', iAll);
if value <> '' then
begin
if value = cDivider then
begin
lbToolbar.Items.Add(value);
AddListItem(nil,aProfileMask);
Continue;
end;
mi := IDEMenuRoots.FindByPath(value, false);
AddToolBarItem(mi);
AddListItem(mi,aProfileMask);
end;
end;
end;
value := cfg.GetValue('Position','Top');
FToolbarPos := value;
FToolBarShow := cfg.GetValue('Visible',true);
FExpert := cfg.GetValue('Options/Expert',false);
FExpandAll := cfg.GetValue('Options/Expand',false);
FShowSections := cfg.GetValue('Options/Sections',false);
FCompressSections := cfg.GetValue('Options/Compress',true);
finally
cfg.Free;
end;
FillToolBar;
i := IndexFromEnglish(FToolBarPos);
cbPos.Text:= sLocalizedPosValues[i];
end;
@ -387,13 +682,14 @@ end;
procedure TEdtTbConfigForm.LoadStyleSettings;
var
cfg: TConfigStorage;
value: Integer;
begin
cfg := GetIDEConfigStorage(cSettingsFile, True);
try
FExpert := cfg.GetValue('Options/Expert',false);
FExpandAll := cfg.GetValue('Options/Expand',false);
FShowSections := cfg.GetValue('Options/Sections',false);
FCompressSections := cfg.GetValue('Options/Compress',true);
value := cfg.GetValue('Profile',iAll);
CurrProfile := value;
value := GetProfileIndex(value);
cbProfile.ItemIndex:= value;
finally
cfg.Free;
end;
@ -403,23 +699,24 @@ procedure TEdtTbConfigForm.SaveSettings;
var
i: integer;
cfg: TConfigStorage;
lvItem: TLvItem;
aProfileMask: Integer;
begin
cfg := GetIDEConfigStorage(cSettingsFile, False);
try
cfg.SetValue('Count', lbToolbar.Items.Count);
for i := 0 to lbToolbar.Items.Count - 1 do
begin
if lbToolbar.Items[i] = cDivider then
cfg.SetValue('Count', MainList.Count);
for i := 0 to MainList.Count - 1 do begin
lvItem := TLvItem(MainList.Objects[I]);
aProfileMask:= lvItem.Profile;
if MainList[I] = cDivider then
cfg.SetDeleteValue('Button' + Format('%2.2d', [i+1]) + '/Value', cDivider, '')
else
cfg.SetDeleteValue('Button' + Format('%2.2d', [i+1]) + '/Value', TIDEMenuItem(lbToolbar.Items.Objects[i]).GetPath, '');
cfg.SetDeleteValue('Button' + Format('%2.2d', [i+1]) + '/Value', lvItem.Item.GetPath, '');
cfg.SetDeleteValue('Button' + Format('%2.2d', [i+1]) + '/Profile', aProfileMask,iAll);
end;
cfg.SetValue('Position', FToolbarPos);
cfg.SetValue('Visible',FToolBarShow);
cfg.SetValue('Options/Expert',FExpert);
cfg.SetValue('Options/Expand',FExpandAll);
cfg.SetValue('Options/Sections',FShowSections);
cfg.SetValue('Options/Compress',FCompressSections);
cfg.SetValue('Profile',CurrProfile);
cfg.WriteToDisk;
finally
cfg.Free;
@ -440,16 +737,13 @@ begin
else hasCaption:= false;
sec := (Item as TIDEMenuSection);
if sec.Count > 0 then begin // skip empty sections
if FExpert or (Level= 0) {or (FShowSections)} then ACaption:= RootNodeCaption(Item)
if Level= 0 then ACaption:= RootNodeCaption(Item)
else begin
if hasCaption then ACaption:= Item.Caption
else ACaption:= '---';
end;
DeleteAmpersands(ACaption);
if FCompressSections and (Level > 0) and ( not hasCaption) then begin
if FShowSections then TV.Items.AddChild(ParentNode, Format('%s', [ACaption]));
n:= ParentNode
end
if (Level > 0) and ( not hasCaption) then n:= ParentNode
else begin
n := TV.Items.AddChild(ParentNode, Format('%s', [ACaption]));
n.ImageIndex := Item.ImageIndex;
@ -460,12 +754,16 @@ begin
end;
end
else begin
ACaption:= Item.Caption;
DeleteAmpersands(ACaption);
n := TV.Items.AddChild(ParentNode, Format('%s', [ACaption]));
n.ImageIndex := Item.ImageIndex;
n.SelectedIndex := Item.ImageIndex;
n.Data := Item;
if Item.Caption <> '-' then begin // workaround for HTML Editor dividers
ACaption:= Item.Caption;
DeleteAmpersands(ACaption);
ACaption:= ACaption+GetShortcut(Item);
n := TV.Items.AddChild(ParentNode, Format('%s', [ACaption]));
n.ImageIndex := Item.ImageIndex;
n.SelectedIndex := Item.ImageIndex;
n.Data := Item;
end;
end;
end;
@ -488,20 +786,86 @@ case AName of
end;
end;
procedure TEdtTbConfigForm.AddToolBarItem(Item: TIDEMenuItem);
procedure TEdtTbConfigForm.AddListItem(Item: TIDEMenuItem; PMask: Integer);
var
aListItem: TLvItem;
begin
aListItem := TLvItem.Create;
if assigned(Item) then begin
aListItem.Item := Item;
aListItem.Profile:= Pmask;
MainList.AddObject(Item.Caption,aListItem);
end
else begin
aListItem.Item := nil;
aListItem.Profile:= PMask;
MainList.AddObject(cDivider,aListItem);
end;
end;
procedure TEdtTbConfigForm.AddToolBarItem(Item: TIDEMenuItem; PMask: Integer);
Var
n: TTreeNode;
ACaption: string;
lvItem: TListItem;
begin
if Assigned(Item) then begin
ACaption:= Item.Caption;
DeleteAmpersands(ACaption);
lbToolbar.Items.AddObject(ACaption, TObject(Item));
ACaption:= ACaption+GetShortcut(Item);
lvItem := lvToolbar.Items.Add;
lvItem.Caption:= ACaption;
lvItem.Data:= Item;
if Item.ImageIndex > -1 then
lvItem.ImageIndex:= Item.ImageIndex
else
lvItem.ImageIndex:= defImageIndex;
lvItem.SubItems.Add(IntToStr(PMask));
n:= TV.Items.FindNodeWithData(Item);
n.Visible:= False;
end;
end;
procedure TEdtTbConfigForm.AddDivider(PMask: Integer);
var
lvItem: TListItem;
begin
lvItem := lvToolbar.Items.Add;
lvItem.Caption:= cDivider;
lvItem.ImageIndex:= divImageIndex;
lvItem.SubItems.Add(IntToStr(PMask));
end;
procedure TEdtTbConfigForm.FillToolBar;
var
I: Integer;
aListItem: TLvItem;
aCaption: string;
aPMask: Integer;
mi: TIDEMenuItem;
canShow: Boolean;
begin
for I:= 0 to MainList.Count -1 do begin
aListItem := TLvItem(MainList.Objects[I]);
aPMask := aListItem.Profile;
canShow := (CurrProfile = iAll) or ((aPMask and CurrProfile) <> 0);
if canShow then begin
mi := aListItem.Item;
aCaption := MainList.Strings[I];
if aCaption = cDivider then AddDivider(aPMask)
else AddToolBarItem(mi,aPMask);
aListItem.LvIndex:= lvToolbar.Items.Count-1;
end;
end;
end;
procedure TEdtTbConfigForm.ReloadToolBar;
begin
lvToolbar.Clear;
FillToolBar;
end;
class function TEdtTbConfigForm.Execute: boolean;
var
frm: TEdtTbConfigForm;

View File

@ -18,6 +18,10 @@ msgstr "Přidat oddělovač"
msgid "Add selected item to toolbar"
msgstr "Přidat vybranou položku na panel"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -26,6 +30,10 @@ msgstr ""
msgid "Cancel"
msgstr "Zrušit"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -38,6 +46,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Nastavení panelu nástrojů"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -50,10 +70,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr "[Editor] Konfigurace panelu nástrojů"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -18,6 +18,10 @@ msgstr "Trenner hinzufügen"
msgid "Add selected item to toolbar"
msgstr "Gewähltes Element zur Toolbar hinzufügen"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -26,6 +30,10 @@ msgstr ""
msgid "Cancel"
msgstr "Abbrechen"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -38,6 +46,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Toolbar konfigurieren"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -50,10 +70,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr "Editor-Toolbar-Konfiguration"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -17,6 +17,10 @@ msgstr "Añadir divisor"
msgid "Add selected item to toolbar"
msgstr "Añadir elemento seleccionado a la barra de herramientas"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -25,6 +29,10 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -37,6 +45,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Configurar la barra de herramientas"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -49,10 +69,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr "Editor de la configuración de Barra de herramientas"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -19,6 +19,10 @@ msgstr "Elválasztó hozzáadása"
msgid "Add selected item to toolbar"
msgstr "A kijelölt elem hozzáadása az eszköztárhoz"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr "Alulra"
@ -27,6 +31,10 @@ msgstr "Alulra"
msgid "Cancel"
msgstr "Mégsem"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr "Kódböngésző"
@ -39,6 +47,18 @@ msgstr "Kódsablonok"
msgid "Configure Toolbar"
msgstr "Eszköztár beállítása"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr "Tervező"
@ -51,10 +71,30 @@ msgstr "Szerkesztő eszköztár"
msgid "Editor Toolbar Configuration"
msgstr "Szerkesztő eszköztár beállítása"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr "Itt adhatja hozzá a kedvenc parancsait"
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr "IDE Főmenü"

View File

@ -20,6 +20,10 @@ msgstr "Aggiungi divisore"
msgid "Add selected item to toolbar"
msgstr "Aggiungere alla barra degli strumenti"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr "Basso"
@ -28,6 +32,10 @@ msgstr "Basso"
msgid "Cancel"
msgstr "Annulla"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -40,6 +48,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Configura la toolbar"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -52,10 +72,30 @@ msgstr "Barra strumenti dell'editor"
msgid "Editor Toolbar Configuration"
msgstr "Editor di configurazione toolbar"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -19,6 +19,10 @@ msgstr "Pridėti skyriklį"
msgid "Add selected item to toolbar"
msgstr "Pažymėtą elementą įdėti į įrankių juostą"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -27,6 +31,10 @@ msgstr ""
msgid "Cancel"
msgstr "Atsisakyti"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -39,6 +47,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Derinti įrankių juostą"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -51,10 +71,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr "Rengyklės įrankių juostos sąranka"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -9,6 +9,10 @@ msgstr ""
msgid "Add selected item to toolbar"
msgstr ""
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -17,6 +21,10 @@ msgstr ""
msgid "Cancel"
msgstr ""
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -29,6 +37,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr ""
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -41,10 +61,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr ""
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -17,6 +17,10 @@ msgstr "Adicionar Divisor"
msgid "Add selected item to toolbar"
msgstr "Adicionar item selecionado à barra de ferramentas"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -25,6 +29,10 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -37,6 +45,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Configurar barra de ferramentas"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -49,10 +69,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr "Configuração do editor da barra de ferramentas"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""

View File

@ -17,6 +17,10 @@ msgstr "Добавить разделитель"
msgid "Add selected item to toolbar"
msgstr "Добавить выбранный элемент на панель"
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr "Снизу"
@ -25,6 +29,10 @@ msgstr "Снизу"
msgid "Cancel"
msgstr "Отмена"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr "Обозреватель кода"
@ -37,6 +45,18 @@ msgstr "Шаблоны кода"
msgid "Configure Toolbar"
msgstr "Настроить инструментальную панель"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr "Дизайнер"
@ -49,10 +69,30 @@ msgstr "Инструментальная панель редактора"
msgid "Editor Toolbar Configuration"
msgstr "Настройка инструментальной панели редактора"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr "Сюда можно добавить часто используемые команды"
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr "Главное меню IDE"

View File

@ -17,6 +17,10 @@ msgstr "Додати Роздільник"
msgid "Add selected item to toolbar"
msgstr ""
#: editortoolbar_str.rsall
msgid "All"
msgstr ""
#: editortoolbar_str.rsbottom
msgid "Bottom"
msgstr ""
@ -25,6 +29,10 @@ msgstr ""
msgid "Cancel"
msgstr "Скасувати"
#: editortoolbar_str.rsclearselection
msgid "Clear selection"
msgstr ""
#: editortoolbar_str.rscodeexplorer
msgid "Code Explorer"
msgstr ""
@ -37,6 +45,18 @@ msgstr ""
msgid "Configure Toolbar"
msgstr "Налаштувати Панель Інструментів"
#: editortoolbar_str.rscustom
msgid "Custom"
msgstr ""
#: editortoolbar_str.rsdebug
msgid "Debug"
msgstr ""
#: editortoolbar_str.rsdesign
msgid "Design"
msgstr ""
#: editortoolbar_str.rsdesigner
msgid "Designer"
msgstr ""
@ -49,10 +69,30 @@ msgstr ""
msgid "Editor Toolbar Configuration"
msgstr "Налаштування Панелі Інструментів Редактора"
#: editortoolbar_str.rshelp1
msgid "The \"Add\" button inserts a Menu Item before the selected Item of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp2
msgid "If none is selected, the Item will be appended at the end of the Toolbar."
msgstr ""
#: editortoolbar_str.rshelp3
msgid "You may rearrage Toolbar Items with \"Move Up\" and \"Move Down\" buttons."
msgstr ""
#: editortoolbar_str.rshelp4
msgid "Hint: to append an Item at the end, use \"Clear selection\""
msgstr ""
#: editortoolbar_str.rshint
msgid "You may add here your favorite commands"
msgstr ""
#: editortoolbar_str.rshtml
msgid "HTML"
msgstr ""
#: editortoolbar_str.rsidemainmenu
msgid "IDE Main Menu"
msgstr ""