add ui_open_link default tip

Tue, 05 May 2026 20:27:58 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 05 May 2026 20:27:58 +0200
changeset 1122
fd0f943ff5f3
parent 1121
f612b342f262

add ui_open_link

ui/gtk/button.c file | annotate | diff | comparison | revisions
ui/gtk/toolkit.c file | annotate | diff | comparison | revisions
ui/ui/toolkit.h file | annotate | diff | comparison | revisions
--- a/ui/gtk/button.c	Sat May 02 18:13:39 2026 +0200
+++ b/ui/gtk/button.c	Tue May 05 20:27:58 2026 +0200
@@ -921,16 +921,7 @@
 static void linkbutton_clicked(GtkWidget *widget, UiLinkButton *data) {
     linkbutton_callback(widget, data);
     if(data->link) {   
-#if GTK_CHECK_VERSION(4, 0, 0)
-        GtkUriLauncher *launcher = gtk_uri_launcher_new (data->link);
-        gtk_uri_launcher_launch (launcher, NULL, NULL, NULL, NULL);
-        g_object_unref (launcher);
-#elif GTK_CHECK_VERSION(3, 22, 0)
-        GError *error = NULL;
-        gtk_show_uri_on_window(NULL, data->link, GDK_CURRENT_TIME, &error);
-#elif
-        // TODO: call xdg-open
-#endif
+        ui_open_uri(data->link);
     }
 }
 
--- a/ui/gtk/toolkit.c	Sat May 02 18:13:39 2026 +0200
+++ b/ui/gtk/toolkit.c	Tue May 05 20:27:58 2026 +0200
@@ -572,3 +572,16 @@
         ui_set_visible(widget, FALSE);
     }
 }
+
+void ui_open_uri(const char *uri) {
+#if GTK_CHECK_VERSION(4, 0, 0)
+    GtkUriLauncher *launcher = gtk_uri_launcher_new(uri);
+    gtk_uri_launcher_launch(launcher, NULL, NULL, NULL, NULL);
+    g_object_unref(launcher);
+#elif GTK_CHECK_VERSION(3, 22, 0)
+    GError *error = NULL;
+    gtk_show_uri_on_window(NULL, uri, GDK_CURRENT_TIME, &error);
+#elif
+    // TODO: call xdg-open
+#endif
+}
--- a/ui/ui/toolkit.h	Sat May 02 18:13:39 2026 +0200
+++ b/ui/ui/toolkit.h	Tue May 05 20:27:58 2026 +0200
@@ -747,6 +747,8 @@
 UIEXPORT void ui_app_ref(void);
 UIEXPORT void ui_app_unref(void);
 
+UIEXPORT void ui_open_uri(const char *uri);
+
 #ifdef	__cplusplus
 }
 #endif

mercurial