diff --git a/includes/GlModelTransformOutput.php b/includes/GlModelTransformOutput.php
index 0867085..437591a 100644
--- a/includes/GlModelTransformOutput.php
+++ b/includes/GlModelTransformOutput.php
@@ -194,11 +194,22 @@ class GlModelTransformOutput extends MediaTransformOutput {
'onmousedown' => 'event.stopPropagation()',
'ontouchstart' => 'event.stopPropagation()'
);
- $buttonPrev = Html::rawElement('div', $attrMenuButtonPrev, '
');
- $buttonNext = Html::rawElement('div', $attrMenuButtonNext, '
');
- $buttonSlides = Html::rawElement('div', $attrMenuButtonSlides, '
');
- return Html::rawElement('div', $attrMenu, $menuImg . $buttonPrev . $buttonSlides . $buttonNext);
+ $hideUrl = $mainConfig->get( 'ExtensionAssetsPath' ) . '/GlModelViewer/resources/hs_hide.svg';
+ $attrMenuButtonHide = array (
+ 'class' => 'glmv-menu-button',
+ 'onclick' => 'event.target.toggleAttribute("toggled"); toggleAnnotations(event.target.closest(".glmv-container").querySelector("model-viewer"))',
+ 'onmousedown' => 'event.stopPropagation()',
+ 'ontouchstart' => 'event.stopPropagation()'
+ );
+ $menuButtons = array(
+ Html::rawElement('div', $attrMenuButtonPrev, '
'),
+ Html::rawElement('div', $attrMenuButtonSlides, '
'),
+ Html::rawElement('div', $attrMenuButtonNext, '
'),
+ Html::rawElement('div', $attrMenuButtonHide, '
')
+ );
+
+ return Html::rawElement('div', $attrMenu, $menuImg . implode($menuButtons));
}
/**
diff --git a/modules/glmv.css b/modules/glmv.css
index ebb1953..f02343d 100644
--- a/modules/glmv.css
+++ b/modules/glmv.css
@@ -10,11 +10,18 @@
box-sizing: border-box;
color: #FFFFFF;
cursor: pointer;
+ font-weight: bold;
+ font-size: 16px;
+ padding-top: 2px;
height: 24px;
position: relative;
text-align: center;
transition: opacity 0.3s;
width: 24px;
+
+ & [hidden] {
+ display: none;
+ }
}
.HotspotAnnotation{
@@ -86,7 +93,7 @@
justify-content: flex-start;
&:hover {
- width: 128px;
+ width: 160px;
& .glmv-menu-image {
transform: rotate(180deg);
diff --git a/modules/glmv.js b/modules/glmv.js
index 66bf1c3..a697e1e 100644
--- a/modules/glmv.js
+++ b/modules/glmv.js
@@ -160,6 +160,17 @@ slideshowAnnotations = function(mView, slideDuration = 5000) {
}
}
+/**
+ * Toggle visibility of all annotations
+ *
+ * @param {ModelViewer} mView
+ */
+toggleAnnotations = function(mView) {
+ [...mView.querySelectorAll('button')].forEach( hs => {
+ hs.toggleAttribute('hidden')
+ })
+}
+
/**
* Prepare to drag a hotspot
*
diff --git a/resources/hs_hide.svg b/resources/hs_hide.svg
new file mode 100644
index 0000000..3a7e41d
--- /dev/null
+++ b/resources/hs_hide.svg
@@ -0,0 +1 @@
+
\ No newline at end of file