Recent

Author Topic: GTK3 is ready?  (Read 9253 times)

Jurassic Pork

  • Hero Member
  • *****
  • Posts: 1228
Re: GTK3 is ready?
« Reply #15 on: December 07, 2022, 11:52:28 am »
Hello,
so have a look to this thread
Friendly, J.P
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

3oheicrw

  • Guest
Re: GTK3 is ready?
« Reply #16 on: December 11, 2022, 08:27:43 am »
Frankly speaking, I hope the there is a MSEGUI widgetset and both FPGUI widgetset and MSEGUI widgetset production ready. There is a FPGUI widgetset available but seems abandoned.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4459
  • I like bugs.
Re: GTK3 is ready?
« Reply #17 on: December 11, 2022, 11:43:00 am »
There is no real progress. just a few details here and then.
That's not the kind of progress it really needs.
Even the existing code should be revised from scratch imho.
But that's not easy. Understanding GTK3 / Pango / Cairo is not easy and a deep understanding of the LCL is also necessary.
I think only a talent like Zeljko can do that.  :D
Anton Kavalenka has improved it a lot but he didn't want to become its maintainer either. He has other activities.
I believe any Pascal programmer could learn it after putting in enough time and energy. Yes, the learning curve is steep. The LCL-GTK3 class structure must be understood and then the GTK3 / Pango / Cairo libs as you mentioned.
For example I don't know those things well. I don't plan to learn them well either but I could imagine somebody a little younger maybe could jump in.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Bogen85

  • Hero Member
  • *****
  • Posts: 595
Re: GTK3 is ready?
« Reply #18 on: December 11, 2022, 02:28:51 pm »
There is also this:

Index of deprecated symbols
https://www.manpagez.com/html/gtk3/gtk3-3.22.0/api-index-deprecated.php

Doing a quick scan, it seems like Lazarus is using those deprecated symbols?

I just checked some of the symbols that started with A, did not check B-W, and I'm finding them in the Lazarus source code.

Code: Pascal  [Select][+][-]
  1. [gtk_accessible_connect_widget_destroyed]
  2. [gtk_action_activate]
  3. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13193:procedure gtk_action_activate(action: PGtkAction); cdecl; external;
  4. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17283:  LazGtk3.gtk_action_activate(@self);
  5. [gtk_action_block_activate]
  6. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13194:procedure gtk_action_block_activate(action: PGtkAction); cdecl; external;
  7. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17288:  LazGtk3.gtk_action_block_activate(@self);
  8. [gtk_action_connect_accelerator]
  9. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13195:procedure gtk_action_connect_accelerator(action: PGtkAction); cdecl; external;
  10. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17293:  LazGtk3.gtk_action_connect_accelerator(@self);
  11. [gtk_action_create_icon]
  12. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11251:function gtk_action_create_icon(action: PGtkAction; icon_size: gint): PGtkWidget; cdecl; external;
  13. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17298:  Result := LazGtk3.gtk_action_create_icon(@self, icon_size);
  14. [gtk_action_create_menu]
  15. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11252:function gtk_action_create_menu(action: PGtkAction): PGtkWidget; cdecl; external;
  16. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11253:function gtk_action_create_menu_item(action: PGtkAction): PGtkWidget; cdecl; external;
  17. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17303:  Result := LazGtk3.gtk_action_create_menu(@self);
  18. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17308:  Result := LazGtk3.gtk_action_create_menu_item(@self);
  19. [gtk_action_create_menu_item]
  20. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11253:function gtk_action_create_menu_item(action: PGtkAction): PGtkWidget; cdecl; external;
  21. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17308:  Result := LazGtk3.gtk_action_create_menu_item(@self);
  22. [gtk_action_create_tool_item]                                                                                                                                         share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11254:function gtk_action_create_tool_item(action: PGtkAction): PGtkWidget; cdecl; external;
  23. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17313:  Result := LazGtk3.gtk_action_create_tool_item(@self);
  24. [gtk_action_disconnect_accelerator]
  25. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13196:procedure gtk_action_disconnect_accelerator(action: PGtkAction); cdecl; external;
  26. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17318:  LazGtk3.gtk_action_disconnect_accelerator(@self);
  27. [gtk_action_get_accel_closure]
  28. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11255:function gtk_action_get_accel_closure(action: PGtkAction): PGClosure; cdecl; external;
  29. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17323:  Result := LazGtk3.gtk_action_get_accel_closure(@self);
  30. [gtk_action_get_accel_path]
  31. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11256:function gtk_action_get_accel_path(action: PGtkAction): Pgchar; cdecl; external;
  32. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17328:  Result := LazGtk3.gtk_action_get_accel_path(@self);
  33. [gtk_action_get_always_show_image]
  34. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11257:function gtk_action_get_always_show_image(action: PGtkAction): gboolean; cdecl; external;
  35. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17333:  Result := LazGtk3.gtk_action_get_always_show_image(@self);
  36. [gtk_action_get_gicon]
  37. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11258:function gtk_action_get_gicon(action: PGtkAction): PGIcon; cdecl; external;
  38. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17338:  Result := LazGtk3.gtk_action_get_gicon(@self);
  39. [gtk_action_get_icon_name]
  40. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11259:function gtk_action_get_icon_name(action: PGtkAction): Pgchar; cdecl; external;
  41. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17343:  Result := LazGtk3.gtk_action_get_icon_name(@self);
  42. [gtk_action_get_is_important]
  43. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11260:function gtk_action_get_is_important(action: PGtkAction): gboolean; cdecl; external;
  44. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17348:  Result := LazGtk3.gtk_action_get_is_important(@self);
  45. [gtk_action_get_label]
  46. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11261:function gtk_action_get_label(action: PGtkAction): Pgchar; cdecl; external;
  47. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17353:  Result := LazGtk3.gtk_action_get_label(@self);
  48. [gtk_action_get_name]
  49. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11262:function gtk_action_get_name(action: PGtkAction): Pgchar; cdecl; external;
  50. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17358:  Result := LazGtk3.gtk_action_get_name(@self);
  51. [gtk_action_get_proxies]
  52. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11263:function gtk_action_get_proxies(action: PGtkAction): PGSList; cdecl; external;
  53. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17363:  Result := LazGtk3.gtk_action_get_proxies(@self);
  54. [gtk_action_get_sensitive]
  55. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11264:function gtk_action_get_sensitive(action: PGtkAction): gboolean; cdecl; external;
  56. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17368:  Result := LazGtk3.gtk_action_get_sensitive(@self);
  57. [gtk_action_get_short_label]
  58. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11265:function gtk_action_get_short_label(action: PGtkAction): Pgchar; cdecl; external;
  59. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17373:  Result := LazGtk3.gtk_action_get_short_label(@self);
  60. [gtk_action_get_stock_id]
  61. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11266:function gtk_action_get_stock_id(action: PGtkAction): Pgchar; cdecl; external;
  62. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17378:  Result := LazGtk3.gtk_action_get_stock_id(@self);
  63. [gtk_action_get_tooltip]
  64. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11267:function gtk_action_get_tooltip(action: PGtkAction): Pgchar; cdecl; external;
  65. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17383:  Result := LazGtk3.gtk_action_get_tooltip(@self);
  66. [gtk_action_get_visible]
  67. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11269:function gtk_action_get_visible(action: PGtkAction): gboolean; cdecl; external;
  68. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11270:function gtk_action_get_visible_horizontal(action: PGtkAction): gboolean; cdecl; external;
  69. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11271:function gtk_action_get_visible_vertical(action: PGtkAction): gboolean; cdecl; external;
  70. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17388:  Result := LazGtk3.gtk_action_get_visible(@self);
  71. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17393:  Result := LazGtk3.gtk_action_get_visible_horizontal(@self);
  72. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17398:  Result := LazGtk3.gtk_action_get_visible_vertical(@self);
  73. [gtk_action_get_visible_horizontal]
  74. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11270:function gtk_action_get_visible_horizontal(action: PGtkAction): gboolean; cdecl; external;
  75. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17393:  Result := LazGtk3.gtk_action_get_visible_horizontal(@self);
  76. [gtk_action_get_visible_vertical]
  77. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11271:function gtk_action_get_visible_vertical(action: PGtkAction): gboolean; cdecl; external;
  78. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17398:  Result := LazGtk3.gtk_action_get_visible_vertical(@self);
  79. [gtk_action_group_add_action]
  80. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13197:procedure gtk_action_group_add_action(action_group: PGtkActionGroup; action: PGtkAction); cdecl; external;
  81. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13198:procedure gtk_action_group_add_action_with_accel(action_group: PGtkActionGroup; action: PGtkAction; accelerator: Pgchar); cdecl; external;
  82. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13199:procedure gtk_action_group_add_actions(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer); cdecl; external;
  83. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13200:procedure gtk_action_group_add_actions_full(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  84. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17493:  LazGtk3.gtk_action_group_add_action(@self, action);
  85. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17498:  LazGtk3.gtk_action_group_add_action_with_accel(@self, action, accelerator);
  86. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17503:  LazGtk3.gtk_action_group_add_actions(@self, entries, n_entries, user_data);
  87. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17508:  LazGtk3.gtk_action_group_add_actions_full(@self, entries, n_entries, user_data, destroy_);
  88. [gtk_action_group_add_actions]
  89. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13199:procedure gtk_action_group_add_actions(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer); cdecl; external;
  90. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13200:procedure gtk_action_group_add_actions_full(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  91. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17503:  LazGtk3.gtk_action_group_add_actions(@self, entries, n_entries, user_data);
  92. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17508:  LazGtk3.gtk_action_group_add_actions_full(@self, entries, n_entries, user_data, destroy_);
  93. [gtk_action_group_add_actions_full]
  94. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13200:procedure gtk_action_group_add_actions_full(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  95. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17508:  LazGtk3.gtk_action_group_add_actions_full(@self, entries, n_entries, user_data, destroy_);
  96. [gtk_action_group_add_action_with_accel]
  97. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13198:procedure gtk_action_group_add_action_with_accel(action_group: PGtkActionGroup; action: PGtkAction; accelerator: Pgchar); cdecl; external;
  98. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17498:  LazGtk3.gtk_action_group_add_action_with_accel(@self, action, accelerator);
  99. [gtk_action_group_add_radio_actions]
  100. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13201:procedure gtk_action_group_add_radio_actions(action_group: PGtkActionGroup; entries: PGtkRadioActionEntry; n_entries: guint; value: gint; on_change: TGCallback; user_data: gpointer); cdecl; external;
  101. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13202:procedure gtk_action_group_add_radio_actions_full(action_group: PGtkActionGroup; entries: PGtkRadioActionEntry; n_entries: guint; value: gint; on_change: TGCallback; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  102. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17513:  LazGtk3.gtk_action_group_add_radio_actions(@self, entries, n_entries, value, on_change, user_data);
  103. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17518:  LazGtk3.gtk_action_group_add_radio_actions_full(@self, entries, n_entries, value, on_change, user_data, destroy_);
  104. [gtk_action_group_add_radio_actions_full]
  105. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13202:procedure gtk_action_group_add_radio_actions_full(action_group: PGtkActionGroup; entries: PGtkRadioActionEntry; n_entries: guint; value: gint; on_change: TGCallback; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  106. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17518:  LazGtk3.gtk_action_group_add_radio_actions_full(@self, entries, n_entries, value, on_change, user_data, destroy_);
  107. [gtk_action_group_add_toggle_actions]
  108. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13203:procedure gtk_action_group_add_toggle_actions(action_group: PGtkActionGroup; entries: PGtkToggleActionEntry; n_entries: guint; user_data: gpointer); cdecl; external;
  109. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13204:procedure gtk_action_group_add_toggle_actions_full(action_group: PGtkActionGroup; entries: PGtkToggleActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  110. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17523:  LazGtk3.gtk_action_group_add_toggle_actions(@self, entries, n_entries, user_data);
  111. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17528:  LazGtk3.gtk_action_group_add_toggle_actions_full(@self, entries, n_entries, user_data, destroy_);
  112. [gtk_action_group_add_toggle_actions_full]
  113. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13204:procedure gtk_action_group_add_toggle_actions_full(action_group: PGtkActionGroup; entries: PGtkToggleActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  114. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17528:  LazGtk3.gtk_action_group_add_toggle_actions_full(@self, entries, n_entries, user_data, destroy_);
  115. [gtk_action_group_get_accel_group]
  116. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11272:function gtk_action_group_get_accel_group(action_group: PGtkActionGroup): PGtkAccelGroup; cdecl; external;
  117. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17533:  Result := LazGtk3.gtk_action_group_get_accel_group(@self);
  118. [gtk_action_group_get_action]
  119. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11273:function gtk_action_group_get_action(action_group: PGtkActionGroup; action_name: Pgchar): PGtkAction; cdecl; external;
  120. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17538:  Result := LazGtk3.gtk_action_group_get_action(@self, action_name);
  121. [gtk_action_group_get_name]
  122. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11274:function gtk_action_group_get_name(action_group: PGtkActionGroup): Pgchar; cdecl; external;
  123. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17543:  Result := LazGtk3.gtk_action_group_get_name(@self);
  124. [gtk_action_group_get_sensitive]
  125. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11275:function gtk_action_group_get_sensitive(action_group: PGtkActionGroup): gboolean; cdecl; external;
  126. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17548:  Result := LazGtk3.gtk_action_group_get_sensitive(@self);
  127. [gtk_action_group_get_visible]
  128. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11277:function gtk_action_group_get_visible(action_group: PGtkActionGroup): gboolean; cdecl; external;
  129. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17553:  Result := LazGtk3.gtk_action_group_get_visible(@self);
  130. [gtk_action_group_list_actions]
  131. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11278:function gtk_action_group_list_actions(action_group: PGtkActionGroup): PGList; cdecl; external;
  132. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17558:  Result := LazGtk3.gtk_action_group_list_actions(@self);
  133. [gtk_action_group_new]
  134. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11279:function gtk_action_group_new(name: Pgchar): PGtkActionGroup; cdecl; external;
  135. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17488:  Result := LazGtk3.gtk_action_group_new(name);
  136. [gtk_action_group_remove_action]
  137. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13205:procedure gtk_action_group_remove_action(action_group: PGtkActionGroup; action: PGtkAction); cdecl; external;
  138. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17563:  LazGtk3.gtk_action_group_remove_action(@self, action);
  139. [gtk_action_group_set_accel_group]
  140. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13206:procedure gtk_action_group_set_accel_group(action_group: PGtkActionGroup; accel_group: PGtkAccelGroup); cdecl; external;
  141. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17568:  LazGtk3.gtk_action_group_set_accel_group(@self, accel_group);
  142. [gtk_action_group_set_sensitive]
  143. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13207:procedure gtk_action_group_set_sensitive(action_group: PGtkActionGroup; sensitive: gboolean); cdecl; external;
  144. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17573:  LazGtk3.gtk_action_group_set_sensitive(@self, sensitive);
  145. [gtk_action_group_set_translate_func]
  146. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13208:procedure gtk_action_group_set_translate_func(action_group: PGtkActionGroup; func: TGtkTranslateFunc; data: gpointer; notify: TGDestroyNotify); cdecl; external;
  147. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17578:  LazGtk3.gtk_action_group_set_translate_func(@self, func, data, notify);
  148. [gtk_action_group_set_translation_domain]
  149. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13209:procedure gtk_action_group_set_translation_domain(action_group: PGtkActionGroup; domain: Pgchar); cdecl; external;
  150. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17583:  LazGtk3.gtk_action_group_set_translation_domain(@self, domain);
  151.  

Quote
https://www.manpagez.com/html/gtk3/gtk3-3.22.0/GtkActionGroup.php#gtk-action-group-set-translation-domain
gtk_action_group_set_translation_domain has been deprecated since version 3.10 and should not be used in newly-written code.

So, Lazarus is does not even have complete Gtk3 support, but is already using many Gtk3 deprecated symbols.
And the above is only some of the symbols starting with A, I left out most from A, and all of B-W.

Bogen85

  • Hero Member
  • *****
  • Posts: 595
Re: GTK3 is ready?
« Reply #19 on: December 11, 2022, 02:37:48 pm »
GTK using introspection (GIR) which is used to generate bindings.

https://www.gtk.org/docs/language-bindings/index

Quote
GTK generates a complete, machine readable description of its API as part of its build; the introspection data is available both as an XML file and as a binary format that can be loaded using a shared library. The introspection data is commonly used to write the language bindings in the list above.

For more information on the introspection data, you can read the GObject Introspection documentation.
https://gi.readthedocs.io/en/latest/

I would think any new effort should be based on auto generation of new bindings, rather than hand coded bindings.
Might take a while to get right, but I don't see any real practical long term solution that does not require several talented developers creating and updating bindings by hand.

It seems like creating bindings by hand is not the way to go with GTK and seems to be prone to a few issues (as I already pointed out with all the deprecated symbols that Lazarus is using, which may just be one problem area).


theo

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1927
Re: GTK3 is ready?
« Reply #20 on: December 11, 2022, 03:36:23 pm »
GTK3 bindings are already largely auto-created with gir2pascal.
https://wiki.freepascal.org/gir2pascal

Creating the bindings is not the problem, but you need to change the logic for LCL-GTK3.
« Last Edit: December 11, 2022, 03:39:17 pm by theo »

zeljko

  • Hero Member
  • *****
  • Posts: 1594
    • http://wiki.lazarus.freepascal.org/User:Zeljan
Re: GTK3 is ready?
« Reply #21 on: December 11, 2022, 03:59:00 pm »
There is also this:

Index of deprecated symbols
https://www.manpagez.com/html/gtk3/gtk3-3.22.0/api-index-deprecated.php

Doing a quick scan, it seems like Lazarus is using those deprecated symbols?

I just checked some of the symbols that started with A, did not check B-W, and I'm finding them in the Lazarus source code.

Code: Pascal  [Select][+][-]
  1. [gtk_accessible_connect_widget_destroyed]
  2. [gtk_action_activate]
  3. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13193:procedure gtk_action_activate(action: PGtkAction); cdecl; external;
  4. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17283:  LazGtk3.gtk_action_activate(@self);
  5. [gtk_action_block_activate]
  6. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13194:procedure gtk_action_block_activate(action: PGtkAction); cdecl; external;
  7. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17288:  LazGtk3.gtk_action_block_activate(@self);
  8. [gtk_action_connect_accelerator]
  9. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13195:procedure gtk_action_connect_accelerator(action: PGtkAction); cdecl; external;
  10. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17293:  LazGtk3.gtk_action_connect_accelerator(@self);
  11. [gtk_action_create_icon]
  12. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11251:function gtk_action_create_icon(action: PGtkAction; icon_size: gint): PGtkWidget; cdecl; external;
  13. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17298:  Result := LazGtk3.gtk_action_create_icon(@self, icon_size);
  14. [gtk_action_create_menu]
  15. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11252:function gtk_action_create_menu(action: PGtkAction): PGtkWidget; cdecl; external;
  16. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11253:function gtk_action_create_menu_item(action: PGtkAction): PGtkWidget; cdecl; external;
  17. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17303:  Result := LazGtk3.gtk_action_create_menu(@self);
  18. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17308:  Result := LazGtk3.gtk_action_create_menu_item(@self);
  19. [gtk_action_create_menu_item]
  20. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11253:function gtk_action_create_menu_item(action: PGtkAction): PGtkWidget; cdecl; external;
  21. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17308:  Result := LazGtk3.gtk_action_create_menu_item(@self);
  22. [gtk_action_create_tool_item]                                                                                                                                         share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11254:function gtk_action_create_tool_item(action: PGtkAction): PGtkWidget; cdecl; external;
  23. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17313:  Result := LazGtk3.gtk_action_create_tool_item(@self);
  24. [gtk_action_disconnect_accelerator]
  25. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13196:procedure gtk_action_disconnect_accelerator(action: PGtkAction); cdecl; external;
  26. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17318:  LazGtk3.gtk_action_disconnect_accelerator(@self);
  27. [gtk_action_get_accel_closure]
  28. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11255:function gtk_action_get_accel_closure(action: PGtkAction): PGClosure; cdecl; external;
  29. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17323:  Result := LazGtk3.gtk_action_get_accel_closure(@self);
  30. [gtk_action_get_accel_path]
  31. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11256:function gtk_action_get_accel_path(action: PGtkAction): Pgchar; cdecl; external;
  32. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17328:  Result := LazGtk3.gtk_action_get_accel_path(@self);
  33. [gtk_action_get_always_show_image]
  34. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11257:function gtk_action_get_always_show_image(action: PGtkAction): gboolean; cdecl; external;
  35. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17333:  Result := LazGtk3.gtk_action_get_always_show_image(@self);
  36. [gtk_action_get_gicon]
  37. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11258:function gtk_action_get_gicon(action: PGtkAction): PGIcon; cdecl; external;
  38. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17338:  Result := LazGtk3.gtk_action_get_gicon(@self);
  39. [gtk_action_get_icon_name]
  40. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11259:function gtk_action_get_icon_name(action: PGtkAction): Pgchar; cdecl; external;
  41. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17343:  Result := LazGtk3.gtk_action_get_icon_name(@self);
  42. [gtk_action_get_is_important]
  43. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11260:function gtk_action_get_is_important(action: PGtkAction): gboolean; cdecl; external;
  44. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17348:  Result := LazGtk3.gtk_action_get_is_important(@self);
  45. [gtk_action_get_label]
  46. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11261:function gtk_action_get_label(action: PGtkAction): Pgchar; cdecl; external;
  47. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17353:  Result := LazGtk3.gtk_action_get_label(@self);
  48. [gtk_action_get_name]
  49. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11262:function gtk_action_get_name(action: PGtkAction): Pgchar; cdecl; external;
  50. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17358:  Result := LazGtk3.gtk_action_get_name(@self);
  51. [gtk_action_get_proxies]
  52. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11263:function gtk_action_get_proxies(action: PGtkAction): PGSList; cdecl; external;
  53. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17363:  Result := LazGtk3.gtk_action_get_proxies(@self);
  54. [gtk_action_get_sensitive]
  55. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11264:function gtk_action_get_sensitive(action: PGtkAction): gboolean; cdecl; external;
  56. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17368:  Result := LazGtk3.gtk_action_get_sensitive(@self);
  57. [gtk_action_get_short_label]
  58. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11265:function gtk_action_get_short_label(action: PGtkAction): Pgchar; cdecl; external;
  59. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17373:  Result := LazGtk3.gtk_action_get_short_label(@self);
  60. [gtk_action_get_stock_id]
  61. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11266:function gtk_action_get_stock_id(action: PGtkAction): Pgchar; cdecl; external;
  62. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17378:  Result := LazGtk3.gtk_action_get_stock_id(@self);
  63. [gtk_action_get_tooltip]
  64. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11267:function gtk_action_get_tooltip(action: PGtkAction): Pgchar; cdecl; external;
  65. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17383:  Result := LazGtk3.gtk_action_get_tooltip(@self);
  66. [gtk_action_get_visible]
  67. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11269:function gtk_action_get_visible(action: PGtkAction): gboolean; cdecl; external;
  68. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11270:function gtk_action_get_visible_horizontal(action: PGtkAction): gboolean; cdecl; external;
  69. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11271:function gtk_action_get_visible_vertical(action: PGtkAction): gboolean; cdecl; external;
  70. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17388:  Result := LazGtk3.gtk_action_get_visible(@self);
  71. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17393:  Result := LazGtk3.gtk_action_get_visible_horizontal(@self);
  72. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17398:  Result := LazGtk3.gtk_action_get_visible_vertical(@self);
  73. [gtk_action_get_visible_horizontal]
  74. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11270:function gtk_action_get_visible_horizontal(action: PGtkAction): gboolean; cdecl; external;
  75. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17393:  Result := LazGtk3.gtk_action_get_visible_horizontal(@self);
  76. [gtk_action_get_visible_vertical]
  77. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11271:function gtk_action_get_visible_vertical(action: PGtkAction): gboolean; cdecl; external;
  78. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17398:  Result := LazGtk3.gtk_action_get_visible_vertical(@self);
  79. [gtk_action_group_add_action]
  80. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13197:procedure gtk_action_group_add_action(action_group: PGtkActionGroup; action: PGtkAction); cdecl; external;
  81. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13198:procedure gtk_action_group_add_action_with_accel(action_group: PGtkActionGroup; action: PGtkAction; accelerator: Pgchar); cdecl; external;
  82. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13199:procedure gtk_action_group_add_actions(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer); cdecl; external;
  83. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13200:procedure gtk_action_group_add_actions_full(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  84. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17493:  LazGtk3.gtk_action_group_add_action(@self, action);
  85. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17498:  LazGtk3.gtk_action_group_add_action_with_accel(@self, action, accelerator);
  86. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17503:  LazGtk3.gtk_action_group_add_actions(@self, entries, n_entries, user_data);
  87. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17508:  LazGtk3.gtk_action_group_add_actions_full(@self, entries, n_entries, user_data, destroy_);
  88. [gtk_action_group_add_actions]
  89. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13199:procedure gtk_action_group_add_actions(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer); cdecl; external;
  90. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13200:procedure gtk_action_group_add_actions_full(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  91. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17503:  LazGtk3.gtk_action_group_add_actions(@self, entries, n_entries, user_data);
  92. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17508:  LazGtk3.gtk_action_group_add_actions_full(@self, entries, n_entries, user_data, destroy_);
  93. [gtk_action_group_add_actions_full]
  94. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13200:procedure gtk_action_group_add_actions_full(action_group: PGtkActionGroup; entries: PGtkActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  95. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17508:  LazGtk3.gtk_action_group_add_actions_full(@self, entries, n_entries, user_data, destroy_);
  96. [gtk_action_group_add_action_with_accel]
  97. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13198:procedure gtk_action_group_add_action_with_accel(action_group: PGtkActionGroup; action: PGtkAction; accelerator: Pgchar); cdecl; external;
  98. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17498:  LazGtk3.gtk_action_group_add_action_with_accel(@self, action, accelerator);
  99. [gtk_action_group_add_radio_actions]
  100. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13201:procedure gtk_action_group_add_radio_actions(action_group: PGtkActionGroup; entries: PGtkRadioActionEntry; n_entries: guint; value: gint; on_change: TGCallback; user_data: gpointer); cdecl; external;
  101. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13202:procedure gtk_action_group_add_radio_actions_full(action_group: PGtkActionGroup; entries: PGtkRadioActionEntry; n_entries: guint; value: gint; on_change: TGCallback; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  102. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17513:  LazGtk3.gtk_action_group_add_radio_actions(@self, entries, n_entries, value, on_change, user_data);
  103. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17518:  LazGtk3.gtk_action_group_add_radio_actions_full(@self, entries, n_entries, value, on_change, user_data, destroy_);
  104. [gtk_action_group_add_radio_actions_full]
  105. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13202:procedure gtk_action_group_add_radio_actions_full(action_group: PGtkActionGroup; entries: PGtkRadioActionEntry; n_entries: guint; value: gint; on_change: TGCallback; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  106. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17518:  LazGtk3.gtk_action_group_add_radio_actions_full(@self, entries, n_entries, value, on_change, user_data, destroy_);
  107. [gtk_action_group_add_toggle_actions]
  108. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13203:procedure gtk_action_group_add_toggle_actions(action_group: PGtkActionGroup; entries: PGtkToggleActionEntry; n_entries: guint; user_data: gpointer); cdecl; external;
  109. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13204:procedure gtk_action_group_add_toggle_actions_full(action_group: PGtkActionGroup; entries: PGtkToggleActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  110. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17523:  LazGtk3.gtk_action_group_add_toggle_actions(@self, entries, n_entries, user_data);
  111. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17528:  LazGtk3.gtk_action_group_add_toggle_actions_full(@self, entries, n_entries, user_data, destroy_);
  112. [gtk_action_group_add_toggle_actions_full]
  113. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13204:procedure gtk_action_group_add_toggle_actions_full(action_group: PGtkActionGroup; entries: PGtkToggleActionEntry; n_entries: guint; user_data: gpointer; destroy_: TGDestroyNotify); cdecl; external;
  114. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17528:  LazGtk3.gtk_action_group_add_toggle_actions_full(@self, entries, n_entries, user_data, destroy_);
  115. [gtk_action_group_get_accel_group]
  116. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11272:function gtk_action_group_get_accel_group(action_group: PGtkActionGroup): PGtkAccelGroup; cdecl; external;
  117. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17533:  Result := LazGtk3.gtk_action_group_get_accel_group(@self);
  118. [gtk_action_group_get_action]
  119. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11273:function gtk_action_group_get_action(action_group: PGtkActionGroup; action_name: Pgchar): PGtkAction; cdecl; external;
  120. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17538:  Result := LazGtk3.gtk_action_group_get_action(@self, action_name);
  121. [gtk_action_group_get_name]
  122. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11274:function gtk_action_group_get_name(action_group: PGtkActionGroup): Pgchar; cdecl; external;
  123. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17543:  Result := LazGtk3.gtk_action_group_get_name(@self);
  124. [gtk_action_group_get_sensitive]
  125. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11275:function gtk_action_group_get_sensitive(action_group: PGtkActionGroup): gboolean; cdecl; external;
  126. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17548:  Result := LazGtk3.gtk_action_group_get_sensitive(@self);
  127. [gtk_action_group_get_visible]
  128. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11277:function gtk_action_group_get_visible(action_group: PGtkActionGroup): gboolean; cdecl; external;
  129. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17553:  Result := LazGtk3.gtk_action_group_get_visible(@self);
  130. [gtk_action_group_list_actions]
  131. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11278:function gtk_action_group_list_actions(action_group: PGtkActionGroup): PGList; cdecl; external;
  132. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17558:  Result := LazGtk3.gtk_action_group_list_actions(@self);
  133. [gtk_action_group_new]
  134. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:11279:function gtk_action_group_new(name: Pgchar): PGtkActionGroup; cdecl; external;
  135. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17488:  Result := LazGtk3.gtk_action_group_new(name);
  136. [gtk_action_group_remove_action]
  137. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13205:procedure gtk_action_group_remove_action(action_group: PGtkActionGroup; action: PGtkAction); cdecl; external;
  138. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17563:  LazGtk3.gtk_action_group_remove_action(@self, action);
  139. [gtk_action_group_set_accel_group]
  140. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13206:procedure gtk_action_group_set_accel_group(action_group: PGtkActionGroup; accel_group: PGtkAccelGroup); cdecl; external;
  141. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17568:  LazGtk3.gtk_action_group_set_accel_group(@self, accel_group);
  142. [gtk_action_group_set_sensitive]
  143. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13207:procedure gtk_action_group_set_sensitive(action_group: PGtkActionGroup; sensitive: gboolean); cdecl; external;
  144. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17573:  LazGtk3.gtk_action_group_set_sensitive(@self, sensitive);
  145. [gtk_action_group_set_translate_func]
  146. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13208:procedure gtk_action_group_set_translate_func(action_group: PGtkActionGroup; func: TGtkTranslateFunc; data: gpointer; notify: TGDestroyNotify); cdecl; external;
  147. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17578:  LazGtk3.gtk_action_group_set_translate_func(@self, func, data, notify);
  148. [gtk_action_group_set_translation_domain]
  149. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:13209:procedure gtk_action_group_set_translation_domain(action_group: PGtkActionGroup; domain: Pgchar); cdecl; external;
  150. share/lazarus/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas:17583:  LazGtk3.gtk_action_group_set_translation_domain(@self, domain);
  151.  

Quote
https://www.manpagez.com/html/gtk3/gtk3-3.22.0/GtkActionGroup.php#gtk-action-group-set-translation-domain
gtk_action_group_set_translation_domain has been deprecated since version 3.10 and should not be used in newly-written code.

So, Lazarus is does not even have complete Gtk3 support, but is already using many Gtk3 deprecated symbols.
And the above is only some of the symbols starting with A, I left out most from A, and all of B-W.

Please stop with nonsenses. I've commited gtk3 about 10 yrs ago with bindings of gtk3 against gtk-3.2 or 3.4. Nobody touched that bindings all those years, so of course there are a lot of deprecated stuff in between 3.2 and 3.22. That's one of the reasons why I lost will in maintaining gtk3 since every minor versions have new deprecations and api changes, so in case of gtk3 and especially gtk4 I must be full time concentrated on gtk3 changes and fix it in lazarus, sorry, no way.

dbannon

  • Hero Member
  • *****
  • Posts: 2786
    • tomboy-ng, a rewrite of the classic Tomboy
Re: GTK3 is ready?
« Reply #22 on: December 11, 2022, 11:36:48 pm »
So, zeljko, that does raise an interesting question. Just how did the development of Qt6 (announced a few weeks ago by zeljko) compare to GTK3 ?

I was personally astounded how you just dropped Qt6 on us, out of the blue and its ready to go (as soon as the distros get over some upstream problems). And it looks good, is a far smaller install than GTK* .....

The difference seems to me (standing a million of miles away) to be that the Qt people understand backward compatibility and change control.

The problem with Gnome is that that do not consider themselves obligated to consider their end users, they are supported (mainly by RedHat) irrespective of the overall user base's acceptance of what they do. Do we want to be involved in a process like that ?

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

AlexTP

  • Hero Member
  • *****
  • Posts: 2386
    • UVviewsoft
Re: GTK3 is ready?
« Reply #23 on: December 12, 2022, 12:05:23 am »
I already suggested to Zeljko the donation $200 for polishing the gtk3 until my text editor fully works. He declined, but I may suggest this to others.

dbannon

  • Hero Member
  • *****
  • Posts: 2786
    • tomboy-ng, a rewrite of the classic Tomboy
Re: GTK3 is ready?
« Reply #24 on: December 12, 2022, 12:20:01 am »
I am not sure how Zeljko prices his time nor how many hours would need be committed but my guess would be it might need as many as a hundred of us to put such bounties on the table ....

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

Tony Stone

  • Full Member
  • ***
  • Posts: 219
Re: GTK3 is ready?
« Reply #25 on: December 12, 2022, 02:07:04 am »
I think a nice bounty program in place could really accelerate bug fixes and development of the various packages.  It looks like there used to be a half baked effort for bounties in the WIKI but I don't think there has been much activity there.  There is third party escrow type services out there that manage bounty tasks for open source projects.  I am wondering if there is any interest in people putting something together where tasks could be organized and have values placed on them?

There is services like: https://gitpay.me/#/
https://issuehunt.io/
https://bountify.co/

Those are just some I found with a quick web search.  There was one I found about a year ago that looked like it would be great for people to organize bounties on but cannot remember the name.  They had many closed bounties for everything from Gimp to Zoneminder and so on.  Like I said in earlier post, if there was something organized I would gladly make regular contributions.  I think open source software developers should have the ability to be compensated if they want.

Bogen85

  • Hero Member
  • *****
  • Posts: 595
Re: GTK3 is ready?
« Reply #26 on: December 12, 2022, 02:19:22 am »
Please stop with nonsenses. I've commited gtk3 about 10 yrs ago with bindings of gtk3 against gtk-3.2 or 3.4. Nobody touched that bindings all those years, so of course there are a lot of deprecated stuff in between 3.2 and 3.22.
I apologize, I did not intend this as an attack on on your work.

That's one of the reasons why I lost will in maintaining gtk3 since every minor versions have new deprecations and api changes, so in case of gtk3 and especially gtk4 I must be full time concentrated on gtk3 changes and fix it in lazarus, sorry, no way.

That is one of the point's I was trying to make... I apologize that how I said came across as it did. I should have not have pointed out the problem the way I did.


« Last Edit: December 12, 2022, 03:19:25 am by Bogen85 »

s6nonqxt

  • Guest
Re: GTK3 is ready?
« Reply #27 on: December 12, 2022, 02:57:00 am »
@All dwindows is a clone of GTK1 in the same sense as GNU/Linux is a clone of Unix. dwindows has a very similar API to GTK1 but is not identical (of course, I said just changing gtk_ to dw_ is a bit detached from the reality, sorry everyone :-[). What I really proposed is using dwindows as a thin compatibility layer on top of GTK. This way dwindows served the same purpose as what Qt4Pas for Qt 8)

Bonus: dwindows is a single library, it doesn't depend on other libraries like GTK (no ATK, no GDK, no GObject, GLib,...). It's much easier to deal with than vanilla GTK 8-)

Another point for dwindows is it supports iOS and Android too :-[

Please have a look at my proposal: https://forum.lazarus.freepascal.org/index.php/topic,61549.0.html

I think it's reasonable :-[

af0815

  • Hero Member
  • *****
  • Posts: 1289
Re: GTK3 is ready?
« Reply #28 on: December 12, 2022, 06:23:47 am »
I think it's reasonable :-[
But have nothing to do with the question "GTK3 is ready?"
regards
Andreas

theo

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1927
Re: GTK3 is ready?
« Reply #29 on: December 14, 2022, 09:52:30 am »
That's one of the reasons why I lost will in maintaining gtk3 since every minor versions have new deprecations and api changes, so in case of gtk3 and especially gtk4 I must be full time concentrated on gtk3 changes and fix it in lazarus, sorry, no way.
Yes I understand. But GTK3 should be stable now.

I am more interested in the question of whether it is at all possible to bring this binding to a satisfactory state, or whether GTK3 is simply not suitable as an LCL interface.

I would be interested from anyone who has delved deeper into this if there is any point in trying to fix things or if it is just hopeless.
What are the major sticking points?

 

TinyPortal © 2005-2018