Commit 6c1fcdfd authored by adud's avatar adud

interface global organization

parent 103070f0
......@@ -5,6 +5,7 @@ Godot Nodes organization for the sign editor
*** controlPanel
*** menus
*** player
*** selector
*** Insertion Mode: boolean
*** Clipboard
** Methods
......@@ -31,11 +32,12 @@ Godot Nodes organization for the sign editor
*** Classic array operations, but at the place of the cursor (WIP)
**** iterate on slices
**** insert an element at the position of the cursor
**** modify the element at the right of the cursor
**** remove the element at the left/right of the cursor (Del/Backspace)
**** pop (remove & return) the slice of text between marker and cursor
**** return the slice of text between marker and cursor
*** Align: convert x,y coordinates into index in sheet.
*** MoveElement: (principally for Cursor) convert Index into x,y
*** Place: (principally for Cursor) convert Index into x,y
*** Getters for Style, Margins
*** Setters for Style, Margins (clever: update picture)
*** Move Cursor (why here? because needs a lot of information, think about
......@@ -44,8 +46,9 @@ Godot Nodes organization for the sign editor
* Node: Control panel
Top-bar, to control text
** Attributes:
*** Buttons: the buttons of the control panel, each sends a specific event that
will be caught by the interface.
*** Buttons
the buttons of the control panel, each sends a specific event that will be
caught by the interface.
*** Design
* Node: menus (is it really a node ?)
The menubar of the application, must contain at least every button on the
......@@ -58,7 +61,6 @@ Godot Nodes organization for the sign editor
*** textPos: int index in the Text
** Methods:
*** getters, setters, to help the workSpace being sync in whole text
** Node: signSymb
a symbol that represents a sign, to recall the user what it has written into
this sign. This symbol can have many styles. A style can include a shot and
......@@ -66,10 +68,6 @@ Godot Nodes organization for the sign editor
*** Node: americanShot: have the starting position of the avatar in an american
shot
*** Node: handsShot: show only the hand(s) in the starting position.
** Node: breaks
Special nodes, don't contain a sign, but indicates a break between two
entities. eg. a point, to pull 2 sentences apart, or a paragraph break. Note
that this one don't need to be a node, and can be invisible (¶).
** Node: cursor
Used to show where you are pointing at.
* Node: Selector (wip in the interface)
......
\documentclass{standalone}
\usepackage{tikz}
\usepackage[]{pgf-umlcd}
% Godot naming conventions.
% Classes (nodes) use PascalCase,
% variables and functions use snake_case,
% and constants use ALL_CAPS
\begin{document}
\begin{tikzpicture}
\begin{class}{Interface}{0,0}
\attribute{menus:???}
\attribute{work\_space: WorkSpace}
\attribute{control\_panel: ControlPanel}
\attribute{selector: Selector}
\attribute{player: Player}
\attribute{insert: Boolean}
\attribute{clipboard: Signs Array}
\operation{add\_sign(): void}
\operation{cut(): void}
\operation{copy(): void}
\operation{paste(): void}
\operation{play(): void}
\operation{events handling}
\end{class}
\begin{class}{WorkSpace}{8, -2}
\attribute{margins: Int}
\attribute{style: String}
\attribute{text: SignSymb Array}
\attribute{cursor: Cursor}
\attribute{marker: Int}
\attribute{active\_marker: Bool}
\operation{update(beg: Int, end:Int): void}
\operation{insert(sign: SignSymb): void}
\operation{modify(sign: SignSymb): void}
\operation{remove\_left()}
\operation{remove\_right()}
\operation{pop\_slice():void)}
\operation{get\_slice(): SignSymb Array}
\operation{align(x:Int, y:Int): Int}
\operation{place(index: Int):(Int $\times$ Int)}
\operation{getters for style, margins}
\operation{smart setters for style, margins}
\operation{cursor moves}
\operation{events interactions}
\end{class}
\begin{class}{ControlPanel}{8, 3}
\attribute{buttons: Buttons Array}
\attribute{design: Godot Data}
\end{class}
\begin{class}{Selector}{0, -10}
\attribute{config: Yaml}
\attribute{design: Godot Data}
\attribute{\dots}
\operation{getters, smart setters}
\operation{events interaction}
\end{class}
\begin{class}{Player}{0, 6}
\attribute{design: Godot Data}
\attribute{speed: Int}
\attribute{pos: Int}
\attribute{play button}
\operation{play\_sequence(seq: Yaml):void}
\operation{getters, smart setters}
\operation{pos getter}
\operation{\dots}
\end{class}
\begin{class}{SheetElement}{15,0}
\attribute{fontSize: Int}
\attribute{design: Godot Data}
\attribute{pos: Int$\times$Int}
\attribute{textPos: Int}
\operation{getters, setters}
\end{class}
\begin{class}{SignSymb}{16, -4}
\inherit{SheetElement}
\attribute{style: String}
\attribute{picture: Godot 3D picture}
\attribute{sign: Yaml}
\operation{getters, smart setters}
\end{class}
\begin{class}{Cursor}{16, -7}
\inherit{SheetElement}
\attribute{style: String}
\attribute{picture: Godot 2D picture}
\operation{getters, smart setters}
\end{class}
\composition{Interface}{control\_panel}{1}{ControlPanel}
\composition{Interface}{work\_space}{1}{WorkSpace}
\composition{Interface}{selector}{1}{Selector}
\composition{Interface}{player}{1}{Player}
\composition{WorkSpace}{}{1..*}{SignSymb}
\composition{WorkSpace}{cursor}{1}{Cursor}
\end{tikzpicture}
\end{document}
......@@ -7,6 +7,7 @@
visage nul, sym par défaut
** DONE Explain Hands default value strange behaviour.
** TODO Add Type, id in parameters
** TODO Add punctuation
** pictures integration (hum...)
* Hands
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment