summaryrefslogtreecommitdiffstats
path: root/umbrello/umbrello/dialogs/umltemplatedialog.h
blob: dc27cdc0cd9a55daca4af136c35c83381e944a56 (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
/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 *   copyright (C) 2003-2006                                               *
 *   Umbrello UML Modeller Authors <uml-devel@uml.sf.net>                  *
 ***************************************************************************/

#ifndef UMLTEMPLATEDIALOG_H
#define UMLTEMPLATEDIALOG_H

#include <kdialogbase.h>

class TQButtonGroup;
class TQCheckBox;
class KComboBox;
class TQGroupBox;
class TQLineEdit;
class TQRadioButton;
class UMLTemplate;

/**
 * A dialog to edit the properties of a class template (paramaterised class)
 *
 * @author Jonathan Riddell
 * Bugs and comments to uml-devel@lists.sf.net or http://bugs.kde.org
 */

class UMLTemplateDialog : public KDialogBase {
    Q_OBJECT
  
public:
    UMLTemplateDialog(TQWidget* pParent, UMLTemplate* pAttribute);
    ~UMLTemplateDialog();

protected:
    /**
    *   Sets up the dialog
    */
    void setupDialog();

    /**
     * Checks if changes are valid and applies them if they are,
     * else returns false
     */
    bool apply();

    /**
    *   The Attribute to represent
    */
    UMLTemplate* m_pTemplate;

    //GUI Widgets
    TQGroupBox* m_pTemplateGB;
    TQGroupBox* m_pValuesGB;
    TQLabel *m_pTypeL, *m_pNameL, *m_pStereoTypeL;
    KComboBox* m_pTypeCB;
    TQLineEdit *m_pNameLE, *m_pStereoTypeLE;

public slots:
    /**
     * I don't think this is used, but if we had an apply button
     * it would slot into here
     */
    void slotApply();

    /**
     * Used when the OK button is clicked.  Calls apply()
     */
    void slotOk();
protected:
    /**
    * Inserts @p type into the type-combobox as well as its completion object.
    */
    void insertType( const TQString& type, int index = -1 );

};

#endif