From 1b2b4bb4f3ecc034a6e9364d8768e50b167a9680 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Tue, 24 Dec 2024 12:41:48 +0100 Subject: Rough GTK3 port --- URunFromVFS.pas | 190 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 133 insertions(+), 57 deletions(-) (limited to 'URunFromVFS.pas') diff --git a/URunFromVFS.pas b/URunFromVFS.pas index 4710a33..3654abc 100644 --- a/URunFromVFS.pas +++ b/URunFromVFS.pas @@ -22,8 +22,8 @@ unit URunFromVFS; interface uses - gtk2, SysUtils, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, - GTKPixbuf, UCoreClasses; + SysUtils, Classes, lazgdk3, lazgtk3, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKPixbuf, + UCoreClasses; type TFRunFromVFS = class(TGTKDialog) @@ -35,14 +35,14 @@ type ButtonBox: TGTKHButtonBox; CloseButton: TGTKButton; - Table: TGTKTable; - ExecuteButton, ExecuteAllButton: TGTKImageButton; - + Grid: TGTKGrid; + ExecuteButton, ExecuteAllButton: TGTKButton; + FileNameLabel, FileNameLabel2, FileTypeLabel, FileTypeLabel2, SizeLabel, SizeLabel2, PackedSizeLabel, PackedSizeLabel2, DateLabel, DateLabel2: TGTKLabel; OpensWithLabel, OpensWithLabel2, InfoLabel: TGTKLabel; InfoIcon: TGTKImage; - + HBox1, HBox2: TGTKHBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); @@ -60,23 +60,25 @@ uses ULocale; procedure TFRunFromVFS.FormCreate(Sender: TObject); +var VBox: TGTKVBox; begin // SetDefaultSize(55, 40); Caption := LANGFRunFromVFS_Caption; Buttons := []; - ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGFRunFromVFS_TitleLabel]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; - TitleLabel.XPadding := 0; - TitleLabel.YPadding := 3; + TitleLabel.MarginStart := 0; + TitleLabel.MarginEnd := 0; + TitleLabel.MarginTop := 3; + TitleLabel.MarginBottom := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); - TitleIcon.SetFromStock('gtk-properties', isLargeToolbar); + TitleIcon.SetFromIconName('gtk-properties', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKVBox.Create(Self), False, False, 5); @@ -86,7 +88,8 @@ begin TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); - CloseButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_CLOSE); + CloseButton := TGTKButton.CreateFromIconName(Self, GTK_STOCK_CLOSE); + CloseButton.Caption := 'Close'; // CloseButton.Default := True; // Default := CloseButton; CloseButton.OnClick := @CloseButtonClick; @@ -96,114 +99,187 @@ begin ButtonBox.BorderWidth := 0; FileNameLabel := TGTKLabel.Create(Self); - FileNameLabel.XAlign := 1; - FileNameLabel.YAlign := 0; FileNameLabel.Caption := Format('%s', [LANGFRunFromVFS_FileNameLabel]); FileNameLabel.UseMarkup := True; + FileNameLabel.XAlign := 1; + FileNameLabel.YAlign := 0; + FileNameLabel.MarginStart := 10; + FileNameLabel.MarginEnd := 10; + FileNameLabel.MarginTop := 2; + FileNameLabel.MarginBottom := 2; FileNameLabel2 := TGTKLabel.Create(Self); FileNameLabel2.Caption := Format('%s ', ['/tmp/t/bbbbb.txt']); - FileNameLabel2.XAlign := 0; FileNameLabel2.UseMarkup := True; FileNameLabel2.Selectable := True; FileNameLabel2.CanFocus := False; FileNameLabel2.LineWrap := True; + FileNameLabel2.XAlign := 0; + FileNameLabel2.MarginStart := 10; + FileNameLabel2.MarginEnd := 10; + FileNameLabel2.MarginTop := 2; + FileNameLabel2.MarginBottom := 2; FileTypeLabel := TGTKLabel.Create(Self); FileTypeLabel.XAlign := 1; + FileTypeLabel.MarginStart := 10; + FileTypeLabel.MarginEnd := 10; + FileTypeLabel.MarginTop := 2; + FileTypeLabel.MarginBottom := 2; FileTypeLabel.Caption := Format('%s', [LANGFRunFromVFS_FileTypeLabel]); FileTypeLabel.UseMarkup := True; FileTypeLabel2 := TGTKLabel.Create(Self); FileTypeLabel2.Caption := Format('%s ', ['HTML page']); FileTypeLabel2.XAlign := 0; + FileTypeLabel2.MarginStart := 10; + FileTypeLabel2.MarginEnd := 10; + FileTypeLabel2.MarginTop := 2; + FileTypeLabel2.MarginBottom := 2; FileTypeLabel2.UseMarkup := True; SizeLabel := TGTKLabel.Create(Self); - SizeLabel.XAlign := 1; SizeLabel.Caption := Format('%s', [LANGFRunFromVFS_SizeLabel]); SizeLabel.UseMarkup := True; + SizeLabel.XAlign := 1; + SizeLabel.MarginStart := 10; + SizeLabel.MarginEnd := 10; + SizeLabel.MarginTop := 2; + SizeLabel.MarginBottom := 2; SizeLabel2 := TGTKLabel.Create(Self); SizeLabel2.Caption := Format('%s ', ['192 168 bytes']); - SizeLabel2.XAlign := 0; SizeLabel2.UseMarkup := True; + SizeLabel2.XAlign := 0; + SizeLabel2.MarginStart := 10; + SizeLabel2.MarginEnd := 10; + SizeLabel2.MarginTop := 2; + SizeLabel2.MarginBottom := 2; PackedSizeLabel := TGTKLabel.Create(Self); - PackedSizeLabel.XAlign := 1; PackedSizeLabel.Caption := Format('%s', [LANGFRunFromVFS_PackedSizeLabel]); PackedSizeLabel.UseMarkup := True; + PackedSizeLabel.XAlign := 1; + PackedSizeLabel.MarginStart := 10; + PackedSizeLabel.MarginEnd := 10; + PackedSizeLabel.MarginTop := 2; + PackedSizeLabel.MarginBottom := 2; PackedSizeLabel2 := TGTKLabel.Create(Self); PackedSizeLabel2.Caption := Format('%s ', ['168 192 bytes']); - PackedSizeLabel2.XAlign := 0; PackedSizeLabel2.UseMarkup := True; + PackedSizeLabel2.XAlign := 0; + PackedSizeLabel2.MarginStart := 10; + PackedSizeLabel2.MarginEnd := 10; + PackedSizeLabel2.MarginTop := 2; + PackedSizeLabel2.MarginBottom := 2; DateLabel := TGTKLabel.Create(Self); - DateLabel.XAlign := 1; DateLabel.Caption := Format('%s', [LANGFRunFromVFS_DateLabel]); DateLabel.UseMarkup := True; + DateLabel.XAlign := 1; + DateLabel.MarginStart := 10; + DateLabel.MarginEnd := 10; + DateLabel.MarginTop := 2; + DateLabel.MarginBottom := 2; DateLabel2 := TGTKLabel.Create(Self); DateLabel2.Caption := Format('%s ', ['2007-01-01']); - DateLabel2.XAlign := 0; DateLabel2.UseMarkup := True; + DateLabel2.XAlign := 0; + DateLabel2.MarginStart := 10; + DateLabel2.MarginEnd := 10; + DateLabel2.MarginTop := 2; + DateLabel2.MarginBottom := 2; HBox1 := TGTKHBox.Create(Self); HBox1.Homogeneous := False; + HBox1.MarginTop := 2; + HBox1.MarginBottom := 2; InfoLabel := TGTKLabel.Create(Self); InfoLabel.Caption := LANGFRunFromVFS_InfoLabel; InfoLabel.UseMarkup := True; InfoLabel.LineWrap := True; InfoLabel.SetSizeRequest(400, -1); InfoIcon := TGTKImage.Create(Self); - InfoIcon.SetFromStock('gtk-dialog-info', isDialog); + InfoIcon.SetFromIconName('gtk-dialog-info', isDialog); HBox1.AddControlEx(TGTKVBox.Create(Self), False, False, 12); HBox1.AddControlEx(InfoIcon, False, False, 7); HBox1.AddControlEx(InfoLabel, True, True, 0); HBox1.AddControlEx(TGTKVBox.Create(Self), False, False, 8); OpensWithLabel := TGTKLabel.Create(Self); - OpensWithLabel.XAlign := 1; - OpensWithLabel.YAlign := 0; OpensWithLabel.Caption := Format('%s', [LANGFRunFromVFS_OpensWithLabel]); OpensWithLabel.UseMarkup := True; + OpensWithLabel.XAlign := 1; + OpensWithLabel.YAlign := 0; + OpensWithLabel.MarginStart := 10; + OpensWithLabel.MarginEnd := 10; + OpensWithLabel.MarginTop := 10; + OpensWithLabel.MarginBottom := 10; OpensWithLabel2 := TGTKLabel.Create(Self); OpensWithLabel2.Caption := Format('%s ', ['galeon']); - OpensWithLabel2.XAlign := 0; OpensWithLabel2.Selectable := True; OpensWithLabel2.CanFocus := False; OpensWithLabel2.UseMarkup := True; + OpensWithLabel2.XAlign := 0; + OpensWithLabel2.MarginStart := 10; + OpensWithLabel2.MarginEnd := 10; + OpensWithLabel2.MarginTop := 10; + OpensWithLabel2.MarginBottom := 10; - ExecuteButton := TGTKImageButton.Create(Self); - ExecuteButton.SetFromStock('gtk-execute', isButton); + ExecuteButton := TGTKButton.CreateFromIconName(Self, 'gtk-execute'); ExecuteButton.Caption := LANGFRunFromVFS_ExecuteButton; ExecuteButton.OnClick := @ExecuteButtonClick; - ExecuteButton.Spacing := 7; - ExecuteAllButton := TGTKImageButton.Create(Self); +// ExecuteButton.Spacing := 7; + ExecuteAllButton := TGTKButton.Create(Self); ExecuteAllButton.Caption := LANGFRunFromVFS_ExecuteAllButton; ExecuteAllButton.OnClick := @ExecuteAllButtonClick; - ExecuteAllButton.Spacing := 7; - - - Table := TGTKTable.Create(Self); - Table.SetRowColCount(13, 4); - ClientArea.AddControlEx(Table, True, True, 12); - Table.AddControlEx(0, 0, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink], 10, 6); - Table.AddControlEx(0, 1, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoFill], 12, 2); - Table.AddControlEx(1, 1, 1, 1, FileNameLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(3, 1, 2, 1, FileNameLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(1, 2, 1, 1, FileTypeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(3, 2, 2, 1, FileTypeLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(1, 3, 1, 1, SizeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(3, 3, 2, 1, SizeLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(1, 4, 1, 1, PackedSizeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(3, 4, 2, 1, PackedSizeLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(1, 5, 1, 1, DateLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(3, 5, 2, 1, DateLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); - Table.AddControlEx(0, 6, 5, 1, TGTKHBox.Create(Self), [taoShrink], [taoShrink], 50, 17); - Table.AddControlEx(0, 7, 5, 1, HBox1, [taoExpand, taoFill], [taoShrink], 0, 2); - Table.AddControlEx(1, 8, 1, 1, OpensWithLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 10); - Table.AddControlEx(3, 8, 2, 1, OpensWithLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 10); -// Table.AddControlEx(3, 9, 1, 1, ExecuteButton, [taoFill], [taoShrink], 10, 2); -// Table.AddControlEx(3, 10, 1, 1, ExecuteAllButton, [taoFill], [taoShrink], 10, 2); - Table.AddControlEx(4, 11, 1, 1, TGTKHBox.Create(Self), [taoExpand, taoFill], [taoShrink], 30, 2); - Table.AddControlEx(0, 12, 4, 1, TGTKVBox.Create(Self), [taoExpand, taoFill], [taoShrink], 30, 10); +// ExecuteAllButton.Spacing := 7; + + + Grid := TGTKGrid.Create(Self); + ClientArea.AddControlEx(Grid, True, True, 12); + VBox := TGTKVBox.Create(Self); + VBox.MarginStart := 10; + VBox.MarginEnd := 10; + VBox.MarginTop := 6; + VBox.MarginBottom := 6; + Grid.AddControl(0, 0, 1, 1, VBox); + VBox := TGTKVBox.Create(Self); + VBox.MarginStart := 12; + VBox.MarginEnd := 12; + VBox.MarginTop := 2; + VBox.MarginBottom := 2; + Grid.AddControl(0, 1, 1, 1, VBox); + Grid.AddControl(1, 1, 1, 1, FileNameLabel); + Grid.AddControl(3, 1, 2, 1, FileNameLabel2); + Grid.AddControl(1, 2, 1, 1, FileTypeLabel); + Grid.AddControl(3, 2, 2, 1, FileTypeLabel2); + Grid.AddControl(1, 3, 1, 1, SizeLabel); + Grid.AddControl(3, 3, 2, 1, SizeLabel2); + Grid.AddControl(1, 4, 1, 1, PackedSizeLabel); + Grid.AddControl(3, 4, 2, 1, PackedSizeLabel2); + Grid.AddControl(1, 5, 1, 1, DateLabel); + Grid.AddControl(3, 5, 2, 1, DateLabel2); + VBox := TGTKVBox.Create(Self); + VBox.MarginStart := 50; + VBox.MarginEnd := 50; + VBox.MarginTop := 17; + VBox.MarginBottom := 17; + Grid.AddControl(0, 6, 5, 1, VBox); + Grid.AddControl(0, 7, 5, 1, HBox1); + Grid.AddControl(1, 8, 1, 1, OpensWithLabel); + Grid.AddControl(3, 8, 2, 1, OpensWithLabel2); +// Grid.AddControlEx(3, 9, 1, 1, ExecuteButton, [taoFill], [taoShrink], 10, 2); +// Grid.AddControlEx(3, 10, 1, 1, ExecuteAllButton, [taoFill], [taoShrink], 10, 2); + VBox := TGTKVBox.Create(Self); + VBox.MarginStart := 30; + VBox.MarginEnd := 30; + VBox.MarginTop := 2; + VBox.MarginBottom := 2; + Grid.AddControl(4, 11, 1, 1, VBox); + VBox := TGTKVBox.Create(Self); + VBox.MarginStart := 30; + VBox.MarginEnd := 30; + VBox.MarginTop := 10; + VBox.MarginBottom := 10; + Grid.AddControl(0, 12, 4, 1, VBox); HBox2 := TGTKHBox.Create(Self); HBox2.BorderWidth := 3; @@ -221,17 +297,17 @@ end; procedure TFRunFromVFS.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin - if Key = GDK_ESCAPE then begin + if Key = GDK_KEY_Escape then begin ModalResult := mbClose; Accept := False; end else - if Key = GDK_RIGHT then begin + if Key = GDK_KEY_Right then begin if ExecuteButton.Focused then ExecuteAllButton.SetFocus else if ExecuteAllButton.Focused then CloseButton.SetFocus else ExecuteButton.SetFocus; Accept := False; end else - if Key = GDK_LEFT then begin + if Key = GDK_KEY_Left then begin if ExecuteButton.Focused then CloseButton.SetFocus else if ExecuteAllButton.Focused then ExecuteButton.SetFocus else ExecuteAllButton.SetFocus; -- cgit v1.2.3