From 25bf9810eed5923626425d590b781efd7004813a Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko <tolik@scand.com> Date: Tue, 16 Aug 2011 18:30:31 +0300 Subject: [PATCH] JVM in widgets under Windows + Geogebra widget --- .../interactive/Geogebra.wgt/config.xml | 12 +++ .../library/interactive/Geogebra.wgt/icon.png | Bin 0 -> 2569 bytes .../Geogebra.wgt/images/loading.gif | Bin 0 -> 2038 bytes .../interactive/Geogebra.wgt/index.html | 71 ++++++++++++++++++ src/domain/UBAbstractWidget.cpp | 43 ++++++++++- src/domain/UBAbstractWidget.h | 25 +++--- src/domain/UBGraphicsScene.cpp | 13 +--- src/domain/UBW3CWidget.cpp | 50 ++++++++++-- src/gui/UBToolWidget.cpp | 1 + 9 files changed, 186 insertions(+), 29 deletions(-) create mode 100644 resources/library/interactive/Geogebra.wgt/config.xml create mode 100644 resources/library/interactive/Geogebra.wgt/icon.png create mode 100644 resources/library/interactive/Geogebra.wgt/images/loading.gif create mode 100644 resources/library/interactive/Geogebra.wgt/index.html diff --git a/resources/library/interactive/Geogebra.wgt/config.xml b/resources/library/interactive/Geogebra.wgt/config.xml new file mode 100644 index 00000000..64bb595c --- /dev/null +++ b/resources/library/interactive/Geogebra.wgt/config.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<widget xmlns="http://www.w3.org/ns/widgets" + xmlns:ub="http://uniboard.mnemis.com/widgets" + id="http://uniboard.mnemis.com/widgets/geogebra" + version="1.0" + width="800" + height="500" + ub:resizable="true" + ub:roles="tool cMAC cUNIX"> + <name>Geogebra</name> + <content src="index.html"/> +</widget> diff --git a/resources/library/interactive/Geogebra.wgt/icon.png b/resources/library/interactive/Geogebra.wgt/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2b5397e47df90bbf133171f2967114176bfcde57 GIT binary patch literal 2569 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 literal 0 HcmV?d00001 diff --git a/resources/library/interactive/Geogebra.wgt/images/loading.gif b/resources/library/interactive/Geogebra.wgt/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ccc287b15248f417ceaa1eca872add966169c4e GIT binary patch literal 2038 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 TXQX)8Aw32%-FE8=2&4ZGPzGlo literal 0 HcmV?d00001 diff --git a/resources/library/interactive/Geogebra.wgt/index.html b/resources/library/interactive/Geogebra.wgt/index.html new file mode 100644 index 00000000..9fe49048 --- /dev/null +++ b/resources/library/interactive/Geogebra.wgt/index.html @@ -0,0 +1,71 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML><HEAD> +<META http-equiv=Content-Type content="text/html; charset=windows-1252"> +<BODY> +<DIV id=applet1></DIV> +<SCRIPT type=text/javascript> + +function ggbOnInit() +{ + alert("Geogebra applet is initialized"); +} + +var width=0; +var height=0; +setWidthHeight(); + +if (height < 500) height=500; +if (width < 800) width=800; + + +var applet1=document.getElementById('applet1'); + +applet1.innerHTML=geogebra_applet(0.95*width,height*0.95,"",true,true,true,false,true,true,true,true,true,true,true,true); + +function geogebra_applet(width,height,filename,framePossible,enableRightClick,enableShiftDragZoom,showResetIcon,showMenuBar,showToolBar,showToolBarHelp,showAlgebraInput,enableLabelDrags,showSpreadsheet,showAlgebraView) { + + + ret = '<applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="./bin/" archive="geogebra.jar" height="'+height+'" width="'+width+'">'; + ret +='<param name="image" value="./images/loading.gif"/><param name="boxborder" value="false"/><param name="centerimage" value="true">'; + ret +='<param name="java_arguments" value="-Xmx512m">'; + if (filename != "") ret+='<param name="filename" value="'+filename+'">'; + ret+='<param name="framePossible" value="'+framePossible+'">'; + ret+='<param name="enableRightClick" value="'+enableRightClick+'">'; + ret+='<param name="enableShiftDragZoom" value="'+enableShiftDragZoom+'">'; + ret+='<param name="enableLabelDrags" value="'+enableLabelDrags+'">'; + ret+='<param name="showSpreadsheet" value="'+showSpreadsheet+'">'; + ret+='<param name="showAlgebraView" value="'+showAlgebraView+'">'; + ret+='<param name="showResetIcon" value="'+showResetIcon+'">'; + ret+='<param name="showMenuBar" value="'+showMenuBar+'">'; + ret+='<param name="showToolBar" value="'+showToolBar+'">'; + ret+='<param name="showToolBarHelp" value="'+showToolBarHelp+'">'; + ret+='<param name="showAlgebraInput" value="'+showAlgebraInput+'">'; + ret+='Sorry, the GeoGebra Applet could not be started. Please make sure that Java 1.4.2 (or later) is installed and activated.'; + ret+='(<a href="http://java.sun.com/getjava">click here to install Java now</a>)'; + ret+='</applet>'; + return ret; +} + +function setWidthHeight() { + var myWidth = 0, myHeight = 0; + if( typeof( window.innerWidth ) == 'number' ) { + //Non-IE + myWidth = window.innerWidth; + myHeight = window.innerHeight; + } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { + //IE 6+ in 'standards compliant mode' + myWidth = document.documentElement.clientWidth; + myHeight = document.documentElement.clientHeight; + } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { + //IE 4 compatible + myWidth = document.body.clientWidth; + myHeight = document.body.clientHeight; + } + //window.alert( 'Width = ' + myWidth ); + //window.alert( 'Height = ' + myHeight ); + width=myWidth; + height=myHeight; +} +</SCRIPT> +</BODY></HTML> + diff --git a/src/domain/UBAbstractWidget.cpp b/src/domain/UBAbstractWidget.cpp index 6ff6116b..a5fafc18 100644 --- a/src/domain/UBAbstractWidget.cpp +++ b/src/domain/UBAbstractWidget.cpp @@ -44,8 +44,8 @@ UBAbstractWidget::UBAbstractWidget(const QUrl& pWidgetUrl, QWidget *parent) , mInitialLoadDone(false) , mLoadIsErronous(false) , mIsFreezable(true) - , mCanBeContent(true) - , mCanBeTool(true) + , mCanBeContent(0) + , mCanBeTool(0) , mIsFrozen(false) , mIsTakingSnapshot(false) { @@ -74,12 +74,51 @@ UBAbstractWidget::UBAbstractWidget(const QUrl& pWidgetUrl, QWidget *parent) setMouseTracking(true); } +bool UBAbstractWidget::canBeContent() +{ + // if we under MAC OS + #if defined(Q_OS_MAC) + return mCanBeContent & OSType::type_MAC; + #endif + + // if we under UNIX OS + #if defined(Q_OS_UNIX) + return mCanBeContent & OSType::type_UNIX; + #endif + + // if we under WINDOWS OS + #if defined(Q_OS_WIN) + return mCanBeContent & OSType::type_WIN; + #endif +} + +bool UBAbstractWidget::canBeTool() +{ + // if we under MAC OS + #if defined(Q_OS_MAC) + return mCanBeTool & OSType::type_MAC; + #endif + + // if we under UNIX OS + #if defined(Q_OS_UNIX) + return mCanBeTool & OSType::type_UNIX; + #endif + + // if we under WINDOWS OS + #if defined(Q_OS_WIN) + return mCanBeTool & OSType::type_WIN; + #endif +} UBAbstractWidget::~UBAbstractWidget() { // NOOP } +void UBAbstractWidget::loadMainHtml() +{ + QWebView::load(mMainHtmlUrl); +} bool UBAbstractWidget::event(QEvent *event) { diff --git a/src/domain/UBAbstractWidget.h b/src/domain/UBAbstractWidget.h index e96706e9..5c077d04 100644 --- a/src/domain/UBAbstractWidget.h +++ b/src/domain/UBAbstractWidget.h @@ -39,6 +39,8 @@ class UBAbstractWidget : public UBRoutedMouseEventWebView UBAbstractWidget(const QUrl& pWidgetUrl, QWidget *parent = 0); virtual ~UBAbstractWidget(); + void loadMainHtml(); + QUrl mainHtml() { return mMainHtmlUrl; @@ -64,15 +66,8 @@ class UBAbstractWidget : public UBRoutedMouseEventWebView return mNominalSize; } - bool canBeContent() const - { - return mCanBeContent; - } - - bool canBeTool() const - { - return mCanBeTool; - } + bool canBeContent(); + bool canBeTool(); bool hasLoadedSuccessfully() const { @@ -123,8 +118,16 @@ class UBAbstractWidget : public UBRoutedMouseEventWebView bool mLoadIsErronous; bool mIsFreezable; - bool mCanBeContent; - bool mCanBeTool; + int mCanBeContent; + int mCanBeTool; + enum OSType + { + type_NONE = 0, // 0000 + type_WIN = 1, // 0001 + type_MAC = 2, // 0010 + type_UNIX = 4, // 0100 + type_ALL = 7, // 0111 + }; virtual void injectInlineJavaScript(); virtual void paintEvent(QPaintEvent * event); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 0c36530b..0974105f 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1091,7 +1091,6 @@ void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, co graphicsWidget->setFlag(QGraphicsItem::ItemIsSelectable, true); graphicsWidget->setZValue(getNextObjectZIndex()); -// QGraphicsScene::addWidget(graphicsWidget->widgetWebView()); addItem(graphicsWidget); qreal ssf = 1 / UBApplication::boardController->systemScaleFactor(); @@ -1103,21 +1102,13 @@ void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, co if (graphicsWidget->widgetWebView()->canBeContent()) { + graphicsWidget->widgetWebView()->loadMainHtml(); + graphicsWidget->setSelected(true); UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, graphicsWidget); UBApplication::undoStack->push(uc); setDocumentUpdated(); - -// graphicsWidget->widgetWebView()->setParent(graphicsWidget->v)); -// QObject *zz1= graphicsWidget->widgetWebView()->parent(); -// QWidget *zz2= graphicsWidget->widgetWebView()->parentWidget(); -// -// QObject *zz3= graphicsWidget->parent(); -// QGraphicsWidget *zz4= graphicsWidget->parentWidget(); - -// graphicsWidget->widgetWebView()->loadUrl(); - } else { diff --git a/src/domain/UBW3CWidget.cpp b/src/domain/UBW3CWidget.cpp index b3fbf575..7a1af1e2 100644 --- a/src/domain/UBW3CWidget.cpp +++ b/src/domain/UBW3CWidget.cpp @@ -86,8 +86,51 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent) QString roles = widgetElement.attribute("ub:roles", "content tool").trimmed().toLower(); - mCanBeTool = roles == "" || roles.contains("tool"); - mCanBeContent = roles == "" || roles.contains("content"); + //------------------------------// + + if( roles == "" || roles.contains("tool") ) + { + mCanBeTool = UBAbstractWidget::OSType::type_ALL; + } + + if( roles.contains("twin") ) + { + mCanBeTool |= UBAbstractWidget::OSType::type_WIN; + } + + if( roles.contains("tmac") ) + { + mCanBeTool |= UBAbstractWidget::OSType::type_MAC; + } + + if( roles.contains("tunix") ) + { + mCanBeTool |= UBAbstractWidget::OSType::type_UNIX; + } + + //---------// + + if( roles == "" || roles.contains("content") ) + { + mCanBeContent = UBAbstractWidget::OSType::type_ALL; + } + + if( roles.contains("cwin") ) + { + mCanBeContent |= UBAbstractWidget::OSType::type_WIN; + } + + if( roles.contains("cmac") ) + { + mCanBeContent |= UBAbstractWidget::OSType::type_MAC; + } + + if( roles.contains("cunix") ) + { + mCanBeContent |= UBAbstractWidget::OSType::type_UNIX; + } + + //------------------------------// QDomNodeList contentDomList = widgetElement.elementsByTagName("content"); @@ -159,8 +202,6 @@ UBW3CWidget::UBW3CWidget(const QUrl& pWidgetUrl, QWidget *parent) connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared())); connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(javaScriptWindowObjectCleared())); - QWebView::load(mMainHtmlUrl); - setFixedSize(QSize(width, height)); mNominalSize = QSize(width, height); @@ -171,7 +212,6 @@ UBW3CWidget::~UBW3CWidget() // NOOP } - void UBW3CWidget::javaScriptWindowObjectCleared() { UBWidgetUniboardAPI *uniboardAPI = new UBWidgetUniboardAPI(UBApplication::boardController->activeScene(), 0); diff --git a/src/gui/UBToolWidget.cpp b/src/gui/UBToolWidget.cpp index 59ff2af4..ea1bdee1 100644 --- a/src/gui/UBToolWidget.cpp +++ b/src/gui/UBToolWidget.cpp @@ -72,6 +72,7 @@ UBToolWidget::UBToolWidget(UBAbstractWidget* pWidget, QWidget* pParent) , mShouldMoveWidget(false) { mToolWidget->setParent(this); + mToolWidget->loadMainHtml(); initialize();