summaryrefslogtreecommitdiff
path: root/UFileAssoc.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2024-12-27 21:56:14 +0100
committerTomas Bzatek <tbzatek@redhat.com>2025-11-27 19:39:56 +0100
commit63ff1bea9bb1e87a7e2643f680d04f2b9c00d072 (patch)
treeca808833ae6b321a99de1292244024756f176edc /UFileAssoc.pas
parent1b2b4bb4f3ecc034a6e9364d8768e50b167a9680 (diff)
downloadtuxcmd-63ff1bea9bb1e87a7e2643f680d04f2b9c00d072.tar.xz
Port to GResource
Diffstat (limited to 'UFileAssoc.pas')
-rw-r--r--UFileAssoc.pas100
1 files changed, 50 insertions, 50 deletions
diff --git a/UFileAssoc.pas b/UFileAssoc.pas
index a2d9573..3e14bf5 100644
--- a/UFileAssoc.pas
+++ b/UFileAssoc.pas
@@ -44,27 +44,7 @@ type TAssocAction = class
const ConstFTAMetaDirectory = '<directory>';
ConstFTAMetaFile = '<file>';
-{$I 'pixmaps/emblem_symbolic_link_png.inc'}
-{$I 'pixmaps/gnome_dev_cdrom_16_png.inc'}
-{$I 'pixmaps/gnome_dev_floppy_16_png.inc'}
-{$I 'pixmaps/gnome_dev_harddisk_16_png.inc'}
-{$I 'pixmaps/gnome_dev_removable_usb_16_png.inc'}
-{$I 'pixmaps/gnome_mime_application_zip_16_png.inc'}
-{$I 'pixmaps/gnome_mime_x_directory_smb_share_16_png.inc'}
-{$I 'pixmaps/stock_folder_16_png.inc'}
-{$I 'pixmaps/stock_lock_16_png.inc'}
-{$I 'pixmaps/stock_lock_48_png.inc'}
-{$I 'pixmaps/stock_new_16_png.inc'}
-{$I 'pixmaps/stock_up_one_dir_16_png.inc'}
-{$I 'pixmaps/tuxcmd_16_png.inc'}
-{$I 'pixmaps/tuxcmd_24_png.inc'}
-{$I 'pixmaps/tuxcmd_32_png.inc'}
-{$I 'pixmaps/tuxcmd_48_png.inc'}
-{$I 'pixmaps/tuxcmd_64_png.inc'}
-{$I 'pixmaps/tuxcmd_128_png.inc'}
-
-
-
+{$I 'resources/icons.inc'}
var FolderIcon, FileIcon, UpDirIcon, SymLinkEmblem, FolderIconLnk, FileIconLnk,
@@ -85,7 +65,7 @@ procedure AddDefaultItems(List: TList);
implementation
-uses GTKForms, UConfig, UCore;
+uses lazglib2, lazgio2, GTKForms, UConfig, UCore;
(********************************************************************************************************************************)
@@ -124,62 +104,82 @@ begin
end;
(********************************************************************************************************************************)
+function _g_bytes_new_static(data: Array of Byte; size: gsize): PGBytes; cdecl; external LazGLib2_library name 'g_bytes_new_static';
+
+
procedure LoadIcons;
+var Resource: PGResource;
+ Bytes: PGBytes;
+ Error: PGError;
begin
+ Error := nil;
+ Bytes := _g_bytes_new_static(gresource_icons, Length(gresource_icons));
+ Resource := g_resource_new_from_data(Bytes, @Error);
+ if (Resource = nil) then begin
+ g_log('tuxcmd', [G_LOG_LEVEL_CRITICAL], 'Error reading icons resource: %s', [Error^.message]);
+ g_error_free(Error);
+ Exit;
+ end;
+ g_resources_register(Resource);
+
FolderIcon := TGDKPixbuf.Create(Application);
-// FolderIcon.LoadFromInline(@stock_folder_16_png[1]);
-// FolderIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
+ FolderIcon.LoadFromResource('/tuxcmd/icons/stock_folder_16_png.png');
+ FolderIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
FileIcon := TGDKPixbuf.Create(Application);
-// FileIcon.LoadFromInline(@stock_new_16_png[1]);
-// FileIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
+ FileIcon.LoadFromResource('/tuxcmd/icons/stock_new_16_png.png');
+ FileIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
UpDirIcon := TGDKPixbuf.Create(Application);
-// UpDirIcon.LoadFromInline(@stock_up_one_dir_16_png[1]);
-// UpDirIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
+ UpDirIcon.LoadFromResource('/tuxcmd/icons/stock_up_one_dir_16_png.png');
+ UpDirIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
SymLinkEmblem := TGDKPixbuf.Create(Application);
-// SymLinkEmblem.LoadFromInline(@emblem_symbolic_link_png[1]);
+ SymLinkEmblem.LoadFromResource('/tuxcmd/icons/emblem_symbolic_link_png.png');
FolderIconLnk := TGDKPixbuf.Create(Application);
-// FolderIconLnk.FPixbuf := FolderIcon.Copy;
-// FolderIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FolderIconLnk.Width - SymLinkEmblem.Width, FolderIconLnk.Height - SymLinkEmblem.Height);
+ FolderIconLnk.FPixbuf := FolderIcon.Copy;
+ FolderIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FolderIconLnk.Width - SymLinkEmblem.Width, FolderIconLnk.Height - SymLinkEmblem.Height);
FileIconLnk := TGDKPixbuf.Create(Application);
-// FileIconLnk.FPixbuf := FileIcon.Copy;
-// FileIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FileIconLnk.Width - SymLinkEmblem.Width, FileIconLnk.Height - SymLinkEmblem.Height);
+ FileIconLnk.FPixbuf := FileIcon.Copy;
+ FileIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FileIconLnk.Width - SymLinkEmblem.Width, FileIconLnk.Height - SymLinkEmblem.Height);
FolderIconCached := FolderIcon;
FileIconCached := FileIcon;
FolderIconLnkCached := FolderIconLnk;
FileIconLnkCached := FileIconLnk;
MounterHDD := TGDKPixbuf.Create(Application);
-// MounterHDD.LoadFromInline(@gnome_dev_harddisk_16_png[1]);
+ MounterHDD.LoadFromResource('/tuxcmd/icons/gnome_dev_harddisk_16_png.png');
MounterRemovable := TGDKPixbuf.Create(Application);
-// MounterRemovable.LoadFromInline(@gnome_dev_removable_usb_16_png[1]);
+ MounterRemovable.LoadFromResource('/tuxcmd/icons/gnome_dev_removable_usb_16_png.png');
MounterFloppy := TGDKPixbuf.Create(Application);
-// MounterFloppy.LoadFromInline(@gnome_dev_floppy_16_png[1]);
+ MounterFloppy.LoadFromResource('/tuxcmd/icons/gnome_dev_floppy_16_png.png');
MounterCD := TGDKPixbuf.Create(Application);
-// MounterCD.LoadFromInline(@gnome_dev_cdrom_16_png[1]);
+ MounterCD.LoadFromResource('/tuxcmd/icons/gnome_dev_cdrom_16_png.png');
MounterNetwork := TGDKPixbuf.Create(Application);
-// MounterNetwork.LoadFromInline(@gnome_mime_x_directory_smb_share_16_png[1]);
+ MounterNetwork.LoadFromResource('/tuxcmd/icons/gnome_mime_x_directory_smb_share_16_png.png');
StockLock16 := TGDKPixbuf.Create(Application);
-// StockLock16.LoadFromInline(@stock_lock_16_png[1]);
+ StockLock16.LoadFromResource('/tuxcmd/icons/stock_lock_16_png.png');
StockLock48 := TGDKPixbuf.Create(Application);
-// StockLock48.LoadFromInline(@stock_lock_48_png[1]);
+ StockLock48.LoadFromResource('/tuxcmd/icons/stock_lock_48_png.png');
ArchiveIcon := TGDKPixbuf.Create(Application);
-// ArchiveIcon.LoadFromInline(@gnome_mime_application_zip_16_png[1]);
-// ArchiveIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
+ ArchiveIcon.LoadFromResource('/tuxcmd/icons/gnome_mime_application_zip_16_png.png');
+ ArchiveIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal);
ArchiveIconLnk := TGDKPixbuf.Create(Application);
-// ArchiveIconLnk.FPixbuf := ArchiveIcon.Copy;
-// ArchiveIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FolderIconLnk.Width - SymLinkEmblem.Width, FolderIconLnk.Height - SymLinkEmblem.Height);
+ ArchiveIconLnk.FPixbuf := ArchiveIcon.Copy;
+ ArchiveIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FolderIconLnk.Width - SymLinkEmblem.Width, FolderIconLnk.Height - SymLinkEmblem.Height);
AppIcon16 := TGDKPixbuf.Create(Application);
-// AppIcon16.LoadFromInline(@tuxcmd_16_png[1]);
+ AppIcon16.LoadFromResource('/tuxcmd/icons/tuxcmd_16_png.png');
AppIcon24 := TGDKPixbuf.Create(Application);
-// AppIcon24.LoadFromInline(@tuxcmd_24_png[1]);
+ AppIcon24.LoadFromResource('/tuxcmd/icons/tuxcmd_24_png.png');
AppIcon32 := TGDKPixbuf.Create(Application);
-// AppIcon32.LoadFromInline(@tuxcmd_32_png[1]);
+ AppIcon32.LoadFromResource('/tuxcmd/icons/tuxcmd_32_png.png');
AppIcon48 := TGDKPixbuf.Create(Application);
-// AppIcon48.LoadFromInline(@tuxcmd_48_png[1]);
+ AppIcon48.LoadFromResource('/tuxcmd/icons/tuxcmd_48_png.png');
AppIcon64 := TGDKPixbuf.Create(Application);
-// AppIcon64.LoadFromInline(@tuxcmd_64_png[1]);
+ AppIcon64.LoadFromResource('/tuxcmd/icons/tuxcmd_64_png.png');
AppIcon128 := TGDKPixbuf.Create(Application);
-// AppIcon128.LoadFromInline(@tuxcmd_128_png[1]);
+ AppIcon128.LoadFromResource('/tuxcmd/icons/tuxcmd_128_png.png');
+
+ g_resources_unregister(Resource);
+ g_resource_unref(Resource);
+ g_bytes_unref(Bytes);
end;
(********************************************************************************************************************************)