summaryrefslogtreecommitdiffstats
path: root/config/qtcurveconfig.h
blob: 04d34cb53df4ea8348b2de81cb604c25932a6a2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#ifndef __QTCURVECONFIG_H__
#define __QTCURVECONFIG_H__

/*
  QtCurve (C) Craig Drummond, 2003 - 2010 craig.p.drummond@gmail.com

  ----

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public
  License version 2 as published by the Free Software Foundation.

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

#define COMMON_FUNCTIONS
#define CONFIG_DIALOG

#include <qtcurveconfigbase.h>
#include <qcombobox.h>
#include <qmap.h>
#include "common.h"

class QPopupMenu;
class QListViewItem;
class KDoubleNumInput;
#ifdef QTC_STYLE_SUPPORT
class CExportThemeDialog;
#endif
class CStackItem;
class QtCurveConfig;

class CGradientPreview : public QWidget
{
    Q_OBJECT

    public:

    CGradientPreview(QtCurveConfig *c, QWidget *p);

    QSize sizeHint() const;
    QSize minimumSizeHint() const;
    void paintEvent(QPaintEvent *);
    void setGrad(const GradientStopCont &s);

    public slots:

    void setColor(const QColor &col);

    private:

    QtCurveConfig    *cfg;
    QColor           color;
    GradientStopCont stops;
};

class QtCurveConfig : public QtCurveConfigBase
{
    Q_OBJECT

    public:

    QtCurveConfig(QWidget *parent);
    virtual ~QtCurveConfig();

    EShading currentShading() const { return (EShading)shading->currentItem(); }

    signals:

    void changed(bool);

    private:

    void loadStyles(QPopupMenu *menu);

    public slots:

    void save();
    void defaults();

    private slots:

    void setStyle(int s);
    void updateChanged();
    void focusChanged();
    void roundChanged();
    void importStyle();
    void exportStyle();
    void exportTheme();
    void emboldenToggled();
    void defBtnIndicatorChanged();
    void buttonEffectChanged();
    void coloredMouseOverChanged();
    void shadeSlidersChanged();
    void shadeMenubarsChanged();
    void shadeCheckRadioChanged();
    void customMenuTextColorChanged();
    void menuStripeChanged();
    void comboBtnChanged();
    void sortedLvChanged();
    void stripedProgressChanged();
    void activeTabAppearanceChanged();
    void tabMoChanged();
    void shadingChanged();
    void passwordCharClicked();
    void unifySpinBtnsToggled();
    void unifySpinToggled();
    void sliderThumbChanged();
    void sliderWidthChanged();
    void changeStack();
    void gradChanged(int i);
    void itemChanged(QListViewItem *i, int col);
    void addGradStop();
    void removeGradStop();
    void updateGradStop();
    void stopSelected();

    private:

    void setupStack();
    void setupGradientsTab();
    void setupShadesTab();
    void setupShade(KDoubleNumInput *w, int shade);
    void populateShades(const Options &opts);
    bool diffShades(const Options &opts);
    void setPasswordChar(int ch);
    void loadStyle(const QString &file);
    void setOptions(Options &opts);
    void setWidgetOptions(const Options &opts);
    int  getSquareFlags();
    int  getWindowBorderFlags();
    bool settingsChanged();

    private:

    Options            currentStyle,
                       defaultStyle;
    QMap<int, QString> styles;
#ifdef QTC_STYLE_SUPPORT
    CExportThemeDialog *exportDialog;
#endif
    CGradientPreview   *gradPreview;
    GradientCont       customGradient;
    KDoubleNumInput    *shadeVals[NUM_STD_SHADES];
    CStackItem         *lastCategory;
};

#endif