[gtkmm] Added AppChooser, AppChooserButton, AppChooserDialog and AppChooserWidget.



commit 9ac11e63cdd00fe7f67545b33d35cff974796001
Author: Murray Cumming <murrayc murrayc com>
Date:   Thu Feb 10 11:43:28 2011 +0100

    Added AppChooser, AppChooserButton, AppChooserDialog and AppChooserWidget.
    
      * tools/extra_defs_gen/generate_defs_gtk.cc: Mentioned the new AppChooser
      GTypes.
      * gtk/src/gtk_signals.defs: Regenerated.
    * gtk/src/appchooser.[hg|ccg]: Added this new interface.
    * gtk/src/appchooserbutton.[hg|ccg]:
    * gtk/src/appchooserdialog.[hg|ccg]:
    * gtk/src/appchooserwidget.[hg|ccg]: Added wrappers for these new widgets.
    * gtk/src/filelist.am: Mentioned the new files.
    * tools/m4/convert_gtk.m4: Added necessary conversions.

 ChangeLog                                 |   14 +
 gtk/gtkmm.h                               |    3 +
 gtk/src/appchooser.ccg                    |   18 +
 gtk/src/appchooser.hg                     |   55 +
 gtk/src/appchooserbutton.ccg              |   24 +
 gtk/src/appchooserbutton.hg               |   65 ++
 gtk/src/appchooserdialog.ccg              |   50 +
 gtk/src/appchooserdialog.hg               |   70 ++
 gtk/src/appchooserwidget.ccg              |   24 +
 gtk/src/appchooserwidget.hg               |   85 ++
 gtk/src/filelist.am                       |    4 +
 gtk/src/gtk_signals.defs                  | 1732 ++++++++++++++++++++++++++++-
 tools/extra_defs_gen/generate_defs_gtk.cc |    4 +
 tools/m4/convert_gtk.m4                   |    2 +
 14 files changed, 2112 insertions(+), 38 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 3bfa23a..176b53e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2011-02-10  Murray Cumming  <murrayc murrayc com>
 
+	Added AppChooser, AppChooserButton, AppChooserDialog and AppChooserWidget.
+
+  * tools/extra_defs_gen/generate_defs_gtk.cc: Mentioned the new AppChooser 
+  GTypes.
+  * gtk/src/gtk_signals.defs: Regenerated.
+	* gtk/src/appchooser.[hg|ccg]: Added this new interface.
+	* gtk/src/appchooserbutton.[hg|ccg]:
+	* gtk/src/appchooserdialog.[hg|ccg]:
+	* gtk/src/appchooserwidget.[hg|ccg]: Added wrappers for these new widgets.
+	* gtk/src/filelist.am: Mentioned the new files.
+	* tools/m4/convert_gtk.m4: Added necessary conversions.
+
+2011-02-10  Murray Cumming  <murrayc murrayc com>
+
 	CellArea: Added constructor that takes a CellArea.
 
 	* gtk/src/combobox.[hg|ccg]: Added cell_area property and a constructor that 
diff --git a/gtk/gtkmm.h b/gtk/gtkmm.h
index 56a44da..c9bf1bb 100644
--- a/gtk/gtkmm.h
+++ b/gtk/gtkmm.h
@@ -98,6 +98,9 @@ extern const int gtkmm_micro_version;
 #include <gtkmm/accelgroup.h>
 #include <gtkmm/adjustment.h>
 #include <gtkmm/alignment.h>
+#include <gtkmm/appchooserbutton.h>
+#include <gtkmm/appchooserdialog.h>
+#include <gtkmm/appchooserwidget.h>
 #include <gtkmm/application.h>
 #include <gtkmm/arrow.h>
 #include <gtkmm/aspectframe.h>
diff --git a/gtk/src/appchooser.ccg b/gtk/src/appchooser.ccg
new file mode 100644
index 0000000..e04a7b8
--- /dev/null
+++ b/gtk/src/appchooser.ccg
@@ -0,0 +1,18 @@
+/* Copyright 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtk.h>
diff --git a/gtk/src/appchooser.hg b/gtk/src/appchooser.hg
new file mode 100644
index 0000000..6102960
--- /dev/null
+++ b/gtk/src/appchooser.hg
@@ -0,0 +1,55 @@
+/* Copyright (C) 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/interface.h>
+#include <giomm/appinfo.h>
+//#include <gtkmm/enums.h>
+_DEFS(gtkmm,gtk)
+_PINCLUDE(glibmm/private/interface_p.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+extern "C"
+{
+typedef struct _GtkAppChooserIface GtkAppChooserIface;
+}
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+namespace Gtk
+{
+
+/** This interface can be implemented by widgets which allow the user to choose 
+ * an application (typically for the purpose of opening a file). The main 
+ * objects that implement this interface are AppChooserWidget, AppChooserDialog 
+ * and AppChooserButton. 
+ *
+ * @newin{3,0}
+ */
+class AppChooser : public Glib::Interface
+{
+  _CLASS_INTERFACE(AppChooser, GtkAppChooser, GTK_APP_CHOOSER, GtkAppChooserIface)
+
+public:
+  _WRAP_METHOD(Glib::RefPtr<Gio::AppInfo> get_app_info(), gtk_app_chooser_get_app_info, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Gio::AppInfo> get_app_info() const, gtk_app_chooser_get_app_info, refreturn, constversion)
+  
+  _WRAP_METHOD(Glib::ustring get_content_type() const, gtk_app_chooser_get_content_type)
+  _WRAP_METHOD(void refresh(), gtk_app_chooser_refresh)
+  
+  _WRAP_PROPERTY("content_type", Glib::ustring)
+};
+
+} // namespace Gtk
diff --git a/gtk/src/appchooserbutton.ccg b/gtk/src/appchooserbutton.ccg
new file mode 100644
index 0000000..543b3ed
--- /dev/null
+++ b/gtk/src/appchooserbutton.ccg
@@ -0,0 +1,24 @@
+/* Copyright 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtk.h>
+
+namespace Gtk
+{
+
+} // namespace Gtk
+
diff --git a/gtk/src/appchooserbutton.hg b/gtk/src/appchooserbutton.hg
new file mode 100644
index 0000000..5f32f05
--- /dev/null
+++ b/gtk/src/appchooserbutton.hg
@@ -0,0 +1,65 @@
+/* Copyright (C) 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/appchooser.h>
+#include <gtkmm/combobox.h>
+_DEFS(gtkmm,gtk)
+_PINCLUDE(gtkmm/private/combobox_p.h)
+
+
+namespace Gtk
+{
+
+/** A button to launch an application chooser dialog.
+ *
+ * This widget lets the user select an application. See the GtkAppChooser base class API. 
+ *
+ * The AppChooserButton widget looks like this:
+ * @image html appchooserbutton1.png
+ *
+ * @ingroup Widgets
+ */
+class AppChooserButton
+  : public ComboBox,
+    public AppChooser
+{
+  _CLASS_GTKOBJECT(AppChooserButton, GtkAppChooserButton, GTK_APP_CHOOSER_BUTTON, ComboBox, GtkComboBox)
+  _IMPLEMENTS_INTERFACE(AppChooser)
+public:
+
+  /** Creates a new app-chooser button for applications that can handle content of the given type.
+   *
+   * @param content_type The content type to show applications for
+   */
+  _WRAP_CTOR(AppChooserButton(const Glib::ustring& content_type), gtk_app_chooser_button_new)
+
+  _WRAP_METHOD(void append_separator(), gtk_app_chooser_button_append_separator)
+  _WRAP_METHOD(void append_custom_item(const Glib::ustring& name, const Glib::ustring& label, const Glib::RefPtr<Gio::Icon>& icon), gtk_app_chooser_button_append_custom_item)
+  _WRAP_METHOD(void set_active_custom_item(const Glib::ustring& name), gtk_app_chooser_button_set_active_custom_item)
+  _WRAP_METHOD(void set_show_dialog_item(bool setting = true), gtk_app_chooser_button_set_show_dialog_item)
+  _WRAP_METHOD(bool get_show_dialog_item() const, gtk_app_chooser_button_get_show_dialog_item)
+  _WRAP_METHOD(void set_heading(const Glib::ustring& heading), gtk_app_chooser_button_set_heading)
+  _WRAP_METHOD(Glib::ustring get_heading() const, gtk_app_chooser_button_get_heading)
+
+  _WRAP_SIGNAL(void custom_item_activated(const Glib::ustring& item_name), "custom-item-activated")
+  
+  _WRAP_PROPERTY("show-dialog-item", bool)
+  _WRAP_PROPERTY("heading", Glib::ustring)
+};
+
+
+} // namespace Gtk
diff --git a/gtk/src/appchooserdialog.ccg b/gtk/src/appchooserdialog.ccg
new file mode 100644
index 0000000..5cada2b
--- /dev/null
+++ b/gtk/src/appchooserdialog.ccg
@@ -0,0 +1,50 @@
+/* Copyright 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtk.h>
+
+namespace Gtk
+{
+
+AppChooserDialog::AppChooserDialog(const Glib::ustring& content_type)
+:
+  _CONSTRUCT("content_type", content_type.c_str())
+{
+}
+
+AppChooserDialog::AppChooserDialog(const Glib::ustring& content_type, Gtk::Window& parent)
+:
+  _CONSTRUCT("content_type", content_type.c_str())
+{
+  set_transient_for(parent);
+}
+
+AppChooserDialog::AppChooserDialog(const Glib::RefPtr<Gio::File>& file)
+:
+  _CONSTRUCT("file", Glib::unwrap(file))
+{
+}
+
+AppChooserDialog::AppChooserDialog(const Glib::RefPtr<Gio::File>& file, Gtk::Window& parent)
+:
+  _CONSTRUCT("file", Glib::unwrap(file))
+{
+  set_transient_for(parent);
+}
+  
+} // namespace Gtk
+
diff --git a/gtk/src/appchooserdialog.hg b/gtk/src/appchooserdialog.hg
new file mode 100644
index 0000000..e85658a
--- /dev/null
+++ b/gtk/src/appchooserdialog.hg
@@ -0,0 +1,70 @@
+/* Copyright (C) 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/appchooser.h>
+#include <gtkmm/dialog.h>
+#include <gtkmm/menu.h>
+_DEFS(gtkmm,gtk)
+_PINCLUDE(gtkmm/private/dialog_p.h)
+
+
+namespace Gtk
+{
+
+/** An application chooser dialog.
+ *
+ * This dialog shows an AppChooserWidget inside a Dialog.
+ *
+ * Note that AppChooserDialog does not have any interesting methods of its own. 
+ * Instead, you should get the embedded AppChooserWidget using get_widget() and 
+ * call its methods if the generic AppChooser base class API is not sufficient for your needs. 
+ *
+ * The AppChooserDialog dialog looks like this:
+ * @image html appchooserbutton1.png
+ *
+ * @ingroup Dialogs
+ */
+class AppChooserDialog
+  : public Dialog,
+    public AppChooser
+{
+  _CLASS_GTKOBJECT(AppChooserDialog, GtkAppChooserDialog, GTK_APP_CHOOSER_WIDGET, Dialog, GtkDialog)
+  _IMPLEMENTS_INTERFACE(AppChooser)
+public:
+
+  explicit AppChooserDialog(const Glib::ustring& content_type);
+
+  AppChooserDialog(const Glib::ustring& content_type, Gtk::Window& parent);
+  _IGNORE(gtk_app_chooser_dialog_new_for_content_type)
+  
+  explicit AppChooserDialog(const Glib::RefPtr<Gio::File>& file);
+
+  AppChooserDialog(const Glib::RefPtr<Gio::File>& file, Gtk::Window& parent);
+  _IGNORE(gtk_app_chooser_dialog_new)
+
+  _WRAP_METHOD(Widget* get_widget(), gtk_app_chooser_dialog_get_widget)
+  _WRAP_METHOD(const Widget* get_widget() const, gtk_app_chooser_dialog_get_widget, constversion)
+  
+  _WRAP_METHOD(void set_heading(const Glib::ustring& heading), gtk_app_chooser_dialog_set_heading)
+  _WRAP_METHOD(Glib::ustring get_heading() const, gtk_app_chooser_dialog_get_heading)
+
+  _WRAP_PROPERTY("gfile", Glib::RefPtr<Gio::File>)
+  _WRAP_PROPERTY("heading", Glib::ustring)
+};
+
+
+} // namespace Gtk
diff --git a/gtk/src/appchooserwidget.ccg b/gtk/src/appchooserwidget.ccg
new file mode 100644
index 0000000..543b3ed
--- /dev/null
+++ b/gtk/src/appchooserwidget.ccg
@@ -0,0 +1,24 @@
+/* Copyright 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtk/gtk.h>
+
+namespace Gtk
+{
+
+} // namespace Gtk
+
diff --git a/gtk/src/appchooserwidget.hg b/gtk/src/appchooserwidget.hg
new file mode 100644
index 0000000..31eecc6
--- /dev/null
+++ b/gtk/src/appchooserwidget.hg
@@ -0,0 +1,85 @@
+/* Copyright (C) 2011 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/appchooser.h>
+#include <gtkmm/box.h>
+#include <gtkmm/menu.h>
+_DEFS(gtkmm,gtk)
+_PINCLUDE(gtkmm/private/box_p.h)
+
+
+namespace Gtk
+{
+
+/** An application chooser widget that can be embedded in other widgets
+ *
+ * This widget is for selecting applications. It is the main building block for AppChooserDialog. 
+ * Most applications only need to use the latter, but you can use this widget as part of a larger widget if you have special needs. 
+ *
+ * The AppChooserWidget widget looks like this:
+ * @image html appchooserwidget1.png
+ *
+ * @ingroup Widgets
+ */
+class AppChooserWidget
+  : public Box,
+    public AppChooser
+{
+  _CLASS_GTKOBJECT(AppChooserWidget, GtkAppChooserWidget, GTK_APP_CHOOSER_WIDGET, Box, GtkBox)
+  _IMPLEMENTS_INTERFACE(AppChooser)
+public:
+
+  /** Creates a new app-chooser widget for applications that can handle content of the given type.
+   *
+   * @param content_type The content type to show applications for
+   */
+  _WRAP_CTOR(AppChooserWidget(const Glib::ustring& content_type), gtk_app_chooser_widget_new)
+
+  _WRAP_METHOD(void set_show_default(bool setting = true), gtk_app_chooser_widget_set_show_default)
+  _WRAP_METHOD(bool get_show_default(), gtk_app_chooser_widget_get_show_default )
+
+  _WRAP_METHOD(void set_show_recommended(bool setting = true), gtk_app_chooser_widget_set_show_recommended)
+  _WRAP_METHOD(bool get_show_recommended() const, gtk_app_chooser_widget_get_show_recommended)
+
+  _WRAP_METHOD(void set_show_fallback(bool setting = true), gtk_app_chooser_widget_set_show_fallback)
+  _WRAP_METHOD(bool get_show_fallback() const, gtk_app_chooser_widget_get_show_fallback)
+
+  _WRAP_METHOD(void set_show_other(bool setting = true), gtk_app_chooser_widget_set_show_other)
+  _WRAP_METHOD(bool get_show_other() const, gtk_app_chooser_widget_get_show_other)
+  
+  _WRAP_METHOD(void set_show_all(bool setting = true), gtk_app_chooser_widget_set_show_all)
+  _WRAP_METHOD(bool get_show_all() const, gtk_app_chooser_widget_get_show_all)
+
+  _WRAP_METHOD(void set_default_text(const Glib::ustring& text), gtk_app_chooser_widget_set_default_text)
+  _WRAP_METHOD(Glib::ustring get_default_text(), gtk_app_chooser_widget_get_default_text)
+  
+  
+#m4 _CONVERSION(`GAppInfo*',`const Glib::RefPtr<Gio::AppInfo>&',`Glib::wrap($3, true)')
+  _WRAP_SIGNAL(void application_selected(const Glib::RefPtr<Gio::AppInfo>& app_info), "application-selected")
+  _WRAP_SIGNAL(void application_activated(const Glib::RefPtr<Gio::AppInfo>& app_info), "application-activated")
+  _WRAP_SIGNAL(void populate_popup(Menu* menu, const Glib::RefPtr<Gio::AppInfo>& app_info), "populate-popup")
+                                  
+  _WRAP_PROPERTY("show-default", bool)
+  _WRAP_PROPERTY("show-recommended", bool)
+  _WRAP_PROPERTY("show-fallback", bool)
+  _WRAP_PROPERTY("show-other", bool)
+  _WRAP_PROPERTY("show-all", bool)
+  _WRAP_PROPERTY("default-text", Glib::ustring)
+};
+
+
+} // namespace Gtk
diff --git a/gtk/src/filelist.am b/gtk/src/filelist.am
index 10d23fb..b296b7f 100644
--- a/gtk/src/filelist.am
+++ b/gtk/src/filelist.am
@@ -22,6 +22,10 @@ gtkmm_files_any_hg =		\
 	activatable.hg		\
 	adjustment.hg		\
 	alignment.hg		\
+	appchooser.hg \
+	appchooserbutton.hg \
+	appchooserdialog.hg \
+	appchooserwidget.hg \
 	application.hg \
 	arrow.hg		\
 	aspectframe.hg		\
diff --git a/gtk/src/gtk_signals.defs b/gtk/src/gtk_signals.defs
index 07c8de4..c651fc6 100644
--- a/gtk/src/gtk_signals.defs
+++ b/gtk/src/gtk_signals.defs
@@ -2284,6 +2284,1635 @@
   (construct-only #f)
 )
 
+;; From GtkAppChooser
+
+(define-property content-type
+  (of-object "GtkAppChooser")
+  (prop-type "GParamString")
+  (docs "The content type used by the open with object")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+;; From GtkAppChooserButton
+
+(define-signal custom-item-activated
+  (of-object "GtkAppChooserButton")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("const-gchar*" "p0")
+  )
+)
+
+(define-property content-type
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "The content type used by the open with object")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property editing-canceled
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Indicates that editing has been canceled")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property name
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "The name of the widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property parent
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamObject")
+  (docs "The parent widget of this widget. Must be a Container widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property width-request
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Override for width request of the widget, or -1 if natural request should be used")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property height-request
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Override for height request of the widget, or -1 if natural request should be used")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property visible
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is visible")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property sensitive
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget responds to input")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property app-paintable
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the application will paint directly on the widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property can-focus
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget can accept the input focus")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-focus
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget has the input focus")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property is-focus
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is the focus widget within the toplevel")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property can-default
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget can be the default widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-default
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is the default widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property receives-default
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "If TRUE, the widget will receive the default action when it is focused")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property composite-child
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is part of a composite widget")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property style
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamObject")
+  (docs "The style of the widget, which contains information about how it will look (colors etc)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property events
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamFlags")
+  (docs "The event mask that decides what kind of GdkEvents this widget gets")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property no-show-all
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether gtk_widget_show_all() should not affect this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-tooltip
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether this widget has a tooltip")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tooltip-markup
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "The contents of the tooltip for this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tooltip-text
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "The contents of the tooltip for this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property window
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamObject")
+  (docs "The widget's window if it is realized")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property double-buffered
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is double buffered")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property halign
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamEnum")
+  (docs "How to position in extra horizontal space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property valign
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamEnum")
+  (docs "How to position in extra vertical space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-left
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the left side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-right
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the right side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-top
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the top side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-bottom
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the bottom side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on all four sides")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property hexpand
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants more horizontal space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property vexpand
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants more vertical space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property hexpand-set
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use the hexpand property")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property vexpand-set
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use the vexpand property")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property expand
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants to expand in both directions")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property border-width
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamUInt")
+  (docs "The width of the empty border outside the containers children")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property resize-mode
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamEnum")
+  (docs "Specify how resize events are handled")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property child
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamObject")
+  (docs "Can be used to add a new child to the container")
+  (readable #f)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property model
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamObject")
+  (docs "The model for the combo box")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property wrap-width
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "Wrap width for laying out the items in a grid")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property row-span-column
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "TreeModel column containing the row span values")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property column-span-column
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "TreeModel column containing the column span values")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property active
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "The item which is currently active")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property add-tearoffs
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether dropdowns should have a tearoff menu item")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tearoff-title
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "A title that may be displayed by the window manager when the popup is torn-off")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-frame
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the combo box draws a frame around the child")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property focus-on-click
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the combo box grabs focus when it is clicked with the mouse")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property popup-shown
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the combo's dropdown is shown")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property button-sensitivity
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamEnum")
+  (docs "Whether the dropdown button is sensitive when the model is empty")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-entry
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether combo box has an entry")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property entry-text-column
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "The column in the combo box's model to associate with strings from the entry if the combo was created with #GtkComboBox:has-entry = %TRUE")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property popup-fixed-width
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the popup's width should be a fixed width matching the allocated width of the combo box")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property id-column
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamInt")
+  (docs "The column in the combo box's model that provides string IDs for the values in the model")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property active-id
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "The value of the id column for the active row")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property cell-area
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamObject")
+  (docs "The GtkCellArea used to layout cells")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property show-dialog-item
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamBoolean")
+  (docs "Whether the combobox should include an item that triggers a GtkAppChooserDialog")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property heading
+  (of-object "GtkAppChooserButton")
+  (prop-type "GParamString")
+  (docs "The text to show at the top of the dialog")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+;; From GtkAppChooserDialog
+
+(define-property content-type
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "The content type used by the open with object")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property name
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "The name of the widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property parent
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The parent widget of this widget. Must be a Container widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property width-request
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Override for width request of the widget, or -1 if natural request should be used")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property height-request
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Override for height request of the widget, or -1 if natural request should be used")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property visible
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is visible")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property sensitive
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget responds to input")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property app-paintable
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the application will paint directly on the widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property can-focus
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget can accept the input focus")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-focus
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget has the input focus")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property is-focus
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is the focus widget within the toplevel")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property can-default
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget can be the default widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-default
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is the default widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property receives-default
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "If TRUE, the widget will receive the default action when it is focused")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property composite-child
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is part of a composite widget")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property style
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The style of the widget, which contains information about how it will look (colors etc)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property events
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamFlags")
+  (docs "The event mask that decides what kind of GdkEvents this widget gets")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property no-show-all
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether gtk_widget_show_all() should not affect this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-tooltip
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether this widget has a tooltip")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tooltip-markup
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "The contents of the tooltip for this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tooltip-text
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "The contents of the tooltip for this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property window
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The widget's window if it is realized")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property double-buffered
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is double buffered")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property halign
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "How to position in extra horizontal space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property valign
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "How to position in extra vertical space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-left
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the left side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-right
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the right side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-top
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the top side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-bottom
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the bottom side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on all four sides")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property hexpand
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants more horizontal space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property vexpand
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants more vertical space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property hexpand-set
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use the hexpand property")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property vexpand-set
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use the vexpand property")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property expand
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants to expand in both directions")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property border-width
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamUInt")
+  (docs "The width of the empty border outside the containers children")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property resize-mode
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "Specify how resize events are handled")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property child
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "Can be used to add a new child to the container")
+  (readable #f)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property type
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "The type of the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property title
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "The title of the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property role
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "Unique identifier for the window to be used when restoring a session")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property resizable
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "If TRUE, users can resize the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property modal
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "If TRUE, the window is modal (other windows are not usable while this one is up)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property window-position
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "The initial position of the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property default-width
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "The default width of the window, used when initially showing the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property default-height
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamInt")
+  (docs "The default height of the window, used when initially showing the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property destroy-with-parent
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "If this window should be destroyed when the parent is destroyed")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property icon
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "Icon for this window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property icon-name
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "Name of the themed icon for this window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property screen
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The screen where this window will be displayed")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property type-hint
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "Hint to help the desktop environment understand what kind of window this is and how to treat it.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property skip-taskbar-hint
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "TRUE if the window should not be in the task bar.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property skip-pager-hint
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "TRUE if the window should not be in the pager.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property urgency-hint
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "TRUE if the window should be brought to the user's attention.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property accept-focus
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "TRUE if the window should receive the input focus.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property focus-on-map
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "TRUE if the window should receive the input focus when mapped.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property decorated
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the window should be decorated by the window manager")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property deletable
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the window frame should have a close button")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property gravity
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamEnum")
+  (docs "The window gravity of the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property transient-for
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The transient parent of the dialog")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property opacity
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamDouble")
+  (docs "The opacity of the window, from 0 to 1")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-resize-grip
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Specifies whether the window should have a resize grip")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property resize-grip-visible
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Specifies whether the window's resize grip is visible.")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property application
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The GtkApplication for the window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property is-active
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the toplevel is the current active window")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property has-toplevel-focus
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether the input focus is within this GtkWindow")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property startup-id
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "Unique startup identifier for the window used by startup-notification")
+  (readable #f)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property mnemonics-visible
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamBoolean")
+  (docs "Whether mnemonics are currently visible in this window")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property gfile
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamObject")
+  (docs "The GFile used by the app chooser dialog")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property heading
+  (of-object "GtkAppChooserDialog")
+  (prop-type "GParamString")
+  (docs "The text to show at the top of the dialog")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+;; From GtkAppChooserWidget
+
+(define-signal populate-popup
+  (of-object "GtkAppChooserWidget")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("GtkMenu*" "p0")
+    '("GAppInfo*" "p1")
+  )
+)
+
+(define-signal application-selected
+  (of-object "GtkAppChooserWidget")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("GAppInfo*" "p0")
+  )
+)
+
+(define-signal application-activated
+  (of-object "GtkAppChooserWidget")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("GAppInfo*" "p0")
+  )
+)
+
+(define-property content-type
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamString")
+  (docs "The content type used by the open with object")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property orientation
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamEnum")
+  (docs "The orientation of the orientable")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property name
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamString")
+  (docs "The name of the widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property parent
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamObject")
+  (docs "The parent widget of this widget. Must be a Container widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property width-request
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Override for width request of the widget, or -1 if natural request should be used")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property height-request
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Override for height request of the widget, or -1 if natural request should be used")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property visible
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is visible")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property sensitive
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget responds to input")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property app-paintable
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the application will paint directly on the widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property can-focus
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget can accept the input focus")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-focus
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget has the input focus")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property is-focus
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is the focus widget within the toplevel")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property can-default
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget can be the default widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-default
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is the default widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property receives-default
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "If TRUE, the widget will receive the default action when it is focused")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property composite-child
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is part of a composite widget")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property style
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamObject")
+  (docs "The style of the widget, which contains information about how it will look (colors etc)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property events
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamFlags")
+  (docs "The event mask that decides what kind of GdkEvents this widget gets")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property no-show-all
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether gtk_widget_show_all() should not affect this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property has-tooltip
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether this widget has a tooltip")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tooltip-markup
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamString")
+  (docs "The contents of the tooltip for this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property tooltip-text
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamString")
+  (docs "The contents of the tooltip for this widget")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property window
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamObject")
+  (docs "The widget's window if it is realized")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property double-buffered
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget is double buffered")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property halign
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamEnum")
+  (docs "How to position in extra horizontal space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property valign
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamEnum")
+  (docs "How to position in extra vertical space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-left
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the left side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-right
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the right side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-top
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the top side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin-bottom
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on the bottom side")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property margin
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "Pixels of extra space on all four sides")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property hexpand
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants more horizontal space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property vexpand
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants more vertical space")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property hexpand-set
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use the hexpand property")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property vexpand-set
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use the vexpand property")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property expand
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether widget wants to expand in both directions")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property border-width
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamUInt")
+  (docs "The width of the empty border outside the containers children")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property resize-mode
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamEnum")
+  (docs "Specify how resize events are handled")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property child
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamObject")
+  (docs "Can be used to add a new child to the container")
+  (readable #f)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property spacing
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamInt")
+  (docs "The amount of space between children")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property homogeneous
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the children should all be the same size")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property show-default
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget should show the default application")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property show-recommended
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget should show recommended applications")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property show-fallback
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget should show fallback applications")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property show-other
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget should show other applications")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property show-all
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamBoolean")
+  (docs "Whether the widget should show all applications")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property default-text
+  (of-object "GtkAppChooserWidget")
+  (prop-type "GParamString")
+  (docs "The default text appearing when there are no applications")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
 ;; From GtkApplication
 
 (define-property application-id
@@ -4462,37 +6091,37 @@
 
 ;; From GtkButton
 
-(define-signal pressed
+(define-signal activate
   (of-object "GtkButton")
   (return-type "void")
   (when "first")
 )
 
-(define-signal released
+(define-signal pressed
   (of-object "GtkButton")
   (return-type "void")
   (when "first")
 )
 
-(define-signal clicked
+(define-signal released
   (of-object "GtkButton")
   (return-type "void")
   (when "first")
 )
 
-(define-signal enter
+(define-signal clicked
   (of-object "GtkButton")
   (return-type "void")
   (when "first")
 )
 
-(define-signal leave
+(define-signal enter
   (of-object "GtkButton")
   (return-type "void")
   (when "first")
 )
 
-(define-signal activate
+(define-signal leave
   (of-object "GtkButton")
   (return-type "void")
   (when "first")
@@ -21142,6 +22771,15 @@
   (construct-only #f)
 )
 
+(define-property use-fallback
+  (of-object "GtkImage")
+  (prop-type "GParamBoolean")
+  (docs "Whether to use icon names fallback")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
 ;; From GtkImageMenuItem
 
 (define-property related-action
@@ -27340,15 +28978,6 @@
 
 ;; From GtkNotebook
 
-(define-signal move-focus-out
-  (of-object "GtkNotebook")
-  (return-type "void")
-  (when "last")
-  (parameters
-    '("GtkDirectionType" "p0")
-  )
-)
-
 (define-signal switch-page
   (of-object "GtkNotebook")
   (return-type "void")
@@ -27386,6 +29015,15 @@
   )
 )
 
+(define-signal move-focus-out
+  (of-object "GtkNotebook")
+  (return-type "void")
+  (when "last")
+  (parameters
+    '("GtkDirectionType" "p0")
+  )
+)
+
 (define-signal reorder-tab
   (of-object "GtkNotebook")
   (return-type "gboolean")
@@ -33665,6 +35303,15 @@
   (construct-only #f)
 )
 
+(define-property round-digits
+  (of-object "GtkRange")
+  (prop-type "GParamInt")
+  (docs "The number of digits to round the value to.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
 ;; From GtkRecentAction
 
 (define-property filter
@@ -35416,6 +37063,15 @@
   (construct-only #f)
 )
 
+(define-property round-digits
+  (of-object "GtkScale")
+  (prop-type "GParamInt")
+  (docs "The number of digits to round the value to.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
 (define-property digits
   (of-object "GtkScale")
   (prop-type "GParamInt")
@@ -35445,19 +37101,19 @@
 
 ;; From GtkScaleButton
 
-(define-signal value-changed
+(define-signal popup
   (of-object "GtkScaleButton")
   (return-type "void")
   (when "last")
-  (parameters
-    '("gdouble" "p0")
-  )
 )
 
-(define-signal popup
+(define-signal value-changed
   (of-object "GtkScaleButton")
   (return-type "void")
   (when "last")
+  (parameters
+    '("gdouble" "p0")
+  )
 )
 
 (define-signal popdown
@@ -36361,24 +38017,33 @@
   (construct-only #f)
 )
 
+(define-property round-digits
+  (of-object "GtkScrollbar")
+  (prop-type "GParamInt")
+  (docs "The number of digits to round the value to.")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
 ;; From GtkScrolledWindow
 
-(define-signal scroll-child
+(define-signal move-focus-out
   (of-object "GtkScrolledWindow")
-  (return-type "gboolean")
+  (return-type "void")
   (when "last")
   (parameters
-    '("GtkScrollType" "p0")
-    '("gboolean" "p1")
+    '("GtkDirectionType" "p0")
   )
 )
 
-(define-signal move-focus-out
+(define-signal scroll-child
   (of-object "GtkScrolledWindow")
-  (return-type "void")
+  (return-type "gboolean")
   (when "last")
   (parameters
-    '("GtkDirectionType" "p0")
+    '("GtkScrollType" "p0")
+    '("gboolean" "p1")
   )
 )
 
@@ -37561,7 +39226,7 @@
 (define-property gtk-theme-name
   (of-object "GtkSettings")
   (prop-type "GParamString")
-  (docs "Name of theme RC file to load")
+  (docs "Name of theme to load")
   (readable #t)
   (writable #t)
   (construct-only #f)
@@ -37588,7 +39253,7 @@
 (define-property gtk-key-theme-name
   (of-object "GtkSettings")
   (prop-type "GParamString")
-  (docs "Name of key theme RC file to load")
+  (docs "Name of key theme to load")
   (readable #t)
   (writable #t)
   (construct-only #f)
@@ -48238,15 +49903,6 @@
   )
 )
 
-(define-signal client-event
-  (of-object "GtkWidget")
-  (return-type "gboolean")
-  (when "last")
-  (parameters
-    '("GdkEventClient*" "p0")
-  )
-)
-
 (define-signal window-state-event
   (of-object "GtkWidget")
   (return-type "gboolean")
diff --git a/tools/extra_defs_gen/generate_defs_gtk.cc b/tools/extra_defs_gen/generate_defs_gtk.cc
index 10a97c8..ab2f797 100644
--- a/tools/extra_defs_gen/generate_defs_gtk.cc
+++ b/tools/extra_defs_gen/generate_defs_gtk.cc
@@ -62,6 +62,10 @@ int main(int argc, char** argv)
             << get_defs( GTK_TYPE_ACTIVATABLE )
             << get_defs( GTK_TYPE_ADJUSTMENT )
             << get_defs( GTK_TYPE_ALIGNMENT)
+            << get_defs( GTK_TYPE_APP_CHOOSER )
+            << get_defs( GTK_TYPE_APP_CHOOSER_BUTTON )
+            << get_defs( GTK_TYPE_APP_CHOOSER_DIALOG )
+            << get_defs( GTK_TYPE_APP_CHOOSER_WIDGET )
             << get_defs( GTK_TYPE_APPLICATION )
             << get_defs( GTK_TYPE_ARROW )
             << get_defs( GTK_TYPE_ASPECT_FRAME )
diff --git a/tools/m4/convert_gtk.m4 b/tools/m4/convert_gtk.m4
index c6e52a8..aa6f2de 100644
--- a/tools/m4/convert_gtk.m4
+++ b/tools/m4/convert_gtk.m4
@@ -677,6 +677,8 @@ _CONVERSION(`GFile*',`Glib::RefPtr<const Gio::File>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gio::Cancellable>&',`GCancellable*',__CONVERT_CONST_REFPTR_TO_P)
 _CONVERSION(`const Glib::RefPtr<Gio::InputStream>&',`GInputStream*',__CONVERT_CONST_REFPTR_TO_P)
 
+_CONVERSION(`const Glib::RefPtr<Gio::AppInfo>&',`GAppInfo*',__CONVERT_CONST_REFPTR_TO_P_SUN(Gio::AppInfo))
+_CONVERSION(`GAppInfo*',`Glib::RefPtr<Gio::AppInfo>',`Glib::wrap($3)')
 
 _CONVERSION(`GtkDragResult',`DragResult',`($2)$3')
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]