1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gtk.AppChooserT; 26 27 public import gio.AppInfoIF; 28 public import glib.Str; 29 public import glib.c.functions; 30 public import gobject.ObjectG; 31 public import gtk.c.functions; 32 public import gtk.c.types; 33 34 35 /** 36 * `GtkAppChooser` is an interface for widgets which allow the user to 37 * choose an application. 38 * 39 * The main objects that implement this interface are 40 * [class@Gtk.AppChooserWidget], 41 * [class@Gtk.AppChooserDialog] and [class@Gtk.AppChooserButton]. 42 * 43 * Applications are represented by GIO `GAppInfo` objects here. 44 * GIO has a concept of recommended and fallback applications for a 45 * given content type. Recommended applications are those that claim 46 * to handle the content type itself, while fallback also includes 47 * applications that handle a more generic content type. GIO also 48 * knows the default and last-used application for a given content 49 * type. The `GtkAppChooserWidget` provides detailed control over 50 * whether the shown list of applications should include default, 51 * recommended or fallback applications. 52 * 53 * To obtain the application that has been selected in a `GtkAppChooser`, 54 * use [method@Gtk.AppChooser.get_app_info]. 55 */ 56 public template AppChooserT(TStruct) 57 { 58 /** Get the main Gtk struct */ 59 public GtkAppChooser* getAppChooserStruct(bool transferOwnership = false) 60 { 61 if (transferOwnership) 62 ownedRef = false; 63 return cast(GtkAppChooser*)getStruct(); 64 } 65 66 67 /** 68 * Returns the currently selected application. 69 * 70 * Returns: a `GAppInfo` for the 71 * currently selected application, or %NULL if none is selected. 72 * Free with g_object_unref() 73 */ 74 public AppInfoIF getAppInfo() 75 { 76 auto __p = gtk_app_chooser_get_app_info(getAppChooserStruct()); 77 78 if(__p is null) 79 { 80 return null; 81 } 82 83 return ObjectG.getDObject!(AppInfoIF)(cast(GAppInfo*) __p, true); 84 } 85 86 /** 87 * Returns the content type for which the `GtkAppChooser` 88 * shows applications. 89 * 90 * Returns: the content type of @self. Free with g_free() 91 */ 92 public string getContentType() 93 { 94 auto retStr = gtk_app_chooser_get_content_type(getAppChooserStruct()); 95 96 scope(exit) Str.freeString(retStr); 97 return Str.toString(retStr); 98 } 99 100 /** 101 * Reloads the list of applications. 102 */ 103 public void refresh() 104 { 105 gtk_app_chooser_refresh(getAppChooserStruct()); 106 } 107 }