Olive
collapsiblewidget.h
1 #ifndef COLLAPSIBLEWIDGET_H
2 #define COLLAPSIBLEWIDGET_H
3 
4 #include <QWidget>
5 class QLabel;
6 class QCheckBox;
7 class QHBoxLayout;
8 class QVBoxLayout;
9 class QPushButton;
10 class QFrame;
11 class CheckboxEx;
12 
13 class CollapsibleWidgetHeader : public QWidget {
14  Q_OBJECT
15 public:
16  CollapsibleWidgetHeader(QWidget* parent = 0);
17  bool selected;
18 protected:
19  void mousePressEvent(QMouseEvent* event);
20  void paintEvent(QPaintEvent *event);
21 signals:
22  void select(bool, bool);
23 };
24 
25 class CollapsibleWidget : public QWidget
26 {
27  Q_OBJECT
28 public:
29  CollapsibleWidget(QWidget* parent = 0);
30  void setContents(QWidget* c);
31  void setText(const QString &);
32  bool is_focused();
33  bool is_expanded();
34 
35  CheckboxEx* enabled_check;
36  bool selected;
37  QWidget* contents;
38  CollapsibleWidgetHeader* title_bar;
39 private:
40  QLabel* header;
41  QVBoxLayout* layout;
42  QPushButton* collapse_button;
43  QFrame* line;
44  QHBoxLayout* title_bar_layout;
45  void set_button_icon(bool open);
46 
47 signals:
48  void deselect_others(QWidget*);
49  void visibleChanged();
50 
51 private slots:
52  void on_enabled_change(bool b);
53  void on_visible_change();
54 
55 public slots:
56  void header_click(bool s, bool deselect);
57 };
58 
59 #endif // COLLAPSIBLEWIDGET_H
Definition: collapsiblewidget.h:25
Definition: checkboxex.h:6
Definition: collapsiblewidget.h:13