summaryrefslogtreecommitdiff
path: root/USelect.pas
diff options
context:
space:
mode:
Diffstat (limited to 'USelect.pas')
-rw-r--r--USelect.pas68
1 files changed, 33 insertions, 35 deletions
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;