summaryrefslogtreecommitdiffstats
path: root/kalzium/src/kalzium.h
blob: 41faf36a8d4b5a67a31946224835f2d35b05a555 (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
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
/***************************************************************************
    copyright            : (C) 2003, 2004, 2005 by Carsten Niehaus
    email                : cniehaus@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 _KALZIUM_H_
#define _KALZIUM_H_

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <kmainwindow.h>

class TDESelectAction;
class TDEToggleAction;
class QuizsettingsDlg;
class SliderWidget;
class TQToolBox;
class TQVBoxLayout;
class TQDockWindow;
class TempSlider;
class DetailedInfoDlg;
class PerodicTableView;
class MolcalcWidget;
class DetailedGraphicalOverview;
class TimeWidgetIMPL;
class SOMWidgetIMPL;
class GlossaryDialog;

/**
 * @short Application Main Window
 * @author Carsten Niehaus <cniehaus@kde.org>
 * @version 1.2
 *
 * This class connects the parts of kalzium. All actions will
 * be set, the menu generated and so on.
 */
class Kalzium : public TDEMainWindow
{
	Q_OBJECT
  
	public:
		/**
		 * Default Constructor
		 */
		Kalzium();

		/**
		 * Default Destructor
		 */
		virtual ~Kalzium();

	private:
		class privatedata;
		friend class privatedata;
		privatedata* pd;

		DetailedInfoDlg   *m_infoDialog;

		/**
		 * this pointer points to the PerodicTableView.
		 */
		PerodicTableView *m_PerodicTableView;
		
		/**
		 *initialize actions
		 */
		void setupActions();
		
		/**
		 *initialize the sidebars
		 */
		void setupSidebars();
		
		/**
		 * Signal the PerodicTableView that it should do a full draw operation
		 */
		void setFullDraw();
		
		/**
		 * all TDEActions Kalzium uses
		 */
		TDESelectAction *gradient_action;
		TDESelectAction *numeration_action;
		TDEAction *m_pPlotAction, 
				*m_pGlossaryAction;
		
		TDEAction *m_pTooltipAction;
		TDEAction *m_pLegendAction;
		TDEAction *m_SidebarAction;
		TDEAction *m_EQSolverAction;

		TDEToggleAction *m_actionNoScheme;
		TDEToggleAction *m_actionGroups;
		TDEToggleAction *m_actionBlocks;
		TDEToggleAction *m_actionAcid;
		TDEToggleAction *m_actionFamily;
		TDEToggleAction *m_actionCrystal;
		
		/**
		 * the layout of the central Widget ( CentralWidget )
		 */
		TQVBoxLayout *m_pCentralLayout;

		MolcalcWidget *m_calcWidget;

		TimeWidgetIMPL *m_timeWidget;
		
		SOMWidgetIMPL *m_somWidget;

		DetailedGraphicalOverview *m_detailWidget;

		TQDockWindow *m_dockWin;
		TQToolBox *m_toolbox;
		int m_toolboxCurrent;

		GlossaryDialog *m_glossarydlg;
	
	private slots:
		/**
		 * opens the information dialog for the element @p number
		 */
		void openInformationDialog( int number );

		void slotStatusbar( int num );
		void setupStatusBar();


		/**
		 * this slot switches Kalzium to the selected color scheme
		 */
		void slotShowScheme(int);

		void slotShowEQSolver();
		
		void slotShowLegend();
		
		/**
		 * Hide or show the tooltips
		 */
		void slotEnableTooltips();
		
		/**
		 * start the glossary
		 */
		void slotGlossary();
		
		void slotSwitchtoNumeration(int);
		
		/**
		 * this will make the periodic table display the gradient
		 * defined by @p int gradient
		 */
		void slotSwitchtoGradient(int gradient);

		void slotPlotData();

		void slotUpdateSettings();

		void slotNoLook();

		void slotLookGroups();
		void slotLookBlocks();
		void slotLookAcidBehavior();
		void slotLookFamily();
		void slotLookCrystal();
	
		/**
		 * These slots are for the standard actions
		 */
		void showSettingsDialog();

		void slotToolboxCurrentChanged(int);

		void slotSelectedNumber(int);

		void slotShowHideSidebar();

		void slotSidebarVisibilityChanged(bool);
};

#endif // _KALZIUM_H_