1 /*
2     SPDX-FileCopyrightText: 2001-2013 Evan Teran <evan.teran@gmail.com>
3     SPDX-FileCopyrightText: 2003-2005 Klaus Niederkrueger <kniederk@math.uni-koeln.de>
4 
5     SPDX-License-Identifier: GPL-2.0-or-later
6 */
7 
8 #pragma once
9 
10 #include <QMenu>
11 #include <QString>
12 
13 enum ConstantCategory { Mathematics = 1, Electromagnetic = 2, Nuclear = 4, Thermodynamics = 8, Gravitation = 16 };
14 
15 struct science_constant {
16     QString label;
17     QString name;
18     QString whatsthis;
19     QString value;
20     ConstantCategory category;
21 };
22 
23 class KCalcConstMenu : public QMenu
24 {
25     Q_OBJECT
26 
27 public:
28     explicit KCalcConstMenu(QWidget *parent = nullptr);
29     explicit KCalcConstMenu(const QString &title, QWidget *parent = nullptr);
30 
31 public:
32     static void init_consts();
33 
34 Q_SIGNALS:
35     void triggeredConstant(const science_constant &);
36 
37 private:
38     void init_all();
39 
40 public Q_SLOTS:
41     void slotPassSignalThrough(QAction *chosen_const);
42 };
43 
44