ADD: Option to set toolbar icons size in Viewer and Editor

This commit is contained in:
Alexander Koblov 2020-11-14 11:38:32 +00:00
commit ff74abf312
7 changed files with 108 additions and 107 deletions

View file

@ -1242,8 +1242,6 @@ object dmComData: TdmComData
}
end
object ilViewerImages: TImageList
Height = 24
Width = 24
Left = 280
Top = 120
end

View file

@ -40,8 +40,7 @@ type
SaveDialog: TSaveDialog;
procedure DataModuleCreate(Sender: TObject);
private
procedure LoadViewerImageList;
procedure LoadEditorImageList;
procedure LoadImages(Images: TImageList; ANames: TStringArray);
public
{ public declarations }
end;
@ -52,103 +51,109 @@ var
implementation
uses
LCLVersion, uGraphics, uPixMapManager;
LCLVersion, Graphics, uPixMapManager;
{$R *.lfm}
const
ViewerNames: array[0..26] of String = (
'view-refresh',
'go-previous',
'go-next',
'edit-copy',
'edit-cut',
'edit-delete',
'zoom-in',
'zoom-out',
'object-rotate-left',
'object-rotate-right',
'object-flip-horizontal',
'media-playback-pause',
'media-playback-start',
'media-skip-backward',
'media-skip-forward',
'image-crop',
'image-red-eye',
'draw-freehand',
'draw-rectangle',
'draw-ellipse',
'edit-undo',
'document-edit',
'view-fullscreen',
'draw-path',
'document-page-setup',
'view-restore',
'camera-photo'
);
EditorNames: array[0..33] of String = (
'document-new',
'document-open',
'document-save',
'document-save-as',
'document-properties',
'edit-cut',
'edit-copy',
'edit-paste',
'edit-undo',
'edit-redo',
'edit-find',
'edit-find-replace',
'application-exit',
'help-about',
'edit-delete',
'edit-select-all',
'go-jump',
'view-refresh',
'mr-config',
'mr-editor',
'mr-filename',
'mr-extension',
'mr-counter',
'mr-date',
'mr-time',
'mr-plugin',
'view-file',
'mr-pathtools',
'mr-rename',
'mr-clearfield',
'mr-presets',
'mr-savepreset',
'mr-deletepreset',
'mr-droppresets'
);
{ TdmComData }
procedure TdmComData.DataModuleCreate(Sender: TObject);
begin
if Assigned(PixMapManager) then
begin
LoadViewerImageList;
LoadEditorImageList;
LoadImages(ilViewerImages, ViewerNames);
LoadImages(ilEditorImages, EditorNames);
end;
end;
procedure TdmComData.LoadViewerImageList;
procedure TdmComData.LoadImages(Images: TImageList; ANames: TStringArray);
var
AName: String;
ASize16, ASize24: Integer;
ABitmap16, ABitmap24: TBitmap;
begin
LoadThemeIcon(ilViewerImages, 0, 'view-refresh');
LoadThemeIcon(ilViewerImages, 1, 'go-previous');
LoadThemeIcon(ilViewerImages, 2, 'go-next');
LoadThemeIcon(ilViewerImages, 3, 'edit-copy');
LoadThemeIcon(ilViewerImages, 4, 'edit-cut');
LoadThemeIcon(ilViewerImages, 5, 'edit-delete');
LoadThemeIcon(ilViewerImages, 6, 'zoom-in');
LoadThemeIcon(ilViewerImages, 7, 'zoom-out');
LoadThemeIcon(ilViewerImages, 8, 'object-rotate-left');
LoadThemeIcon(ilViewerImages, 9, 'object-rotate-right');
LoadThemeIcon(ilViewerImages, 10, 'object-flip-horizontal');
LoadThemeIcon(ilViewerImages, 11, 'media-playback-pause');
LoadThemeIcon(ilViewerImages, 12, 'media-playback-start');
LoadThemeIcon(ilViewerImages, 13, 'media-skip-backward');
LoadThemeIcon(ilViewerImages, 14, 'media-skip-forward');
LoadThemeIcon(ilViewerImages, 15, 'image-crop');
LoadThemeIcon(ilViewerImages, 16, 'image-red-eye');
LoadThemeIcon(ilViewerImages, 17, 'draw-freehand');
LoadThemeIcon(ilViewerImages, 18, 'draw-rectangle');
LoadThemeIcon(ilViewerImages, 19, 'draw-ellipse');
LoadThemeIcon(ilViewerImages, 20, 'edit-undo');
LoadThemeIcon(ilViewerImages, 21, 'document-edit');
LoadThemeIcon(ilViewerImages, 22, 'view-fullscreen');
LoadThemeIcon(ilViewerImages, 23, 'draw-path');
LoadThemeIcon(ilViewerImages, 24, 'document-page-setup');
LoadThemeIcon(ilViewerImages, 25, 'view-restore');
LoadThemeIcon(ilViewerImages, 26, 'camera-photo');
end;
procedure TdmComData.LoadEditorImageList;
begin
{$if lcl_fullversion >= 1070000}
ilEditorImages.Width:= AdjustIconSize(ilEditorImages.Width, 96);
ilEditorImages.Height:= AdjustIconSize(ilEditorImages.Height, 96);
{$endif}
LoadThemeIcon(ilEditorImages, 0, 'document-new');
LoadThemeIcon(ilEditorImages, 1, 'document-open');
LoadThemeIcon(ilEditorImages, 2, 'document-save');
LoadThemeIcon(ilEditorImages, 3, 'document-save-as');
LoadThemeIcon(ilEditorImages, 4, 'document-properties');
LoadThemeIcon(ilEditorImages, 5, 'edit-cut');
LoadThemeIcon(ilEditorImages, 6, 'edit-copy');
LoadThemeIcon(ilEditorImages, 7, 'edit-paste');
LoadThemeIcon(ilEditorImages, 8, 'edit-undo');
LoadThemeIcon(ilEditorImages, 9, 'edit-redo');
LoadThemeIcon(ilEditorImages, 10, 'edit-find');
LoadThemeIcon(ilEditorImages, 11, 'edit-find-replace');
LoadThemeIcon(ilEditorImages, 12, 'application-exit');
LoadThemeIcon(ilEditorImages, 13, 'help-about');
LoadThemeIcon(ilEditorImages, 14, 'edit-delete');
LoadThemeIcon(ilEditorImages, 15, 'edit-select-all');
LoadThemeIcon(ilEditorImages, 16, 'go-jump');
LoadThemeIcon(ilEditorImages, 17, 'view-refresh');
LoadThemeIcon(ilEditorImages, 18, 'mr-config');
LoadThemeIcon(ilEditorImages, 19, 'mr-editor');
LoadThemeIcon(ilEditorImages, 20, 'mr-filename');
LoadThemeIcon(ilEditorImages, 21, 'mr-extension');
LoadThemeIcon(ilEditorImages, 22, 'mr-counter');
LoadThemeIcon(ilEditorImages, 23, 'mr-date');
LoadThemeIcon(ilEditorImages, 24, 'mr-time');
LoadThemeIcon(ilEditorImages, 25, 'mr-plugin');
LoadThemeIcon(ilEditorImages, 26, 'view-file');
LoadThemeIcon(ilEditorImages, 27, 'mr-pathtools');
LoadThemeIcon(ilEditorImages, 28, 'mr-rename');
LoadThemeIcon(ilEditorImages, 29, 'mr-clearfield');
LoadThemeIcon(ilEditorImages, 30, 'mr-presets');
LoadThemeIcon(ilEditorImages, 31, 'mr-savepreset');
LoadThemeIcon(ilEditorImages, 32, 'mr-deletepreset');
LoadThemeIcon(ilEditorImages, 33, 'mr-droppresets');
Images.Clear;
ASize16:= 16; // AdjustIconSize(16, 96);
ASize24:= 24; // AdjustIconSize(24, 96);
Images.RegisterResolutions([ASize16, ASize24]);
for AName in ANames do
begin
ABitmap16:= PixMapManager.GetThemeIcon(AName, ASize16);
if (ABitmap16 = nil) then ABitmap16:= TBitmap.Create;
ABitmap24:= PixMapManager.GetThemeIcon(AName, ASize24);
if (ABitmap24 = nil) then ABitmap24:= TBitmap.Create;
Images.AddMultipleResolutions([ABitmap16, ABitmap24]);
ABitmap16.Free;
ABitmap24.Free;
end;
end;
end.

View file

@ -664,6 +664,7 @@ object frmEditor: TfrmEditor
Height = 26
Top = 0
Width = 640
AutoSize = True
Images = dmComData.ilEditorImages
ParentShowHint = False
ShowHint = True

View file

@ -274,6 +274,10 @@ var
begin
InitPropStorage(Self);
tbToolBar.ImagesWidth:= gToolIconsSize;
tbToolBar.ButtonWidth:= gToolIconsSize + ScaleX(6, 96);
tbToolBar.ButtonHeight:= gToolIconsSize + ScaleY(6, 96);
Menu.Images:= dmComData.ilEditorImages;
LoadGlobalOptions;

View file

@ -1848,8 +1848,12 @@ begin
WlxPlugins.Assign(gWLXPlugins);
DCDebug('WLX: Load - OK');
FFindDialog:=nil; // dialog is created in first use
FFindDialog:= nil; // dialog is created in first use
ToolBar1.ImagesWidth:= gToolIconsSize;
ToolBar1.ButtonWidth:= gToolIconsSize + ScaleX(6, 96);
ToolBar1.ButtonHeight:= gToolIconsSize + ScaleY(6, 96);
sboxImage.DoubleBuffered := True;
miStretch.Checked := gImageStretch;
miStretchOnlyLarge.Checked := gImageStretchOnlyLarge;

View file

@ -440,6 +440,7 @@ var
gIconsSizeNew : Integer;
gDiskIconsSize : Integer;
gDiskIconsAlpha : Integer;
gToolIconsSize: Integer;
gFiOwnDCIcon : PtrInt;
gIconsExclude: Boolean;
gIconsExcludeDirs: String;
@ -1893,6 +1894,7 @@ begin
gIconsSizeNew := gIconsSize;
gDiskIconsSize := 16;
gDiskIconsAlpha := 50;
gToolIconsSize := 24;
gIconsExclude := False;
gIconsExcludeDirs := EmptyStr;
gPixelsPerInch := 96;
@ -2930,6 +2932,7 @@ begin
gIconsSize := GetValue(Node, 'Size', gIconsSize);
gDiskIconsSize := GetValue(Node, 'DiskSize', gDiskIconsSize);
gDiskIconsAlpha := GetValue(Node, 'DiskAlpha', gDiskIconsAlpha);
gToolIconsSize := GetValue(Node, 'ToolSize', gToolIconsSize);
gIconsExclude := GetValue(Node, 'Exclude', gIconsExclude);
gIconsExcludeDirs := GetValue(Node, 'ExcludeDirs', gIconsExcludeDirs);
gPixelsPerInch := GetValue(Node, 'PixelsPerInch', gPixelsPerInch);
@ -3532,6 +3535,7 @@ begin
SetValue(Node, 'Size', gIconsSizeNew);
SetValue(Node, 'DiskSize', gDiskIconsSize);
SetValue(Node, 'DiskAlpha', gDiskIconsAlpha);
SetValue(Node, 'ToolSize', gToolIconsSize);
SetValue(Node, 'Exclude', gIconsExclude);
SetValue(Node, 'ExcludeDirs', gIconsExcludeDirs);
SetValue(Node, 'CustomIcons', Integer(gCustomIcons));

View file

@ -27,19 +27,18 @@ unit uGraphics;
interface
uses
Classes, SysUtils, Graphics, Controls, IntfGraphics;
Classes, SysUtils, Graphics, IntfGraphics;
procedure BitmapConvert(Bitmap: TRasterImage);
procedure BitmapAssign(Bitmap, Image: TRasterImage);
procedure BitmapAlpha(var ABitmap: TBitmap; APercent: Single);
procedure BitmapAssign(Bitmap: TRasterImage; Image: TLazIntfImage);
procedure BitmapCenter(var Bitmap: TBitmap; Width, Height: Integer);
procedure LoadThemeIcon(ImageList: TImageList; Index: Integer; const AIconName: String);
implementation
uses
GraphType, FPimage, uPixMapManager;
GraphType, FPimage;
type
TRawAccess = class(TRasterImage) end;
@ -160,19 +159,5 @@ begin
end;
end;
procedure LoadThemeIcon(ImageList: TImageList; Index: Integer; const AIconName: String);
var
ABitmap: TBitmap;
begin
ABitmap:= PixMapManager.GetThemeIcon(AIconName, ImageList.Width);
if (ABitmap = nil) then ABitmap:= TBitmap.Create;
if (Index < ImageList.Count) then
ImageList.Replace(Index, ABitmap , nil)
else begin
ImageList.Insert(Index, ABitmap , nil)
end;
ABitmap.Free;
end;
end.