billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=ee6a319f174217f03cff52e722d3af6c0ca170a9

commit ee6a319f174217f03cff52e722d3af6c0ca170a9
Author: Boris Faure <bill...@gmail.com>
Date:   Wed Jul 22 23:16:23 2015 +0200

    add some documentation
---
 DESIGN.md     | 45 +++++++++++++++++++++++++++++++++++++++++++++
 src/bin/win.c | 25 +++++++++++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git a/DESIGN.md b/DESIGN.md
new file mode 100644
index 0000000..ba46615
--- /dev/null
+++ b/DESIGN.md
@@ -0,0 +1,45 @@
+A simple documentation to navige through the C files:
+
+* `src/bin/about.c` handles the About widget
+* `src/bin/col.c` is about the colors handled by the terminal
+* `src/bin/config.c`: how the configuration is saved/loaded/updated
+* `src/bin/controls.c`: the widget when a right-click is done on a terminal
+* `src/bin/dbus.c`: all the D-Bus interactions
+* `src/bin/extns.c` lists file extensions supported
+* `src/bin/gravatar.c` hosts the code to show a Gravatar when hovering an 
email address
+* `src/bin/ipc.c`: various IPC functions
+* `src/bin/keyin.c`: handles key input
+* `src/bin/main.c` host the main() function: setup/shutdown code
+* `src/bin/media.c` handles media interactions like image popups, inlining 
movies
+* `src/bin/miniview.c`: the miniview of the history
+* `src/bin/options.c`: the settings widget
+* `src/bin/options_behavior.c`: the settings panel that handles the Behaviors
+* `src/bin/options_colors.c`: the settings panel about colors in the terminal
+* `src/bin/options_elm.c`: the settings panel to configure Elementary
+* `src/bin/options_font.c`: the settings panel to choose the Font
+* `src/bin/options_helpers.c`: the settings panel on Helpers
+* `src/bin/options_keys.c`: the settings panel to configure key bindings
+* `src/bin/options_theme.c`: the settings panel to choose a theme
+* `src/bin/options_themepv.c`: the widget that handles theme previews
+* `src/bin/options_video.c`: the settings panel to configure video rendering
+* `src/bin/options_wallpaper.c`: the settings panel to configure a wallpaper
+* `src/bin/sel.c`: the tab selector
+* `src/bin/termcmd.c` handles custom terminology commands
+* `src/bin/termio.c`: the core term widget with the textgrid
+* `src/bin/termiolink.c`: link detection in the terminal
+* `src/bin/termpty.c`: the PTY interaction
+* `src/bin/termptydbl.c`: code to hande double-width characters
+* `src/bin/termptyesc.c`: escape codes parsing
+* `src/bin/termptyext.c`: extented terminology escape handling
+* `src/bin/termptygfx.c`: charset translations
+* `src/bin/termptyops.c`: handling history
+* `src/bin/termptysave.c`: compression of the backlog
+* `src/bin/tyalpha.c`: the `tyalpha` tool
+* `src/bin/tybg.c`: the `tybg` tool
+* `src/bin/tycat.c`: the `tycat` tool
+* `src/bin/tyls.c`: the `tyls` tool
+* `src/bin/typop.c`: the `typop` tool
+* `src/bin/tyq.c`: the `tyq` tool
+* `src/bin/utf8.c`: handles conversion between Eina_Unicode and char *
+* `src/bin/utils.c`: small utilitarian functions
+* `src/bin/win.c`: handles the windows, splits, tabs
diff --git a/src/bin/win.c b/src/bin/win.c
index a17643c..a674922 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -15,6 +15,31 @@
 #include "controls.h"
 #include "term_container.h"
 
+
+/**
+ * Design:
+ * A terminal widget is Term. It hosts various Evas_Object, like a `termio`
+ * handling the textgrid.
+ * It is hosted in a Term_Container of type Solo.
+ * On Term_Container:
+ *   It is a generic structure with a set of function pointers. It is a simple
+ *   way to objectify and have genericity between a Window, a Split or Tabs.
+ * Solo, Win, Split, Tabs have a Term_Container as their first field and thus
+ * can be casted to Term_Container to have access to those APIs.
+ *
+ * Solo is the simplest container, hosting just a Term.
+ * Win is a window and has only one container child.
+ * Split is a widget to separate an area of the screen in 2 and thus has 2
+ * children that can be either Solo or Tabs.
+ * Tabs is a Term_Container containing many containers (at the moment, only
+ * Solo ones) and have a system of tabs.
+ *
+ * All the windows are in the `wins` list.
+ */
+
+
+
+
 /* specific log domain to help debug only terminal code parser */
 int _win_log_dom = -1;
 

-- 


Reply via email to