From cf8cd699e91df40c3f9070019f7c561432b4b4dd Mon Sep 17 00:00:00 2001 From: "Bocklage, Jens" Date: Fri, 30 Sep 2016 14:31:09 +0200 Subject: Implementing app launch and app surface control workflow. Using WindowManager to control layer and surfaces (ongoing). Defining three layouts. Adding combobox selection feature to popup widget. Known issue: IVI-shell is currently disabled in AGL due to issues (porting to Yocto 2.1.1). Signed-off-by: Bocklage, Jens --- interfaces/README.md | 6 +++ interfaces/homescreen.xml | 3 ++ interfaces/include/windowmanager.hpp | 59 +++++++++++++++++++++++++++ interfaces/interfaces.pro | 11 ++++-- interfaces/popup.xml | 4 ++ interfaces/src/appframework.cpp | 16 ++++++++ interfaces/src/windowmanager.cpp | 77 ++++++++++++++++++++++++++++++++++++ interfaces/windowmanager.xml | 52 ++++++++++++++++++++++++ 8 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 interfaces/include/windowmanager.hpp create mode 100644 interfaces/src/windowmanager.cpp create mode 100644 interfaces/windowmanager.xml (limited to 'interfaces') diff --git a/interfaces/README.md b/interfaces/README.md index 0d11315..c669548 100644 --- a/interfaces/README.md +++ b/interfaces/README.md @@ -9,6 +9,12 @@ https://gerrit.automotivelinux.org/gerrit/#/admin/projects/staging/HomeScreen AGL repo for bitbake recipe: https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-demo/recipes-demo-hmi/HomeScreen/HomeScreen_?.bb +v0.3.0 +09/30/2016 + +#changes +- interface definition ongoing + v0.1.1 07/06/2016 diff --git a/interfaces/homescreen.xml b/interfaces/homescreen.xml index 55f4305..3eb66d0 100644 --- a/interfaces/homescreen.xml +++ b/interfaces/homescreen.xml @@ -17,6 +17,9 @@ + + + diff --git a/interfaces/include/windowmanager.hpp b/interfaces/include/windowmanager.hpp new file mode 100644 index 0000000..b587b70 --- /dev/null +++ b/interfaces/include/windowmanager.hpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WINDOWMANAGER_H +#define WINDOWMANAGER_H + +#include + +class SimplePoint +{ +public: + SimplePoint(); + virtual ~SimplePoint(); + + int x; + int y; + + friend QDBusArgument &operator <<(QDBusArgument &argument, const SimplePoint &mSimplePoint); + friend const QDBusArgument &operator >>(const QDBusArgument &argument, SimplePoint &mSimplePoint); +}; + + +class SimpleRect +{ +public: + SimpleRect(); + virtual ~SimpleRect(); + + int x; + int y; + int width; + int height; + + friend QDBusArgument &operator <<(QDBusArgument &argument, const SimpleRect &mSimpleRect); + friend const QDBusArgument &operator >>(const QDBusArgument &argument, SimpleRect &mSimpleRect); +}; + + +Q_DECLARE_METATYPE(SimplePoint) +Q_DECLARE_METATYPE(QList) + +Q_DECLARE_METATYPE(SimpleRect) +Q_DECLARE_METATYPE(QList) + + +#endif // WINDOWMANAGER_H diff --git a/interfaces/interfaces.pro b/interfaces/interfaces.pro index 75b4412..d776564 100644 --- a/interfaces/interfaces.pro +++ b/interfaces/interfaces.pro @@ -21,8 +21,12 @@ TEMPLATE = lib CONFIG += staticlib TARGET = interfaces -HEADERS += include/appframework.hpp -SOURCES += src/appframework.cpp +HEADERS += \ + include/appframework.hpp \ + include/windowmanager.hpp + +SOURCES += src/appframework.cpp \ + src/windowmanager.cpp XMLSOURCES = \ appframework.xml \ @@ -30,7 +34,8 @@ XMLSOURCES = \ homescreen.xml \ inputevent.xml \ popup.xml \ - statusbar.xml + statusbar.xml \ + windowmanager.xml gen_adapter_cpp.input = XMLSOURCES gen_adapter_cpp.commands = \ diff --git a/interfaces/popup.xml b/interfaces/popup.xml index 0ec8db3..c144f84 100644 --- a/interfaces/popup.xml +++ b/interfaces/popup.xml @@ -18,5 +18,9 @@ + + + + diff --git a/interfaces/src/appframework.cpp b/interfaces/src/appframework.cpp index 3a5ebda..afd6114 100644 --- a/interfaces/src/appframework.cpp +++ b/interfaces/src/appframework.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "include/appframework.hpp" AppInfo::AppInfo(QObject *parent) : diff --git a/interfaces/src/windowmanager.cpp b/interfaces/src/windowmanager.cpp new file mode 100644 index 0000000..12f425e --- /dev/null +++ b/interfaces/src/windowmanager.cpp @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "include/windowmanager.hpp" + +SimplePoint::SimplePoint() +{ +} + +SimplePoint::~SimplePoint() +{ +} + + +SimpleRect::SimpleRect() +{ +} + +SimpleRect::~SimpleRect() +{ +} + +QDBusArgument &operator <<(QDBusArgument &argument, const SimplePoint &mSimplePoint) +{ + argument.beginStructure(); + argument << mSimplePoint.x; + argument << mSimplePoint.y; + argument.endStructure(); + + return argument; +} + +const QDBusArgument &operator >>(const QDBusArgument &argument, SimplePoint &mSimplePoint) +{ + argument.beginStructure(); + argument >> mSimplePoint.x; + argument >> mSimplePoint.y; + argument.endStructure(); + return argument; +} + +QDBusArgument &operator <<(QDBusArgument &argument, const SimpleRect &mSimpleRect) +{ + argument.beginStructure(); + argument << mSimpleRect.x; + argument << mSimpleRect.y; + argument << mSimpleRect.width; + argument << mSimpleRect.height; + argument.endStructure(); + + return argument; +} + +const QDBusArgument &operator >>(const QDBusArgument &argument, SimpleRect &mSimpleRect) +{ + argument.beginStructure(); + argument >> mSimpleRect.x; + argument >> mSimpleRect.y; + argument >> mSimpleRect.width; + argument >> mSimpleRect.height; + argument.endStructure(); + return argument; +} + diff --git a/interfaces/windowmanager.xml b/interfaces/windowmanager.xml new file mode 100644 index 0000000..9c1e7fe --- /dev/null +++ b/interfaces/windowmanager.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit