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