From b9703b29819b619037cc282d719c187e51bacd30 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Mon, 23 Dec 2024 23:59:45 +0100 Subject: Port to g-i generated glib2 bindings Includes switch to FPC -Mobjfpc and related pointer style fixes. --- libgtk_kylix/GTKExtCtrls.pas | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'libgtk_kylix/GTKExtCtrls.pas') diff --git a/libgtk_kylix/GTKExtCtrls.pas b/libgtk_kylix/GTKExtCtrls.pas index 8ae5abc..777f8ed 100644 --- a/libgtk_kylix/GTKExtCtrls.pas +++ b/libgtk_kylix/GTKExtCtrls.pas @@ -24,9 +24,7 @@ unit GTKExtCtrls; interface -uses gtk2, gdk2, glib2, Classes, GTKControls, GTKConsts, GTKStdCtrls, GTKUtils, GTKMenus; - // Quick jump: QForms QControls QStdCtrls QExtCtrls - +uses gtk2, lazglib2, lazgobject2, Classes, GTKControls, GTKStdCtrls, GTKMenus; type @@ -326,12 +324,12 @@ end; function TGTKProgressBar.GetText: string; begin - Result := PgcharToString(gtk_progress_bar_get_text(PGtkProgressBar(FWidget))); + Result := String(gtk_progress_bar_get_text(PGtkProgressBar(FWidget))); end; procedure TGTKProgressBar.SetText(Value: string); begin - gtk_progress_bar_set_text(PGtkProgressbar(FWidget), StringToPgchar(Value)); + gtk_progress_bar_set_text(PGtkProgressbar(FWidget), PChar(Value)); end; function TGTKProgressBar.GetFraction: Double; @@ -398,7 +396,7 @@ end; procedure TGTKPaned.SetChild1(Value: TGTKControl); begin gtk_paned_pack1(PGtkPaned(FWidget), Value.FWidget, True, False); - g_signal_connect(PGtkObject(Value.FWidget), 'size-allocate', G_CALLBACK(@TGTKPaned_resize), Self); + g_signal_connect_data(PGObject(Value.FWidget), 'size-allocate', TGCallback(@TGTKPaned_resize), Self, nil, G_CONNECT_DEFAULT); end; procedure TGTKPaned.SetChild2(Value: TGTKControl); @@ -439,7 +437,7 @@ end; procedure TGTKNotebook_switch_page(notebook: PGtkNotebook; page: PGtkNotebookPage; page_num: guint; user_data: gpointer); cdecl; begin - if Assigned(user_data) and Assigned(TGTKNotebook(user_data).FOnSwitchPage) then TGTKNotebook(user_data).FOnSwitchPage(user_data); + if Assigned(user_data) and Assigned(TGTKNotebook(user_data).FOnSwitchPage) then TGTKNotebook(user_data).FOnSwitchPage(TObject(user_data)); end; constructor TGTKNotebook.Create(AOwner: TComponent); @@ -447,7 +445,7 @@ begin inherited Create(AOwner); FWidget := gtk_notebook_new; FOnSwitchPage := nil; - g_signal_connect_after(PGtkObject(FWidget), 'switch-page', G_CALLBACK(@TGTKNotebook_switch_page), Self); + g_signal_connect_data(PGObject(FWidget), 'switch-page', TGCallback(@TGTKNotebook_switch_page), Self, nil, [G_CONNECT_AFTER]); Show; end; @@ -461,17 +459,17 @@ function _gtk_notebook_append_page(notebook:PGtkNotebook; child:PGtkWidget; tab_ function TGTKNotebook.AppendPage(Child: TGTKControl; Caption: string): integer; begin Result := _gtk_notebook_append_page(PGtkNotebook(FWidget), Child.FWidget, nil); - gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), Child.FWidget, StringToPgchar(Caption)); + gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), Child.FWidget, PChar(Caption)); end; function TGTKNotebook.GetCaption(PageNo: integer): string; begin - Result := PgcharToString(gtk_notebook_get_tab_label_text(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo))); + Result := String(gtk_notebook_get_tab_label_text(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo))); end; procedure TGTKNotebook.SetCaption(PageNo: integer; Caption: string); begin - gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), StringToPgchar(Caption)); + gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), PChar(Caption)); end; procedure TGTKNotebook.RemovePage(PageNo: integer); @@ -584,11 +582,11 @@ begin inherited Create(AOwner); FOnChanged := nil; FWidget := gtk_option_menu_new; - g_signal_connect(PGtkObject(FWidget), 'changed', G_CALLBACK(@TGTKOptionMenu_changed), Self); + g_signal_connect_data(PGObject(FWidget), 'changed', TGCallback(@TGTKOptionMenu_changed), Self, nil, G_CONNECT_DEFAULT); Show; FItems := TGTKMenuItem.Create(Self); FItems.FParentMenu := Self; - FItems.Notify := ItemsChanged; + FItems.Notify := @ItemsChanged; end; destructor TGTKOptionMenu.Destroy; -- cgit v1.2.3