ListElements/ModelViewList/PLLayout.h
author wesleyt@symbian.org
Thu, 09 Sep 2010 11:30:41 -0700
changeset 45 b23ec2b62c45
permissions -rw-r--r--
resizing layouts
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     1
#ifndef PLLAYOUT_H
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     2
#define PLLAYOUT_H
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     3
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     4
#include <QLayout>
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     5
#include <QResizeEvent>
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     6
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     7
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     8
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
     9
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    10
class PLLayout : public QLayout
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    11
{
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    12
    Q_OBJECT
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    13
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    14
public:
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    15
    PLLayout();
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    16
    ~PLLayout();
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    17
    //the main API methods
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    18
    int setLLayout(QLayout *clientlayout);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    19
    int setPLayout(QLayout *clientlayout);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    20
    void activatePLayout();
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    21
    void activateLLayout();
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    22
    //re-implementation of QLayout Methods, as needed
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    23
    void addItem(QLayoutItem *item);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    24
    QSize sizeHint() const;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    25
    QSize minimumSize() const;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    26
    void setGeometry(const QRect &rect);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    27
    bool hasHeightForWidth() const;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    28
    int heightForWidth( int ) const;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    29
    QLayoutItem * itemAt(int index ) const;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    30
    QLayoutItem * takeAt ( int index );
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    31
    int count() const;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    32
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    33
    //a convenience method for the parent widgets event handler
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    34
    void resizeEvent(QResizeEvent* event);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    35
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    36
protected:
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    37
    //these two may be promoted to public, when extending to more generic use cases
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    38
    void activateLayout(int idx);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    39
    int newLayout(QLayout *clientlayout);
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    40
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    41
private:
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    42
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    43
    QList<QLayout*> m_layoutList;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    44
    int m_numOfClients;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    45
    int m_currentLayoutIdx;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    46
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    47
    int m_portraitLayoutIdx;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    48
    int m_landscapeLayoutIdx;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    49
    int getLayoutIdx()const ;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    50
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    51
    bool m_hasPLayout;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    52
    bool m_hasLLayout;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    53
    bool m_isPLayout;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    54
    bool m_isLLayout;
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    55
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    56
    void redrawParent();
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    57
};
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    58
b23ec2b62c45 resizing layouts
wesleyt@symbian.org
parents:
diff changeset
    59
#endif // PLLAYOUT_H