mirror of https://github.com/cutefishos/appmotor
				
				
				
			
							parent
							
								
									9280739c51
								
							
						
					
					
						commit
						e8a7e61897
					
				@ -0,0 +1,43 @@
 | 
			
		||||
# Set sources
 | 
			
		||||
set(SRC main.cpp mainpage.cpp multiwindowcontent.cpp)
 | 
			
		||||
 | 
			
		||||
# Set moc headers
 | 
			
		||||
set(MOC_HDRS mainpage.h multiwindowcontent.h)
 | 
			
		||||
qt4_wrap_cpp(MOC_SRC ${MOC_HDRS})
 | 
			
		||||
 | 
			
		||||
link_libraries(${MEEGOTOUCH_LIBRARIES})
 | 
			
		||||
 | 
			
		||||
# Use the compiler and linker flags given in meegotouch-boostable.pc
 | 
			
		||||
# in the source tree.
 | 
			
		||||
execute_process(COMMAND "env" 
 | 
			
		||||
                         "PKG_CONFIG_PATH=${CMAKE_SOURCE_DIR}/data/pkgconfig" 
 | 
			
		||||
                         "/usr/bin/pkg-config" 
 | 
			
		||||
                         "--cflags" 
 | 
			
		||||
                         "meegotouch-boostable" 
 | 
			
		||||
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 
 | 
			
		||||
                OUTPUT_VARIABLE booster_cxxflags 
 | 
			
		||||
                OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
			
		||||
execute_process(COMMAND "env" 
 | 
			
		||||
                        "PKG_CONFIG_PATH=${CMAKE_SOURCE_DIR}/data/pkgconfig" 
 | 
			
		||||
                        "/usr/bin/pkg-config" "--libs" 
 | 
			
		||||
                        "meegotouch-boostable" 
 | 
			
		||||
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 
 | 
			
		||||
                OUTPUT_VARIABLE booster_libs 
 | 
			
		||||
                OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
			
		||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${booster_cxxflags}")
 | 
			
		||||
set(CMAKE_EXE_LINKER_FLAGS ${booster_libs})
 | 
			
		||||
 | 
			
		||||
# Enable Qt-support
 | 
			
		||||
include(${QT_USE_FILE})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Enable Qt-support
 | 
			
		||||
include(${QT_USE_FILE})
 | 
			
		||||
 | 
			
		||||
set(NAME fala_multi-window)
 | 
			
		||||
 | 
			
		||||
add_executable(${NAME} ${SRC} ${MOC_SRC})
 | 
			
		||||
 | 
			
		||||
# Install
 | 
			
		||||
install(PROGRAMS ${NAME} DESTINATION /usr/bin)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,12 @@
 | 
			
		||||
README
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
Multiwindow test application. 
 | 
			
		||||
 | 
			
		||||
Command to launch application
 | 
			
		||||
 | 
			
		||||
invoker --type=m /usr/bin/fala_multi-window [-window-not-from-cache]
 | 
			
		||||
 | 
			
		||||
Application can be started with the switch "-output-level debug" to get information what happens inside it.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,21 @@
 | 
			
		||||
TEMPLATE     = app
 | 
			
		||||
TARGET       = fala_multi-window
 | 
			
		||||
target.path  = /usr/bin
 | 
			
		||||
OBJECTS_DIR  = ./.obj
 | 
			
		||||
MOC_DIR      = ./.moc
 | 
			
		||||
DEPENDPATH  += $$INCLUDEPATH
 | 
			
		||||
CONFIG      -= app_bundle
 | 
			
		||||
CONFIG      += meegotouch-boostable
 | 
			
		||||
 | 
			
		||||
SOURCES += main.cpp \
 | 
			
		||||
    mainpage.cpp \
 | 
			
		||||
    multiwindowcontent.cpp
 | 
			
		||||
 | 
			
		||||
HEADERS += mainpage.h \
 | 
			
		||||
    multiwindowcontent.h
 | 
			
		||||
 | 
			
		||||
# Install instructions
 | 
			
		||||
INSTALLS += target
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DEFINES += HAVE_MCOMPONENTCACHE
 | 
			
		||||
@ -0,0 +1,63 @@
 | 
			
		||||
/***************************************************************************
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 | 
			
		||||
** All rights reserved.
 | 
			
		||||
** Contact: Nokia Corporation (directui@nokia.com)
 | 
			
		||||
**
 | 
			
		||||
** This file is part of applifed.
 | 
			
		||||
**
 | 
			
		||||
** If you have questions regarding the use of this file, please contact
 | 
			
		||||
** Nokia at directui@nokia.com.
 | 
			
		||||
**
 | 
			
		||||
** This library is free software; you can redistribute it and/or
 | 
			
		||||
** modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
** License version 2.1 as published by the Free Software Foundation
 | 
			
		||||
** and appearing in the file LICENSE.LGPL included in the packaging
 | 
			
		||||
** of this file.
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include "multiwindowcontent.h"
 | 
			
		||||
#include <QString>
 | 
			
		||||
#include <MApplication>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_MCOMPONENTCACHE
 | 
			
		||||
#include <mcomponentcache.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
M_EXPORT int main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
#ifdef HAVE_MCOMPONENTCACHE
 | 
			
		||||
    MApplication *app = MComponentCache::mApplication(argc, argv);
 | 
			
		||||
 | 
			
		||||
    bool bWindowNotFromCache = false;
 | 
			
		||||
    const QString sWindowNotFromCache = "window-not-from-cache";
 | 
			
		||||
 | 
			
		||||
    for (int i = 1; i < argc; i++) {
 | 
			
		||||
        QString sArg = QString(argv[i]);
 | 
			
		||||
        if (sArg.contains(sWindowNotFromCache,Qt::CaseInsensitive)) {
 | 
			
		||||
            bWindowNotFromCache = true;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (bWindowNotFromCache) {
 | 
			
		||||
        MultiWindowContent mwContent(false);
 | 
			
		||||
        mwContent.createWindows();
 | 
			
		||||
        mwContent.activateWindow(1);
 | 
			
		||||
    } else {
 | 
			
		||||
        MultiWindowContent mwContent(true);
 | 
			
		||||
        mwContent.createWindows();
 | 
			
		||||
        mwContent.activateWindow(1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
    MApplication *app = new MApplication(argc, argv);
 | 
			
		||||
    MultiWindowContent mwContent(false);
 | 
			
		||||
    mwContent.createWindows();
 | 
			
		||||
    mwContent.activateWindow(1);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return app->exec();
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,51 @@
 | 
			
		||||
/***************************************************************************
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 | 
			
		||||
** All rights reserved.
 | 
			
		||||
** Contact: Nokia Corporation (directui@nokia.com)
 | 
			
		||||
**
 | 
			
		||||
** This file is part of applifed.
 | 
			
		||||
**
 | 
			
		||||
** If you have questions regarding the use of this file, please contact
 | 
			
		||||
** Nokia at directui@nokia.com.
 | 
			
		||||
**
 | 
			
		||||
** This library is free software; you can redistribute it and/or
 | 
			
		||||
** modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
** License version 2.1 as published by the Free Software Foundation
 | 
			
		||||
** and appearing in the file LICENSE.LGPL included in the packaging
 | 
			
		||||
** of this file.
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <MLayout>
 | 
			
		||||
#include <MLabel>
 | 
			
		||||
#include <MGridLayoutPolicy>
 | 
			
		||||
#include <MDebug>
 | 
			
		||||
 | 
			
		||||
#include "mainpage.h"
 | 
			
		||||
 | 
			
		||||
MainPage::MainPage(QString windowName) :
 | 
			
		||||
    m_windowName(windowName)
 | 
			
		||||
{
 | 
			
		||||
    setTitle(windowName);
 | 
			
		||||
 | 
			
		||||
    m_layout = new MLayout(centralWidget());
 | 
			
		||||
    m_policy = new MGridLayoutPolicy(m_layout);
 | 
			
		||||
    m_policy->setSpacing(20.0);
 | 
			
		||||
 | 
			
		||||
    m_label = new MLabel(m_windowName);
 | 
			
		||||
    m_label->setAlignment(Qt::AlignCenter);
 | 
			
		||||
    m_policy->addItem(m_label, 0, 0);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MainPage::~MainPage()
 | 
			
		||||
{
 | 
			
		||||
    delete m_policy;
 | 
			
		||||
    m_policy = NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainPage::createContent()
 | 
			
		||||
{}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,46 @@
 | 
			
		||||
/***************************************************************************
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 | 
			
		||||
** All rights reserved.
 | 
			
		||||
** Contact: Nokia Corporation (directui@nokia.com)
 | 
			
		||||
**
 | 
			
		||||
** This file is part of applifed.
 | 
			
		||||
**
 | 
			
		||||
** If you have questions regarding the use of this file, please contact
 | 
			
		||||
** Nokia at directui@nokia.com.
 | 
			
		||||
**
 | 
			
		||||
** This library is free software; you can redistribute it and/or
 | 
			
		||||
** modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
** License version 2.1 as published by the Free Software Foundation
 | 
			
		||||
** and appearing in the file LICENSE.LGPL included in the packaging
 | 
			
		||||
** of this file.
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef MAINPAGE_H
 | 
			
		||||
#define MAINPAGE_H
 | 
			
		||||
 | 
			
		||||
#include <MApplicationPage>
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
class MLabel;
 | 
			
		||||
class MLayout;
 | 
			
		||||
class MGridLayoutPolicy;
 | 
			
		||||
 | 
			
		||||
class MainPage : public MApplicationPage
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    MainPage(QString windowName);
 | 
			
		||||
    virtual ~MainPage();
 | 
			
		||||
    virtual void createContent();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    QString              m_windowName;
 | 
			
		||||
    MLabel             * m_label;
 | 
			
		||||
    MLayout            * m_layout;
 | 
			
		||||
    MGridLayoutPolicy  * m_policy;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // MAINPAGE_H
 | 
			
		||||
@ -0,0 +1,72 @@
 | 
			
		||||
/***************************************************************************
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 | 
			
		||||
** All rights reserved.
 | 
			
		||||
** Contact: Nokia Corporation (directui@nokia.com)
 | 
			
		||||
**
 | 
			
		||||
** This file is part of applifed.
 | 
			
		||||
**
 | 
			
		||||
** If you have questions regarding the use of this file, please contact
 | 
			
		||||
** Nokia at directui@nokia.com.
 | 
			
		||||
**
 | 
			
		||||
** This library is free software; you can redistribute it and/or
 | 
			
		||||
** modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
** License version 2.1 as published by the Free Software Foundation
 | 
			
		||||
** and appearing in the file LICENSE.LGPL included in the packaging
 | 
			
		||||
** of this file.
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include "multiwindowcontent.h"
 | 
			
		||||
#include "mainpage.h"
 | 
			
		||||
 | 
			
		||||
#include <MDebug>
 | 
			
		||||
#include <MApplicationWindow>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_MCOMPONENTCACHE
 | 
			
		||||
#include <mcomponentcache.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
MultiWindowContent::MultiWindowContent(bool windowFromCache):
 | 
			
		||||
    m_windowFromCache(windowFromCache)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MultiWindowContent::createWindows()
 | 
			
		||||
{
 | 
			
		||||
    // Create windows
 | 
			
		||||
    for (int i = 0; i < NUM_WINDOWS; i++) {
 | 
			
		||||
#ifdef HAVE_MCOMPONENTCACHE
 | 
			
		||||
        m_window[i] = m_windowFromCache? MComponentCache::mApplicationWindow() : new MApplicationWindow;
 | 
			
		||||
#else
 | 
			
		||||
        m_window[i] = new MApplicationWindow;
 | 
			
		||||
#endif
 | 
			
		||||
        m_window[i]->setWindowTitle(QString("Window %1").arg(i + 1));
 | 
			
		||||
        m_window[i]->setObjectName(QString("Window %1").arg(i + 1));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Create pages
 | 
			
		||||
    for (int i = 0; i < NUM_WINDOWS; i++)
 | 
			
		||||
        m_mainPage[i] = new MainPage(QString("Window %1").arg(i + 1));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MultiWindowContent::activateWindow(int index)
 | 
			
		||||
{
 | 
			
		||||
    index--;
 | 
			
		||||
    if (index >= 0 && index < NUM_WINDOWS)  {
 | 
			
		||||
 | 
			
		||||
        // Show the desired window
 | 
			
		||||
        m_window[index]->show();
 | 
			
		||||
        m_window[index]->activateWindow();
 | 
			
		||||
        m_window[index]->raise();
 | 
			
		||||
 | 
			
		||||
        m_mainPage[index]->appear(m_window[index]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
MultiWindowContent::~MultiWindowContent()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,44 @@
 | 
			
		||||
/***************************************************************************
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 | 
			
		||||
** All rights reserved.
 | 
			
		||||
** Contact: Nokia Corporation (directui@nokia.com)
 | 
			
		||||
**
 | 
			
		||||
** This file is part of applifed.
 | 
			
		||||
**
 | 
			
		||||
** If you have questions regarding the use of this file, please contact
 | 
			
		||||
** Nokia at directui@nokia.com.
 | 
			
		||||
**
 | 
			
		||||
** This library is free software; you can redistribute it and/or
 | 
			
		||||
** modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
** License version 2.1 as published by the Free Software Foundation
 | 
			
		||||
** and appearing in the file LICENSE.LGPL included in the packaging
 | 
			
		||||
** of this file.
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef MULTIWINDOWCONTENT_H
 | 
			
		||||
#define MULTIWINDOWCONTENT_H
 | 
			
		||||
 | 
			
		||||
#include <MApplicationWindow>
 | 
			
		||||
 | 
			
		||||
#include "mainpage.h"
 | 
			
		||||
 | 
			
		||||
class MultiWindowContent
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    static const int NUM_WINDOWS = 3;
 | 
			
		||||
 | 
			
		||||
    MultiWindowContent(bool windowFromCache);
 | 
			
		||||
    virtual ~MultiWindowContent();
 | 
			
		||||
    void activateWindow(int index);
 | 
			
		||||
 | 
			
		||||
    void createWindows();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    MApplicationWindow *m_window[NUM_WINDOWS];
 | 
			
		||||
    MainPage *m_mainPage[NUM_WINDOWS];
 | 
			
		||||
    bool m_windowFromCache;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // MULTIWINDOWCONTENT_H
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue