diff --git a/doxygen.dox b/doxygen.dox new file mode 100644 index 00000000..408cd347 --- /dev/null +++ b/doxygen.dox @@ -0,0 +1,265 @@ +# Doxyfile 1.5.6 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = "EWOL/ETK: " +PROJECT_NUMBER = +OUTPUT_DIRECTORY = "doxygen/" +CREATE_SUBDIRS = YES +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = YES +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +TYPEDEF_HIDES_STRUCT = NO +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +SYMBOL_CACHE_SIZE = 0 +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = YES +EXTRACT_ANON_NSPACES = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = YES +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_MEMBERS_CTORS_1ST = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file($line): $text" +WARN_LOGFILE = "doxygen.log" +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = sources external/etk external/parsersvg +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cpp \ + *.h +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = data/dox/ +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = NO +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = data/dox/doxygen.css +HTML_ALIGN_MEMBERS = YES +HTML_DYNAMIC_SECTIONS = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = YES +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = +QHP_VIRTUAL_FOLDER = doc +QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 1 +GENERATE_TREEVIEW = YES +USE_INLINE_TREES = NO +TREEVIEW_WIDTH = 250 +FORMULA_FONTSIZE = 10 +SEARCHENGINE = YES +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +LATEX_SOURCE_CODE = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = NO +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +DOT_FONTNAME = FreeSans +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = YES +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +CALLER_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +#DOT_PATH = /usr/bin/dot +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = YES +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/sources/ewol/compositing/Compositing.cpp b/sources/ewol/compositing/Compositing.cpp new file mode 100644 index 00000000..3abc0cc4 --- /dev/null +++ b/sources/ewol/compositing/Compositing.cpp @@ -0,0 +1,46 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + + +#include + + +ewol::Compositing::Compositing(void) +{ + // nothing to do +} + + +ewol::Compositing::~Compositing(void) +{ + // nothing to do +} + + +void ewol::Compositing::ResetMatrix(void) +{ + m_matrixApply.Identity(); +} + + +void ewol::Compositing::Tranlate(etk::Vector3D vect) +{ + m_matrixApply *= ewol::matrix::Translate(vect.x, vect.y, vect.z); +} + + +void ewol::Compositing::Rotate(etk::Vector3D vect) +{ + m_matrixApply *= ewol::matrix::rotate(vect.x, vect.y, vect.z); +} + + +void ewol::Compositing::Scale(etk::Vector3D vect) +{ + m_matrixApply *= ewol::matrix::Scale(vect.x, vect.y, vect.z); +} \ No newline at end of file diff --git a/sources/ewol/compositing/Compositing.h b/sources/ewol/compositing/Compositing.h new file mode 100644 index 00000000..fd6d5bcc --- /dev/null +++ b/sources/ewol/compositing/Compositing.h @@ -0,0 +1,53 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_COMPOSITING_H__ +#define __EWOL_COMPOSITING_H__ + +namespace ewol +{ + class Compositing + { + protected: + etk::Matrix4 m_matrixApply; + public: + /** + * @brief generic constructor + */ + Compositing(void); + /** + * @brief Generic destructor + */ + virtual ~Compositing(void); + /** + * @brief Virtal pure function that request the draw of all openGl elements + */ + virtual Draw(void)=0; + /** + * @brief Reset to the eye matrix the openGL mouving system + */ + void ResetMatrix(void); + /** + * @brief Translate the current display of this element + * @param[in] vect The translation vector to apply at the transformation matrix + */ + void Tranlate(etk::Vector3D vect); + /** + * @brief Rotate the curent display of this element + * @param[in] vect The rotation vector to apply at the transformation matrix + */ + void Rotate(etk::Vector3D vect); + /** + * @brief Scale the current diaplsy of this element + * @param[in] vect The scaling vector to apply at the transformation matrix + */ + void Scale(etk::Vector3D vect); + }; +}; + +#endif diff --git a/sources/ewol/compositing/Cursor.cpp b/sources/ewol/compositing/Cursor.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/Cursor.h b/sources/ewol/compositing/Cursor.h new file mode 100644 index 00000000..e114ede3 --- /dev/null +++ b/sources/ewol/compositing/Cursor.h @@ -0,0 +1,24 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_CURSOR_H__ +#define __EWOL_CURSOR_H__ + +namespace ewol +{ + class Cursor : public ewol::Compositing + { + protected: + + public: + + }; +}; + +#endif + diff --git a/sources/ewol/compositing/Draw.cpp b/sources/ewol/compositing/Draw.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/Draw.h b/sources/ewol/compositing/Draw.h new file mode 100644 index 00000000..b114fb27 --- /dev/null +++ b/sources/ewol/compositing/Draw.h @@ -0,0 +1,24 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_DRAW_H__ +#define __EWOL_DRAW_H__ + +namespace ewol +{ + class Draw : public ewol::Compositing + { + protected: + + public: + + }; +}; + +#endif + diff --git a/sources/ewol/compositing/DrawVectorial.cpp b/sources/ewol/compositing/DrawVectorial.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/DrawVectorial.h b/sources/ewol/compositing/DrawVectorial.h new file mode 100644 index 00000000..480f0b93 --- /dev/null +++ b/sources/ewol/compositing/DrawVectorial.h @@ -0,0 +1,24 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_DRAW_VECTORIAL_H__ +#define __EWOL_DRAW_VECTORIAL_H__ + +namespace ewol +{ + class DrawVectorial : public ewol::Compositing + { + protected: + + public: + + }; +}; + +#endif + diff --git a/sources/ewol/compositing/Image.cpp b/sources/ewol/compositing/Image.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/Image.h b/sources/ewol/compositing/Image.h new file mode 100644 index 00000000..496ef3ea --- /dev/null +++ b/sources/ewol/compositing/Image.h @@ -0,0 +1,33 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_IMAGE_H__ +#define __EWOL_IMAGE_H__ + +namespace ewol +{ + class Image : public ewol::Compositing + { + protected: + etk::Vector2D m_size; + public: + Image(void); + ~Image(void); + void Draw(void); + void Clear(void); + void SetPos(etk::Vector3D pos); + void SetRelPos(etk::Vector3D pos); + void SetAngle(etk::Vector3D angle); + void SetColor(etk::Color color); + void SetSize(etk::Vector2D size); + // TODO : ... + }; +}; + +#endif + diff --git a/sources/ewol/compositing/Mesh.cpp b/sources/ewol/compositing/Mesh.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/Mesh.h b/sources/ewol/compositing/Mesh.h new file mode 100644 index 00000000..183630e4 --- /dev/null +++ b/sources/ewol/compositing/Mesh.h @@ -0,0 +1,24 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_MESH_H__ +#define __EWOL_MESH_H__ + +namespace ewol +{ + class Mesh : public ewol::Compositing + { + protected: + + public: + + }; +}; + +#endif + diff --git a/sources/ewol/compositing/Sprite.cpp b/sources/ewol/compositing/Sprite.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/Sprite.h b/sources/ewol/compositing/Sprite.h new file mode 100644 index 00000000..add6a36e --- /dev/null +++ b/sources/ewol/compositing/Sprite.h @@ -0,0 +1,24 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_SPRITE_H__ +#define __EWOL_SPRITE_H__ + +namespace ewol +{ + class Sprite : public ewol::Compositing + { + protected: + + public: + + }; +}; + +#endif + diff --git a/sources/ewol/compositing/Text.cpp b/sources/ewol/compositing/Text.cpp new file mode 100644 index 00000000..e69de29b diff --git a/sources/ewol/compositing/Text.h b/sources/ewol/compositing/Text.h new file mode 100644 index 00000000..b47a5e13 --- /dev/null +++ b/sources/ewol/compositing/Text.h @@ -0,0 +1,173 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __EWOL_TEXT_H__ +#define __EWOL_TEXT_H__ + +namespace ewol +{ + class TextDecoration + { + public: + etk::Color m_colorBg; + etk::Color m_colorFg; + ewol::font::mode_te m_mode; + } + + + class Text : public ewol::Compositing + { + typedef enum { + alignDisable, + alignRight, + alignLeft, + alignCenter, + alignJustify + } aligneMode_te; + + protected: + // curent Drawing position + etk::Vector3D m_position; //!< the next position to draw the text + // clipping section + etk::Vector3D m_clippingPosition; + etk::Vector3D m_clippingSize; + bool m_clippingEnable; + // Basic color + etk::Color m_color; + public: + /** + * @brief generic constructor + */ + Text(void); + /** + * @brief generic constructor + * @param[in] fontName Name of the font that might be loaded + * @param[in] fontSize Size of the font that might be loaded + */ + Text(etk::UString fontName, int32_t fontSize); + /** + * @brief generic destructor + */ + ~Text(void); + public : + /** + * @brief Draw All the refistered text in the current element on openGL + */ + void Draw(void); + /** + * @brief Clear alll tre registered element in the current element + */ + void Clear(void); + /** + * @brief Set position for the next text writen + * @param[in] pos Position of the text (in 3D) + */ + void SetPos(etk::Vector3D pos); + /** + * @brief Set relative position for the next text writen + * @param[in] pos ofset apply of the text (in 3D) + */ + void SetRelPos(etk::Vector3D pos); + /** + * @brief Set the Color of the current foreground font + * @param[in] color Color to set on foreground (for next print) + */ + void SetColor(etk::Color color); + /** + * @brief Set the background color of the font (for selected Text (not the global BG)) + * @param[in] color Color to set on background (for next print) + */ + void SetColorBG(etk::Color color); + /** + * @brief Request a clipping area for the text (next draw only) + * @param[in] pos Start position of the clipping + * @param[in] width End position of th clipping + */ + void SetClipping(etk::Vector3D pos, etk::Vector3D width); + /** + * @brief Enable/Disable the clipping (without lose the current clipping position) + * @brief newMode The new status of the clipping + */ + void SetClippingMode(bool newMode); + /** + * @brief Specify the font size (this reset the internal element of the current text (system requirement) + * @param[in] fontSize New font size + */ + void SetFontSize(int32_t fontSize); + /** + * @brief Specify the font name (this reset the internal element of the current text (system requirement) + * @param[in] fontName Current name of the selected font + */ + void SetFontName(etk::UString fontName); + /** + * @brief Specify the font property (this reset the internal element of the current text (system requirement) + * @param[in] fontName Current name of the selected font + * @param[in] fontSize New font size + */ + void SetFont(etk::UString fontName, int32_t fontSize); + /** + * @brief Specify the font mode for the next @ref Print + * @param[in] mode The font mode requested + */ + void SetFontMode(ewol::font::mode_te mode); + /** + * @brief Set the activation of the Kerning for the display (if it existed) + * @param[in] newMode Enable/Diasable the kerning on this font. + */ + void SetKerningMode(bool newMode); + /** + * @brief Request the distance field mode for this text display + * @param[in] newMode Enable/Diasable the Distance Field on this font. + * @todo : not implemented for now + */ + void SetDistanceFieldMode(bool newMode) { }; + /** + * @brief Display a compleat string in the current element. + * @param[in] text The string to display. + */ + void Print(etk::UString& text); + /** + * @brief Display a compleat string in the current element with the generic decoration specification. + * \ ... \ For bold text. + * \ ... \ For italic text. + * \ ... \ To specify a color. + * \ ... \ To align left. + * \ ... \ To align right. + * \ ... \ To align center. + * \ ... \ To align justify. + * @param[in] text The string to display. + */ + void PrintDecorated(etk::UString& text); + /** + * @brief Display a compleat string in the current element whith specific decorations (advence mode). + * @param[in] text The string to display. + * @param[in] decoration The text decoration for the text that might be display (if the vector is smaller, the last parameter is get) + */ + void Print(etk::UString& text, etk::Vector& decoration); + /** + * @brief Display the current char in the current element (note that the kerning is availlable if the position is not changed) + * @param[in] char that might be dispalyed + */ + void Print(uniChar_t charcode); + /** + * @brief This generate the possibility to generate the big text property + * @param[in] startTextpos The x text start position of the display. + * @param[in] stopTextPos The x text stop position of the display. + * @param[in] alignement mode of alignement for the Text. + * @note The text align in center change of line every display done (even if it was just a char) + */ + void SetTextAlignement(float startTextpos, float stopTextPos, aligneMode_te alignement); + /** + * @brief Disable the alignement system + */ + void DisableAlignement(void); + }; +}; + +#endif +