summaryrefslogtreecommitdiffstats
path: root/src/common/gui/dialog.h
blob: 1227a7d77e50d94ee2de35c5f63719d32d8351b8 (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
/***************************************************************************
 *   Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org>                  *
 *                                                                         *
 *   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.                                   *
 ***************************************************************************/
#ifndef DIALOG_H
#define DIALOG_H

#include <qlayout.h>
#include <kdialogbase.h>
#include <klistview.h>

//-----------------------------------------------------------------------------
class Dialog : public KDialogBase
{
Q_OBJECT
public:
  Dialog(QWidget *parent, const char *name, bool modal,
         const QString &caption, int buttonMask, ButtonCode defaultButton, bool separator,
         const QSize &defaultSize = QSize());
  Dialog(DialogType type, const QString &caption,
         int buttonMask, ButtonCode defaultButton, QWidget *parent, const char *name,
         bool modal, bool separator, const QSize &defaultSize = QSize());
  virtual ~Dialog();

private slots:
  void updateSize();

private:
  QSize _defaultSize;
};

//-----------------------------------------------------------------------------
class TreeListDialog : public Dialog
{
Q_OBJECT
public:
  TreeListDialog(QWidget *parent, const char *name, bool modal,
                 const QString &caption, int buttonMask, ButtonCode defaultButton, bool separator);
  QWidget *addPage(const QStringList &labels);
  void showPage(QWidget *page);
  int activePageIndex() const;
  int pageIndex(QWidget *page) const;

protected slots:
  virtual void currentChanged(QListViewItem *item);
  void pageDestroyed(QObject *page);

protected:
  QFrame       *_frame;
  KListView    *_listView;
  QHBoxLayout  *_titleBox;
  QLabel       *_label;
  QWidgetStack *_stack;

 class Item : public KListViewItem {
  public:
    Item(const QString &label, QWidget *page, const QString &title, QListView *listview);
    Item(const QString &label, QWidget *page, const QString &title, QListViewItem *item);
    QWidget *_page;
    QString  _title;
  };
};

//-----------------------------------------------------------------------------
class TextEditorDialog : public Dialog
{
Q_OBJECT
public:
  TextEditorDialog(const QString &text, const QString &caption,
                   bool wrapAtWidgetWidth, QWidget *parent);
};

#endif