summaryrefslogtreecommitdiffstats
path: root/mobile-hybrid-demo/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mobile-hybrid-demo/mainwindow.cpp')
-rwxr-xr-xmobile-hybrid-demo/mainwindow.cpp110
1 files changed, 110 insertions, 0 deletions
diff --git a/mobile-hybrid-demo/mainwindow.cpp b/mobile-hybrid-demo/mainwindow.cpp
new file mode 100755
index 0000000..7ec6ccf
--- /dev/null
+++ b/mobile-hybrid-demo/mainwindow.cpp
@@ -0,0 +1,110 @@
+/* This file is part of mobile_hybrid_demo (HTML5 demonstration)
+
+Copyright � 2010 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+
+Contact: Nokia Corporation qt-info@nokia.com
+
+You may use this file under the terms of the BSD license as follows:
+
+"Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met: *
+Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer. * Redistributions in binary
+form must reproduce the above copyright notice, this list of conditions and the
+following disclaimer in the documentation and/or other materials provided with
+the distribution. * Neither the name of Nokia Corporation and its
+Subsidiary(-ies) nor the names of its contributors may be used to endorse or
+promote products derived from this software without specific prior written
+permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+*/
+
+// checksum 0xfd0b version 0x20001
+
+
+#include "mainwindow.h"
+
+#include <QtCore/QCoreApplication>
+
+#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
+#include <eikenv.h>
+#include <eikappui.h>
+#include <aknenv.h>
+#include <aknappui.h>
+#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
+
+MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent)
+{
+ m_web = new WebWidget;
+ setCentralWidget(m_web);
+}
+
+MainWindow::~MainWindow()
+{
+ delete m_web;
+}
+
+void MainWindow::loadUrl(const QUrl &url)
+{
+ m_web->loadUrl(url);
+}
+
+
+void MainWindow::setOrientation(ScreenOrientation orientation)
+{
+#ifdef Q_OS_SYMBIAN
+ if (orientation != ScreenOrientationAuto) {
+#if defined(ORIENTATIONLOCK)
+ const CAknAppUiBase::TAppUiOrientation uiOrientation =
+ (orientation == ScreenOrientationLockPortrait) ? CAknAppUi::EAppUiOrientationPortrait
+ : CAknAppUi::EAppUiOrientationLandscape;
+ CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi());
+ TRAPD(error,
+ if (appUi)
+ appUi->SetOrientationL(uiOrientation);
+ );
+ Q_UNUSED(error)
+#else // ORIENTATIONLOCK
+ qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation.");
+#endif // ORIENTATIONLOCK
+ }
+#elif defined(Q_WS_MAEMO_5)
+ Qt::WidgetAttribute attribute;
+ switch (orientation) {
+ case ScreenOrientationLockPortrait:
+ attribute = Qt::WA_Maemo5PortraitOrientation;
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = Qt::WA_Maemo5LandscapeOrientation;
+ break;
+ case ScreenOrientationAuto:
+ default:
+ attribute = Qt::WA_Maemo5AutoOrientation;
+ break;
+ }
+ setAttribute(attribute, true);
+#else // Q_OS_SYMBIAN
+ Q_UNUSED(orientation);
+#endif // Q_OS_SYMBIAN
+}
+
+void MainWindow::showExpanded()
+{
+#ifdef Q_OS_SYMBIAN
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+ showMaximized();
+#else
+ showFullScreen();
+#endif
+}