//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  An action for switching between to/from full screen mode. Note that
    ///  QWidget.IsFullScreen() may reflect the new or the old state
    ///  depending on how the action was triggered (by the application or
    ///  from the window manager). Also don't try to track the window state
    ///  yourself. Rely on this action's state (isChecked()) instead.
    ///  Important: If you need to set/change the fullscreen state manually,
    ///  use KToggleFullScreenAction.SetFullScreen() or a similar function,
    ///  do not call directly the slot connected to the toggled() signal. The slot
    ///  still needs to explicitly set the window state though.
    ///  Note: Do NOT use QWidget.ShowFullScreen() or QWidget.ShowNormal().
    ///  They have several side-effects besides just switching the fullscreen
    ///  state (for example, showNormal() resets all window states, not just
    ///  fullscreen). Use the KToggleFullScreenAction.SetFullScreen() helper function.
    ///  </remarks>        <short>    An action for switching between to/from full screen mode.</short>
    [SmokeClass("KToggleFullScreenAction")]
    public class KToggleFullScreenAction : KToggleAction, IDisposable {
        protected KToggleFullScreenAction(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KToggleFullScreenAction), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static KToggleFullScreenAction() {
            staticInterceptor = new SmokeInvocation(typeof(KToggleFullScreenAction), null);
        }
        /// <remarks>
        ///  Create a KToggleFullScreenAction. Call setWindow() to associate this
        ///  action with a window.
        /// <param> name="parent" This action's parent object.
        ///      </param></remarks>        <short>    Create a KToggleFullScreenAction.</short>
        public KToggleFullScreenAction(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KToggleFullScreenAction#", "KToggleFullScreenAction(QObject*)", typeof(void), typeof(QObject), parent);
        }
        /// <remarks>
        ///  Create a KToggleFullScreenAction
        /// <param> name="window" the window that will switch to/from full screen mode
        /// </param><param> name="parent" This action's parent object.
        ///      </param></remarks>        <short>    Create a KToggleFullScreenAction </short>
        public KToggleFullScreenAction(QWidget window, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KToggleFullScreenAction##", "KToggleFullScreenAction(QWidget*, QObject*)", typeof(void), typeof(QWidget), window, typeof(QObject), parent);
        }
        /// <remarks>
        ///  Sets the window that will be related to this action.
        ///      </remarks>        <short>    Sets the window that will be related to this action.</short>
        public void SetWindow(QWidget window) {
            interceptor.Invoke("setWindow#", "setWindow(QWidget*)", typeof(void), typeof(QWidget), window);
        }
        [SmokeMethod("eventFilter(QObject*, QEvent*)")]
        protected override bool EventFilter(QObject arg1, QEvent arg2) {
            return (bool) interceptor.Invoke("eventFilter##", "eventFilter(QObject*, QEvent*)", typeof(bool), typeof(QObject), arg1, typeof(QEvent), arg2);
        }
        ~KToggleFullScreenAction() {
            interceptor.Invoke("~KToggleFullScreenAction", "~KToggleFullScreenAction()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KToggleFullScreenAction", "~KToggleFullScreenAction()", typeof(void));
        }
        /// <remarks>
        ///  Helper function to set or reset the fullscreen state of a window.
        ///  Use this function rather than showFullScreen()/showNormal() QWidget functions.
        /// </remarks>        <short>    Helper function to set or reset the fullscreen state of a window.</short>
        public static void SetFullScreen(QWidget window, bool set) {
            staticInterceptor.Invoke("setFullScreen#$", "setFullScreen(QWidget*, bool)", typeof(void), typeof(QWidget), window, typeof(bool), set);
        }
        protected new IKToggleFullScreenActionSignals Emit {
            get { return (IKToggleFullScreenActionSignals) Q_EMIT; }
        }
    }

    public interface IKToggleFullScreenActionSignals : IKToggleActionSignals {
    }
}
