// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* Copyright (C) 2007 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef GLIBMM_EXCEPTIONS_ENABLED #include #endif #include #include #include #include _DEFS(giomm,gio) _PINCLUDE(glibmm/private/interface_p.h) _PINCLUDE(glibmm/private/object_p.h) #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GAppInfoIface GAppInfoIface; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gio { _WRAP_ENUM(AppInfoCreateFlags, GAppInfoCreateFlags, NO_GTYPE) class AppInfo; /** This is used to handle, for instance, startup notification and launching of the new application on the same screen as the launching window. * See also AppInfo. * * @newin2p16 */ class AppLaunchContext : public Glib::Object { _CLASS_GOBJECT(AppLaunchContext, GAppLaunchContext, G_APP_LAUNCH_CONTEXT, Glib::Object, GObject) protected: _CTOR_DEFAULT() public: _WRAP_CREATE() #m4 _CONVERSION(`const Glib::ListHandle&',`GList*',`$3.data()') _WRAP_METHOD(std::string get_display(const Glib::RefPtr& info, const Glib::ListHandle& files), g_app_launch_context_get_display) _WRAP_METHOD(std::string get_startup_notify_id(const Glib::RefPtr& info, const Glib::ListHandle& files), g_app_launch_context_get_startup_notify_id) _WRAP_METHOD(void launch_failed(const std::string& startup_notify_id), g_app_launch_context_launch_failed) }; /** Application information, to describe applications installed on the system, * and launch them. * See also AppLaunchContext. * * @newin2p16 */ class AppInfo : public Glib::Interface { _CLASS_INTERFACE(AppInfo, GAppInfo, G_APP_INFO, GAppInfoIface) public: #ifdef GLIBMM_EXCEPTIONS_ENABLED static Glib::RefPtr create_from_commandline(const std::string& commandline, const std::string& application_name, AppInfoCreateFlags flags); #else static Glib::RefPtr create_from_commandline(const std::string& commandline, const std::string& application_name, AppInfoCreateFlags flags, std::auto_ptr& error); #endif // GLIBMM_EXCEPTIONS_ENABLED _IGNORE(g_app_info_dup) _IGNORE(g_app_info_equal) // Note that the implementation of equal() is virtual via equal_vfunc(). _WRAP_METHOD(bool equal(const Glib::RefPtr& other) const, g_app_info_equal) _WRAP_METHOD(std::string get_id() const, g_app_info_get_id) _WRAP_METHOD(std::string get_name() const, g_app_info_get_name) _WRAP_METHOD(std::string get_description() const, g_app_info_get_description) _WRAP_METHOD(std::string get_executable() const, g_app_info_get_executable) _WRAP_METHOD(Glib::RefPtr get_icon(), g_app_info_get_icon, refreturn) _WRAP_METHOD(const Glib::RefPtr get_icon() const, g_app_info_get_icon, refreturn, constversion) _WRAP_METHOD(bool launch(const Glib::ListHandle& files, const Glib::RefPtr& launch_context), g_app_info_launch, errthrow) _WRAP_METHOD(bool supports_uris() const, g_app_info_supports_uris) _WRAP_METHOD(bool supports_files() const, g_app_info_supports_files) _WRAP_METHOD(bool launch_uris(const Glib::ListHandle& uris, GAppLaunchContext* launch_context), g_app_info_launch_uris, errthrow) _WRAP_METHOD(bool should_show() const, g_app_info_should_show) _WRAP_METHOD(bool set_as_default_for_type(const std::string& content_type), g_app_info_set_as_default_for_type, errthrow) _WRAP_METHOD(bool set_as_default_for_extension(const std::string& extension), g_app_info_set_as_default_for_extension, errthrow) _WRAP_METHOD(bool add_supports_type(const std::string& content_type), g_app_info_add_supports_type, errthrow) _WRAP_METHOD(bool can_remove_supports_type() const, g_app_info_can_remove_supports_type) _WRAP_METHOD(bool remove_supports_type(const std::string& content_type), g_app_info_remove_supports_type, errthrow) static Glib::ListHandle< Glib::RefPtr > get_all(); static Glib::ListHandle< Glib::RefPtr > get_all_for_type(const std::string& content_type); static Glib::RefPtr get_default_for_type(const std::string& content_type, bool must_support_uris = true); static Glib::RefPtr get_default_for_uri_scheme(const std::string& uri_scheme); protected: _WRAP_VFUNC(Glib::RefPtr dup(), "dup") _WRAP_VFUNC(bool equal(const Glib::RefPtr& appinfo2), "equal") _WRAP_VFUNC(std::string get_id() const, "get_id") _WRAP_VFUNC(std::string get_name() const, "get_name") _WRAP_VFUNC(std::string get_description() const, "get_description") _WRAP_VFUNC(std::string get_executable() const, "get_executable") _WRAP_VFUNC(Glib::RefPtr get_icon() const, "get_icon") #m4 _CONVERSION(`const Glib::ListHandle&',`GList*',`$3.data()') #m4 _CONVERSION(`GList*',`const Glib::ListHandle&',`Glib::ListHandle($3, Glib::OWNERSHIP_NONE)') _WRAP_VFUNC(bool launch(const Glib::ListHandle& filenames, const Glib::RefPtr& launch_context, GError** error), "launch") _WRAP_VFUNC(bool supports_uris() const, "supports_uris") _WRAP_VFUNC(bool supports_files() const, "supports_files") _WRAP_VFUNC(bool launch_uris(const Glib::ListHandle& uris, const Glib::RefPtr& launch_context, GError** error), "launch_uris") _WRAP_VFUNC(bool should_show() const, "should_show") _WRAP_VFUNC(bool set_as_default_for_type(const std::string& content_type, GError** error), "set_as_default_for_type") _WRAP_VFUNC(bool set_as_default_for_extension(const std::string& extension, GError** error), "set_as_default_for_extension") _WRAP_VFUNC(bool add_supports_type(const std::string& content_type, GError** error), "add_supports_type") _WRAP_VFUNC(bool can_remove_supports_type() const, "can_remove_supports_type") _WRAP_VFUNC(bool remove_supports_type(const std::string& content_type, GError** error), "remove_supports_type") }; } // namespace Gio