summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/oxygen/oxyframe.cpp5
-rw-r--r--noncore/apps/oxygen/oxyframe.h2
-rw-r--r--noncore/apps/oxygen/psewidget.cpp126
-rw-r--r--noncore/apps/oxygen/psewidget.h5
4 files changed, 130 insertions, 8 deletions
diff --git a/noncore/apps/oxygen/oxyframe.cpp b/noncore/apps/oxygen/oxyframe.cpp
index 060f9ca..a7833be 100644
--- a/noncore/apps/oxygen/oxyframe.cpp
+++ b/noncore/apps/oxygen/oxyframe.cpp
@@ -1,16 +1,21 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * ( at your option ) any later version. * 6 * ( at your option ) any later version. *
7 * * 7 * *
8 **************************************************************************/ 8 **************************************************************************/
9#include "oxygen.h" 9#include "oxygen.h"
10 10
11#include <qpe/config.h> 11#include <qpe/config.h>
12#include "oxyframe.h" 12#include "oxyframe.h"
13 13
14OxyFrame::OxyFrame(QWidget *parent, const char *name) : QFrame(parent,name) 14OxyFrame::OxyFrame(QWidget *parent, const char *name) : QFrame(parent,name)
15{ 15{
16 this->setFrameStyle( QFrame::Panel );
17 this->setLineWidth( 2 );
18 this->setFrameShadow( QFrame::Raised );
19 this->setBackgroundColor( QColor( cyan ) );
16} 20}
21
diff --git a/noncore/apps/oxygen/oxyframe.h b/noncore/apps/oxygen/oxyframe.h
index 01f888d..9c7dab5 100644
--- a/noncore/apps/oxygen/oxyframe.h
+++ b/noncore/apps/oxygen/oxyframe.h
@@ -1,26 +1,24 @@
1 1
2/*************************************************************************** 2/***************************************************************************
3 * * 3 * *
4 * This program is free software; you can redistribute it and/or modify * 4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by * 5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or * 6 * the Free Software Foundation; either version 2 of the License, or *
7 * ( at your option ) any later version. * 7 * ( at your option ) any later version. *
8 * * 8 * *
9 **************************************************************************/ 9 **************************************************************************/
10#ifndef _OXYFRAME_H 10#ifndef _OXYFRAME_H
11#define _OXYFRAME_H 11#define _OXYFRAME_H
12 12
13 13
14#include <qframe.h> 14#include <qframe.h>
15 15
16class OxyFrame : public QFrame 16class OxyFrame : public QFrame
17{ 17{
18 Q_OBJECT 18 Q_OBJECT
19 19
20 public: 20 public:
21 OxyFrame( QWidget *parent=0, const char *name=0); 21 OxyFrame( QWidget *parent=0, const char *name=0);
22
23
24}; 22};
25 23
26#endif 24#endif
diff --git a/noncore/apps/oxygen/psewidget.cpp b/noncore/apps/oxygen/psewidget.cpp
index 4e002d1..ab1467c 100644
--- a/noncore/apps/oxygen/psewidget.cpp
+++ b/noncore/apps/oxygen/psewidget.cpp
@@ -1,29 +1,143 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * ( at your option ) any later version. * 6 * ( at your option ) any later version. *
7 * * 7 * *
8 **************************************************************************/ 8 **************************************************************************/
9 9
10#include <qpe/config.h> 10#include <qpe/config.h>
11#include <qlayout.h> 11#include <qlayout.h>
12#include <qlabel.h>
12#include <qlist.h> 13#include <qlist.h>
14#include <qvbox.h>
15#include "dataTable.h"
13#include "psewidget.h" 16#include "psewidget.h"
14#include "oxyframe.h" 17#include "oxyframe.h"
15 18
16 19
17Element::Element( const QString &name ) 20Element::Element( const QString &name )
18{ 21{
19} 22}
20 23
24
21PSEWidget::PSEWidget() : QWidget() 25PSEWidget::PSEWidget() : QWidget()
22{ 26{
23 QList<Element> elements; 27 this->setCaption( "Periodic System" );
24 elements.setAutoDelete( TRUE ); 28
25 elements.append( new Element( "1" ) ); 29 QGridLayout *grid = new QGridLayout( this, 18,10 );
26 30 int h=0, v=0;
27 maingrid = new QGridLayout( 18 , 10 , -1 , "maingridlayout" ); 31 for( int n = 0 ; n < 118 ; n++ )
28 OxyFrame *configobj = new OxyFrame(this); 32 {
33 position( n+1,h,v );
34 QList<OxyFrame> PSEframe;
35 PSEframe.append( new OxyFrame( this , QString::number( n ) ) );
36 grid->addWidget( PSEframe.current() , v/40+1 , h/40 );
37 }
38}
39
40void PSEWidget::position(int n, int& h, int& v)
41{
42 //Hydrogen
43 if (n == 1)
44 {
45 h=0; v=0;
46 }
47
48
49 //Helium
50 if (n == 2)
51 {
52 h=680; v=0;
53 }
54
55
56 //Lithium
57 if (n == 3)
58 {
59 h=0; v=40;
60 }
61
62
63 //Beryllium
64 if (n == 4)
65 {
66 h=40; v=40;
67 }
68
69
70 //Boron-->Neon or Aluminum --> Argon
71 if ((n >= 5 && n <= 10) || (n >= 13 && n <= 18))
72 for (int i = 1; i <= (6-(10-n)); i++)
73 {
74 h=((i*40)+440);
75 v = 40;
76 if (n >= 13)
77 {
78 v=80;
79 h=(h-320);
80 }
81 }
82
83
84 //Sodium
85 if (n == 11)
86 {
87 h=0; v=80;
88 }
89
90
91 //Magnesium
92 if (n == 12)
93 {
94 h=40; v=80;
95 }
96
97
98 //Potassium --> Uuo without La and Ac
99 if ((n >= 19 && n <= 56) || (n >= 72 && n <= 88) || n >= 104)
100 for (int i = 1; i <= 18; i++)
101 {
102 int f = n;
103 if (n > 18)
104 f = n-18;
105 if (n > 36)
106 f = n-36;
107 if (n > 54)
108 f = n-54;
109 if (n > 71)
110 f = n-68;
111 if (n > 86)
112 f = n-86;
113 if (n > 103)
114 f = n-100;
115
116 h=((f*40)-40);
117
118 v = 120;
119 if (n >= 37)
120 v=160;
121 if (n >= 55)
122 v=200;
123 if (n >= 87)
124 v=240;
125 }
126
127
128 //Lanthanum --> Lutetium and Actinum --> Lawrencium
129 if ((n >= 57 && n <= 71) || (n >= 89 && n <= 103))
130 for (int i = 1; i <= 14; i++)
131 {
132 int f = n;
133 if (n > 56)
134 f = n-55;
135 if (n > 88)
136 f = n-87;
137 h=(f*40);
138 v = 290;
139 if (n >= 89)
140 v=330;
141 }
142 v += 10;
29} 143}
diff --git a/noncore/apps/oxygen/psewidget.h b/noncore/apps/oxygen/psewidget.h
index 9f574ce..3ea58e3 100644
--- a/noncore/apps/oxygen/psewidget.h
+++ b/noncore/apps/oxygen/psewidget.h
@@ -1,76 +1,81 @@
1 1
2/*************************************************************************** 2/***************************************************************************
3 * * 3 * *
4 * This program is free software; you can redistribute it and/or modify * 4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by * 5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or * 6 * the Free Software Foundation; either version 2 of the License, or *
7 * ( at your option ) any later version. * 7 * ( at your option ) any later version. *
8 * * 8 * *
9 **************************************************************************/ 9 **************************************************************************/
10#ifndef _PSEWIDGET_H 10#ifndef _PSEWIDGET_H
11#define _PSEWIDGET_H 11#define _PSEWIDGET_H
12 12
13#include <qwidget.h> 13#include <qwidget.h>
14 14
15class QGridLayout; 15class QGridLayout;
16 16
17class Element 17class Element
18{ 18{
19 public: 19 public:
20 Element(const QString &elnum); 20 Element(const QString &elnum);
21 ~Element(); 21 ~Element();
22 22
23 void setName( QString c){ name = c;}; 23 void setName( QString c){ name = c;};
24 void setWeight( QString c){ weight = c;}; 24 void setWeight( QString c){ weight = c;};
25 void setDensityName( QString c){density = c;}; 25 void setDensityName( QString c){density = c;};
26 void setGroup( QString c){group = c;}; 26 void setGroup( QString c){group = c;};
27 void setIE( QString c){ie = c;}; 27 void setIE( QString c){ie = c;};
28 void setNum( QString c){num = c;}; 28 void setNum( QString c){num = c;};
29 void setAZ( QString c){az = c;}; 29 void setAZ( QString c){az = c;};
30 void setDate( QString c){date = c;}; 30 void setDate( QString c){date = c;};
31 void setEN( QString c){en = c;}; 31 void setEN( QString c){en = c;};
32 void setMP( QString c){mp = c;}; 32 void setMP( QString c){mp = c;};
33 void setBP( QString c){bp = c;}; 33 void setBP( QString c){bp = c;};
34 void setAR( QString c){ar = c;}; 34 void setAR( QString c){ar = c;};
35 35
36 QString elname() const{ return name; }; 36 QString elname() const{ return name; };
37 QString elweight() const{ return weight; }; 37 QString elweight() const{ return weight; };
38 QString eldensity() const{ return density; }; 38 QString eldensity() const{ return density; };
39 QString elgroup() const{ return group; }; 39 QString elgroup() const{ return group; };
40 QString elie() const{ return ie; }; 40 QString elie() const{ return ie; };
41 QString elnum() const{ return num; }; 41 QString elnum() const{ return num; };
42 QString elaz() const{ return az; }; 42 QString elaz() const{ return az; };
43 QString eldate() const{ return date; }; 43 QString eldate() const{ return date; };
44 QString elen() const{ return en; }; 44 QString elen() const{ return en; };
45 QString elmp() const{ return mp; }; 45 QString elmp() const{ return mp; };
46 QString elbp() const{ return bp; }; 46 QString elbp() const{ return bp; };
47 QString elar() const{ return ar; }; 47 QString elar() const{ return ar; };
48 48
49 private: 49 private:
50 QString name, // The name of the element 50 QString name, // The name of the element
51 weight, // weight 51 weight, // weight
52 density, // density 52 density, // density
53 group, // group 53 group, // group
54 ie, // ionisationenergie 54 ie, // ionisationenergie
55 num, // number ( e.g. Carbon is 6 ) 55 num, // number ( e.g. Carbon is 6 )
56 az, // state of aggregation 56 az, // state of aggregation
57 date, // date of discovery 57 date, // date of discovery
58 en, // electronegativity 58 en, // electronegativity
59 mp, // meltingpoint 59 mp, // meltingpoint
60 bp, // boilingpoint 60 bp, // boilingpoint
61 ar; // atomic radius 61 ar; // atomic radius
62}; 62};
63 63
64class QGridLayout;
65
64class PSEWidget : public QWidget 66class PSEWidget : public QWidget
65{ 67{
66 Q_OBJECT 68 Q_OBJECT
67 69
68 public: 70 public:
69 PSEWidget(); 71 PSEWidget();
72 QGridLayout *bottom_grid;
70 73
71 private: 74 private:
72 QGridLayout *maingrid; 75 QGridLayout *maingrid;
76
77 void position( int, int&, int& );
73 78
74}; 79};
75 80
76#endif 81#endif