Commit 103070f0 authored by adud's avatar adud

added a clearer structure for the project (aim is to do a pdf)

parent 7ca13e94
Godot Nodes organization for the sign editor
* Node: Interface (one node to bind them all)
** Attributes
*** workSpace
*** controlPanel
*** menus
*** player
*** Insertion Mode: boolean
*** Clipboard
** Methods
*** add sign: (get from selector, put it in workspace)
*** cut: put selected data in clipboard
*** paste: put clipboard data into the workspace at the cursor
*** play: get data from workspace, put it into player
*** play_end: sync played sign with cursor in workspace
*** events interaction: for having the above methods played by the user
* Node: workSpace
* Node: workSpace (inherit Scrollable)
The most important node, contains the whole text, shown as a signSymb list.
Its role is to organize signSymbs in a grid to handle with line breaks.
It must also have a scroll, for too long texts.
** Attributes:
*** margins
*** Margins
*** Style
*** Text: signSymb array
*** Cursor
*** Marker
*** Clipboard
*** ActiveMarker: Bool (if the marker is active)
** Methods:
*** Update: Keep data sync with picture
*** Classic array operations, but at the place of the cursor (WIP)
**** iterate on slices
**** insert an element at the position 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
*** Getters for Style, Margins
*** Setters for Style, Margins (clever: update picture)
*** Move Cursor (why here? because needs a lot of information, think about
how complicated moving up is from cursor's point of view)
*** events interaction (move cursors)
* Node: Control panel
Top-bar, to control text
** Node: action button
A simple button, for doing a simple task (save, undo...), or start a
more complex one (save as, search...)
** Attributes:
*** 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
The menubar of the application, must contain at least every button on the
control panel, plus some more complex instructions (for instance, the control
panel can have only "save", but you must have "save as" in the menu)
* Node: SheetElements
** Attributes:
*** fontSize (depends on the font size)
......@@ -47,4 +71,21 @@ Godot Nodes organization for the sign editor
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 navigate between signs without mouse & keyboard
Used to show where you are pointing at.
* Node: Selector (wip in the interface)
** Attributes:
*** config (configuration of one sign)
*** design
** Methods:
*** getters, smart setters
*** events interaction (will catch almost all keyboard events)
* Node: Player
** Attributes
*** Design
*** speed
*** pos
*** (play pause) button
** Methods
*** Play sequence => Interpolation & animation will be done "on the fly"
*** Design getter, smart setter
*** pos getter
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment