//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  This class is a widget showing a lineedit and a button, which invokes a
    ///  filedialog. File name completion is available in the lineedit.
    ///  The defaults for the filedialog are to ask for one existing local file, i.e.
    ///  KFileDialog.SetMode( KFile.File | KFile.ExistingOnly | KFile.LocalOnly )
    ///  The default filter is "*", i.e. show all files, and the start directory is
    ///  the current working directory, or the last directory where a file has been
    ///  selected.
    ///  You can change this behavior by using setMode() or setFilter().
    ///  \image html kurlrequester.png "KDE URL Requester"
    ///  See <see cref="IKUrlRequesterSignals"></see> for signals emitted by KUrlRequester
    /// </remarks>        <author> Carsten Pfeiffer <pfeiffer@kde.org>
    ///  </author>
    ///         <short> A widget to request a filename/url from the user.</short>
    [SmokeClass("KUrlRequester")]
    public class KUrlRequester : KHBox, IDisposable {
        protected KUrlRequester(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KUrlRequester), this);
        }
        [Q_PROPERTY("KUrl", "url")]
        public KUrl Url {
            get { return (KUrl) interceptor.Invoke("url", "url()", typeof(KUrl)); }
            set { interceptor.Invoke("setUrl#", "setUrl(KUrl)", typeof(void), typeof(KUrl), value); }
        }
        [Q_PROPERTY("QString", "filter")]
        public string Filter {
            get { return (string) interceptor.Invoke("filter", "filter()", typeof(string)); }
            set { interceptor.Invoke("setFilter$", "setFilter(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("KFile::Modes", "mode")]
        public uint Mode {
            get { return (uint) interceptor.Invoke("mode", "mode()", typeof(uint)); }
            set { interceptor.Invoke("setMode$", "setMode(KFile::Modes)", typeof(void), typeof(uint), value); }
        }
        // const KEditListBox::CustomEditor& customEditor(); >>>> NOT CONVERTED
        /// <remarks>
        ///  Constructs a KUrlRequester widget.
        ///      </remarks>        <short>    Constructs a KUrlRequester widget.</short>
        public KUrlRequester(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KUrlRequester#", "KUrlRequester(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public KUrlRequester() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KUrlRequester", "KUrlRequester()", typeof(void));
        }
        /// <remarks>
        ///  Constructs a KUrlRequester widget with the initial URL <code>url.</code>
        ///      </remarks>        <short>    Constructs a KUrlRequester widget with the initial URL <code>url.</code></short>
        public KUrlRequester(KUrl url, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KUrlRequester##", "KUrlRequester(const KUrl&, QWidget*)", typeof(void), typeof(KUrl), url, typeof(QWidget), parent);
        }
        public KUrlRequester(KUrl url) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KUrlRequester#", "KUrlRequester(const KUrl&)", typeof(void), typeof(KUrl), url);
        }
        /// <remarks>
        ///  Special constructor, which creates a KUrlRequester widget with a custom
        ///  edit-widget. The edit-widget can be either a KComboBox or a KLineEdit
        ///  (or inherited thereof). Note: for geometry management reasons, the
        ///  edit-widget is reparented to have the KUrlRequester as parent.
        ///      </remarks>        <short>    Special constructor, which creates a KUrlRequester widget with a custom  edit-widget.</short>
        public KUrlRequester(QWidget editWidget, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KUrlRequester##", "KUrlRequester(QWidget*, QWidget*)", typeof(void), typeof(QWidget), editWidget, typeof(QWidget), parent);
        }
        /// <remarks>
        ///  Remove in KDE4? KUrlRequester should use KDirSelectDialog for
        ///  (mode & KFile.Directory) && !(mode & KFile.File)
        ///      </remarks>        <return> a pointer to the filedialog
        ///  You can use this to customize the dialog, e.g. to specify a filter.
        ///  Never returns 0L.
        /// </return>
        ///         <short>   </short>
        [SmokeMethod("fileDialog() const")]
        public virtual KFileDialog FileDialog() {
            return (KFileDialog) interceptor.Invoke("fileDialog", "fileDialog() const", typeof(KFileDialog));
        }
        /// <remarks>
        ///  It is provided so that you can e.g. set an own completion object
        ///  (e.g. KShellCompletion) into it.
        ///      </remarks>        <return> a pointer to the lineedit, either the default one, or the
        ///  special one, if you used the special constructor.
        /// </return>
        ///         <short>   </short>
        public KLineEdit LineEdit() {
            return (KLineEdit) interceptor.Invoke("lineEdit", "lineEdit() const", typeof(KLineEdit));
        }
        /// <remarks>
        /// </remarks>        <return> a pointer to the combobox, in case you have set one using the
        ///  special constructor. Returns 0L otherwise.
        ///      </return>
        ///         <short>   </short>
        public KComboBox ComboBox() {
            return (KComboBox) interceptor.Invoke("comboBox", "comboBox() const", typeof(KComboBox));
        }
        /// <remarks>
        /// </remarks>        <return> a pointer to the pushbutton. It is provided so that you can
        ///  specify an own pixmap or a text, if you really need to.
        ///      </return>
        ///         <short>   </short>
        public KPushButton Button() {
            return (KPushButton) interceptor.Invoke("button", "button() const", typeof(KPushButton));
        }
        /// <remarks>
        /// </remarks>        <return> the KUrlCompletion object used in the lineedit/combobox.
        ///      </return>
        ///         <short>   </short>
        public KUrlCompletion CompletionObject() {
            return (KUrlCompletion) interceptor.Invoke("completionObject", "completionObject() const", typeof(KUrlCompletion));
        }
        /// <remarks>
        /// </remarks>        <return> an object, suitable for use with KEditListBox. It allows you
        ///  to put this KUrlRequester into a KEditListBox.
        ///  Basically, do it like this:
        ///  <pre>
        ///  KUrlRequester *req = new KUrlRequester( someWidget );
        ///  [...]
        ///  KEditListBox *editListBox = new KEditListBox( i18n("Some Title"), req.CustomEditor(), someWidget );
        ///  </pre>
        ///      </return>
        ///         <short>   </short>
        /// <remarks>
        ///  Sets the url in the lineedit to <code>url.</code>
        ///      </remarks>        <short>    Sets the url in the lineedit to <code>url.</code></short>
        [Q_SLOT("void setUrl(KUrl)")]
        public void SetUrl(KUrl url) {
            interceptor.Invoke("setUrl#", "setUrl(const KUrl&)", typeof(void), typeof(KUrl), url);
        }
        /// <remarks>
        ///  Sets the url in the lineedit to <code>KUrl</code>.FromPath(path).
        ///  This is only for local paths; do not pass a url here.
        ///  This method is mostly for "local paths only" url requesters,
        ///  for instance those set up with setMode(KFile.File|KFile.ExistingOnly|KFile.LocalOnly)
        ///      </remarks>        <short>    Sets the url in the lineedit to <code>KUrl</code>.FromPath(path).</short>
        [Q_SLOT("void setPath(QString)")]
        public void SetPath(string path) {
            interceptor.Invoke("setPath$", "setPath(const QString&)", typeof(void), typeof(string), path);
        }
        /// <remarks>
        ///  Clears the lineedit/combobox.
        ///      </remarks>        <short>    Clears the lineedit/combobox.</short>
        [Q_SLOT("void clear()")]
        public void Clear() {
            interceptor.Invoke("clear", "clear()", typeof(void));
        }
        [SmokeMethod("changeEvent(QEvent*)")]
        protected override void ChangeEvent(QEvent e) {
            interceptor.Invoke("changeEvent#", "changeEvent(QEvent*)", typeof(void), typeof(QEvent), e);
        }
        [SmokeMethod("eventFilter(QObject*, QEvent*)")]
        protected new virtual bool EventFilter(QObject arg1, QEvent ev) {
            return (bool) interceptor.Invoke("eventFilter##", "eventFilter(QObject*, QEvent*)", typeof(bool), typeof(QObject), arg1, typeof(QEvent), ev);
        }
        ~KUrlRequester() {
            interceptor.Invoke("~KUrlRequester", "~KUrlRequester()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KUrlRequester", "~KUrlRequester()", typeof(void));
        }
        protected new IKUrlRequesterSignals Emit {
            get { return (IKUrlRequesterSignals) Q_EMIT; }
        }
    }

    public interface IKUrlRequesterSignals : IKHBoxSignals {
        /// <remarks>
        ///  Emitted when the text in the lineedit changes.
        ///  The parameter contains the contents of the lineedit.
        ///      </remarks>        <short>    Emitted when the text in the lineedit changes.</short>
        [Q_SIGNAL("void textChanged(QString)")]
        void TextChanged(string arg1);
        /// <remarks>
        ///  Emitted when return or enter was pressed in the lineedit.
        ///      </remarks>        <short>    Emitted when return or enter was pressed in the lineedit.</short>
        [Q_SIGNAL("void returnPressed()")]
        void ReturnPressed();
        /// <remarks>
        ///  Emitted when return or enter was pressed in the lineedit.
        ///  The parameter contains the contents of the lineedit.
        ///      </remarks>        <short>    Emitted when return or enter was pressed in the lineedit.</short>
        [Q_SIGNAL("void returnPressed(QString)")]
        void ReturnPressed(string arg1);
        /// <remarks>
        ///  Emitted before the filedialog is going to open. Connect
        ///  to this signal to "configure" the filedialog, e.g. set the
        ///  filefilter, the mode, a preview-widget, etc. It's usually
        ///  not necessary to set a URL for the filedialog, as it will
        ///  get set properly from the editfield contents.
        ///  If you use multiple KUrlRequesters, you can connect all of them
        ///  to the same slot and use the given KUrlRequester pointer to know
        ///  which one is going to open.
        ///      </remarks>        <short>    Emitted before the filedialog is going to open.</short>
        [Q_SIGNAL("void openFileDialog(KUrlRequester*)")]
        void OpenFileDialog(KUrlRequester arg1);
        /// <remarks>
        ///  Emitted when the user changed the URL via the file dialog.
        ///  The parameter contains the contents of the lineedit.
        ///      </remarks>        <short>    Emitted when the user changed the URL via the file dialog.</short>
        [Q_SIGNAL("void urlSelected(KUrl)")]
        void UrlSelected(KUrl arg1);
    }
}
