File indexing completed on 2024-04-21 05:50:05

0001 /*
0002     SPDX-FileCopyrightText: 2001-2013 Evan Teran <evan.teran@gmail.com>
0003     SPDX-FileCopyrightText: 2003-2005 Klaus Niederkrueger <kniederk@math.uni-koeln.de>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include <QDomDocument>
0011 #include <QMenu>
0012 #include <QString>
0013 
0014 enum ConstantCategory { Mathematics = 1, Electromagnetic = 2, Nuclear = 4, Thermodynamics = 8, Gravitation = 16 };
0015 
0016 struct science_constant {
0017     QString label;
0018     QString name;
0019     QString whatsthis;
0020     QString value;
0021     ConstantCategory category;
0022 };
0023 
0024 class KCalcConstMenu : public QMenu
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     explicit KCalcConstMenu(QWidget *parent = nullptr);
0030     explicit KCalcConstMenu(const QString &title, QWidget *parent = nullptr);
0031 
0032 public:
0033     static void init_consts(QDomDocument &doc);
0034 
0035 Q_SIGNALS:
0036     void triggeredConstant(const science_constant &);
0037 
0038 private:
0039     void init_all();
0040 
0041 public Q_SLOTS:
0042     void slotPassSignalThrough(QAction *chosen_const);
0043 };
0044