/*
   This file is part of Kirigami
   Copyright (C) 2016 Marco Martin <mart@kde.org>

   This program 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, or
   (at your option) any later version.

   This program 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 program; if not, write to the
   Free Software Foundation, Inc.,
   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/


/** \mainpage kirigami


\section overview Introduction
Kirigami is a set of QtQuick components at the moment targeted for mobile use (in the future desktop as well) targeting both Plasma Mobile and Android. It’s not a whole set of components, all the “Primitive” ones like buttons and textboxes are a job for QtQuickControls (soon QtQuickContrls2) but it’s a set of high level components to make the creation of applications that look and feel great on mobile as well as desktop devices and follow the <a href="https://community.kde.org/KDE_Visual_Design_Group/KirigamiHIG">Kirigami Human Interface Guidelines</a> .
The target of those components is anybody that wants to do an application using QtQuick as its main UI, especially if targeting a mobile platform, without adding many dependencies. They work on a variety of platforms, such as Plasma Mobile, Desktop Linux, Android and Windows.
It will eventually become a Tier-1 KDE Framework.

\section components Main Components
- \link org::kde::kirigami::ApplicationWindow  ApplicationWindow \endlink
- \link org::kde::kirigami::Action Action  \endlink
- \link org::kde::kirigami::GlobalDrawer GlobalDrawer  \endlink
- \link org::kde::kirigami::ContextDrawer ContextDrawer  \endlink
- \link org::kde::kirigami::OverlayDrawer OverlayDrawer  \endlink
- \link org::kde::kirigami::Page Page  \endlink
- \link org::kde::kirigami::ScrollablePage ScrollablePage  \endlink
- \link org::kde::kirigami::OverlaySheet  OverlaySheet \endlink
- \link org::kde::kirigami::Theme Theme  \endlink
- \link org::kde::kirigami::Units  Units \endlink
- \link org::kde::kirigami::Icon Icon  \endlink
- \link org::kde::kirigami::BasicListItem BasicListItem  \endlink
- \link org::kde::kirigami::AbstractApplicationHeader AbstractApplicationHeader  \endlink
- \link org::kde::kirigami::AbstractApplicationWindow AbstractApplicationWindow  \endlink
- \link org::kde::kirigami::AbstractListItem AbstractListItem  \endlink
- \link org::kde::kirigami::ApplicationHeader ApplicationHeader  \endlink
- \link org::kde::kirigami::BasicListItem BasicListItem  \endlink
- \link org::kde::kirigami::SwipeListItem  SwipeListItem \endlink
- \link org::kde::kirigami::Heading Heading  \endlink
- \link org::kde::kirigami::Label Label  \endlink
- \link org::kde::kirigami::SplitDrawer SplitDrawer  \endlink


\section example Minimal Example

@code
import QtQuick 2.1
import org.kde.kirigami 2.0 as Kirigami

Kirigami.ApplicationWindow {
    id: root

    globalDrawer: Kirigami.GlobalDrawer {
        title: "Hello App"
        titleIcon: "applications-graphics"

        actions: [
            Kirigami.Action {
                text: "View"
                iconName: "view-list-icons"
                Kirigami.Action {
                    text: "action 1"
                }
                Kirigami.Action {
                    text: "action 2"
                }
                Kirigami.Action {
                    text: "action 3"
                }
            },
            Kirigami.Action {
                text: "action 3"
            },
            Kirigami.Action {
                text: "action 4"
            }
            ]
    }
    contextDrawer: Kirigami.ContextDrawer {
        id: contextDrawer
    }

    pageStack.initialPage: mainPageComponent

    Component {
        id: mainPageComponent
        Kirigami.ScrollablePage {
            title: "Hello"
            actions {
                main: Action {
                    iconName: sheet.opened ? "dialog-cancel" : "document-edit"
                    onTriggered: {
                        print("Action button in buttons page clicked");
                        sheet.opened = !sheet.opened
                    }
                }
                left: Action {
                    iconName: "go-previous"
                    onTriggered: {
                        print("Left action triggered")
                    }
                }
                right: Action {
                    iconName: "go-next"
                    onTriggered: {
                        print("Right action triggered")
                    }
                }
                contextualActions: [
                    Action {
                        text:"Action for buttons"
                        iconName: "bookmarks"
                        onTriggered: print("Action 1 clicked")
                    },
                    Action {
                        text:"Action 2"
                        iconName: "folder"
                        enabled: false
                    },
                    Action {
                        text: "Action for Sheet"
                        visible: sheet.opened
                    }
                ]
            }
            //Page contents...
        }
    }
}
@endcode

@authors
Marco Martin \<notmart@gmail.com\><br>
Sebastian Kuegler \<sebas@kde.org\><br>
Aleix Pol Gonzalez \<aleixpol@kde.org\><br>
Dirk Hohndel \<dirk@hohndel.org\><br>

@maintainers
Marco Martin \<notmart@gmail.com\>

@licenses
@lgpl

*/


// DOXYGEN_SET_RECURSIVE = YES
// DOXYGEN_SET_EXCLUDE_PATTERNS += *_p.h */private/* */examples/*
// DOXYGEN_SET_PROJECT_NAME = Kirigami
// vim:ts=4:sw=4:expandtab:filetype=doxygen
