mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-23 07:39:59 +02:00
ide: add an ability to edit resource type and name
git-svn-id: trunk@43232 -
This commit is contained in:
parent
0bdad272d2
commit
0633a8cb97
@ -9,12 +9,19 @@ object ResourcesOptionsFrame: TResourcesOptionsFrame
|
||||
DesignLeft = 561
|
||||
DesignTop = 308
|
||||
object lbResources: TListView
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = ToolBar1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = lblResourceName
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 304
|
||||
Top = 26
|
||||
Width = 742
|
||||
Align = alClient
|
||||
Width = 610
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
AutoWidthLastColumn = True
|
||||
BorderSpacing.Right = 6
|
||||
Columns = <
|
||||
item
|
||||
Caption = 'FullFileName'
|
||||
@ -31,7 +38,7 @@ object ResourcesOptionsFrame: TResourcesOptionsFrame
|
||||
end
|
||||
item
|
||||
Caption = 'Resource'
|
||||
Width = 508
|
||||
Width = 376
|
||||
end>
|
||||
RowSelect = True
|
||||
TabOrder = 0
|
||||
@ -70,6 +77,63 @@ object ResourcesOptionsFrame: TResourcesOptionsFrame
|
||||
OnClick = btnClearClick
|
||||
end
|
||||
end
|
||||
object lblResourceName: TLabel
|
||||
AnchorSideLeft.Control = edResourceName
|
||||
AnchorSideTop.Control = lbResources
|
||||
Left = 616
|
||||
Height = 15
|
||||
Top = 26
|
||||
Width = 93
|
||||
Caption = 'lblResourceName'
|
||||
FocusControl = edResourceName
|
||||
ParentColor = False
|
||||
end
|
||||
object edResourceName: TEdit
|
||||
AnchorSideLeft.Control = lblResourceName
|
||||
AnchorSideTop.Control = lblResourceName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 616
|
||||
Height = 23
|
||||
Top = 47
|
||||
Width = 126
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
CharCase = ecUppercase
|
||||
OnEditingDone = edResourceNameEditingDone
|
||||
OnKeyDown = edResourceNameKeyDown
|
||||
TabOrder = 2
|
||||
end
|
||||
object lblResourceType: TLabel
|
||||
AnchorSideLeft.Control = cbResourceType
|
||||
AnchorSideTop.Control = edResourceName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 616
|
||||
Height = 15
|
||||
Top = 76
|
||||
Width = 87
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'lblResourceType'
|
||||
ParentColor = False
|
||||
end
|
||||
object cbResourceType: TComboBox
|
||||
AnchorSideLeft.Control = edResourceName
|
||||
AnchorSideTop.Control = lblResourceType
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 616
|
||||
Height = 23
|
||||
Top = 97
|
||||
Width = 126
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
ItemHeight = 15
|
||||
OnChange = cbResourceTypeChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 3
|
||||
end
|
||||
object dlgOpen: TOpenDialog
|
||||
left = 146
|
||||
top = 93
|
||||
|
@ -5,15 +5,20 @@ unit project_resources_options;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Graphics, Forms, Controls, ComCtrls, Dialogs, LCLProc,
|
||||
IDEOptionsIntf, IDEImagesIntf, IDEDialogs,
|
||||
Project, ProjectUserResources, LCLStrConsts, LazarusIDEStrConsts;
|
||||
Classes, SysUtils, FileUtil, Graphics, Forms, Controls, ComCtrls, Dialogs,
|
||||
LCLProc, LCLType,
|
||||
IDEOptionsIntf, IDEImagesIntf, IDEDialogs, Project,
|
||||
ProjectUserResources, LCLStrConsts, ExtCtrls, StdCtrls, LazarusIDEStrConsts;
|
||||
|
||||
type
|
||||
|
||||
{ TResourcesOptionsFrame }
|
||||
|
||||
TResourcesOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
cbResourceType: TComboBox;
|
||||
edResourceName: TEdit;
|
||||
lblResourceType: TLabel;
|
||||
lblResourceName: TLabel;
|
||||
lbResources: TListView;
|
||||
dlgOpen: TOpenDialog;
|
||||
ToolBar1: TToolBar;
|
||||
@ -23,6 +28,10 @@ type
|
||||
procedure btnAddClick(Sender: TObject);
|
||||
procedure btnClearClick(Sender: TObject);
|
||||
procedure btnDeleteClick(Sender: TObject);
|
||||
procedure cbResourceTypeChange(Sender: TObject);
|
||||
procedure edResourceNameEditingDone(Sender: TObject);
|
||||
procedure edResourceNameKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
procedure lbResourcesInsert(Sender: TObject; Item: TListItem);
|
||||
procedure lbResourcesSelectItem(Sender: TObject; Item: TListItem;
|
||||
Selected: Boolean);
|
||||
@ -57,15 +66,32 @@ begin
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.btnDeleteClick(Sender: TObject);
|
||||
var
|
||||
Index: Integer;
|
||||
begin
|
||||
Index := lbResources.ItemIndex;
|
||||
if (Index <> -1) then
|
||||
lbResources.Items.Delete(Index);
|
||||
if Assigned(lbResources.Selected) then
|
||||
lbResources.Items.Delete(lbResources.Selected.Index);
|
||||
btnClear.Enabled := lbResources.Items.Count > 0;
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.cbResourceTypeChange(Sender: TObject);
|
||||
begin
|
||||
lbResources.Selected.SubItems[1] := ResourceTypeToStr[TUserResourceType(cbResourceType.ItemIndex)];
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.edResourceNameEditingDone(Sender: TObject);
|
||||
begin
|
||||
lbResources.Selected.SubItems[2] := edResourceName.Text;
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.edResourceNameKeyDown(Sender: TObject;
|
||||
var Key: Word; Shift: TShiftState);
|
||||
begin
|
||||
if Key = VK_RETURN then
|
||||
begin
|
||||
edResourceName.EditingDone;
|
||||
Key := 0;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.lbResourcesInsert(Sender: TObject;
|
||||
Item: TListItem);
|
||||
begin
|
||||
@ -74,7 +100,17 @@ end;
|
||||
|
||||
procedure TResourcesOptionsFrame.lbResourcesSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||||
begin
|
||||
btnDelete.Enabled := lbResources.ItemIndex <> -1;
|
||||
btnDelete.Enabled := Assigned(lbResources.Selected);
|
||||
edResourceName.Enabled := Assigned(lbResources.Selected);
|
||||
if edResourceName.Enabled then
|
||||
edResourceName.Text := lbResources.Selected.SubItems[2]
|
||||
else
|
||||
edResourceName.Text := '';
|
||||
cbResourceType.Enabled := Assigned(lbResources.Selected);
|
||||
if cbResourceType.Enabled then
|
||||
cbResourceType.ItemIndex := Ord(StrToResourceType(lbResources.Selected.SubItems[1]))
|
||||
else
|
||||
cbResourceType.ItemIndex := -1;
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.AddResourceItem(ResFile: String; ResType: TUserResourceType; ResName: String);
|
||||
@ -110,6 +146,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TResourcesOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
|
||||
var
|
||||
rt: TUserResourceType;
|
||||
begin
|
||||
ToolBar1.Images := IDEImages.Images_16;
|
||||
lbResources.Column[1].Caption := rsResourceFileName;
|
||||
@ -121,6 +159,10 @@ begin
|
||||
btnDelete.ImageIndex := IDEImages.LoadImage(16, 'laz_delete');
|
||||
btnClear.Caption := lisDeleteAll;
|
||||
btnClear.ImageIndex := IDEImages.LoadImage(16, 'menu_clean');
|
||||
lblResourceName.Caption := rsResource + ':';
|
||||
lblResourceType.Caption := rsResourceType + ':';
|
||||
for rt := Low(TUserResourceType) to High(TUserResourceType) do
|
||||
cbResourceType.Items.Add(ResourceTypeToStr[rt]);
|
||||
// system resources can be:
|
||||
// 1. Graphic files
|
||||
// 2. Font files
|
||||
|
Loading…
Reference in New Issue
Block a user