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
|
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
/*
* Opie Sheet (formerly Sheet/Qt)
* by Serdar Ozler <sozler@sitebest.com>
*/
#ifndef CELLFORMAT_H
#define CELLFORMAT_H
#include <qpe/fontdatabase.h>
#include <qdialog.h>
#include <qtabwidget.h>
#include <qlayout.h>
#include <qcombobox.h>
#include <qcheckbox.h>
#include <qpushbutton.h>
#include "sheet.h"
class BorderEditor: public QFrame
{
Q_OBJECT
// QT objects
QPen penTop, penBottom, penLeft, penRight, penHorz, penVert;
// Private functions
void drawContents(QPainter *p);
// Reimplemented QFrame functions
void mouseReleaseEvent(QMouseEvent *e);
public:
// Definitions
enum BorderArea {None, Top, Bottom, Left, Right, Horz, Vert};
BorderEditor(QWidget *parent=0);
~BorderEditor();
void setPen(const QPen &pen, BorderArea area);
QPen getPen(BorderArea area);
QPen getDefaultPen() { return QPen(Qt::black, 1, Qt::DotLine); }
signals:
void clicked(BorderEditor::BorderArea);
};
class CellFormat: public QDialog
{
Q_OBJECT
enum comboType {COMBO_OTHER, COMBO_WIDTH, COMBO_FONT, COMBO_SIZE, COMBO_STYLE, COMBO_COLOR, COMBO_VALIGN, COMBO_HALIGN};
// QT objects
QBoxLayout *box;
QTabWidget *tabs;
QWidget *widgetBorders, *widgetBackground, *widgetFont, *widgetAlignment;
QComboBox *comboBordersWidth, *comboBordersColor, *comboBackgroundColor, *comboBackgroundStyle, *comboFontColor, *comboFontSize, *comboFontFamily, *comboAlignmentVertical, *comboAlignmentHorizontal;
QCheckBox *checkFontBold, *checkFontItalic, *checkAlignmentWrap;
QPushButton *buttonBordersDefaults, *buttonBackgroundDefaults, *buttonFontDefaults, *buttonAlignmentDefaults;
QFrame *frameBackground, *frameFont, *frameAlignment;
QBrush brushBackground;
QFont fontFont;
QColor fontColor;
Qt::AlignmentFlags textAlignment;
FontDatabase fontDB;
// Other objects & variables
Sheet *sheet;
BorderEditor *borderEditor;
bool changedFont, changedAlign, changedBrush;
// Private functions
void createWidthCombo(QComboBox *combo);
void createFontCombo(QComboBox *combo);
void createHAlignCombo(QComboBox *combo);
void createVAlignCombo(QComboBox *combo);
void createStyleCombo(QComboBox *combo);
void createSizeCombo(QComboBox *combo);
void createColorCombo(QComboBox *combo);
QComboBox *createCombo(comboType type, QWidget *parent, const QString &caption, int y);
int findHAlignIndex(Qt::AlignmentFlags flag);
int findVAlignIndex(Qt::AlignmentFlags flag);
int findComboItemIndex(QComboBox *combo, const QString &item);
int findColorIndex(const QColor &color);
int findBrushStyleIndex(Qt::BrushStyle style);
private slots:
void borderClicked(BorderEditor::BorderArea area);
void backgroundClicked(int index);
void fontClicked(bool on);
void fontClicked(int index);
void alignClicked(bool on);
void alignClicked(int index);
void slotBordersDefaults();
void slotBackgroundDefaults();
void slotFontDefaults();
void slotAlignmentDefaults();
public:
CellFormat(QWidget *parent=0);
~CellFormat();
int exec(Sheet *s);
void setTextAlign(Qt::AlignmentFlags flags);
void setTextFont(const QFont &font, const QColor &color);
void setBrushBackground(const QBrush &brush);
};
#endif
|