From a164e409af8e2c2c12db9b23daa2be95397ad89d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 3 Aug 2020 12:21:28 +0900
Subject: popupmenu update

---
 .../doc/latex/popupmenu/examples/pu-exmpls.tex     | 167 +++++++++++++++++++++
 1 file changed, 167 insertions(+)
 create mode 100644 texmf-dist/doc/latex/popupmenu/examples/pu-exmpls.tex

(limited to 'texmf-dist/doc/latex/popupmenu/examples/pu-exmpls.tex')

diff --git a/texmf-dist/doc/latex/popupmenu/examples/pu-exmpls.tex b/texmf-dist/doc/latex/popupmenu/examples/pu-exmpls.tex
new file mode 100644
index 00000000..ba41a4b9
--- /dev/null
+++ b/texmf-dist/doc/latex/popupmenu/examples/pu-exmpls.tex
@@ -0,0 +1,167 @@
+\documentclass{article}
+%\usepackage{xkeyval}
+\usepackage[designv]{web}
+\usepackage[tracking]{popupmenu}
+
+\title{The \texorpdfstring{\textsf}{}{popupmenu} Package Test File}
+\author{D. P. Story}
+\subject{Test file for the popupmenu Package}
+\keywords{LaTeX, popupmenu, Acrobat JavaScript, AcroTeX}
+
+\university{NORTHWEST FLORIDA STATE COLLEGE\\
+   Department of Mathematics}
+\email{dpstory@acrotex.net}
+\version{1.0}
+
+\norevisionLabel
+
+\begin{popupmenu}{Intro}
+  \item{title=title,return=Title: The manual for the popupmenu package}
+  \item{title=author,return=Author: D. P. Story}
+  \item{title=package name,return=Package: popupmenu}
+\end{popupmenu}
+
+\urlPath{\homeAtUA}{http://www.math.uakron.edu/~dpstory}
+\urlPath{\homeAeB}{http://www.acrotex.net}
+\urlPath{\blogAeB}{http://blog.acrotex.net}
+\urlPath{\urlCTAN}{https://www.ctan.org}
+\urlPath{\embedYT}{http://www.youtube.com/embed}
+\urlPath{\watchYT}{http://www.youtube.com/watch?v}
+\begin{popupmenu}{Various}
+    \item{title=Various AcroTeX Links,return=none}
+    \item{title=-}
+    \begin{submenu}{title=AeB at U of Akron}
+        \item{title=Home page,return=\homeAtUA/acrotex.html}
+        \item{title=Tutorials,return=\homeAtUA/acrotex.html\#educational}
+    \end{submenu}
+    \begin{submenu}{title=Commercial AcroTeX}
+        \item{title=AcroTeX main page,return=\homeAeB}
+        \item{title=AcroTeX blog,return=\blogAeB}
+    \end{submenu}
+    \begin{submenu}{title=AcroTeX on CTAN}
+        \item{title=Contributions: AcroTeX ,return=\urlCTAN/author/story}
+        \item{title=The popupmenu Package,return=\urlCTAN/pkg/popupmenu}
+    \end{submenu}
+    \begin{submenu}{title=YouTube Videos}
+        \begin{submenu}{title=Action Videos}
+            \item{title=Kung-Fu fighting (Bruce Lee version),return=\embedYT/GZ9e3Dy7obA}
+            \item{title=Rocket Jump,return=\embedYT/7XzdZ4KcI8Y}
+        \end{submenu}
+        \begin{submenu}{title=Miscellaneous}
+            \item{title=J\"{u}rgen's favorite song,return={\watchYT=mLDF5MBMWHE}}
+            \item{title=\Esc"Sea Hunt\Esc" US TV series (1958-61) lead-in,return=\embedYT/Lz0aMoWh8Q4}
+            \item{title=Learn \cs{LaTeX} in one video,return=\embedYT/VhmkLrOjLsw}
+        \end{submenu}
+    \end{submenu}
+\end{popupmenu}
+
+\puUseMenus{Intro,Various} % Can track these menus
+
+%\previewOn
+
+\def\cs#1{\texttt{\eqbs#1}}
+\def\pkg#1{\textsf{#1}}
+
+\parindent0pt\parskip6pt
+
+\begin{document}
+
+\maketitle
+
+\section{Examples of the documentation}
+
+Here is a simple example, pass your mouse pointer over the button:
+\pushButton[\CA{Info}\BC{}\S{S}\H{N}\AAmouseenter{%
+  var cChoice = \popUpMenu(Intro);\r
+  if ( cChoice != null ) app.alert(cChoice); }]{intro}{}{11bp}, uses \cs{popUpMenu}, no tracking.
+
+Here is the same button \pushButton[\CA{Info}\BC{}\S{S}\H{N}\AAmouseenter{%
+  var cChoice = \puProcessMenu(Intro);\r
+  if ( cChoice != null ) app.alert(cChoice); }]{intro}{}{11bp}, but uses \cs{puProcessMenu}, will have tracking.
+
+For example, make a selection: \pushButton[\CA{My Menu}\AAmouseenter{%
+%var cChoice = \popUpMenu(myMenu);\r
+var cChoice = \puProcessMenu(Various);\r
+if ( cChoice != null ) {\r\t
+  if (PUdebug)\r\t\t
+    app.alert("You chose the \\""+cChoice+"\\" menu item");\r\t
+  else app.launchURL(cChoice);\r
+}}]{mymenu}{}{11bp}\olBdry
+\pushButton[\TU{Toggle Debug}\CA{Action}\AAmouseup{if(PUdebug){\r\t
+  PUdebug=false;event.target.buttonSetCaption("Action");}
+  else {PUdebug=true;event.target.buttonSetCaption("Debug");}
+}]{DebugBtn}{.5in}{11bp} (tracking)
+
+% Declare in the body of the text, can use anywhere after this declaration
+\begin{popupmenu}{LocalMenu}
+  \item {title=First Item}
+  \item {title=Second Item}
+\end{popupmenu}
+
+Here, in the body, we declare a (simple) menu: \pushButton[\CA{My Menu}\AAmouseenter{%
+\LocalMenu\r
+var cChoice = \popUpMenu(LocalMenu);\r
+if ( cChoice != null ) app.alert("You chose the \\""+cChoice+"\\" menu item");
+}]{LocalMenuBtn}{}{11bp}. This is a locally defined menu, \texttt{popumenu}
+declared in the body of the document. (Uses \cs{popUpMenu}, no tracking)
+
+Pick your choice:
+\begin{popupmenu}{puMulti}
+  \item {title=Item 1,return=0}
+  \item {title=Item 2,return=1}
+  \begin{submenu}{title=Other items}
+    \item{title=Item 3,return=2}
+  \end{submenu}
+\end{popupmenu}
+\begin{defineJS}[\makeesc|]{\puMultiActn}
+|puMulti
+var cChoice = |popUpMenu(puMulti);
+if ( cChoice != null ) {
+  switch (cChoice) {
+    case "0":
+      app.alert("You chose Item 1 from the menu");
+      break;
+    case "1":
+      app.launchURL("|homeAeB");
+      break;
+    default: console.show();
+      console.println("Menu returned a value of \\""+cChoice+"\\"");
+      break;
+  }
+}
+\end{defineJS}
+\pushButton[\CA{Multi}\AAmouseenter{\puMultiActn}]{MultiBtn}{}{11bp}\olBdry. Locally defined \texttt{popupmenu},
+no tracking.
+
+\section{Examples using push buttons of \texorpdfstring{\protect\textsf}{}{hyperref}}
+
+You can use the \cs{PushButton} command of \pkg{hyperref} to accomplish the same thing, but with less flair.
+\begin{itemize}
+  \item Mouse over event: \PushButton[name=hyperbutton1,onenter={%
+    var cChoice = \puProcessMenu(Various);
+    if ( cChoice != null )app.launchURL(cChoice);}]{Various URLs} (tracking)
+  \item Mouse up event: \PushButton[name=hyperbutton2,onclick={%
+    var cChoice = \puProcessMenu(Various);
+    if ( cChoice != null )app.launchURL(cChoice);}]{Various URLs} (tracking)
+\end{itemize}
+
+\section{Handling the `none' return value}
+
+The handling of a return value of `none' is automatic when \cs{puProcessMenu} is used. When
+\cs{popUpMenu} is employed, some special attention is needed. The topmost item of the
+menu \texttt{Various} has a return value of `none'.
+\begin{itemize}
+   \item With tracking: \pushButton[\CA{My Menu}\AAmouseenter{%
+      var cChoice = \puProcessMenu(Various);\r
+      if ( cChoice != null ) app.launchURL(cChoice);
+    }]{mymenu}{}{11bp}
+   \item Without tracking: \pushButton[\CA{My Menu}\AAmouseenter{%
+    % \popUpMenu returns the string "null", so we must test if "null" is the return value,
+    % if so, we make cChoice=null
+    var cChoice = \popUpMenu(Various);\r
+      if (cChoice=="null") cChoice=null;\r
+      if ( cChoice != null ) app.launchURL(cChoice);
+  }]{mymenu}{}{11bp}
+\end{itemize}
+
+\end{document}
\ No newline at end of file
-- 
cgit v1.2.3

