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
@@ -13,4 +13,9 @@
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
@@ -19,8 +19,6 @@ class OxyFrame : public QFrame
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
@@ -9,7 +9,10 @@
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
@@ -18,12 +21,123 @@ Element::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
@@ -61,15 +61,20 @@ class Element
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