GTK3: Migrate TGtkResponseType to enumeration.

In Gtk3 WS code, integers were used instead of enumeration values.
This leads to compilation error now that `TGtkResponseType` is defined
as an enumeration type. This commit fixes those errors.
This commit is contained in:
Abou Al Montacir 2023-05-29 21:08:15 +02:00
parent 20e59969e6
commit 54979c4ae2
4 changed files with 62 additions and 60 deletions

View File

@ -322,6 +322,21 @@ type
GTK_DEST_DEFAULT_ALL = 7,
TGtkDestDefaultsMaxValue = $7FFFFFFF
);
TGtkResponseType = (
TGtkResponseTypeMinValue = -$7FFFFFFF,
GTK_RESPONSE_HELP = -11,
GTK_RESPONSE_APPLY = -10,
GTK_RESPONSE_NO = -9,
GTK_RESPONSE_YES = -8,
GTK_RESPONSE_CLOSE = -7,
GTK_RESPONSE_CANCEL = -6,
GTK_RESPONSE_OK = -5,
GTK_RESPONSE_DELETE_EVENT = -4,
GTK_RESPONSE_ACCEPT = -3,
GTK_RESPONSE_REJECT = -2,
GTK_RESPONSE_NONE = -1,
TGtkResponseTypeMaxValue = $7FFFFFFF
);
TGtkJustification = (
TGtkJustificationMinValue = -$7FFFFFFF,
GTK_JUSTIFY_LEFT = 0,
@ -1185,25 +1200,6 @@ const
GTK_RECENT_MANAGER_ERROR_WRITE: TGtkRecentManagerError = 5;
GTK_RECENT_MANAGER_ERROR_UNKNOWN: TGtkRecentManagerError = 6;
//type ???
// TGtkResponseType = integer;
//PPGtkResponseType = ^PGtkResponseType;
//PGtkResponseType = ^TGtkResponseType;
const
{ GtkResponseType }
GTK_RESPONSE_NONE = -1;
GTK_RESPONSE_REJECT = -2;
GTK_RESPONSE_ACCEPT = -3;
GTK_RESPONSE_DELETE_EVENT = -4;
GTK_RESPONSE_OK = -5;
GTK_RESPONSE_CANCEL = -6;
GTK_RESPONSE_CLOSE = -7;
GTK_RESPONSE_YES = -8;
GTK_RESPONSE_NO = -9;
GTK_RESPONSE_APPLY = -10;
GTK_RESPONSE_HELP = -11;
type
TGtkScrollStep = Integer;
const
@ -1958,7 +1954,7 @@ type
function new: PGtkDialog; cdecl; inline; static;
//function new_with_buttons(title: Pgchar; parent: PGtkWindow; flags: TGtkDialogFlags; first_button_text: Pgchar; args: array of const): PGtkDialog; cdecl; inline; static;
procedure add_action_widget(child: PGtkWidget; response_id: gint); cdecl; inline;
function add_button(button_text: Pgchar; response_id: gint): PGtkWidget; cdecl; inline;
function add_button(button_text: Pgchar; response_id: TGtkResponseType): PGtkWidget; cdecl; inline;
//procedure add_buttons(first_button_text: Pgchar; args: array of const); cdecl; inline;
function get_action_area: PGtkWidget; cdecl; inline;
function get_content_area: PGtkWidget; cdecl; inline;
@ -1968,7 +1964,7 @@ type
function run: gint; cdecl; inline;
//procedure set_alternative_button_order(first_response_id: gint; args: array of const); cdecl; inline;
procedure set_alternative_button_order_from_array(n_params: gint; new_order: Pgint); cdecl; inline;
procedure set_default_response(response_id: gint); cdecl; inline;
procedure set_default_response(response_id: TGtkResponseType); cdecl; inline;
procedure set_response_sensitive(response_id: gint; setting: gboolean); cdecl; inline;
end;
@ -11614,7 +11610,7 @@ function gtk_css_section_get_start_line(section: PGtkCssSection): guint; cdecl;
function gtk_css_section_get_start_position(section: PGtkCssSection): guint; cdecl; external;
function gtk_css_section_get_type: TGType; cdecl; external;
function gtk_css_section_ref(section: PGtkCssSection): PGtkCssSection; cdecl; external;
function gtk_dialog_add_button(dialog: PGtkDialog; button_text: Pgchar; response_id: gint): PGtkWidget; cdecl; external;
function gtk_dialog_add_button(dialog: PGtkDialog; button_text: Pgchar; response_id: TGtkResponseType): PGtkWidget; cdecl; external;
function gtk_dialog_get_action_area(dialog: PGtkDialog): PGtkWidget; cdecl; external;
function gtk_dialog_get_content_area(dialog: PGtkDialog): PGtkWidget; cdecl; external;
function gtk_dialog_get_response_for_widget(dialog: PGtkDialog; widget: PGtkWidget): gint; cdecl; external;
@ -13515,7 +13511,7 @@ procedure gtk_dialog_add_buttons(dialog: PGtkDialog; first_button_text: Pgchar;
procedure gtk_dialog_response(dialog: PGtkDialog; response_id: gint); cdecl; external;
procedure gtk_dialog_set_alternative_button_order(dialog: PGtkDialog; first_response_id: gint; args: array of const); cdecl; external;
procedure gtk_dialog_set_alternative_button_order_from_array(dialog: PGtkDialog; n_params: gint; new_order: Pgint); cdecl; external;
procedure gtk_dialog_set_default_response(dialog: PGtkDialog; response_id: gint); cdecl; external;
procedure gtk_dialog_set_default_response(dialog: PGtkDialog; response_id: TGtkResponseType); cdecl; external;
procedure gtk_dialog_set_response_sensitive(dialog: PGtkDialog; response_id: gint; setting: gboolean); cdecl; external;
procedure gtk_disable_setlocale; cdecl; external;
procedure gtk_drag_dest_add_image_targets(widget: PGtkWidget); cdecl; external;
@ -16619,7 +16615,7 @@ begin
LazGtk3.gtk_dialog_add_action_widget(@self, child, response_id);
end;
function TGtkDialog.add_button(button_text: Pgchar; response_id: gint): PGtkWidget; cdecl;
function TGtkDialog.add_button(button_text: Pgchar; response_id: TGtkResponseType): PGtkWidget; cdecl;
begin
Result := LazGtk3.gtk_dialog_add_button(@self, button_text, response_id);
end;
@ -16659,7 +16655,7 @@ begin
LazGtk3.gtk_dialog_set_alternative_button_order_from_array(@self, n_params, new_order);
end;
procedure TGtkDialog.set_default_response(response_id: gint); cdecl;
procedure TGtkDialog.set_default_response(response_id: TGtkResponseType); cdecl;
begin
LazGtk3.gtk_dialog_set_default_response(@self, response_id);
end;

View File

@ -50,13 +50,14 @@ type
function btn_ptr_info(ndx:integer):longint;
procedure set_message_text(const msg:string;const is_pango_markup:boolean=false);
procedure update_widget_list(const func:TBtnListFunction);
procedure CreateButton(const ALabel : String; const AResponse: Integer;
procedure CreateButton(const ALabel : String; const AResponse: Integer);
procedure CreateButton(const ALabel : String; const AResponse: TGtkResponseType;
const AImageHint: Integer = -1);
function lcl_result:integer;
function btn_result:integer;
class function ResponseID(const AnID: Integer): Integer;
class function gtk_resp_to_lcl(const gtk_resp:integer):integer;
class function gtk_resp_to_btn(const gtk_resp:integer):integer;
class function ResponseID(const AnID: Integer): TGtkResponseType;
class function gtk_resp_to_lcl(const gtk_resp:TGtkResponseType):integer;
class function gtk_resp_to_btn(const gtk_resp:TGtkResponseType):integer;
class function MessageType(ADialogType:longint):TGtkMessageType;
end;
@ -65,11 +66,11 @@ implementation
// fake GTK button responses
const
GTK_RESPONSE_LCL_ALL = -10;
GTK_RESPONSE_LCL_YESTOALL = -3; // GTK_RESPONSE_ACCEPT;
GTK_RESPONSE_LCL_RETRY = -12;
GTK_RESPONSE_LCL_IGNORE = -13;
GTK_RESPONSE_LCL_NOTOALL = -14;
GTK_RESPONSE_LCL_ALL = TGtkResponseType(-15);
GTK_RESPONSE_LCL_YESTOALL = GTK_RESPONSE_ACCEPT;
GTK_RESPONSE_LCL_RETRY = TGtkResponseType(-12);
GTK_RESPONSE_LCL_IGNORE = TGtkResponseType(-13);
GTK_RESPONSE_LCL_NOTOALL = TGtkResponseType(-14);
{ callbacks }
@ -102,7 +103,7 @@ begin
end;
class function TGtk3DialogFactory.ResponseID(const AnID: Integer): Integer;
class function TGtk3DialogFactory.ResponseID(const AnID: Integer): TGtkResponseType;
begin
case AnID of
idButtonOK : Result := GTK_RESPONSE_OK;
@ -118,11 +119,11 @@ begin
idButtonNoToAll : Result := GTK_RESPONSE_LCL_NOTOALL;
idButtonYesToAll : Result := GTK_RESPONSE_LCL_YESTOALL;
else
Result:=AnID;
Result:=TGtkResponseType(AnID);
end;
end;
class function TGtk3DialogFactory.gtk_resp_to_lcl(const gtk_resp:integer):integer;
class function TGtk3DialogFactory.gtk_resp_to_lcl(const gtk_resp:TGtkResponseType):integer;
begin
case gtk_resp of
GTK_RESPONSE_OK: Result:=ID_OK;
@ -141,22 +142,22 @@ begin
GTK_RESPONSE_LCL_NOTOALL: Result:=idButtonNoToAll;
//GTK_RESPONSE_LCL_YESTOALL: Result:= idButtonYesToAll;
else
Result:=gtk_resp;
Result:=Integer(gtk_resp);
end;
end;
class function TGtk3DialogFactory.gtk_resp_to_btn(const gtk_resp:integer):integer;
class function TGtk3DialogFactory.gtk_resp_to_btn(const gtk_resp:TGtkResponseType):integer;
begin
case gtk_resp of
-5{GTK_RESPONSE_OK}: Result:= idButtonOk;
-6{GTK_RESPONSE_CANCEL}: Result := idButtonCancel;
-7{GTK_RESPONSE_CLOSE}: Result:=idButtonClose;
-8{GTK_RESPONSE_YES}: Result:=idButtonYes;
-9{GTK_RESPONSE_NO}: Result:=idButtonNo;
GTK_RESPONSE_OK {-5} : Result:= idButtonOk;
GTK_RESPONSE_CANCEL {-6} : Result := idButtonCancel;
GTK_RESPONSE_CLOSE {-7} : Result:=idButtonClose;
GTK_RESPONSE_YES {-8} : Result:=idButtonYes;
GTK_RESPONSE_NO {-9} : Result:=idButtonNo;
-1{GTK_RESPONSE_NONE}: Result:=0;
-2{GTK_RESPONSE_REJECT}: Result:=idButtonAbort;
-3{GTK_RESPONSE_ACCEPT}: Result:=idButtonYesToAll;
GTK_RESPONSE_NONE {-1} : Result:=0;
GTK_RESPONSE_REJECT {-2} : Result:=idButtonAbort;
GTK_RESPONSE_ACCEPT {-3} : Result:=idButtonYesToAll;
GTK_RESPONSE_LCL_RETRY: Result:=idButtonRetry;
GTK_RESPONSE_LCL_IGNORE: Result:=idButtonIgnore;
@ -164,13 +165,18 @@ begin
GTK_RESPONSE_LCL_NOTOALL: Result:=idButtonNoToAll;
//GTK_RESPONSE_LCL_YESTOALL: Result:= idButtonYesToAll;
else
Result:=gtk_resp;
Result:=Integer(gtk_resp);
end;
end;
procedure TGtk3DialogFactory.CreateButton(const ALabel : String; const AResponse: Integer);
begin
CreateButton(ALabel, TGtkResponseType(AResponse));
end;
procedure TGtk3DialogFactory.CreateButton(
const ALabel : String;
const AResponse: Integer;
const AResponse: TGtkResponseType;
const AImageHint: Integer = -1);
var
NewButton: PGtkWidget;
@ -217,12 +223,12 @@ end;
function TGtk3DialogFactory.lcl_result: integer;
begin
Result:=gtk_resp_to_lcl(DialogResult);
Result:=gtk_resp_to_lcl(TGtkResponseType(DialogResult));
end;
function TGtk3DialogFactory.btn_result: integer;
begin
Result:=gtk_resp_to_btn(DialogResult);
Result:=gtk_resp_to_btn(TGtkResponseType(DialogResult));
end;
class function TGtk3DialogFactory.MessageType(ADialogType:longint):TGtkMessageType;
@ -306,7 +312,7 @@ begin
idButtonYesToAll : CreateButton(dbtn.Caption, GTK_RESPONSE_LCL_YESTOALL, BtnID);
end;
end else
CreateButton(dbtn.Caption, dbtn.ModalResult, 0);
CreateButton(dbtn.Caption, TGtkResponseType(dbtn.ModalResult), 0);
end;
end;

View File

@ -828,7 +828,7 @@ type
class function ResponseCB(response_id:gint; dlg: TGtk3Dialog): GBoolean; cdecl;
class function RealizeCB(dlg:TGtk3Dialog): GBoolean; cdecl;
protected
function response_handler(response_id:gint):boolean;virtual;
function response_handler(response_id:TGtkResponseType):boolean;virtual;
function close_handler():boolean;virtual;
procedure SetCallbacks;virtual;
function CreateWidget(const {%H-}Params: TCreateParams):PGtkWidget; override;
@ -852,7 +852,7 @@ type
TGtk3FontSelectionDialog = class(TGtk3Dialog)
protected
function response_handler(resp_id:gint):boolean; override;
function response_handler(resp_id:TGtkResponseType):boolean; override;
public
procedure InitializeWidget; override;
constructor Create(const ACommonDialog: TCommonDialog); virtual; overload;
@ -870,7 +870,7 @@ type
TGtk3newColorSelectionDialog = class(TGtk3Dialog)
protected
function response_handler(resp_id:gint):boolean;override;
function response_handler(resp_id:TGtkResponseType):boolean;override;
public
constructor Create(const ACommonDialog: TCommonDialog); virtual; overload;
procedure InitializeWidget;override;
@ -7955,12 +7955,12 @@ end;
class function TGtk3Dialog.ResponseCB(response_id:gint; dlg: TGtk3Dialog): GBoolean; cdecl;
begin
if Assigned(dlg) then
Result:=dlg.response_handler(response_id)
Result:=dlg.response_handler(TGtkResponseType(response_id))
else
Result:= false;
end;
function TGtk3Dialog.response_handler(response_id:gint):boolean;
function TGtk3Dialog.response_handler(response_id:TGtkResponseType):boolean;
begin
(* case response_id of
GTK_RESPONSE_NONE:;
@ -8133,7 +8133,7 @@ begin
inherited InitializeWidget;
end;
function TGtk3FontSelectionDialog.response_handler(resp_id: gint): boolean;
function TGtk3FontSelectionDialog.response_handler(resp_id: TGtkResponseType): boolean;
var
fnt:TFont;
pch:PgtkFontChooser;
@ -8244,7 +8244,7 @@ begin
inherited;
end;
function TGtk3newColorSelectionDialog.response_handler(resp_id: gint): boolean;
function TGtk3newColorSelectionDialog.response_handler(resp_id: TGtkResponseType): boolean;
var
clr:TColor;
rgba:TGdkRGBA;

View File

@ -418,7 +418,7 @@ begin
end;
end;
procedure Gtk2FileChooserResponseCB(widget: PGtkFileChooser; arg1: gint;
procedure Gtk2FileChooserResponseCB(widget: PGtkFileChooser; arg1: TGtkResponseType;
data: gpointer); cdecl;
procedure AddFile(List: TStrings; const NewFile: string);