// Generated by gmmproc 2.66.7 -- DO NOT MODIFY! #ifndef _GTKMM_STATUSICON_H #define _GTKMM_STATUSICON_H #include #ifndef GTKMM_DISABLE_DEPRECATED #include #include /* Copyright (C) 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include //Deprecated: #include #include #include #include #include // This whole file is deprecated. #ifndef DOXYGEN_SHOULD_SKIP_THIS using GtkStatusIcon = struct _GtkStatusIcon; using GtkStatusIconClass = struct _GtkStatusIconClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API StatusIcon_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { /** The "system tray" or notification area is normally used for transient icons that indicate some * special state. For example, a system tray icon might appear to tell the user that they have new * mail, or have an incoming instant message, or something along those lines. The basic idea is * that creating an icon in the notification area is less annoying than popping up a dialog. * * A StatusIcon object can be used to display an icon in a "system tray". The icon can have a * tooltip, and the user can interact with it by activating it or popping up a context menu. * Critical information should not solely be displayed in a StatusIcon, since it may not be * visible (e.g. when the user doesn't have a notification area on his panel). This can be checked * with is_embedded(). * * On X11, the implementation follows the freedesktop.org "System Tray" specification. * Implementations of the "tray" side of this specification can be found e.g. in the GNOME and KDE * panel applications. * * Note that a StatusIcon is not a widget, but just a Glib::Object. * Making it a widget would be impractical, since the system tray * on Win32 doesn’t allow to embed arbitrary widgets. * * @newin{2,10} * * @deprecated You should consider using notifications or more modern platform-specific APIs instead. */ class GTKMM_API StatusIcon : public Glib::Object { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: using CppObjectType = StatusIcon; using CppClassType = StatusIcon_Class; using BaseObjectType = GtkStatusIcon; using BaseClassType = GtkStatusIconClass; // noncopyable StatusIcon(const StatusIcon&) = delete; StatusIcon& operator=(const StatusIcon&) = delete; private: friend class StatusIcon_Class; static CppClassType statusicon_class_; protected: explicit StatusIcon(const Glib::ConstructParams& construct_params); explicit StatusIcon(GtkStatusIcon* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: StatusIcon(StatusIcon&& src) noexcept; StatusIcon& operator=(StatusIcon&& src) noexcept; ~StatusIcon() noexcept override; /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GtkStatusIcon* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GtkStatusIcon* gobj() const { return reinterpret_cast(gobject_); } ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GtkStatusIcon* gobj_copy(); private: protected: StatusIcon(); explicit StatusIcon(const Glib::RefPtr& pixbuf); // _WRAP_CTOR does not take a 'deprecated' parameter. // _WRAP_CTOR(StatusIcon(const StockID& stock), gtk_status_icon_new_from_stock) #ifndef GTKMM_DISABLE_DEPRECATED /** @deprecated Use the constructor with the @a icon_name parameter instead. */ explicit StatusIcon(const StockID& stock); #endif // GTKMM_DISABLE_DEPRECATED explicit StatusIcon(const Glib::ustring& icon_name); explicit StatusIcon(const Glib::RefPtr& icon); public: /** Creates a new Gtk::StatusIcon object. * @return A Glib::RefPtr<> to a newly created Gtk::StatusIcon object. */ static Glib::RefPtr create(const Glib::RefPtr& pixbuf); // _WRAP_CREATE does not take a 'deprecated' parameter. // _WRAP_CREATE(const StockID& stock_id) #ifndef GTKMM_DISABLE_DEPRECATED /** @deprecated Use create() with the @a icon_name parameter instead. */ static Glib::RefPtr create(const StockID& stock_id); #endif // GTKMM_DISABLE_DEPRECATED static Glib::RefPtr create(const Glib::ustring& icon_name); /** Creates a status icon displaying the file @a filename. * The image will be scaled down to fit in the available * space in the notification area, if necessary. * * @param filename A filename. * @result A new StatusIcon * * @newin{2,10} */ static Glib::RefPtr create_from_file(const std::string& filename); /** Makes @a status_icon display @a pixbuf. * See new_from_pixbuf() for details. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; you can use Glib::notification_set_icon() * to associate a Gio::Icon with a notification * * @param pixbuf A Gdk::Pixbuf or nullptr. */ void set(const Glib::RefPtr& pixbuf); /** Makes @a status_icon display the file @a filename. * See new_from_file() for details. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; you can use Glib::notification_set_icon() * to associate a Gio::Icon with a notification * * @param filename A filename. */ void set_from_file(const Glib::ustring& filename); #ifndef GTKMM_DISABLE_DEPRECATED /** Makes @a status_icon display the stock icon with the id @a stock_id. * See new_from_stock() for details. * * @newin{2,10} * * Deprecated: 3.10: Use set_from_icon_name() instead. * * @deprecated Use the set() with the @a icon_name parameter instead. * * @param stock_id A stock icon id. */ void set(const StockID& stock_id); #endif // GTKMM_DISABLE_DEPRECATED /** Makes @a status_icon display the icon named @a icon_name from the * current icon theme. * See new_from_icon_name() for details. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; you can use Glib::notification_set_icon() * to associate a Gio::Icon with a notification * * @param icon_name An icon name. */ void set(const Glib::ustring& icon_name); /** Makes @a status_icon display the Gio::Icon. * See new_from_gicon() for details. * * @newin{2,14} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; you can use Glib::notification_set_icon() * to associate a Gio::Icon with a notification * * @param icon A GIcon. */ void set(const Glib::RefPtr& icon); /** Gets the type of representation being used by the Gtk::StatusIcon * to store image data. If the Gtk::StatusIcon has no image data, * the return value will be Gtk::IMAGE_EMPTY. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, and Notification only supports Gio::Icon * instances * * @return The image representation being used. */ ImageType get_storage_type() const; /** Gets the Gdk::Pixbuf being displayed by the Gtk::StatusIcon. * The storage type of the status icon must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_PIXBUF (see get_storage_type()). * The caller of this function does not own a reference to the * returned pixbuf. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The displayed pixbuf, * or nullptr if the image is empty. */ Glib::RefPtr get_pixbuf(); /** Gets the Gdk::Pixbuf being displayed by the Gtk::StatusIcon. * The storage type of the status icon must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_PIXBUF (see get_storage_type()). * The caller of this function does not own a reference to the * returned pixbuf. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The displayed pixbuf, * or nullptr if the image is empty. */ Glib::RefPtr get_pixbuf() const; #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the id of the stock icon being displayed by the Gtk::StatusIcon. * The storage type of the status icon must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_STOCK (see get_storage_type()). * The returned string is owned by the Gtk::StatusIcon and should not * be freed or modified. * * @newin{2,10} * * Deprecated: 3.10: Use get_icon_name() instead. * * @deprecated Use the get_icon_name() instead. * * @return Stock id of the displayed stock icon, * or nullptr if the image is empty. */ StockID get_stock() const; #endif // GTKMM_DISABLE_DEPRECATED /** Gets the name of the icon being displayed by the Gtk::StatusIcon. * The storage type of the status icon must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_ICON_NAME (see get_storage_type()). * The returned string is owned by the Gtk::StatusIcon and should not * be freed or modified. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return Name of the displayed icon, or nullptr if the image is empty. */ Glib::ustring get_icon_name() const; /** Retrieves the Gio::Icon being displayed by the Gtk::StatusIcon. * The storage type of the status icon must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_GICON (see get_storage_type()). * The caller of this function does not own a reference to the * returned Gio::Icon. * * If this function fails, @a icon is left unchanged; * * @newin{2,14} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The displayed icon, or nullptr if the image is empty. */ Glib::RefPtr get_icon(); /** Retrieves the Gio::Icon being displayed by the Gtk::StatusIcon. * The storage type of the status icon must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_GICON (see get_storage_type()). * The caller of this function does not own a reference to the * returned Gio::Icon. * * If this function fails, @a icon is left unchanged; * * @newin{2,14} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The displayed icon, or nullptr if the image is empty. */ Glib::RefPtr get_icon() const; /** Gets the size in pixels that is available for the image. * Stock icons and named icons adapt their size automatically * if the size of the notification area changes. For other * storage types, the size-changed signal can be used to * react to size changes. * * Note that the returned size is only meaningful while the * status icon is embedded (see is_embedded()). * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, as the representation of a notification * is left to the platform * * @return The size that is available for the image. */ int get_size() const; /** Sets the Gdk::Screen where @a status_icon is displayed; if * the icon is already mapped, it will be unmapped, and * then remapped on the new screen. * * @newin{2,12} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, as GTK typically only has one Gdk::Screen * and notifications are managed by the platform * * @param screen A Gdk::Screen. */ void set_screen(const Glib::RefPtr& screen); /** Returns the Gdk::Screen associated with @a status_icon. * * @newin{2,12} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, as notifications are managed by the platform * * @return A Gdk::Screen. */ Glib::RefPtr get_screen(); /** Returns the Gdk::Screen associated with @a status_icon. * * @newin{2,12} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, as notifications are managed by the platform * * @return A Gdk::Screen. */ Glib::RefPtr get_screen() const; /** Shows or hides a status icon. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, as notifications are managed by the platform * * @param visible true to show the status icon, false to hide it. */ void set_visible(bool visible = true); /** Returns whether the status icon is visible or not. * Note that being visible does not guarantee that * the user can actually see the icon, see also * is_embedded(). * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return true if the status icon is visible. */ bool get_visible() const; /** Returns whether the status icon is embedded in a notification * area. * * @newin{2,10} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return true if the status icon is embedded in * a notification area. */ bool is_embedded() const; /** Displays a menu aligned to the status icon, and makes it available for selection. * Applications can use this function to display context-sensitive menus. * * This is equivalent to the gtk_status_icon_position_menu() helper callback in GTK+, * which can be provided to gtk_menu_popup(). * * See Gtk::Menu::popup() for more details. * * @param menu The menu to popup for the status icon. * @param button The mouse button which was pressed to initiate the event. * @param activate_time The time at which the activation event occurred. * * @newin{2,12} */ void popup_menu_at_position(Menu& menu, guint button, guint32 activate_time); //Note that gtk_status_icon_position_menu() is meant to be used as a helpful callback when calling gtk_menu_popup(). //We make it easier by just providing a popup method that uses it. //In gtk_status_icon_get_geometry(), any of the parameters may be NULL, //but we don't need 6 different overloads, with different parameters. //But we can add some if there are common cases. /** Obtains information about the location of the status icon * on screen. This information can be used to e.g. position * popups like notification bubbles. * See popup_menu_at_position() for a more convenient * alternative for positioning menus. * * Note that some platforms do not allow GTK+ to provide * this information. * * @param screen: The screen. * @param area The area occupied by the status icon. * @param orientation The orientation of the panel in which the status icon is embedded. A panel * at the top or bottom of the screen is horizontal, a panel at the left or right is vertical. * @result true if the location information has been filled in. * * @newin{2,10} */ bool get_geometry(Glib::RefPtr& screen, Gdk::Rectangle& area, Orientation& orientation); /** Returns the current value of the has-tooltip property. * See Gtk::StatusIcon::property_has_tooltip() for more information. * * @newin{2,16} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return Current value of has-tooltip on @a status_icon. */ bool get_has_tooltip() const; /** Sets the has-tooltip property on @a status_icon to @a has_tooltip. * See Gtk::StatusIcon::property_has_tooltip() for more information. * * @newin{2,16} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, but notifications can display an arbitrary * amount of text using Glib::notification_set_body() * * @param has_tooltip Whether or not @a status_icon has a tooltip. */ void set_has_tooltip(bool has_tooltip = true); /** Gets the contents of the tooltip for @a status_icon. * * @newin{2,16} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The tooltip text, or nullptr. */ Glib::ustring get_tooltip_text() const; /** Sets @a text as the contents of the tooltip. * * This function will take care of setting Gtk::StatusIcon::property_has_tooltip() to * true and of the default handler for the Gtk::StatusIcon::signal_query_tooltip() * signal. * * See also the Gtk::StatusIcon::property_tooltip_text() property and * Gtk::Tooltip::set_text(). * * @newin{2,16} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @param text The contents of the tooltip for @a status_icon. */ void set_tooltip_text(const Glib::ustring& text); /** Gets the contents of the tooltip for @a status_icon. * * @newin{2,16} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The tooltip text, or nullptr. */ Glib::ustring get_tooltip_markup() const; /** Sets @a markup as the contents of the tooltip, which is marked up with * the [Pango text markup language][PangoMarkupFormat]. * * This function will take care of setting Gtk::StatusIcon::property_has_tooltip() to true * and of the default handler for the Gtk::StatusIcon::signal_query_tooltip() signal. * * See also the Gtk::StatusIcon::property_tooltip_markup() property and * Gtk::Tooltip::set_markup(). * * @newin{2,16} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @param markup The contents of the tooltip for @a status_icon, or nullptr. */ void set_tooltip_markup(const Glib::ustring& markup); /** Sets the title of this tray icon. * This should be a short, human-readable, localized string * describing the tray icon. It may be used by tools like screen * readers to render the tray icon. * * @newin{2,18} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; you should use Glib::notification_set_title() * and Glib::notification_set_body() to present text inside your notification * * @param title The title. */ void set_title(const Glib::ustring& title); /** Gets the title of this tray icon. See set_title(). * * @newin{2,18} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return The title of the status icon. */ Glib::ustring get_title() const; /** Sets the name of this tray icon. * This should be a string identifying this icon. It is may be * used for sorting the icons in the tray and will not be shown to * the user. * * @newin{2,20} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function, as notifications are associated with a * unique application identifier by Gio::Application * * @param name The name. */ void set_name(const Glib::ustring& name); /** This function is only useful on the X11/freedesktop.org platform. * * It returns a window ID for the widget in the underlying * status icon implementation. This is useful for the Galago * notification service, which can send a window ID in the protocol * in order for the server to position notification windows * pointing to a status icon reliably. * * This function is not intended for other use cases which are * more likely to be met by one of the non-X11 specific methods, such * as position_menu(). * * @newin{2,14} * * Deprecated: 3.14: Use Notification and Gtk::Application to * provide status notifications; there is no direct replacement * for this function * * @return An 32 bit unsigned integer identifier for the * underlying X11 Window. */ guint32 get_x11_window_id() const; /** A GdkPixbuf to display. * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf() ; /** A GdkPixbuf to display. * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_pixbuf() const; /** Filename to load and display. * * Default value: "" * * @return A PropertyProxy_WriteOnly that allows you to set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_WriteOnly< std::string > property_file() ; #ifndef GTKMM_DISABLE_DEPRECATED /** Stock ID for a stock image to display. * * Deprecated: 3.10: Use Gtk::StatusIcon::property_icon_name() instead. * * @deprecated Use property_icon_name() instead. * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< StockID > property_stock() ; /** Stock ID for a stock image to display. * * Deprecated: 3.10: Use Gtk::StatusIcon::property_icon_name() instead. * * @deprecated Use property_icon_name() instead. * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< StockID > property_stock() const; #endif // GTKMM_DISABLE_DEPRECATED /** The name of the icon from the icon theme. * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::ustring > property_icon_name() ; /** The name of the icon from the icon theme. * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::ustring > property_icon_name() const; /** The Gio::Icon displayed in the Gtk::StatusIcon. For themed icons, * the image will be updated automatically if the theme changes. * * @newin{2,14} * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_gicon() ; /** The Gio::Icon displayed in the Gtk::StatusIcon. For themed icons, * the image will be updated automatically if the theme changes. * * @newin{2,14} * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_gicon() const; /** The representation being used for image data. * * Default value: Gtk::IMAGE_EMPTY * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< ImageType > property_storage_type() const; /** The size of the icon. * * Default value: 0 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< int > property_size() const; /** The screen where this status icon will be displayed. * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_screen() ; /** The screen where this status icon will be displayed. * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_screen() const; /** Whether the status icon is visible. * * Default value: true * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_visible() ; /** Whether the status icon is visible. * * Default value: true * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_visible() const; /** true if the statusicon is embedded in a notification area. * * @newin{2,12} * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_embedded() const; /** The orientation of the tray in which the statusicon * is embedded. * * @newin{2,12} * * Default value: Gtk::ORIENTATION_HORIZONTAL * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Orientation > property_orientation() const; /** Enables or disables the emission of Gtk::StatusIcon::signal_query_tooltip() on * @a status_icon. A value of true indicates that @a status_icon can have a * tooltip, in this case the status icon will be queried using * Gtk::StatusIcon::signal_query_tooltip() to determine whether it will provide a * tooltip or not. * * Note that setting this property to true for the first time will change * the event masks of the windows of this status icon to include leave-notify * and motion-notify events. This will not be undone when the property is set * to false again. * * Whether this property is respected is platform dependent. * For plain text tooltips, use Gtk::StatusIcon::property_tooltip_text() in preference. * * @newin{2,16} * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_has_tooltip() ; /** Enables or disables the emission of Gtk::StatusIcon::signal_query_tooltip() on * @a status_icon. A value of true indicates that @a status_icon can have a * tooltip, in this case the status icon will be queried using * Gtk::StatusIcon::signal_query_tooltip() to determine whether it will provide a * tooltip or not. * * Note that setting this property to true for the first time will change * the event masks of the windows of this status icon to include leave-notify * and motion-notify events. This will not be undone when the property is set * to false again. * * Whether this property is respected is platform dependent. * For plain text tooltips, use Gtk::StatusIcon::property_tooltip_text() in preference. * * @newin{2,16} * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_has_tooltip() const; /** Sets the text of tooltip to be the given string. * * Also see Gtk::Tooltip::set_text(). * * This is a convenience property which will take care of getting the * tooltip shown if the given string is not nullptr. * Gtk::StatusIcon::property_has_tooltip() will automatically be set to true and * the default handler for the Gtk::StatusIcon::signal_query_tooltip() signal * will take care of displaying the tooltip. * * Note that some platforms have limitations on the length of tooltips * that they allow on status icons, e.g. Windows only shows the first * 64 characters. * * @newin{2,16} * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::ustring > property_tooltip_text() ; /** Sets the text of tooltip to be the given string. * * Also see Gtk::Tooltip::set_text(). * * This is a convenience property which will take care of getting the * tooltip shown if the given string is not nullptr. * Gtk::StatusIcon::property_has_tooltip() will automatically be set to true and * the default handler for the Gtk::StatusIcon::signal_query_tooltip() signal * will take care of displaying the tooltip. * * Note that some platforms have limitations on the length of tooltips * that they allow on status icons, e.g. Windows only shows the first * 64 characters. * * @newin{2,16} * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::ustring > property_tooltip_text() const; /** Sets the text of tooltip to be the given string, which is marked up * with the [Pango text markup language][PangoMarkupFormat]. * Also see Gtk::Tooltip::set_markup(). * * This is a convenience property which will take care of getting the * tooltip shown if the given string is not nullptr. * Gtk::StatusIcon::property_has_tooltip() will automatically be set to true and * the default handler for the Gtk::StatusIcon::signal_query_tooltip() signal * will take care of displaying the tooltip. * * On some platforms, embedded markup will be ignored. * * @newin{2,16} * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::ustring > property_tooltip_markup() ; /** Sets the text of tooltip to be the given string, which is marked up * with the [Pango text markup language][PangoMarkupFormat]. * Also see Gtk::Tooltip::set_markup(). * * This is a convenience property which will take care of getting the * tooltip shown if the given string is not nullptr. * Gtk::StatusIcon::property_has_tooltip() will automatically be set to true and * the default handler for the Gtk::StatusIcon::signal_query_tooltip() signal * will take care of displaying the tooltip. * * On some platforms, embedded markup will be ignored. * * @newin{2,16} * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::ustring > property_tooltip_markup() const; /** The title of this tray icon. This should be a short, human-readable, * localized string describing the tray icon. It may be used by tools * like screen readers to render the tray icon. * * @newin{2,18} * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::ustring > property_title() ; /** The title of this tray icon. This should be a short, human-readable, * localized string describing the tray icon. It may be used by tools * like screen readers to render the tray icon. * * @newin{2,18} * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::ustring > property_title() const; /** * @par Slot Prototype: * bool on_my_%size_changed(int size) * * Flags: Run Last * * Gets emitted when the size available for the image * changes, e.g.\ because the notification area got resized. * * @newin{2,10} * * @param size The new size. * @return true if the icon was updated for the new * size. Otherwise, GTK+ will scale the icon as necessary. */ Glib::SignalProxy< bool,int > signal_size_changed(); /** * @par Slot Prototype: * void on_my_%activate() * * Flags: Run First, Action * * Gets emitted when the user activates the status icon. * If and how status icons can activated is platform-dependent. * * Unlike most G_SIGNAL_ACTION signals, this signal is meant to * be used by applications and should be wrapped by language bindings. * * @newin{2,10} */ Glib::SignalProxy< void > signal_activate(); /** * @par Slot Prototype: * void on_my_%popup_menu(guint button, guint32 activate_time) * * Flags: Run First, Action * * Gets emitted when the user brings up the context menu * of the status icon. Whether status icons can have context * menus and how these are activated is platform-dependent. * * The @a button and @a activate_time parameters should be * passed as the last to arguments to Gtk::Menu::popup(). * * Unlike most G_SIGNAL_ACTION signals, this signal is meant to * be used by applications and should be wrapped by language bindings. * * @newin{2,10} * * @param button The button that was pressed, or 0 if the * signal is not emitted in response to a button press event. * @param activate_time The timestamp of the event that * triggered the signal emission. */ Glib::SignalProxy< void,guint,guint32 > signal_popup_menu(); /** * @par Slot Prototype: * bool on_my_%button_press_event(GdkEventButton* event) * * Flags: Run Last * * The signal_button_press_event() signal will be emitted when a button * (typically from a mouse) is pressed. * * Whether this event is emitted is platform-dependent. Use the signal_activate() * and signal_popup_menu() signals in preference. * * @newin{2,14} * * @param event The Gdk::EventButton which triggered * this signal. * @return true to stop other handlers from being invoked * for the event. false to propagate the event further. */ Glib::SignalProxy< bool,GdkEventButton* > signal_button_press_event(); /** * @par Slot Prototype: * bool on_my_%button_release_event(GdkEventButton* event) * * Flags: Run Last * * The signal_button_release_event() signal will be emitted when a button * (typically from a mouse) is released. * * Whether this event is emitted is platform-dependent. Use the signal_activate() * and signal_popup_menu() signals in preference. * * @newin{2,14} * * @param event The Gdk::EventButton which triggered * this signal. * @return true to stop other handlers from being invoked * for the event. false to propagate the event further. */ Glib::SignalProxy< bool,GdkEventButton* > signal_button_release_event(); /** * @par Slot Prototype: * bool on_my_%scroll_event(GdkEventScroll* event) * * Flags: Run Last * * The signal_scroll_event() signal is emitted when a button in the 4 to 7 * range is pressed. Wheel mice are usually configured to generate * button press events for buttons 4 and 5 when the wheel is turned. * * Whether this event is emitted is platform-dependent. * * @newin{2,16} * * @param event The Gdk::EventScroll which triggered * this signal. * @return true to stop other handlers from being invoked for the event. * false to propagate the event further. */ Glib::SignalProxy< bool,GdkEventScroll* > signal_scroll_event(); /** * @par Slot Prototype: * bool on_my_%query_tooltip(int x, int y, bool keyboard_mode, const Glib::RefPtr& tooltip) * * Flags: Run Last * * Emitted when the hover timeout has expired with the * cursor hovering above @a status_icon; or emitted when @a status_icon got * focus in keyboard mode. * * Using the given coordinates, the signal handler should determine * whether a tooltip should be shown for @a status_icon. If this is * the case true should be returned, false otherwise. Note that if * @a keyboard_mode is true, the values of @a x and @a y are undefined and * should not be used. * * The signal handler is free to manipulate @a tooltip with the therefore * destined function calls. * * Whether this signal is emitted is platform-dependent. * For plain text tooltips, use Gtk::StatusIcon::property_tooltip_text() in preference. * * @newin{2,16} * * @param x The x coordinate of the cursor position where the request has been * emitted, relative to @a status_icon. * @param y The y coordinate of the cursor position where the request has been * emitted, relative to @a status_icon. * @param keyboard_mode true if the tooltip was trigged using the keyboard. * @param tooltip A Gtk::Tooltip. * @return true if @a tooltip should be shown right now, false otherwise. */ Glib::SignalProxy< bool,int,int,bool,const Glib::RefPtr& > signal_query_tooltip(); public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: /// This is a default handler for the signal signal_size_changed(). virtual bool on_size_changed(int size); /// This is a default handler for the signal signal_activate(). virtual void on_activate(); /// This is a default handler for the signal signal_popup_menu(). virtual void on_popup_menu(guint button, guint32 activate_time); /// This is a default handler for the signal signal_button_press_event(). virtual bool on_button_press_event(GdkEventButton* event); /// This is a default handler for the signal signal_button_release_event(). virtual bool on_button_release_event(GdkEventButton* event); /// This is a default handler for the signal signal_scroll_event(). virtual bool on_scroll_event(GdkEventScroll* event); /// This is a default handler for the signal signal_query_tooltip(). virtual bool on_query_tooltip(int x, int y, bool keyboard_mode, const Glib::RefPtr& tooltip); }; } // namespace Gtk namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gtk::StatusIcon */ GTKMM_API Glib::RefPtr wrap(GtkStatusIcon* object, bool take_copy = false); } #endif // GTKMM_DISABLE_DEPRECATED #endif /* _GTKMM_STATUSICON_H */