[gtk/ebassi/gidocgen] docs: Move the gtkmain section to its own document
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/ebassi/gidocgen] docs: Move the gtkmain section to its own document
- Date: Mon, 15 Feb 2021 00:56:53 +0000 (UTC)
commit 651bec7548bc7811b59621e767dd232bcd13af3f
Author: Emmanuele Bassi <ebassi gnome org>
Date: Sun Feb 14 19:36:15 2021 +0000
docs: Move the gtkmain section to its own document
The introspection data does not handle unattached sections like gtk-doc
does, so we need to move what was gtkmain into its own Markdown
document.
docs/reference/gtk/gtk.toml | 1 +
docs/reference/gtk/initialization.md | 70 ++++++++++++++++++++++++++++++++++++
gtk/gtkmain.c | 67 ----------------------------------
3 files changed, 71 insertions(+), 67 deletions(-)
---
diff --git a/docs/reference/gtk/gtk.toml b/docs/reference/gtk/gtk.toml
index cebc787f5c..0a3e4b482f 100644
--- a/docs/reference/gtk/gtk.toml
+++ b/docs/reference/gtk/gtk.toml
@@ -50,6 +50,7 @@ content_files = [
"running.md",
"question_index.md",
"resources.md",
+ "initialization.md",
"actions.md",
"input-handling.md",
"drawing-model.md",
diff --git a/docs/reference/gtk/initialization.md b/docs/reference/gtk/initialization.md
new file mode 100644
index 0000000000..bea0f913d2
--- /dev/null
+++ b/docs/reference/gtk/initialization.md
@@ -0,0 +1,70 @@
+----
+Title: Initialization
+----
+
+# Library initialization and main loop
+
+Before using GTK, you need to initialize it using [func Gtk init]; this
+connects to the windowing system, sets up the locale and performs other
+initialization tasks. [func Gtk init] exits the application if errors occur;
+to avoid this, you can use [`func@Gtk.init_check`], which allows you to recover
+from a failed GTK initialization; for instance, you might start up your
+application in text mode instead.
+
+Like most GUI toolkits, GTK uses an event-driven programming model. When the
+application is doing nothing, GTK sits in the “main loop” and waits for input.
+If the user performs some action - say, a mouse click - then the main loop
+“wakes up” and delivers an event to GTK. GTK forwards the event to one or
+more widgets.
+
+When widgets receive an event, they frequently emit one or more “signals”.
+Signals notify your program that "something interesting happened" by invoking
+functions you’ve connected to the signal with `g_signal_connect()`. Functions
+connected to a signal are often called “callbacks”.
+
+When your callbacks are invoked, you would typically take some action - for
+example, when an Open button is clicked you might display a [class@Gtk.FileChooserDialog].
+After a callback finishes, GTK will return to the main loop and await more
+user input.
+
+### The `main()` function for a simple GTK application
+
+```c
+int
+main (int argc, char **argv)
+{
+ GtkWidget *window;
+ // Initialize i18n support with bindtextdomain(), etc.
+
+ // ...
+
+ // Initialize the widget set
+ gtk_init ();
+
+ // Create the main window
+ window = gtk_window_new ();
+
+ // Set up our GUI elements
+
+ // ...
+
+ // Show the application window
+ gtk_widget_show (window);
+
+ // Enter the main event loop, and wait for user interaction
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
+
+ // The user lost interest
+ return 0;
+}
+```
+
+It's important to note that if you use [class@Gtk.Application], the
+application class will take care of initializing GTK for you, as well
+as spinning the main loop.
+
+### See also
+
+ - the GLib manual, especially `GMainLoop`
+ - signal-related functions, such as `g_signal_connect()` in GObject
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 39aaa4e299..91e8ec1aba 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -22,73 +22,6 @@
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
-/**
- * SECTION:gtkmain
- * @Short_description: Library initialization and main loop
- * @Title: Initialization
- * @See_also: See the GLib manual, especially #GMainLoop and signal-related
- * functions such as g_signal_connect()
- *
- * Before using GTK, you need to initialize it using gtk_init(); this
- * connects to the windowing system, sets up the locale and performs other
- * initialization tasks. gtk_init() exits the application if errors occur;
- * to avoid this, you can use gtk_init_check(), which allows you to recover
- * from a failed GTK initialization - you might start up your application
- * in text mode instead.
- *
- * Like all GUI toolkits, GTK uses an event-driven programming model. When the
- * user is doing nothing, GTK sits in the “main loop” and waits for input.
- * If the user performs some action - say, a mouse click - then the main loop
- * “wakes up” and delivers an event to GTK. GTK forwards the event to one or
- * more widgets.
- *
- * When widgets receive an event, they frequently emit one or more “signals”.
- * Signals notify your program that "something interesting happened" by invoking
- * functions you’ve connected to the signal with g_signal_connect(). Functions
- * connected to a signal are often called “callbacks”.
- *
- * When your callbacks are invoked, you would typically take some action - for
- * example, when an Open button is clicked you might display a
- * #GtkFileChooserDialog. After a callback finishes, GTK will return to the
- * main loop and await more user input.
- *
- * ## Typical main() function for a GTK application
- *
- * |[<!-- language="C" -->
- * int
- * main (int argc, char **argv)
- * {
- * GtkWidget *window;
- * // Initialize i18n support with bindtextdomain(), etc.
- *
- * // ...
- *
- * // Initialize the widget set
- * gtk_init ();
- *
- * // Create the main window
- * window = gtk_window_new ();
- *
- * // Set up our GUI elements
- *
- * // ...
- *
- * // Show the application window
- * gtk_widget_show (window);
- *
- * // Enter the main event loop, and wait for user interaction
- * while (!done)
- * g_main_context_iteration (NULL, TRUE);
- *
- * // The user lost interest
- * return 0;
- * }
- * ]|
- *
- * See #GMainLoop in the GLib documentation to learn more about
- * main loops and their features.
- */
-
#include "config.h"
#include "gdk/gdk.h"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]