1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GtkApplication</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
8 <link rel="up" href="Application.html" title="Application support">
9 <link rel="prev" href="Application.html" title="Application support">
10 <link rel="next" href="GtkApplicationWindow.html" title="GtkApplicationWindow">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
17 <td><a accesskey="p" href="Application.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="Application.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GTK+ 3 Reference Manual</th>
21 <td><a accesskey="n" href="GtkApplicationWindow.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GtkApplication.synopsis" class="shortcut">Top</a>
26 <a href="#GtkApplication.description" class="shortcut">Description</a>
28 <a href="#GtkApplication.object-hierarchy" class="shortcut">Object Hierarchy</a>
30 <a href="#GtkApplication.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
32 <a href="#GtkApplication.properties" class="shortcut">Properties</a>
34 <a href="#GtkApplication.signals" class="shortcut">Signals</a>
37 <div class="refentry">
38 <a name="GtkApplication"></a><div class="titlepage"></div>
39 <div class="refnamediv"><table width="100%"><tr>
41 <h2><span class="refentrytitle"><a name="GtkApplication.top_of_page"></a>GtkApplication</span></h2>
42 <p>GtkApplication — Application class</p>
44 <td valign="top" align="right"></td>
46 <div class="refsynopsisdiv">
47 <a name="GtkApplication.synopsis"></a><h2>Synopsis</h2>
48 <pre class="synopsis">
49 #include <gtk/gtk.h>
51 struct <a class="link" href="GtkApplication.html#GtkApplication-struct" title="struct GtkApplication">GtkApplication</a>;
52 <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="returnvalue">GtkApplication</span></a> * <a class="link" href="GtkApplication.html#gtk-application-new" title="gtk_application_new ()">gtk_application_new</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_id</code></em>,
53 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#GApplicationFlags"><span class="type">GApplicationFlags</span></a> flags</code></em>);
54 <span class="returnvalue">void</span> <a class="link" href="GtkApplication.html#gtk-application-add-window" title="gtk_application_add_window ()">gtk_application_add_window</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
55 <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window</code></em>);
56 <span class="returnvalue">void</span> <a class="link" href="GtkApplication.html#gtk-application-remove-window" title="gtk_application_remove_window ()">gtk_application_remove_window</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
57 <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window</code></em>);
58 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="GtkApplication.html#gtk-application-get-windows" title="gtk_application_get_windows ()">gtk_application_get_windows</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>);
60 enum <a class="link" href="GtkApplication.html#GtkApplicationInhibitFlags" title="enum GtkApplicationInhibitFlags">GtkApplicationInhibitFlags</a>;
61 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="GtkApplication.html#gtk-application-inhibit" title="gtk_application_inhibit ()">gtk_application_inhibit</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
62 <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window</code></em>,
63 <em class="parameter"><code><a class="link" href="GtkApplication.html#GtkApplicationInhibitFlags" title="enum GtkApplicationInhibitFlags"><span class="type">GtkApplicationInhibitFlags</span></a> flags</code></em>,
64 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>);
65 <span class="returnvalue">void</span> <a class="link" href="GtkApplication.html#gtk-application-uninhibit" title="gtk_application_uninhibit ()">gtk_application_uninhibit</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
66 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cookie</code></em>);
67 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GtkApplication.html#gtk-application-is-inhibited" title="gtk_application_is_inhibited ()">gtk_application_is_inhibited</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
68 <em class="parameter"><code><a class="link" href="GtkApplication.html#GtkApplicationInhibitFlags" title="enum GtkApplicationInhibitFlags"><span class="type">GtkApplicationInhibitFlags</span></a> flags</code></em>);
70 <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="returnvalue">GMenuModel</span></a> * <a class="link" href="GtkApplication.html#gtk-application-get-app-menu" title="gtk_application_get_app_menu ()">gtk_application_get_app_menu</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>);
71 <span class="returnvalue">void</span> <a class="link" href="GtkApplication.html#gtk-application-set-app-menu" title="gtk_application_set_app_menu ()">gtk_application_set_app_menu</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
72 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a> *app_menu</code></em>);
73 <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="returnvalue">GMenuModel</span></a> * <a class="link" href="GtkApplication.html#gtk-application-get-menubar" title="gtk_application_get_menubar ()">gtk_application_get_menubar</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>);
74 <span class="returnvalue">void</span> <a class="link" href="GtkApplication.html#gtk-application-set-menubar" title="gtk_application_set_menubar ()">gtk_application_set_menubar</a> (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
75 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a> *menubar</code></em>);
78 <div class="refsect1">
79 <a name="GtkApplication.object-hierarchy"></a><h2>Object Hierarchy</h2>
80 <pre class="synopsis">
81 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
82 +----<a href="http://library.gnome.org/devel/gio/unstable/GApplication.html">GApplication</a>
86 <div class="refsect1">
87 <a name="GtkApplication.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
89 GtkApplication implements
90 <a href="http://library.gnome.org/devel/gio/unstable/GActionGroup.html">GActionGroup</a> and <a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html">GActionMap</a>.</p>
92 <div class="refsect1">
93 <a name="GtkApplication.properties"></a><h2>Properties</h2>
94 <pre class="synopsis">
95 "<a class="link" href="GtkApplication.html#GtkApplication--app-menu" title='The "app-menu" property'>app-menu</a>" <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a>* : Read / Write
96 "<a class="link" href="GtkApplication.html#GtkApplication--menubar" title='The "menubar" property'>menubar</a>" <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a>* : Read / Write
97 "<a class="link" href="GtkApplication.html#GtkApplication--register-session" title='The "register-session" property'>register-session</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
100 <div class="refsect1">
101 <a name="GtkApplication.signals"></a><h2>Signals</h2>
102 <pre class="synopsis">
103 "<a class="link" href="GtkApplication.html#GtkApplication-window-added" title='The "window-added" signal'>window-added</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
104 "<a class="link" href="GtkApplication.html#GtkApplication-window-removed" title='The "window-removed" signal'>window-removed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
107 <div class="refsect1">
108 <a name="GtkApplication.description"></a><h2>Description</h2>
110 <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> is a class that handles many important aspects
111 of a GTK+ application in a convenient fashion, without enforcing
112 a one-size-fits-all application model.
115 Currently, GtkApplication handles GTK+ initialization, application
116 uniqueness, session management, provides some basic scriptability and
117 desktop shell integration by exporting actions and menus and manages a
118 list of toplevel windows whose life-cycle is automatically tied to the
119 life-cycle of your application.
122 While GtkApplication works fine with plain <a href="GtkWindow.html"><span class="type">GtkWindows</span></a>, it is recommended
123 to use it together with <a class="link" href="GtkApplicationWindow.html" title="GtkApplicationWindow"><span class="type">GtkApplicationWindow</span></a>.
126 When GDK threads are enabled, GtkApplication will acquire the GDK
127 lock when invoking actions that arrive from other processes. The GDK
128 lock is not touched for local action invocations. In order to have
129 actions invoked in a predictable context it is therefore recommended
130 that the GDK lock be held while invoking actions locally with
131 <a href="http://library.gnome.org/devel/gio/unstable/GActionGroup.html#g-action-group-activate-action"><code class="function">g_action_group_activate_action()</code></a>. The same applies to actions
132 associated with <a class="link" href="GtkApplicationWindow.html" title="GtkApplicationWindow"><span class="type">GtkApplicationWindow</span></a> and to the 'activate' and
133 'open' <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html"><span class="type">GApplication</span></a> methods.
136 To set an application menu for a GtkApplication, use
137 <a class="link" href="GtkApplication.html#gtk-application-set-app-menu" title="gtk_application_set_app_menu ()"><code class="function">gtk_application_set_app_menu()</code></a>. The <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a> that this function
138 expects is usually constructed using <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a>, as seen in the
139 following example. To specify a menubar that will be shown by
140 <span class="type">GApplicationWindows</span>, use <a class="link" href="GtkApplication.html#gtk-application-set-menubar" title="gtk_application_set_menubar ()"><code class="function">gtk_application_set_menubar()</code></a>. Use the base
141 <a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html"><span class="type">GActionMap</span></a> interface to add actions, to respond to the user
142 selecting these menu items.
145 GTK+ displays these menus as expected, depending on the platform
146 the application is running on.
151 <a name="id1338592"></a><p class="title"><b>Figure Menu integration in OS X. </b></p>
152 <div class="figure-contents"><div><img src="bloatpad-osx.png"></div></div>
154 <p><br class="figure-break">
159 <a name="id1338612"></a><p class="title"><b>Figure Menu integration in GNOME. </b></p>
160 <div class="figure-contents"><div><img src="bloatpad-gnome.png"></div></div>
162 <p><br class="figure-break">
167 <a name="id1338631"></a><p class="title"><b>Figure Menu integration in Xfce. </b></p>
168 <div class="figure-contents"><div><img src="bloatpad-xfce.png"></div></div>
170 <p><br class="figure-break">
174 <div class="example">
175 <a name="gtkapplication"></a><p class="title"><b>Example 110. A simple application</b></p>
176 <div class="example-contents">
177 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
180 <td class="listing_lines" align="right"><pre>1
545 <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string"><stdlib.h></span>
546 <span class="preproc">#include</span><span class="normal"> </span><span class="string"><gtk/gtk.h></span>
548 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
549 <span class="function">activate_toggle</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
550 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
551 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
552 <span class="cbracket">{</span>
553 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">state</span><span class="symbol">;</span>
555 <span class="normal"> state </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GAction.html#g-action-get-state">g_action_get_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_ACTION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">));</span>
556 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GAction.html#g-action-change-state">g_action_change_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_ACTION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">),</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-new-boolean">g_variant_new_boolean</a></span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-get-boolean">g_variant_get_boolean</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">state</span><span class="symbol">)));</span>
557 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-unref">g_variant_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">state</span><span class="symbol">);</span>
558 <span class="cbracket">}</span>
560 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
561 <span class="function">activate_radio</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
562 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
563 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
564 <span class="cbracket">{</span>
565 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GAction.html#g-action-change-state">g_action_change_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_ACTION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">),</span><span class="normal"> parameter</span><span class="symbol">);</span>
566 <span class="cbracket">}</span>
568 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
569 <span class="function">change_fullscreen_state</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
570 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">state</span><span class="symbol">,</span>
571 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
572 <span class="cbracket">{</span>
573 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-get-boolean">g_variant_get_boolean</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">state</span><span class="symbol">))</span>
574 <span class="normal"> </span><span class="function"><a href="GtkWindow.html#gtk-window-fullscreen">gtk_window_fullscreen</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">user_data</span><span class="symbol">);</span>
575 <span class="normal"> </span><span class="keyword">else</span>
576 <span class="normal"> </span><span class="function"><a href="GtkWindow.html#gtk-window-unfullscreen">gtk_window_unfullscreen</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">user_data</span><span class="symbol">);</span>
578 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GSimpleAction.html#g-simple-action-set-state">g_simple_action_set_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">,</span><span class="normal"> state</span><span class="symbol">);</span>
579 <span class="cbracket">}</span>
581 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
582 <span class="function">change_justify_state</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
583 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">state</span><span class="symbol">,</span>
584 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
585 <span class="cbracket">{</span>
586 <span class="normal"> </span><span class="usertype">GtkTextView</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get-data">g_object_get_data</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">user_data</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"bloatpad-text"</span><span class="symbol">);</span>
587 <span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">str</span><span class="symbol">;</span>
589 <span class="normal"> str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-get-string">g_variant_get_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">state</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
591 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-str-equal">g_str_equal</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">str</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"left"</span><span class="symbol">))</span>
592 <span class="normal"> </span><span class="function"><a href="GtkTextView.html#gtk-text-view-set-justification">gtk_text_view_set_justification</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">,</span><span class="normal"> <a href="gtk3-Standard-Enumerations.html#GTK-JUSTIFY-LEFT:CAPS">GTK_JUSTIFY_LEFT</a></span><span class="symbol">);</span>
593 <span class="normal"> </span><span class="keyword">else</span><span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-str-equal">g_str_equal</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">str</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"center"</span><span class="symbol">))</span>
594 <span class="normal"> </span><span class="function"><a href="GtkTextView.html#gtk-text-view-set-justification">gtk_text_view_set_justification</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">,</span><span class="normal"> <a href="gtk3-Standard-Enumerations.html#GTK-JUSTIFY-CENTER:CAPS">GTK_JUSTIFY_CENTER</a></span><span class="symbol">);</span>
595 <span class="normal"> </span><span class="keyword">else</span><span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-str-equal">g_str_equal</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">str</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"right"</span><span class="symbol">))</span>
596 <span class="normal"> </span><span class="function"><a href="GtkTextView.html#gtk-text-view-set-justification">gtk_text_view_set_justification</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">,</span><span class="normal"> <a href="gtk3-Standard-Enumerations.html#GTK-JUSTIFY-RIGHT:CAPS">GTK_JUSTIFY_RIGHT</a></span><span class="symbol">);</span>
597 <span class="normal"> </span><span class="keyword">else</span>
598 <span class="normal"> </span><span class="comment">/* ignore this attempted change */</span>
599 <span class="normal"> </span><span class="keyword">return</span><span class="symbol">;</span>
601 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GSimpleAction.html#g-simple-action-set-state">g_simple_action_set_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">,</span><span class="normal"> state</span><span class="symbol">);</span>
602 <span class="cbracket">}</span>
604 <span class="keyword">static</span><span class="normal"> <a href="gtk3-Clipboards.html#GtkClipboard">GtkClipboard</a> </span><span class="symbol">*</span>
605 <span class="function">get_clipboard</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">widget</span><span class="symbol">)</span>
606 <span class="cbracket">{</span>
607 <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-get-clipboard">gtk_widget_get_clipboard</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="http://developer.gnome.org/devel/gdk/gdk3-Properties-and-Atoms.html#gdk-atom-intern-static-string">gdk_atom_intern_static_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"CLIPBOARD"</span><span class="symbol">));</span>
608 <span class="cbracket">}</span>
610 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
611 <span class="function">window_copy</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
612 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
613 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
614 <span class="cbracket">{</span>
615 <span class="normal"> </span><span class="usertype">GtkWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">window </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GTK_WINDOW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">user_data</span><span class="symbol">);</span>
616 <span class="normal"> </span><span class="usertype">GtkTextView</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get-data">g_object_get_data</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a></span><span class="symbol">*)</span><span class="normal">window</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"bloatpad-text"</span><span class="symbol">);</span>
618 <span class="normal"> </span><span class="function"><a href="GtkTextBuffer.html#gtk-text-buffer-copy-clipboard">gtk_text_buffer_copy_clipboard</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GtkTextView.html#gtk-text-view-get-buffer">gtk_text_view_get_buffer</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">),</span>
619 <span class="normal"> </span><span class="function">get_clipboard</span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="GtkWidget.html">GtkWidget</a></span><span class="symbol">*)</span><span class="normal"> text</span><span class="symbol">));</span>
620 <span class="cbracket">}</span>
622 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
623 <span class="function">window_paste</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
624 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
625 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
626 <span class="cbracket">{</span>
627 <span class="normal"> </span><span class="usertype">GtkWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">window </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GTK_WINDOW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">user_data</span><span class="symbol">);</span>
628 <span class="normal"> </span><span class="usertype">GtkTextView</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get-data">g_object_get_data</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a></span><span class="symbol">*)</span><span class="normal">window</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"bloatpad-text"</span><span class="symbol">);</span>
629 <span class="normal"> </span>
630 <span class="normal"> </span><span class="function"><a href="GtkTextBuffer.html#gtk-text-buffer-paste-clipboard">gtk_text_buffer_paste_clipboard</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GtkTextView.html#gtk-text-view-get-buffer">gtk_text_view_get_buffer</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">),</span>
631 <span class="normal"> </span><span class="function">get_clipboard</span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="GtkWidget.html">GtkWidget</a></span><span class="symbol">*)</span><span class="normal"> text</span><span class="symbol">),</span>
632 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
633 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
635 <span class="cbracket">}</span>
637 <span class="keyword">static</span><span class="normal"> </span><span class="usertype">GActionEntry</span><span class="normal"> win_entries</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span>
638 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"copy"</span><span class="symbol">,</span><span class="normal"> window_copy</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
639 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"paste"</span><span class="symbol">,</span><span class="normal"> window_paste</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
640 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"fullscreen"</span><span class="symbol">,</span><span class="normal"> activate_toggle</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"false"</span><span class="symbol">,</span><span class="normal"> change_fullscreen_state </span><span class="cbracket">}</span><span class="symbol">,</span>
641 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"justify"</span><span class="symbol">,</span><span class="normal"> activate_radio</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"s"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"'left'"</span><span class="symbol">,</span><span class="normal"> change_justify_state </span><span class="cbracket">}</span>
642 <span class="cbracket">}</span><span class="symbol">;</span>
644 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
645 <span class="function">new_window</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">,</span>
646 <span class="normal"> </span><span class="usertype">GFile</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">file</span><span class="symbol">)</span>
647 <span class="cbracket">{</span>
648 <span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">window</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">grid</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">scrolled</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">view</span><span class="symbol">;</span>
649 <span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">toolbar</span><span class="symbol">;</span>
650 <span class="normal"> </span><span class="usertype">GtkToolItem</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">button</span><span class="symbol">;</span>
651 <span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">sw</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">label</span><span class="symbol">;</span>
653 <span class="normal"> window </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkApplicationWindow.html#gtk-application-window-new">gtk_application_window_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app</span><span class="symbol">));</span>
654 <span class="normal"> </span><span class="function"><a href="GtkWindow.html#gtk-window-set-default-size">gtk_window_set_default_size</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="GtkWindow.html">GtkWindow</a></span><span class="symbol">*)</span><span class="normal">window</span><span class="symbol">,</span><span class="normal"> </span><span class="number">640</span><span class="symbol">,</span><span class="normal"> </span><span class="number">480</span><span class="symbol">);</span>
655 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html#g-action-map-add-action-entries">g_action_map_add_action_entries</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_ACTION_MAP</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">window</span><span class="symbol">),</span><span class="normal"> win_entries</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-N-ELEMENTS:CAPS">G_N_ELEMENTS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">win_entries</span><span class="symbol">),</span><span class="normal"> window</span><span class="symbol">);</span>
656 <span class="normal"> </span><span class="function"><a href="GtkWindow.html#gtk-window-set-title">gtk_window_set_title</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WINDOW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">window</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"Bloatpad"</span><span class="symbol">);</span>
658 <span class="normal"> grid </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkGrid.html#gtk-grid-new">gtk_grid_new</a></span><span class="normal"> </span><span class="symbol">();</span>
659 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">window</span><span class="symbol">),</span><span class="normal"> grid</span><span class="symbol">);</span>
661 <span class="normal"> toolbar </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkToolbar.html#gtk-toolbar-new">gtk_toolbar_new</a></span><span class="normal"> </span><span class="symbol">();</span>
662 <span class="normal"> button </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkToggleToolButton.html#gtk-toggle-tool-button-new-from-stock">gtk_toggle_tool_button_new_from_stock</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gtk3-Stock-Items.html#GTK-STOCK-JUSTIFY-LEFT:CAPS">GTK_STOCK_JUSTIFY_LEFT</a></span><span class="symbol">);</span>
663 <span class="normal"> </span><span class="function"><a href="GtkActionable.html#gtk-actionable-set-detailed-action-name">gtk_actionable_set_detailed_action_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_ACTIONABLE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"win.justify::left"</span><span class="symbol">);</span>
664 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">toolbar</span><span class="symbol">),</span><span class="normal"> </span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">));</span>
666 <span class="normal"> button </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkToggleToolButton.html#gtk-toggle-tool-button-new-from-stock">gtk_toggle_tool_button_new_from_stock</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gtk3-Stock-Items.html#GTK-STOCK-JUSTIFY-CENTER:CAPS">GTK_STOCK_JUSTIFY_CENTER</a></span><span class="symbol">);</span>
667 <span class="normal"> </span><span class="function"><a href="GtkActionable.html#gtk-actionable-set-detailed-action-name">gtk_actionable_set_detailed_action_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_ACTIONABLE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"win.justify::center"</span><span class="symbol">);</span>
668 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">toolbar</span><span class="symbol">),</span><span class="normal"> </span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">));</span>
670 <span class="normal"> button </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkToggleToolButton.html#gtk-toggle-tool-button-new-from-stock">gtk_toggle_tool_button_new_from_stock</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gtk3-Stock-Items.html#GTK-STOCK-JUSTIFY-RIGHT:CAPS">GTK_STOCK_JUSTIFY_RIGHT</a></span><span class="symbol">);</span>
671 <span class="normal"> </span><span class="function"><a href="GtkActionable.html#gtk-actionable-set-detailed-action-name">gtk_actionable_set_detailed_action_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_ACTIONABLE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"win.justify::right"</span><span class="symbol">);</span>
672 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">toolbar</span><span class="symbol">),</span><span class="normal"> </span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">));</span>
674 <span class="normal"> button </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkSeparatorToolItem.html#gtk-separator-tool-item-new">gtk_separator_tool_item_new</a></span><span class="normal"> </span><span class="symbol">();</span>
675 <span class="normal"> </span><span class="function"><a href="GtkSeparatorToolItem.html#gtk-separator-tool-item-set-draw">gtk_separator_tool_item_set_draw</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_SEPARATOR_TOOL_ITEM</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">),</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">);</span>
676 <span class="normal"> </span><span class="function"><a href="GtkToolItem.html#gtk-tool-item-set-expand">gtk_tool_item_set_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_TOOL_ITEM</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">),</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
677 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">toolbar</span><span class="symbol">),</span><span class="normal"> </span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">));</span>
679 <span class="normal"> button </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkToolItem.html#gtk-tool-item-new">gtk_tool_item_new</a></span><span class="normal"> </span><span class="symbol">();</span>
680 <span class="normal"> box </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkBox.html#gtk-box-new">gtk_box_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gtk3-Standard-Enumerations.html#GTK-ORIENTATION-HORIZONTAL:CAPS">GTK_ORIENTATION_HORIZONTAL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">6</span><span class="symbol">);</span>
681 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">),</span><span class="normal"> box</span><span class="symbol">);</span>
682 <span class="normal"> label </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkLabel.html#gtk-label-new">gtk_label_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Fullscreen:"</span><span class="symbol">);</span>
683 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">),</span><span class="normal"> label</span><span class="symbol">);</span>
684 <span class="normal"> sw </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkSwitch.html#gtk-switch-new">gtk_switch_new</a></span><span class="normal"> </span><span class="symbol">();</span>
685 <span class="normal"> </span><span class="function"><a href="GtkActionable.html#gtk-actionable-set-action-name">gtk_actionable_set_action_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_ACTIONABLE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">sw</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"win.fullscreen"</span><span class="symbol">);</span>
686 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">),</span><span class="normal"> sw</span><span class="symbol">);</span>
687 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">toolbar</span><span class="symbol">),</span><span class="normal"> </span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">button</span><span class="symbol">));</span>
689 <span class="normal"> </span><span class="function"><a href="GtkGrid.html#gtk-grid-attach">gtk_grid_attach</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_GRID</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">grid</span><span class="symbol">),</span><span class="normal"> toolbar</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
691 <span class="normal"> scrolled </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkScrolledWindow.html#gtk-scrolled-window-new">gtk_scrolled_window_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
692 <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-set-hexpand">gtk_widget_set_hexpand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">scrolled</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
693 <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-set-vexpand">gtk_widget_set_vexpand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">scrolled</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
694 <span class="normal"> view </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkTextView.html#gtk-text-view-new">gtk_text_view_new</a></span><span class="normal"> </span><span class="symbol">();</span>
696 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-data">g_object_set_data</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a></span><span class="symbol">*)</span><span class="normal">window</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"bloatpad-text"</span><span class="symbol">,</span><span class="normal"> view</span><span class="symbol">);</span>
698 <span class="normal"> </span><span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">scrolled</span><span class="symbol">),</span><span class="normal"> view</span><span class="symbol">);</span>
700 <span class="normal"> </span><span class="function"><a href="GtkGrid.html#gtk-grid-attach">gtk_grid_attach</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_GRID</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">grid</span><span class="symbol">),</span><span class="normal"> scrolled</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
702 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file </span><span class="symbol">!=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
703 <span class="normal"> </span><span class="cbracket">{</span>
704 <span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">contents</span><span class="symbol">;</span>
705 <span class="normal"> </span><span class="usertype">gsize</span><span class="normal"> length</span><span class="symbol">;</span>
707 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GFile.html#g-file-load-contents">g_file_load_contents</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">contents</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">length</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">))</span>
708 <span class="normal"> </span><span class="cbracket">{</span>
709 <span class="normal"> </span><span class="usertype">GtkTextBuffer</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">buffer</span><span class="symbol">;</span>
711 <span class="normal"> buffer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkTextView.html#gtk-text-view-get-buffer">gtk_text_view_get_buffer</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_TEXT_VIEW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">view</span><span class="symbol">));</span>
712 <span class="normal"> </span><span class="function"><a href="GtkTextBuffer.html#gtk-text-buffer-set-text">gtk_text_buffer_set_text</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">buffer</span><span class="symbol">,</span><span class="normal"> contents</span><span class="symbol">,</span><span class="normal"> length</span><span class="symbol">);</span>
713 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contents</span><span class="symbol">);</span>
714 <span class="normal"> </span><span class="cbracket">}</span>
715 <span class="normal"> </span><span class="cbracket">}</span>
717 <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">window</span><span class="symbol">));</span>
718 <span class="cbracket">}</span>
720 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
721 <span class="function">bloat_pad_activate</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">application</span><span class="symbol">)</span>
722 <span class="cbracket">{</span>
723 <span class="normal"> </span><span class="function">new_window</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">application</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
724 <span class="cbracket">}</span>
726 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
727 <span class="function">bloat_pad_open</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">application</span><span class="symbol">,</span>
728 <span class="normal"> </span><span class="usertype">GFile</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">files</span><span class="symbol">,</span>
729 <span class="normal"> </span><span class="usertype">gint</span><span class="normal"> n_files</span><span class="symbol">,</span>
730 <span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">hint</span><span class="symbol">)</span>
731 <span class="cbracket">{</span>
732 <span class="normal"> </span><span class="usertype">gint</span><span class="normal"> i</span><span class="symbol">;</span>
734 <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol"><</span><span class="normal"> n_files</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span>
735 <span class="normal"> </span><span class="function">new_window</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">application</span><span class="symbol">,</span><span class="normal"> files</span><span class="symbol">[</span><span class="normal">i</span><span class="symbol">]);</span>
736 <span class="cbracket">}</span>
738 <span class="keyword">typedef</span><span class="normal"> </span><span class="usertype">GtkApplication</span><span class="normal"> BloatPad</span><span class="symbol">;</span>
739 <span class="keyword">typedef</span><span class="normal"> </span><span class="usertype">GtkApplicationClass</span><span class="normal"> BloatPadClass</span><span class="symbol">;</span>
741 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE:CAPS">G_DEFINE_TYPE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">BloatPad</span><span class="symbol">,</span><span class="normal"> bloat_pad</span><span class="symbol">,</span><span class="normal"> GTK_TYPE_APPLICATION</span><span class="symbol">)</span>
743 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
744 <span class="function">bloat_pad_finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object</span><span class="symbol">)</span>
745 <span class="cbracket">{</span>
746 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bloat_pad_parent_class</span><span class="symbol">)-></span><span class="function">finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
747 <span class="cbracket">}</span>
749 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
750 <span class="function">new_activated</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
751 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
752 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
753 <span class="cbracket">{</span>
754 <span class="normal"> </span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app </span><span class="symbol">=</span><span class="normal"> user_data</span><span class="symbol">;</span>
756 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#g-application-activate">g_application_activate</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app</span><span class="symbol">);</span>
757 <span class="cbracket">}</span>
759 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
760 <span class="function">about_activated</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
761 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
762 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
763 <span class="cbracket">{</span>
764 <span class="normal"> </span><span class="function"><a href="GtkAboutDialog.html#gtk-show-about-dialog">gtk_show_about_dialog</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
765 <span class="normal"> </span><span class="string">"program-name"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Bloatpad"</span><span class="symbol">,</span>
766 <span class="normal"> </span><span class="string">"title"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"About Bloatpad"</span><span class="symbol">,</span>
767 <span class="normal"> </span><span class="string">"comments"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Not much to say, really."</span><span class="symbol">,</span>
768 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
769 <span class="cbracket">}</span>
771 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
772 <span class="function">quit_activated</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GSimpleAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
773 <span class="normal"> </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameter</span><span class="symbol">,</span>
774 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
775 <span class="cbracket">{</span>
776 <span class="normal"> </span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app </span><span class="symbol">=</span><span class="normal"> user_data</span><span class="symbol">;</span>
778 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#g-application-quit">g_application_quit</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app</span><span class="symbol">);</span>
779 <span class="cbracket">}</span>
781 <span class="keyword">static</span><span class="normal"> </span><span class="usertype">GActionEntry</span><span class="normal"> app_entries</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span>
782 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"new"</span><span class="symbol">,</span><span class="normal"> new_activated</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
783 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"about"</span><span class="symbol">,</span><span class="normal"> about_activated</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
784 <span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"quit"</span><span class="symbol">,</span><span class="normal"> quit_activated</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
785 <span class="cbracket">}</span><span class="symbol">;</span>
787 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
788 <span class="function">bloat_pad_startup</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">application</span><span class="symbol">)</span>
789 <span class="cbracket">{</span>
790 <span class="normal"> </span><span class="usertype">GtkBuilder</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">builder</span><span class="symbol">;</span>
792 <span class="normal"> </span><span class="function">G_APPLICATION_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bloat_pad_parent_class</span><span class="symbol">)</span>
793 <span class="normal"> </span><span class="symbol">-></span><span class="function">startup</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">application</span><span class="symbol">);</span>
795 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html#g-action-map-add-action-entries">g_action_map_add_action_entries</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_ACTION_MAP</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">application</span><span class="symbol">),</span><span class="normal"> app_entries</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-N-ELEMENTS:CAPS">G_N_ELEMENTS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app_entries</span><span class="symbol">),</span><span class="normal"> application</span><span class="symbol">);</span>
797 <span class="normal"> builder </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkBuilder.html#gtk-builder-new">gtk_builder_new</a></span><span class="normal"> </span><span class="symbol">();</span>
798 <span class="normal"> </span><span class="function"><a href="GtkBuilder.html#gtk-builder-add-from-string">gtk_builder_add_from_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">builder</span><span class="symbol">,</span>
799 <span class="normal"> </span><span class="string">"<interface>"</span>
800 <span class="normal"> </span><span class="string">" <menu id='app-menu'>"</span>
801 <span class="normal"> </span><span class="string">" <section>"</span>
802 <span class="normal"> </span><span class="string">" <item>"</span>
803 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_New Window</attribute>"</span>
804 <span class="normal"> </span><span class="string">" <attribute name='action'>app.new</attribute>"</span>
805 <span class="normal"> </span><span class="string">" <attribute name='accel'>&lt;Primary&gt;n</attribute>"</span>
806 <span class="normal"> </span><span class="string">" </item>"</span>
807 <span class="normal"> </span><span class="string">" </section>"</span>
808 <span class="normal"> </span><span class="string">" <section>"</span>
809 <span class="normal"> </span><span class="string">" <item>"</span>
810 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_About Bloatpad</attribute>"</span>
811 <span class="normal"> </span><span class="string">" <attribute name='action'>app.about</attribute>"</span>
812 <span class="normal"> </span><span class="string">" </item>"</span>
813 <span class="normal"> </span><span class="string">" </section>"</span>
814 <span class="normal"> </span><span class="string">" <section>"</span>
815 <span class="normal"> </span><span class="string">" <item>"</span>
816 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_Quit</attribute>"</span>
817 <span class="normal"> </span><span class="string">" <attribute name='action'>app.quit</attribute>"</span>
818 <span class="normal"> </span><span class="string">" <attribute name='accel'>&lt;Primary&gt;q</attribute>"</span>
819 <span class="normal"> </span><span class="string">" </item>"</span>
820 <span class="normal"> </span><span class="string">" </section>"</span>
821 <span class="normal"> </span><span class="string">" </menu>"</span>
822 <span class="normal"> </span><span class="string">" <menu id='menubar'>"</span>
823 <span class="normal"> </span><span class="string">" <submenu>"</span>
824 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_Edit</attribute>"</span>
825 <span class="normal"> </span><span class="string">" <section>"</span>
826 <span class="normal"> </span><span class="string">" <item>"</span>
827 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_Copy</attribute>"</span>
828 <span class="normal"> </span><span class="string">" <attribute name='action'>win.copy</attribute>"</span>
829 <span class="normal"> </span><span class="string">" <attribute name='accel'>&lt;Primary&gt;c</attribute>"</span>
830 <span class="normal"> </span><span class="string">" </item>"</span>
831 <span class="normal"> </span><span class="string">" <item>"</span>
832 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_Parse</attribute>"</span>
833 <span class="normal"> </span><span class="string">" <attribute name='action'>win.parse</attribute>"</span>
834 <span class="normal"> </span><span class="string">" <attribute name='accel'>&lt;Primary&gt;v</attribute>"</span>
835 <span class="normal"> </span><span class="string">" </item>"</span>
836 <span class="normal"> </span><span class="string">" </section>"</span>
837 <span class="normal"> </span><span class="string">" </submenu>"</span>
838 <span class="normal"> </span><span class="string">" <submenu>"</span>
839 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_View</attribute>"</span>
840 <span class="normal"> </span><span class="string">" <section>"</span>
841 <span class="normal"> </span><span class="string">" <item>"</span>
842 <span class="normal"> </span><span class="string">" <attribute name='label' translatable='yes'>_Fullscreen</attribute>"</span>
843 <span class="normal"> </span><span class="string">" <attribute name='action'>win.fullscreen</attribute>"</span>
844 <span class="normal"> </span><span class="string">" <attribute name='accel'>F11</attribute>"</span>
845 <span class="normal"> </span><span class="string">" </item>"</span>
846 <span class="normal"> </span><span class="string">" </section>"</span>
847 <span class="normal"> </span><span class="string">" </submenu>"</span>
848 <span class="normal"> </span><span class="string">" </menu>"</span>
849 <span class="normal"> </span><span class="string">"</interface>"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
850 <span class="normal"> </span><span class="function"><a href="GtkApplication.html#gtk-application-set-app-menu">gtk_application_set_app_menu</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">application</span><span class="symbol">),</span><span class="normal"> </span><span class="function">G_MENU_MODEL</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GtkBuilder.html#gtk-builder-get-object">gtk_builder_get_object</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"app-menu"</span><span class="symbol">)));</span>
851 <span class="normal"> </span><span class="function"><a href="GtkApplication.html#gtk-application-set-menubar">gtk_application_set_menubar</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">application</span><span class="symbol">),</span><span class="normal"> </span><span class="function">G_MENU_MODEL</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GtkBuilder.html#gtk-builder-get-object">gtk_builder_get_object</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"menubar"</span><span class="symbol">)));</span>
852 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">builder</span><span class="symbol">);</span>
853 <span class="cbracket">}</span>
855 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
856 <span class="function">bloat_pad_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">BloatPad</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">)</span>
857 <span class="cbracket">{</span>
858 <span class="cbracket">}</span>
860 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
861 <span class="function">bloat_pad_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">BloatPadClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
862 <span class="cbracket">{</span>
863 <span class="normal"> </span><span class="usertype">GApplicationClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">application_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function">G_APPLICATION_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">);</span>
864 <span class="normal"> </span><span class="usertype">GObjectClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">);</span>
866 <span class="normal"> application_class</span><span class="symbol">-></span><span class="normal">startup </span><span class="symbol">=</span><span class="normal"> bloat_pad_startup</span><span class="symbol">;</span>
867 <span class="normal"> application_class</span><span class="symbol">-></span><span class="normal">activate </span><span class="symbol">=</span><span class="normal"> bloat_pad_activate</span><span class="symbol">;</span>
868 <span class="normal"> application_class</span><span class="symbol">-></span><span class="normal">open </span><span class="symbol">=</span><span class="normal"> bloat_pad_open</span><span class="symbol">;</span>
870 <span class="normal"> object_class</span><span class="symbol">-></span><span class="normal">finalize </span><span class="symbol">=</span><span class="normal"> bloat_pad_finalize</span><span class="symbol">;</span>
872 <span class="cbracket">}</span>
874 <span class="normal">BloatPad </span><span class="symbol">*</span>
875 <span class="function">bloat_pad_new</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
876 <span class="cbracket">{</span>
877 <span class="normal"> </span><span class="usertype">GtkApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">bloat_pad</span><span class="symbol">;</span>
879 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init">g_type_init</a></span><span class="normal"> </span><span class="symbol">();</span>
881 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-set-application-name">g_set_application_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Bloatpad"</span><span class="symbol">);</span>
883 <span class="normal"> bloat_pad </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-new">g_object_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">bloat_pad_get_type</span><span class="normal"> </span><span class="symbol">(),</span>
884 <span class="normal"> </span><span class="string">"application-id"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"org.gtk.Test.bloatpad"</span><span class="symbol">,</span>
885 <span class="normal"> </span><span class="string">"flags"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#G-APPLICATION-HANDLES-OPEN:CAPS">G_APPLICATION_HANDLES_OPEN</a></span><span class="symbol">,</span>
886 <span class="normal"> </span><span class="string">"inactivity-timeout"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">30000</span><span class="symbol">,</span>
887 <span class="normal"> </span><span class="string">"register-session"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">,</span>
888 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
890 <span class="normal"> </span><span class="keyword">return</span><span class="normal"> bloat_pad</span><span class="symbol">;</span>
891 <span class="cbracket">}</span>
893 <span class="type">int</span>
894 <span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">argv</span><span class="symbol">)</span>
895 <span class="cbracket">{</span>
896 <span class="normal"> </span><span class="usertype">BloatPad</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">bloat_pad</span><span class="symbol">;</span>
897 <span class="normal"> </span><span class="type">int</span><span class="normal"> status</span><span class="symbol">;</span>
899 <span class="normal"> bloat_pad </span><span class="symbol">=</span><span class="normal"> </span><span class="function">bloat_pad_new</span><span class="normal"> </span><span class="symbol">();</span>
901 <span class="normal"> </span><span class="function">gtk_application_add_accelerator</span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bloat_pad</span><span class="symbol">),</span>
902 <span class="normal"> </span><span class="string">"F11"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"win.fullscreen"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
904 <span class="normal"> status </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#g-application-run">g_application_run</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bloat_pad</span><span class="symbol">),</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> argv</span><span class="symbol">);</span>
906 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bloat_pad</span><span class="symbol">);</span>
908 <span class="normal"> </span><span class="keyword">return</span><span class="normal"> status</span><span class="symbol">;</span>
909 <span class="cbracket">}</span></pre></td>
916 <p><br class="example-break">
919 GtkApplication optionally registers with a session manager
920 of the users session (if you set the <a class="link" href="GtkApplication.html#GtkApplication--register-session" title='The "register-session" property'><span class="type">"register-session"</span></a>
921 property) and offers various functionality related to the session
925 An application can block various ways to end the session with
926 the <a class="link" href="GtkApplication.html#gtk-application-inhibit" title="gtk_application_inhibit ()"><code class="function">gtk_application_inhibit()</code></a> function. Typical use cases for
927 this kind of inhibiting are long-running, uninterruptible operations,
928 such as burning a CD or performing a disk backup. The session
929 manager may not honor the inhibitor, but it can be expected to
930 inform the user about the negative consequences of ending the
931 session while inhibitors are present.
934 <div class="refsect1">
935 <a name="GtkApplication.details"></a><h2>Details</h2>
936 <div class="refsect2">
937 <a name="GtkApplication-struct"></a><h3>struct GtkApplication</h3>
938 <pre class="programlisting">struct GtkApplication;</pre>
941 <div class="refsect2">
942 <a name="gtk-application-new"></a><h3>gtk_application_new ()</h3>
943 <pre class="programlisting"><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="returnvalue">GtkApplication</span></a> * gtk_application_new (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_id</code></em>,
944 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#GApplicationFlags"><span class="type">GApplicationFlags</span></a> flags</code></em>);</pre>
946 Creates a new <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> instance.
949 This function calls <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init"><code class="function">g_type_init()</code></a> for you. <a class="link" href="gtk3-General.html#gtk-init" title="gtk_init ()"><code class="function">gtk_init()</code></a> is called
950 as soon as the application gets registered as the primary instance.
953 Concretely, <a class="link" href="gtk3-General.html#gtk-init" title="gtk_init ()"><code class="function">gtk_init()</code></a> is called in the default handler for the
954 <code class="function">startup()</code> signal. Therefore, <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> subclasses should
955 chain up in their <code class="function">startup()</code> handler before using any GTK+ API.
958 Note that commandline arguments are not passed to <a class="link" href="gtk3-General.html#gtk-init" title="gtk_init ()"><code class="function">gtk_init()</code></a>.
959 All GTK+ functionality that is available via commandline arguments
960 can also be achieved by setting suitable environment variables
961 such as <code class="envar">G_DEBUG</code>, so this should not be a big
962 problem. If you absolutely must support GTK+ commandline arguments,
963 you can explicitly call <a class="link" href="gtk3-General.html#gtk-init" title="gtk_init ()"><code class="function">gtk_init()</code></a> before creating the application
967 The application id must be valid. See <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html#g-application-id-is-valid"><code class="function">g_application_id_is_valid()</code></a>.
969 <div class="variablelist"><table border="0">
970 <col align="left" valign="top">
973 <td><p><span class="term"><em class="parameter"><code>application_id</code></em> :</span></p></td>
974 <td>the application id</td>
977 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
978 <td>the application flags</td>
981 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
982 <td>a new <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> instance</td>
986 <p class="since">Since 3.0</p>
989 <div class="refsect2">
990 <a name="gtk-application-add-window"></a><h3>gtk_application_add_window ()</h3>
991 <pre class="programlisting"><span class="returnvalue">void</span> gtk_application_add_window (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
992 <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window</code></em>);</pre>
994 Adds a window from <em class="parameter"><code>application</code></em>.
997 This call is equivalent to setting the <a class="link" href="GtkWindow.html#GtkWindow--application" title='The "application" property'><span class="type">"application"</span></a>
998 property of <em class="parameter"><code>window</code></em> to <em class="parameter"><code>application</code></em>.
1001 Normally, the connection between the application and the window
1002 will remain until the window is destroyed, but you can explicitly
1003 remove it with <a class="link" href="GtkApplication.html#gtk-application-remove-window" title="gtk_application_remove_window ()"><code class="function">gtk_application_remove_window()</code></a>.
1006 GTK+ will keep the application running as long as it has
1009 <div class="variablelist"><table border="0">
1010 <col align="left" valign="top">
1013 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1014 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1018 <td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
1019 <td>a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>
1024 <p class="since">Since 3.0</p>
1027 <div class="refsect2">
1028 <a name="gtk-application-remove-window"></a><h3>gtk_application_remove_window ()</h3>
1029 <pre class="programlisting"><span class="returnvalue">void</span> gtk_application_remove_window (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
1030 <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window</code></em>);</pre>
1032 Remove a window from <em class="parameter"><code>application</code></em>.
1035 If <em class="parameter"><code>window</code></em> belongs to <em class="parameter"><code>application</code></em> then this call is equivalent to
1036 setting the <a class="link" href="GtkWindow.html#GtkWindow--application" title='The "application" property'><span class="type">"application"</span></a> property of <em class="parameter"><code>window</code></em> to
1037 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1040 The application may stop running as a result of a call to this
1043 <div class="variablelist"><table border="0">
1044 <col align="left" valign="top">
1047 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1048 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1052 <td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
1053 <td>a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>
1058 <p class="since">Since 3.0</p>
1061 <div class="refsect2">
1062 <a name="gtk-application-get-windows"></a><h3>gtk_application_get_windows ()</h3>
1063 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gtk_application_get_windows (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>);</pre>
1065 Gets a list of the <a href="GtkWindow.html"><span class="type">GtkWindows</span></a> associated with <em class="parameter"><code>application</code></em>.
1068 The list is sorted by most recently focused window, such that the first
1069 element is the currently focused window. (Useful for choosing a parent
1070 for a transient window.)
1073 The list that is returned should not be modified in any way. It will
1074 only remain valid until the next focus change or window creation or
1077 <div class="variablelist"><table border="0">
1078 <col align="left" valign="top">
1081 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1082 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1086 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1087 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GtkWindow][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1092 <p class="since">Since 3.0</p>
1095 <div class="refsect2">
1096 <a name="GtkApplicationInhibitFlags"></a><h3>enum GtkApplicationInhibitFlags</h3>
1097 <pre class="programlisting">typedef enum {
1098 GTK_APPLICATION_INHIBIT_LOGOUT = (1 << 0),
1099 GTK_APPLICATION_INHIBIT_SWITCH = (1 << 1),
1100 GTK_APPLICATION_INHIBIT_SUSPEND = (1 << 2),
1101 GTK_APPLICATION_INHIBIT_IDLE = (1 << 3)
1102 } GtkApplicationInhibitFlags;
1105 Types of user actions that may be blocked by <a class="link" href="GtkApplication.html#gtk-application-inhibit" title="gtk_application_inhibit ()"><code class="function">gtk_application_inhibit()</code></a>.
1107 <div class="variablelist"><table border="0">
1108 <col align="left" valign="top">
1111 <td><p><a name="GTK-APPLICATION-INHIBIT-LOGOUT:CAPS"></a><span class="term"><code class="literal">GTK_APPLICATION_INHIBIT_LOGOUT</code></span></p></td>
1112 <td>Inhibit ending the user session
1113 by logging out or by shutting down the computer
1117 <td><p><a name="GTK-APPLICATION-INHIBIT-SWITCH:CAPS"></a><span class="term"><code class="literal">GTK_APPLICATION_INHIBIT_SWITCH</code></span></p></td>
1118 <td>Inhibit user switching
1122 <td><p><a name="GTK-APPLICATION-INHIBIT-SUSPEND:CAPS"></a><span class="term"><code class="literal">GTK_APPLICATION_INHIBIT_SUSPEND</code></span></p></td>
1123 <td>Inhibit suspending the
1128 <td><p><a name="GTK-APPLICATION-INHIBIT-IDLE:CAPS"></a><span class="term"><code class="literal">GTK_APPLICATION_INHIBIT_IDLE</code></span></p></td>
1129 <td>Inhibit the session being
1130 marked as idle (and possibly locked)
1135 <p class="since">Since 3.4</p>
1138 <div class="refsect2">
1139 <a name="gtk-application-inhibit"></a><h3>gtk_application_inhibit ()</h3>
1140 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gtk_application_inhibit (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
1141 <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window</code></em>,
1142 <em class="parameter"><code><a class="link" href="GtkApplication.html#GtkApplicationInhibitFlags" title="enum GtkApplicationInhibitFlags"><span class="type">GtkApplicationInhibitFlags</span></a> flags</code></em>,
1143 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>);</pre>
1145 Inform the session manager that certain types of actions should be
1146 inhibited. This is not guaranteed to work on all platforms and for
1147 all types of actions.
1150 Applications should invoke this method when they begin an operation
1151 that should not be interrupted, such as creating a CD or DVD. The
1152 types of actions that may be blocked are specified by the <em class="parameter"><code>flags</code></em>
1153 parameter. When the application completes the operation it should
1154 call <code class="function">g_application_uninhibit()</code> to remove the inhibitor. Note that
1155 an application can have multiple inhibitors, and all of the must
1156 be individually removed. Inhibitors are also cleared when the
1160 Applications should not expect that they will always be able to block
1161 the action. In most cases, users will be given the option to force
1162 the action to take place.
1165 Reasons should be short and to the point.
1168 If <em class="parameter"><code>window</code></em> is given, the session manager may point the user to
1169 this window to find out more about why the action is inhibited.
1171 <div class="variablelist"><table border="0">
1172 <col align="left" valign="top">
1175 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1176 <td>the <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html"><span class="type">GApplication</span></a>
1180 <td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
1181 <td>a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1185 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
1186 <td>what types of actions should be inhibited</td>
1189 <td><p><span class="term"><em class="parameter"><code>reason</code></em> :</span></p></td>
1190 <td>a short, human-readable string that explains
1191 why these operations are inhibited. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1195 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1196 <td>A non-zero cookie that is used to uniquely identify this
1197 request. It should be used as an argument to <code class="function">g_application_uninhibit()</code>
1198 in order to remove the request. If the platform does not support
1199 inhibiting or the request failed for some reason, 0 is returned.</td>
1203 <p class="since">Since 3.4</p>
1206 <div class="refsect2">
1207 <a name="gtk-application-uninhibit"></a><h3>gtk_application_uninhibit ()</h3>
1208 <pre class="programlisting"><span class="returnvalue">void</span> gtk_application_uninhibit (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
1209 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cookie</code></em>);</pre>
1211 Removes an inhibitor that has been established with <code class="function">g_application_inhibit()</code>.
1212 Inhibitors are also cleared when the application exits.
1214 <div class="variablelist"><table border="0">
1215 <col align="left" valign="top">
1218 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1219 <td>the <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html"><span class="type">GApplication</span></a>
1223 <td><p><span class="term"><em class="parameter"><code>cookie</code></em> :</span></p></td>
1224 <td>a cookie that was returned by <code class="function">g_application_inhibit()</code>
1229 <p class="since">Since 3.4</p>
1232 <div class="refsect2">
1233 <a name="gtk-application-is-inhibited"></a><h3>gtk_application_is_inhibited ()</h3>
1234 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gtk_application_is_inhibited (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
1235 <em class="parameter"><code><a class="link" href="GtkApplication.html#GtkApplicationInhibitFlags" title="enum GtkApplicationInhibitFlags"><span class="type">GtkApplicationInhibitFlags</span></a> flags</code></em>);</pre>
1237 Determines if any of the actions specified in <em class="parameter"><code>flags</code></em> are
1238 currently inhibited (possibly by another application).
1240 <div class="variablelist"><table border="0">
1241 <col align="left" valign="top">
1244 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1245 <td>the <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html"><span class="type">GApplication</span></a>
1249 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
1250 <td>what types of actions should be queried</td>
1253 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1255 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if any of the actions specified in <em class="parameter"><code>flags</code></em> are inhibited</td>
1259 <p class="since">Since 3.4</p>
1262 <div class="refsect2">
1263 <a name="gtk-application-get-app-menu"></a><h3>gtk_application_get_app_menu ()</h3>
1264 <pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="returnvalue">GMenuModel</span></a> * gtk_application_get_app_menu (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>);</pre>
1266 Returns the menu model that has been set with
1267 <a class="link" href="GtkApplication.html#gtk-application-set-app-menu" title="gtk_application_set_app_menu ()"><code class="function">gtk_application_set_app_menu()</code></a>.
1269 <div class="variablelist"><table border="0">
1270 <col align="left" valign="top">
1273 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1274 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1278 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1279 <td>the application menu of <em class="parameter"><code>application</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1284 <p class="since">Since 3.4</p>
1287 <div class="refsect2">
1288 <a name="gtk-application-set-app-menu"></a><h3>gtk_application_set_app_menu ()</h3>
1289 <pre class="programlisting"><span class="returnvalue">void</span> gtk_application_set_app_menu (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
1290 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a> *app_menu</code></em>);</pre>
1292 Sets or unsets the application menu for <em class="parameter"><code>application</code></em>.
1295 The application menu is a single menu containing items that typically
1296 impact the application as a whole, rather than acting on a specific
1297 window or document. For example, you would expect to see
1298 "Preferences" or "Quit" in an application menu, but not "Save" or
1302 If supported, the application menu will be rendered by the desktop
1306 Use the base <a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html"><span class="type">GActionMap</span></a> interface to add actions, to respond to the user
1307 selecting these menu items.
1309 <div class="variablelist"><table border="0">
1310 <col align="left" valign="top">
1313 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1314 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1318 <td><p><span class="term"><em class="parameter"><code>app_menu</code></em> :</span></p></td>
1319 <td>a <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1324 <p class="since">Since 3.4</p>
1327 <div class="refsect2">
1328 <a name="gtk-application-get-menubar"></a><h3>gtk_application_get_menubar ()</h3>
1329 <pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="returnvalue">GMenuModel</span></a> * gtk_application_get_menubar (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>);</pre>
1331 Returns the menu model that has been set with
1332 <a class="link" href="GtkApplication.html#gtk-application-set-menubar" title="gtk_application_set_menubar ()"><code class="function">gtk_application_set_menubar()</code></a>.
1334 <div class="variablelist"><table border="0">
1335 <col align="left" valign="top">
1338 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1339 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1343 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1344 <td>the menubar for windows of <em class="parameter"><code>application</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1349 <p class="since">Since 3.4</p>
1352 <div class="refsect2">
1353 <a name="gtk-application-set-menubar"></a><h3>gtk_application_set_menubar ()</h3>
1354 <pre class="programlisting"><span class="returnvalue">void</span> gtk_application_set_menubar (<em class="parameter"><code><a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application</code></em>,
1355 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a> *menubar</code></em>);</pre>
1357 Sets or unsets the menubar for windows of <em class="parameter"><code>application</code></em>.
1360 This is a menubar in the traditional sense.
1363 Depending on the desktop environment, this may appear at the top of
1364 each window, or at the top of the screen. In some environments, if
1365 both the application menu and the menubar are set, the application
1366 menu will be presented as if it were the first item of the menubar.
1367 Other environments treat the two as completely separate -- for
1368 example, the application menu may be rendered by the desktop shell
1369 while the menubar (if set) remains in each individual window.
1372 Use the base <a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html"><span class="type">GActionMap</span></a> interface to add actions, to respond to the user
1373 selecting these menu items.
1375 <div class="variablelist"><table border="0">
1376 <col align="left" valign="top">
1379 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1380 <td>a <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>
1384 <td><p><span class="term"><em class="parameter"><code>menubar</code></em> :</span></p></td>
1385 <td>a <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1390 <p class="since">Since 3.4</p>
1393 <div class="refsect1">
1394 <a name="GtkApplication.property-details"></a><h2>Property Details</h2>
1395 <div class="refsect2">
1396 <a name="GtkApplication--app-menu"></a><h3>The <code class="literal">"app-menu"</code> property</h3>
1397 <pre class="programlisting"> "app-menu" <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a>* : Read / Write</pre>
1398 <p>The GMenuModel for the application menu.</p>
1401 <div class="refsect2">
1402 <a name="GtkApplication--menubar"></a><h3>The <code class="literal">"menubar"</code> property</h3>
1403 <pre class="programlisting"> "menubar" <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html"><span class="type">GMenuModel</span></a>* : Read / Write</pre>
1404 <p>The GMenuModel for the menubar.</p>
1407 <div class="refsect2">
1408 <a name="GtkApplication--register-session"></a><h3>The <code class="literal">"register-session"</code> property</h3>
1409 <pre class="programlisting"> "register-session" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
1411 Set this property to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to register with the session manager.
1413 <p>Default value: FALSE</p>
1414 <p class="since">Since 3.4</p>
1417 <div class="refsect1">
1418 <a name="GtkApplication.signal-details"></a><h2>Signal Details</h2>
1419 <div class="refsect2">
1420 <a name="GtkApplication-window-added"></a><h3>The <code class="literal">"window-added"</code> signal</h3>
1421 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application,
1422 <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window,
1423 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
1425 Emitted when a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> is added to <em class="parameter"><code>application</code></em> through
1426 <a class="link" href="GtkApplication.html#gtk-application-add-window" title="gtk_application_add_window ()"><code class="function">gtk_application_add_window()</code></a>.
1428 <div class="variablelist"><table border="0">
1429 <col align="left" valign="top">
1432 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1433 <td>the <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> which emitted the signal</td>
1436 <td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
1437 <td>the newly-added <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>
1441 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1442 <td>user data set when the signal handler was connected.</td>
1446 <p class="since">Since 3.2</p>
1449 <div class="refsect2">
1450 <a name="GtkApplication-window-removed"></a><h3>The <code class="literal">"window-removed"</code> signal</h3>
1451 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> *application,
1452 <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *window,
1453 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
1455 Emitted when a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> is removed from <em class="parameter"><code>application</code></em>,
1456 either as a side-effect of being destroyed or explicitly
1457 through <a class="link" href="GtkApplication.html#gtk-application-remove-window" title="gtk_application_remove_window ()"><code class="function">gtk_application_remove_window()</code></a>.
1459 <div class="variablelist"><table border="0">
1460 <col align="left" valign="top">
1463 <td><p><span class="term"><em class="parameter"><code>application</code></em> :</span></p></td>
1464 <td>the <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> which emitted the signal</td>
1467 <td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
1468 <td>the <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> that is being removed</td>
1471 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1472 <td>user data set when the signal handler was connected.</td>
1476 <p class="since">Since 3.2</p>
1480 <div class="footer">
1482 Generated by GTK-Doc V1.18</div>