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 --- USelect.pas | 68 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 33 insertions(+), 35 deletions(-) (limited to 'USelect.pas') diff --git a/USelect.pas b/USelect.pas index 5fcc8cc..dba8422 100644 --- a/USelect.pas +++ b/USelect.pas @@ -22,7 +22,7 @@ unit USelect; interface uses - SysUtils, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKConsts, GTKClasses; + SysUtils, Classes, lazgdk3, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls; type TFSelect = class(TGTKDialog) @@ -33,7 +33,7 @@ type TitleHBox: TGTKHBox; } Label1: TGTKLabel; - ComboBox: TGTKCombo; + ComboBox: TGTKComboBoxEntry; Box: TGTKVBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); @@ -84,12 +84,10 @@ begin Label1.Caption := LANGSpecifyFileType; Label1.UseUnderline := True; Label1.XAlign := 0; - Label1.XPadding := 0; - ComboBox := TGTKCombo.Create(Self); - ComboBox.DisableActivate; + ComboBox := TGTKComboBoxEntry.Create(Self); if SelectHistory.Count > 0 then for i := 0 to SelectHistory.Count - 1 do - ComboBox.Items.Append(SelectHistory[i]); + ComboBox.AppendItem(SelectHistory[i]); ComboBox.Entry.Text := '*.*'; ComboBox.Entry.OnKeyDown := @ComboBoxKeyDown; Label1.FocusControl := ComboBox.Entry; @@ -104,8 +102,8 @@ end; procedure TFSelect.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of - GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; - GDK_ESCAPE: ModalResult := mbCancel; + GDK_KEY_Return, GDK_KEY_KP_Enter: ModalResult := mbOK; + GDK_KEY_Escape: ModalResult := mbCancel; end; end; @@ -114,33 +112,33 @@ var Orig, s: string; i: integer; begin case Key of - GDK_UP, GDK_DOWN: if Shift = [] then begin - Accept := False; - if SelectHistory.Count > 0 then begin - Orig := Trim(ComboBox.Entry.Text); - i := SelectHistory.IndexOf(Orig); - - if Key = GDK_DOWN then begin - if i < 0 then begin - SavedData := Orig; - i := 0; - end else - if SelectHistory.Count > i + 1 then Inc(i); - s := SelectHistory[i]; - end else begin - if i < 0 then Exit else - if i = 0 then begin - s := SavedData; - SavedData := ''; - end else - if SelectHistory.Count > i then s := SelectHistory[i - 1]; - end; - - ComboBox.Entry.Text := s; - ComboBox.Entry.SetFocus; - ComboBox.Entry.SelectAll; - end; - end; + GDK_KEY_Up, GDK_KEY_Down: if Shift = [] then begin + Accept := False; + if SelectHistory.Count > 0 then begin + Orig := Trim(ComboBox.Entry.Text); + i := SelectHistory.IndexOf(Orig); + + if Key = GDK_KEY_Down then begin + if i < 0 then begin + SavedData := Orig; + i := 0; + end else + if SelectHistory.Count > i + 1 then Inc(i); + s := SelectHistory[i]; + end else begin + if i < 0 then Exit else + if i = 0 then begin + s := SavedData; + SavedData := ''; + end else + if SelectHistory.Count > i then s := SelectHistory[i - 1]; + end; + + ComboBox.Entry.Text := s; + ComboBox.Entry.SetFocus; + ComboBox.Entry.SelectAll; + end; + end; end; end; -- cgit v1.2.3