summaryrefslogtreecommitdiff
path: root/libgtk_kylix/GTKForms.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2024-12-24 12:41:48 +0100
committerTomas Bzatek <tbzatek@redhat.com>2025-11-27 19:39:51 +0100
commit1b2b4bb4f3ecc034a6e9364d8768e50b167a9680 (patch)
tree065ddde53b64f7957a30b7dc9d83a748f309868c /libgtk_kylix/GTKForms.pas
parentb9703b29819b619037cc282d719c187e51bacd30 (diff)
downloadtuxcmd-1b2b4bb4f3ecc034a6e9364d8768e50b167a9680.tar.xz
Rough GTK3 port
Diffstat (limited to 'libgtk_kylix/GTKForms.pas')
-rw-r--r--libgtk_kylix/GTKForms.pas50
1 files changed, 16 insertions, 34 deletions
diff --git a/libgtk_kylix/GTKForms.pas b/libgtk_kylix/GTKForms.pas
index a3572b6..b1467db 100644
--- a/libgtk_kylix/GTKForms.pas
+++ b/libgtk_kylix/GTKForms.pas
@@ -1,6 +1,5 @@
(*
GTK-Kylix Library: GTKForms - Basic windows (TGTKForm, TGTKDialog), TGTKApplication, TGDKScreen
- Version 0.6.28 (last updated 2008-10-12)
Copyright (C) 2007 Tomas Bzatek <tbzatek@users.sourceforge.net>
This library is free software; you can redistribute it and/or
@@ -24,7 +23,7 @@ unit GTKForms;
interface
-uses gtk2, gdk2, lazglib2, lazgobject2, Classes, SysUtils, GTKControls, GTKConsts;
+uses lazglib2, lazgobject2, lazgdk3, lazgtk3, Classes, SysUtils, GTKControls, GTKConsts;
type // Some basic types
PCharArray = array[0..0] of PChar;
@@ -109,7 +108,6 @@ type // Some basic types
property Default: TGTKControl write SetDefault;
public
FAccelGroup: PGtkAccelGroup;
- Tooltips: TGTKTooltips;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Release;
@@ -144,9 +142,7 @@ type // Some basic types
private
FButtons: TMessageButtons;
FOnResponse: TGTKDialogResponseEvent;
- function GetShowSeparator: boolean;
procedure SetButtons(Value: TMessageButtons);
- procedure SetShowSeparator(Value: boolean);
procedure SetModalResult(Value: TMessageButton);
procedure SetDefaultButton(Value: TMessageButton);
procedure SetParentForm(Value: TCustomGTKForm);
@@ -159,7 +155,6 @@ type // Some basic types
procedure SetResponseSensitive(ButtonID: integer; Sensitive: boolean);
published
property Buttons: TMessageButtons read FButtons write SetButtons default [];
- property ShowSeparator: boolean read GetShowSeparator write SetShowSeparator;
property ModalResult: TMessageButton write SetModalResult;
property DefaultButton: TMessageButton write SetDefaultButton;
property Caption;
@@ -275,7 +270,7 @@ begin
Result := not TCustomGTKForm(user_data).Close;
end;
-procedure TCustomGTKForm_show(anobject : PGtkObject; user_data: pgpointer); cdecl;
+procedure TCustomGTKForm_show(widget: PGtkWidget; user_data: gpointer); cdecl;
begin
if Assigned(TCustomGTKForm(user_data).FOnShow) then TCustomGTKForm(user_data).FOnShow(TCustomGTKForm(user_data));
end;
@@ -288,7 +283,6 @@ end;
constructor TCustomGTKForm.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- Tooltips := TGTKTooltips.Create(Self);
FOnClose := nil;
FOnCloseQuery := nil;
FOnDestroy := nil;
@@ -304,7 +298,6 @@ begin
if Assigned(FOnDestroy) then FOnDestroy(Self);
except
end;
- Tooltips.Free;
if not Application.Terminated then gtk_widget_destroy(FWidget);
inherited Destroy;
end;
@@ -409,7 +402,7 @@ end;
procedure TCustomGTKForm.SetWindowTypeHint(Value: TGDKWindowTypeHint);
begin
- gtk_window_set_type_hint(PGtkWindow(FWidget), gdk2.TGdkWindowTypeHint(Value));
+ gtk_window_set_type_hint(PGtkWindow(FWidget), lazgdk3.TGdkWindowTypeHint(Value));
end;
function TCustomGTKForm.GetWindowState: TGDKWindowState;
@@ -689,9 +682,8 @@ end;
function TGTKApplication_MessageBox_key_press_event(widget: PGtkWidget; event: PGdkEventKey; user_data : gpointer): gboolean; cdecl;
begin
Result := False;
- if event^.keyval = GDK_ESCAPE then begin
- gtk_dialog_response(PGtkDialog(widget), integer(user_data));
-// Beep;
+ if event^.keyval = GDK_KEY_Escape then begin
+ gtk_dialog_response(PGtkDialog(widget), TGtkResponseType(guint(user_data)));
Result := True;
end;
end;
@@ -717,14 +709,14 @@ begin
Result := Escape;
Exit;
end;
- Dialog := gtk_message_dialog_new(ParentWindow, GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT, TMessageStyleID[Integer(Style)],
- GTK_BUTTONS_NONE, '%s', PChar(Text));
+ Dialog := gtk_message_dialog_new(ParentWindow, [GTK_DIALOG_MODAL, GTK_DIALOG_DESTROY_WITH_PARENT], TMessageStyleID[Integer(Style)],
+ GTK_BUTTONS_NONE, '%s', [PChar(Text)]);
for i := 1 to NumMessageButtons do
if TMessageButton(i - 1) in Buttons
- then gtk_dialog_add_button(PGtkDialog(Dialog), MessageButtonID[i], i);
+ then gtk_dialog_add_button(PGtkDialog(Dialog), MessageButtonID[i], TGtkResponseType(i));
if Escape <> mbNone then g_signal_connect_data(PGObject(Dialog), 'key-press-event', TGCallback(@TGTKApplication_MessageBox_key_press_event),
Pointer(Ord(Escape) + 1{MessageButtonID[Ord(Escape)]}), nil, G_CONNECT_DEFAULT);
- if Default <> mbNone then gtk_dialog_set_default_response(PGtkDialog(Dialog), Ord(Default));
+ if Default <> mbNone then gtk_dialog_set_default_response(PGtkDialog(Dialog), TGtkResponseType(Ord(Default)));
Result := TMessageButton(gtk_dialog_run(PGtkDialog(Dialog)) - 1);
gtk_widget_destroy(Dialog);
end;
@@ -795,8 +787,8 @@ begin
g_signal_connect_data(PGObject(FWidget), 'delete-event', TGCallback(@TCustomGTKForm_delete_event), Self, nil, G_CONNECT_DEFAULT);
g_signal_connect_data(PGObject(FWidget), 'show', TGCallback(@TCustomGTKForm_show), Self, nil, G_CONNECT_DEFAULT);
g_signal_connect_data(PGObject(FWidget), 'response', TGCallback(@TGTKDialog_response_event), Self, nil, G_CONNECT_DEFAULT);
- ClientArea := TGTKVBox.CreateLinked(Self, PGtkDialog(FWidget)^.vbox);
- ActionArea := TGTKHBox.CreateLinked(Self, PGtkDialog(FWidget)^.action_area);
+ ClientArea := TGTKVBox.CreateLinked(Self, gtk_dialog_get_content_area(PGtkDialog(FWidget)));
+ ActionArea := TGTKHBox.CreateLinked(Self, gtk_dialog_get_action_area(PGtkDialog(FWidget)));
FButtons := [];
Visible := False;
SetResizeable(True);
@@ -815,37 +807,27 @@ var i: integer;
begin
for i := 1 to NumMessageButtons do
if TMessageButton(i - 1) in Value
- then gtk_dialog_add_button(PGtkDialog(FWidget), MessageButtonID[i], i - 1);
-end;
-
-function TGTKDialog.GetShowSeparator: boolean;
-begin
- Result := gtk_dialog_get_has_separator(PGtkDialog(FWidget));
-end;
-
-procedure TGTKDialog.SetShowSeparator(Value: boolean);
-begin
- gtk_dialog_set_has_separator(PGtkDialog(FWidget), Value);
+ then gtk_dialog_add_button(PGtkDialog(FWidget), MessageButtonID[i], TGtkResponseType(i - 1));
end;
procedure TGTKDialog.SetModalResult(Value: TMessageButton);
begin
- gtk_dialog_response(PGtkDialog(FWidget), Integer(Value));
+ gtk_dialog_response(PGtkDialog(FWidget), TGtkResponseType(Integer(Value)));
end;
procedure TGTKDialog.SetDefaultButton(Value: TMessageButton);
begin
- gtk_dialog_set_default_response(PGtkDialog(FWidget), Integer(Value));
+ gtk_dialog_set_default_response(PGtkDialog(FWidget), TGtkResponseType(Integer(Value)));
end;
procedure TGTKDialog.AddButton(ButtonCaption: string; ButtonID: integer);
begin
- gtk_dialog_add_button(PGtkDialog(FWidget), PChar(ButtonCaption), ButtonID);
+ gtk_dialog_add_button(PGtkDialog(FWidget), PChar(ButtonCaption), TGtkResponseType(ButtonID));
end;
procedure TGTKDialog.SetResponseSensitive(ButtonID: integer; Sensitive: boolean);
begin
- gtk_dialog_set_response_sensitive(PGtkDialog(FWidget), ButtonID, Sensitive);
+ gtk_dialog_set_response_sensitive(PGtkDialog(FWidget), TGtkResponseType(ButtonID), Sensitive);
end;
procedure TGTKDialog.SetParentForm(Value: TCustomGTKForm);