--- a/ginebra2/PopupWebChromeItem.h Fri May 14 15:40:36 2010 +0300
+++ b/ginebra2/PopupWebChromeItem.h Tue Jun 29 00:46:29 2010 -0400
@@ -1,21 +1,24 @@
/*
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as published by
+* the Free Software Foundation, version 2.1 of the License.
*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
*
-* Contributors:
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program. If not,
+* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
*
-* Description:
+* Description:
*
*/
-
#ifndef __GINEBRA_POPUPWEBCHROMEITEM_H__
#define __GINEBRA_POPUPWEBCHROMEITEM_H__
@@ -23,25 +26,32 @@
namespace GVA {
-// To use PopupWebChromeItem:
-//
-// 1. Add data-GinebraItemType="popup" to the DIV element defining your
-// snippet in chrome.html
-//
-// 2. Connect to the externalMouseEvent signal AFTER chromeLoadComplete
-// has been emitted:
-//
-// window.chrome.chromeComplete.connect(chromeLoadComplete);
-//
-// function chromeLoadComplete() {
-// window.snippets.ContextMenuId.externalMouseEvent.connect(
-// function(type, name, description) {
-// if (name == "QGraphicsSceneMouseReleaseEvent") {
-// window.snippets.ContextMenuId.hide();
-// }
-// }
-// );
-// }
+/*!
+ * This class displays a modal dialog-like snippet.
+ *
+ * To use PopupWebChromeItem:
+ *
+ * 1. Add data-GinebraItemType="popup" to the DIV element defining your
+ * snippet in chrome.html
+ *
+ * 2. Add data-GinebraPopupModal="false" to the DIV to prevent the system
+ * from dimming the other items on the screen while your popup is displayed.
+ *
+ * 3. Connect to the externalMouseEvent signal AFTER chromeLoadComplete
+ * has been emitted:
+ *
+ * window.chrome.chromeComplete.connect(chromeLoadComplete);
+ *
+ * function chromeLoadComplete() {
+ * window.snippets.ContextMenuId.externalMouseEvent.connect(
+ * function(type, name, description) {
+ * if (name == "QGraphicsSceneMouseReleaseEvent") {
+ * window.snippets.ContextMenuId.hide();
+ * }
+ * }
+ * );
+ * }
+ */
class PopupWebChromeItem : public WebChromeItem
{
@@ -49,10 +59,10 @@
public:
PopupWebChromeItem(
- const QRectF & ownerArea,
ChromeWidget * chrome,
const QWebElement & element,
- QGraphicsItem * parent = 0);
+ QGraphicsItem * parent = 0,
+ bool modal = true);
virtual ~PopupWebChromeItem();
@@ -60,17 +70,17 @@
signals:
void externalMouseEvent(
- int type,
+ QEvent * ev,
const QString & name,
const QString & description);
-protected:
- virtual bool event(QEvent * event);
- virtual bool eventFilter(QObject * object, QEvent * event);
-
private:
void checkForExternalEvent(QObject * object, QEvent * event);
void emitExternalEvent(QEvent * event);
+ bool event(QEvent * e);
+
+ bool m_modal;
+ class ExternalEventCharm *m_externalEventCharm;
};
} // end of namespace GVA