//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  \brief %KDE System Tray Window class
    ///  This class implements system tray windows.
    ///  A tray window is a small window (typically 22x22 pixel) that docks
    ///  into the system tray in the desktop panel. It usually displays an
    ///  icon or an animated icon there. The icon represents
    ///  the application, similar to a taskbar button, but consumes less
    ///  screen space.
    ///  When the user clicks with the left mouse button on the icon, the
    ///  main application window is shown/raised and activated. With the
    ///  right mouse button, she gets a popupmenu with application specific
    ///  commands, including "Minimize/Restore" and "Quit".
    ///  Please note that QSystemTrayIcon.ShowMessage(..) should not be
    ///  used for KDE application because the popup message has no KDE standard
    ///  look & feel and cannot be controlled by KDE configurations. 
    ///  Use KNotification or KPassivePopup instead.
    ///  See <see cref="IKSystemTrayIconSignals"></see> for signals emitted by KSystemTrayIcon
    /// </remarks>        <author> Matthias Ettrich <ettrich@kde.org>
    /// </author>
    ///         <short>    \brief %KDE System Tray Window class </short>
    [SmokeClass("KSystemTrayIcon")]
    public class KSystemTrayIcon : QSystemTrayIcon, IDisposable {
        protected KSystemTrayIcon(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KSystemTrayIcon), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static KSystemTrayIcon() {
            staticInterceptor = new SmokeInvocation(typeof(KSystemTrayIcon), null);
        }
        /// <remarks>
        ///  Construct a system tray icon.
        ///  The parent widget <code>parent</code> has a special meaning:
        ///  Besides owning the tray window, the parent widget will
        ///  dissappear from taskbars when it is iconified while the tray
        ///  window is visible. This is the desired behavior. After all,
        ///  the tray window <code>is</code> the parent's taskbar icon.
        ///  Furthermore, the parent widget is shown or raised respectively
        ///  when the user clicks on the tray window with the left mouse
        ///  button.
        /// </remarks>        <short>    Construct a system tray icon.</short>
        public KSystemTrayIcon(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTrayIcon#", "KSystemTrayIcon(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public KSystemTrayIcon() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTrayIcon", "KSystemTrayIcon()", typeof(void));
        }
        /// <remarks>
        ///  Same as above but allows one to define the icon by name that should
        ///  be used for the system tray icon.
        ///      </remarks>        <short>    Same as above but allows one to define the icon by name that should  be used for the system tray icon.</short>
        public KSystemTrayIcon(string icon, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTrayIcon$#", "KSystemTrayIcon(const QString&, QWidget*)", typeof(void), typeof(string), icon, typeof(QWidget), parent);
        }
        public KSystemTrayIcon(string icon) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTrayIcon$", "KSystemTrayIcon(const QString&)", typeof(void), typeof(string), icon);
        }
        /// <remarks>
        ///  Same as above but allows one to define the icon by name that should
        ///  be used for the system tray icon.
        ///      </remarks>        <short>    Same as above but allows one to define the icon by name that should  be used for the system tray icon.</short>
        public KSystemTrayIcon(QIcon icon, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTrayIcon##", "KSystemTrayIcon(const QIcon&, QWidget*)", typeof(void), typeof(QIcon), icon, typeof(QWidget), parent);
        }
        public KSystemTrayIcon(QIcon icon) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTrayIcon#", "KSystemTrayIcon(const QIcon&)", typeof(void), typeof(QIcon), icon);
        }
        /// <remarks>
        ///        Easy access to the actions in the context menu
        ///        Currently includes KStandardAction.Quit and minimizeRestore
        ///     </remarks>        <short>          Easy access to the actions in the context menu        Currently includes KStandardAction.Quit and minimizeRestore     </short>
        public KActionCollection ActionCollection() {
            return (KActionCollection) interceptor.Invoke("actionCollection", "actionCollection()", typeof(KActionCollection));
        }
        /// <remarks> 
        ///        Returns the QWidget set by the constructor
        ///     </remarks>        <short>           Returns the QWidget set by the constructor     </short>
        public QWidget ParentWidget() {
            return (QWidget) interceptor.Invoke("parentWidget", "parentWidget() const", typeof(QWidget));
        }
        /// <remarks>
        ///        Function to be used from function handling closing of the window associated 
        ///        with the tray icon (i.e. QWidget.CloseEvent(), KMainWindow.QueryClose() or 
        ///        similar). When false is returned, the window closing should proceed normally, 
        ///        when true is returned, special systray-related handling should take place.
        ///      </remarks>        <short>          Function to be used from function handling closing of the window associated         with the tray icon (i.</short>
        public bool ParentWidgetTrayClose() {
            return (bool) interceptor.Invoke("parentWidgetTrayClose", "parentWidgetTrayClose() const", typeof(bool));
        }
        /// <remarks>
        ///  Sets the context menu title action to <code>action.</code>
        ///  The following code shows how to change the current title.
        ///  <code>
        ///  QAction titleAction = contextMenuTitle();
        ///  titleAction.SetText("New Title");
        ///  setContextMenuTitle(titleAction);
        ///  </code>
        /// </remarks>        <short>    Sets the context menu title action to <code>action.</code></short>
        public void SetContextMenuTitle(QAction action) {
            interceptor.Invoke("setContextMenuTitle#", "setContextMenuTitle(QAction*)", typeof(void), typeof(QAction), action);
        }
        /// <remarks>
        ///  Returns the context menu title action.
        /// </remarks>        <short>    Returns the context menu title action.</short>
        public QAction ContextMenuTitle() {
            return (QAction) interceptor.Invoke("contextMenuTitle", "contextMenuTitle() const", typeof(QAction));
        }
        [Q_SLOT("void toggleActive()")]
        public void ToggleActive() {
            interceptor.Invoke("toggleActive", "toggleActive()", typeof(void));
        }
        ~KSystemTrayIcon() {
            interceptor.Invoke("~KSystemTrayIcon", "~KSystemTrayIcon()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KSystemTrayIcon", "~KSystemTrayIcon()", typeof(void));
        }
        /// <remarks>
        ///  Loads an icon <code>icon</code> using the icon loader class of the given componentData <code>componentData.</code>
        ///  The icon is applied the panel effect as it should only be used to be shown in the
        ///  system tray.
        ///  It's commonly used in the form : systray.SetPixmap( systray.LoadIcon( "mysystray" ) );
        ///      </remarks>        <short>    Loads an icon <code>icon</code> using the icon loader class of the given componentData <code>componentData.</code></short>
        public static QIcon LoadIcon(string icon, KComponentData componentData) {
            return (QIcon) staticInterceptor.Invoke("loadIcon$#", "loadIcon(const QString&, const KComponentData&)", typeof(QIcon), typeof(string), icon, typeof(KComponentData), componentData);
        }
        public static QIcon LoadIcon(string icon) {
            return (QIcon) staticInterceptor.Invoke("loadIcon$", "loadIcon(const QString&)", typeof(QIcon), typeof(string), icon);
        }
        protected new IKSystemTrayIconSignals Emit {
            get { return (IKSystemTrayIconSignals) Q_EMIT; }
        }
    }

    public interface IKSystemTrayIconSignals : IQSystemTrayIconSignals {
        /// <remarks>
        ///  Emitted when quit is selected in the menu. If you want to perform any other
        ///  action than to close the main application window please connect to this signal.
        ///      </remarks>        <short>    Emitted when quit is selected in the menu.</short>
        [Q_SIGNAL("void quitSelected()")]
        void QuitSelected();
    }
}
