//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 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.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.


class KBookmarkMenu : QObject
{
%TypeHeaderCode
#include <kbookmarkmenu.h>
%End


public:
                            KBookmarkMenu (KBookmarkManager* mgr, KBookmarkOwner* owner, KMenu* parentMenu, KActionCollection* collec);
                            KBookmarkMenu (KBookmarkManager* mgr, KBookmarkOwner* owner, KMenu* parentMenu, const QString& parentAddress);
    void                    ensureUpToDate ();
    void                    slotBookmarksChanged (const QString&);

protected:
    void                    slotAboutToShow ();
    void                    slotAddBookmarksList ();
    void                    slotAddBookmark ();
    void                    slotNewFolder ();
    void                    slotOpenFolderInTabs ();
    virtual void            clear ();
    virtual void            refill ();
    virtual QAction*        actionForBookmark (const KBookmark& bm);
    virtual KMenu*          contextMenu (QAction* action);
    void                    addActions ();
    void                    fillBookmarks ();
    void                    addAddBookmark ();
    void                    addAddBookmarksList ();
    void                    addEditBookmarks ();
    void                    addNewFolder ();
    void                    addOpenInTabs ();
    bool                    isRoot () const;
    bool                    isDirty () const;
    QString                 parentAddress () const;
    KBookmarkManager*       manager () const;
    KBookmarkOwner*         owner () const;
    KMenu*                  parentMenu () const;
};   // KBookmarkMenu


class KBookmarkContextMenu : KMenu
{
%TypeHeaderCode
#include <kbookmarkmenu.h>
%End


public:
                            KBookmarkContextMenu (const KBookmark& bm, KBookmarkManager* manager, KBookmarkOwner* owner, QWidget* parent /TransferThis/ = 0);
    virtual void            addActions ();
    void                    slotEditAt ();
    void                    slotProperties ();
    void                    slotInsert ();
    void                    slotRemove ();
    void                    slotCopyLocation ();
    void                    slotOpenFolderInTabs ();

protected:
    void                    addBookmark ();
    void                    addFolderActions ();
    void                    addProperties ();
    void                    addBookmarkActions ();
    void                    addOpenFolderInTabs ();
    KBookmarkManager*       manager () const;
    KBookmarkOwner*         owner () const;
    KBookmark               bookmark () const;
};   // KBookmarkContextMenu


class KBookmarkActionInterface
{
%TypeHeaderCode
#include <kbookmarkmenu.h>
%End


public:
                            KBookmarkActionInterface (const KBookmark& bk);
    const KBookmark         bookmark () const;
};   // KBookmarkActionInterface


class KBookmarkActionMenu : KActionMenu, KBookmarkActionInterface
{
%TypeHeaderCode
#include <kbookmarkmenu.h>
%End


public:
                            KBookmarkActionMenu (const KBookmark& bm, QObject* parent /TransferThis/);
                            KBookmarkActionMenu (const KBookmark& bm, const QString& text, QObject* parent /TransferThis/);
};   // KBookmarkActionMenu


class KBookmarkAction : KAction, KBookmarkActionInterface
{
%TypeHeaderCode
#include <kbookmarkmenu.h>
%End


public:
                            KBookmarkAction (const KBookmark& bk, KBookmarkOwner* owner, QObject* parent /TransferThis/);
    void                    slotSelected (Qt::MouseButtons mb, Qt::KeyboardModifiers km);
};   // KBookmarkAction


