1% generated by GAPDoc2LaTeX from XML source (Frank Luebeck) 2\documentclass[a4paper,11pt]{report} 3 4\usepackage[top=37mm,bottom=37mm,left=27mm,right=27mm]{geometry} 5\sloppy 6\pagestyle{myheadings} 7\usepackage{amssymb} 8\usepackage[utf8]{inputenc} 9\usepackage{makeidx} 10\makeindex 11\usepackage{color} 12\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083} 13\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179} 14\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894} 15\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894} 16\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000} 17\definecolor{Black}{rgb}{0.0,0.0,0.0} 18 19\definecolor{linkColor}{rgb}{0.0,0.0,0.554} 20\definecolor{citeColor}{rgb}{0.0,0.0,0.554} 21\definecolor{fileColor}{rgb}{0.0,0.0,0.554} 22\definecolor{urlColor}{rgb}{0.0,0.0,0.554} 23\definecolor{promptColor}{rgb}{0.0,0.0,0.589} 24\definecolor{brkpromptColor}{rgb}{0.589,0.0,0.0} 25\definecolor{gapinputColor}{rgb}{0.589,0.0,0.0} 26\definecolor{gapoutputColor}{rgb}{0.0,0.0,0.0} 27 28%% for a long time these were red and blue by default, 29%% now black, but keep variables to overwrite 30\definecolor{FuncColor}{rgb}{0.0,0.0,0.0} 31%% strange name because of pdflatex bug: 32\definecolor{Chapter }{rgb}{0.0,0.0,0.0} 33\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064} 34 35 36\usepackage{fancyvrb} 37 38\usepackage{mathptmx,helvet} 39\usepackage[T1]{fontenc} 40\usepackage{textcomp} 41 42 43\usepackage[ 44 pdftex=true, 45 bookmarks=true, 46 a4paper=true, 47 pdftitle={Written with GAPDoc}, 48 pdfcreator={LaTeX with hyperref package / GAPDoc}, 49 colorlinks=true, 50 backref=page, 51 breaklinks=true, 52 linkcolor=linkColor, 53 citecolor=citeColor, 54 filecolor=fileColor, 55 urlcolor=urlColor, 56 pdfpagemode={UseNone}, 57 ]{hyperref} 58 59\newcommand{\maintitlesize}{\fontsize{50}{55}\selectfont} 60 61% write page numbers to a .pnr log file for online help 62\newwrite\pagenrlog 63\immediate\openout\pagenrlog =\jobname.pnr 64\immediate\write\pagenrlog{PAGENRS := [} 65\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}} 66%% were never documented, give conflicts with some additional packages 67 68\newcommand{\GAP}{\textsf{GAP}} 69 70%% nicer description environments, allows long labels 71\usepackage{enumitem} 72\setdescription{style=nextline} 73 74%% depth of toc 75\setcounter{tocdepth}{1} 76 77 78 79 80 81%% command for ColorPrompt style examples 82\newcommand{\gapprompt}[1]{\color{promptColor}{\bfseries #1}} 83\newcommand{\gapbrkprompt}[1]{\color{brkpromptColor}{\bfseries #1}} 84\newcommand{\gapinput}[1]{\color{gapinputColor}{#1}} 85 86 87\begin{document} 88 89\logpage{[ 0, 0, 0 ]} 90\begin{titlepage} 91\mbox{}\vfill 92 93\begin{center}{\maintitlesize \textbf{ Francy \mbox{}}}\\ 94\vfill 95 96\hypersetup{pdftitle= Francy } 97\markright{\scriptsize \mbox{}\hfill Francy \hfill\mbox{}} 98{\Huge \textbf{ Framework for Interactive Discrete Mathematics \mbox{}}}\\ 99\vfill 100 101{\Huge 1.2.4 \mbox{}}\\[1cm] 102{ 17 May 2019 \mbox{}}\\[1cm] 103\mbox{}\\[2cm] 104{\Large \textbf{ Manuel Martins\\ 105 \mbox{}}}\\ 106\hypersetup{pdfauthor= Manuel Martins\\ 107 } 108\end{center}\vfill 109 110\mbox{}\\ 111{\mbox{}\\ 112\small \noindent \textbf{ Manuel Martins\\ 113 } Email: \href{mailto://manuelmachadomartins@gmail.com} {\texttt{manuelmachadomartins@gmail.com}}\\ 114 Homepage: \href{http://github.com/mcmartins} {\texttt{http://github.com/mcmartins}}\\ 115 Address: \begin{minipage}[t]{8cm}\noindent 116 Departamento de Ci{\^e}ncias e Tecnologia da Universidade Aberta\\ 117 Lisboa, Portugal\\ 118 Faculdade de Ci{\^e}ncias e Tecnologia da Universidade de Coimbra\\ 119 Coimbra, Portugal\\ 120 \end{minipage} 121}\\ 122\end{titlepage} 123 124\newpage\setcounter{page}{2} 125\newpage 126 127\def\contentsname{Contents\logpage{[ 0, 0, 1 ]}} 128 129\tableofcontents 130\newpage 131 132 133\chapter{\textcolor{Chapter }{Introduction}}\logpage{[ 1, 0, 0 ]} 134\hyperdef{L}{X7DFB63A97E67C0A1}{} 135{ 136 137\section{\textcolor{Chapter }{Francy}}\logpage{[ 1, 1, 0 ]} 138\hyperdef{L}{X7CBAC7577E942028}{} 139{ 140 \textsf{Francy} arose from the necessity of having a lightweight framework for building 141interactive graphics, generated from GAP, running primarily on the web, 142primarily in a \href{https://jupyter.org} {Jupyter} Notebook. An initial attempt to re-use XGAP and port it was made, but the lack 143of a standardized data exchange format between GAP and the graphics renderer, 144and the simplistic initial requirements of the project were the basis for the 145creation of a new GAP package. Take a look at \textsf{Francy} functionality on these \href{https://mybinder.org/v2/gh/gap-packages/francy/master} {Jupyter Notebooks}. } 146 147 148\section{\textcolor{Chapter }{Applications}}\logpage{[ 1, 2, 0 ]} 149\hyperdef{L}{X7DD7F0847FF2B96C}{} 150{ 151 \textsf{Francy} has potentially many applications and can be used to provide a graphical 152representation of data structures, allowing one to navigate through and 153explore properties or relations of these structures. In this way, \textsf{Francy} can be used to enrich a learning environment where GAP provides a library of 154thousands of functions implementing algebraic algorithms as well as large data 155libraries of algebraic objects. \href{https://github.com/gap-packages/FrancyMonoids} {FrancyMonoids} and \href{https://github.com/mcmartins/subgroup-lattice} {SubgroupLattice} are some example packages using \textsf{Francy}. } 156 157 158\section{\textcolor{Chapter }{Functionality}}\logpage{[ 1, 3, 0 ]} 159\hyperdef{L}{X87F1120883F5B4D0}{} 160{ 161 \textsf{Francy} provides an interface to draw graphics using objects. This interface is based 162on simple concepts of drawing and graph theory, allowing the creation of 163directed and undirected graphs, trees, line charts, bar charts and scatter 164charts. These graphical objects are drawn inside a canvas that includes a 165space for menus and to display informative messages. Within the canvas it is 166possible to interact with the graphical objects by clicking, selecting, 167dragging and zooming. } 168 169 170\section{\textcolor{Chapter }{Installation}}\logpage{[ 1, 4, 0 ]} 171\hyperdef{L}{X8360C04082558A12}{} 172{ 173 This package requires the \textsf{GAP} packages \textsf{JupyterKernel} and \textsf{json}, all of which are distributed with \textsf{GAP}. \textsf{Francy} follows a similar installation procedure to \textsf{JupyterKernel}, so it requires \href{https://jupyter.org} {Jupyter} to be installed on your system. Please note, you need to run the installation 174commands from the same python version \href{https://jupyter.org} {Jupyter} is installed on. In order to install/update \textsf{Francy}, please run the following command to download the latest version available 175from \href{https://pypi.org/} {\texttt{https://pypi.org/}}: 176\begin{Verbatim}[commandchars=!|A,fontsize=\small,frame=single,label=Example] 177 mcmartins@local:~$ pip install jupyter_francy -U 178 179\end{Verbatim} 180 It is necessary to enable \textsf{Francy} on your \href{https://jupyter.org} {Jupyter} Notebook installation: 181\begin{Verbatim}[commandchars=!|A,fontsize=\small,frame=single,label=Example] 182 mcmartins@local:~$ jupyter nbextension enable --py --sys-prefix jupyter_francy 183 184\end{Verbatim} 185 For \href{https://jupyter.org} {Jupyter} Lab, please run: 186\begin{Verbatim}[commandchars=!|A,fontsize=\small,frame=single,label=Example] 187 mcmartins@local:~$ jupyter labextension build 188 189\end{Verbatim} 190 Alternatively, if you want to run \textsf{Francy} only on \href{https://jupyter.org} {Jupyter} Lab, simply execute: 191\begin{Verbatim}[commandchars=!|A,fontsize=\small,frame=single,label=Example] 192 mcmartins@local:~$ jupyter labextension install jupyter-francy 193 194\end{Verbatim} 195 This will load the module from \href{https://npmjs.org} {\texttt{https://npmjs.org}}. This approach should be used if you want to run \textsf{Francy} only on \href{https://jupyter.org} {Jupyter} Lab. } 196 197 198\section{\textcolor{Chapter }{How it works}}\logpage{[ 1, 5, 0 ]} 199\hyperdef{L}{X7CA9D73583D1D456}{} 200{ 201 \textsf{Francy} requires a rendering package to display graphics. \textsf{Francy} uses Renderers based on D3.js and Graphviz, for rendering the semantic 202representation produced by the GAP package. The renderers can be swithed at 203any time using the user interface, by selecting 'Settings {\textgreater} 204Renderers' in the main menu. This library is distributed both as a browser 205module and as a \href{https://jupyter.org} {Jupyter} extension. The Jupyter extension can be used in \href{https://jupyter.org} {Jupyter} Notebook or \href{https://jupyter.org} {Jupyter} Lab, using the \textsf{JupyterKernel} and the MIME type 'application/vnd.francy+json' to render the document. Please 206check the \href{https://gap-packages.github.io/francy/doc/js/doc/index.html} {JavaScript Documentation} for more information. } 207 208 209\section{\textcolor{Chapter }{Publications}}\logpage{[ 1, 6, 0 ]} 210\hyperdef{L}{X818CE5447F74E356}{} 211{ 212 \href{https://doi.org/10.1007/978-3-319-96418-8_42} {ICMS 2018} } 213 214 } 215 216 217\chapter{\textcolor{Chapter }{Francy Callbacks}}\label{Chapter_Francy_Callbacks} 218\logpage{[ 2, 0, 0 ]} 219\hyperdef{L}{X7FD77853879BC3F6}{} 220{ 221 222 223 \texttt{Callbacks} are objects that hold a function, a list of arguments and a trigger event. \texttt{Callbacks} are used to execute GAP code from a remote client using the \texttt{Trigger} Operation. 224 225 \texttt{Callbacks} can be added directly to \texttt{Menus} and/or \texttt{Shapes}. 226 227 Please see Francy-JS for client implementation. 228\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Callbacks_Section_Categories} 229\logpage{[ 2, 1, 0 ]} 230\hyperdef{L}{X7CC6903E78F24167}{} 231{ 232 In this section we show all Francy Callback Categories. 233 234\subsection{\textcolor{Chapter }{IsCallback (for IsFrancyObject)}} 235\logpage{[ 2, 1, 1 ]}\nobreak 236\hyperdef{L}{X7961360C802B12AF}{} 237{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsCallback({\mdseries\slshape arg})\index{IsCallback@\texttt{IsCallback}!for IsFrancyObject} 238\label{IsCallback:for IsFrancyObject} 239}\hfill{\scriptsize (filter)}}\\ 240\textbf{\indent Returns:\ } 241\texttt{true} or \texttt{false} 242 243 244 245 Identifies \texttt{Callback} objects. } 246 247 248 249\subsection{\textcolor{Chapter }{IsRequiredArg (for IsFrancyObject)}} 250\logpage{[ 2, 1, 2 ]}\nobreak 251\hyperdef{L}{X7B5CD72681DECF6C}{} 252{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsRequiredArg({\mdseries\slshape arg})\index{IsRequiredArg@\texttt{IsRequiredArg}!for IsFrancyObject} 253\label{IsRequiredArg:for IsFrancyObject} 254}\hfill{\scriptsize (filter)}}\\ 255\textbf{\indent Returns:\ } 256\texttt{true} or \texttt{false} 257 258 259 260 Identifies \texttt{RequiredArg} objects. } 261 262 263 264\subsection{\textcolor{Chapter }{IsArgType (for IsFrancyTypeObject)}} 265\logpage{[ 2, 1, 3 ]}\nobreak 266\hyperdef{L}{X7B7E0C807948B7AF}{} 267{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsArgType({\mdseries\slshape arg})\index{IsArgType@\texttt{IsArgType}!for IsFrancyTypeObject} 268\label{IsArgType:for IsFrancyTypeObject} 269}\hfill{\scriptsize (filter)}}\\ 270\textbf{\indent Returns:\ } 271\texttt{true} or \texttt{false} 272 273 274 275 Identifies \texttt{ArgType} objects. } 276 277 278 279\subsection{\textcolor{Chapter }{IsTriggerType (for IsFrancyTypeObject)}} 280\logpage{[ 2, 1, 4 ]}\nobreak 281\hyperdef{L}{X8563CE3284411B39}{} 282{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsTriggerType({\mdseries\slshape arg})\index{IsTriggerType@\texttt{IsTriggerType}!for IsFrancyTypeObject} 283\label{IsTriggerType:for IsFrancyTypeObject} 284}\hfill{\scriptsize (filter)}}\\ 285\textbf{\indent Returns:\ } 286\texttt{true} or \texttt{false} 287 288 289 290 Identifies \texttt{TriggerType} objects. } 291 292 } 293 294 295\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Callbacks_Section_Families} 296\logpage{[ 2, 2, 0 ]} 297\hyperdef{L}{X846063757EC05986}{} 298{ 299 In this section we show all Francy Callback Families. } 300 301 302\section{\textcolor{Chapter }{Representations}}\label{Chapter_Francy_Callbacks_Section_Representations} 303\logpage{[ 2, 3, 0 ]} 304\hyperdef{L}{X7EABCC537D3BC549}{} 305{ 306 In this section we show all Francy Callback Representations. 307 308\subsection{\textcolor{Chapter }{IsCallbackRep (for IsComponentObjectRep)}} 309\logpage{[ 2, 3, 1 ]}\nobreak 310\hyperdef{L}{X810BE3BC849642C6}{} 311{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsCallbackRep({\mdseries\slshape arg})\index{IsCallbackRep@\texttt{IsCallbackRep}!for IsComponentObjectRep} 312\label{IsCallbackRep:for IsComponentObjectRep} 313}\hfill{\scriptsize (filter)}}\\ 314\textbf{\indent Returns:\ } 315\texttt{true} or \texttt{false} 316 317 318 319 Checks whether an \texttt{Object} has a \texttt{Callback} internal representation. } 320 321 322 323\subsection{\textcolor{Chapter }{IsRequiredArgRep (for IsComponentObjectRep)}} 324\logpage{[ 2, 3, 2 ]}\nobreak 325\hyperdef{L}{X81CE336A8401CCFA}{} 326{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsRequiredArgRep({\mdseries\slshape arg})\index{IsRequiredArgRep@\texttt{IsRequiredArgRep}!for IsComponentObjectRep} 327\label{IsRequiredArgRep:for IsComponentObjectRep} 328}\hfill{\scriptsize (filter)}}\\ 329\textbf{\indent Returns:\ } 330\texttt{true} or \texttt{false} 331 332 333 334 Checks whether an \texttt{Object} has a \texttt{RequiredArg} internal representation. } 335 336 337 338\subsection{\textcolor{Chapter }{IsArgTypeRep (for IsComponentObjectRep)}} 339\logpage{[ 2, 3, 3 ]}\nobreak 340\hyperdef{L}{X8154ABB67C695006}{} 341{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsArgTypeRep({\mdseries\slshape arg})\index{IsArgTypeRep@\texttt{IsArgTypeRep}!for IsComponentObjectRep} 342\label{IsArgTypeRep:for IsComponentObjectRep} 343}\hfill{\scriptsize (filter)}}\\ 344\textbf{\indent Returns:\ } 345\texttt{true} or \texttt{false} 346 347 348 349 Checks whether an \texttt{Object} has a \texttt{ArgType} internal representation. } 350 351 352 353\subsection{\textcolor{Chapter }{IsTriggerTypeRep (for IsComponentObjectRep)}} 354\logpage{[ 2, 3, 4 ]}\nobreak 355\hyperdef{L}{X7D26E6EB7C6CD408}{} 356{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsTriggerTypeRep({\mdseries\slshape arg})\index{IsTriggerTypeRep@\texttt{IsTriggerTypeRep}!for IsComponentObjectRep} 357\label{IsTriggerTypeRep:for IsComponentObjectRep} 358}\hfill{\scriptsize (filter)}}\\ 359\textbf{\indent Returns:\ } 360\texttt{true} or \texttt{false} 361 362 363 364 Checks whether an \texttt{Object} has a \texttt{TriggerType} internal representation. } 365 366 } 367 368 369\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Callbacks_Section_Operations} 370\logpage{[ 2, 4, 0 ]} 371\hyperdef{L}{X7DE8E16C7C2D387B}{} 372{ 373 In this section we show all Francy Callback Operations. 374 375\subsection{\textcolor{Chapter }{Callback (for IsTriggerType, IsFunction, IsList)}} 376\logpage{[ 2, 4, 1 ]}\nobreak 377\hyperdef{L}{X8039D4AA7A14B983}{} 378{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Callback({\mdseries\slshape IsTriggerType, IsFunction, IsList(object)})\index{Callback@\texttt{Callback}!for IsTriggerType, IsFunction, IsList} 379\label{Callback:for IsTriggerType, IsFunction, IsList} 380}\hfill{\scriptsize (operation)}}\\ 381\textbf{\indent Returns:\ } 382\texttt{Callback} 383 384 385 386 Creates a Callback object that holds a function and args to be executed by a 387trigger based on a trigger type. 388 389 \emph{Please note, the Function must Return!} 390 391 Examples: 392 393 Create a simple \texttt{Callback} with no arguments: 394\begin{Verbatim}[commandchars=@|A,fontsize=\small,frame=single,label=Example] 395 @gapprompt|gap>A @gapinput|MyFunction := function() return "Hello World!"; end;A 396 @gapprompt|gap>A @gapinput|callback := Callback(MyFunction);A 397 @gapprompt|gap>A @gapinput|Id(callback);A 398\end{Verbatim} 399 400 401 Create a \texttt{Callback} with one required argument of type string: 402\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 403 !gapprompt@gap>| !gapinput@MyFunction := function(str) return Concatenation("Hello", " ", str); end;| 404 !gapprompt@gap>| !gapinput@callback := Callback(MyFunction);| 405 !gapprompt@gap>| !gapinput@arg := RequiredArg(ArgType.STRING, "Your Name");| 406 !gapprompt@gap>| !gapinput@Add(callback, arg);| 407\end{Verbatim} 408 409 410 Create a \texttt{Callback} with one known argument of type string: 411\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 412 !gapprompt@gap>| !gapinput@MyFunction := function(args) return args; end;| 413 !gapprompt@gap>| !gapinput@callback := Callback(MyFunction, ["Hello World"]);| 414\end{Verbatim} 415 416 417 Create a \texttt{Callback} with one known argument and one required argument of type string: 418\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 419 !gapprompt@gap>| !gapinput@MyFunction := function(a,b) return Concatenation(a, b); end;| 420 !gapprompt@gap>| !gapinput@callback := Callback(MyFunction, ["Hello "]);| 421 !gapprompt@gap>| !gapinput@arg := RequiredArg(ArgType.STRING, "Your Name");| 422 !gapprompt@gap>| !gapinput@Add(callback, arg);| 423\end{Verbatim} 424 425 426 Create a \texttt{Callback} with one known argument and one required argument of type string and double 427click trigger Type: 428\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 429 !gapprompt@gap>| !gapinput@MyFunction := function(a,b) return Concatenation(a, b); end;| 430 !gapprompt@gap>| !gapinput@callback := Callback(TriggerType.DOUBLE_CLICK, MyFunction, ["Hello "]);| 431 !gapprompt@gap>| !gapinput@arg := RequiredArg(ArgType.STRING, "Your Name");| 432 !gapprompt@gap>| !gapinput@Add(callback, arg);| 433\end{Verbatim} 434 435 436 In order to see the output of the previous examples, we have to simulate the 437external call to \texttt{Trigger} operation: 438\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 439 !gapprompt@gap>| !gapinput@MyFunction := function(a,b) return Concatenation(a, b); end;| 440 !gapprompt@gap>| !gapinput@callback := Callback(TriggerType.DOUBLE_CLICK, MyFunction, ["Hello "]);| 441 !gapprompt@gap>| !gapinput@arg := RequiredArg(ArgType.STRING, "Your Name");| 442 !gapprompt@gap>| !gapinput@SetTitle(arg, "Enter your name");| 443 !gapprompt@gap>| !gapinput@Title(arg);| 444 !gapprompt@gap>| !gapinput@Add(callback, arg);| 445 !gapprompt@gap>| !gapinput@SetValue(arg, "Manuel"); # simulate the user input| 446 !gapprompt@gap>| !gapinput@Value(arg);| 447 !gapprompt@gap>| !gapinput@Trigger(GapToJsonString(Sanitize(callback))); # simulate the external trigger| 448\end{Verbatim} 449 450 451 Create a Noop Callback, useful for Menu holders, where no function is 452required: 453\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 454 !gapprompt@gap>| !gapinput@callback := NoopCallback();| 455\end{Verbatim} 456 457 458 } 459 460 461 462\subsection{\textcolor{Chapter }{NoopCallback}} 463\logpage{[ 2, 4, 2 ]}\nobreak 464\hyperdef{L}{X79FB842583B96033}{} 465{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{NoopCallback({\mdseries\slshape })\index{NoopCallback@\texttt{NoopCallback}} 466\label{NoopCallback} 467}\hfill{\scriptsize (operation)}}\\ 468\textbf{\indent Returns:\ } 469\texttt{Callback} 470 471 472 473 Creates an empty Callback object that does nothing. Useful to create menu 474holders. } 475 476 477 478\subsection{\textcolor{Chapter }{RequiredArg (for IsArgType, IsString)}} 479\logpage{[ 2, 4, 3 ]}\nobreak 480\hyperdef{L}{X842979BE7C0694A1}{} 481{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{RequiredArg({\mdseries\slshape IsArgType, IsString(title)})\index{RequiredArg@\texttt{RequiredArg}!for IsArgType, IsString} 482\label{RequiredArg:for IsArgType, IsString} 483}\hfill{\scriptsize (operation)}}\\ 484\textbf{\indent Returns:\ } 485\texttt{RequiredArg} 486 487 488 489 Creates a \texttt{Callback} \texttt{RequiredArg}. \texttt{RequiredArg} is user input driven and required for the execution of a \texttt{Callback} This value will be provided by the user. } 490 491 492 493\subsection{\textcolor{Chapter }{Trigger (for IsString)}} 494\logpage{[ 2, 4, 4 ]}\nobreak 495\hyperdef{L}{X7AF6D2BC85C96A6D}{} 496{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Trigger({\mdseries\slshape IsString(JSON)})\index{Trigger@\texttt{Trigger}!for IsString} 497\label{Trigger:for IsString} 498}\hfill{\scriptsize (operation)}}\\ 499\textbf{\indent Returns:\ } 500the result of the execution of the \texttt{Callback} defined \texttt{Function} 501 502 503 504 Triggers a callback function in GAP. Gets a JSON String object representation 505of the callback to execute. } 506 507 508 509\subsection{\textcolor{Chapter }{Add (for IsCallback, IsRequiredArg)}} 510\logpage{[ 2, 4, 5 ]}\nobreak 511\hyperdef{L}{X83FF6BEE7DBC8617}{} 512{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsCallback[, IsRequiredArg, List(IsRequiredArg)]})\index{Add@\texttt{Add}!for IsCallback, IsRequiredArg} 513\label{Add:for IsCallback, IsRequiredArg} 514}\hfill{\scriptsize (operation)}}\\ 515\textbf{\indent Returns:\ } 516\texttt{Callback} 517 518 519 520 Adds a \texttt{RequiredArg} to a specific \texttt{Callback}. } 521 522 523 524\subsection{\textcolor{Chapter }{Remove (for IsCallback, IsRequiredArg)}} 525\logpage{[ 2, 4, 6 ]}\nobreak 526\hyperdef{L}{X7F67A0CE8601BE21}{} 527{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsCallback[, IsRequiredArg, List(IsRequiredArg)]})\index{Remove@\texttt{Remove}!for IsCallback, IsRequiredArg} 528\label{Remove:for IsCallback, IsRequiredArg} 529}\hfill{\scriptsize (operation)}}\\ 530\textbf{\indent Returns:\ } 531\texttt{Callback} 532 533 534 535 Removes a \texttt{RequiredArg} from a specific callback. } 536 537 } 538 539 540\section{\textcolor{Chapter }{Globals}}\label{Chapter_Francy_Callbacks_Section_Globals} 541\logpage{[ 2, 5, 0 ]} 542\hyperdef{L}{X859DA3398653FCC5}{} 543{ 544 In this section we show the Global Callback Francy Records for multi purpose. } 545 546 547\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Callbacks_Section_Attributes} 548\logpage{[ 2, 6, 0 ]} 549\hyperdef{L}{X7C701DBF7BAE649A}{} 550{ 551 In this section we show the Francy Callback Attributes 552 553\subsection{\textcolor{Chapter }{Title (for IsRequiredArg)}} 554\logpage{[ 2, 6, 1 ]}\nobreak 555\hyperdef{L}{X7A58A55E806E5F68}{} 556{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg})\index{Title@\texttt{Title}!for IsRequiredArg} 557\label{Title:for IsRequiredArg} 558}\hfill{\scriptsize (attribute)}}\\ 559\textbf{\indent Returns:\ } 560\texttt{IsString} with the title of the object 561 562 563 564 A title on a required arg is used to ask the user what is expected from his 565input. } 566 567 568 569\subsection{\textcolor{Chapter }{Title (for IsRequiredArg)}} 570\logpage{[ 2, 6, 2 ]}\nobreak 571\hyperdef{L}{X7A58A55E806E5F68}{} 572{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg1})\index{Title@\texttt{Title}!for IsRequiredArg} 573\label{Title:for IsRequiredArg} 574}\hfill{\scriptsize (function)}}\\ 575 576 577 578 579 } 580 581 582 583\subsection{\textcolor{Chapter }{SetTitle (for IsRequiredArg, IsString)}} 584\logpage{[ 2, 6, 3 ]}\nobreak 585\hyperdef{L}{X7888408386F15D29}{} 586{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTitle({\mdseries\slshape IsRequiredArg, IsString})\index{SetTitle@\texttt{SetTitle}!for IsRequiredArg, IsString} 587\label{SetTitle:for IsRequiredArg, IsString} 588}\hfill{\scriptsize (function)}}\\ 589 590 591 Sets the title of the required arg. } 592 593 594 595\subsection{\textcolor{Chapter }{Value (for IsRequiredArg)}} 596\logpage{[ 2, 6, 4 ]}\nobreak 597\hyperdef{L}{X78733FD481F16F77}{} 598{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Value({\mdseries\slshape arg})\index{Value@\texttt{Value}!for IsRequiredArg} 599\label{Value:for IsRequiredArg} 600}\hfill{\scriptsize (attribute)}}\\ 601\textbf{\indent Returns:\ } 602\texttt{IsString} with the value of the object 603 604 605 606 A value on a required arg is the actual input to be passed to gap. These 607values are stored as \texttt{String} for convenience, even if the \texttt{ArgType} specified for the \texttt{RequiredArg} is another. Explicit conversion is required within the \texttt{Callback}function. } 608 609 610 611\subsection{\textcolor{Chapter }{Value (for IsRequiredArg)}} 612\logpage{[ 2, 6, 5 ]}\nobreak 613\hyperdef{L}{X78733FD481F16F77}{} 614{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Value({\mdseries\slshape arg1})\index{Value@\texttt{Value}!for IsRequiredArg} 615\label{Value:for IsRequiredArg} 616}\hfill{\scriptsize (function)}}\\ 617 618 619 620 621 } 622 623 624 625\subsection{\textcolor{Chapter }{SetValue (for IsRequiredArg, IsString)}} 626\logpage{[ 2, 6, 6 ]}\nobreak 627\hyperdef{L}{X7C4F7F027E8AF083}{} 628{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetValue({\mdseries\slshape IsRequiredArg, IsString})\index{SetValue@\texttt{SetValue}!for IsRequiredArg, IsString} 629\label{SetValue:for IsRequiredArg, IsString} 630}\hfill{\scriptsize (function)}}\\ 631 632 633 Sets the value of the required arg. } 634 635 636 637\subsection{\textcolor{Chapter }{ConfirmMessage (for IsCallback)}} 638\logpage{[ 2, 6, 7 ]}\nobreak 639\hyperdef{L}{X87AA56767C7BB01F}{} 640{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ConfirmMessage({\mdseries\slshape arg})\index{ConfirmMessage@\texttt{ConfirmMessage}!for IsCallback} 641\label{ConfirmMessage:for IsCallback} 642}\hfill{\scriptsize (attribute)}}\\ 643\textbf{\indent Returns:\ } 644\texttt{IsString} with the message oto be shown to the user prior to the callback execution 645 646 647 648 This will display a confirmation message before any callback is executed. } 649 650 651 652\subsection{\textcolor{Chapter }{ConfirmMessage (for IsCallback)}} 653\logpage{[ 2, 6, 8 ]}\nobreak 654\hyperdef{L}{X87AA56767C7BB01F}{} 655{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ConfirmMessage({\mdseries\slshape arg1})\index{ConfirmMessage@\texttt{ConfirmMessage}!for IsCallback} 656\label{ConfirmMessage:for IsCallback} 657}\hfill{\scriptsize (function)}}\\ 658 659 660 661 662 } 663 664 665 666\subsection{\textcolor{Chapter }{SetConfirmMessage (for IsCallback, IsString)}} 667\logpage{[ 2, 6, 9 ]}\nobreak 668\hyperdef{L}{X7F4046A17BBE64F1}{} 669{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetConfirmMessage({\mdseries\slshape IsRequiredArg, IsString})\index{SetConfirmMessage@\texttt{SetConfirmMessage}!for IsCallback, IsString} 670\label{SetConfirmMessage:for IsCallback, IsString} 671}\hfill{\scriptsize (function)}}\\ 672 673 674 Sets the value of the message to display to the user. } 675 676 } 677 678 } 679 680 681\chapter{\textcolor{Chapter }{Francy Canvas}}\label{Chapter_Francy_Canvas} 682\logpage{[ 3, 0, 0 ]} 683\hyperdef{L}{X7BD5B9D67E663019}{} 684{ 685 A \texttt{Canvas} is an area where the graphics representation of Francy live. 686 687 Please see Francy-JS for client implementation. 688\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Canvas_Section_Categories} 689\logpage{[ 3, 1, 0 ]} 690\hyperdef{L}{X7CC6903E78F24167}{} 691{ 692 In this section we show all Francy Canvas Categories. 693 694\subsection{\textcolor{Chapter }{IsCanvas (for IsFrancyObject)}} 695\logpage{[ 3, 1, 1 ]}\nobreak 696\hyperdef{L}{X8351E5BE7ED0B87E}{} 697{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsCanvas({\mdseries\slshape arg})\index{IsCanvas@\texttt{IsCanvas}!for IsFrancyObject} 698\label{IsCanvas:for IsFrancyObject} 699}\hfill{\scriptsize (filter)}}\\ 700\textbf{\indent Returns:\ } 701\texttt{true} or \texttt{false} 702 703 704 705 Identifies \texttt{Canvas} objects. } 706 707 708 709\subsection{\textcolor{Chapter }{IsCanvasDefaults (for IsFrancyDefaultObject)}} 710\logpage{[ 3, 1, 2 ]}\nobreak 711\hyperdef{L}{X8040FA4D7BFFA02C}{} 712{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsCanvasDefaults({\mdseries\slshape arg})\index{IsCanvasDefaults@\texttt{IsCanvasDefaults}!for IsFrancyDefaultObject} 713\label{IsCanvasDefaults:for IsFrancyDefaultObject} 714}\hfill{\scriptsize (filter)}}\\ 715\textbf{\indent Returns:\ } 716\texttt{true} or \texttt{false} 717 718 719 720 Identifies \texttt{CanvasDefaults} objects. } 721 722 } 723 724 725\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Canvas_Section_Families} 726\logpage{[ 3, 2, 0 ]} 727\hyperdef{L}{X846063757EC05986}{} 728{ 729 In this section we show all Francy Canvas Families. } 730 731 732\section{\textcolor{Chapter }{Representations}}\label{Chapter_Francy_Canvas_Section_Representations} 733\logpage{[ 3, 3, 0 ]} 734\hyperdef{L}{X7EABCC537D3BC549}{} 735{ 736 In this section we show all Francy Canvas Representations. 737 738\subsection{\textcolor{Chapter }{IsCanvasRep (for IsComponentObjectRep)}} 739\logpage{[ 3, 3, 1 ]}\nobreak 740\hyperdef{L}{X8528307D784BB534}{} 741{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsCanvasRep({\mdseries\slshape arg})\index{IsCanvasRep@\texttt{IsCanvasRep}!for IsComponentObjectRep} 742\label{IsCanvasRep:for IsComponentObjectRep} 743}\hfill{\scriptsize (filter)}}\\ 744\textbf{\indent Returns:\ } 745\texttt{true} or \texttt{false} 746 747 748 749 Checks whether an \texttt{Object} has a \texttt{Canvas} internal representation. } 750 751 752 753\subsection{\textcolor{Chapter }{IsCanvasDefaultsRep (for IsComponentObjectRep)}} 754\logpage{[ 3, 3, 2 ]}\nobreak 755\hyperdef{L}{X84F3F3517F477404}{} 756{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsCanvasDefaultsRep({\mdseries\slshape arg})\index{IsCanvasDefaultsRep@\texttt{IsCanvasDefaultsRep}!for IsComponentObjectRep} 757\label{IsCanvasDefaultsRep:for IsComponentObjectRep} 758}\hfill{\scriptsize (filter)}}\\ 759\textbf{\indent Returns:\ } 760\texttt{true} or \texttt{false} 761 762 763 764 Checks whether an \texttt{Object} has a \texttt{CanvasDefaults} internal representation. } 765 766 } 767 768 769\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Canvas_Section_Operations} 770\logpage{[ 3, 4, 0 ]} 771\hyperdef{L}{X7DE8E16C7C2D387B}{} 772{ 773 In this section we show all Francy Canvas Operations. 774 775\subsection{\textcolor{Chapter }{Canvas (for IsString, IsCanvasDefaults)}} 776\logpage{[ 3, 4, 1 ]}\nobreak 777\hyperdef{L}{X874453DF7EED04FA}{} 778{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Canvas({\mdseries\slshape IsString(title)[, IsCanvasDefaults]})\index{Canvas@\texttt{Canvas}!for IsString, IsCanvasDefaults} 779\label{Canvas:for IsString, IsCanvasDefaults} 780}\hfill{\scriptsize (operation)}}\\ 781\textbf{\indent Returns:\ } 782\texttt{Callback} 783 784 785 786 Canvas represents a base element to draw graphics on. Inspired by the HTML 787canvas tag element which is used to draw graphics, in runtime, via JavaScript. 788Examples: 789 790 Create a simple \texttt{Canvas}: 791\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 792 !gapprompt@gap>| !gapinput@canvas := Canvas("");| 793 !gapprompt@gap>| !gapinput@Id(canvas);| 794 !gapprompt@gap>| !gapinput@SetTitle(canvas, "Quaternion Group Subgroup Lattice");| 795 !gapprompt@gap>| !gapinput@Title(canvas);| 796 !gapprompt@gap>| !gapinput@SetHeight(canvas, 400); # default 600| 797 !gapprompt@gap>| !gapinput@Height(canvas);| 798 !gapprompt@gap>| !gapinput@SetWidth(canvas, 400); # default 800| 799 !gapprompt@gap>| !gapinput@Width(canvas);| 800 !gapprompt@gap>| !gapinput@SetZoomToFit(canvas, false); # default true| 801 !gapprompt@gap>| !gapinput@ZoomToFit(canvas);| 802 !gapprompt@gap>| !gapinput@Draw(canvas);| 803\end{Verbatim} 804 805 806 } 807 808 809 810\subsection{\textcolor{Chapter }{Add (for IsCanvas, IsFrancyGraph)}} 811\logpage{[ 3, 4, 2 ]}\nobreak 812\hyperdef{L}{X7FEEC3AC8666481F}{} 813{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsCanvas[, IsFrancyGraph, List(IsFrancyGraph)]})\index{Add@\texttt{Add}!for IsCanvas, IsFrancyGraph} 814\label{Add:for IsCanvas, IsFrancyGraph} 815}\hfill{\scriptsize (operation)}}\\ 816\textbf{\indent Returns:\ } 817\texttt{Canvas} 818 819 820 821 Adds a \texttt{FrancyGraph} to a specific \texttt{Canvas}. Well, the api is abstract enough to allow Adding a list of \texttt{IsFrancyGraph} to a canvas, but this results in setting the graph property only to the last \texttt{IsFrancyGraph} in the list. } 822 823 824 825\subsection{\textcolor{Chapter }{Remove (for IsCanvas, IsFrancyGraph)}} 826\logpage{[ 3, 4, 3 ]}\nobreak 827\hyperdef{L}{X8090D82580B6CA23}{} 828{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsCanvas[, IsFrancyGraph, List(IsFrancyGraph)]})\index{Remove@\texttt{Remove}!for IsCanvas, IsFrancyGraph} 829\label{Remove:for IsCanvas, IsFrancyGraph} 830}\hfill{\scriptsize (operation)}}\\ 831\textbf{\indent Returns:\ } 832\texttt{Canvas} 833 834 835 836 Removes a \texttt{FrancyGraph} from a \texttt{Canvas}. } 837 838 839 840\subsection{\textcolor{Chapter }{Add (for IsCanvas, IsChart)}} 841\logpage{[ 3, 4, 4 ]}\nobreak 842\hyperdef{L}{X8419F6837D7125A3}{} 843{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsCanvas[, IsChart, List(IsChart)]})\index{Add@\texttt{Add}!for IsCanvas, IsChart} 844\label{Add:for IsCanvas, IsChart} 845}\hfill{\scriptsize (operation)}}\\ 846\textbf{\indent Returns:\ } 847\texttt{Canvas} 848 849 850 851 Adds a \texttt{Chart} to a specific \texttt{Canvas}. Well, the api is abstract enough to allow Adding a list of \texttt{IsChart} to a canvas, but this results in setting the graph property only to the last \texttt{IsChart} in the list. } 852 853 854 855\subsection{\textcolor{Chapter }{Remove (for IsCanvas, IsChart)}} 856\logpage{[ 3, 4, 5 ]}\nobreak 857\hyperdef{L}{X792342FC842ED287}{} 858{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsCanvas[, IsChart, List(IsChart)]})\index{Remove@\texttt{Remove}!for IsCanvas, IsChart} 859\label{Remove:for IsCanvas, IsChart} 860}\hfill{\scriptsize (operation)}}\\ 861\textbf{\indent Returns:\ } 862\texttt{Canvas} 863 864 865 866 Removes a \texttt{Chart} from a \texttt{Canvas}. } 867 868 869 870\subsection{\textcolor{Chapter }{Add (for IsCanvas, IsMenu)}} 871\logpage{[ 3, 4, 6 ]}\nobreak 872\hyperdef{L}{X86AE935D7BFF905F}{} 873{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsCanvas[, IsMenu, List(IsMenu)]})\index{Add@\texttt{Add}!for IsCanvas, IsMenu} 874\label{Add:for IsCanvas, IsMenu} 875}\hfill{\scriptsize (operation)}}\\ 876\textbf{\indent Returns:\ } 877\texttt{Canvas} 878 879 880 881 Adds a \texttt{Menu} to a specific \texttt{Canvas}. } 882 883 884 885\subsection{\textcolor{Chapter }{Remove (for IsCanvas, IsMenu)}} 886\logpage{[ 3, 4, 7 ]}\nobreak 887\hyperdef{L}{X8175A39B7D0A33D5}{} 888{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsCanvas[, IsMenu, List(IsMenu)]})\index{Remove@\texttt{Remove}!for IsCanvas, IsMenu} 889\label{Remove:for IsCanvas, IsMenu} 890}\hfill{\scriptsize (operation)}}\\ 891\textbf{\indent Returns:\ } 892\texttt{Canvas} 893 894 895 896 Removes a \texttt{Menu} from a \texttt{Canvas}. } 897 898 899 900\subsection{\textcolor{Chapter }{Add (for IsCanvas, IsFrancyMessage)}} 901\logpage{[ 3, 4, 8 ]}\nobreak 902\hyperdef{L}{X7F12F02C7D234A85}{} 903{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsCanvas[, IsFrancyMessage, List(IsFrancyMessage)]})\index{Add@\texttt{Add}!for IsCanvas, IsFrancyMessage} 904\label{Add:for IsCanvas, IsFrancyMessage} 905}\hfill{\scriptsize (operation)}}\\ 906\textbf{\indent Returns:\ } 907\texttt{IsCanvas} 908 909 910 911 Adds a \texttt{FrancyMessage} to a specific \texttt{IsCanvas}. } 912 913 914 915\subsection{\textcolor{Chapter }{Remove (for IsCanvas, IsFrancyMessage)}} 916\logpage{[ 3, 4, 9 ]}\nobreak 917\hyperdef{L}{X838A3B0C7F66576C}{} 918{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsCanvas[, IsFrancyMessage, List(IsFrancyMessage)]})\index{Remove@\texttt{Remove}!for IsCanvas, IsFrancyMessage} 919\label{Remove:for IsCanvas, IsFrancyMessage} 920}\hfill{\scriptsize (operation)}}\\ 921\textbf{\indent Returns:\ } 922\texttt{IsCanvas} 923 924 925 926 Removes a \texttt{FrancyMessage} from a specific \texttt{IsCanvas}. } 927 928 929 930\subsection{\textcolor{Chapter }{Draw (for IsCanvas)}} 931\logpage{[ 3, 4, 10 ]}\nobreak 932\hyperdef{L}{X8352EF6583B2A8B6}{} 933{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Draw({\mdseries\slshape IsCanvas})\index{Draw@\texttt{Draw}!for IsCanvas} 934\label{Draw:for IsCanvas} 935}\hfill{\scriptsize (operation)}}\\ 936\textbf{\indent Returns:\ } 937\texttt{rec} with json representation of the canvas 938 939 940 941 Generates the JSON representation of the canvas and children objects } 942 943 944 945\subsection{\textcolor{Chapter }{DrawSplash (for IsCanvas)}} 946\logpage{[ 3, 4, 11 ]}\nobreak 947\hyperdef{L}{X7E989A727B18D82A}{} 948{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{DrawSplash({\mdseries\slshape IsCanvas})\index{DrawSplash@\texttt{DrawSplash}!for IsCanvas} 949\label{DrawSplash:for IsCanvas} 950}\hfill{\scriptsize (operation)}}\\ 951\textbf{\indent Returns:\ } 952\texttt{rec} with html generated 953 954 955 956 Generates an HTML page and opens it within the default browser of the system } 957 958 } 959 960 961\section{\textcolor{Chapter }{Global}}\label{Chapter_Francy_Canvas_Section_Global} 962\logpage{[ 3, 5, 0 ]} 963\hyperdef{L}{X8690E870823975F3}{} 964{ 965 In this section we show all Global Francy Canvas Records for multi purpose. } 966 967 968\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Canvas_Section_Attributes} 969\logpage{[ 3, 6, 0 ]} 970\hyperdef{L}{X7C701DBF7BAE649A}{} 971{ 972 In this section we show the Francy Attributes 973 974\subsection{\textcolor{Chapter }{Width (for IsCanvas)}} 975\logpage{[ 3, 6, 1 ]}\nobreak 976\hyperdef{L}{X7DF1F7F27DBF05DB}{} 977{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Width({\mdseries\slshape arg})\index{Width@\texttt{Width}!for IsCanvas} 978\label{Width:for IsCanvas} 979}\hfill{\scriptsize (attribute)}}\\ 980\textbf{\indent Returns:\ } 981\texttt{IsPosInt} 982 983 984 985 The Width of the canvas in pixels } 986 987 988 989\subsection{\textcolor{Chapter }{Width (for IsCanvas)}} 990\logpage{[ 3, 6, 2 ]}\nobreak 991\hyperdef{L}{X7DF1F7F27DBF05DB}{} 992{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Width({\mdseries\slshape arg1})\index{Width@\texttt{Width}!for IsCanvas} 993\label{Width:for IsCanvas} 994}\hfill{\scriptsize (function)}}\\ 995 996 997 998 999 } 1000 1001 1002 1003\subsection{\textcolor{Chapter }{SetWidth (for IsCanvas, IsPosInt)}} 1004\logpage{[ 3, 6, 3 ]}\nobreak 1005\hyperdef{L}{X82D7219081829CE5}{} 1006{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetWidth({\mdseries\slshape IsCanvas, IsPosInt})\index{SetWidth@\texttt{SetWidth}!for IsCanvas, IsPosInt} 1007\label{SetWidth:for IsCanvas, IsPosInt} 1008}\hfill{\scriptsize (function)}}\\ 1009 1010 1011 Sets the Width of the canvas in pixels } 1012 1013 1014 1015\subsection{\textcolor{Chapter }{Height (for IsCanvas)}} 1016\logpage{[ 3, 6, 4 ]}\nobreak 1017\hyperdef{L}{X7C8CA0D97DD98ACC}{} 1018{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Height({\mdseries\slshape arg})\index{Height@\texttt{Height}!for IsCanvas} 1019\label{Height:for IsCanvas} 1020}\hfill{\scriptsize (attribute)}}\\ 1021\textbf{\indent Returns:\ } 1022\texttt{IsPosInt} 1023 1024 1025 1026 The Height of the canvas in pixels } 1027 1028 1029 1030\subsection{\textcolor{Chapter }{Height (for IsCanvas)}} 1031\logpage{[ 3, 6, 5 ]}\nobreak 1032\hyperdef{L}{X7C8CA0D97DD98ACC}{} 1033{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Height({\mdseries\slshape arg1})\index{Height@\texttt{Height}!for IsCanvas} 1034\label{Height:for IsCanvas} 1035}\hfill{\scriptsize (function)}}\\ 1036 1037 1038 1039 1040 } 1041 1042 1043 1044\subsection{\textcolor{Chapter }{SetHeight (for IsCanvas, IsPosInt)}} 1045\logpage{[ 3, 6, 6 ]}\nobreak 1046\hyperdef{L}{X7B08897D7FD3F0F4}{} 1047{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetHeight({\mdseries\slshape IsCanvas, IsPosInt})\index{SetHeight@\texttt{SetHeight}!for IsCanvas, IsPosInt} 1048\label{SetHeight:for IsCanvas, IsPosInt} 1049}\hfill{\scriptsize (function)}}\\ 1050 1051 1052 Sets the Height of the canvas in pixels } 1053 1054 1055 1056\subsection{\textcolor{Chapter }{ZoomToFit (for IsCanvas)}} 1057\logpage{[ 3, 6, 7 ]}\nobreak 1058\hyperdef{L}{X78FB8F5B7A5FC80E}{} 1059{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ZoomToFit({\mdseries\slshape arg})\index{ZoomToFit@\texttt{ZoomToFit}!for IsCanvas} 1060\label{ZoomToFit:for IsCanvas} 1061}\hfill{\scriptsize (attribute)}}\\ 1062\textbf{\indent Returns:\ } 1063\texttt{IsBool} True if enabled otherwise False 1064 1065 1066 1067 \texttt{ZoomToFit} is a property that sets the zoom to fit behavior on change in the client 1068implementation. } 1069 1070 1071 1072\subsection{\textcolor{Chapter }{ZoomToFit (for IsCanvas)}} 1073\logpage{[ 3, 6, 8 ]}\nobreak 1074\hyperdef{L}{X78FB8F5B7A5FC80E}{} 1075{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ZoomToFit({\mdseries\slshape arg1})\index{ZoomToFit@\texttt{ZoomToFit}!for IsCanvas} 1076\label{ZoomToFit:for IsCanvas} 1077}\hfill{\scriptsize (function)}}\\ 1078 1079 1080 1081 1082 } 1083 1084 1085 1086\subsection{\textcolor{Chapter }{SetZoomToFit (for IsCanvas, IsBool)}} 1087\logpage{[ 3, 6, 9 ]}\nobreak 1088\hyperdef{L}{X7A474051806655AF}{} 1089{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetZoomToFit({\mdseries\slshape IsCanvas, IsBool})\index{SetZoomToFit@\texttt{SetZoomToFit}!for IsCanvas, IsBool} 1090\label{SetZoomToFit:for IsCanvas, IsBool} 1091}\hfill{\scriptsize (function)}}\\ 1092 1093 1094 \texttt{ZoomToFit} is a property that sets the zoom to fit behavior on change in the client. } 1095 1096 1097 1098\subsection{\textcolor{Chapter }{Title (for IsCanvas)}} 1099\logpage{[ 3, 6, 10 ]}\nobreak 1100\hyperdef{L}{X7EFAFBF4833E214B}{} 1101{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg})\index{Title@\texttt{Title}!for IsCanvas} 1102\label{Title:for IsCanvas} 1103}\hfill{\scriptsize (attribute)}}\\ 1104\textbf{\indent Returns:\ } 1105\texttt{IsString} with the title of the object 1106 1107 1108 1109 A title on a required arg is used to ask the user what is expected from his 1110input. } 1111 1112 1113 1114\subsection{\textcolor{Chapter }{Title (for IsCanvas)}} 1115\logpage{[ 3, 6, 11 ]}\nobreak 1116\hyperdef{L}{X7EFAFBF4833E214B}{} 1117{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg1})\index{Title@\texttt{Title}!for IsCanvas} 1118\label{Title:for IsCanvas} 1119}\hfill{\scriptsize (function)}}\\ 1120 1121 1122 1123 1124 } 1125 1126 1127 1128\subsection{\textcolor{Chapter }{SetTitle (for IsCanvas, IsString)}} 1129\logpage{[ 3, 6, 12 ]}\nobreak 1130\hyperdef{L}{X85DA7AAC7A47E8B6}{} 1131{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTitle({\mdseries\slshape IsCanvas, IsString})\index{SetTitle@\texttt{SetTitle}!for IsCanvas, IsString} 1132\label{SetTitle:for IsCanvas, IsString} 1133}\hfill{\scriptsize (function)}}\\ 1134 1135 1136 Sets the title of the required arg. } 1137 1138 1139 1140\subsection{\textcolor{Chapter }{TexTypesetting (for IsCanvas)}} 1141\logpage{[ 3, 6, 13 ]}\nobreak 1142\hyperdef{L}{X86B7B5A579F18055}{} 1143{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{TexTypesetting({\mdseries\slshape arg})\index{TexTypesetting@\texttt{TexTypesetting}!for IsCanvas} 1144\label{TexTypesetting:for IsCanvas} 1145}\hfill{\scriptsize (attribute)}}\\ 1146\textbf{\indent Returns:\ } 1147\texttt{IsBool} with the title of the object 1148 1149 1150 1151 Enables usage of Tex typestting on the client implementation, if supported. } 1152 1153 1154 1155\subsection{\textcolor{Chapter }{TexTypesetting (for IsCanvas)}} 1156\logpage{[ 3, 6, 14 ]}\nobreak 1157\hyperdef{L}{X86B7B5A579F18055}{} 1158{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{TexTypesetting({\mdseries\slshape arg1})\index{TexTypesetting@\texttt{TexTypesetting}!for IsCanvas} 1159\label{TexTypesetting:for IsCanvas} 1160}\hfill{\scriptsize (function)}}\\ 1161 1162 1163 1164 1165 } 1166 1167 1168 1169\subsection{\textcolor{Chapter }{SetTexTypesetting (for IsCanvas, IsBool)}} 1170\logpage{[ 3, 6, 15 ]}\nobreak 1171\hyperdef{L}{X879D8DDF798C4E23}{} 1172{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTexTypesetting({\mdseries\slshape IsCanvas, IsBool})\index{SetTexTypesetting@\texttt{SetTexTypesetting}!for IsCanvas, IsBool} 1173\label{SetTexTypesetting:for IsCanvas, IsBool} 1174}\hfill{\scriptsize (function)}}\\ 1175 1176 1177 Sets Tex typestting on the canvas objects } 1178 1179 } 1180 1181 } 1182 1183 1184\chapter{\textcolor{Chapter }{Francy Charts}}\label{Chapter_Francy_Charts} 1185\logpage{[ 4, 0, 0 ]} 1186\hyperdef{L}{X7D894A1879FA9052}{} 1187{ 1188 It is possible to build \texttt{Charts} with simple \texttt{Datasets}. 1189 1190 Currently, Francy, supports Bar, Line and Scatter Charts. 1191 1192 Please see Francy-JS for client implementation. 1193\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Charts_Section_Categories} 1194\logpage{[ 4, 1, 0 ]} 1195\hyperdef{L}{X7CC6903E78F24167}{} 1196{ 1197 In this section we show all Francy Chart Categories. 1198 1199\subsection{\textcolor{Chapter }{IsChart (for IsFrancyObject)}} 1200\logpage{[ 4, 1, 1 ]}\nobreak 1201\hyperdef{L}{X842E94797B06EA05}{} 1202{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsChart({\mdseries\slshape arg})\index{IsChart@\texttt{IsChart}!for IsFrancyObject} 1203\label{IsChart:for IsFrancyObject} 1204}\hfill{\scriptsize (filter)}}\\ 1205\textbf{\indent Returns:\ } 1206\texttt{true} or \texttt{false} 1207 1208 1209 1210 Identifies \texttt{Chart} objects. } 1211 1212 1213 1214\subsection{\textcolor{Chapter }{IsChartType (for IsFrancyTypeObject)}} 1215\logpage{[ 4, 1, 2 ]}\nobreak 1216\hyperdef{L}{X7883EB6E7996B768}{} 1217{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsChartType({\mdseries\slshape arg})\index{IsChartType@\texttt{IsChartType}!for IsFrancyTypeObject} 1218\label{IsChartType:for IsFrancyTypeObject} 1219}\hfill{\scriptsize (filter)}}\\ 1220\textbf{\indent Returns:\ } 1221\texttt{true} or \texttt{false} 1222 1223 1224 1225 Identifies \texttt{ChartType} objects. } 1226 1227 1228 1229\subsection{\textcolor{Chapter }{IsChartDefaults (for IsFrancyDefaultObject)}} 1230\logpage{[ 4, 1, 3 ]}\nobreak 1231\hyperdef{L}{X7D1AD55182909B1E}{} 1232{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsChartDefaults({\mdseries\slshape arg})\index{IsChartDefaults@\texttt{IsChartDefaults}!for IsFrancyDefaultObject} 1233\label{IsChartDefaults:for IsFrancyDefaultObject} 1234}\hfill{\scriptsize (filter)}}\\ 1235\textbf{\indent Returns:\ } 1236\texttt{true} or \texttt{false} 1237 1238 1239 1240 Identifies \texttt{ChartDefaults} objects. } 1241 1242 1243 1244\subsection{\textcolor{Chapter }{IsAxisScaleType (for IsFrancyTypeObject)}} 1245\logpage{[ 4, 1, 4 ]}\nobreak 1246\hyperdef{L}{X7D677CC3851D5DB6}{} 1247{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsAxisScaleType({\mdseries\slshape arg})\index{IsAxisScaleType@\texttt{IsAxisScaleType}!for IsFrancyTypeObject} 1248\label{IsAxisScaleType:for IsFrancyTypeObject} 1249}\hfill{\scriptsize (filter)}}\\ 1250\textbf{\indent Returns:\ } 1251\texttt{true} or \texttt{false} 1252 1253 1254 1255 Identifies \texttt{AxisScaleType} objects. } 1256 1257 1258 1259\subsection{\textcolor{Chapter }{IsXAxis (for IsFrancyObject)}} 1260\logpage{[ 4, 1, 5 ]}\nobreak 1261\hyperdef{L}{X7DF8B33A81C539A6}{} 1262{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsXAxis({\mdseries\slshape arg})\index{IsXAxis@\texttt{IsXAxis}!for IsFrancyObject} 1263\label{IsXAxis:for IsFrancyObject} 1264}\hfill{\scriptsize (filter)}}\\ 1265\textbf{\indent Returns:\ } 1266\texttt{true} or \texttt{false} 1267 1268 1269 1270 Identifies \texttt{XAxis} objects. } 1271 1272 1273 1274\subsection{\textcolor{Chapter }{IsYAxis (for IsFrancyObject)}} 1275\logpage{[ 4, 1, 6 ]}\nobreak 1276\hyperdef{L}{X85EAE56881D91F05}{} 1277{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsYAxis({\mdseries\slshape arg})\index{IsYAxis@\texttt{IsYAxis}!for IsFrancyObject} 1278\label{IsYAxis:for IsFrancyObject} 1279}\hfill{\scriptsize (filter)}}\\ 1280\textbf{\indent Returns:\ } 1281\texttt{true} or \texttt{false} 1282 1283 1284 1285 Identifies \texttt{YAxis} objects. } 1286 1287 1288 1289\subsection{\textcolor{Chapter }{IsDataset (for IsFrancyObject)}} 1290\logpage{[ 4, 1, 7 ]}\nobreak 1291\hyperdef{L}{X83443E0080CEBA59}{} 1292{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsDataset({\mdseries\slshape arg})\index{IsDataset@\texttt{IsDataset}!for IsFrancyObject} 1293\label{IsDataset:for IsFrancyObject} 1294}\hfill{\scriptsize (filter)}}\\ 1295\textbf{\indent Returns:\ } 1296\texttt{true} or \texttt{false} 1297 1298 1299 1300 Identifies \texttt{Dataset} objects. } 1301 1302 } 1303 1304 1305\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Charts_Section_Families} 1306\logpage{[ 4, 2, 0 ]} 1307\hyperdef{L}{X846063757EC05986}{} 1308{ 1309 In this section we show all Francy Chart Families. } 1310 1311 1312\section{\textcolor{Chapter }{Representations}}\label{Chapter_Francy_Charts_Section_Representations} 1313\logpage{[ 4, 3, 0 ]} 1314\hyperdef{L}{X7EABCC537D3BC549}{} 1315{ 1316 In this section we show the Francy Chart Representations. 1317 1318\subsection{\textcolor{Chapter }{IsChartRep (for IsComponentObjectRep)}} 1319\logpage{[ 4, 3, 1 ]}\nobreak 1320\hyperdef{L}{X8103CF1C80678FAC}{} 1321{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsChartRep({\mdseries\slshape arg})\index{IsChartRep@\texttt{IsChartRep}!for IsComponentObjectRep} 1322\label{IsChartRep:for IsComponentObjectRep} 1323}\hfill{\scriptsize (filter)}}\\ 1324\textbf{\indent Returns:\ } 1325\texttt{true} or \texttt{false} 1326 1327 1328 1329 Checks whether an \texttt{Object} has a \texttt{Chart} internal representation. } 1330 1331 1332 1333\subsection{\textcolor{Chapter }{IsChartDefaultsRep (for IsComponentObjectRep)}} 1334\logpage{[ 4, 3, 2 ]}\nobreak 1335\hyperdef{L}{X7E2CABA77A09F7DC}{} 1336{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsChartDefaultsRep({\mdseries\slshape arg})\index{IsChartDefaultsRep@\texttt{IsChartDefaultsRep}!for IsComponentObjectRep} 1337\label{IsChartDefaultsRep:for IsComponentObjectRep} 1338}\hfill{\scriptsize (filter)}}\\ 1339\textbf{\indent Returns:\ } 1340\texttt{true} or \texttt{false} 1341 1342 1343 1344 Checks whether an \texttt{Object} has a \texttt{ChartDefaults} internal representation. } 1345 1346 1347 1348\subsection{\textcolor{Chapter }{IsChartTypeRep (for IsComponentObjectRep)}} 1349\logpage{[ 4, 3, 3 ]}\nobreak 1350\hyperdef{L}{X7A1571668258DC2E}{} 1351{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsChartTypeRep({\mdseries\slshape arg})\index{IsChartTypeRep@\texttt{IsChartTypeRep}!for IsComponentObjectRep} 1352\label{IsChartTypeRep:for IsComponentObjectRep} 1353}\hfill{\scriptsize (filter)}}\\ 1354\textbf{\indent Returns:\ } 1355\texttt{true} or \texttt{false} 1356 1357 1358 1359 Checks whether an \texttt{Object} has a \texttt{ChartType} internal representation. } 1360 1361 1362 1363\subsection{\textcolor{Chapter }{IsAxisScaleTypeRep (for IsComponentObjectRep)}} 1364\logpage{[ 4, 3, 4 ]}\nobreak 1365\hyperdef{L}{X7C863513870E27E8}{} 1366{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsAxisScaleTypeRep({\mdseries\slshape arg})\index{IsAxisScaleTypeRep@\texttt{IsAxisScaleTypeRep}!for IsComponentObjectRep} 1367\label{IsAxisScaleTypeRep:for IsComponentObjectRep} 1368}\hfill{\scriptsize (filter)}}\\ 1369\textbf{\indent Returns:\ } 1370\texttt{true} or \texttt{false} 1371 1372 1373 1374 Checks whether an \texttt{Object} has a \texttt{AxisScaleType} internal representation. } 1375 1376 1377 1378\subsection{\textcolor{Chapter }{IsAxisRep (for IsComponentObjectRep)}} 1379\logpage{[ 4, 3, 5 ]}\nobreak 1380\hyperdef{L}{X79AF56708511A8BB}{} 1381{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsAxisRep({\mdseries\slshape arg})\index{IsAxisRep@\texttt{IsAxisRep}!for IsComponentObjectRep} 1382\label{IsAxisRep:for IsComponentObjectRep} 1383}\hfill{\scriptsize (filter)}}\\ 1384\textbf{\indent Returns:\ } 1385\texttt{true} or \texttt{false} 1386 1387 1388 1389 Checks whether an \texttt{Object} has a \texttt{AxisRep} internal representation. } 1390 1391 1392 1393\subsection{\textcolor{Chapter }{IsDatasetRep (for IsComponentObjectRep)}} 1394\logpage{[ 4, 3, 6 ]}\nobreak 1395\hyperdef{L}{X8379B4617DD3972B}{} 1396{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsDatasetRep({\mdseries\slshape arg})\index{IsDatasetRep@\texttt{IsDatasetRep}!for IsComponentObjectRep} 1397\label{IsDatasetRep:for IsComponentObjectRep} 1398}\hfill{\scriptsize (filter)}}\\ 1399\textbf{\indent Returns:\ } 1400\texttt{true} or \texttt{false} 1401 1402 1403 1404 Checks whether an \texttt{Object} has a \texttt{DatasetRep} internal representation. } 1405 1406 } 1407 1408 1409\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Charts_Section_Operations} 1410\logpage{[ 4, 4, 0 ]} 1411\hyperdef{L}{X7DE8E16C7C2D387B}{} 1412{ 1413 In this section we show all Francy Chart Operations. 1414 1415\subsection{\textcolor{Chapter }{Chart (for IsChartType, IsChartDefaults)}} 1416\logpage{[ 4, 4, 1 ]}\nobreak 1417\hyperdef{L}{X788E9239817A86F9}{} 1418{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Chart({\mdseries\slshape IsChartType[, IsChartDefaults]})\index{Chart@\texttt{Chart}!for IsChartType, IsChartDefaults} 1419\label{Chart:for IsChartType, IsChartDefaults} 1420}\hfill{\scriptsize (operation)}}\\ 1421\textbf{\indent Returns:\ } 1422\texttt{Chart} 1423 1424 1425 1426 Every object to draw will be a subclass of this object. This will allow all 1427the objects to contain the same base information. 1428 1429 Examples: 1430 1431 Create a simple \texttt{Chart} of type \texttt{ChartType.BAR}: 1432\begin{Verbatim}[commandchars=@|E,fontsize=\small,frame=single,label=Example] 1433 @gapprompt|gap>E @gapinput|chart:=Chart(ChartType.BAR);E 1434 @gapprompt|gap>E @gapinput|SetAxisXTitle(chart, "X Axis");E 1435 @gapprompt|gap>E @gapinput|AxisXTitle(chart);E 1436 @gapprompt|gap>E @gapinput|SetAxisXDomain(chart, ["domain1", "domain2", "domain3", "domain4", "domain5"]); # default []E 1437 @gapprompt|gap>E @gapinput|AxisXDomain(chart);E 1438 @gapprompt|gap>E @gapinput|SetAxisYTitle(chart, "Y Axis");E 1439 @gapprompt|gap>E @gapinput|AxisYTitle(chart);E 1440 @gapprompt|gap>E @gapinput|data1 := Dataset("data1", [100,20,30,47,90]);E 1441 @gapprompt|gap>E @gapinput|data2 := Dataset("data2", [51,60,72,38,97]);E 1442 @gapprompt|gap>E @gapinput|data3 := Dataset("data3", [50,60,70,80,90]);E 1443 @gapprompt|gap>E @gapinput|Add(chart, [data1, data2, data3]);E 1444 @gapprompt|gap>E @gapinput|Remove(chart, data1);E 1445 @gapprompt|gap>E @gapinput|Add(chart, data1);E 1446 @gapprompt|gap>E @gapinput|Remove(chart, [data2, data3]);E 1447 @gapprompt|gap>E @gapinput|Length(RecNames(chart!.data)) = 1;E 1448\end{Verbatim} 1449 1450 1451 Create a simple \texttt{Chart} of type \texttt{ChartType.LINE}: 1452\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 1453 !gapprompt@gap>| !gapinput@chart:=Chart(ChartType.LINE);| 1454 !gapprompt@gap>| !gapinput@SetAxisXTitle(chart, "X Axis");| 1455 !gapprompt@gap>| !gapinput@SetAxisYTitle(chart, "Y Axis");| 1456 !gapprompt@gap>| !gapinput@data1 := Dataset("data1", [100,20,30,47,90]);| 1457 !gapprompt@gap>| !gapinput@Add(chart, data1);| 1458\end{Verbatim} 1459 1460 1461 Create a simple \texttt{Chart} of type \texttt{ChartType.SCATTER}: 1462\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 1463 !gapprompt@gap>| !gapinput@chart:=Chart(ChartType.SCATTER);| 1464 !gapprompt@gap>| !gapinput@SetAxisXTitle(chart, "X Axis");| 1465 !gapprompt@gap>| !gapinput@SetAxisYTitle(chart, "Y Axis");| 1466 !gapprompt@gap>| !gapinput@data1 := Dataset("data1", [100,20,30,47,90]);| 1467 !gapprompt@gap>| !gapinput@Add(chart, data1);| 1468\end{Verbatim} 1469 1470 1471 } 1472 1473 1474 1475\subsection{\textcolor{Chapter }{Add (for IsChart, IsDataset)}} 1476\logpage{[ 4, 4, 2 ]}\nobreak 1477\hyperdef{L}{X7FF797E479C02620}{} 1478{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsChart[, IsDataset, List(IsDataset)]})\index{Add@\texttt{Add}!for IsChart, IsDataset} 1479\label{Add:for IsChart, IsDataset} 1480}\hfill{\scriptsize (operation)}}\\ 1481\textbf{\indent Returns:\ } 1482\texttt{Chart} 1483 1484 1485 1486 Adds a \texttt{Dataset} to a specific \texttt{Chart}. } 1487 1488 1489 1490\subsection{\textcolor{Chapter }{Remove (for IsChart, IsDataset)}} 1491\logpage{[ 4, 4, 3 ]}\nobreak 1492\hyperdef{L}{X7DC73B2B86139E4E}{} 1493{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsChart[, IsDataset, List(IsDataset)]})\index{Remove@\texttt{Remove}!for IsChart, IsDataset} 1494\label{Remove:for IsChart, IsDataset} 1495}\hfill{\scriptsize (operation)}}\\ 1496\textbf{\indent Returns:\ } 1497\texttt{Chart} 1498 1499 1500 1501 Removes a \texttt{Dataset} from a specific \texttt{Chart}. } 1502 1503 1504 1505\subsection{\textcolor{Chapter }{Dataset (for IsString, IsList)}} 1506\logpage{[ 4, 4, 4 ]}\nobreak 1507\hyperdef{L}{X821615638734756B}{} 1508{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Dataset({\mdseries\slshape IsString(title), IsList(data)})\index{Dataset@\texttt{Dataset}!for IsString, IsList} 1509\label{Dataset:for IsString, IsList} 1510}\hfill{\scriptsize (operation)}}\\ 1511\textbf{\indent Returns:\ } 1512\texttt{Dataset} 1513 1514 1515 1516 Creates a dataset. 1517 1518 } 1519 1520 1521 1522\subsection{\textcolor{Chapter }{DefaultAxis (for IsChartType)}} 1523\logpage{[ 4, 4, 5 ]}\nobreak 1524\hyperdef{L}{X84014BEA7F51EC98}{} 1525{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{DefaultAxis({\mdseries\slshape IsChartType})\index{DefaultAxis@\texttt{DefaultAxis}!for IsChartType} 1526\label{DefaultAxis:for IsChartType} 1527}\hfill{\scriptsize (operation)}}\\ 1528\textbf{\indent Returns:\ } 1529\texttt{rec} 1530 1531 1532 1533 Returns the default settings for a \texttt{ChartType} 1534 1535 } 1536 1537 1538 1539\subsection{\textcolor{Chapter }{XAxis (for IsAxisScaleType, IsString, IsList)}} 1540\logpage{[ 4, 4, 6 ]}\nobreak 1541\hyperdef{L}{X807FBC8A838DE2AF}{} 1542{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{XAxis({\mdseries\slshape IsAxisScaleType, IsString(title), IsList(domain)})\index{XAxis@\texttt{XAxis}!for IsAxisScaleType, IsString, IsList} 1543\label{XAxis:for IsAxisScaleType, IsString, IsList} 1544}\hfill{\scriptsize (operation)}}\\ 1545\textbf{\indent Returns:\ } 1546\texttt{XAxis} 1547 1548 1549 1550 Creates a XAxis 1551 1552 } 1553 1554 1555 1556\subsection{\textcolor{Chapter }{YAxis (for IsAxisScaleType, IsString, IsList)}} 1557\logpage{[ 4, 4, 7 ]}\nobreak 1558\hyperdef{L}{X7EFEC58084FD91A6}{} 1559{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{YAxis({\mdseries\slshape IsAxisScaleType, IsString(title), IsList(domain)})\index{YAxis@\texttt{YAxis}!for IsAxisScaleType, IsString, IsList} 1560\label{YAxis:for IsAxisScaleType, IsString, IsList} 1561}\hfill{\scriptsize (operation)}}\\ 1562\textbf{\indent Returns:\ } 1563\texttt{YAxis} 1564 1565 1566 1567 Creates a YAxis 1568 1569 } 1570 1571 } 1572 1573 1574\section{\textcolor{Chapter }{Global}}\label{Chapter_Francy_Charts_Section_Global} 1575\logpage{[ 4, 5, 0 ]} 1576\hyperdef{L}{X8690E870823975F3}{} 1577{ 1578 In this section we show all Global Chart Francy Records for multi purpose. } 1579 1580 1581\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Charts_Section_Attributes} 1582\logpage{[ 4, 6, 0 ]} 1583\hyperdef{L}{X7C701DBF7BAE649A}{} 1584{ 1585 In this section we show all Francy Attributes 1586 1587\subsection{\textcolor{Chapter }{ShowLegend (for IsChart)}} 1588\logpage{[ 4, 6, 1 ]}\nobreak 1589\hyperdef{L}{X86A952337E156058}{} 1590{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ShowLegend({\mdseries\slshape arg})\index{ShowLegend@\texttt{ShowLegend}!for IsChart} 1591\label{ShowLegend:for IsChart} 1592}\hfill{\scriptsize (attribute)}}\\ 1593\textbf{\indent Returns:\ } 1594\texttt{IsBool} True if enabled otherwise False 1595 1596 1597 1598 \texttt{ShowLegend} is a property that enables or disables the legend in the client 1599implementation. } 1600 1601 1602 1603\subsection{\textcolor{Chapter }{ShowLegend (for IsChart)}} 1604\logpage{[ 4, 6, 2 ]}\nobreak 1605\hyperdef{L}{X86A952337E156058}{} 1606{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ShowLegend({\mdseries\slshape arg1})\index{ShowLegend@\texttt{ShowLegend}!for IsChart} 1607\label{ShowLegend:for IsChart} 1608}\hfill{\scriptsize (function)}}\\ 1609 1610 1611 1612 1613 } 1614 1615 1616 1617\subsection{\textcolor{Chapter }{SetShowLegend (for IsChart, IsBool)}} 1618\logpage{[ 4, 6, 3 ]}\nobreak 1619\hyperdef{L}{X7F755201834DB9A6}{} 1620{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetShowLegend({\mdseries\slshape IsChart, IsBool})\index{SetShowLegend@\texttt{SetShowLegend}!for IsChart, IsBool} 1621\label{SetShowLegend:for IsChart, IsBool} 1622}\hfill{\scriptsize (function)}}\\ 1623 1624 1625 \texttt{ShowLegend} is a property that enables or disables the legend in the client 1626implementation. } 1627 1628 1629 1630\subsection{\textcolor{Chapter }{AxisXTitle (for IsChart)}} 1631\logpage{[ 4, 6, 4 ]}\nobreak 1632\hyperdef{L}{X79F825427AF32645}{} 1633{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AxisXTitle({\mdseries\slshape arg})\index{AxisXTitle@\texttt{AxisXTitle}!for IsChart} 1634\label{AxisXTitle:for IsChart} 1635}\hfill{\scriptsize (attribute)}}\\ 1636\textbf{\indent Returns:\ } 1637\texttt{IsString} with the title of the object 1638 1639 1640 1641 This title is used to display the X Axis Title in the client implementation. } 1642 1643 1644 1645\subsection{\textcolor{Chapter }{AxisXTitle (for IsChart)}} 1646\logpage{[ 4, 6, 5 ]}\nobreak 1647\hyperdef{L}{X79F825427AF32645}{} 1648{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AxisXTitle({\mdseries\slshape arg1})\index{AxisXTitle@\texttt{AxisXTitle}!for IsChart} 1649\label{AxisXTitle:for IsChart} 1650}\hfill{\scriptsize (function)}}\\ 1651 1652 1653 1654 1655 } 1656 1657 1658 1659\subsection{\textcolor{Chapter }{SetAxisXTitle (for IsChart, IsString)}} 1660\logpage{[ 4, 6, 6 ]}\nobreak 1661\hyperdef{L}{X799344B184169C7A}{} 1662{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetAxisXTitle({\mdseries\slshape IsChart, IsString})\index{SetAxisXTitle@\texttt{SetAxisXTitle}!for IsChart, IsString} 1663\label{SetAxisXTitle:for IsChart, IsString} 1664}\hfill{\scriptsize (function)}}\\ 1665 1666 1667 This title is used to display the X Axis Title in the client implementation. } 1668 1669 1670 1671\subsection{\textcolor{Chapter }{AxisYTitle (for IsChart)}} 1672\logpage{[ 4, 6, 7 ]}\nobreak 1673\hyperdef{L}{X870D0E2C792524DE}{} 1674{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AxisYTitle({\mdseries\slshape arg})\index{AxisYTitle@\texttt{AxisYTitle}!for IsChart} 1675\label{AxisYTitle:for IsChart} 1676}\hfill{\scriptsize (attribute)}}\\ 1677\textbf{\indent Returns:\ } 1678\texttt{IsString} with the title of the object 1679 1680 1681 1682 This title is used to display the Y Axis Title in the client implementation. } 1683 1684 1685 1686\subsection{\textcolor{Chapter }{AxisYTitle (for IsChart)}} 1687\logpage{[ 4, 6, 8 ]}\nobreak 1688\hyperdef{L}{X870D0E2C792524DE}{} 1689{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AxisYTitle({\mdseries\slshape arg1})\index{AxisYTitle@\texttt{AxisYTitle}!for IsChart} 1690\label{AxisYTitle:for IsChart} 1691}\hfill{\scriptsize (function)}}\\ 1692 1693 1694 1695 1696 } 1697 1698 1699 1700\subsection{\textcolor{Chapter }{SetAxisYTitle (for IsChart, IsString)}} 1701\logpage{[ 4, 6, 9 ]}\nobreak 1702\hyperdef{L}{X7F7B850578DC3C73}{} 1703{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetAxisYTitle({\mdseries\slshape IsChart, IsString})\index{SetAxisYTitle@\texttt{SetAxisYTitle}!for IsChart, IsString} 1704\label{SetAxisYTitle:for IsChart, IsString} 1705}\hfill{\scriptsize (function)}}\\ 1706 1707 1708 This title is used to display the Y Axis Title in the client implementation. } 1709 1710 1711 1712\subsection{\textcolor{Chapter }{AxisXDomain (for IsChart)}} 1713\logpage{[ 4, 6, 10 ]}\nobreak 1714\hyperdef{L}{X7A66A1197B986866}{} 1715{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AxisXDomain({\mdseries\slshape arg})\index{AxisXDomain@\texttt{AxisXDomain}!for IsChart} 1716\label{AxisXDomain:for IsChart} 1717}\hfill{\scriptsize (attribute)}}\\ 1718\textbf{\indent Returns:\ } 1719\texttt{IsList} 1720 1721 1722 1723 This is the domain of the X Axis values in the client implementation. } 1724 1725 1726 1727\subsection{\textcolor{Chapter }{AxisXDomain (for IsChart)}} 1728\logpage{[ 4, 6, 11 ]}\nobreak 1729\hyperdef{L}{X7A66A1197B986866}{} 1730{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AxisXDomain({\mdseries\slshape arg1})\index{AxisXDomain@\texttt{AxisXDomain}!for IsChart} 1731\label{AxisXDomain:for IsChart} 1732}\hfill{\scriptsize (function)}}\\ 1733 1734 1735 1736 1737 } 1738 1739 1740 1741\subsection{\textcolor{Chapter }{SetAxisXDomain (for IsChart, IsList)}} 1742\logpage{[ 4, 6, 12 ]}\nobreak 1743\hyperdef{L}{X7A7FCC2D868792E1}{} 1744{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetAxisXDomain({\mdseries\slshape IsList, IsList})\index{SetAxisXDomain@\texttt{SetAxisXDomain}!for IsChart, IsList} 1745\label{SetAxisXDomain:for IsChart, IsList} 1746}\hfill{\scriptsize (function)}}\\ 1747 1748 1749 This is the domain of the X Axis values in the client implementation. } 1750 1751 } 1752 1753 } 1754 1755 1756\chapter{\textcolor{Chapter }{Francy Core}}\label{Chapter_Francy_Core} 1757\logpage{[ 5, 0, 0 ]} 1758\hyperdef{L}{X86477B3A7A51FF2F}{} 1759{ 1760 1761 1762 Francy is responsible for generating JSON metadata which allows external tools 1763/ libraries / frameworks to add a visual representation. This JSON 1764representation defines the contract between this package (server) and a GUI 1765framework (client), this enables complete SoC (Separation of Concerns). Francy 1766can be used to provide a graphical interactive environment on existing GAP 1767packages. 1768 1769 A JSON schema is present and can be used to produce clients for this package. \emph{See schema/francy.json} 1770 1771 To map required / optional attributes from the schema into GAP code, the 1772implementation follows the following criteria: 1773\begin{itemize} 1774\item Object creation requests mandatory attributes, i.e. required with no default 1775value, e.g. canvas:=Canvas("Title") 1776\item Object creation accepts an object of defaults, i.e. default values for 1777mandatory fields but that might repeat througout the creation of multiple 1778similar objects, e.g. defaults:=DefaultCanvas; defaults!.zoomToFit:=false; 1779canvas:=Canvas("Title",defaults); Where DefaultCanvas contains defaults for 1780width (800) and height (600) 1781\item Attributes associated with the object that can be set, .i.e. optional with no 1782defaults, e.g. canvas:=Canvas("Title"); SetTexTypesetting(canvas,true); 1783\end{itemize} 1784 The API follows a common convention and adding objects to other objects is 1785done using Add(objectHolder,object) 1786 1787 Although Francy has the concept of a \texttt{Graph}, it does not implement any Mathematics Graphs Theory. 1788 1789 Please see Francy-JS for client implementation. 1790\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Core_Section_Categories} 1791\logpage{[ 5, 1, 0 ]} 1792\hyperdef{L}{X7CC6903E78F24167}{} 1793{ 1794 In this section we show all Francy Core Categories. 1795 1796\subsection{\textcolor{Chapter }{IsFrancyObject (for IsObject)}} 1797\logpage{[ 5, 1, 1 ]}\nobreak 1798\hyperdef{L}{X847E2E8B80386B5A}{} 1799{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyObject({\mdseries\slshape arg})\index{IsFrancyObject@\texttt{IsFrancyObject}!for IsObject} 1800\label{IsFrancyObject:for IsObject} 1801}\hfill{\scriptsize (filter)}}\\ 1802\textbf{\indent Returns:\ } 1803\texttt{true} or \texttt{false} 1804 1805 1806 1807 Identifies all \texttt{Objects} in Francy. } 1808 1809 1810 1811\subsection{\textcolor{Chapter }{IsFrancyDefaultObject (for IsObject)}} 1812\logpage{[ 5, 1, 2 ]}\nobreak 1813\hyperdef{L}{X8223C52A839E3265}{} 1814{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyDefaultObject({\mdseries\slshape arg})\index{IsFrancyDefaultObject@\texttt{IsFrancyDefaultObject}!for IsObject} 1815\label{IsFrancyDefaultObject:for IsObject} 1816}\hfill{\scriptsize (filter)}}\\ 1817\textbf{\indent Returns:\ } 1818\texttt{true} or \texttt{false} 1819 1820 1821 1822 Identifies all Default records in Francy. } 1823 1824 1825 1826\subsection{\textcolor{Chapter }{IsFrancyTypeObject (for IsObject)}} 1827\logpage{[ 5, 1, 3 ]}\nobreak 1828\hyperdef{L}{X7F1E4EE7848C23E4}{} 1829{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyTypeObject({\mdseries\slshape arg})\index{IsFrancyTypeObject@\texttt{IsFrancyTypeObject}!for IsObject} 1830\label{IsFrancyTypeObject:for IsObject} 1831}\hfill{\scriptsize (filter)}}\\ 1832\textbf{\indent Returns:\ } 1833\texttt{true} or \texttt{false} 1834 1835 1836 1837 Identifies all Type records in Francy. } 1838 1839 } 1840 1841 1842\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Core_Section_Families} 1843\logpage{[ 5, 2, 0 ]} 1844\hyperdef{L}{X846063757EC05986}{} 1845{ 1846 In this section we show all Francy Core Families. } 1847 1848 1849\section{\textcolor{Chapter }{Global}}\label{Chapter_Francy_Core_Section_Global} 1850\logpage{[ 5, 3, 0 ]} 1851\hyperdef{L}{X8690E870823975F3}{} 1852{ 1853 In this section we show all Francy Core Types } 1854 1855 1856\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Core_Section_Attributes} 1857\logpage{[ 5, 4, 0 ]} 1858\hyperdef{L}{X7C701DBF7BAE649A}{} 1859{ 1860 In this section we show all Francy Core Attributes 1861 1862\subsection{\textcolor{Chapter }{FrancyId (for IsFrancyObject)}} 1863\logpage{[ 5, 4, 1 ]}\nobreak 1864\hyperdef{L}{X7D25B5408731F6F3}{} 1865{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{FrancyId({\mdseries\slshape arg})\index{FrancyId@\texttt{FrancyId}!for IsFrancyObject} 1866\label{FrancyId:for IsFrancyObject} 1867}\hfill{\scriptsize (attribute)}}\\ 1868\textbf{\indent Returns:\ } 1869\texttt{IsString} with the id of the object 1870 1871 1872 1873 All Objects created in Francy have a generated identifier. } 1874 1875 1876 1877\subsection{\textcolor{Chapter }{FrancyId (for IsFrancyObject)}} 1878\logpage{[ 5, 4, 2 ]}\nobreak 1879\hyperdef{L}{X7D25B5408731F6F3}{} 1880{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{FrancyId({\mdseries\slshape arg1})\index{FrancyId@\texttt{FrancyId}!for IsFrancyObject} 1881\label{FrancyId:for IsFrancyObject} 1882}\hfill{\scriptsize (function)}}\\ 1883\textbf{\indent Returns:\ } 1884\texttt{IsString} with the id of the object 1885 1886 1887 1888 Prints the object unique identifier. } 1889 1890 1891 1892\subsection{\textcolor{Chapter }{SetFrancyId (for IsFrancyObject, IsString)}} 1893\logpage{[ 5, 4, 3 ]}\nobreak 1894\hyperdef{L}{X87C8E31387383A61}{} 1895{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetFrancyId({\mdseries\slshape o, s})\index{SetFrancyId@\texttt{SetFrancyId}!for IsFrancyObject, IsString} 1896\label{SetFrancyId:for IsFrancyObject, IsString} 1897}\hfill{\scriptsize (function)}}\\ 1898 1899 1900 Use with care! Changing the unique ID might be useful in certain cases, but 1901bare in mind it might cause unexpected behavior if you're not sure about! } 1902 1903 } 1904 1905 } 1906 1907 1908\chapter{\textcolor{Chapter }{Francy Graphs}}\label{Chapter_Francy_Graphs} 1909\logpage{[ 6, 0, 0 ]} 1910\hyperdef{L}{X78CA6E5887373DA8}{} 1911{ 1912 It is possible to build \texttt{Graphs}, direct or indirect. 1913 1914 Please see examples section. 1915 1916 Please see Francy-JS for client implementation. 1917\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Graphs_Section_Categories} 1918\logpage{[ 6, 1, 0 ]} 1919\hyperdef{L}{X7CC6903E78F24167}{} 1920{ 1921 In this section we show all Francy Graph Categories. 1922 1923\subsection{\textcolor{Chapter }{IsFrancyGraph (for IsFrancyObject)}} 1924\logpage{[ 6, 1, 1 ]}\nobreak 1925\hyperdef{L}{X7806CCD67F4EB260}{} 1926{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyGraph({\mdseries\slshape arg})\index{IsFrancyGraph@\texttt{IsFrancyGraph}!for IsFrancyObject} 1927\label{IsFrancyGraph:for IsFrancyObject} 1928}\hfill{\scriptsize (filter)}}\\ 1929\textbf{\indent Returns:\ } 1930\texttt{true} or \texttt{false} 1931 1932 1933 1934 Identifies \texttt{Graph} objects. } 1935 1936 1937 1938\subsection{\textcolor{Chapter }{IsFrancyGraphType (for IsFrancyObject)}} 1939\logpage{[ 6, 1, 2 ]}\nobreak 1940\hyperdef{L}{X87CD35308569DAE1}{} 1941{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyGraphType({\mdseries\slshape arg})\index{IsFrancyGraphType@\texttt{IsFrancyGraphType}!for IsFrancyObject} 1942\label{IsFrancyGraphType:for IsFrancyObject} 1943}\hfill{\scriptsize (filter)}}\\ 1944\textbf{\indent Returns:\ } 1945\texttt{true} or \texttt{false} 1946 1947 1948 1949 Identifies \texttt{GraphType} objects. } 1950 1951 1952 1953\subsection{\textcolor{Chapter }{IsFrancyGraphDefaults (for IsFrancyDefaultObject)}} 1954\logpage{[ 6, 1, 3 ]}\nobreak 1955\hyperdef{L}{X7D895F0886106B52}{} 1956{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyGraphDefaults({\mdseries\slshape arg})\index{IsFrancyGraphDefaults@\texttt{IsFrancyGraphDefaults}!for IsFrancyDefaultObject} 1957\label{IsFrancyGraphDefaults:for IsFrancyDefaultObject} 1958}\hfill{\scriptsize (filter)}}\\ 1959\textbf{\indent Returns:\ } 1960\texttt{true} or \texttt{false} 1961 1962 1963 1964 Identifies \texttt{GraphDefaults} objects. } 1965 1966 1967 1968\subsection{\textcolor{Chapter }{IsShape (for IsFrancyObject)}} 1969\logpage{[ 6, 1, 4 ]}\nobreak 1970\hyperdef{L}{X85CE7A9B82029355}{} 1971{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsShape({\mdseries\slshape arg})\index{IsShape@\texttt{IsShape}!for IsFrancyObject} 1972\label{IsShape:for IsFrancyObject} 1973}\hfill{\scriptsize (filter)}}\\ 1974\textbf{\indent Returns:\ } 1975\texttt{true} or \texttt{false} 1976 1977 1978 1979 Identifies \texttt{Shape} objects. } 1980 1981 1982 1983\subsection{\textcolor{Chapter }{IsShapeType (for IsFrancyObject)}} 1984\logpage{[ 6, 1, 5 ]}\nobreak 1985\hyperdef{L}{X8424B5618458E11A}{} 1986{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsShapeType({\mdseries\slshape arg})\index{IsShapeType@\texttt{IsShapeType}!for IsFrancyObject} 1987\label{IsShapeType:for IsFrancyObject} 1988}\hfill{\scriptsize (filter)}}\\ 1989\textbf{\indent Returns:\ } 1990\texttt{true} or \texttt{false} 1991 1992 1993 1994 Identifies \texttt{ShapeType} objects. } 1995 1996 1997 1998\subsection{\textcolor{Chapter }{IsShapeDefaults (for IsFrancyDefaultObject)}} 1999\logpage{[ 6, 1, 6 ]}\nobreak 2000\hyperdef{L}{X793EF06E7B94E24E}{} 2001{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsShapeDefaults({\mdseries\slshape arg})\index{IsShapeDefaults@\texttt{IsShapeDefaults}!for IsFrancyDefaultObject} 2002\label{IsShapeDefaults:for IsFrancyDefaultObject} 2003}\hfill{\scriptsize (filter)}}\\ 2004\textbf{\indent Returns:\ } 2005\texttt{true} or \texttt{false} 2006 2007 2008 2009 Identifies \texttt{ShapeDefaults} objects. } 2010 2011 2012 2013\subsection{\textcolor{Chapter }{IsLink (for IsFrancyObject)}} 2014\logpage{[ 6, 1, 7 ]}\nobreak 2015\hyperdef{L}{X8535990579CB5DAC}{} 2016{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsLink({\mdseries\slshape arg})\index{IsLink@\texttt{IsLink}!for IsFrancyObject} 2017\label{IsLink:for IsFrancyObject} 2018}\hfill{\scriptsize (filter)}}\\ 2019\textbf{\indent Returns:\ } 2020\texttt{true} or \texttt{false} 2021 2022 2023 2024 Identifies \texttt{Link} objects. } 2025 2026 2027 2028\subsection{\textcolor{Chapter }{IsLinkDefaults (for IsFrancyDefaultObject)}} 2029\logpage{[ 6, 1, 8 ]}\nobreak 2030\hyperdef{L}{X849B921B7F2F5D3C}{} 2031{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsLinkDefaults({\mdseries\slshape arg})\index{IsLinkDefaults@\texttt{IsLinkDefaults}!for IsFrancyDefaultObject} 2032\label{IsLinkDefaults:for IsFrancyDefaultObject} 2033}\hfill{\scriptsize (filter)}}\\ 2034\textbf{\indent Returns:\ } 2035\texttt{true} or \texttt{false} 2036 2037 2038 2039 Identifies \texttt{LinkDefaults} objects. } 2040 2041 } 2042 2043 2044\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Graphs_Section_Families} 2045\logpage{[ 6, 2, 0 ]} 2046\hyperdef{L}{X846063757EC05986}{} 2047{ 2048 In this section we show all Francy Graph Families. } 2049 2050 2051\section{\textcolor{Chapter }{Representations}}\label{Chapter_Francy_Graphs_Section_Representations} 2052\logpage{[ 6, 3, 0 ]} 2053\hyperdef{L}{X7EABCC537D3BC549}{} 2054{ 2055 In this section we show all Francy Graph Representations. 2056 2057\subsection{\textcolor{Chapter }{IsFrancyGraphRep (for IsComponentObjectRep)}} 2058\logpage{[ 6, 3, 1 ]}\nobreak 2059\hyperdef{L}{X7FBB2ED67A91B1F6}{} 2060{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyGraphRep({\mdseries\slshape arg})\index{IsFrancyGraphRep@\texttt{IsFrancyGraphRep}!for IsComponentObjectRep} 2061\label{IsFrancyGraphRep:for IsComponentObjectRep} 2062}\hfill{\scriptsize (filter)}}\\ 2063\textbf{\indent Returns:\ } 2064\texttt{true} or \texttt{false} 2065 2066 2067 2068 Checks whether an \texttt{Object} has a \texttt{Graph} internal representation. } 2069 2070 2071 2072\subsection{\textcolor{Chapter }{IsFrancyGraphDefaultsRep (for IsComponentObjectRep)}} 2073\logpage{[ 6, 3, 2 ]}\nobreak 2074\hyperdef{L}{X7998221386C4DBA0}{} 2075{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyGraphDefaultsRep({\mdseries\slshape arg})\index{IsFrancyGraphDefaultsRep@\texttt{IsFrancyGraphDefaultsRep}!for IsComponentObjectRep} 2076\label{IsFrancyGraphDefaultsRep:for IsComponentObjectRep} 2077}\hfill{\scriptsize (filter)}}\\ 2078\textbf{\indent Returns:\ } 2079\texttt{true} or \texttt{false} 2080 2081 2082 2083 Checks whether an \texttt{Object} has a \texttt{GraphDefaults} internal representation. } 2084 2085 2086 2087\subsection{\textcolor{Chapter }{IsFrancyGraphTypeRep (for IsComponentObjectRep)}} 2088\logpage{[ 6, 3, 3 ]}\nobreak 2089\hyperdef{L}{X7F60FE3F8620C142}{} 2090{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyGraphTypeRep({\mdseries\slshape arg})\index{IsFrancyGraphTypeRep@\texttt{IsFrancyGraphTypeRep}!for IsComponentObjectRep} 2091\label{IsFrancyGraphTypeRep:for IsComponentObjectRep} 2092}\hfill{\scriptsize (filter)}}\\ 2093\textbf{\indent Returns:\ } 2094\texttt{true} or \texttt{false} 2095 2096 2097 2098 Checks whether an \texttt{Object} has a \texttt{GraphType} internal representation. } 2099 2100 2101 2102\subsection{\textcolor{Chapter }{IsShapeRep (for IsComponentObjectRep)}} 2103\logpage{[ 6, 3, 4 ]}\nobreak 2104\hyperdef{L}{X854F96047963F6FC}{} 2105{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsShapeRep({\mdseries\slshape arg})\index{IsShapeRep@\texttt{IsShapeRep}!for IsComponentObjectRep} 2106\label{IsShapeRep:for IsComponentObjectRep} 2107}\hfill{\scriptsize (filter)}}\\ 2108\textbf{\indent Returns:\ } 2109\texttt{true} or \texttt{false} 2110 2111 2112 2113 Checks whether an \texttt{Object} has a \texttt{Shape} internal representation. } 2114 2115 2116 2117\subsection{\textcolor{Chapter }{IsShapeDefaultsRep (for IsComponentObjectRep)}} 2118\logpage{[ 6, 3, 5 ]}\nobreak 2119\hyperdef{L}{X79A97344830D8E8C}{} 2120{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsShapeDefaultsRep({\mdseries\slshape arg})\index{IsShapeDefaultsRep@\texttt{IsShapeDefaultsRep}!for IsComponentObjectRep} 2121\label{IsShapeDefaultsRep:for IsComponentObjectRep} 2122}\hfill{\scriptsize (filter)}}\\ 2123\textbf{\indent Returns:\ } 2124\texttt{true} or \texttt{false} 2125 2126 2127 2128 Checks whether an \texttt{Object} has a \texttt{ShapeDeafults} internal representation. } 2129 2130 2131 2132\subsection{\textcolor{Chapter }{IsShapeTypeRep (for IsComponentObjectRep)}} 2133\logpage{[ 6, 3, 6 ]}\nobreak 2134\hyperdef{L}{X865567BF7B5CA57E}{} 2135{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsShapeTypeRep({\mdseries\slshape arg})\index{IsShapeTypeRep@\texttt{IsShapeTypeRep}!for IsComponentObjectRep} 2136\label{IsShapeTypeRep:for IsComponentObjectRep} 2137}\hfill{\scriptsize (filter)}}\\ 2138\textbf{\indent Returns:\ } 2139\texttt{true} or \texttt{false} 2140 2141 2142 2143 Checks whether an \texttt{Object} has a \texttt{ShapeType} internal representation. } 2144 2145 2146 2147\subsection{\textcolor{Chapter }{IsLinkRep (for IsComponentObjectRep)}} 2148\logpage{[ 6, 3, 7 ]}\nobreak 2149\hyperdef{L}{X7841EC887ECC274F}{} 2150{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsLinkRep({\mdseries\slshape arg})\index{IsLinkRep@\texttt{IsLinkRep}!for IsComponentObjectRep} 2151\label{IsLinkRep:for IsComponentObjectRep} 2152}\hfill{\scriptsize (filter)}}\\ 2153\textbf{\indent Returns:\ } 2154\texttt{true} or \texttt{false} 2155 2156 2157 2158 Checks whether an \texttt{Object} has a \texttt{Link} internal representation. } 2159 2160 2161 2162\subsection{\textcolor{Chapter }{IsLinkDefaultsRep (for IsComponentObjectRep)}} 2163\logpage{[ 6, 3, 8 ]}\nobreak 2164\hyperdef{L}{X854E4BD67B712165}{} 2165{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsLinkDefaultsRep({\mdseries\slshape arg})\index{IsLinkDefaultsRep@\texttt{IsLinkDefaultsRep}!for IsComponentObjectRep} 2166\label{IsLinkDefaultsRep:for IsComponentObjectRep} 2167}\hfill{\scriptsize (filter)}}\\ 2168\textbf{\indent Returns:\ } 2169\texttt{true} or \texttt{false} 2170 2171 2172 2173 Checks whether an \texttt{Object} has a \texttt{LinkDeafults} internal representation. } 2174 2175 } 2176 2177 2178\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Graphs_Section_Operations} 2179\logpage{[ 6, 4, 0 ]} 2180\hyperdef{L}{X7DE8E16C7C2D387B}{} 2181{ 2182 In this section we show all Francy Graph Operations. 2183 2184\subsection{\textcolor{Chapter }{Graph (for IsFrancyGraphType, IsFrancyGraphDefaults)}} 2185\logpage{[ 6, 4, 1 ]}\nobreak 2186\hyperdef{L}{X87510C7F82CAE1B2}{} 2187{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Graph({\mdseries\slshape IsFrancyGraphType[, IsFrancyGraphDefaults]})\index{Graph@\texttt{Graph}!for IsFrancyGraphType, IsFrancyGraphDefaults} 2188\label{Graph:for IsFrancyGraphType, IsFrancyGraphDefaults} 2189}\hfill{\scriptsize (operation)}}\\ 2190\textbf{\indent Returns:\ } 2191\texttt{Graph} 2192 2193 2194 2195 Every object to draw will be a subclass of this object. This will allow all 2196the objects to contain the same base information. 2197 2198 Examples: 2199 2200 Create a simple \texttt{Graph} of type \texttt{GraphType.DIRECTED} and simple \texttt{Shapes} connected with \texttt{Links}: 2201\begin{Verbatim}[commandchars=@|B,fontsize=\small,frame=single,label=Example] 2202 @gapprompt|gap>B @gapinput|graph := Graph(GraphType.DIRECTED);B 2203 @gapprompt|gap>B @gapinput|SetSimulation(graph, false);B 2204 @gapprompt|gap>B @gapinput|shape1 := Shape(ShapeType.SQUARE);B 2205 @gapprompt|gap>B @gapinput|shape1!.layer := 1;B 2206 @gapprompt|gap>B @gapinput|shape2 := Shape(ShapeType.TRIANGLE);B 2207 @gapprompt|gap>B @gapinput|shape2!.layer := 3;B 2208 @gapprompt|gap>B @gapinput|link := Link(shape1, shape2);B 2209 @gapprompt|gap>B @gapinput|Add(graph, link);B 2210 @gapprompt|gap>B @gapinput|Add(graph, [shape1, shape2]);B 2211\end{Verbatim} 2212 2213 2214 Create a simple \texttt{Graph} of type \texttt{GraphType.UNDIRECTED} and a simple \texttt{Shape} with a \texttt{TriggerEvent.RIGHT{\textunderscore}CLICK} \texttt{Callback}: 2215\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] 2216 !gapprompt@gap>| !gapinput@graph := Graph(GraphType.UNDIRECTED);| 2217 !gapprompt@gap>| !gapinput@shape := Shape(ShapeType.SQUARE);| 2218 !gapprompt@gap>| !gapinput@MyFunction := function() Add(graph, Shape(ShapeType.Circle)); return graph; end;| 2219 !gapprompt@gap>| !gapinput@callback := Callback(TriggerType.RIGHT_CLICK, MyFunction);| 2220 !gapprompt@gap>| !gapinput@Add(shape, callback);| 2221 !gapprompt@gap>| !gapinput@Add(graph, shape);| 2222\end{Verbatim} 2223 2224 2225 } 2226 2227 2228 2229\subsection{\textcolor{Chapter }{UnsetNodes (for IsFrancyGraph)}} 2230\logpage{[ 6, 4, 2 ]}\nobreak 2231\hyperdef{L}{X7A5B92FD8060E2E8}{} 2232{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{UnsetNodes({\mdseries\slshape arg})\index{UnsetNodes@\texttt{UnsetNodes}!for IsFrancyGraph} 2233\label{UnsetNodes:for IsFrancyGraph} 2234}\hfill{\scriptsize (operation)}}\\ 2235 2236 2237 Removes all nodes from gaph } 2238 2239 2240 2241\subsection{\textcolor{Chapter }{UnsetLinks (for IsFrancyGraph)}} 2242\logpage{[ 6, 4, 3 ]}\nobreak 2243\hyperdef{L}{X7E210E5D871147DE}{} 2244{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{UnsetLinks({\mdseries\slshape arg})\index{UnsetLinks@\texttt{UnsetLinks}!for IsFrancyGraph} 2245\label{UnsetLinks:for IsFrancyGraph} 2246}\hfill{\scriptsize (operation)}}\\ 2247 2248 2249 Removes all nodes from gaph } 2250 2251 2252 2253\subsection{\textcolor{Chapter }{Add (for IsFrancyGraph, IsLink)}} 2254\logpage{[ 6, 4, 4 ]}\nobreak 2255\hyperdef{L}{X7ABC7BC987B81777}{} 2256{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsFrancyGraph[, IsLink, List(IsLink)]})\index{Add@\texttt{Add}!for IsFrancyGraph, IsLink} 2257\label{Add:for IsFrancyGraph, IsLink} 2258}\hfill{\scriptsize (operation)}}\\ 2259\textbf{\indent Returns:\ } 2260\texttt{Graph} 2261 2262 2263 2264 Add \texttt{IsLink} to a specific \texttt{Graph}. } 2265 2266 2267 2268\subsection{\textcolor{Chapter }{Remove (for IsFrancyGraph, IsLink)}} 2269\logpage{[ 6, 4, 5 ]}\nobreak 2270\hyperdef{L}{X7978AEF88748A068}{} 2271{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsFrancyGraph[, IsLink, List(IsLink)]})\index{Remove@\texttt{Remove}!for IsFrancyGraph, IsLink} 2272\label{Remove:for IsFrancyGraph, IsLink} 2273}\hfill{\scriptsize (operation)}}\\ 2274\textbf{\indent Returns:\ } 2275\texttt{Graph} 2276 2277 2278 2279 Remove \texttt{IsLink} from a specific \texttt{Graph}. } 2280 2281 2282 2283\subsection{\textcolor{Chapter }{Add (for IsFrancyGraph, IsShape)}} 2284\logpage{[ 6, 4, 6 ]}\nobreak 2285\hyperdef{L}{X7A2C8F337BB5026D}{} 2286{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsFrancyGraph[, IsShape, List(IsShape)]})\index{Add@\texttt{Add}!for IsFrancyGraph, IsShape} 2287\label{Add:for IsFrancyGraph, IsShape} 2288}\hfill{\scriptsize (operation)}}\\ 2289\textbf{\indent Returns:\ } 2290\texttt{Graph} 2291 2292 2293 2294 Add \texttt{IsShape} to a specific \texttt{Graph}. } 2295 2296 2297 2298\subsection{\textcolor{Chapter }{Remove (for IsFrancyGraph, IsShape)}} 2299\logpage{[ 6, 4, 7 ]}\nobreak 2300\hyperdef{L}{X821273BA7F4DA924}{} 2301{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsFrancyGraph[, IsShape, List(IsShape)]})\index{Remove@\texttt{Remove}!for IsFrancyGraph, IsShape} 2302\label{Remove:for IsFrancyGraph, IsShape} 2303}\hfill{\scriptsize (operation)}}\\ 2304\textbf{\indent Returns:\ } 2305\texttt{Graph} 2306 2307 2308 2309 Remove \texttt{IsShape} from a specific \texttt{Graph}. } 2310 2311 2312 2313\subsection{\textcolor{Chapter }{Shape (for IsShapeType, IsString, IsShapeDefaults)}} 2314\logpage{[ 6, 4, 8 ]}\nobreak 2315\hyperdef{L}{X7D357B107D4949D1}{} 2316{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Shape({\mdseries\slshape IsShapeType[, IsString(title), IsShapeDefaults]})\index{Shape@\texttt{Shape}!for IsShapeType, IsString, IsShapeDefaults} 2317\label{Shape:for IsShapeType, IsString, IsShapeDefaults} 2318}\hfill{\scriptsize (operation)}}\\ 2319\textbf{\indent Returns:\ } 2320\texttt{Shape} 2321 2322 2323 2324 Every object to draw will be a subclass of this object. This will allow all 2325the objects to contain the same base information. 2326 2327 } 2328 2329 2330 2331\subsection{\textcolor{Chapter }{GetShape (for IsFrancyGraph, IsString)}} 2332\logpage{[ 6, 4, 9 ]}\nobreak 2333\hyperdef{L}{X83660FEB862437FB}{} 2334{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GetShape({\mdseries\slshape IsFrancyGraph, IsString})\index{GetShape@\texttt{GetShape}!for IsFrancyGraph, IsString} 2335\label{GetShape:for IsFrancyGraph, IsString} 2336}\hfill{\scriptsize (operation)}}\\ 2337\textbf{\indent Returns:\ } 2338\texttt{Shape} 2339 2340 2341 2342 Gets a \texttt{Shape} node from a graph by ID. } 2343 2344 2345 2346\subsection{\textcolor{Chapter }{GetShapes (for IsFrancyGraph)}} 2347\logpage{[ 6, 4, 10 ]}\nobreak 2348\hyperdef{L}{X7C4C5CDB87B3749B}{} 2349{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GetShapes({\mdseries\slshape IsFrancyGraph, IsString})\index{GetShapes@\texttt{GetShapes}!for IsFrancyGraph} 2350\label{GetShapes:for IsFrancyGraph} 2351}\hfill{\scriptsize (operation)}}\\ 2352\textbf{\indent Returns:\ } 2353\texttt{List(Shape)} 2354 2355 2356 2357 Gets a \texttt{Shape} node from a graph by ID. } 2358 2359 2360 2361\subsection{\textcolor{Chapter }{Add (for IsShape, IsMenu)}} 2362\logpage{[ 6, 4, 11 ]}\nobreak 2363\hyperdef{L}{X7EF659877F394CA8}{} 2364{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsShape[, IsMenu, List(IsMenu)]})\index{Add@\texttt{Add}!for IsShape, IsMenu} 2365\label{Add:for IsShape, IsMenu} 2366}\hfill{\scriptsize (operation)}}\\ 2367\textbf{\indent Returns:\ } 2368\texttt{Shape} 2369 2370 2371 2372 Add \texttt{Menu} to a specific \texttt{Shape}. } 2373 2374 2375 2376\subsection{\textcolor{Chapter }{Remove (for IsShape, IsMenu)}} 2377\logpage{[ 6, 4, 12 ]}\nobreak 2378\hyperdef{L}{X85BF74EF7F7666CC}{} 2379{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsShape[, IsMenu, List(IsMenu)]})\index{Remove@\texttt{Remove}!for IsShape, IsMenu} 2380\label{Remove:for IsShape, IsMenu} 2381}\hfill{\scriptsize (operation)}}\\ 2382\textbf{\indent Returns:\ } 2383\texttt{Shape} 2384 2385 2386 2387 Remove \texttt{Menu} from a specific \texttt{Shape}. } 2388 2389 2390 2391\subsection{\textcolor{Chapter }{Add (for IsShape, IsCallback)}} 2392\logpage{[ 6, 4, 13 ]}\nobreak 2393\hyperdef{L}{X7DDA822185BE37C7}{} 2394{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsShape[, IsCallback, List(IsCallback)]})\index{Add@\texttt{Add}!for IsShape, IsCallback} 2395\label{Add:for IsShape, IsCallback} 2396}\hfill{\scriptsize (operation)}}\\ 2397\textbf{\indent Returns:\ } 2398\texttt{Shape} 2399 2400 2401 2402 Add \texttt{Callback} to a specific \texttt{Shape}. } 2403 2404 2405 2406\subsection{\textcolor{Chapter }{Remove (for IsShape, IsCallback)}} 2407\logpage{[ 6, 4, 14 ]}\nobreak 2408\hyperdef{L}{X86EED52F83DD8267}{} 2409{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsShape[, IsCallback, List(IsCallback)]})\index{Remove@\texttt{Remove}!for IsShape, IsCallback} 2410\label{Remove:for IsShape, IsCallback} 2411}\hfill{\scriptsize (operation)}}\\ 2412\textbf{\indent Returns:\ } 2413\texttt{Shape} 2414 2415 2416 2417 Remove \texttt{Callback} from a specific \texttt{Shape}. } 2418 2419 2420 2421\subsection{\textcolor{Chapter }{Add (for IsShape, IsFrancyMessage)}} 2422\logpage{[ 6, 4, 15 ]}\nobreak 2423\hyperdef{L}{X7D44790C7E3DD809}{} 2424{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsShape[, IsFrancyMessage, List(IsFrancyMessage)]})\index{Add@\texttt{Add}!for IsShape, IsFrancyMessage} 2425\label{Add:for IsShape, IsFrancyMessage} 2426}\hfill{\scriptsize (operation)}}\\ 2427\textbf{\indent Returns:\ } 2428\texttt{Shape} 2429 2430 2431 2432 Add \texttt{Callback} to a specific \texttt{Shape}. } 2433 2434 2435 2436\subsection{\textcolor{Chapter }{Remove (for IsShape, IsFrancyMessage)}} 2437\logpage{[ 6, 4, 16 ]}\nobreak 2438\hyperdef{L}{X854D516B7E81D53F}{} 2439{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsShape[, IsFrancyMessage, List(IsFrancyMessage)]})\index{Remove@\texttt{Remove}!for IsShape, IsFrancyMessage} 2440\label{Remove:for IsShape, IsFrancyMessage} 2441}\hfill{\scriptsize (operation)}}\\ 2442\textbf{\indent Returns:\ } 2443\texttt{Shape} 2444 2445 2446 2447 Remove \texttt{Callback} from a specific \texttt{Shape}. } 2448 2449 2450 2451\subsection{\textcolor{Chapter }{Link (for IsShape, IsShape, IsLinkDefaults)}} 2452\logpage{[ 6, 4, 17 ]}\nobreak 2453\hyperdef{L}{X7A324F527BCA3207}{} 2454{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Link({\mdseries\slshape IsShape, IsShape})\index{Link@\texttt{Link}!for IsShape, IsShape, IsLinkDefaults} 2455\label{Link:for IsShape, IsShape, IsLinkDefaults} 2456}\hfill{\scriptsize (operation)}}\\ 2457\textbf{\indent Returns:\ } 2458\texttt{Link} 2459 2460 2461 2462 Creates a \texttt{Link} between the two \texttt{Shape}. 2463 2464 } 2465 2466 2467 2468\subsection{\textcolor{Chapter }{Links (for IsList, IsList, IsLinkDefaults)}} 2469\logpage{[ 6, 4, 18 ]}\nobreak 2470\hyperdef{L}{X7E90E1F17F599D08}{} 2471{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Links({\mdseries\slshape List(IsShape), List(IsShape)})\index{Links@\texttt{Links}!for IsList, IsList, IsLinkDefaults} 2472\label{Links:for IsList, IsList, IsLinkDefaults} 2473}\hfill{\scriptsize (operation)}}\\ 2474\textbf{\indent Returns:\ } 2475\texttt{List(Link)} 2476 2477 2478 2479 Creates a \texttt{Link} between the \texttt{Shape} of the first list and the second list. 2480 2481 } 2482 2483 2484 2485\subsection{\textcolor{Chapter }{GetLink (for IsFrancyGraph, IsString)}} 2486\logpage{[ 6, 4, 19 ]}\nobreak 2487\hyperdef{L}{X8273378F7F00BF6A}{} 2488{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GetLink({\mdseries\slshape IsFrancyGraph, IsString})\index{GetLink@\texttt{GetLink}!for IsFrancyGraph, IsString} 2489\label{GetLink:for IsFrancyGraph, IsString} 2490}\hfill{\scriptsize (operation)}}\\ 2491\textbf{\indent Returns:\ } 2492\texttt{Link} 2493 2494 2495 2496 Gets a \texttt{Link} from a graph by ID. } 2497 2498 2499 2500\subsection{\textcolor{Chapter }{GetLinks (for IsFrancyGraph)}} 2501\logpage{[ 6, 4, 20 ]}\nobreak 2502\hyperdef{L}{X7B7ACA577E80B8E3}{} 2503{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GetLinks({\mdseries\slshape IsFrancyGraph, IsString})\index{GetLinks@\texttt{GetLinks}!for IsFrancyGraph} 2504\label{GetLinks:for IsFrancyGraph} 2505}\hfill{\scriptsize (operation)}}\\ 2506\textbf{\indent Returns:\ } 2507\texttt{List(Link)} 2508 2509 2510 2511 Gets a \texttt{Link} from a graph. } 2512 2513 } 2514 2515 2516\section{\textcolor{Chapter }{Global}}\label{Chapter_Francy_Graphs_Section_Global} 2517\logpage{[ 6, 5, 0 ]} 2518\hyperdef{L}{X8690E870823975F3}{} 2519{ 2520 In this section we show all Global Callback Francy Records for multi purpose. } 2521 2522 2523\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Graphs_Section_Attributes} 2524\logpage{[ 6, 6, 0 ]} 2525\hyperdef{L}{X7C701DBF7BAE649A}{} 2526{ 2527 In this section we show all Francy Core Attributes 2528 2529\subsection{\textcolor{Chapter }{Title (for IsShape)}} 2530\logpage{[ 6, 6, 1 ]}\nobreak 2531\hyperdef{L}{X83D2C91985CF0C3D}{} 2532{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg})\index{Title@\texttt{Title}!for IsShape} 2533\label{Title:for IsShape} 2534}\hfill{\scriptsize (attribute)}}\\ 2535\textbf{\indent Returns:\ } 2536\texttt{IsString} with the title of the object 2537 2538 2539 2540 Sets the title on the Shape. Supports LaTex syntax that gets translated, if 2541enabled on the client. } 2542 2543 2544 2545\subsection{\textcolor{Chapter }{Title (for IsShape)}} 2546\logpage{[ 6, 6, 2 ]}\nobreak 2547\hyperdef{L}{X83D2C91985CF0C3D}{} 2548{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg1})\index{Title@\texttt{Title}!for IsShape} 2549\label{Title:for IsShape} 2550}\hfill{\scriptsize (function)}}\\ 2551 2552 2553 2554 2555 } 2556 2557 2558 2559\subsection{\textcolor{Chapter }{SetTitle (for IsShape, IsString)}} 2560\logpage{[ 6, 6, 3 ]}\nobreak 2561\hyperdef{L}{X7B25A8097AE1AC64}{} 2562{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTitle({\mdseries\slshape IsRequiredArg, IsString})\index{SetTitle@\texttt{SetTitle}!for IsShape, IsString} 2563\label{SetTitle:for IsShape, IsString} 2564}\hfill{\scriptsize (function)}}\\ 2565 2566 2567 Sets the title of the Shape. } 2568 2569 2570 2571\subsection{\textcolor{Chapter }{Color (for IsShape)}} 2572\logpage{[ 6, 6, 4 ]}\nobreak 2573\hyperdef{L}{X86780CBD85B39F72}{} 2574{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Color({\mdseries\slshape arg})\index{Color@\texttt{Color}!for IsShape} 2575\label{Color:for IsShape} 2576}\hfill{\scriptsize (attribute)}}\\ 2577\textbf{\indent Returns:\ } 2578\texttt{IsInt} 2579 2580 2581 2582 The \texttt{Color} of the current shape. } 2583 2584 2585 2586\subsection{\textcolor{Chapter }{Color (for IsShape)}} 2587\logpage{[ 6, 6, 5 ]}\nobreak 2588\hyperdef{L}{X86780CBD85B39F72}{} 2589{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Color({\mdseries\slshape arg1})\index{Color@\texttt{Color}!for IsShape} 2590\label{Color:for IsShape} 2591}\hfill{\scriptsize (function)}}\\ 2592 2593 2594 2595 2596 } 2597 2598 2599 2600\subsection{\textcolor{Chapter }{SetColor (for IsShape, IsString)}} 2601\logpage{[ 6, 6, 6 ]}\nobreak 2602\hyperdef{L}{X7BCBDC2D84487FE9}{} 2603{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetColor({\mdseries\slshape IsShape, IsString})\index{SetColor@\texttt{SetColor}!for IsShape, IsString} 2604\label{SetColor:for IsShape, IsString} 2605}\hfill{\scriptsize (function)}}\\ 2606 2607 2608 Sets the \texttt{Color} value. } 2609 2610 2611 2612\subsection{\textcolor{Chapter }{PosX (for IsShape)}} 2613\logpage{[ 6, 6, 7 ]}\nobreak 2614\hyperdef{L}{X7F60BE7583BFDD29}{} 2615{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PosX({\mdseries\slshape arg})\index{PosX@\texttt{PosX}!for IsShape} 2616\label{PosX:for IsShape} 2617}\hfill{\scriptsize (attribute)}}\\ 2618\textbf{\indent Returns:\ } 2619\texttt{IsInt} 2620 2621 2622 2623 The Position in the X Axis of the Shape in the Canvas in pixels } 2624 2625 2626 2627\subsection{\textcolor{Chapter }{PosX (for IsShape)}} 2628\logpage{[ 6, 6, 8 ]}\nobreak 2629\hyperdef{L}{X7F60BE7583BFDD29}{} 2630{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PosX({\mdseries\slshape arg1})\index{PosX@\texttt{PosX}!for IsShape} 2631\label{PosX:for IsShape} 2632}\hfill{\scriptsize (function)}}\\ 2633 2634 2635 2636 2637 } 2638 2639 2640 2641\subsection{\textcolor{Chapter }{SetPosX (for IsShape, IsInt)}} 2642\logpage{[ 6, 6, 9 ]}\nobreak 2643\hyperdef{L}{X78A2408384F94449}{} 2644{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetPosX({\mdseries\slshape IsShape, IsInt})\index{SetPosX@\texttt{SetPosX}!for IsShape, IsInt} 2645\label{SetPosX:for IsShape, IsInt} 2646}\hfill{\scriptsize (function)}}\\ 2647 2648 2649 Sets the Position in the X Axis of the Shape in the Canvas in pixels } 2650 2651 2652 2653\subsection{\textcolor{Chapter }{PosY (for IsShape)}} 2654\logpage{[ 6, 6, 10 ]}\nobreak 2655\hyperdef{L}{X82B9D3ED78341B5F}{} 2656{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PosY({\mdseries\slshape arg})\index{PosY@\texttt{PosY}!for IsShape} 2657\label{PosY:for IsShape} 2658}\hfill{\scriptsize (attribute)}}\\ 2659\textbf{\indent Returns:\ } 2660\texttt{IsInt} 2661 2662 2663 2664 The Position in the Y Axis of the Shape in the Canvas in pixels } 2665 2666 2667 2668\subsection{\textcolor{Chapter }{PosY (for IsShape)}} 2669\logpage{[ 6, 6, 11 ]}\nobreak 2670\hyperdef{L}{X82B9D3ED78341B5F}{} 2671{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PosY({\mdseries\slshape arg1})\index{PosY@\texttt{PosY}!for IsShape} 2672\label{PosY:for IsShape} 2673}\hfill{\scriptsize (function)}}\\ 2674 2675 2676 2677 2678 } 2679 2680 2681 2682\subsection{\textcolor{Chapter }{SetPosY (for IsShape, IsInt)}} 2683\logpage{[ 6, 6, 12 ]}\nobreak 2684\hyperdef{L}{X85DC68867E9E34F2}{} 2685{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetPosY({\mdseries\slshape IsShape, IsInt})\index{SetPosY@\texttt{SetPosY}!for IsShape, IsInt} 2686\label{SetPosY:for IsShape, IsInt} 2687}\hfill{\scriptsize (function)}}\\ 2688 2689 2690 Sets the Position in the Y Axis of the Shape in the Canvas in pixels } 2691 2692 2693 2694\subsection{\textcolor{Chapter }{Size (for IsShape)}} 2695\logpage{[ 6, 6, 13 ]}\nobreak 2696\hyperdef{L}{X7A044BEB8590C906}{} 2697{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Size({\mdseries\slshape arg})\index{Size@\texttt{Size}!for IsShape} 2698\label{Size:for IsShape} 2699}\hfill{\scriptsize (attribute)}}\\ 2700\textbf{\indent Returns:\ } 2701\texttt{IsPosInt} 2702 2703 2704 2705 The \texttt{Size} of the Shape } 2706 2707 2708 2709\subsection{\textcolor{Chapter }{Size (for IsShape)}} 2710\logpage{[ 6, 6, 14 ]}\nobreak 2711\hyperdef{L}{X7A044BEB8590C906}{} 2712{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Size({\mdseries\slshape arg1})\index{Size@\texttt{Size}!for IsShape} 2713\label{Size:for IsShape} 2714}\hfill{\scriptsize (function)}}\\ 2715 2716 2717 2718 2719 } 2720 2721 2722 2723\subsection{\textcolor{Chapter }{SetSize (for IsShape, IsPosInt)}} 2724\logpage{[ 6, 6, 15 ]}\nobreak 2725\hyperdef{L}{X7F2308F18216D0DF}{} 2726{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetSize({\mdseries\slshape IsShape, IsPosInt})\index{SetSize@\texttt{SetSize}!for IsShape, IsPosInt} 2727\label{SetSize:for IsShape, IsPosInt} 2728}\hfill{\scriptsize (function)}}\\ 2729 2730 2731 Sets the Size of the Shape } 2732 2733 2734 2735\subsection{\textcolor{Chapter }{Layer (for IsShape)}} 2736\logpage{[ 6, 6, 16 ]}\nobreak 2737\hyperdef{L}{X82452F5F8205546C}{} 2738{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Layer({\mdseries\slshape arg})\index{Layer@\texttt{Layer}!for IsShape} 2739\label{Layer:for IsShape} 2740}\hfill{\scriptsize (attribute)}}\\ 2741\textbf{\indent Returns:\ } 2742\texttt{IsInt} 2743 2744 2745 2746 The \texttt{Layer} in which the node will be placed. This property is also used to apply a color 2747based on a scale } 2748 2749 2750 2751\subsection{\textcolor{Chapter }{Layer (for IsShape)}} 2752\logpage{[ 6, 6, 17 ]}\nobreak 2753\hyperdef{L}{X82452F5F8205546C}{} 2754{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Layer({\mdseries\slshape arg1})\index{Layer@\texttt{Layer}!for IsShape} 2755\label{Layer:for IsShape} 2756}\hfill{\scriptsize (function)}}\\ 2757 2758 2759 2760 2761 } 2762 2763 2764 2765\subsection{\textcolor{Chapter }{SetLayer (for IsShape, IsInt)}} 2766\logpage{[ 6, 6, 18 ]}\nobreak 2767\hyperdef{L}{X865A2CCC7B7310AF}{} 2768{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetLayer({\mdseries\slshape IsShape, IsInt})\index{SetLayer@\texttt{SetLayer}!for IsShape, IsInt} 2769\label{SetLayer:for IsShape, IsInt} 2770}\hfill{\scriptsize (function)}}\\ 2771 2772 2773 Sets the \texttt{Layer} number. } 2774 2775 2776 2777\subsection{\textcolor{Chapter }{ParentShape (for IsShape)}} 2778\logpage{[ 6, 6, 19 ]}\nobreak 2779\hyperdef{L}{X8057C33487656604}{} 2780{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ParentShape({\mdseries\slshape arg})\index{ParentShape@\texttt{ParentShape}!for IsShape} 2781\label{ParentShape:for IsShape} 2782}\hfill{\scriptsize (attribute)}}\\ 2783\textbf{\indent Returns:\ } 2784\texttt{IsShape} 2785 2786 2787 2788 The \texttt{ParentShape} in which the node will be placed. This property is also used to apply a color 2789based on a scale } 2790 2791 2792 2793\subsection{\textcolor{Chapter }{ParentShape (for IsShape)}} 2794\logpage{[ 6, 6, 20 ]}\nobreak 2795\hyperdef{L}{X8057C33487656604}{} 2796{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ParentShape({\mdseries\slshape arg1})\index{ParentShape@\texttt{ParentShape}!for IsShape} 2797\label{ParentShape:for IsShape} 2798}\hfill{\scriptsize (function)}}\\ 2799 2800 2801 2802 2803 } 2804 2805 2806 2807\subsection{\textcolor{Chapter }{SetParentShape (for IsShape, IsShape)}} 2808\logpage{[ 6, 6, 21 ]}\nobreak 2809\hyperdef{L}{X7EEEDB5385F0FDC2}{} 2810{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetParentShape({\mdseries\slshape IsShape, IsShape})\index{SetParentShape@\texttt{SetParentShape}!for IsShape, IsShape} 2811\label{SetParentShape:for IsShape, IsShape} 2812}\hfill{\scriptsize (function)}}\\ 2813 2814 2815 Sets the \texttt{ParentShape}. } 2816 2817 2818 2819\subsection{\textcolor{Chapter }{Simulation (for IsFrancyGraph)}} 2820\logpage{[ 6, 6, 22 ]}\nobreak 2821\hyperdef{L}{X7C3653757FEE9F72}{} 2822{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Simulation({\mdseries\slshape arg})\index{Simulation@\texttt{Simulation}!for IsFrancyGraph} 2823\label{Simulation:for IsFrancyGraph} 2824}\hfill{\scriptsize (attribute)}}\\ 2825\textbf{\indent Returns:\ } 2826\texttt{IsBool} True if enabled otherwise False 2827 2828 2829 2830 \texttt{Simulation} is a property that sets the simulation behavior by applying forces to organize 2831the graphics, without the need to provide custom positions, in the client 2832implementation. } 2833 2834 2835 2836\subsection{\textcolor{Chapter }{Simulation (for IsFrancyGraph)}} 2837\logpage{[ 6, 6, 23 ]}\nobreak 2838\hyperdef{L}{X7C3653757FEE9F72}{} 2839{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Simulation({\mdseries\slshape arg1})\index{Simulation@\texttt{Simulation}!for IsFrancyGraph} 2840\label{Simulation:for IsFrancyGraph} 2841}\hfill{\scriptsize (function)}}\\ 2842 2843 2844 2845 2846 } 2847 2848 2849 2850\subsection{\textcolor{Chapter }{SetSimulation (for IsFrancyGraph, IsBool)}} 2851\logpage{[ 6, 6, 24 ]}\nobreak 2852\hyperdef{L}{X7A3901B97FAB1DC5}{} 2853{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetSimulation({\mdseries\slshape IsCanvas, IsBool})\index{SetSimulation@\texttt{SetSimulation}!for IsFrancyGraph, IsBool} 2854\label{SetSimulation:for IsFrancyGraph, IsBool} 2855}\hfill{\scriptsize (function)}}\\ 2856 2857 2858 Sets the \texttt{Simulation} behavior. } 2859 2860 2861 2862\subsection{\textcolor{Chapter }{Collapsed (for IsFrancyGraph)}} 2863\logpage{[ 6, 6, 25 ]}\nobreak 2864\hyperdef{L}{X80AF2B5D7A029564}{} 2865{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Collapsed({\mdseries\slshape arg})\index{Collapsed@\texttt{Collapsed}!for IsFrancyGraph} 2866\label{Collapsed:for IsFrancyGraph} 2867}\hfill{\scriptsize (attribute)}}\\ 2868\textbf{\indent Returns:\ } 2869\texttt{IsBool} True if enabled otherwise False 2870 2871 2872 2873 \texttt{Collapsed} is a property that sets to collapsed the graphic structure by default } 2874 2875 2876 2877\subsection{\textcolor{Chapter }{Collapsed (for IsFrancyGraph)}} 2878\logpage{[ 6, 6, 26 ]}\nobreak 2879\hyperdef{L}{X80AF2B5D7A029564}{} 2880{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Collapsed({\mdseries\slshape arg1})\index{Collapsed@\texttt{Collapsed}!for IsFrancyGraph} 2881\label{Collapsed:for IsFrancyGraph} 2882}\hfill{\scriptsize (function)}}\\ 2883 2884 2885 2886 2887 } 2888 2889 2890 2891\subsection{\textcolor{Chapter }{SetCollapsed (for IsFrancyGraph, IsBool)}} 2892\logpage{[ 6, 6, 27 ]}\nobreak 2893\hyperdef{L}{X8798FA78848FFA03}{} 2894{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetCollapsed({\mdseries\slshape IsCanvas, IsBool})\index{SetCollapsed@\texttt{SetCollapsed}!for IsFrancyGraph, IsBool} 2895\label{SetCollapsed:for IsFrancyGraph, IsBool} 2896}\hfill{\scriptsize (function)}}\\ 2897 2898 2899 Sets the \texttt{Collapsed} behavior. } 2900 2901 2902 2903\subsection{\textcolor{Chapter }{Selected (for IsShape)}} 2904\logpage{[ 6, 6, 28 ]}\nobreak 2905\hyperdef{L}{X816339857B1118EC}{} 2906{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Selected({\mdseries\slshape arg})\index{Selected@\texttt{Selected}!for IsShape} 2907\label{Selected:for IsShape} 2908}\hfill{\scriptsize (attribute)}}\\ 2909\textbf{\indent Returns:\ } 2910\texttt{IsBool} True if enabled otherwise False 2911 2912 2913 2914 \texttt{Collapsed} is a property that sets to collapsed the graphic structure by default } 2915 2916 2917 2918\subsection{\textcolor{Chapter }{Selected (for IsShape)}} 2919\logpage{[ 6, 6, 29 ]}\nobreak 2920\hyperdef{L}{X816339857B1118EC}{} 2921{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Selected({\mdseries\slshape arg1})\index{Selected@\texttt{Selected}!for IsShape} 2922\label{Selected:for IsShape} 2923}\hfill{\scriptsize (function)}}\\ 2924 2925 2926 2927 2928 } 2929 2930 2931 2932\subsection{\textcolor{Chapter }{SetSelected (for IsShape, IsBool)}} 2933\logpage{[ 6, 6, 30 ]}\nobreak 2934\hyperdef{L}{X7FDA75868647E405}{} 2935{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetSelected({\mdseries\slshape IsCanvas, IsBool})\index{SetSelected@\texttt{SetSelected}!for IsShape, IsBool} 2936\label{SetSelected:for IsShape, IsBool} 2937}\hfill{\scriptsize (function)}}\\ 2938 2939 2940 Sets the \texttt{Collapsed} behavior. } 2941 2942 2943 2944\subsection{\textcolor{Chapter }{ConjugateId (for IsShape)}} 2945\logpage{[ 6, 6, 31 ]}\nobreak 2946\hyperdef{L}{X7D9DF25C82FCA1D9}{} 2947{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ConjugateId({\mdseries\slshape arg})\index{ConjugateId@\texttt{ConjugateId}!for IsShape} 2948\label{ConjugateId:for IsShape} 2949}\hfill{\scriptsize (attribute)}}\\ 2950\textbf{\indent Returns:\ } 2951\texttt{IsBool} True if enabled otherwise False 2952 2953 2954 2955 \texttt{Collapsed} is a property that sets to collapsed the graphic structure by default } 2956 2957 2958 2959\subsection{\textcolor{Chapter }{ConjugateId (for IsShape)}} 2960\logpage{[ 6, 6, 32 ]}\nobreak 2961\hyperdef{L}{X7D9DF25C82FCA1D9}{} 2962{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ConjugateId({\mdseries\slshape arg1})\index{ConjugateId@\texttt{ConjugateId}!for IsShape} 2963\label{ConjugateId:for IsShape} 2964}\hfill{\scriptsize (function)}}\\ 2965 2966 2967 2968 2969 } 2970 2971 2972 2973\subsection{\textcolor{Chapter }{SetConjugateId (for IsShape, IsInt)}} 2974\logpage{[ 6, 6, 33 ]}\nobreak 2975\hyperdef{L}{X7DDBAECB874E7F40}{} 2976{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetConjugateId({\mdseries\slshape IsCanvas, IsBool})\index{SetConjugateId@\texttt{SetConjugateId}!for IsShape, IsInt} 2977\label{SetConjugateId:for IsShape, IsInt} 2978}\hfill{\scriptsize (function)}}\\ 2979 2980 2981 Sets the \texttt{Collapsed} behavior. } 2982 2983 2984 2985\subsection{\textcolor{Chapter }{Weight (for IsLink)}} 2986\logpage{[ 6, 6, 34 ]}\nobreak 2987\hyperdef{L}{X80FA3A2E807481DE}{} 2988{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Weight({\mdseries\slshape arg})\index{Weight@\texttt{Weight}!for IsLink} 2989\label{Weight:for IsLink} 2990}\hfill{\scriptsize (attribute)}}\\ 2991\textbf{\indent Returns:\ } 2992\texttt{IsInt} 2993 2994 2995 2996 The \texttt{Weight} of the current link. } 2997 2998 2999 3000\subsection{\textcolor{Chapter }{Weight (for IsLink)}} 3001\logpage{[ 6, 6, 35 ]}\nobreak 3002\hyperdef{L}{X80FA3A2E807481DE}{} 3003{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Weight({\mdseries\slshape arg1})\index{Weight@\texttt{Weight}!for IsLink} 3004\label{Weight:for IsLink} 3005}\hfill{\scriptsize (function)}}\\ 3006 3007 3008 3009 3010 } 3011 3012 3013 3014\subsection{\textcolor{Chapter }{SetWeight (for IsLink, IsInt)}} 3015\logpage{[ 6, 6, 36 ]}\nobreak 3016\hyperdef{L}{X830DCE657B6B1701}{} 3017{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetWeight({\mdseries\slshape IsLink, IsInt})\index{SetWeight@\texttt{SetWeight}!for IsLink, IsInt} 3018\label{SetWeight:for IsLink, IsInt} 3019}\hfill{\scriptsize (function)}}\\ 3020 3021 3022 Sets the \texttt{Weight} value. } 3023 3024 3025 3026\subsection{\textcolor{Chapter }{Length (for IsLink)}} 3027\logpage{[ 6, 6, 37 ]}\nobreak 3028\hyperdef{L}{X811D69FC859667AE}{} 3029{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Length({\mdseries\slshape arg})\index{Length@\texttt{Length}!for IsLink} 3030\label{Length:for IsLink} 3031}\hfill{\scriptsize (attribute)}}\\ 3032\textbf{\indent Returns:\ } 3033\texttt{IsInt} 3034 3035 3036 3037 The \texttt{Length} of the current link. } 3038 3039 3040 3041\subsection{\textcolor{Chapter }{Length (for IsLink)}} 3042\logpage{[ 6, 6, 38 ]}\nobreak 3043\hyperdef{L}{X811D69FC859667AE}{} 3044{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Length({\mdseries\slshape arg1})\index{Length@\texttt{Length}!for IsLink} 3045\label{Length:for IsLink} 3046}\hfill{\scriptsize (function)}}\\ 3047 3048 3049 3050 3051 } 3052 3053 3054 3055\subsection{\textcolor{Chapter }{SetLength (for IsLink, IsInt)}} 3056\logpage{[ 6, 6, 39 ]}\nobreak 3057\hyperdef{L}{X7EFC492284D4C053}{} 3058{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetLength({\mdseries\slshape IsLink, IsInt})\index{SetLength@\texttt{SetLength}!for IsLink, IsInt} 3059\label{SetLength:for IsLink, IsInt} 3060}\hfill{\scriptsize (function)}}\\ 3061 3062 3063 Sets the \texttt{Length} value. } 3064 3065 3066 3067\subsection{\textcolor{Chapter }{Invisible (for IsLink)}} 3068\logpage{[ 6, 6, 40 ]}\nobreak 3069\hyperdef{L}{X8225EFFA78C9BF04}{} 3070{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Invisible({\mdseries\slshape arg})\index{Invisible@\texttt{Invisible}!for IsLink} 3071\label{Invisible:for IsLink} 3072}\hfill{\scriptsize (attribute)}}\\ 3073\textbf{\indent Returns:\ } 3074\texttt{IsBoolean} 3075 3076 3077 3078 The \texttt{Invisible} of the current link. } 3079 3080 3081 3082\subsection{\textcolor{Chapter }{Invisible (for IsLink)}} 3083\logpage{[ 6, 6, 41 ]}\nobreak 3084\hyperdef{L}{X8225EFFA78C9BF04}{} 3085{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Invisible({\mdseries\slshape arg1})\index{Invisible@\texttt{Invisible}!for IsLink} 3086\label{Invisible:for IsLink} 3087}\hfill{\scriptsize (function)}}\\ 3088 3089 3090 3091 3092 } 3093 3094 3095 3096\subsection{\textcolor{Chapter }{SetInvisible (for IsLink, IsBool)}} 3097\logpage{[ 6, 6, 42 ]}\nobreak 3098\hyperdef{L}{X836B3DE1838580F9}{} 3099{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetInvisible({\mdseries\slshape IsLink, IsBool})\index{SetInvisible@\texttt{SetInvisible}!for IsLink, IsBool} 3100\label{SetInvisible:for IsLink, IsBool} 3101}\hfill{\scriptsize (function)}}\\ 3102 3103 3104 Sets the \texttt{Invisible} value. } 3105 3106 3107 3108\subsection{\textcolor{Chapter }{Color (for IsLink)}} 3109\logpage{[ 6, 6, 43 ]}\nobreak 3110\hyperdef{L}{X859C4ED278422D03}{} 3111{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Color({\mdseries\slshape arg})\index{Color@\texttt{Color}!for IsLink} 3112\label{Color:for IsLink} 3113}\hfill{\scriptsize (attribute)}}\\ 3114\textbf{\indent Returns:\ } 3115\texttt{IsInt} 3116 3117 3118 3119 The \texttt{Color} of the current link. } 3120 3121 3122 3123\subsection{\textcolor{Chapter }{Color (for IsLink)}} 3124\logpage{[ 6, 6, 44 ]}\nobreak 3125\hyperdef{L}{X859C4ED278422D03}{} 3126{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Color({\mdseries\slshape arg1})\index{Color@\texttt{Color}!for IsLink} 3127\label{Color:for IsLink} 3128}\hfill{\scriptsize (function)}}\\ 3129 3130 3131 3132 3133 } 3134 3135 3136 3137\subsection{\textcolor{Chapter }{SetColor (for IsLink, IsString)}} 3138\logpage{[ 6, 6, 45 ]}\nobreak 3139\hyperdef{L}{X84FF9CBB85CAF4A6}{} 3140{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetColor({\mdseries\slshape IsShape, IsString})\index{SetColor@\texttt{SetColor}!for IsLink, IsString} 3141\label{SetColor:for IsLink, IsString} 3142}\hfill{\scriptsize (function)}}\\ 3143 3144 3145 Sets the \texttt{Color} value. } 3146 3147 3148 3149\subsection{\textcolor{Chapter }{Title (for IsLink)}} 3150\logpage{[ 6, 6, 46 ]}\nobreak 3151\hyperdef{L}{X7F041B5D783EBE4C}{} 3152{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg})\index{Title@\texttt{Title}!for IsLink} 3153\label{Title:for IsLink} 3154}\hfill{\scriptsize (attribute)}}\\ 3155\textbf{\indent Returns:\ } 3156\texttt{IsInt} 3157 3158 3159 3160 The \texttt{Title} of the current link. } 3161 3162 3163 3164\subsection{\textcolor{Chapter }{Title (for IsLink)}} 3165\logpage{[ 6, 6, 47 ]}\nobreak 3166\hyperdef{L}{X7F041B5D783EBE4C}{} 3167{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg1})\index{Title@\texttt{Title}!for IsLink} 3168\label{Title:for IsLink} 3169}\hfill{\scriptsize (function)}}\\ 3170 3171 3172 3173 3174 } 3175 3176 3177 3178\subsection{\textcolor{Chapter }{SetTitle (for IsLink, IsString)}} 3179\logpage{[ 6, 6, 48 ]}\nobreak 3180\hyperdef{L}{X87333BEB7B63272B}{} 3181{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTitle({\mdseries\slshape IsShape, IsString})\index{SetTitle@\texttt{SetTitle}!for IsLink, IsString} 3182\label{SetTitle:for IsLink, IsString} 3183}\hfill{\scriptsize (function)}}\\ 3184 3185 3186 Sets the \texttt{Title} value. } 3187 3188 } 3189 3190 } 3191 3192 3193\chapter{\textcolor{Chapter }{Francy Menus}}\label{Chapter_Francy_Menus} 3194\logpage{[ 7, 0, 0 ]} 3195\hyperdef{L}{X80EA9773809C0D61}{} 3196{ 3197 Menus are agregators of actions that are represented here by \texttt{Callbacks}. Menus can have SubMenus, and are constituted by a Title and a Callback. 3198 3199 Please see Francy-JS for client implementation. 3200\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Menus_Section_Categories} 3201\logpage{[ 7, 1, 0 ]} 3202\hyperdef{L}{X7CC6903E78F24167}{} 3203{ 3204 In this section we show all Francy Menu Categories. 3205 3206\subsection{\textcolor{Chapter }{IsMenu (for IsFrancyObject)}} 3207\logpage{[ 7, 1, 1 ]}\nobreak 3208\hyperdef{L}{X7D4F62FC7EE7D6CA}{} 3209{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsMenu({\mdseries\slshape arg})\index{IsMenu@\texttt{IsMenu}!for IsFrancyObject} 3210\label{IsMenu:for IsFrancyObject} 3211}\hfill{\scriptsize (filter)}}\\ 3212\textbf{\indent Returns:\ } 3213\texttt{true} or \texttt{false} 3214 3215 3216 3217 Identifies \texttt{Menu} objects. } 3218 3219 } 3220 3221 3222\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Menus_Section_Families} 3223\logpage{[ 7, 2, 0 ]} 3224\hyperdef{L}{X846063757EC05986}{} 3225{ 3226 In this section we show all Francy Menu Families. } 3227 3228 3229\section{\textcolor{Chapter }{Representations}}\label{Chapter_Francy_Menus_Section_Representations} 3230\logpage{[ 7, 3, 0 ]} 3231\hyperdef{L}{X7EABCC537D3BC549}{} 3232{ 3233 In this section we show all Francy Menu Representations. 3234 3235\subsection{\textcolor{Chapter }{IsMenuRep (for IsComponentObjectRep)}} 3236\logpage{[ 7, 3, 1 ]}\nobreak 3237\hyperdef{L}{X78011B0D79E0AC29}{} 3238{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsMenuRep({\mdseries\slshape arg})\index{IsMenuRep@\texttt{IsMenuRep}!for IsComponentObjectRep} 3239\label{IsMenuRep:for IsComponentObjectRep} 3240}\hfill{\scriptsize (filter)}}\\ 3241\textbf{\indent Returns:\ } 3242\texttt{true} or \texttt{false} 3243 3244 3245 3246 Checks whether an \texttt{Object} has a \texttt{Menu} internal representation. } 3247 3248 } 3249 3250 3251\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Menus_Section_Operations} 3252\logpage{[ 7, 4, 0 ]} 3253\hyperdef{L}{X7DE8E16C7C2D387B}{} 3254{ 3255 In this section we show all Francy Menu Operations. 3256 3257\subsection{\textcolor{Chapter }{Menu (for IsString, IsCallback)}} 3258\logpage{[ 7, 4, 1 ]}\nobreak 3259\hyperdef{L}{X80A4CF8778846969}{} 3260{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Menu({\mdseries\slshape IsString(title)[, IsCallback]})\index{Menu@\texttt{Menu}!for IsString, IsCallback} 3261\label{Menu:for IsString, IsCallback} 3262}\hfill{\scriptsize (operation)}}\\ 3263\textbf{\indent Returns:\ } 3264\texttt{Menu} 3265 3266 3267 3268 Creates a Menu for a \texttt{Callback} Is up to the client implementation to sort out the Menu and invoke the \texttt{Callback} } 3269 3270 3271 3272\subsection{\textcolor{Chapter }{Add (for IsMenu, IsMenu)}} 3273\logpage{[ 7, 4, 2 ]}\nobreak 3274\hyperdef{L}{X7EDDF1E97C71181B}{} 3275{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Add({\mdseries\slshape IsMenu[, IsMenu, List(IsMenu)]})\index{Add@\texttt{Add}!for IsMenu, IsMenu} 3276\label{Add:for IsMenu, IsMenu} 3277}\hfill{\scriptsize (operation)}}\\ 3278\textbf{\indent Returns:\ } 3279\texttt{Menu} 3280 3281 3282 3283 Add \texttt{Menu} to a specific \texttt{Menu} creating a Submenu. Is up to the client implementation to handle this. } 3284 3285 3286 3287\subsection{\textcolor{Chapter }{Remove (for IsMenu, IsMenu)}} 3288\logpage{[ 7, 4, 3 ]}\nobreak 3289\hyperdef{L}{X874B7A668558AFB5}{} 3290{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Remove({\mdseries\slshape IsMenu[, IsMenu, List(IsMenu)]})\index{Remove@\texttt{Remove}!for IsMenu, IsMenu} 3291\label{Remove:for IsMenu, IsMenu} 3292}\hfill{\scriptsize (operation)}}\\ 3293\textbf{\indent Returns:\ } 3294\texttt{Menu} 3295 3296 3297 3298 Remove \texttt{Menu} from a specific \texttt{Menu}. The client should be able to handle this. } 3299 3300 } 3301 3302 3303\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Menus_Section_Attributes} 3304\logpage{[ 7, 5, 0 ]} 3305\hyperdef{L}{X7C701DBF7BAE649A}{} 3306{ 3307 In this section we show all Francy Core Attributes 3308 3309\subsection{\textcolor{Chapter }{Title (for IsMenu)}} 3310\logpage{[ 7, 5, 1 ]}\nobreak 3311\hyperdef{L}{X7BBE816B7B22D645}{} 3312{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg})\index{Title@\texttt{Title}!for IsMenu} 3313\label{Title:for IsMenu} 3314}\hfill{\scriptsize (attribute)}}\\ 3315\textbf{\indent Returns:\ } 3316\texttt{IsString} with the title of the object 3317 3318 3319 3320 A title on a \texttt{Menu} is used to identify the menu entry. } 3321 3322 3323 3324\subsection{\textcolor{Chapter }{Title (for IsMenu)}} 3325\logpage{[ 7, 5, 2 ]}\nobreak 3326\hyperdef{L}{X7BBE816B7B22D645}{} 3327{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg1})\index{Title@\texttt{Title}!for IsMenu} 3328\label{Title:for IsMenu} 3329}\hfill{\scriptsize (function)}}\\ 3330 3331 3332 3333 3334 } 3335 3336 3337 3338\subsection{\textcolor{Chapter }{SetTitle (for IsMenu, IsString)}} 3339\logpage{[ 7, 5, 3 ]}\nobreak 3340\hyperdef{L}{X792C89BE80A7DA6E}{} 3341{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTitle({\mdseries\slshape IsMenu, IsString})\index{SetTitle@\texttt{SetTitle}!for IsMenu, IsString} 3342\label{SetTitle:for IsMenu, IsString} 3343}\hfill{\scriptsize (function)}}\\ 3344 3345 3346 Sets the title of the \texttt{Menu}. } 3347 3348 } 3349 3350 } 3351 3352 3353\chapter{\textcolor{Chapter }{Francy Messages}}\label{Chapter_Francy_Messages} 3354\logpage{[ 8, 0, 0 ]} 3355\hyperdef{L}{X7B78725D7DF4522F}{} 3356{ 3357 \texttt{FrancyMessage} is an object that holds a message. 3358 3359 These messages can be used to provide information to users in the form of \texttt{SUCCESS}, \texttt{INFO}, \texttt{WARNING}, \texttt{ERROR}. Please see Francy-JS for client implementation. 3360\section{\textcolor{Chapter }{Categories}}\label{Chapter_Francy_Messages_Section_Categories} 3361\logpage{[ 8, 1, 0 ]} 3362\hyperdef{L}{X7CC6903E78F24167}{} 3363{ 3364 In this section we show all Francy FrancyMessage Categories. 3365 3366\subsection{\textcolor{Chapter }{IsFrancyMessage (for IsFrancyObject)}} 3367\logpage{[ 8, 1, 1 ]}\nobreak 3368\hyperdef{L}{X81B6563E7B6AEA6D}{} 3369{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyMessage({\mdseries\slshape arg})\index{IsFrancyMessage@\texttt{IsFrancyMessage}!for IsFrancyObject} 3370\label{IsFrancyMessage:for IsFrancyObject} 3371}\hfill{\scriptsize (filter)}}\\ 3372\textbf{\indent Returns:\ } 3373\texttt{true} or \texttt{false} 3374 3375 3376 3377 Identifies \texttt{FrancyMessage} objects. } 3378 3379 3380 3381\subsection{\textcolor{Chapter }{IsFrancyMessageType (for IsFrancyObject)}} 3382\logpage{[ 8, 1, 2 ]}\nobreak 3383\hyperdef{L}{X7AC1074882D397F6}{} 3384{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyMessageType({\mdseries\slshape arg})\index{IsFrancyMessageType@\texttt{IsFrancyMessageType}!for IsFrancyObject} 3385\label{IsFrancyMessageType:for IsFrancyObject} 3386}\hfill{\scriptsize (filter)}}\\ 3387\textbf{\indent Returns:\ } 3388\texttt{true} or \texttt{false} 3389 3390 3391 3392 Identifies \texttt{MessageType} objects. } 3393 3394 } 3395 3396 3397\section{\textcolor{Chapter }{Families}}\label{Chapter_Francy_Messages_Section_Families} 3398\logpage{[ 8, 2, 0 ]} 3399\hyperdef{L}{X846063757EC05986}{} 3400{ 3401 In this section we show all Francy FrancyMessage Families. } 3402 3403 3404\section{\textcolor{Chapter }{Representations}}\label{Chapter_Francy_Messages_Section_Representations} 3405\logpage{[ 8, 3, 0 ]} 3406\hyperdef{L}{X7EABCC537D3BC549}{} 3407{ 3408 In this section we show all Francy FrancyMessage Representations. 3409 3410\subsection{\textcolor{Chapter }{IsFrancyMessageRep (for IsComponentObjectRep)}} 3411\logpage{[ 8, 3, 1 ]}\nobreak 3412\hyperdef{L}{X81FA07417DA0CBF0}{} 3413{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyMessageRep({\mdseries\slshape arg})\index{IsFrancyMessageRep@\texttt{IsFrancyMessageRep}!for IsComponentObjectRep} 3414\label{IsFrancyMessageRep:for IsComponentObjectRep} 3415}\hfill{\scriptsize (filter)}}\\ 3416\textbf{\indent Returns:\ } 3417\texttt{true} or \texttt{false} 3418 3419 3420 3421 Checks whether an \texttt{Object} has a \texttt{FrancyMessage} internal representation. } 3422 3423 3424 3425\subsection{\textcolor{Chapter }{IsFrancyMessageTypeRep (for IsComponentObjectRep)}} 3426\logpage{[ 8, 3, 2 ]}\nobreak 3427\hyperdef{L}{X7A2D43947BDA7E29}{} 3428{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsFrancyMessageTypeRep({\mdseries\slshape arg})\index{IsFrancyMessageTypeRep@\texttt{IsFrancyMessageTypeRep}!for IsComponentObjectRep} 3429\label{IsFrancyMessageTypeRep:for IsComponentObjectRep} 3430}\hfill{\scriptsize (filter)}}\\ 3431\textbf{\indent Returns:\ } 3432\texttt{true} or \texttt{false} 3433 3434 3435 3436 Checks whether an \texttt{Object} has a \texttt{FrancyMessage} internal representation. } 3437 3438 } 3439 3440 3441\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Messages_Section_Operations} 3442\logpage{[ 8, 4, 0 ]} 3443\hyperdef{L}{X7DE8E16C7C2D387B}{} 3444{ 3445 In this section we show all Francy FrancyMessage Operations. 3446 3447\subsection{\textcolor{Chapter }{FrancyMessage (for IsFrancyMessageType, IsString, IsString)}} 3448\logpage{[ 8, 4, 1 ]}\nobreak 3449\hyperdef{L}{X7D5DE52179AE8554}{} 3450{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{FrancyMessage({\mdseries\slshape IsString, IsString})\index{FrancyMessage@\texttt{FrancyMessage}!for IsFrancyMessageType, IsString, IsString} 3451\label{FrancyMessage:for IsFrancyMessageType, IsString, IsString} 3452}\hfill{\scriptsize (operation)}}\\ 3453\textbf{\indent Returns:\ } 3454\texttt{FrancyMessage} 3455 3456 3457 3458 Adds an info label with the format label: value 3459 3460 } 3461 3462 } 3463 3464 3465\section{\textcolor{Chapter }{Global}}\label{Chapter_Francy_Messages_Section_Global} 3466\logpage{[ 8, 5, 0 ]} 3467\hyperdef{L}{X8690E870823975F3}{} 3468{ 3469 In this section we show all Global Callback Francy Records for multi purpose. } 3470 3471 3472\section{\textcolor{Chapter }{Attributes}}\label{Chapter_Francy_Messages_Section_Attributes} 3473\logpage{[ 8, 6, 0 ]} 3474\hyperdef{L}{X7C701DBF7BAE649A}{} 3475{ 3476 In this section we show all Francy Core Attributes 3477 3478\subsection{\textcolor{Chapter }{Title (for IsFrancyMessage)}} 3479\logpage{[ 8, 6, 1 ]}\nobreak 3480\hyperdef{L}{X84394D1F822EA86F}{} 3481{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg})\index{Title@\texttt{Title}!for IsFrancyMessage} 3482\label{Title:for IsFrancyMessage} 3483}\hfill{\scriptsize (attribute)}}\\ 3484\textbf{\indent Returns:\ } 3485\texttt{IsString} with the title of the object 3486 3487 3488 3489 A title on a \texttt{FrancyMessage} is used to display the title information to the user. } 3490 3491 3492 3493\subsection{\textcolor{Chapter }{Title (for IsFrancyMessage)}} 3494\logpage{[ 8, 6, 2 ]}\nobreak 3495\hyperdef{L}{X84394D1F822EA86F}{} 3496{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Title({\mdseries\slshape arg1})\index{Title@\texttt{Title}!for IsFrancyMessage} 3497\label{Title:for IsFrancyMessage} 3498}\hfill{\scriptsize (function)}}\\ 3499 3500 3501 3502 3503 } 3504 3505 3506 3507\subsection{\textcolor{Chapter }{SetTitle (for IsFrancyMessage, IsString)}} 3508\logpage{[ 8, 6, 3 ]}\nobreak 3509\hyperdef{L}{X7A26B9E77D45DC64}{} 3510{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetTitle({\mdseries\slshape IsFrancyMessage, IsString})\index{SetTitle@\texttt{SetTitle}!for IsFrancyMessage, IsString} 3511\label{SetTitle:for IsFrancyMessage, IsString} 3512}\hfill{\scriptsize (function)}}\\ 3513 3514 3515 Sets the title of the \texttt{FrancyMessage}. } 3516 3517 3518 3519\subsection{\textcolor{Chapter }{Value (for IsFrancyMessage)}} 3520\logpage{[ 8, 6, 4 ]}\nobreak 3521\hyperdef{L}{X807A806F83B19870}{} 3522{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Value({\mdseries\slshape arg})\index{Value@\texttt{Value}!for IsFrancyMessage} 3523\label{Value:for IsFrancyMessage} 3524}\hfill{\scriptsize (attribute)}}\\ 3525\textbf{\indent Returns:\ } 3526\texttt{IsString} with the title of the object 3527 3528 3529 3530 A value on a \texttt{FrancyMessage} is used to display the information to the user. } 3531 3532 3533 3534\subsection{\textcolor{Chapter }{Value (for IsFrancyMessage)}} 3535\logpage{[ 8, 6, 5 ]}\nobreak 3536\hyperdef{L}{X807A806F83B19870}{} 3537{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Value({\mdseries\slshape arg1})\index{Value@\texttt{Value}!for IsFrancyMessage} 3538\label{Value:for IsFrancyMessage} 3539}\hfill{\scriptsize (function)}}\\ 3540 3541 3542 3543 3544 } 3545 3546 3547 3548\subsection{\textcolor{Chapter }{SetValue (for IsFrancyMessage, IsString)}} 3549\logpage{[ 8, 6, 6 ]}\nobreak 3550\hyperdef{L}{X7EE61C43853E71CE}{} 3551{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SetValue({\mdseries\slshape IsFrancyMessage, IsString})\index{SetValue@\texttt{SetValue}!for IsFrancyMessage, IsString} 3552\label{SetValue:for IsFrancyMessage, IsString} 3553}\hfill{\scriptsize (function)}}\\ 3554 3555 3556 Sets the actual message of the \texttt{FrancyMessage}. } 3557 3558 } 3559 3560 } 3561 3562 3563\chapter{\textcolor{Chapter }{Francy Util}}\label{Chapter_Francy_Util} 3564\logpage{[ 9, 0, 0 ]} 3565\hyperdef{L}{X7D19C8447955D526}{} 3566{ 3567 3568\section{\textcolor{Chapter }{Operations}}\label{Chapter_Francy_Util_Section_Operations} 3569\logpage{[ 9, 1, 0 ]} 3570\hyperdef{L}{X7DE8E16C7C2D387B}{} 3571{ 3572 In this section we show all Francy Util Operations. Contains utility methods 3573to handle Object printing/viewing, Sanitizing, etc. 3574 3575\subsection{\textcolor{Chapter }{JUPYTER{\textunderscore}ViewString (for IsObject)}} 3576\logpage{[ 9, 1, 1 ]}\nobreak 3577\hyperdef{L}{X7FDA25B980809FC3}{} 3578{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{JUPYTER{\textunderscore}ViewString({\mdseries\slshape arg})\index{JUPYTERuScoreViewString@\texttt{JUPYTER{\textunderscore}ViewString}!for IsObject} 3579\label{JUPYTERuScoreViewString:for IsObject} 3580}\hfill{\scriptsize (operation)}}\\ 3581\textbf{\indent Returns:\ } 3582\texttt{String} 3583 3584 3585 3586 This method will pretty print in jupyter environment. } 3587 3588 3589 3590\subsection{\textcolor{Chapter }{Sanitize (for IsObject)}} 3591\logpage{[ 9, 1, 2 ]}\nobreak 3592\hyperdef{L}{X804E29DC830EE7B1}{} 3593{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Sanitize({\mdseries\slshape IsObject})\index{Sanitize@\texttt{Sanitize}!for IsObject} 3594\label{Sanitize:for IsObject} 3595}\hfill{\scriptsize (operation)}}\\ 3596\textbf{\indent Returns:\ } 3597\texttt{rec} 3598 3599 3600 3601 This method will clone a \texttt{Object} and return a sanitized record, traversing all the components and sanitizing 3602when appropriate. Sanitizing in this context means, replace everything with 3603it's string representation that can't be converted into JSON! } 3604 3605 3606 3607\subsection{\textcolor{Chapter }{MergeObjects (for IsFrancyObject, IsFrancyObject)}} 3608\logpage{[ 9, 1, 3 ]}\nobreak 3609\hyperdef{L}{X84A26F95834C1C49}{} 3610{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{MergeObjects({\mdseries\slshape IsFrancyObject, IsFrancyObject})\index{MergeObjects@\texttt{MergeObjects}!for IsFrancyObject, IsFrancyObject} 3611\label{MergeObjects:for IsFrancyObject, IsFrancyObject} 3612}\hfill{\scriptsize (operation)}}\\ 3613\textbf{\indent Returns:\ } 3614\texttt{rec} 3615 3616 3617 3618 This method will merge the properties of 2 \texttt{IsFrancyObjects} into one \texttt{rec}. } 3619 3620 3621 3622\subsection{\textcolor{Chapter }{GenerateID}} 3623\logpage{[ 9, 1, 4 ]}\nobreak 3624\hyperdef{L}{X79A299E4878A701B}{} 3625{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GenerateID({\mdseries\slshape })\index{GenerateID@\texttt{GenerateID}} 3626\label{GenerateID} 3627}\hfill{\scriptsize (operation)}}\\ 3628\textbf{\indent Returns:\ } 3629\texttt{IsString} 3630 3631 3632 3633 This method will generate a sequential ID for use as object identifier. } 3634 3635 } 3636 3637 } 3638 3639 \def\indexname{Index\logpage{[ "Ind", 0, 0 ]} 3640\hyperdef{L}{X83A0356F839C696F}{} 3641} 3642 3643\cleardoublepage 3644\phantomsection 3645\addcontentsline{toc}{chapter}{Index} 3646 3647 3648\printindex 3649 3650\immediate\write\pagenrlog{["Ind", 0, 0], \arabic{page},} 3651\newpage 3652\immediate\write\pagenrlog{["End"], \arabic{page}];} 3653\immediate\closeout\pagenrlog 3654\end{document} 3655