summaryrefslogtreecommitdiff
path: root/libopie2/opieui
authormickeyl <mickeyl>2005-05-03 21:53:57 (UTC)
committer mickeyl <mickeyl>2005-05-03 21:53:57 (UTC)
commit1daea169fcc0007727f0752251ca4546817999b7 (patch) (side-by-side diff)
treef6b03f5b44bc2debe43d8d1ba7c4c39f2cc70518 /libopie2/opieui
parente9d35f23f81915ee62cb41b4ed82115826a4f9dd (diff)
downloadopie-1daea169fcc0007727f0752251ca4546817999b7.zip
opie-1daea169fcc0007727f0752251ca4546817999b7.tar.gz
opie-1daea169fcc0007727f0752251ca4546817999b7.tar.bz2
add OAutoBoxLayout, a descendant of QBoxLayout which, depending on
Desktop-Height > Desktop-Width acts as a QHBoxLayout respectively a QVBoxLayout
Diffstat (limited to 'libopie2/opieui') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opieui/big-screen/big-screen.pro13
-rw-r--r--libopie2/opieui/big-screen/olayout.cpp83
-rw-r--r--libopie2/opieui/big-screen/olayout.h57
3 files changed, 151 insertions, 2 deletions
diff --git a/libopie2/opieui/big-screen/big-screen.pro b/libopie2/opieui/big-screen/big-screen.pro
index f324d3c..b08ad5a 100644
--- a/libopie2/opieui/big-screen/big-screen.pro
+++ b/libopie2/opieui/big-screen/big-screen.pro
@@ -1,2 +1,11 @@
-HEADERS += big-screen/obigscreen_p.h big-screen/osplitter.h big-screen/owidgetstack.h #big-screen/omodalhelper.h
-SOURCES += big-screen/osplitter.cpp big-screen/owidgetstack.cpp #big-screen/omodalhelper.cpp
+HEADERS += \
+ big-screen/obigscreen_p.h \
+ big-screen/osplitter.h \
+ big-screen/owidgetstack.h \
+ big-screen/olayout.h
+
+SOURCES += \
+ big-screen/osplitter.cpp \
+ big-screen/owidgetstack.cpp \
+ big-screen/olayout.cpp
+
diff --git a/libopie2/opieui/big-screen/olayout.cpp b/libopie2/opieui/big-screen/olayout.cpp
new file mode 100644
index 0000000..bbe6f6c
--- a/dev/null
+++ b/libopie2/opieui/big-screen/olayout.cpp
@@ -0,0 +1,83 @@
+/*
+               =. This file is part of the OPIE Project
+             .=l. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
+           .>+-=
+ _;:,     .>    :=|. This library is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; version 2 of the License.
+     ._= =}       :
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This library is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#include "olayout.h"
+
+/* OPIE */
+#include <opie2/odebug.h>
+
+/* QT */
+#include <qapplication.h>
+
+namespace Opie {
+namespace Ui {
+
+OAutoBoxLayout::OAutoBoxLayout( QWidget *parent, int border, int space, const char *name )
+ :QBoxLayout( parent, LeftToRight, border, space, name )
+{
+ fixDirection();
+}
+
+
+OAutoBoxLayout::OAutoBoxLayout( QLayout *parentLayout, int space, const char *name )
+ :QBoxLayout( parentLayout, LeftToRight, space, name )
+{
+ fixDirection();
+}
+
+
+OAutoBoxLayout::OAutoBoxLayout( int space, const char *name )
+ :QBoxLayout( LeftToRight, space, name )
+{
+ fixDirection();
+}
+
+
+void OAutoBoxLayout::fixDirection()
+{
+ QWidget* desktop = QApplication::desktop();
+ int w = desktop->width();
+ int h = desktop->height();
+ if ( h > w )
+ {
+ odebug << "OAutoBoxLayout: h > w, setting orientation to TopToBottom" << oendl;
+ setDirection( TopToBottom );
+ }
+}
+
+
+OAutoBoxLayout::~OAutoBoxLayout()
+{
+}
+
+
+}; // namespace Ui
+}; // namespace Opie
+
+
+
diff --git a/libopie2/opieui/big-screen/olayout.h b/libopie2/opieui/big-screen/olayout.h
new file mode 100644
index 0000000..03c8d4a
--- a/dev/null
+++ b/libopie2/opieui/big-screen/olayout.h
@@ -0,0 +1,57 @@
+/*
+               =. This file is part of the OPIE Project
+             .=l. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
+           .>+-=
+ _;:,     .>    :=|. This library is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; version 2 of the License.
+     ._= =}       :
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This library is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#ifndef OLAYOUT_H
+#define OLAYOUT_H
+
+/* QT */
+
+#include <qlayout.h>
+
+namespace Opie {
+namespace Ui {
+
+class OAutoBoxLayout : public QBoxLayout
+{
+ Q_OBJECT
+public:
+ OAutoBoxLayout( QWidget *parent, int border=0, int space = -1, const char *name=0 );
+ OAutoBoxLayout( QLayout *parentLayout, int space = -1, const char *name=0 );
+ OAutoBoxLayout( int space = -1, const char *name=0 );
+ ~OAutoBoxLayout();
+
+private:
+ void fixDirection();
+};
+
+}; // namespace Ui
+}; // namespace Opie
+
+#endif
+
+