// -*- c++ -*- // Generated by gtkmmproc -- DO NOT MODIFY! #ifndef _GTKMM_STATUSICON_H #define _GTKMM_STATUSICON_H #include /* $Id: statusicon.hg,v 1.6 2006/07/05 16:59:28 murrayc Exp $ */ /* 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 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. */ #include //For ImageType. #include #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GtkStatusIcon GtkStatusIcon; typedef struct _GtkStatusIconClass GtkStatusIconClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { class StatusIcon_Class; } // namespace Gtk 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. * * @newin2p10 */ class StatusIcon : public Glib::Object { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: typedef StatusIcon CppObjectType; typedef StatusIcon_Class CppClassType; typedef GtkStatusIcon BaseObjectType; typedef GtkStatusIconClass BaseClassType; private: friend class StatusIcon_Class; static CppClassType statusicon_class_; private: // noncopyable StatusIcon(const StatusIcon&); StatusIcon& operator=(const StatusIcon&); protected: explicit StatusIcon(const Glib::ConstructParams& construct_params); explicit StatusIcon(GtkStatusIcon* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: virtual ~StatusIcon(); #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_type() G_GNUC_CONST; 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); explicit StatusIcon(const StockID& stock); explicit StatusIcon(const Glib::ustring& icon_name); 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); static Glib::RefPtr create(const StockID& stock_id); 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 * * @newin2p10 */ static Glib::RefPtr create_from_file(const std::string& filename); void set(const Glib::RefPtr& pixbuf); void set_from_file(const Glib::ustring& filename); void set(const StockID& stock_id); void set(const Glib::ustring& icon_name); ImageType get_storage_type() const; Glib::RefPtr get_pixbuf(); Glib::RefPtr get_pixbuf() const; StockID get_stock() const; Glib::ustring get_icon_name() const; int get_size() const; void set_tooltip(const Glib::ustring& tooltip_text); void set_visible(bool visible = true); bool get_visible() const; void set_blinking(bool blinking = true); bool get_blinking() const; bool is_embedded() const; //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 gtk_status_icon_position_menu() 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. * * @newin2p10 */ bool get_geometry(Glib::RefPtr& screen, Gdk::Rectangle& area, Orientation& orientation); #ifdef GLIBMM_PROPERTIES_ENABLED /** A GdkPixbuf to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** A GdkPixbuf to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_pixbuf() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Filename to load and display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_WriteOnly property_file() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Stock ID for a stock image to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_stock() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Stock ID for a stock image to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_stock() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** The name of the icon from the icon theme. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_icon_name() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** The name of the icon from the icon theme. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_icon_name() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** The representation being used for image data. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_storage_type() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** The size of the icon. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_size() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether or not the status icon is blinking. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_blinking() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether or not the status icon is blinking. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_blinking() const; #endif //#GLIBMM_PROPERTIES_ENABLED /** * @par Prototype: * bool %size_changed(int size) */ Glib::SignalProxy1< bool,int > signal_size_changed(); //Keybinding signal. //Keybinding signal. public: public: //C++ methods used to invoke GTK+ virtual functions: #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED protected: //GTK+ Virtual Functions (override these to change behaviour): #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED //Default Signal Handlers:: #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED virtual bool on_size_changed(int size); #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED }; } // namespace Gtk namespace Glib { /** @relates Gtk::StatusIcon * @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. */ Glib::RefPtr wrap(GtkStatusIcon* object, bool take_copy = false); } #endif /* _GTKMM_STATUSICON_H */