summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show 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.cpp124
-rw-r--r--noncore/apps/oxygen/psewidget.h5
4 files changed, 129 insertions, 7 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 @@
OxyFrame::OxyFrame(QWidget *parent, const char *name) : QFrame(parent,name)
{
+ this->setFrameStyle( QFrame::Panel );
+ this->setLineWidth( 2 );
+ this->setFrameShadow( QFrame::Raised );
+ this->setBackgroundColor( QColor( cyan ) );
}
+
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
public:
OxyFrame( QWidget *parent=0, const char *name=0);
-
-
};
#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 @@
#include <qpe/config.h>
#include <qlayout.h>
+#include <qlabel.h>
#include <qlist.h>
+#include <qvbox.h>
+#include "dataTable.h"
#include "psewidget.h"
#include "oxyframe.h"
@@ -18,12 +21,123 @@ Element::Element( const QString &name )
{
}
+
PSEWidget::PSEWidget() : QWidget()
{
- QList<Element> elements;
- elements.setAutoDelete( TRUE );
- elements.append( new Element( "1" ) );
+ this->setCaption( "Periodic System" );
+
+ QGridLayout *grid = new QGridLayout( this, 18,10 );
+ int h=0, v=0;
+ for( int n = 0 ; n < 118 ; n++ )
+ {
+ position( n+1,h,v );
+ QList<OxyFrame> PSEframe;
+ PSEframe.append( new OxyFrame( this , QString::number( n ) ) );
+ grid->addWidget( PSEframe.current() , v/40+1 , h/40 );
+ }
+}
+
+void PSEWidget::position(int n, int& h, int& v)
+{
+ //Hydrogen
+ if (n == 1)
+ {
+ h=0; v=0;
+ }
+
+
+ //Helium
+ if (n == 2)
+ {
+ h=680; v=0;
+ }
+
+
+ //Lithium
+ if (n == 3)
+ {
+ h=0; v=40;
+ }
+
+
+ //Beryllium
+ if (n == 4)
+ {
+ h=40; v=40;
+ }
+
+
+ //Boron-->Neon or Aluminum --> Argon
+ if ((n >= 5 && n <= 10) || (n >= 13 && n <= 18))
+ for (int i = 1; i <= (6-(10-n)); i++)
+ {
+ h=((i*40)+440);
+ v = 40;
+ if (n >= 13)
+ {
+ v=80;
+ h=(h-320);
+ }
+ }
+
+
+ //Sodium
+ if (n == 11)
+ {
+ h=0; v=80;
+ }
+
+
+ //Magnesium
+ if (n == 12)
+ {
+ h=40; v=80;
+ }
+
+
+ //Potassium --> Uuo without La and Ac
+ if ((n >= 19 && n <= 56) || (n >= 72 && n <= 88) || n >= 104)
+ for (int i = 1; i <= 18; i++)
+ {
+ int f = n;
+ if (n > 18)
+ f = n-18;
+ if (n > 36)
+ f = n-36;
+ if (n > 54)
+ f = n-54;
+ if (n > 71)
+ f = n-68;
+ if (n > 86)
+ f = n-86;
+ if (n > 103)
+ f = n-100;
+
+ h=((f*40)-40);
- maingrid = new QGridLayout( 18 , 10 , -1 , "maingridlayout" );
- OxyFrame *configobj = new OxyFrame(this);
+ v = 120;
+ if (n >= 37)
+ v=160;
+ if (n >= 55)
+ v=200;
+ if (n >= 87)
+ v=240;
+ }
+
+
+ //Lanthanum --> Lutetium and Actinum --> Lawrencium
+ if ((n >= 57 && n <= 71) || (n >= 89 && n <= 103))
+ for (int i = 1; i <= 14; i++)
+ {
+ int f = n;
+ if (n > 56)
+ f = n-55;
+ if (n > 88)
+ f = n-87;
+ h=(f*40);
+ v = 290;
+ if (n >= 89)
+ v=330;
+ }
+ v += 10;
}
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,16 +61,21 @@ class Element
ar; // atomic radius
};
+class QGridLayout;
+
class PSEWidget : public QWidget
{
Q_OBJECT
public:
PSEWidget();
+ QGridLayout *bottom_grid;
private:
QGridLayout *maingrid;
+ void position( int, int&, int& );
+
};
#endif