dde-dock/frame/util/docksettings.h
石博文 9ad6126e92 add smart hide
Change-Id: I6bb541da47a3eb19f208af2ec6a25fe8dc216764
2016-08-02 09:28:06 +08:00

86 lines
1.8 KiB
C++

#ifndef DOCKSETTINGS_H
#define DOCKSETTINGS_H
#include "constants.h"
#include "dbus/dbusdock.h"
#include "dbus/dbusmenumanager.h"
#include "dbus/dbusdisplay.h"
#include "controller/dockitemcontroller.h"
#include <DAction>
#include <DMenu>
#include <QObject>
#include <QSize>
DWIDGET_USE_NAMESPACE
using namespace Dock;
class DockSettings : public QObject
{
Q_OBJECT
public:
explicit DockSettings(QWidget *parent = 0);
DisplayMode displayMode() const;
HideMode hideMode() const;
HideState hideState() const;
Position position() const;
int screenHeight() const;
const QRect primaryRect() const;
const QSize windowSize() const;
void showDockSettingsMenu();
signals:
void dataChanged() const;
void windowVisibleChanegd() const;
void windowHideModeChanged() const;
void windowGeometryChanged() const;
public slots:
void updateGeometry();
private slots:
void menuActionClicked(DAction *action);
void positionChanged();
void iconSizeChanged();
void displayModeChanged();
void hideModeChanged();
void dockItemCountChanged();
void primaryScreenChanged();
private:
void calculateWindowConfig();
private:
int m_iconSize;
Position m_position;
HideMode m_hideMode;
DisplayMode m_displayMode;
QRect m_primaryRect;
QSize m_mainWindowSize;
DMenu m_settingsMenu;
DAction m_fashionModeAct;
DAction m_efficientModeAct;
DAction m_topPosAct;
DAction m_bottomPosAct;
DAction m_leftPosAct;
DAction m_rightPosAct;
DAction m_largeSizeAct;
DAction m_mediumSizeAct;
DAction m_smallSizeAct;
DAction m_keepShownAct;
DAction m_keepHiddenAct;
DAction m_smartHideAct;
DBusDisplay *m_displayInter;
DBusDock *m_dockInter;
DockItemController *m_itemController;
};
#endif // DOCKSETTINGS_H