kwin/tabbox/tabboxconfig.h
Vlad Zagorodniy 7b20e1f66f Overhaul doxygen comments
Summary:
We have a mix of different doxygen comment styles, e.g.

    /*!
      Foo bar.
     */

    /**
     * Foo bar.
     */

    /** Foo bar.
     */

    /**
     * Foo bar.
     */

    /**
     * Foo bar.
     **/

To make the code more consistent, this change updates the style of all
doxygen comments to the last one.

Test Plan: Compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18683
2019-02-12 19:29:33 +02:00

326 lines
12 KiB
C++

/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2009 Martin Gräßlin <mgraesslin@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, 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 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/>.
*********************************************************************/
#ifndef TABBOXCONFIG_H
#define TABBOXCONFIG_H
#include <QString>
/**
* @file
* This file defines the class TabBoxConfig.
*
* @author Martin Gräßlin <mgraesslin@kde.org>
* @since 4.4
**/
namespace KWin
{
namespace TabBox
{
class TabBoxConfigPrivate;
/**
* The TabBoxConfig class holds all configuration options for the TabBox.
* The TabBoxHandler contains a pointer to an object of this class and is
* used by all classes of TabBox. The config defines what kind of data the
* TabBox is displaying and how the layout looks like. There can be different
* Config sets and by setting a new config in the TabBoxHandler the behaviour
* of the TabBox is changed immediately.
*
* @author Martin Gräßlin <mgraesslin@kde.org>
* @since 4.4
**/
class TabBoxConfig
{
public:
/**
* ClientDesktopMode defines whether windows from the current desktop or from all
* desktops are included in the TabBoxClient List in the TabBoxClientModel
**/
enum ClientDesktopMode {
AllDesktopsClients, ///< TabBoxClients from all desktops are included.
OnlyCurrentDesktopClients, ///< Only TabBoxClients on current desktop are included
ExcludeCurrentDesktopClients ///< Exclude TabBoxClients on current desktop
};
/**
* ClientActivitiesMode defines whether windows from the current activity or from all
* activities are included in the TabBoxClient List in the TabBoxClientModel
**/
enum ClientActivitiesMode {
AllActivitiesClients, ///< TabBoxClients from all Activities are included.
OnlyCurrentActivityClients, ///< Only TabBoxClients on current activity are included
ExcludeCurrentActivityClients ///< Exclude TabBoxClients on current activity
};
/**
* ClientApplicationsMode defines which windows from the current application or from all
* applications are included in the TabBoxClient List in the TabBoxClientModel
**/
enum ClientApplicationsMode {
AllWindowsAllApplications, ///< TabBoxClients from all applications are included
OneWindowPerApplication, ///< Only one TabBoxClient for each application is included
AllWindowsCurrentApplication ///< Only TabBoxClients for the current application are included
};
/**
* ClientMinimizedMode defines which windows are included in the TabBoxClient List
* in the TabBoxClientModel based on whether they are minimized or not
**/
enum ClientMinimizedMode {
IgnoreMinimizedStatus, ///< TabBoxClients are included no matter they are minimized or not
ExcludeMinimizedClients, ///< Exclude minimized TabBoxClients
OnlyMinimizedClients ///< Only minimized TabBoxClients are included
};
/**
* ShowDesktopMode defines whether a TabBoxClient representing the desktop
* is included in the TabBoxClient List in the TabBoxClientModel
**/
enum ShowDesktopMode {
DoNotShowDesktopClient, ///< A TabBoxClient representing the desktop is not included
ShowDesktopClient ///< A TabBoxClient representing the desktop is included
};
/**
* ClientActivitiesMode defines whether windows from the current activity or from all
* activities are included in the TabBoxClient List in the TabBoxClientModel
**/
enum ClientMultiScreenMode {
IgnoreMultiScreen, ///< TabBoxClients are included independently of the screen they are on
OnlyCurrentScreenClients, ///< Only TabBoxClients on current screen are included
ExcludeCurrentScreenClients ///< Exclude TabBoxClients from the current screen
};
/**
* ClientSwitchingMode defines the sorting of the TabBoxClients in the
* TabBoxClientModel.
**/
enum ClientSwitchingMode {
FocusChainSwitching, ///< Sort by recently used. Most recently used TabBoxClient is the first
StackingOrderSwitching ///< Sort by current stacking order
};
/**
* DesktopSwitchingMode defines the sorting of the desktops in the
* TabBoxDesktopModel.
**/
enum DesktopSwitchingMode {
MostRecentlyUsedDesktopSwitching,///< Sort by recently used. Most recently used desktop is the first
StaticDesktopSwitching///< Static sorting in numerical ascending order
};
/**
* TabBoxMode defines what kind of items the TabBox is displaying and which
* Model is used
**/
enum TabBoxMode {
ClientTabBox,///< TabBox uses TabBoxClientModel
DesktopTabBox///< TabBox uses TabBoxDesktopModel
};
TabBoxConfig();
~TabBoxConfig();
TabBoxConfig& operator=(const TabBoxConfig& object);
// getters
/**
* @return If the TabBox should be shown or not
* This option does not apply for TabBoxMode DesktopTabBox.
* @see setShowTabBox
* @see defaultShowTabBox
**/
bool isShowTabBox() const;
/**
* @return If Highlight Window effect should be used.
* This option does not apply for TabBoxMode DesktopTabBox.
* @see setHighlightWindows
* @see defaultHighlightWindows
**/
bool isHighlightWindows() const;
/**
* @return The current TabBoxMode
* @see setTabBoxMode
**/
TabBoxMode tabBoxMode() const;
/**
* @return The current ClientDesktopMode
* This option only applies for TabBoxMode ClientTabBox.
* @see setClientDesktopMode
* @see defaultDesktopMode
**/
ClientDesktopMode clientDesktopMode() const;
/**
* @return The current ClientActivitiesMode
* This option only applies for TabBoxMode ClientTabBox.
* @see setClientActivitiesMode
* @see defaultActivitiesMode
**/
ClientActivitiesMode clientActivitiesMode() const;
/**
* @return The current ClientApplicationsMode
* This option only applies for TabBoxMode ClientTabBox.
* @see setClientApplicationsMode
* @see defaultApplicationsMode
**/
ClientApplicationsMode clientApplicationsMode() const;
/**
* @return The current ClientMinimizedMode
* This option only applies for TabBoxMode ClientTabBox.
* @see setClientMinimizedMode
* @see defaultMinimizedMode
**/
ClientMinimizedMode clientMinimizedMode() const;
/**
* @return The current ShowDesktopMode
* This option only applies for TabBoxMode ClientTabBox.
* @see setShowDesktopMode
* @see defaultShowDesktopMode
**/
ShowDesktopMode showDesktopMode() const;
/**
* @return The current ClientMultiScreenMode
* This option only applies for TabBoxMode ClientTabBox.
* @see setClientMultiScreenMode
* @see defaultMultiScreenMode
**/
ClientMultiScreenMode clientMultiScreenMode() const;
/**
* @return The current ClientSwitchingMode.
* This option only applies for TabBoxMode ClientTabBox.
* @see setClientSwitchingMode
* @see defaultSwitchingMode
**/
ClientSwitchingMode clientSwitchingMode() const;
/**
* @return The current DesktopSwitchingMode
* This option only applies for TabBoxMode DesktopTabBox.
* @see setDesktopSwitchingMode
**/
DesktopSwitchingMode desktopSwitchingMode() const;
/**
* @return Then name of the current ItemLayout
* @see setlayoutName
**/
QString& layoutName() const;
// setters
/**
* @param show The tabbox should be shown or not.
* This option does not apply for TabBoxMode DesktopTabBox.
* @see isShowTabBox
**/
void setShowTabBox(bool show);
/**
* @param highlight Highlight Windows effect should be used or not.
* This option does not apply for TabBoxMode DesktopTabBox.
* @see isHighlightWindows
**/
void setHighlightWindows(bool highlight);
/**
* @param mode The new TabBoxMode to be used.
* @see tabBoxMode
**/
void setTabBoxMode(TabBoxMode mode);
/**
* @param desktopMode The new ClientDesktopMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see clientDesktopMode
**/
void setClientDesktopMode(ClientDesktopMode desktopMode);
/**
* @param activitiesMode The new ClientActivitiesMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see clientActivitiesMode
**/
void setClientActivitiesMode(ClientActivitiesMode activitiesMode);
/**
* @param applicationsMode The new ClientApplicationsMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see clientApplicationsMode
**/
void setClientApplicationsMode(ClientApplicationsMode applicationsMode);
/**
* @param minimizedMode The new ClientMinimizedMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see clientMinimizedMode
**/
void setClientMinimizedMode(ClientMinimizedMode minimizedMode);
/**
* @param showDesktopMode The new ShowDesktopMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see showDesktopMode
**/
void setShowDesktopMode(ShowDesktopMode showDesktopMode);
/**
* @param multiScreenMode The new ClientMultiScreenMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see clientMultiScreenMode
**/
void setClientMultiScreenMode(ClientMultiScreenMode multiScreenMode);
/**
* @param switchingMode The new ClientSwitchingMode to be used.
* This option only applies for TabBoxMode ClientTabBox.
* @see clientSwitchingMode
**/
void setClientSwitchingMode(ClientSwitchingMode switchingMode);
/**
* @param switchingMode The new DesktopSwitchingMode to be used.
* This option only applies for TabBoxMode DesktopTabBox.
* @see desktopSwitchingMode
**/
void setDesktopSwitchingMode(DesktopSwitchingMode switchingMode);
/**
* @param name The new ItemLayout config name
* @see layoutName
**/
void setLayoutName(const QString& name);
// some static methods to access default values
static ClientDesktopMode defaultDesktopMode() {
return OnlyCurrentDesktopClients;
}
static ClientActivitiesMode defaultActivitiesMode() {
return OnlyCurrentActivityClients;
}
static ClientApplicationsMode defaultApplicationsMode() {
return AllWindowsAllApplications;
}
static ClientMinimizedMode defaultMinimizedMode() {
return IgnoreMinimizedStatus;
}
static ShowDesktopMode defaultShowDesktopMode() {
return DoNotShowDesktopClient;
}
static ClientMultiScreenMode defaultMultiScreenMode() {
return IgnoreMultiScreen;
}
static ClientSwitchingMode defaultSwitchingMode() {
return FocusChainSwitching;
}
static bool defaultShowTabBox() {
return true;
}
static bool defaultHighlightWindow() {
return true;
}
static QString defaultLayoutName() {
return QStringLiteral("org.kde.breeze.desktop");
}
private:
TabBoxConfigPrivate* d;
};
} // namespace TabBox
} // namespace KWin
#endif // TABBOXCONFIG_H