UBDockPaletteWidget.h 2.31 KB
Newer Older
1
/*
2
 * Copyright (C) 2015-2018 Département de l'Instruction Publique (DIP-SEM)
Craig Watson's avatar
Craig Watson committed
3
 *
Claudio Valerio's avatar
Claudio Valerio committed
4
 * Copyright (C) 2013 Open Education Foundation
5
 *
Claudio Valerio's avatar
Claudio Valerio committed
6 7
 * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour
 * l'Education Numérique en Afrique (GIP ENA)
8
 *
Claudio Valerio's avatar
Claudio Valerio committed
9 10 11
 * This file is part of OpenBoard.
 *
 * OpenBoard is free software: you can redistribute it and/or modify
Claudio Valerio's avatar
Claudio Valerio committed
12 13
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 3 of the License,
14 15 16 17
 * with a specific linking exception for the OpenSSL project's
 * "OpenSSL" library (or with modified versions of it that use the
 * same license as the "OpenSSL" library).
 *
Claudio Valerio's avatar
Claudio Valerio committed
18
 * OpenBoard is distributed in the hope that it will be useful,
19
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Claudio Valerio's avatar
Claudio Valerio committed
20
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Claudio Valerio's avatar
Claudio Valerio committed
21
 * GNU General Public License for more details.
22
 *
Claudio Valerio's avatar
Claudio Valerio committed
23
 * You should have received a copy of the GNU General Public License
Claudio Valerio's avatar
Claudio Valerio committed
24
 * along with OpenBoard. If not, see <http://www.gnu.org/licenses/>.
25 26 27
 */


Claudio Valerio's avatar
Claudio Valerio committed
28

Claudio Valerio's avatar
Claudio Valerio committed
29

shibakaneki's avatar
shibakaneki committed
30 31 32 33
#ifndef UBDOCKPALETTEWIDGET_H
#define UBDOCKPALETTEWIDGET_H

#include <QWidget>
34
#include <QPixmap>
shibakaneki's avatar
shibakaneki committed
35 36
#include <QString>

37 38 39 40

/**
  * This enum defines the different mode availables.
  */
41 42 43 44 45 46 47 48
typedef enum
{
    eUBDockPaletteWidget_BOARD,
    eUBDockPaletteWidget_WEB,
    eUBDockPaletteWidget_DOCUMENT,
    eUBDockPaletteWidget_DESKTOP,
} eUBDockPaletteWidgetMode;

shibakaneki's avatar
shibakaneki committed
49 50
class UBDockPaletteWidget : public QWidget
{
51

52
    Q_OBJECT
shibakaneki's avatar
shibakaneki committed
53
public:
54
    UBDockPaletteWidget(QWidget* parent=0, const char* name="UBDockPaletteWidget");
shibakaneki's avatar
shibakaneki committed
55 56
    ~UBDockPaletteWidget();

57 58
    QPixmap iconToRight();
    QPixmap iconToLeft();
shibakaneki's avatar
shibakaneki committed
59 60
    QString name();

61
    virtual bool visibleInMode(eUBDockPaletteWidgetMode mode) = 0;
62 63 64

    void registerMode(eUBDockPaletteWidgetMode mode);

65 66
    bool visibleState(){return mVisibleState;}
    void setVisibleState(bool state){mVisibleState = state;}
67

68
signals:
69 70
    void hideTab(UBDockPaletteWidget* widget);
    void showTab(UBDockPaletteWidget* widget);
71

72 73 74 75
public slots:
    void slot_changeMode(eUBDockPaletteWidgetMode newMode);


shibakaneki's avatar
shibakaneki committed
76
protected:
77 78
    QPixmap mIconToRight;   // arrow like this: >
    QPixmap mIconToLeft;    // arrow like this: <
shibakaneki's avatar
shibakaneki committed
79 80
    QString mName;

81 82 83
    /* The current widget available mode list */
    QVector<eUBDockPaletteWidgetMode> mRegisteredModes;

84
    bool mVisibleState;
shibakaneki's avatar
shibakaneki committed
85 86 87
};

#endif // UBDOCKPALETTEWIDGET_H