From 1daea169fcc0007727f0752251ca4546817999b7 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Tue, 03 May 2005 21:53:57 +0000 Subject: add OAutoBoxLayout, a descendant of QBoxLayout which, depending on Desktop-Height > Desktop-Width acts as a QHBoxLayout respectively a QVBoxLayout --- (limited to 'libopie2') 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 +           .>+-= + _;:,     .>    :=|. 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_,=:_.      -`: 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 + +/* QT */ +#include + +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 +           .>+-= + _;:,     .>    :=|. 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_,=:_.      -`: 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 + +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 + + -- cgit v0.9.0.2