[gtk/ebassi/gidocgen: 94/98] docs: Move the gtkmain section to its own document




commit d4e83e725aabcd261d9979cd6fcbe4e0bcdac003
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]