ginebra2/ContentViews/ViewportMetaData.h
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
    24 
    24 
    25 #include <QFlags>
    25 #include <QFlags>
    26 #include <QObject>
    26 #include <QObject>
    27 #include <QRect>
    27 #include <QRect>
    28 
    28 
       
    29 // Define VIEWPORT_ALWAYS_ALLOW_ZOOMING to force all content (particularly mobile content that
       
    30 // has UserScalable turned off) to be scalable.  This makes such content more usable since our
       
    31 // default font is so small.  If we switch to a larger default font this can be removed.
       
    32 #ifdef Q_WS_MAEMO_5
       
    33 #define VIEWPORT_ALWAYS_ALLOW_ZOOMING
       
    34 #endif
       
    35 
    29 namespace GVA {
    36 namespace GVA {
    30 
    37 
    31 struct ParsedViewportData{
    38 struct ParsedViewportData{
    32     QString m_width;
    39     QString m_width;
    33     QString m_height;
    40     QString m_height;
    50     ViewportMetaData();
    57     ViewportMetaData();
    51     ViewportMetaData(const ViewportMetaData&);
    58     ViewportMetaData(const ViewportMetaData&);
    52     ViewportMetaData& operator=(const ViewportMetaData&);
    59     ViewportMetaData& operator=(const ViewportMetaData&);
    53     ~ViewportMetaData();
    60     ~ViewportMetaData();
    54 
    61 
    55     void adjustViewportData(const QRect& clientRect);
    62     void adjustViewportData(const QSizeF& clientRect);
    56     void updateViewportData(const QSize& size, const QRect& clientRect);
    63     QSize getSpecifiedSize() const;
    57     void orientationChanged(const QRect& newClientRect);
    64     void adjustZoomValues(const QSizeF& contentSize);
       
    65     void orientationChanged(const QSizeF& newClientRect);
    58     bool isLayoutNeeded();
    66     bool isLayoutNeeded();
    59     void reset() {initialize();}
    67     void reset() {initialize();}
    60 
    68 
    61     void setFlag(ScaleLimit scaleLimit, bool enable)
    69     void setFlag(ScaleLimit scaleLimit, bool enable)
    62     {
    70     {
    71         return m_scaleLimits.testFlag(scaleLimit);
    79         return m_scaleLimits.testFlag(scaleLimit);
    72     }
    80     }
    73 
    81 
    74 protected:
    82 protected:
    75     void initialize();
    83     void initialize();
    76     void adjustZoomValues(const QRect& clientRect);
    84 
    77     bool isUserSpecifiedWidth();
    85     bool isUserSpecifiedWidth();
    78     bool isUserSpecifiedHeight();
    86     bool isUserSpecifiedHeight();
    79 
    87 
    80 public:
    88 public:
    81     qreal m_initialScale;
    89     qreal m_initialScale;
    82     qreal m_minimumScale;
    90     qreal m_minimumScale;
    83     qreal m_maximumScale;
    91     qreal m_maximumScale;
    84     int m_width;
    92     int m_width;
    85     int m_height;
    93     int m_height;
    86     bool m_userScalable;
    94     bool m_userScalable;
       
    95 #ifdef VIEWPORT_ALWAYS_ALLOW_ZOOMING
       
    96     /// True indicates that "user-scalable=no" has been overridden.
       
    97     bool m_userScalableOverRidden;
       
    98 #endif
    87     ScaleLimits m_scaleLimits;
    99     ScaleLimits m_scaleLimits;
    88     bool m_isValid;
   100     bool m_isValid;
    89     ParsedViewportData m_specifiedData;
   101     ParsedViewportData m_specifiedData;
       
   102     int m_defaultViewportWidth;
       
   103     int m_defaultViewportHeight;
       
   104     int m_maxViewportWidth;
       
   105     int m_maxViewportHeight;
       
   106     
    90 };//ViewportMetaData
   107 };//ViewportMetaData
    91 
   108 
    92 Q_DECLARE_OPERATORS_FOR_FLAGS(ViewportMetaData::ScaleLimits)
   109 Q_DECLARE_OPERATORS_FOR_FLAGS(ViewportMetaData::ScaleLimits)
    93 
   110 
    94 } //namespace GVA
   111 } //namespace GVA