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
|
/////////////////////////////////////////////////////////////////////////////
// Name: pokegen/ObjectUI.h
// Purpose: Generic UI form handling
// Author: Ben Boeckel
// Modified by: Ben Boeckel
// Created: Thu Jan 24 16:15:40 2008
// Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions
// Licence:
// 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 3 of the License, or
// (at your option) any later version.
//
// 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. If not, see <http://www.gnu.org/licenses/>.
/////////////////////////////////////////////////////////////////////////////
#ifndef __POKEMODR_OBJECTUI__
#define __POKEMODR_OBJECTUI__
#include <kmessagebox.h>
#include <ktoolbar.h>
#include <QCloseEvent>
#include <QLabel>
#include <QObject>
#include <QWidget>
#include <Object.h>
#include <Pokemod.h>
#define DBL_PREC 7
#define DBL_PREC_SHORT 5
class ObjectUI : public QWidget
{
Q_OBJECT
public:
ObjectUI(QWidget* parent) :
QWidget(parent),
m_changed(false),
obj(NULL),
obj_mod(NULL)
{
connect(this, SIGNAL(changed(bool)), parent->parent()->parent()->parent(), SLOT(setChangedTitle(bool)));
connect(this, SIGNAL(changed(bool)), SLOT(setChanged(bool)));
}
virtual ~ObjectUI()
{
}
void closeEvent(QCloseEvent* event)
{
switch (KMessageBox::questionYesNoCancel(this, "You have unsaved changes, would you like to save them?", "Unsaved PokéMod"))
{
case KMessageBox::Yes:
event->accept();
on_buttonApply_clicked();
break;
case KMessageBox::No:
event->accept();
on_buttonDiscard_clicked();
break;
case KMessageBox::Cancel:
event->ignore();
break;
}
}
// virtual KToolBar getToolbar(QWidget* parent) = 0;
bool isChanged() const
{
return m_changed;
}
const Object* getOriginal() const
{
return obj;
}
Object* getOriginal()
{
return obj;
}
const Object* getModified() const
{
return obj_mod;
}
Object* getModified()
{
return obj_mod;
}
signals:
void changed(bool);
public slots:
void setChanged(const bool c)
{
m_changed = c;
}
virtual void on_buttonApply_clicked() = 0;
virtual void on_buttonDiscard_clicked() = 0;
protected:
void setObjects(Object* orig, Object* mod)
{
obj = orig;
obj_mod = mod;
}
virtual void setGui() = 0;
bool m_changed;
Object* obj;
Object* obj_mod;
};
#endif
|