diff --git a/data/edn.desktop b/data/edn.desktop
index dfddb4f..49f6d41 100644
--- a/data/edn.desktop
+++ b/data/edn.desktop
@@ -1,14 +1,27 @@
[Desktop Entry]
-Version=0.3.0
Name=Edn : Editeur de N'ours
-Exec=edn
-Icon=Edn
+Exec=edn %U
+Icon=/usr/share/edn/icon.png
Terminal=false
Type=Application
-Categories=Development;Utility;TextEditor;
+Categories=Development;
GenericName=Text editor
GenericName[en]=Text editor
GenericName[nl]=Tekst verwerker
-GenericName[fr]=éditeur de text
+GenericName[fr]=Éditeur de text
Comment=Code editor for c, c++, php, bash, xml ...
Comment[fr]=éditeur de text pour les language c, c++, php, bash, xml ...
+OnlyShowIn=GNOME;Unity;
+MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https;
+StartupNotify=true
+Actions=New;
+
+[Desktop Action New]
+Name=Open a New Window
+Name[fr]=Ouvrir une nouvelle fenêtre
+Name[nl]=Nieuw venster openen
+Name[en]=Open a New Window
+Exec=edn
+
+#desktop-file-validate edn.desktop
+#sudo cp xxx /usr/share/applications/
\ No newline at end of file
diff --git a/data/languages/asm/highlight.xml b/data/languages/asm/highlight.xml
index 0037cee..cb7cee7 100644
--- a/data/languages/asm/highlight.xml
+++ b/data/languages/asm/highlight.xml
@@ -6,52 +6,41 @@
commentDoxygen
- /\*\*
- \*/
+ /\*\*.*\*/
comment
- /\*
- \*/
+ /\*.*\*/
preprocesseur
- #[ \t]*if 0
- #endif|#else
- \
+ #[ \t]*if 0.*#(regexif|else)
preprocesseur
- #
- \n
- \
+ #.*$
commentDoxygen
- //!
- \n
+ //!.*$
SYNTAX_ERROR
- //[ \t]*TODO[ \t]*:
- \n
- \
+ //[ \t]*TODO[ \t]*:.*$
comment
- (//|@)
- \n
- \
+ (//|@).*$
keyword
- \@smull|ldrsh|smlal|stmdb|mul|mla|umull|ldr|add|str|mov|subs|bgt|ldmia|stmia|ldmfd|cmp|sub|strd|stmfd|bne|bhi|ldrd|mvn\@
+ \@smull|ldrsh|smlal|stmdb|mul|mla|umull|ldr|add|str|mov|subs|bgt|ldmia|stmia|ldmfd|cmp|sub|strd|stmfd|bne|bhi|ldrd|mvn\@
type
- \@r(10|11|12|[0-9]?)|sp|lp|lr|pc\@
+ \@r(10|11|12|[0-9]?)|sp|lp|lr|pc\@
diff --git a/data/languages/bash/highlight.xml b/data/languages/bash/highlight.xml
index 4366dd8..6f32014 100644
--- a/data/languages/bash/highlight.xml
+++ b/data/languages/bash/highlight.xml
@@ -4,45 +4,37 @@
commentDoxygen
- #!
- \n
- \
+ #!(\\[\\\n]|.)*$
comment
- #
- \n
- \
+ #(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
-
+ '(\\[\\']|.)*'
keyword
- \@for|done|do|while|in|if|elif|then|else|fi\@
+ \@for|done|do|while|in|if|elif|then|else|fi\@
keyword
- [\$]+[a-zA-Z_][a-zA-Z0-9_]*
+ [\$]+[a-zA-Z_][a-zA-Z0-9_]*
functionName
- function (\w|_)+[ \t]*\(
+ function (\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/boo/highlight.xml b/data/languages/boo/highlight.xml
index 4a3afb5..704ef55 100644
--- a/data/languages/boo/highlight.xml
+++ b/data/languages/boo/highlight.xml
@@ -4,57 +4,50 @@
SYNTAX_ERROR
- ##
- \n
+ ##.*$
comment
- #
- \n
+ #.*$
preprocesseur
- (NOTE|TODO) :
- \n
+ (NOTE|TODO) : .*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*$
doubleQuoteText
- \@'
- '
-
+ \@'(\\[\\']|.)*$
TestResultOK
- 100%
+ 100%
number
- [0-9]*%
+ [0-9]*%
TestResultOK
- \[( )*(OK|Ok|ok)( )*\]
+ \[( )*(OK|Ok|ok)( )*\]
TestResultERROR
- \[(ERREUR|Erreur|erreur)\]
+ \[(ERREUR|Erreur|erreur)\]
number
- \[( )*\]
+ \[( )*\]
macro
- ==>
+ ==>
diff --git a/data/languages/c/highlight.xml b/data/languages/c/highlight.xml
index 6db57e4..d0ea594 100644
--- a/data/languages/c/highlight.xml
+++ b/data/languages/c/highlight.xml
@@ -2,137 +2,118 @@
*.c
*.cpp
+ *.cxx
*.cc
*.h
*.hpp
+ *.hxx
+ *.m
*.mm
commentDoxygen
- /\*\*
- \*/
-
- macro
- \@[A-Z_]{4,500}\@
-
-
- keyword
- @\w*[ \t]*(\[(in|out| |,)*\])?[ \t]*([a-zA-Z0-9\-_]*)
-
-
-
+ /\*\*.*(\*/|\e)
SYNTAX_ERROR
- /\*[ \t]*TODO :
- \*/
+ /\*[ \t]*TODO :.*(\*/|\e)
comment
- /\*
- \*/
+ /\*.*(\*/|\e)
preprocesseur
- #[ \t]*if 0
- #endif|#else
- \
+ #[ \t]*if 0.*#(endif|else)
preprocesseur
- #
- \n
- \
+ #(\\[\\\n]|.)*$
commentDoxygen
- //!
- \n
+ //!.*$
SYNTAX_ERROR
- //[ \t]*TODO[ \t]*:
- \n
- \
+ //[ \t]*TODO[ \t]*:.*$
comment
- //
- \n
- \
+ //.*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
-
+ '((\\[\\'])|.){1,2}'
+
+
+ SYNTAX_ERROR
+ '
keyword
- \@return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof\@
+ \@return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof\@
systemFunction
- \@new|delete|try|catch|memset|fopen|fread|fwrite|fgets|fclose|printf|(f|s|diag_)printf|calloc|malloc|realloc|(cyg|sup)_([a-z]|[A-Z]|[0-9]|_)+\@
+ \@new|delete|try|catch|memset|fopen|fread|fwrite|fgets|fclose|printf|(f|s|diag_)printf|calloc|malloc|realloc|(cyg|sup)_([a-z]|[A-Z]|[0-9]|_)+\@
type
- \@bool|BOOL|char(16_t|32_t)?|double|float|u?int(8|16|32|64|128)?(_t)?|long|short|signed|size_t|unsigned|void|(I|U)(8|16|32|64|128)\@
+ \@bool|BOOL|char(16_t|32_t)?|double|float|u?int(8|16|32|64|128)?(_t)?|long|short|signed|size_t|unsigned|void|(I|U)(8|16|32|64|128)\@
type
- \@std::(vector|(u16|u32|w)?string|codecvt_utf(16|8_utf16|8)+|complex|iterator(_traits)?|tuple(_element|_size)?|pair)\@
+ \@std::(vector|(u16|u32|w)?string|codecvt_utf(16|8_utf16|8)+|complex|iterator(_traits)?|tuple(_element|_size)?|pair)\@
storageKeyword
- \@inline|const|class|virtual|private|public|protected|friend|const|extern|auto|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum\@
+ \@inline|const|class|virtual|private|public|protected|friend|const|extern|auto|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum\@
commonDefine
- \@NULL|MAX|MIN|__LINE__|__DATA__|__FILE__|__func__|__TIME__|__STDC__\@
+ \@NULL|MAX|MIN|__LINE__|__DATA__|__FILE__|__func__|__TIME__|__STDC__\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@true|TRUE|false|FALSE\@
+ \@true|TRUE|false|FALSE\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
memberClass
- \@m_[A-Za-z_0-9]*\@
+ \@m_[A-Za-z_0-9]*\@
inputFunction
- \@_[A-Za-z_0-9]*\@
+ \@_[A-Za-z_0-9]*\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
-
+ -->
diff --git a/data/languages/cmake/highlight.xml b/data/languages/cmake/highlight.xml
index c8107eb..8144806 100644
--- a/data/languages/cmake/highlight.xml
+++ b/data/languages/cmake/highlight.xml
@@ -5,53 +5,45 @@
commentDoxygen
- ##
- \n
+ ##.*$
SYNTAX_ERROR
- #[ \t]TODO[ \t]*:
- \n
- \
+ #[ \t]TODO[ \t]*:(\\[\\\n]|.)*$
comment
- #
- \n
- \
+ #(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*$
keyword
- \@foreach|message|endforeach|if|else|endif|list|file|string\@
+ \@foreach|message|endforeach|if|else|endif|list|file|string\@
systemFunction
- \@set|include_directories|add_definitions|add_library|include_directories|target_link_libraries|project|include|check_include_file|enable_testing|option|cmake_minimum_required|add_definitions|check_include_file|configure_file|include_directories|add_custom_command|add_executable|add_test\@
+ \@set|include_directories|add_definitions|add_library|include_directories|target_link_libraries|project|include|check_include_file|enable_testing|option|cmake_minimum_required|add_definitions|check_include_file|configure_file|include_directories|add_custom_command|add_executable|add_test\@
inputFunction
- ${
- }
+ \${.*}
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
diff --git a/data/languages/glsl/highlight.xml b/data/languages/glsl/highlight.xml
index 28777e7..5e745e6 100644
--- a/data/languages/glsl/highlight.xml
+++ b/data/languages/glsl/highlight.xml
@@ -7,76 +7,65 @@
commentDoxygen
- /\*\*
- \*/
+ /\*\*.*\*/
comment
- /\*
- \*/
+ /\*.*\*/
preprocesseur
- #[ \t]*if 0
- #endif|#else
- \
+ #[ \t]*if 0(\\[\\\n]|.)*#(endif|else)
preprocesseur
- #
- \n
- \
+ #(\\[\\\n]|.)*$
commentDoxygen
- //!
- \n
+ //!(\\[\\\n]|.)*$
SYNTAX_ERROR
- //[ \t]*TODO[ \t]*:
- \n
- \
+ //[ \t]*TODO[ \t]*:(\\[\\\n]|.)*$
comment
- //
- \n
- \
+ //(\\[\\\n]|.)*$
keyword
- \@return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof\@
+ \@return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof\@
type
- \@void|bool|float|int|(vec|mat|ivect|bvect)[2-4]\@
+ \@void|bool|float|int|(vec|mat|ivect|bvect)[2-4]\@
storageKeyword
- \@varying|uniform|attribute|precision|mediump\@
+ \@varying|uniform|attribute|precision|mediump\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@true|false\@
+ \@true|false\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/in/highlight.xml b/data/languages/in/highlight.xml
index 777b7ee..fc16d28 100644
--- a/data/languages/in/highlight.xml
+++ b/data/languages/in/highlight.xml
@@ -4,43 +4,37 @@
preprocesseur
- #
- \n
- \
+ #(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*$
doubleQuoteText
- '
- '
-
+ '(\\[\\']|.)*$
keyword
- \@menu|endmenu|comment|if|endif|help|default|choice|endchoice|prompt|depends on|config\@
+ \@menu|endmenu|comment|if|endif|help|default|choice|endchoice|prompt|depends on|config\@
type
- \@int|hex|bool|string\@
+ \@int|hex|bool|string\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/java/highlight.xml b/data/languages/java/highlight.xml
index d76fb75..68e3a55 100644
--- a/data/languages/java/highlight.xml
+++ b/data/languages/java/highlight.xml
@@ -4,84 +4,73 @@
commentDoxygen
- /\*\*
- \*/
+ /\*\*.*\*/
comment
- /\*
- \*/
+ /\*.*\*/
commentDoxygen
- //!
- \n
+ //!(\\[\\\n]|.)*$
SYNTAX_ERROR
- //[ \t]*TODO[ \t]*:
- \n
- \
+ //[ \t]*TODO[ \t]*:(\\[\\\n]|.)*$
comment
- //
- \n
- \
+ //(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
-
+ '(\\[\\']|.)*'
keyword
- \@return|goto|if|else|case|default|switch|break|continue|while|do|for\@
+ \@return|goto|if|else|case|default|switch|break|continue|while|do|for\@
systemFunction
- \@new|try|catch|print\@
+ \@new|try|catch|print\@
type
- \@boolean|byte|char|double|float|int|long|short|String|Object|Thread|void|enum\@
+ \@boolean|byte|char|double|float|int|long|short|String|Object|Thread|void|enum\@
storageKeyword
- \@import|package|extends|Override|implements|const|class|abstract|private|public|protected|final|const|static|transiant|volatile|interface@
+ \@import|package|extends|Override|implements|const|class|abstract|private|public|protected|final|const|static|transiant|volatile|interface@
commonDefine
- \@null\@
+ \@null\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@true|false\@
+ \@true|false\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/json/highlight.xml b/data/languages/json/highlight.xml
index 2c54042..a8fe3db 100644
--- a/data/languages/json/highlight.xml
+++ b/data/languages/json/highlight.xml
@@ -4,31 +4,29 @@
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
keyword
- \{|\}|\[|\]
+ \{|\}|\[|\]
error
- :|,
+ :|,
functionName
- ([a-zA-Z0-9]|-|_)*
+ ([a-zA-Z0-9]|-|_)*
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@true|false\@
+ \@true|false\@
diff --git a/data/languages/lua/highlight.xml b/data/languages/lua/highlight.xml
index 19cdbfe..ad52fbf 100644
--- a/data/languages/lua/highlight.xml
+++ b/data/languages/lua/highlight.xml
@@ -4,57 +4,49 @@
comment
- \-\-\[\[
- \-\-\]\]
+ \-\-\[\[.*\-\-\]\]
SYNTAX_ERROR
- \-\-[ \t]*TODO[ \t]*:
- \n
- \
+ \-\-[ \t]*TODO[ \t]*:(\\[\\\n]|.)*$
comment
- \-\-
- \n
- \
+ \-\-(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
+ '(\\[\\']|.)*'
keyword
- \@and|break|do|else|elseif|end|for|function|if|in|local|nil|not|or|repeat|return|then|until|while\@
+ \@and|break|do|else|elseif|end|for|function|if|in|local|nil|not|or|repeat|return|then|until|while\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@true|false\@
+ \@true|false\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|~=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|~=|<{1,2}|>{1,2}|&&|\{|\}|
diff --git a/data/languages/makefile/highlight.xml b/data/languages/makefile/highlight.xml
index 1dacdef..caf22df 100644
--- a/data/languages/makefile/highlight.xml
+++ b/data/languages/makefile/highlight.xml
@@ -6,38 +6,33 @@
preprocesseur
- #
- \n
- \
+ #(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
+ '(\\[\\']|.)*'
type
- \@if|ifeq|ifneq|else|endif|define|endef\@
+ \@if|ifeq|ifneq|else|endif|define|endef\@
keyword
- \$\([a-zA-Z_][a-zA-Z0-9_]*\)
+ \$\([a-zA-Z_][a-zA-Z0-9_]*\)
functionName
- \$\((call|info|error|warning|shell|patsubst|lastword|wildcard|addprefix|foreach|subst|word|eval)
+ \$\((call|info|error|warning|shell|patsubst|lastword|wildcard|addprefix|foreach|subst|word|eval)
boolean
- :=|?=|!=|=
+ :=|?=|!=|=
diff --git a/data/languages/matlab/highlight.xml b/data/languages/matlab/highlight.xml
index d100ec5..ebb5afe 100644
--- a/data/languages/matlab/highlight.xml
+++ b/data/languages/matlab/highlight.xml
@@ -5,58 +5,49 @@
commentDoxygen
- %%
- \n
+ %%(\\[\\\n]|.)*$
comment
- %
- \n
- \
+ %(\\[\\\n]|.)*$
doubleQuoteText
- "
- ("|\n)
- \
+ ".*($|")
doubleQuoteText
- '
- ('|\n)
-
+ '.*($|')
preprocesseur
- global( |\t)+
- \n
- \
+ global( |\t)+(\\[\\\n]|.)*$
keyword
- \@return|goto|if|else|case|default|switch|break|continue|while|do|for|otherwise|end\@
+ \@return|goto|if|else|case|default|switch|break|continue|while|do|for|otherwise|end\@
boolean
- \@true|false\@
+ \@true|false\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
diff --git a/data/languages/php/highlight.xml b/data/languages/php/highlight.xml
index 6694404..1b9bac6 100644
--- a/data/languages/php/highlight.xml
+++ b/data/languages/php/highlight.xml
@@ -7,70 +7,61 @@
comment
- /\*
- \*/
+ /\*.*\*/
SYNTAX_ERROR
- //[ \t]*TODO[ \t]*:
- \n
- \
+ //[ \t]*TODO[ \t]*:(\\[\\\n]|.)*$
comment
- #
- \n
+ #(\\[\\\n]|.)*$
comment
- //
- \n
- \
+ //(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
+ '(\\[\\']|.)*'
keyword
- [\$]+[a-zA-Z_][a-zA-Z0-9_]*
+ [\$]+[a-zA-Z_][a-zA-Z0-9_]*
type
- \@array|bool|boolean|double|float|int|integer|numeric|object|resource|string|unset\@
+ \@array|bool|boolean|double|float|int|integer|numeric|object|resource|string|unset\@
storageKeyword
- \@abstract|and|as|break|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|interface|isset|list|namespace|new|or|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor\@
+ \@abstract|and|as|break|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|interface|isset|list|namespace|new|or|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor\@
commonDefine
- \@doubleval|floatval|gettype|intval|print_r|serialize|settype|strval|unserialize|var_dump|var_export\@
+ \@doubleval|floatval|gettype|intval|print_r|serialize|settype|strval|unserialize|var_dump|var_export\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@true|TRUE|false|FALSE\@
+ \@true|TRUE|false|FALSE\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<|>|&&|\{|\}|
+ ==|<=|>=|!=|<|>|&&|\{|\}|
diff --git a/data/languages/python/highlight.xml b/data/languages/python/highlight.xml
index 87306fa..83b8b21 100644
--- a/data/languages/python/highlight.xml
+++ b/data/languages/python/highlight.xml
@@ -4,73 +4,70 @@
comment
- """
- """
+ """.*"""
+
+
+ comment
+ '''.*'''
commentDoxygen
- ##
- \n
+ ##(\\[\\\n]|.)*$
comment
- #
- \n
- \
+ #(\\[\\\n]|.)*$
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- '
- '
+ '((\\[\\'])|.)*'
keyword
- \@if|else|elif|break|pass|continue|while|do|for|in|return\@
+ \@if|else|elif|break|pass|continue|while|do|for|in|return\@
systemFunction
- \@print|len|range|del|__init__|self|os\.|sys\.|path\.\@
+ \@print|len|range|del|__init__|self|os\.|sys\.|path\.\@
type
- \@bool|BOOL|char|double|float\@
+ \@bool|BOOL|char|double|float\@
storageKeyword
- \@def|class|import|from|as|try|except\@
+ \@def|class|import|from|as|try|except\@
number
- \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
+ \@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@
boolean
- \@True|False\@
+ \@True|False\@
macro
- \@[A-Z_][A-Z_0-9]{3,500}\@
+ \@[A-Z_][A-Z_0-9]{3,500}\@
functionName
- \@(\w|_)+[ \t]*\(
+ \@(\w|_)+[ \t]*\(
boolean
- ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
+ ==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}|
macro
- ([A-Z]|_){4,500}
+ ([A-Z]|_){4,500}
doxElem
diff --git a/data/languages/xml/highlight.xml b/data/languages/xml/highlight.xml
index 133de65..31c99a8 100644
--- a/data/languages/xml/highlight.xml
+++ b/data/languages/xml/highlight.xml
@@ -5,30 +5,33 @@
comment
- <!\-\-
- \-\->
+ ]]>
+
doubleQuoteText
- "
- "
- \
+ "(\\[\\"]|.)*"
doubleQuoteText
- \@'
- ('|\n)
-
+ \@'.*('|\n)
error
- <\?\w*|\?>
+ <\?\w*|\?>
+
functionName
- </[0-9a-zA-Z_]+|<[0-9a-zA-Z_]+|/>|>
+
+
diff --git a/sources/appl/Buffer.cpp b/sources/appl/Buffer.cpp
index d530708..edeaa2c 100644
--- a/sources/appl/Buffer.cpp
+++ b/sources/appl/Buffer.cpp
@@ -8,6 +8,7 @@
#include
+#include
#include
#include
#include
@@ -27,7 +28,7 @@ appl::Buffer::Iterator& appl::Buffer::Iterator::operator++ () {
m_current = 0;
return *this;
}
- if (m_data != NULL) {
+ if (m_data != nullptr) {
if (m_current < m_data->m_data.size() ) {
int8_t nbChar = utf8::theoricLen(m_data->m_data[m_current]);
if (nbChar != 0) {
@@ -45,7 +46,7 @@ appl::Buffer::Iterator& appl::Buffer::Iterator::operator++ () {
appl::Buffer::Iterator& appl::Buffer::Iterator::operator-- () {
m_value = u32char::Null;
- if (m_data != NULL) {
+ if (m_data != nullptr) {
if (m_current > 0) {
int32_t iii = -1;
while( utf8::theoricFirst(m_data->m_data[m_current+iii]) == false
@@ -68,7 +69,7 @@ char32_t appl::Buffer::Iterator::operator* () {
if (m_value != u32char::Null) {
return m_value;
}
- if (m_data == NULL) {
+ if (m_data == nullptr) {
APPL_ERROR("request an element that iterator not link");
return m_value;
}
@@ -127,10 +128,10 @@ appl::Buffer::Buffer() :
m_cursorSelectPos(-1),
m_cursorPreferredCol(-1),
m_nbLines(1),
- m_highlight(NULL) {
+ m_highlight(nullptr) {
addObjectType("appl::Buffer");
static int32_t bufferBaseId = 0;
- m_fileName = "No Name " + std::to_string(bufferBaseId);
+ m_fileName = "No Name " + etk::to_string(bufferBaseId);
bufferBaseId++;
addEventId(eventIsModify);
addEventId(eventIsSave);
@@ -138,6 +139,10 @@ appl::Buffer::Buffer() :
addEventId(eventChangeName);
}
+void appl::Buffer::init() {
+ ewol::Object::init();
+}
+
appl::Buffer::~Buffer() {
}
@@ -698,13 +703,13 @@ void appl::Buffer::setHighlightType(const std::string& _type) {
return;
}
m_highlightType = _type;
- m_highlight = appl::Highlight::keep(resourceName);
+ m_highlight = appl::Highlight::create(resourceName);
generateHighLightAt(0, m_data.size());
}
void appl::Buffer::regenerateHighLightAt(int64_t _pos, int64_t _nbDeleted, int64_t _nbAdded) {
// prevent ERROR...
- if (NULL == m_highlight) {
+ if (nullptr == m_highlight) {
return;
}
// prevent No data Call
@@ -761,10 +766,8 @@ void appl::Buffer::regenerateHighLightAt(int64_t _pos, int64_t _nbDeleted, int64
}
for (auto it(m_HLDataPass1.begin()+elemStart); it != m_HLDataPass1.end(); ++it) {
//APPL_DEBUG("move element=" << i);
- it->beginStart += _nbAdded - _nbDeleted;
- it->beginStop += _nbAdded - _nbDeleted;
- it->endStart += _nbAdded - _nbDeleted;
- it->endStop += _nbAdded - _nbDeleted;
+ it->start += _nbAdded - _nbDeleted;
+ it->stop += _nbAdded - _nbDeleted;
}
//Regenerate Element inside range
if ( startId == -1
@@ -773,13 +776,13 @@ void appl::Buffer::regenerateHighLightAt(int64_t _pos, int64_t _nbDeleted, int64
generateHighLightAt(0, m_data.size());
} else if(-1 == startId) {
//APPL_DEBUG("******* Regenerate START");
- generateHighLightAt(0, m_HLDataPass1[0].beginStart, 0);
+ generateHighLightAt(0, m_HLDataPass1[0].start, 0);
} else if(-1 == stopId) {
//APPL_DEBUG("******* Regenerate STOP");
- generateHighLightAt(m_HLDataPass1[m_HLDataPass1.size() -1].endStop, m_data.size(), m_HLDataPass1.size());
+ generateHighLightAt(m_HLDataPass1[m_HLDataPass1.size() -1].stop, m_data.size(), m_HLDataPass1.size());
} else {
//APPL_DEBUG("******* Regenerate RANGE");
- generateHighLightAt(m_HLDataPass1[startId].endStop, m_HLDataPass1[startId+1].beginStart, startId+1);
+ generateHighLightAt(m_HLDataPass1[startId].stop, m_HLDataPass1[startId+1].start, startId+1);
}
}
@@ -828,7 +831,7 @@ void appl::Buffer::findMainHighLightPosition(int64_t _startPos,
S=-1 *************** E
*/
for (size_t iii = 0; iii < m_HLDataPass1.size(); ++iii) {
- if (m_HLDataPass1[iii].endStop > _startPos) {
+ if (m_HLDataPass1[iii].stop > _startPos) {
break;
}
_startId = iii;
@@ -849,7 +852,7 @@ void appl::Buffer::findMainHighLightPosition(int64_t _startPos,
elemStart = _startId+1;
}
for (size_t iii = elemStart; iii < m_HLDataPass1.size(); ++iii) {
- if (m_HLDataPass1[iii].beginStart > _endPos) {
+ if (m_HLDataPass1[iii].start > _endPos) {
_stopId = iii;
break;
}
@@ -857,7 +860,7 @@ void appl::Buffer::findMainHighLightPosition(int64_t _startPos,
}
void appl::Buffer::generateHighLightAt(int64_t _pos, int64_t _endPos, int64_t _addingPos) {
- if (NULL == m_highlight) {
+ if (nullptr == m_highlight) {
return;
}
//APPL_DEBUG("area : ("< _pos) {
+ if ( m_HLDataPass1[iii].start <= _pos
+ && m_HLDataPass1[iii].stop > _pos) {
return &m_HLDataPass1[iii];
}
- if(m_HLDataPass1[iii].beginStart > _pos) {
- return NULL;
+ if(m_HLDataPass1[iii].start > _pos) {
+ return nullptr;
}
}
- return NULL;
+ return nullptr;
}
void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, const appl::Buffer::Iterator& _HLStart, int64_t _nbLines) {
_MData.posHLPass1 = 0;
_MData.posHLPass2 = 0;
- if (NULL == m_highlight) {
+ if (nullptr == m_highlight) {
return;
}
//int64_t timeStart = ewol::getTime();
@@ -909,24 +912,24 @@ void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, const ap
endSearch = m_HLDataPass1.size();
}
int64_t kkk;
- for (kkk = etk_max(startId, 0); kkk < endSearch; ++kkk) {
+ for (kkk = std::max(startId, (int64_t)0); kkk < endSearch; ++kkk) {
// empty section :
if (kkk == 0) {
- if (HLStartPos < m_HLDataPass1[kkk].beginStart) {
+ if (HLStartPos < m_HLDataPass1[kkk].start) {
APPL_VERBOSE(" == > (empty section 1 ) kkk=" << kkk <<
" start=" << HLStartPos <<
- " stop=" << m_HLDataPass1[kkk].beginStart );
+ " stop=" << m_HLDataPass1[kkk].start );
m_highlight->parse2(HLStartPos,
- m_HLDataPass1[kkk].beginStart,
+ m_HLDataPass1[kkk].start,
_MData.HLData,
m_data);
} // else : nothing to do ...
} else {
APPL_VERBOSE(" == > (empty section 2 ) kkk=" << kkk <<
- " start=" << m_HLDataPass1[kkk-1].endStop <<
- " stop=" << m_HLDataPass1[kkk].beginStart );
- m_highlight->parse2(m_HLDataPass1[kkk-1].endStop,
- m_HLDataPass1[kkk].beginStart,
+ " start=" << m_HLDataPass1[kkk-1].stop <<
+ " stop=" << m_HLDataPass1[kkk].start );
+ m_highlight->parse2(m_HLDataPass1[kkk-1].stop,
+ m_HLDataPass1[kkk].start,
_MData.HLData,
m_data);
}
@@ -938,9 +941,9 @@ void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, const ap
//if( k < (int32_t)m_HLDataPass1.size()) {
if (m_HLDataPass1.size() != 0) {
APPL_VERBOSE(" == > (empty section 3 ) kkk=" << kkk <<
- " start=" << m_HLDataPass1[kkk-1].endStop <<
+ " start=" << m_HLDataPass1[kkk-1].stop <<
" stop=" << HLStop );
- m_highlight->parse2(m_HLDataPass1[kkk-1].endStop,
+ m_highlight->parse2(m_HLDataPass1[kkk-1].stop,
HLStop,
_MData.HLData,
m_data);
@@ -961,15 +964,15 @@ void appl::Buffer::hightlightGenerateLines(appl::DisplayHLData& _MData, const ap
appl::HighlightInfo* appl::Buffer::getElementColorAtPosition(appl::DisplayHLData& _MData, int64_t _pos) {
- int64_t start = etk_max(0, _MData.posHLPass2-1);
+ int64_t start = std::max((int64_t)0, _MData.posHLPass2-1);
for (int64_t iii=start; iii<(int32_t)_MData.HLData.size(); iii++) {
_MData.posHLPass2 = iii;
- if( _MData.HLData[iii].beginStart <= _pos
- && _MData.HLData[iii].endStop > _pos)
+ if( _MData.HLData[iii].start <= _pos
+ && _MData.HLData[iii].stop > _pos)
{
return &_MData.HLData[iii];
}
- if(_MData.HLData[iii].beginStart > _pos) {
+ if(_MData.HLData[iii].start > _pos) {
return getElementColorAtPosition(_pos, _MData.posHLPass1);
}
}
diff --git a/sources/appl/Buffer.h b/sources/appl/Buffer.h
index 4dd1042..9891212 100644
--- a/sources/appl/Buffer.h
+++ b/sources/appl/Buffer.h
@@ -40,7 +40,7 @@ namespace appl {
*/
Iterator():
m_current(0),
- m_data(NULL),
+ m_data(nullptr),
m_value(u32char::Null) {
// nothing to do ...
};
@@ -70,7 +70,7 @@ namespace appl {
*/
virtual ~Iterator() {
m_current = 0;
- m_data = NULL;
+ m_data = nullptr;
m_value = u32char::Null;
};
/**
@@ -78,7 +78,7 @@ namespace appl {
* @return true if the element is present in buffer
*/
operator bool () const {
- if (m_data == NULL) {
+ if (m_data == nullptr) {
return false;
}
if (m_current >= m_data->m_data.size()) {
@@ -94,7 +94,7 @@ namespace appl {
* @return true if the element is present in buffer
*/
operator int64_t () const {
- if (m_data == NULL) {
+ if (m_data == nullptr) {
return 0;
}
if (m_current < 0) {
@@ -217,7 +217,7 @@ namespace appl {
* @return The requested position.
*/
int64_t getPos() const {
- if (m_data == NULL) {
+ if (m_data == nullptr) {
return 0;
}
if (m_current < 0) {
@@ -292,8 +292,11 @@ namespace appl {
static const char* const eventIsSave;
static const char* const eventSelectChange;
static const char* const eventChangeName;
- public:
+ protected:
Buffer();
+ void init();
+ public:
+ DECLARE_FACTORY(Buffer);
virtual ~Buffer();
private:
bool m_hasFileName; //!< when new file, the buffer has no name ==> but it might be reference with a single name ...
@@ -381,14 +384,14 @@ namespace appl {
* @return position of the start selection.
*/
int64_t getStartSelectionPos() {
- return etk_min(m_cursorPos, m_cursorSelectPos);
+ return std::min(m_cursorPos, m_cursorSelectPos);
}
/**
* @brief Get the Stop position of the selection.
* @return position of the stop selection.
*/
int64_t getStopSelectionPos() {
- return etk_max(m_cursorPos, m_cursorSelectPos);
+ return std::max(m_cursorPos, m_cursorSelectPos);
}
protected:
float m_cursorPreferredCol; //!< position of the cursor when up and down is done.
@@ -588,7 +591,7 @@ namespace appl {
protected:
std::string m_highlightType; //!< Name of the highlight type
- ewol::object::Shared m_highlight; //!< internal link with the Highlight system
+ std::shared_ptr m_highlight; //!< internal link with the Highlight system
std::vector m_HLDataPass1; //!< colorisation position in the current buffer pass 1
public:
/**
diff --git a/sources/appl/BufferManager.cpp b/sources/appl/BufferManager.cpp
index 86a2295..591a08f 100644
--- a/sources/appl/BufferManager.cpp
+++ b/sources/appl/BufferManager.cpp
@@ -18,32 +18,34 @@
#undef __class__
#define __class__ "BufferManager"
-appl::BufferManager::BufferManager() :
- ewol::Resource("???BufferManager???"),
- m_bufferSelected(NULL) {
+appl::BufferManager::BufferManager() {
addObjectType("appl::BufferManager");
}
+void appl::BufferManager::init(const std::string& _uniqueName) {
+ ewol::Resource::init(_uniqueName);
+}
+
appl::BufferManager::~BufferManager() {
m_list.clear();
}
-ewol::object::Shared appl::BufferManager::createNewBuffer() {
- ewol::object::Shared tmp = ewol::object::makeShared(new appl::Buffer());
- if (tmp == NULL) {
+std::shared_ptr appl::BufferManager::createNewBuffer() {
+ std::shared_ptr tmp = appl::Buffer::create();
+ if (tmp == nullptr) {
APPL_ERROR("Can not allocate the Buffer (empty).");
- return NULL;
+ return nullptr;
}
m_list.push_back(tmp);
sendMultiCast(appl::MsgSelectNewFile, tmp->getFileName());
return tmp;
}
-ewol::object::Shared appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
+std::shared_ptr appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
APPL_INFO("get(" << _fileName << "," << _createIfNeeded << ")");
for (auto &it : m_list) {
- if (it == NULL) {
+ if (it == nullptr) {
continue;
}
if (it->getFileName() == _fileName) {
@@ -54,39 +56,25 @@ ewol::object::Shared appl::BufferManager::get(const std::string& _
if (etk::FSNodeGetType(_fileName) == etk::FSN_FOLDER) {
APPL_WARNING("try open a folder : " << _fileName);
APPL_CRITICAL("plop");
- return NULL;
+ return nullptr;
}
- ewol::object::Shared tmp = ewol::object::makeShared(new appl::Buffer());
- if (tmp == NULL) {
+ std::shared_ptr tmp = appl::Buffer::create();
+ if (tmp == nullptr) {
APPL_ERROR("Can not allocate the Buffer class : " << _fileName);
- return NULL;
+ return nullptr;
}
tmp->loadFile(_fileName);
m_list.push_back(tmp);
return tmp;
}
- return NULL;
+ return nullptr;
}
-void appl::BufferManager::setBufferSelected(ewol::object::Shared _bufferSelected) {
+void appl::BufferManager::setBufferSelected(std::shared_ptr _bufferSelected) {
m_bufferSelected = _bufferSelected;
sendMultiCast(appl::MsgSelectChange, "");
}
-void appl::BufferManager::onObjectRemove(const ewol::object::Shared& _object) {
- ewol::Resource::onObjectRemove(_object);
- if (m_bufferSelected == _object) {
- setBufferSelected(NULL);
- }
- for (auto it(m_list.begin()); it!=m_list.end(); ++it) {
- if (*it != _object) {
- continue;
- }
- m_list.erase(it);
- it = m_list.begin();
- }
-}
-
-ewol::object::Shared appl::BufferManager::get(int32_t _id) {
+std::shared_ptr appl::BufferManager::get(int32_t _id) {
int32_t id = 0;
for (auto &it : m_list) {
if (id == _id) {
@@ -113,7 +101,7 @@ void appl::BufferManager::open(const std::string& _fileName) {
if (exist(_fileName) == true) {
return;
}
- if (get(_fileName, true) == NULL) {
+ if (get(_fileName, true) == nullptr) {
return;
}
sendMultiCast(appl::MsgSelectNewFile, _fileName);
@@ -123,19 +111,3 @@ void appl::BufferManager::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_DEBUG("receive message !!! " << _msg);
}
-ewol::object::Shared appl::BufferManager::keep() {
- ewol::object::Shared object = ewol::dynamic_pointer_cast(getManager().localKeep("???BufferManager???"));
- if (NULL != object) {
- return object;
- }
- // this element create a new one every time ....
- EWOL_INFO("CREATE : appl::BufferManager: ???BufferManager???");
- object = ewol::object::makeShared(new appl::BufferManager());
- if (NULL == object) {
- EWOL_ERROR("allocation error of a resource : ???BufferManager???");
- return NULL;
- }
- getManager().localAdd(object);
- return object;
-}
-
diff --git a/sources/appl/BufferManager.h b/sources/appl/BufferManager.h
index 75dac80..af749de 100644
--- a/sources/appl/BufferManager.h
+++ b/sources/appl/BufferManager.h
@@ -17,12 +17,14 @@
namespace appl {
class BufferManager : public ewol::Resource {
- protected:
- BufferManager();
public:
+ BufferManager();
+ void init(const std::string& _uniqueName);
+ public:
+ DECLARE_RESOURCE_SINGLE_FACTORY(BufferManager, "???Buffer_Manager???");
virtual ~BufferManager();
private:
- std::list> m_list; // list of all buffer curently open
+ std::list> m_list; // list of all buffer curently open
public:
/**
* @brief Get a specific buffer with his name (can create a new buffer).
@@ -30,7 +32,7 @@ namespace appl {
* @param[in] _createIfNeeded Create the buffer if not existed.
* @return a pointer on the buffer
*/
- ewol::object::Shared get(const std::string& _fileName, bool _createIfNeeded=false);
+ std::shared_ptr get(const std::string& _fileName, bool _createIfNeeded=false);
/**
* @brief Load a specific file, event if it not existed:
* @param[in] _fileName Name of the file to open or create.
@@ -54,38 +56,29 @@ namespace appl {
* @param[in] _id Number of buffer
* @return pointer on the buffer
*/
- ewol::object::Shared get(int32_t _id);
+ std::shared_ptr get(int32_t _id);
/**
* @brief Create a new buffer empty.
- * @return Created buffer or NULL.
+ * @return Created buffer or nullptr.
*/
- ewol::object::Shared createNewBuffer();
+ std::shared_ptr createNewBuffer();
private:
- ewol::object::Shared m_bufferSelected;
+ std::shared_ptr m_bufferSelected;
public:
/**
* @brief Set the current buffer selected
* @param[in] _bufferSelected Pointer on the buffer selected
*/
- void setBufferSelected(ewol::object::Shared _bufferSelected);
+ void setBufferSelected(std::shared_ptr _bufferSelected);
/**
* @brief Get the current buffer selected
* @return Pointer on the buffer selected
*/
- ewol::object::Shared getBufferSelected() {
+ std::shared_ptr getBufferSelected() {
return m_bufferSelected;
};
public: // herited function
void onReceiveMessage(const ewol::object::Message& _msg);
- void onObjectRemove(const ewol::object::Shared& _removeObject);
- public: // resource manager
- /**
- * @brief keep the resource pointer.
- * @note Never free this pointer by your own...
- * @param[in] _filename Name of the configuration file.
- * @return pointer on the resource or NULL if an error occured.
- */
- static ewol::object::Shared keep();
};
};
diff --git a/sources/appl/GlyphPainting.cpp b/sources/appl/GlyphPainting.cpp
index 981b1c1..75e9a7c 100644
--- a/sources/appl/GlyphPainting.cpp
+++ b/sources/appl/GlyphPainting.cpp
@@ -18,9 +18,12 @@
-appl::GlyphPainting::GlyphPainting(const std::string& _filename) :
- ewol::Resource(_filename) {
+appl::GlyphPainting::GlyphPainting() {
addObjectType("appl::GlyphPainting");
+}
+
+void appl::GlyphPainting::init(const std::string& _filename) {
+ ewol::Resource::init(_filename);
EWOL_DEBUG("SFP : load \"" << _filename << "\"");
reload();
}
@@ -43,13 +46,13 @@ void appl::GlyphPainting::reload() {
APPL_DEBUG(tmppppp);
*/
ejson::Array* baseArray = doc.getArray("ednColor");
- if (baseArray == NULL) {
+ if (baseArray == nullptr) {
APPL_ERROR("Can not get basic array : 'ednColor'");
return;
}
for (size_t iii = 0; iii < baseArray->size(); ++iii) {
ejson::Object* tmpObj = baseArray->getObject(iii);
- if (tmpObj == NULL) {
+ if (tmpObj == nullptr) {
APPL_DEBUG(" can not get object in 'ednColor' id=" << iii);
continue;
}
@@ -94,20 +97,3 @@ int32_t appl::GlyphPainting::request(const std::string& _name) {
m_list.push_back(tmpDeco);
return m_list.size()-1;
}
-
-ewol::object::Shared appl::GlyphPainting::keep(const std::string& _filename) {
- //EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
- ewol::object::Shared object = ewol::dynamic_pointer_cast(getManager().localKeep(_filename));
- if (NULL != object) {
- return object;
- }
- // this element create a new one every time ....
- EWOL_INFO("CREATE : appl::GlyphPainting : file : \"" << _filename << "\"");
- object = ewol::object::makeShared(new appl::GlyphPainting(_filename));
- if (NULL == object) {
- EWOL_ERROR("allocation error of a resource : ??GlyphPainting??");
- return NULL;
- }
- getManager().localAdd(object);
- return object;
-}
diff --git a/sources/appl/GlyphPainting.h b/sources/appl/GlyphPainting.h
index 1e02391..e8caa86 100644
--- a/sources/appl/GlyphPainting.h
+++ b/sources/appl/GlyphPainting.h
@@ -19,8 +19,10 @@ namespace appl {
private:
std::vector m_list;
protected:
- GlyphPainting(const std::string& _filename);
+ GlyphPainting();
+ void init(const std::string& _filename);
public:
+ DECLARE_RESOURCE_NAMED_FACTORY(GlyphPainting);
virtual ~GlyphPainting();
public:
/**
@@ -49,14 +51,6 @@ namespace appl {
const appl::GlyphDecoration& operator[] (int32_t _pos) const {
return m_list[_pos];
}
- public:
- /**
- * @brief keep the resource pointer.
- * @note Never free this pointer by your own...
- * @param[in] _filename Name of the configuration file.
- * @return pointer on the resource or NULL if an error occured.
- */
- static ewol::object::Shared keep(const std::string& _filename);
};
};
diff --git a/sources/appl/Gui/BufferView.cpp b/sources/appl/Gui/BufferView.cpp
index 263e1b1..b3d9c5f 100644
--- a/sources/appl/Gui/BufferView.cpp
+++ b/sources/appl/Gui/BufferView.cpp
@@ -21,13 +21,13 @@ static void SortElementList(std::vector& _list) {
std::vector tmpList = _list;
_list.clear();
for(size_t iii=0; iiim_bufferName.getNameFile() > _list[jjj]->m_bufferName.getNameFile()) {
@@ -43,18 +43,12 @@ BufferView::BufferView() :
m_openOrderMode(false) {
addObjectType("appl::BufferView");
setCanHaveFocus(true);
- registerMultiCast(ednMsgBufferListChange);
- registerMultiCast(ednMsgBufferState);
- registerMultiCast(ednMsgBufferId);
- registerMultiCast(appl::MsgSelectNewFile);
- registerMultiCast(appl::MsgSelectChange);
- registerMultiCast(appl::MsgNameChange);
m_selectedID = -1;
m_selectedIdRequested = -1;
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
+ m_bufferManager = appl::BufferManager::create();
// load color properties
- m_paintingProperties = appl::GlyphPainting::keep("THEME:COLOR:bufferList.json");
+ m_paintingProperties = appl::GlyphPainting::create("THEME:COLOR:bufferList.json");
// get all id properties ...
m_colorBackground1 = m_paintingProperties->request("backgroung1");
m_colorBackground2 = m_paintingProperties->request("backgroung2");
@@ -63,6 +57,16 @@ BufferView::BufferView() :
m_colorTextModify = m_paintingProperties->request("textModify");
}
+void BufferView::init() {
+ ewol::widget::List::init();
+ registerMultiCast(ednMsgBufferListChange);
+ registerMultiCast(ednMsgBufferState);
+ registerMultiCast(ednMsgBufferId);
+ registerMultiCast(appl::MsgSelectNewFile);
+ registerMultiCast(appl::MsgSelectChange);
+ registerMultiCast(appl::MsgNameChange);
+}
+
BufferView::~BufferView() {
removeAllElement();
}
@@ -70,30 +74,30 @@ BufferView::~BufferView() {
void BufferView::removeAllElement() {
for(auto &it : m_list) {
delete(it);
- it = NULL;
+ it = nullptr;
}
m_list.clear();
}
void BufferView::insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _selectNewPosition) {
- if (_dataStruct == NULL) {
+ if (_dataStruct == nullptr) {
return;
}
// alphabetical order:
for (size_t iii = 0; iii < m_list.size(); ++iii) {
- if (m_list[iii] == NULL) {
+ if (m_list[iii] == nullptr) {
continue;
}
- if (std::tolower(m_list[iii]->m_bufferName.getNameFile()) > std::tolower(_dataStruct->m_bufferName.getNameFile())) {
+ if (etk::tolower(m_list[iii]->m_bufferName.getNameFile()) > etk::tolower(_dataStruct->m_bufferName.getNameFile())) {
m_list.insert(m_list.begin() + iii, _dataStruct);
- _dataStruct = NULL;
+ _dataStruct = nullptr;
if (_selectNewPosition == true) {
m_selectedID = iii;
}
break;
}
}
- if (_dataStruct != NULL) {
+ if (_dataStruct != nullptr) {
m_list.push_back(_dataStruct);
if (_selectNewPosition == true) {
m_selectedID = m_list.size()-1;
@@ -103,18 +107,19 @@ void BufferView::insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _sel
void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
+ APPL_VERBOSE("message : " << _msg);
ewol::widget::List::onReceiveMessage(_msg);
if (_msg.getMessage() == appl::MsgSelectNewFile) {
- ewol::object::Shared buffer = m_bufferManager->get(_msg.getData());
- if (buffer == NULL) {
+ std::shared_ptr buffer = m_bufferManager->get(_msg.getData());
+ if (buffer == nullptr) {
APPL_ERROR("event on element nor exist : " << _msg.getData());
return;
}
- buffer->registerOnEvent(this, appl::Buffer::eventIsSave);
- buffer->registerOnEvent(this, appl::Buffer::eventIsModify);
- buffer->registerOnEvent(this, appl::Buffer::eventChangeName);
+ buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventIsSave);
+ buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventIsModify);
+ buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventChangeName);
appl::dataBufferStruct* tmp = new appl::dataBufferStruct(_msg.getData(), buffer);
- if (tmp == NULL) {
+ if (tmp == nullptr) {
APPL_ERROR("Allocation error of the tmp buffer list element");
return;
}
@@ -128,7 +133,7 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
}
if (_msg.getMessage() == appl::Buffer::eventChangeName) {
for (size_t iii = 0; iii < m_list.size(); ++iii) {
- if (m_list[iii] == NULL) {
+ if (m_list[iii] == nullptr) {
continue;
}
if (m_list[iii]->m_bufferName != m_list[iii]->m_buffer->getFileName()) {
@@ -136,7 +141,7 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
if (m_openOrderMode == false) {
// re-order the fine in the correct position
appl::dataBufferStruct* tmp = m_list[iii];
- m_list[iii] = NULL;
+ m_list[iii] = nullptr;
m_list.erase(m_list.begin() + iii);
insertAlphabetic(tmp, ((int64_t)iii == m_selectedID));
break;
@@ -154,16 +159,15 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
markToRedraw();
return;
}
- APPL_DEBUG("message : " << _msg);
if (_msg.getMessage() == appl::MsgSelectChange) {
m_selectedID = -1;
- ewol::object::Shared tmpBuffer;
- if (m_bufferManager != NULL) {
+ std::shared_ptr tmpBuffer;
+ if (m_bufferManager != nullptr) {
tmpBuffer = m_bufferManager->getBufferSelected();
}
- if (tmpBuffer != NULL) {
+ if (tmpBuffer != nullptr) {
for (size_t iii=0; iiim_buffer != tmpBuffer) {
@@ -185,11 +189,11 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
/*
if (BufferManager::exist(iii)) {
BufferText* tmpBuffer = BufferManager::get(iii);
- if (NULL != tmpBuffer) {
+ if (nullptr != tmpBuffer) {
bool isModify = tmpBuffer->isModify();
etk::FSNode name = tmpBuffer->getFileName();
appl::dataBufferStruct* tmpElement = new appl::dataBufferStruct(name, iii, isModify);
- if (NULL != tmpElement) {
+ if (nullptr != tmpElement) {
m_list.push_back(tmpElement);
} else {
APPL_ERROR("Allocation error of the tmp buffer list element");
@@ -216,24 +220,6 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
}
}
-void BufferView::onObjectRemove(const ewol::object::Shared& _object) {
- ewol::widget::List::onObjectRemove(_object);
- auto it(m_list.begin());
- while (it != m_list.end()) {
- if ( *it != nullptr
- && (*it)->m_buffer == _object) {
- m_list.erase(it);
- markToRedraw();
- it = m_list.begin();
- } else {
- ++it;
- }
- }
- if (m_bufferManager == _object) {
- m_bufferManager.reset();
- }
-}
-
etk::Color<> BufferView::getBasicBG() {
return (*m_paintingProperties)[m_colorBackground1].getForeground();
@@ -258,7 +244,7 @@ bool BufferView::getElement(int32_t _colomn, int32_t _raw, std::string& _myTextT
&& m_list[_raw] != nullptr) {
_myTextToWrite = m_list[_raw]->m_bufferName.getNameFile();
- if ( m_list[_raw]->m_buffer != NULL
+ if ( m_list[_raw]->m_buffer != nullptr
&& m_list[_raw]->m_buffer->isModify() == false) {
_fg = (*m_paintingProperties)[m_colorTextNormal].getForeground();
} else {
@@ -285,8 +271,8 @@ bool BufferView::onItemEvent(int32_t _IdInput, enum ewol::key::status _typeEvent
APPL_INFO("Event on List : IdInput=" << _IdInput << " colomn=" << _colomn << " raw=" << _raw );
if( _raw >= 0
&& _raw<(int64_t)m_list.size()
- && NULL != m_list[_raw]) {
- if (m_list[_raw]->m_buffer != NULL) {
+ && nullptr != m_list[_raw]) {
+ if (m_list[_raw]->m_buffer != nullptr) {
sendMultiCast(appl::MsgSelectNewFile, m_list[_raw]->m_buffer->getFileName());
m_selectedID = _raw;
markToRedraw();
diff --git a/sources/appl/Gui/BufferView.h b/sources/appl/Gui/BufferView.h
index 00ffae1..e3c3a3b 100644
--- a/sources/appl/Gui/BufferView.h
+++ b/sources/appl/Gui/BufferView.h
@@ -19,8 +19,8 @@ namespace appl {
class dataBufferStruct {
public:
etk::FSNode m_bufferName;
- ewol::object::Shared m_buffer;
- dataBufferStruct(const std::string& _bufferName, const ewol::object::Shared& _buffer) :
+ std::shared_ptr m_buffer;
+ dataBufferStruct(const std::string& _bufferName, const std::shared_ptr& _buffer) :
m_bufferName(_bufferName),
m_buffer(_buffer) {
@@ -31,9 +31,9 @@ namespace appl {
class BufferView : public ewol::widget::List {
private:
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
private:
- ewol::object::Shared m_paintingProperties; //!< element painting property
+ std::shared_ptr m_paintingProperties; //!< element painting property
int32_t m_colorBackground1;
int32_t m_colorBackground2;
int32_t m_colorBackgroundSelect;
@@ -48,13 +48,15 @@ class BufferView : public ewol::widget::List {
* @param[in] _dataStruct element to add.
*/
void insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _selectNewPosition = false);
- public:
+ protected:
// Constructeur
BufferView();
+ void init();
+ public:
+ DECLARE_FACTORY(BufferView);
virtual ~BufferView();
// Derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _object);
private:
bool m_openOrderMode; //!< true if the order is the opening order mode, otherwise, Alphabetic order
protected:
diff --git a/sources/appl/Gui/MainWindows.cpp b/sources/appl/Gui/MainWindows.cpp
index f46f73b..e0f0993 100644
--- a/sources/appl/Gui/MainWindows.cpp
+++ b/sources/appl/Gui/MainWindows.cpp
@@ -40,11 +40,11 @@
namespace appl {
std::string getVersion() {
#define FIRST_YEAR (2010)
- std::string tmpOutput = std::to_string(date::getYear()-FIRST_YEAR);
+ std::string tmpOutput = etk::to_string(date::getYear()-FIRST_YEAR);
tmpOutput += ".";
- tmpOutput += std::to_string(date::getMonth());
+ tmpOutput += etk::to_string(date::getMonth());
tmpOutput += ".";
- tmpOutput += std::to_string(date::getDay());
+ tmpOutput += etk::to_string(date::getDay());
return tmpOutput;
}
@@ -59,12 +59,15 @@ namespace appl {
class ParameterAboutGui : public ewol::widget::Sizer {
public :
- ParameterAboutGui() :
- ewol::widget::Sizer(ewol::widget::Sizer::modeVert) {
- ewol::object::Shared mySpacer = NULL;
+ ParameterAboutGui() {
+ addObjectType("appl::ParameterAboutGui");
+ }
+ void init() {
+ ewol::widget::Sizer::init(ewol::widget::Sizer::modeVert);
+ std::shared_ptr mySpacer;
- mySpacer = ewol::object::makeShared(new ewol::widget::Spacer());
- if (NULL == mySpacer) {
+ mySpacer = ewol::widget::Spacer::create();
+ if (nullptr == mySpacer) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySpacer->setExpand(bvec2(true,true));
@@ -93,8 +96,8 @@ class ParameterAboutGui : public ewol::widget::Sizer {
tmpLabel += " libPng, ogg-tremor, portaudio, libZip
";
tmpLabel += " tinyXml, freetype, agg2.4, etk
";
tmpLabel += "";
- ewol::object::Shared myLabel = ewol::object::makeShared(new ewol::widget::Label(tmpLabel));
- if (NULL == myLabel) {
+ std::shared_ptr myLabel = ewol::widget::Label::create(tmpLabel);
+ if (nullptr == myLabel) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
myLabel->setExpand(bvec2(true,false));
@@ -121,38 +124,42 @@ const char* l_smoothMax = "tmpEvent_maxChange";
MainWindows::MainWindows() {
addObjectType("appl::MainWindows");
+}
+
+void MainWindows::init() {
+ ewol::widget::Windows::init();
APPL_DEBUG("CREATE WINDOWS ... ");
- ewol::object::Shared mySizerVert = NULL;
- ewol::object::Shared mySizerVert2 = NULL;
- ewol::object::Shared mySizerHori = NULL;
- ewol::object::Shared myTextView = NULL;
- ewol::object::Shared myBufferView = NULL;
- ewol::object::Shared myMenu = NULL;
+ std::shared_ptr mySizerVert = nullptr;
+ std::shared_ptr mySizerVert2 = nullptr;
+ std::shared_ptr mySizerHori = nullptr;
+ std::shared_ptr myTextView = nullptr;
+ std::shared_ptr myBufferView = nullptr;
+ std::shared_ptr myMenu = nullptr;
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
+ m_bufferManager = appl::BufferManager::create();
- mySizerVert = ewol::object::makeShared(new ewol::widget::Sizer(ewol::widget::Sizer::modeVert));
+ mySizerVert = ewol::widget::Sizer::create(ewol::widget::Sizer::modeVert);
mySizerVert->setName("plop 1111111");
setSubWidget(mySizerVert);
- mySizerHori = ewol::object::makeShared(new ewol::widget::Sizer(ewol::widget::Sizer::modeHori));
+ mySizerHori = ewol::widget::Sizer::create(ewol::widget::Sizer::modeHori);
mySizerHori->setName("plop 222222222");
mySizerVert->subWidgetAdd(mySizerHori);
- myBufferView = ewol::object::makeShared(new BufferView());
+ myBufferView = BufferView::create();
myBufferView->setName("plop 3333333");
myBufferView->setExpand(bvec2(false,true));
myBufferView->setFill(bvec2(true,true));
mySizerHori->subWidgetAdd(myBufferView);
- mySizerVert2 = ewol::object::makeShared(new ewol::widget::Sizer(ewol::widget::Sizer::modeVert));
+ mySizerVert2 = ewol::widget::Sizer::create(ewol::widget::Sizer::modeVert);
mySizerHori->subWidgetAdd(mySizerVert2);
mySizerVert2->setName("plop 4444444");
// main buffer Area :
#if defined(__TARGET_OS__Android)
- myTextView = ewol::object::makeShared(new appl::TextViewer("FreeMono;DejaVuSansMono;FreeSerif", 16));
+ myTextView = appl::TextViewer::create("FreeMono;DejaVuSansMono;FreeSerif", 16);
#else
- myTextView = ewol::object::makeShared(new appl::TextViewer("FreeMono;DejaVuSansMono;FreeSerif", 11));
+ myTextView = appl::TextViewer::create("FreeMono;DejaVuSansMono;FreeSerif", 11);
#endif
myTextView->setName("appl-text-viewer");
myTextView->setExpand(bvec2(true,true));
@@ -165,14 +172,14 @@ MainWindows::MainWindows() {
mySizerVert2->subWidgetAdd(myTextView);
*/
// search area :
- ewol::object::Shared mySearch = ewol::object::makeShared(new appl::widget::Search());
+ std::shared_ptr mySearch = appl::widget::Search::create();
mySizerVert2->subWidgetAdd(mySearch);
- mySizerHori = ewol::object::makeShared(new ewol::widget::Sizer(ewol::widget::Sizer::modeHori));
+ mySizerHori = ewol::widget::Sizer::create(ewol::widget::Sizer::modeHori);
mySizerHori->setName("plop 555555");
mySizerVert->subWidgetAdd(mySizerHori);
- myMenu = ewol::object::makeShared(new ewol::widget::Menu());
+ myMenu = ewol::widget::Menu::create();
mySizerHori->subWidgetAdd(myMenu);
int32_t idMenuFile = myMenu->addTitle("File");
myMenu->add(idMenuFile, "New", "", ednMsgGuiNew);
@@ -221,7 +228,7 @@ MainWindows::MainWindows() {
myMenu->addSpacer();
myMenu->add(idMenugDisplay, "Reload openGl Shader", "", ednMsgGuiReloadShader);
- m_widgetLabelFileName = ewol::object::makeShared(new ewol::widget::Label("FileName"));
+ m_widgetLabelFileName = ewol::widget::Label::create("FileName");
m_widgetLabelFileName->setExpand(bvec2(true,false));
m_widgetLabelFileName->setFill(bvec2(true,false));;
mySizerHori->subWidgetAdd(m_widgetLabelFileName);
@@ -282,30 +289,30 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_VERBOSE("Receive Event from the main windows: " << _msg );
// open file Section ...
if (_msg.getMessage() == ednMsgGuiOpen) {
- ewol::widget::FileChooser* tmpWidget = new ewol::widget::FileChooser();
- if (tmpWidget == NULL) {
+ std::shared_ptr tmpWidget = ewol::widget::FileChooser::create();
+ if (tmpWidget == nullptr) {
APPL_ERROR("Can not open File chooser !!! ");
return;
}
tmpWidget->setTitle("Open files ...");
tmpWidget->setValidateLabel("Open");
- if (m_bufferManager == NULL) {
+ if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
// Get a ref on the buffer selected (if null, no buffer was selected ...)
- ewol::object::Shared tmpBuffer = m_bufferManager->getBufferSelected();
- if (tmpBuffer != NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->getBufferSelected();
+ if (tmpBuffer != nullptr) {
etk::FSNode tmpFile = tmpBuffer->getFileName();
tmpWidget->setFolder(tmpFile.getNameFolder());
}
// apply widget pop-up ...
popUpWidgetPush(tmpWidget);
- tmpWidget->registerOnEvent(this, "validate", ednEventPopUpFileSelected);
+ tmpWidget->registerOnEvent(shared_from_this(), "validate", ednEventPopUpFileSelected);
} else if (_msg.getMessage() == ednMsgProperties) {
// Request the parameter GUI
- ewol::object::Shared tmpWidget = ewol::object::makeShared(new ewol::widget::Parameter());
- if (NULL == tmpWidget) {
+ std::shared_ptr tmpWidget = ewol::widget::Parameter::create();
+ if (nullptr == tmpWidget) {
APPL_ERROR("Can not allocate widget == > display might be in error");
} else {
#ifdef SDGSDFGSDFGSDFGSDFGSTERGDHFGHFDS
@@ -342,13 +349,13 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
tmpWidget->setTitle("Properties");
popUpWidgetPush(tmpWidget);
tmpWidget->menuAddGroup("Editor");
- ewol::object::Shared tmpSubWidget = ewol::object::makeShared(new globals::ParameterGlobalsGui());
+ std::shared_ptr tmpSubWidget = globals::ParameterGlobalsGui::create();
tmpWidget->menuAdd("Editor", "", tmpSubWidget);
- tmpWidget->menuAdd("Font & Color", "", NULL);
- tmpWidget->menuAdd("Highlight", "", NULL);
+ tmpWidget->menuAdd("Font & Color", "", nullptr);
+ tmpWidget->menuAdd("Highlight", "", nullptr);
tmpWidget->menuAddGroup("General");
- tmpWidget->menuAdd("Display", "", NULL);
- tmpSubWidget = ewol::object::makeShared(new ParameterAboutGui());
+ tmpWidget->menuAdd("Display", "", nullptr);
+ tmpSubWidget = ParameterAboutGui::create();
tmpWidget->menuAdd("About", "", tmpSubWidget);
}
} else if (_msg.getMessage() == appl::MsgNameGuiChangeColor) {
@@ -366,7 +373,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
// TODO : ...
}
// Note : Fore all next message we need to acces to the buffer manager ==> just check one time ...
- if (m_bufferManager == NULL) {
+ if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
return;
}
@@ -375,21 +382,21 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|| _msg.getMessage() == appl::Buffer::eventIsSave
|| _msg.getMessage() == appl::Buffer::eventChangeName) {
// select a new Buffer ==> change title:
- ewol::object::Shared tmpp = m_bufferManager->getBufferSelected();
- if (tmpp == NULL) {
+ std::shared_ptr tmpp = m_bufferManager->getBufferSelected();
+ if (tmpp == nullptr) {
setTitle("Edn");
- if (m_widgetLabelFileName != NULL) {
+ if (m_widgetLabelFileName != nullptr) {
m_widgetLabelFileName->setLabel("");
}
} else {
if (_msg.getMessage() == appl::MsgSelectNewFile) {
- tmpp->registerOnEvent(this, appl::Buffer::eventIsModify);
- tmpp->registerOnEvent(this, appl::Buffer::eventIsSave);
- tmpp->registerOnEvent(this, appl::Buffer::eventChangeName);
+ tmpp->registerOnEvent(shared_from_this(), appl::Buffer::eventIsModify);
+ tmpp->registerOnEvent(shared_from_this(), appl::Buffer::eventIsSave);
+ tmpp->registerOnEvent(shared_from_this(), appl::Buffer::eventChangeName);
}
std::string nameFileSystem = etk::FSNode(tmpp->getFileName()).getFileSystemName();
setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + nameFileSystem);
- if (m_widgetLabelFileName != NULL) {
+ if (m_widgetLabelFileName != nullptr) {
m_widgetLabelFileName->setLabel(nameFileSystem + (tmpp->isModify()==true?" *":""));
}
}
@@ -402,31 +409,31 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
m_bufferManager->open(_msg.getData());
} else if (_msg.getMessage() == ednMsgGuiSave) {
APPL_DEBUG("Request saving the file : " << _msg.getData());
- if (std::tolower(_msg.getData()) == "current") {
- new appl::WorkerSaveFile("", false);
+ if (etk::tolower(_msg.getData()) == "current") {
+ appl::WorkerSaveFile::create("", false);
return;
- } else if (std::tolower(_msg.getData()) == "all") {
- new appl::WorkerSaveAllFile();
+ } else if (etk::tolower(_msg.getData()) == "all") {
+ appl::WorkerSaveAllFile::create();
return;
} else {
APPL_ERROR("UNKNOW request : " << _msg);
}
} else if (_msg.getMessage() == ednMsgGuiSaveAs) {
- new appl::WorkerSaveFile("", true);
+ appl::WorkerSaveFile::create("", true);
} else if (_msg.getMessage() == ednMsgGuiClose) {
// Get a ref on the buffer selected (if null, no buffer was selected ...)
if (_msg.getData() == "current") {
- new appl::WorkerCloseFile("");
+ appl::WorkerCloseFile::create("");
} else {
- new appl::WorkerCloseAllFile();
+ appl::WorkerCloseAllFile::create();
}
} else if (_msg.getMessage() == mainWindowsRequestSaveFile) { // return after a choice of close...
if (m_bufferManager->exist(_msg.getData()) == false) {
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
return;
}
- ewol::object::Shared tmpBuffer = m_bufferManager->get(_msg.getData());
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(_msg.getData());
+ if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << _msg.getData());
return;
}
@@ -444,8 +451,8 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
return;
}
- ewol::object::Shared tmpBuffer = m_bufferManager->get(_msg.getData());
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(_msg.getData());
+ if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << _msg.getData());
return;
}
@@ -455,64 +462,58 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
return;
}
- ewol::object::Shared tmpBuffer = m_bufferManager->get(_msg.getData());
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(_msg.getData());
+ if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << _msg.getData());
return;
}
// note: just remove ==> no check : normal case ...
- tmpBuffer->removeObject();
+ //tmpBuffer->removeObject();
+ EWOL_TODO("call remove buffer ...");
}
return;
}
-void MainWindows::saveAsPopUp(const ewol::object::Shared& _buffer) {
- if (_buffer == NULL) {
- APPL_ERROR("Call With NULL input...");
+void MainWindows::saveAsPopUp(const std::shared_ptr& _buffer) {
+ if (_buffer == nullptr) {
+ APPL_ERROR("Call With nullptr input...");
return;
}
- appl::WorkerSaveFile* tmpObject = new appl::WorkerSaveFile(_buffer->getFileName());
+ std::shared_ptr tmpObject = appl::WorkerSaveFile::create(_buffer->getFileName());
}
-void MainWindows::closeNotSavedFile(const ewol::object::Shared& _buffer) {
- if (_buffer == NULL) {
- APPL_ERROR("Call With NULL input...");
+void MainWindows::closeNotSavedFile(const std::shared_ptr& _buffer) {
+ if (_buffer == nullptr) {
+ APPL_ERROR("Call With nullptr input...");
return;
}
- ewol::object::Shared tmpPopUp = ewol::object::makeShared(new ewol::widget::StdPopUp());
- if (tmpPopUp == NULL) {
+ std::shared_ptr tmpPopUp = ewol::widget::StdPopUp::create();
+ if (tmpPopUp == nullptr) {
APPL_ERROR("Can not create a simple pop-up");
return;
}
tmpPopUp->setTitle("Close un-saved file:");
tmpPopUp->setComment("The file named : \"" + _buffer->getFileName() + "\" is curently modify.
If you don't saves these modifications,
they will be definitly lost...");
- ewol::object::Shared bt = NULL;
+ std::shared_ptr bt = nullptr;
if (_buffer->hasFileName() == true) {
bt = tmpPopUp->addButton("Save", true);
- if (bt != NULL) {
+ if (bt != nullptr) {
// TODO : The element is removed before beeing pressed
- bt->registerOnEvent(this, "pressed", mainWindowsRequestSaveFile, _buffer->getFileName());
- bt->registerOnEvent(this, "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
+ bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestSaveFile, _buffer->getFileName());
+ bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
}
}
bt = tmpPopUp->addButton("Save As", true);
- if (bt != NULL) {
- bt->registerOnEvent(this, "pressed", mainWindowsRequestSaveFileAs, _buffer->getFileName());
+ if (bt != nullptr) {
+ bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestSaveFileAs, _buffer->getFileName());
//bt->registerOnEvent(this, "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
// TODO : Request the close when saved ...
}
bt = tmpPopUp->addButton("Close", true);
- if (bt != NULL) {
- bt->registerOnEvent(this, "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
+ if (bt != nullptr) {
+ bt->registerOnEvent(shared_from_this(), "pressed", mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
}
tmpPopUp->addButton("Cancel", true);
tmpPopUp->setRemoveOnExternClick(true);
popUpWidgetPush(tmpPopUp);
}
-
-void MainWindows::onObjectRemove(const ewol::object::Shared& _removeObject) {
- ewol::widget::Windows::onObjectRemove(_removeObject);
- if (m_widgetLabelFileName == _removeObject) {
- m_widgetLabelFileName = NULL;
- }
-}
diff --git a/sources/appl/Gui/MainWindows.h b/sources/appl/Gui/MainWindows.h
index fa1a5e8..0156616 100644
--- a/sources/appl/Gui/MainWindows.h
+++ b/sources/appl/Gui/MainWindows.h
@@ -19,26 +19,28 @@
class MainWindows : public ewol::widget::Windows {
private:
- ewol::object::Shared m_widgetLabelFileName;
- public:
+ std::shared_ptr m_widgetLabelFileName;
+ protected:
// Constructeur
MainWindows();
+ void init();
+ public:
+ DECLARE_FACTORY(MainWindows);
virtual ~MainWindows();
private:
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
/**
* @brief Display a pop-up to the select the name of the file.
* @param[in] _buffer Buffer that might be saved with a new name.
*/
- void saveAsPopUp(const ewol::object::Shared& _buffer);
+ void saveAsPopUp(const std::shared_ptr& _buffer);
/**
* @brief Display a pop-up to the user to confirm wat he want to do when he close a file not saved.
* @param[in] _buffer Buffer that might be close.
*/
- void closeNotSavedFile(const ewol::object::Shared& _buffer);
+ void closeNotSavedFile(const std::shared_ptr& _buffer);
public: // Derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _removeObject);
};
diff --git a/sources/appl/Gui/Search.cpp b/sources/appl/Gui/Search.cpp
index a4d9fbe..cbbb118 100644
--- a/sources/appl/Gui/Search.cpp
+++ b/sources/appl/Gui/Search.cpp
@@ -29,34 +29,32 @@ const char* const l_eventForwardCb = "appl-forward-CheckBox";
const char* const l_eventHideBt = "appl-hide-button";
appl::widget::Search::Search() :
- ewol::widget::Composer(ewol::widget::Composer::file, "DATA:GUI-Search.xml"),
- m_viewerManager(NULL),
m_forward(true),
m_caseSensitive(false),
- m_wrap(true),
- m_searchEntry(NULL),
- m_replaceEntry(NULL) {
+ m_wrap(true) {
addObjectType("appl::widget::Search");
- // load buffer manager:onObjectRemove
- m_viewerManager = appl::ViewerManager::keep();
+}
+void appl::widget::Search::init() {
+ ewol::widget::Composer::init(ewol::widget::Composer::file, "DATA:GUI-Search.xml");
+ m_viewerManager = appl::ViewerManager::create();
// link event
- registerOnEventNameWidget(this, "SEARCH:close", "pressed", l_eventHideBt);
- registerOnEventNameWidget(this, "SEARCH:search-entry", "modify", l_eventSearchEntry);
- registerOnEventNameWidget(this, "SEARCH:search-entry", "enter", l_eventSearchEntryEnter);
- registerOnEventNameWidget(this, "SEARCH:search", "pressed", l_eventSearchBt);
- registerOnEventNameWidget(this, "SEARCH:replace-entry", "modify", l_eventReplaceEntry);
- registerOnEventNameWidget(this, "SEARCH:replace-entry", "enter", l_eventReplaceEntryEnter);
- registerOnEventNameWidget(this, "SEARCH:replace", "pressed", l_eventReplaceBt);
- registerOnEventNameWidget(this, "SEARCH:case", "value", l_eventCaseCb);
- registerOnEventNameWidget(this, "SEARCH:wrap", "value", l_eventWrapCb);
- registerOnEventNameWidget(this, "SEARCH:up-down", "value", l_eventForwardCb);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:close", "pressed", l_eventHideBt);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:search-entry", "modify", l_eventSearchEntry);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:search-entry", "enter", l_eventSearchEntryEnter);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:search", "pressed", l_eventSearchBt);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:replace-entry", "modify", l_eventReplaceEntry);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:replace-entry", "enter", l_eventReplaceEntryEnter);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:replace", "pressed", l_eventReplaceBt);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:case", "value", l_eventCaseCb);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:wrap", "value", l_eventWrapCb);
+ registerOnEventNameWidget(shared_from_this(), "SEARCH:up-down", "value", l_eventForwardCb);
// set default properties
- setConfigNamed("SEARCH:case", "value", std::to_string(m_caseSensitive));
- setConfigNamed("SEARCH:wrap", "value", std::to_string(m_wrap));
- setConfigNamed("SEARCH:up-down", "value", std::to_string(m_forward));
+ parameterSetOnWidgetNamed("SEARCH:case", "value", etk::to_string(m_caseSensitive));
+ parameterSetOnWidgetNamed("SEARCH:wrap", "value", etk::to_string(m_wrap));
+ parameterSetOnWidgetNamed("SEARCH:up-down", "value", etk::to_string(m_forward));
// get widget
- m_searchEntry = ewol::dynamic_pointer_cast(getWidgetNamed("SEARCH:search-entry"));
- m_replaceEntry = ewol::dynamic_pointer_cast(getWidgetNamed("SEARCH:replace-entry"));
+ m_searchEntry = std::dynamic_pointer_cast(getWidgetNamed("SEARCH:search-entry"));
+ m_replaceEntry = std::dynamic_pointer_cast(getWidgetNamed("SEARCH:replace-entry"));
// Display and hide event:
registerMultiCast(ednMsgGuiSearch);
// basicly hiden ...
@@ -68,12 +66,12 @@ appl::widget::Search::~Search() {
}
void appl::widget::Search::find() {
- if (m_viewerManager == NULL) {
+ if (m_viewerManager == nullptr) {
APPL_WARNING("No viewer manager selected!!!");
return;
}
- ewol::object::Shared viewer = m_viewerManager->getViewerSelected();
- if (viewer == NULL) {
+ std::shared_ptr viewer = m_viewerManager->getViewerSelected();
+ if (viewer == nullptr) {
APPL_INFO("No viewer selected!!!");
return;
}
@@ -104,12 +102,12 @@ void appl::widget::Search::find() {
}
void appl::widget::Search::replace() {
- if (m_viewerManager == NULL) {
+ if (m_viewerManager == nullptr) {
APPL_WARNING("No viewer manager selected!!!");
return;
}
- ewol::object::Shared viewer = m_viewerManager->getViewerSelected();
- if (viewer == NULL) {
+ std::shared_ptr viewer = m_viewerManager->getViewerSelected();
+ if (viewer == nullptr) {
APPL_INFO("No viewer selected!!!");
return;
}
@@ -125,35 +123,35 @@ void appl::widget::Search::onReceiveMessage(const ewol::object::Message& _msg) {
ewol::widget::Composer::onReceiveMessage(_msg);
APPL_INFO("Search receive message : " << _msg);
if ( _msg.getMessage() == l_eventSearchEntry) {
- m_searchData = to_u32string(_msg.getData());
+ m_searchData = etk::to_u32string(_msg.getData());
} else if ( _msg.getMessage() == l_eventSearchEntryEnter
|| _msg.getMessage() == l_eventSearchBt) {
find();
} else if ( _msg.getMessage() == l_eventReplaceEntry) {
- m_replaceData = to_u32string(_msg.getData());
+ m_replaceData = etk::to_u32string(_msg.getData());
} else if ( _msg.getMessage() == l_eventReplaceEntryEnter
|| _msg.getMessage() == l_eventReplaceBt) {
replace();
find();
} else if ( _msg.getMessage() == l_eventCaseCb) {
- m_caseSensitive = std::stob(_msg.getData());
+ m_caseSensitive = etk::string_to_bool(_msg.getData());
} else if ( _msg.getMessage() == l_eventWrapCb) {
- m_wrap = std::stob(_msg.getData());
+ m_wrap = etk::string_to_bool(_msg.getData());
} else if ( _msg.getMessage() == l_eventForwardCb) {
- m_forward = std::stob(_msg.getData());
+ m_forward = etk::string_to_bool(_msg.getData());
} else if ( _msg.getMessage() == l_eventHideBt) {
hide();
} else if ( _msg.getMessage() == ednMsgGuiSearch) {
if (true == isHide()) {
show();
- if (m_searchEntry!= NULL) {
+ if (m_searchEntry!= nullptr) {
m_searchEntry->keepFocus();
}
} else {
- if( (m_searchEntry!=NULL && true == m_searchEntry->getFocus())
- || (m_replaceEntry!=NULL && true == m_replaceEntry->getFocus()) ) {
+ if( (m_searchEntry!=nullptr && true == m_searchEntry->getFocus())
+ || (m_replaceEntry!=nullptr && true == m_replaceEntry->getFocus()) ) {
hide();
- } else if (m_searchEntry!= NULL) {
+ } else if (m_searchEntry!= nullptr) {
m_searchEntry->keepFocus();
} else {
hide();
@@ -162,16 +160,3 @@ void appl::widget::Search::onReceiveMessage(const ewol::object::Message& _msg) {
}
}
-void appl::widget::Search::onObjectRemove(const ewol::object::Shared& _object) {
- ewol::widget::Composer::onObjectRemove(_object);
- if (_object == m_searchEntry) {
- m_searchEntry.reset();
- }
- if (_object == m_replaceEntry) {
- m_replaceEntry.reset();
- }
- if (_object == m_viewerManager) {
- m_viewerManager.reset();
- }
-}
-
diff --git a/sources/appl/Gui/Search.h b/sources/appl/Gui/Search.h
index 52b8204..3a34150 100644
--- a/sources/appl/Gui/Search.h
+++ b/sources/appl/Gui/Search.h
@@ -18,17 +18,20 @@ namespace appl {
namespace widget {
class Search : public ewol::widget::Composer {
private:
- ewol::object::Shared m_viewerManager; //!< handle on the buffer manager
+ std::shared_ptr m_viewerManager; //!< handle on the buffer manager
bool m_forward;
bool m_caseSensitive;
bool m_wrap;
- ewol::object::Shared m_searchEntry;
- ewol::object::Shared m_replaceEntry;
+ std::shared_ptr m_searchEntry;
+ std::shared_ptr m_replaceEntry;
std::u32string m_searchData;
std::u32string m_replaceData;
- public:
+ protected:
// Constructeur
Search();
+ void init();
+ public:
+ DECLARE_FACTORY(Search);
virtual ~Search();
private:
/**
@@ -41,7 +44,6 @@ namespace appl {
void replace();
public: // derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _object);
};
};
};
diff --git a/sources/appl/Gui/TagFileList.cpp b/sources/appl/Gui/TagFileList.cpp
index de72afd..be19a79 100644
--- a/sources/appl/Gui/TagFileList.cpp
+++ b/sources/appl/Gui/TagFileList.cpp
@@ -23,20 +23,22 @@ appl::TagFileList::TagFileList() {
addEventId(applEventCtagsListValidate);
setMouseLimit(1);
// Load color properties: (use file list to be generic ...)
- m_colorProperty = ewol::resource::ColorFile::keep("THEME:COLOR:ListFileSystem.json");
- if (m_colorProperty != NULL) {
+ m_colorProperty = ewol::resource::ColorFile::create("THEME:COLOR:ListFileSystem.json");
+ if (m_colorProperty != nullptr) {
m_colorIdText = m_colorProperty->request("text");
m_colorIdBackground1 = m_colorProperty->request("background1");
m_colorIdBackground2 = m_colorProperty->request("background2");
m_colorIdBackgroundSelected = m_colorProperty->request("selected");
}
}
-
+void appl::TagFileList::init() {
+ ewol::widget::List::init();
+}
appl::TagFileList::~TagFileList() {
for (auto &it : m_list) {
delete(it);
- it = NULL;
+ it = nullptr;
}
}
@@ -58,9 +60,9 @@ uint32_t appl::TagFileList::getNuberOfRaw() {
}
bool appl::TagFileList::getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg) {
- if (_raw >= 0 && (size_t)_raw < m_list.size() && NULL != m_list[_raw]) {
+ if (_raw >= 0 && (size_t)_raw < m_list.size() && nullptr != m_list[_raw]) {
if (0 == _colomn) {
- _myTextToWrite = std::to_string(m_list[_raw]->fileLine);
+ _myTextToWrite = etk::to_string(m_list[_raw]->fileLine);
} else {
_myTextToWrite = m_list[_raw]->filename;
}
@@ -96,8 +98,8 @@ bool appl::TagFileList::onItemEvent(int32_t _IdInput, enum ewol::key::status _ty
}
if( m_selectedLine >= 0
&& m_selectedLine < (int64_t)m_list.size()
- && NULL != m_list[m_selectedLine] ) {
- generateEventId(event, std::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
+ && nullptr != m_list[m_selectedLine] ) {
+ generateEventId(event, etk::to_string(m_list[_raw]->fileLine)+":"+m_list[m_selectedLine]->filename);
} else {
generateEventId(applEventCtagsListUnSelect);
}
@@ -117,7 +119,7 @@ bool appl::TagFileList::onItemEvent(int32_t _IdInput, enum ewol::key::status _ty
*/
void appl::TagFileList::add(std::string& _file, int32_t _line) {
appl::TagListElement *tmpFile = new appl::TagListElement(_file, _line);
- if (NULL != tmpFile) {
+ if (nullptr != tmpFile) {
m_list.push_back(tmpFile);
}
markToRedraw();
diff --git a/sources/appl/Gui/TagFileList.h b/sources/appl/Gui/TagFileList.h
index 3827990..e7b0909 100644
--- a/sources/appl/Gui/TagFileList.h
+++ b/sources/appl/Gui/TagFileList.h
@@ -37,13 +37,16 @@ namespace appl {
int32_t m_selectedLine;
std::vector m_list;
protected:
- ewol::object::Shared m_colorProperty; //!< theme color property.
+ std::shared_ptr m_colorProperty; //!< theme color property.
int32_t m_colorIdText; //!< Color of the text.
int32_t m_colorIdBackground1; //!< Color of the Background.
int32_t m_colorIdBackground2; //!< Color of the Background 2.
int32_t m_colorIdBackgroundSelected; //!< Color of line selected.
- public:
+ protected:
TagFileList();
+ void init();
+ public:
+ DECLARE_FACTORY(TagFileList);
virtual ~TagFileList();
// display API :
virtual etk::Color<> getBasicBG();
diff --git a/sources/appl/Gui/TagFileSelection.cpp b/sources/appl/Gui/TagFileSelection.cpp
index d629ce3..de5f36b 100644
--- a/sources/appl/Gui/TagFileSelection.cpp
+++ b/sources/appl/Gui/TagFileSelection.cpp
@@ -34,10 +34,11 @@ appl::TagFileSelection::TagFileSelection() {
addObjectType("appl::TagFileSelection");
addEventId(applEventctagsSelection);
addEventId(applEventctagsCancel);
-
- ewol::object::Shared myWidgetTitle;
-
- ewol::object::Shared mySizerVert;
+}
+
+void appl::TagFileSelection::init() {
+ ewol::widget::PopUp::init();
+ std::shared_ptr mySizerVert;
#if defined(__TARGET_OS__Android)
setMinSize(ewol::Dimension(vec2(90,90),ewol::Dimension::Pourcent));
#elif defined(__TARGET_OS__Windows)
@@ -46,15 +47,15 @@ appl::TagFileSelection::TagFileSelection() {
setMinSize(ewol::Dimension(vec2(80,80),ewol::Dimension::Pourcent));
#endif
- mySizerVert = ewol::object::makeShared(new ewol::widget::Sizer(ewol::widget::Sizer::modeVert));
- if (NULL == mySizerVert) {
+ mySizerVert = ewol::widget::Sizer::create(ewol::widget::Sizer::modeVert);
+ if (nullptr == mySizerVert) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySizerVert->lockExpand(bvec2(true,true));
mySizerVert->setExpand(bvec2(true,true));
// set it in the pop-up-system :
setSubWidget(mySizerVert);
- ewol::object::Shared compose = ewol::object::makeShared(new ewol::widget::Composer(ewol::widget::Composer::String,
+ std::shared_ptr compose = ewol::widget::Composer::create(ewol::widget::Composer::String,
"\n"
" \n"
" \n"
" \n"
- "\n"));
+ "\n");
compose->setExpand(bvec2(true,false));
compose->setFill(bvec2(true,true));
mySizerVert->subWidgetAdd(compose);
- compose->registerOnEventNameWidget(this, "PLUGIN-CTAGS-jump", "pressed", applEventctagsSelection);
- compose->registerOnEventNameWidget(this, "PLUGIN-CTAGS-cancel", "pressed", applEventctagsCancel);
+ compose->registerOnEventNameWidget(shared_from_this(), "PLUGIN-CTAGS-jump", "pressed", applEventctagsSelection);
+ compose->registerOnEventNameWidget(shared_from_this(), "PLUGIN-CTAGS-cancel", "pressed", applEventctagsCancel);
- m_listTag = ewol::object::makeShared(new appl::TagFileList());
- if (NULL == m_listTag) {
+ m_listTag = appl::TagFileList::create();
+ if (nullptr == m_listTag) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
- m_listTag->registerOnEvent(this, applEventCtagsListValidate);
- m_listTag->registerOnEvent(this, applEventCtagsListSelect);
- m_listTag->registerOnEvent(this, applEventCtagsListUnSelect);
+ m_listTag->registerOnEvent(shared_from_this(), applEventCtagsListValidate);
+ m_listTag->registerOnEvent(shared_from_this(), applEventCtagsListSelect);
+ m_listTag->registerOnEvent(shared_from_this(), applEventCtagsListUnSelect);
m_listTag->setExpand(bvec2(true,true));
m_listTag->setFill(bvec2(true,true));
mySizerVert->subWidgetAdd(m_listTag);
}
- myWidgetTitle = new ewol::widget::Label("Ctags Jump Selection ...");
- if (NULL == myWidgetTitle) {
+ std::shared_ptr myWidgetTitle;
+ myWidgetTitle = ewol::widget::Label::create("Ctags Jump Selection ...");
+ if (nullptr == myWidgetTitle) {
EWOL_ERROR("Can not allocate widget == > display might be in error");
} else {
mySizerVert->subWidgetAdd(myWidgetTitle);
@@ -134,21 +136,8 @@ void appl::TagFileSelection::onReceiveMessage(const ewol::object::Message& _msg)
* @param[in] jump line id
*/
void appl::TagFileSelection::addCtagsNewItem(std::string _file, int32_t _line) {
- if (NULL != m_listTag) {
+ if (nullptr != m_listTag) {
m_listTag->add(_file, _line);
}
}
-void appl::TagFileSelection::onObjectRemove(const ewol::object::Shared& _removeObject) {
- // First step call parrent :
- ewol::widget::PopUp::onObjectRemove(_removeObject);
- // second step find if in all the elements ...
- if(_removeObject == m_listTag) {
- m_listTag = NULL;
- }
-}
-
-
-
-
-
diff --git a/sources/appl/Gui/TagFileSelection.h b/sources/appl/Gui/TagFileSelection.h
index 417b591..2d4ba0e 100644
--- a/sources/appl/Gui/TagFileSelection.h
+++ b/sources/appl/Gui/TagFileSelection.h
@@ -19,10 +19,13 @@ extern const char * const applEventctagsCancel;
namespace appl {
class TagFileSelection : public ewol::widget::PopUp {
private:
- ewol::object::Shared m_listTag;
+ std::shared_ptr m_listTag;
std::string m_eventNamed;
public:
TagFileSelection();
+ void init();
+ public:
+ DECLARE_FACTORY(TagFileSelection);
virtual ~TagFileSelection();
/**
* @brief add a Ctags item on the curent list
@@ -32,7 +35,6 @@ namespace appl {
void addCtagsNewItem(std::string file, int32_t line);
public: // herited function
void onReceiveMessage(const ewol::object::Message& _msg);
- void onObjectRemove(const ewol::object::Shared& _removeObject);
};
};
diff --git a/sources/appl/Gui/TextViewer.cpp b/sources/appl/Gui/TextViewer.cpp
index b665318..c147aa3 100644
--- a/sources/appl/Gui/TextViewer.cpp
+++ b/sources/appl/Gui/TextViewer.cpp
@@ -28,26 +28,19 @@
int64_t processTimeLocal = (endTime - startTime); \
APPL_DEBUG(comment << (float)((float)processTimeLocal / 1000.0) << "ms");
-appl::TextViewer::TextViewer(const std::string& _fontName, int32_t _fontSize) :
- m_displayText(_fontName, _fontSize),
+appl::TextViewer::TextViewer() :
m_insertMode(false) {
addObjectType("appl::TextViewer");
setCanHaveFocus(true);
- registerMultiCast(ednMsgBufferId);
- registerMultiCast(ednMsgGuiFind);
- registerMultiCast(ednMsgGuiReplace);
- registerMultiCast(appl::MsgSelectGotoLine);
- registerMultiCast(appl::MsgSelectNewFile);
- registerMultiCast(appl::MsgSelectGotoLineSelect);
setLimitScrolling(0.2);
setSingleFinger(false);
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
- m_viewerManager = appl::ViewerManager::keep();
+ m_bufferManager = appl::BufferManager::create();
+ m_viewerManager = appl::ViewerManager::create();
// load color properties
- m_paintingProperties = appl::GlyphPainting::keep("THEME:COLOR:textViewer.json");
+ m_paintingProperties = appl::GlyphPainting::create("THEME:COLOR:textViewer.json");
// get all id properties ...
m_colorBackground = m_paintingProperties->request("CODE_basicBackgroung");
m_colorSpace = m_paintingProperties->request("CODE_space");
@@ -56,18 +49,30 @@ appl::TextViewer::TextViewer(const std::string& _fontName, int32_t _fontSize) :
m_colorLineNumber = m_paintingProperties->request("CODE_lineNumber");
m_colorSelection = m_paintingProperties->request("SelectedText");
m_colorNormal = m_paintingProperties->request("normal");
-
+}
+
+void appl::TextViewer::init(const std::string& _fontName, int32_t _fontSize) {
+ ewol::widget::WidgetScrolled::init();
+ m_displayText.setFont(_fontName, _fontSize);
appl::textPluginManager::connect(*this);
// last created has focus ...
setCurrentSelect();
+
+ registerMultiCast(ednMsgBufferId);
+ registerMultiCast(ednMsgGuiFind);
+ registerMultiCast(ednMsgGuiReplace);
+ registerMultiCast(appl::MsgSelectGotoLine);
+ registerMultiCast(appl::MsgSelectNewFile);
+ registerMultiCast(appl::MsgSelectGotoLineSelect);
}
+
appl::TextViewer::~TextViewer() {
appl::textPluginManager::disconnect(*this);
}
std::string appl::TextViewer::getBufferPath() {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return "";
}
std::string filename = m_buffer->getFileName();
@@ -109,7 +114,7 @@ void appl::TextViewer::onRegenerateDisplay() {
m_displayDrawing.setColor((*m_paintingProperties)[m_colorBackground].getForeground());
m_displayDrawing.rectangleWidth(m_size);
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
m_maxSize.setX(256);
m_maxSize.setY(256);
m_displayText.setTextAlignement(10, m_size.x()-20, ewol::compositing::alignLeft);
@@ -138,7 +143,7 @@ void appl::TextViewer::onRegenerateDisplay() {
vec3 tmpCursorPosition(0, 0, -1);
float tmpCursorLenght = -1.0;
// real display ...
- m_displayText.setColor(etk::Color<>(0, 0, 0, 256));
+ m_displayText.setColor(etk::Color<>(0, 0, 0, 255));
float countNbLine = 1;
int32_t countColomn = 0;
// the siplay string :
@@ -204,7 +209,7 @@ void appl::TextViewer::onRegenerateDisplay() {
appl::DisplayHLData displayLocalSyntax;
m_buffer->hightlightGenerateLines(displayLocalSyntax, startingIt, (m_size.y()/tmpLetterSize.y()) + 5);
float maxSizeX = 0;
- appl::HighlightInfo * HLColor = NULL;
+ appl::HighlightInfo * HLColor = nullptr;
bool DisplayCursorAndSelection = isSelectedLast();
appl::Buffer::Iterator it;
for (it = startingIt;
@@ -220,12 +225,12 @@ void appl::TextViewer::onRegenerateDisplay() {
if (*it == u32char::Return) {
countNbLine += 1;
countColomn = 0;
- maxSizeX = etk_max(m_displayText.getPos().x(), maxSizeX);
+ maxSizeX = std::max(m_displayText.getPos().x(), maxSizeX);
// Display the end line position only if we have the focus ...
if (DisplayCursorAndSelection == true) {
if (it >= selectPosStart && it < selectPosStop) {
ewol::compositing::Drawing& draw = m_displayText.getDrawing();
- draw.setColor(etk::Color<>(0xFF0000FF));
+ draw.setColor(etk::Color<>(0xFF, 0x00, 0x00, 0xFF));
draw.setPos(m_displayText.getPos() + tmpLetterSize/4.0f);
draw.rectangle(m_displayText.getPos() + tmpLetterSize*3.0f/4.0f);
}
@@ -242,8 +247,8 @@ void appl::TextViewer::onRegenerateDisplay() {
}
HLColor = m_buffer->getElementColorAtPosition(displayLocalSyntax, (int64_t)it);
bool haveBackground = false;
- if ( HLColor != NULL
- && HLColor->patern != NULL) {
+ if ( HLColor != nullptr
+ && HLColor->patern != nullptr) {
m_displayText.setColor(HLColor->patern->getColorGlyph().getForeground());
m_displayText.setColorBg(HLColor->patern->getColorGlyph().getBackground());
haveBackground = HLColor->patern->getColorGlyph().haveBackground();
@@ -281,7 +286,7 @@ void appl::TextViewer::onRegenerateDisplay() {
tmpCursorPosition = m_displayText.getPos();
tmpCursorLenght = 5;
}
- maxSizeX = etk_max(m_displayText.getPos().x(), maxSizeX);
+ maxSizeX = std::max(m_displayText.getPos().x(), maxSizeX);
// Display cursor only if we have the focus ...
if ( tmpCursorPosition.z() != -1
&& getFocus() == true) {
@@ -313,7 +318,7 @@ void appl::TextViewer::onRegenerateDisplay() {
}
bool appl::TextViewer::onEventEntry(const ewol::event::Entry& _event) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
// First call plugin
@@ -429,7 +434,7 @@ bool appl::TextViewer::onEventInput(const ewol::event::Input& _event) {
keepFocus();
}
//tic();
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
// First call the scrolling widget :
@@ -613,7 +618,7 @@ appl::Buffer::Iterator appl::TextViewer::getMousePosition(const vec2& _relativeP
}
void appl::TextViewer::onEventClipboard(enum ewol::context::clipBoard::clipboardListe _clipboardID) {
- if (m_buffer != NULL) {
+ if (m_buffer != nullptr) {
std::string data = ewol::context::clipBoard::get(_clipboardID);
write(data);
}
@@ -642,27 +647,27 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
return;
}
if (_msg.getMessage() == appl::MsgSelectGotoLineSelect) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
- appl::Buffer::Iterator it = m_buffer->countForwardNLines(m_buffer->begin(), std::stoi(_msg.getData()));
+ appl::Buffer::Iterator it = m_buffer->countForwardNLines(m_buffer->begin(), etk::string_to_int32_t(_msg.getData()));
select(it, m_buffer->getEndLine(it));
markToRedraw();
return;
}
if (_msg.getMessage() == appl::MsgSelectGotoLine) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
- appl::Buffer::Iterator it = m_buffer->countForwardNLines(m_buffer->begin(), std::stoi(_msg.getData()));
+ appl::Buffer::Iterator it = m_buffer->countForwardNLines(m_buffer->begin(), etk::string_to_int32_t(_msg.getData()));
moveCursor(it);
markToRedraw();
return;
}
if (_msg.getMessage() == appl::MsgSelectNewFile) {
// reset scroll:
- if (m_buffer != NULL) {
- m_buffer->unRegisterOnEvent(this);
+ if (m_buffer != nullptr) {
+ m_buffer->unRegisterOnEvent(shared_from_this());
bool needAdd = true;
for (size_t iii=0; iiiget(_msg.getData());
m_bufferManager->setBufferSelected(m_buffer);
- if (m_buffer != NULL) {
- m_buffer->registerOnEvent(this, appl::Buffer::eventIsModify);
- m_buffer->registerOnEvent(this, appl::Buffer::eventSelectChange);
+ if (m_buffer != nullptr) {
+ m_buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventIsModify);
+ m_buffer->registerOnEvent(shared_from_this(), appl::Buffer::eventSelectChange);
for (auto element : m_drawingRemenber) {
if (element.first == m_buffer) {
m_originScrooled = element.second;
@@ -699,14 +704,6 @@ void appl::TextViewer::onReceiveMessage(const ewol::object::Message& _msg) {
}
}
-void appl::TextViewer::onObjectRemove(const ewol::object::Shared& _removeObject) {
- ewol::widget::WidgetScrolled::onObjectRemove(_removeObject);
- if (m_buffer == _removeObject) {
- m_buffer = NULL;
- markToRedraw();
- }
-}
-
void appl::TextViewer::onGetFocus() {
showKeyboard();
APPL_INFO("Focus - In");
@@ -731,7 +728,7 @@ void appl::TextViewer::setFontName(const std::string& _fontName) {
// TODO : Update process time ==> a little expensive (2->4ms) in end of file
void appl::TextViewer::updateScrolling() {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
vec2 realCursorPosition(0,0);
@@ -760,7 +757,7 @@ void appl::TextViewer::updateScrolling() {
}
bool appl::TextViewer::moveCursor(const appl::Buffer::Iterator& _pos) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
markToRedraw();
@@ -774,7 +771,7 @@ bool appl::TextViewer::moveCursor(const appl::Buffer::Iterator& _pos) {
}
bool appl::TextViewer::write(const std::string& _data) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
if (m_buffer->hasTextSelected() == true) {
@@ -784,7 +781,7 @@ bool appl::TextViewer::write(const std::string& _data) {
}
bool appl::TextViewer::write(const std::string& _data, const appl::Buffer::Iterator& _pos) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
markToRedraw();
@@ -800,7 +797,7 @@ bool appl::TextViewer::write(const std::string& _data, const appl::Buffer::Itera
}
bool appl::TextViewer::replace(const std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
markToRedraw();
@@ -816,7 +813,7 @@ bool appl::TextViewer::replace(const std::string& _data, const appl::Buffer::Ite
}
bool appl::TextViewer::replace(const std::string& _data) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return false;
}
if (m_buffer->hasTextSelected() == false) {
@@ -826,7 +823,7 @@ bool appl::TextViewer::replace(const std::string& _data) {
}
void appl::TextViewer::remove() {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
if (m_buffer->hasTextSelected() == false) {
@@ -844,7 +841,7 @@ void appl::TextViewer::remove() {
void appl::TextViewer::moveCursorRight(appl::TextViewer::moveMode _mode) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -867,7 +864,7 @@ void appl::TextViewer::moveCursorRight(appl::TextViewer::moveMode _mode) {
}
void appl::TextViewer::moveCursorLeft(appl::TextViewer::moveMode _mode) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -890,7 +887,7 @@ void appl::TextViewer::moveCursorLeft(appl::TextViewer::moveMode _mode) {
}
void appl::TextViewer::moveCursorUp(uint32_t _nbLine) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -916,7 +913,7 @@ void appl::TextViewer::moveCursorUp(uint32_t _nbLine) {
}
void appl::TextViewer::moveCursorDown(uint32_t _nbLine) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
return;
}
markToRedraw();
@@ -996,14 +993,14 @@ float appl::TextViewer::getScreenSize(const appl::Buffer::Iterator& _startLinePo
}
void appl::TextViewer::setCurrentSelect() {
- if (m_viewerManager != NULL) {
- m_viewerManager->setViewerSelected(this, m_buffer);
+ if (m_viewerManager != nullptr) {
+ m_viewerManager->setViewerSelected(std::dynamic_pointer_cast(shared_from_this()), m_buffer);
}
}
bool appl::TextViewer::isSelectedLast() {
- if (m_viewerManager != NULL) {
- return m_viewerManager->isLastSelected(this);
+ if (m_viewerManager != nullptr) {
+ return m_viewerManager->isLastSelected(std::dynamic_pointer_cast(shared_from_this()));
}
return false;
}
diff --git a/sources/appl/Gui/TextViewer.h b/sources/appl/Gui/TextViewer.h
index a56e6ed..5d2f676 100644
--- a/sources/appl/Gui/TextViewer.h
+++ b/sources/appl/Gui/TextViewer.h
@@ -24,7 +24,7 @@
namespace appl {
class TextViewer : public ewol::widget::WidgetScrolled {
private:
- ewol::object::Shared m_paintingProperties; //!< element painting property
+ std::shared_ptr m_paintingProperties; //!< element painting property
int32_t m_colorBackground;
int32_t m_colorSpace;
int32_t m_colorTabulation;
@@ -33,25 +33,28 @@ namespace appl {
int32_t m_colorSelection;
int32_t m_colorNormal;
private:
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
- ewol::object::Shared m_viewerManager; //!< handle on the buffer manager
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_viewerManager; //!< handle on the buffer manager
+ protected:
+ TextViewer();
+ void init(const std::string& _fontName="", int32_t _fontSize=-1);
public:
- TextViewer(const std::string& _fontName="", int32_t _fontSize=-1);
+ DECLARE_FACTORY(TextViewer);
virtual ~TextViewer();
private:
- ewol::object::Shared m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
+ std::shared_ptr m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
public:
/**
* @brief Get the buffer property (only for the class : template class TextViewerPluginData)
* @return pointer on buffer
*/
- ewol::object::Shared internalGetBuffer() {
+ std::shared_ptr internalGetBuffer() {
return m_buffer;
}
private:
ewol::compositing::Text m_displayText; //!< Text display properties.
ewol::compositing::Drawing m_displayDrawing; //!< Other diaplay requested.
- std::vector, vec2>> m_drawingRemenber;
+ std::vector, vec2>> m_drawingRemenber;
public:
void setFontSize(int32_t _size);
void setFontName(const std::string& _fontName);
@@ -61,7 +64,6 @@ namespace appl {
virtual bool calculateMinSize();
virtual void onRegenerateDisplay();
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _removeObject);
virtual bool onEventInput(const ewol::event::Input& _event);
virtual bool onEventEntry(const ewol::event::Entry& _event);
virtual void onEventClipboard(enum ewol::context::clipBoard::clipboardListe _clipboardID);
@@ -85,7 +87,7 @@ namespace appl {
bool replace(const std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd);
bool replace(const std::string& _data);
bool replace(const std::u32string& _data) {
- return replace(std::to_string(_data));
+ return replace(etk::to_string(_data));
}
/**
* @brief Remove selected data ...
@@ -95,7 +97,7 @@ namespace appl {
* @brief Remove selected data ... (No plugin call)
*/
void removeDirect() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return;
}
m_buffer->removeSelection();
@@ -108,7 +110,7 @@ namespace appl {
* @return true of no error occured.
*/
bool copy(std::string& _data) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
return m_buffer->copy(_data);
@@ -120,7 +122,7 @@ namespace appl {
* @param[in] _posEnd End position to end replace the data.
*/
void copy(std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return;
}
m_buffer->copy(_data, _pos, _posEnd);
@@ -132,7 +134,7 @@ namespace appl {
* @return true if the write is done corectly
*/
bool writeDirect(const std::string& _data, const appl::Buffer::Iterator& _pos) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->write(_data, _pos);
@@ -147,7 +149,7 @@ namespace appl {
* @return true if the write is done corectly
*/
bool replaceDirect(const std::string& _data, const appl::Buffer::Iterator& _pos, const appl::Buffer::Iterator& _posEnd) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->replace(_data, _pos, _posEnd);
@@ -208,14 +210,14 @@ namespace appl {
* @return true if a display buffer is present, false otherwise.
*/
virtual bool hasBuffer() {
- return m_buffer != NULL;
+ return m_buffer != nullptr;
}
/**
* @brief Get the status of selection.
* @return true if we have a current selection, false otherwise.
*/
virtual bool hasTextSelected() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
return m_buffer->hasTextSelected();
@@ -224,7 +226,7 @@ namespace appl {
* @brief Remove Selection of the buffer.
*/
virtual void unSelect() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return;
}
m_buffer->unSelect();
@@ -235,7 +237,7 @@ namespace appl {
* @param[in] _stop Stop position of the selection (the curor is set at this position)
*/
virtual void select(const appl::Buffer::Iterator& _start, const appl::Buffer::Iterator& _stop) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return;
}
moveCursor(_stop);
@@ -255,7 +257,7 @@ namespace appl {
appl::Buffer::Iterator& _resultStart,
appl::Buffer::Iterator& _resultStop,
bool _caseSensitive = true) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->search(_pos, _search, _resultStart, _caseSensitive);
@@ -278,7 +280,7 @@ namespace appl {
appl::Buffer::Iterator& _resultStart,
appl::Buffer::Iterator& _resultStop,
bool _caseSensitive = true) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
bool ret = m_buffer->searchBack(_pos, _search, _resultStart, _caseSensitive);
@@ -297,7 +299,7 @@ namespace appl {
bool getPosAround(const appl::Buffer::Iterator& _pos,
appl::Buffer::Iterator &_beginPos,
appl::Buffer::Iterator &_endPos) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return false;
}
return m_buffer->getPosAround(_pos, _beginPos, _endPos);
@@ -308,7 +310,7 @@ namespace appl {
* @return The Iterator
*/
appl::Buffer::Iterator position(int64_t _pos) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->position(_pos);
@@ -318,7 +320,7 @@ namespace appl {
* @return The iterator on the cursor position
*/
appl::Buffer::Iterator cursor() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->cursor();
@@ -328,7 +330,7 @@ namespace appl {
* @return The iterator on the begin position
*/
appl::Buffer::Iterator begin() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->begin();
@@ -338,7 +340,7 @@ namespace appl {
* @return The iterator on the end position
*/
appl::Buffer::Iterator end() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->end();
@@ -348,7 +350,7 @@ namespace appl {
* @return The Iterator
*/
appl::Buffer::Iterator selectStart() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->selectStart();
@@ -358,7 +360,7 @@ namespace appl {
* @return The Iterator
*/
appl::Buffer::Iterator selectStop() {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->selectStop();
@@ -369,7 +371,7 @@ namespace appl {
* @return The position in the buffer of the start of the line.
*/
appl::Buffer::Iterator getStartLine(const appl::Buffer::Iterator& _pos) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->getStartLine(_pos);
@@ -380,7 +382,7 @@ namespace appl {
* @return The position in the buffer of the end of the line.
*/
appl::Buffer::Iterator getEndLine(const appl::Buffer::Iterator& _pos) {
- if (m_buffer==NULL) {
+ if (m_buffer==nullptr) {
return appl::Buffer::Iterator();
}
return m_buffer->getEndLine(_pos);
diff --git a/sources/appl/Gui/ViewerManager.cpp b/sources/appl/Gui/ViewerManager.cpp
index 983d31d..54e404c 100644
--- a/sources/appl/Gui/ViewerManager.cpp
+++ b/sources/appl/Gui/ViewerManager.cpp
@@ -17,57 +17,30 @@
#undef __class__
#define __class__ "ViewerManager"
-appl::ViewerManager::ViewerManager() :
- ewol::Resource("???ViewerManager???"),
- m_viewer(NULL) {
+appl::ViewerManager::ViewerManager() {
addObjectType("appl::ViewerManager");
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
+ m_bufferManager = appl::BufferManager::create();
+}
+
+void appl::ViewerManager::init(const std::string& _uniqueName) {
+ ewol::Resource::init(_uniqueName);
}
appl::ViewerManager::~ViewerManager() {
}
-bool appl::ViewerManager::isLastSelected(const ewol::object::Shared& _viewer) {
- return m_viewer == _viewer;
+bool appl::ViewerManager::isLastSelected(const std::shared_ptr& _viewer) {
+ return m_viewer.lock() == _viewer;
}
-void appl::ViewerManager::setViewerSelected(const ewol::object::Shared& _viewer, const ewol::object::Shared& _buffer) {
- if (m_viewer == _viewer) {
+void appl::ViewerManager::setViewerSelected(const std::shared_ptr& _viewer, const std::shared_ptr& _buffer) {
+ if (m_viewer.lock() == _viewer) {
return;
}
m_viewer = _viewer;
- if (m_bufferManager != NULL) {
+ if (m_bufferManager != nullptr) {
m_bufferManager->setBufferSelected(_buffer);
}
}
-
-void appl::ViewerManager::onReceiveMessage(const ewol::object::Message& _msg) {
- APPL_DEBUG("receive message !!! " << _msg);
-}
-
-void appl::ViewerManager::onObjectRemove(const ewol::object::Shared& _removeObject) {
- ewol::Resource:: onObjectRemove(_removeObject);
- if (_removeObject == m_viewer) {
- m_viewer.reset();
- return;
- }
-}
-
-ewol::object::Shared appl::ViewerManager::keep() {
- //EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
- ewol::object::Shared object = ewol::dynamic_pointer_cast(getManager().localKeep("???ViewerManager???"));
- if (NULL != object) {
- return object;
- }
- // this element create a new one every time ....
- EWOL_INFO("CREATE : appl::ViewerManager: ???ViewerManager???");
- object = ewol::object::makeShared(new appl::ViewerManager());
- if (NULL == object) {
- EWOL_ERROR("allocation error of a resource : ???ViewerManager???");
- return NULL;
- }
- getManager().localAdd(object);
- return object;
-}
diff --git a/sources/appl/Gui/ViewerManager.h b/sources/appl/Gui/ViewerManager.h
index 42c5e4e..95f24e0 100644
--- a/sources/appl/Gui/ViewerManager.h
+++ b/sources/appl/Gui/ViewerManager.h
@@ -20,41 +20,32 @@ namespace appl {
class ViewerManager : public ewol::Resource {
protected:
ViewerManager();
+ void init(const std::string& _uniqueName);
public:
+ DECLARE_RESOURCE_SINGLE_FACTORY(ViewerManager, "???ViewerManager???");
virtual ~ViewerManager();
private:
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
- ewol::object::Shared m_viewer;
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
+ std::weak_ptr m_viewer;
public:
/**
* @brief Set the current buffer selected
* @param[in] _viewer Pointer on the viewer selected
*/
- void setViewerSelected(const ewol::object::Shared& _viewer, const ewol::object::Shared& _buffer);
+ void setViewerSelected(const std::shared_ptr& _viewer, const std::shared_ptr& _buffer);
/**
* @brief Get the current buffer selected
* @return Pointer on the buffer selected
*/
- ewol::object::Shared getViewerSelected() {
- return m_viewer;
+ std::shared_ptr getViewerSelected() {
+ return m_viewer.lock();
};
/**
* @breif Check if the element is the last request selection
* @param[in] _viewer element selected.
* @return true if the element is selected
*/
- bool isLastSelected(const ewol::object::Shared& _viewer);
- public: // herited function
- void onReceiveMessage(const ewol::object::Message& _msg);
- void onObjectRemove(const ewol::object::Shared& _removeObject);
- public: // resource manager
- /**
- * @brief keep the resource pointer.
- * @note Never free this pointer by your own...
- * @param[in] _filename Name of the configuration file.
- * @return pointer on the resource or NULL if an error occured.
- */
- static ewol::object::Shared keep();
+ bool isLastSelected(const std::shared_ptr& _viewer);
};
};
diff --git a/sources/appl/Gui/WorkerCloseAllFile.cpp b/sources/appl/Gui/WorkerCloseAllFile.cpp
index 4c0d8db..aada838 100644
--- a/sources/appl/Gui/WorkerCloseAllFile.cpp
+++ b/sources/appl/Gui/WorkerCloseAllFile.cpp
@@ -15,26 +15,28 @@
static const char* s_closeDone = "close-done";
-appl::WorkerCloseAllFile::WorkerCloseAllFile() :
- m_worker(NULL),
- m_bufferManager(NULL) {
+appl::WorkerCloseAllFile::WorkerCloseAllFile() {
addObjectType("appl::WorkerCloseAllFile");
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
-
- if (m_bufferManager == NULL) {
+ m_bufferManager = appl::BufferManager::create();
+}
+
+void appl::WorkerCloseAllFile::init() {
+ ewol::Object::init();
+ if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
autoDestroy();
return;
}
// List all current open file :
for (int64_t iii=m_bufferManager->size()-1; iii>=0; --iii) {
- ewol::object::Shared tmpBuffer = m_bufferManager->get(iii);
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(iii);
+ if (tmpBuffer == nullptr) {
continue;
}
if (tmpBuffer->isModify() == false) {
- tmpBuffer->removeObject();
+ APPL_TODO("destroy object");
+ tmpBuffer->destroy();
continue;
}
m_bufferNameList.push_back(tmpBuffer->getFileName());
@@ -45,14 +47,14 @@ appl::WorkerCloseAllFile::WorkerCloseAllFile() :
return;
}
// create the worker :
- m_worker = ewol::object::makeShared(new appl::WorkerCloseFile(m_bufferNameList.front()));
+ m_worker = appl::WorkerCloseFile::create(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
autoDestroy();
return;
}
- m_worker->registerOnEvent(this, appl::WorkerCloseFile::eventCloseDone, s_closeDone);
+ m_worker->registerOnEvent(shared_from_this(), appl::WorkerCloseFile::eventCloseDone, s_closeDone);
}
appl::WorkerCloseAllFile::~WorkerCloseAllFile() {
@@ -60,7 +62,7 @@ appl::WorkerCloseAllFile::~WorkerCloseAllFile() {
}
void appl::WorkerCloseAllFile::onReceiveMessage(const ewol::object::Message& _msg) {
- if (m_bufferManager == NULL) {
+ if (m_bufferManager == nullptr) {
// nothing to do in this case ==> can do nothing ...
return;
}
@@ -70,25 +72,14 @@ void appl::WorkerCloseAllFile::onReceiveMessage(const ewol::object::Message& _ms
return;
}
// create the worker :
- m_worker = ewol::object::makeShared(new appl::WorkerCloseFile(m_bufferNameList.front()));
+ m_worker = appl::WorkerCloseFile::create(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
autoDestroy();
return;
}
- m_worker->registerOnEvent(this, appl::WorkerCloseFile::eventCloseDone, s_closeDone);
- }
-}
-
-void appl::WorkerCloseAllFile::onObjectRemove(const ewol::object::Shared& _removeObject) {
- if (_removeObject == m_worker) {
- m_worker = NULL;
- APPL_VERBOSE("AutoRemove After saving sub widget ...");
- autoDestroy();
- } else if (_removeObject == m_bufferManager) {
- m_bufferManager = NULL;
- autoDestroy();
+ m_worker->registerOnEvent(shared_from_this(), appl::WorkerCloseFile::eventCloseDone, s_closeDone);
}
}
diff --git a/sources/appl/Gui/WorkerCloseAllFile.h b/sources/appl/Gui/WorkerCloseAllFile.h
index 8d6714e..5615fca 100644
--- a/sources/appl/Gui/WorkerCloseAllFile.h
+++ b/sources/appl/Gui/WorkerCloseAllFile.h
@@ -14,16 +14,18 @@
namespace appl {
class WorkerCloseAllFile : public ewol::Object {
- public:
+ protected:
WorkerCloseAllFile();
+ void init();
+ public:
+ DECLARE_FACTORY(WorkerCloseAllFile);
virtual ~WorkerCloseAllFile();
private:
std::vector m_bufferNameList;
- ewol::object::Shared m_worker; //! pop-up element that is open...
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_worker; //! pop-up element that is open...
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
public: // derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _removeObject);
};
};
diff --git a/sources/appl/Gui/WorkerCloseFile.cpp b/sources/appl/Gui/WorkerCloseFile.cpp
index aa304d3..c5f4a11 100644
--- a/sources/appl/Gui/WorkerCloseFile.cpp
+++ b/sources/appl/Gui/WorkerCloseFile.cpp
@@ -21,25 +21,28 @@ static const char* s_saveValidate = "save-validate";
static const char* s_closeValidate = "close-validate";
static const char* s_saveAsDone = "save-as-done";
-appl::WorkerCloseFile::WorkerCloseFile(const std::string& _bufferName) :
- m_bufferName(_bufferName),
- m_buffer(NULL),
- m_worker(NULL),
- m_bufferManager(NULL) {
+appl::WorkerCloseFile::WorkerCloseFile() :
+ m_buffer(nullptr),
+ m_worker(nullptr),
+ m_bufferManager(nullptr) {
addObjectType("appl::WorkerCloseFile");
addEventId(eventCloseDone);
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
-
- if (m_bufferManager == NULL) {
+ m_bufferManager = appl::BufferManager::create();
+}
+
+void appl::WorkerCloseFile::init(const std::string& _bufferName) {
+ ewol::Object::init();
+ m_bufferName = _bufferName;
+ if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
autoDestroy();
return;
}
if (m_bufferName == "") {
// need to find the curent file ...
- ewol::object::Shared tmpp = m_bufferManager->getBufferSelected();
- if (tmpp == NULL) {
+ std::shared_ptr tmpp = m_bufferManager->getBufferSelected();
+ if (tmpp == nullptr) {
APPL_ERROR("No selected buffer now ...");
autoDestroy();
return;
@@ -52,43 +55,43 @@ appl::WorkerCloseFile::WorkerCloseFile(const std::string& _bufferName) :
return;
}
m_buffer = m_bufferManager->get(m_bufferName);
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << m_bufferName);
autoDestroy();
return;
}
if (m_buffer->isModify() == false) {
generateEventId(eventCloseDone);
- m_buffer->removeObject();
+ m_buffer->destroy();
return;
}
- ewol::object::Shared tmpPopUp = ewol::object::makeShared(new ewol::widget::StdPopUp());
- if (tmpPopUp == NULL) {
+ std::shared_ptr tmpPopUp = ewol::widget::StdPopUp::create();
+ if (tmpPopUp == nullptr) {
APPL_ERROR("Can not create a simple pop-up");
return;
}
tmpPopUp->setTitle("Close un-saved file:");
tmpPopUp->setComment("The file named : \"" + m_buffer->getFileName() + "\" is curently modify.
If you don't saves these modifications,
they will be definitly lost...");
- ewol::object::Shared bt = NULL;
+ std::shared_ptr bt = nullptr;
if (m_buffer->hasFileName() == true) {
bt = tmpPopUp->addButton("Save", true);
- if (bt != NULL) {
- bt->registerOnEvent(this, "pressed", s_saveValidate);
+ if (bt != nullptr) {
+ bt->registerOnEvent(shared_from_this(), "pressed", s_saveValidate);
}
}
bt = tmpPopUp->addButton("Save As", true);
- if (bt != NULL) {
- bt->registerOnEvent(this, "pressed", s_saveAsValidate);
+ if (bt != nullptr) {
+ bt->registerOnEvent(shared_from_this(), "pressed", s_saveAsValidate);
}
bt = tmpPopUp->addButton("Close", true);
- if (bt != NULL) {
- bt->registerOnEvent(this, "pressed", s_closeValidate);
+ if (bt != nullptr) {
+ bt->registerOnEvent(shared_from_this(), "pressed", s_closeValidate);
}
tmpPopUp->addButton("Cancel", true);
tmpPopUp->setRemoveOnExternClick(true);
- ewol::object::Shared tmpWindows = ewol::getContext().getWindows();
- if (tmpWindows == NULL) {
+ std::shared_ptr tmpWindows = ewol::getContext().getWindows();
+ if (tmpWindows == nullptr) {
APPL_ERROR("Error to get the windows.");
autoDestroy();
return;
@@ -101,25 +104,25 @@ appl::WorkerCloseFile::~WorkerCloseFile() {
}
void appl::WorkerCloseFile::onReceiveMessage(const ewol::object::Message& _msg) {
- if (m_bufferManager == NULL) {
+ if (m_bufferManager == nullptr) {
// nothing to do in this case ==> can do nothing ...
return;
}
APPL_DEBUG("have message : " << _msg);
if (_msg.getMessage() == s_saveAsValidate) {
- m_worker = ewol::object::makeShared(new appl::WorkerSaveFile(m_bufferName));
- if (m_worker != NULL) {
- m_worker->registerOnEvent(this, appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
+ m_worker = appl::WorkerSaveFile::create(m_bufferName);
+ if (m_worker != nullptr) {
+ m_worker->registerOnEvent(shared_from_this(), appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
}
} else if (_msg.getMessage() == s_saveValidate) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
APPL_ERROR("Error to get the buffer : oldName=" << m_bufferName);
autoDestroy();
return;
}
if (m_buffer->storeFile() == false) {
- ewol::object::Shared tmpWindows = ewol::getContext().getWindows();
- if (tmpWindows == NULL) {
+ std::shared_ptr tmpWindows = ewol::getContext().getWindows();
+ if (tmpWindows == nullptr) {
return;
}
tmpWindows->displayWarningMessage("We can not save the file :
" + m_buffer->getFileName() + "");
@@ -128,27 +131,14 @@ void appl::WorkerCloseFile::onReceiveMessage(const ewol::object::Message& _msg)
}
} else if ( _msg.getMessage() == s_closeValidate
|| _msg.getMessage() == s_saveAsDone) {
- if (m_buffer == NULL) {
+ if (m_buffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << m_bufferName);
autoDestroy();
return;
}
generateEventId(eventCloseDone);
- m_buffer->removeObject();
- }
-}
-
-void appl::WorkerCloseFile::onObjectRemove(const ewol::object::Shared& _removeObject) {
- if (_removeObject == m_worker) {
- m_worker = NULL;
- APPL_VERBOSE("AutoRemove After closing sub widget ...");
- autoDestroy();
- } else if (_removeObject == m_bufferManager) {
- m_bufferManager = NULL;
- autoDestroy();
- } else if (_removeObject == m_buffer) {
- m_buffer = NULL;
- autoDestroy();
+ m_buffer->destroy();
+ m_buffer.reset();
}
}
diff --git a/sources/appl/Gui/WorkerCloseFile.h b/sources/appl/Gui/WorkerCloseFile.h
index 10f111a..31354c4 100644
--- a/sources/appl/Gui/WorkerCloseFile.h
+++ b/sources/appl/Gui/WorkerCloseFile.h
@@ -17,18 +17,20 @@ namespace appl {
class WorkerCloseFile : public ewol::Object {
public:
static const char* eventCloseDone;
- public:
+ protected:
// note : if == "" ==> current ...
- WorkerCloseFile(const std::string& _bufferName);
+ WorkerCloseFile();
+ void init(const std::string& _bufferName);
+ public:
+ DECLARE_FACTORY(WorkerCloseFile);
virtual ~WorkerCloseFile();
private:
std::string m_bufferName;
- ewol::object::Shared m_buffer; //!< reference on the buffer (when rename, we have no more reference on the buffer
- ewol::object::Shared m_worker; //! sub-worker element...
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_buffer; //!< reference on the buffer (when rename, we have no more reference on the buffer
+ std::shared_ptr m_worker; //! sub-worker element...
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
public: // derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _removeObject);
};
};
diff --git a/sources/appl/Gui/WorkerSaveAllFile.cpp b/sources/appl/Gui/WorkerSaveAllFile.cpp
index 5350729..68a9381 100644
--- a/sources/appl/Gui/WorkerSaveAllFile.cpp
+++ b/sources/appl/Gui/WorkerSaveAllFile.cpp
@@ -15,22 +15,23 @@
static const char* s_saveAsDone = "save-as-done";
-appl::WorkerSaveAllFile::WorkerSaveAllFile() :
- m_worker(NULL),
- m_bufferManager(NULL) {
+appl::WorkerSaveAllFile::WorkerSaveAllFile() {
addObjectType("appl::WorkerSaveAllFile");
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
-
- if (m_bufferManager == NULL) {
+ m_bufferManager = appl::BufferManager::create();
+}
+
+void appl::WorkerSaveAllFile::init() {
+ ewol::Object::init();
+ if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
autoDestroy();
return;
}
// List all current open file :
for (int32_t iii=0; iiisize(); ++iii) {
- ewol::object::Shared tmpBuffer = m_bufferManager->get(iii);
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(iii);
+ if (tmpBuffer == nullptr) {
continue;
}
if (tmpBuffer->isModify() == false) {
@@ -48,14 +49,14 @@ appl::WorkerSaveAllFile::WorkerSaveAllFile() :
return;
}
// create the worker :
- m_worker = ewol::object::makeShared(new appl::WorkerSaveFile(m_bufferNameList.front()));
+ m_worker = appl::WorkerSaveFile::create(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
autoDestroy();
return;
}
- m_worker->registerOnEvent(this, appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
+ m_worker->registerOnEvent(shared_from_this(), appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
}
appl::WorkerSaveAllFile::~WorkerSaveAllFile() {
@@ -63,7 +64,7 @@ appl::WorkerSaveAllFile::~WorkerSaveAllFile() {
}
void appl::WorkerSaveAllFile::onReceiveMessage(const ewol::object::Message& _msg) {
- if (m_bufferManager == NULL) {
+ if (m_bufferManager == nullptr) {
// nothing to do in this case ==> can do nothing ...
return;
}
@@ -73,25 +74,14 @@ void appl::WorkerSaveAllFile::onReceiveMessage(const ewol::object::Message& _msg
return;
}
// create the worker :
- m_worker = new appl::WorkerSaveFile(m_bufferNameList.front());
+ m_worker = appl::WorkerSaveFile::create(m_bufferNameList.front());
// remove first element :
m_bufferNameList.erase(m_bufferNameList.begin());
if (m_bufferNameList.size() == 0) {
autoDestroy();
return;
}
- m_worker->registerOnEvent(this, appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
- }
-}
-
-void appl::WorkerSaveAllFile::onObjectRemove(const ewol::object::Shared& _removeObject) {
- if (_removeObject == m_worker) {
- m_worker = NULL;
- APPL_VERBOSE("AutoRemove After saving sub widget ...");
- autoDestroy();
- } else if (_removeObject == m_bufferManager) {
- m_bufferManager = NULL;
- autoDestroy();
+ m_worker->registerOnEvent(shared_from_this(), appl::WorkerSaveFile::eventSaveDone, s_saveAsDone);
}
}
diff --git a/sources/appl/Gui/WorkerSaveAllFile.h b/sources/appl/Gui/WorkerSaveAllFile.h
index 2d8c0d4..8909655 100644
--- a/sources/appl/Gui/WorkerSaveAllFile.h
+++ b/sources/appl/Gui/WorkerSaveAllFile.h
@@ -14,16 +14,18 @@
namespace appl {
class WorkerSaveAllFile : public ewol::Object {
- public:
+ protected:
WorkerSaveAllFile();
+ void init();
+ public:
+ DECLARE_FACTORY(WorkerSaveAllFile);
virtual ~WorkerSaveAllFile();
private:
std::vector m_bufferNameList;
- ewol::object::Shared m_worker; //! pop-up element that is open...
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_worker; //! pop-up element that is open...
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
public: // derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _removeObject);
};
};
diff --git a/sources/appl/Gui/WorkerSaveFile.cpp b/sources/appl/Gui/WorkerSaveFile.cpp
index c331126..dde1524 100644
--- a/sources/appl/Gui/WorkerSaveFile.cpp
+++ b/sources/appl/Gui/WorkerSaveFile.cpp
@@ -17,24 +17,25 @@ const char* appl::WorkerSaveFile::eventSaveDone = "save-file-done";
static const char* s_saveAsValidate = "save-as-validate";
-appl::WorkerSaveFile::WorkerSaveFile(const std::string& _bufferName, bool _forceSaveAs) :
- m_bufferName(_bufferName),
- m_chooser(NULL),
- m_bufferManager(NULL) {
+appl::WorkerSaveFile::WorkerSaveFile() {
addObjectType("appl::WorkerSaveFile");
addEventId(eventSaveDone);
// load buffer manager:
- m_bufferManager = appl::BufferManager::keep();
-
- if (m_bufferManager == NULL) {
+ m_bufferManager = appl::BufferManager::create();
+}
+
+void appl::WorkerSaveFile::init(const std::string& _bufferName, bool _forceSaveAs) {
+ ewol::Object::init();
+ m_bufferName = _bufferName;
+ if (m_bufferManager == nullptr) {
APPL_ERROR("can not call unexistant buffer manager ... ");
autoDestroy();
return;
}
if (m_bufferName == "") {
// need to find the curent file ...
- ewol::object::Shared tmpp = m_bufferManager->getBufferSelected();
- if (tmpp == NULL) {
+ std::shared_ptr tmpp = m_bufferManager->getBufferSelected();
+ if (tmpp == nullptr) {
APPL_ERROR("No selected buffer now ...");
autoDestroy();
return;
@@ -46,8 +47,8 @@ appl::WorkerSaveFile::WorkerSaveFile(const std::string& _bufferName, bool _force
autoDestroy();
return;
}
- ewol::object::Shared tmpBuffer = m_bufferManager->get(m_bufferName);
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(m_bufferName);
+ if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << m_bufferName);
autoDestroy();
return;
@@ -60,8 +61,8 @@ appl::WorkerSaveFile::WorkerSaveFile(const std::string& _bufferName, bool _force
return;
}
}
- m_chooser = ewol::object::makeShared(new ewol::widget::FileChooser());
- if (NULL == m_chooser) {
+ m_chooser = ewol::widget::FileChooser::create();
+ if (nullptr == m_chooser) {
APPL_ERROR("Can not allocate widget == > display might be in error");
autoDestroy();
return;
@@ -71,14 +72,14 @@ appl::WorkerSaveFile::WorkerSaveFile(const std::string& _bufferName, bool _force
etk::FSNode tmpName(m_bufferName);
m_chooser->setFolder(tmpName.getNameFolder());
m_chooser->setFileName(tmpName.getNameFile());
- ewol::object::Shared tmpWindows = ewol::getContext().getWindows();
- if (tmpWindows == NULL) {
+ std::shared_ptr tmpWindows = ewol::getContext().getWindows();
+ if (tmpWindows == nullptr) {
APPL_ERROR("Error to get the windows.");
autoDestroy();
return;
}
tmpWindows->popUpWidgetPush(m_chooser);
- m_chooser->registerOnEvent(this, ewol::widget::FileChooser::eventValidate, s_saveAsValidate);
+ m_chooser->registerOnEvent(shared_from_this(), ewol::widget::FileChooser::eventValidate, s_saveAsValidate);
}
appl::WorkerSaveFile::~WorkerSaveFile() {
@@ -86,7 +87,7 @@ appl::WorkerSaveFile::~WorkerSaveFile() {
}
void appl::WorkerSaveFile::onReceiveMessage(const ewol::object::Message& _msg) {
- if (m_bufferManager == NULL) {
+ if (m_bufferManager == nullptr) {
// nothing to do in this case ==> can do nothing ...
return;
}
@@ -99,15 +100,15 @@ void appl::WorkerSaveFile::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_ERROR("Try to save an non-existant file :" << m_bufferName);
return;
}
- ewol::object::Shared tmpBuffer = m_bufferManager->get(m_bufferName);
- if (tmpBuffer == NULL) {
+ std::shared_ptr tmpBuffer = m_bufferManager->get(m_bufferName);
+ if (tmpBuffer == nullptr) {
APPL_ERROR("Error to get the buffer : " << m_bufferName);
return;
}
tmpBuffer->setFileName(_msg.getData());
if (tmpBuffer->storeFile() == false) {
- ewol::object::Shared tmpWindows = ewol::getContext().getWindows();
- if (tmpWindows == NULL) {
+ std::shared_ptr tmpWindows = ewol::getContext().getWindows();
+ if (tmpWindows == nullptr) {
return;
}
tmpWindows->displayWarningMessage("We can not save the file :
" + tmpBuffer->getFileName() + "");
@@ -117,14 +118,3 @@ void appl::WorkerSaveFile::onReceiveMessage(const ewol::object::Message& _msg) {
}
}
-void appl::WorkerSaveFile::onObjectRemove(const ewol::object::Shared& _removeObject) {
- if (_removeObject == m_chooser) {
- m_chooser = NULL;
- APPL_VERBOSE("AutoRemove After closing sub widget ...");
- autoDestroy();
- } else if (_removeObject == m_bufferManager) {
- m_bufferManager = NULL;
- autoDestroy();
- }
-}
-
diff --git a/sources/appl/Gui/WorkerSaveFile.h b/sources/appl/Gui/WorkerSaveFile.h
index 03c1e6f..3fbf3b6 100644
--- a/sources/appl/Gui/WorkerSaveFile.h
+++ b/sources/appl/Gui/WorkerSaveFile.h
@@ -16,16 +16,18 @@ namespace appl {
class WorkerSaveFile : public ewol::Object {
public:
static const char* eventSaveDone;
+ protected:
+ WorkerSaveFile();
+ void init(const std::string& _bufferName, bool _forceSaveAs=true);
public:
- WorkerSaveFile(const std::string& _bufferName, bool _forceSaveAs=true);
+ DECLARE_FACTORY(WorkerSaveFile);
virtual ~WorkerSaveFile();
private:
std::string m_bufferName;
- ewol::object::Shared m_chooser; //! pop-up element that is open...
- ewol::object::Shared m_bufferManager; //!< handle on the buffer manager
+ std::shared_ptr m_chooser; //! pop-up element that is open...
+ std::shared_ptr m_bufferManager; //!< handle on the buffer manager
public: // derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg);
- virtual void onObjectRemove(const ewol::object::Shared& _removeObject);
};
};
diff --git a/sources/appl/Highlight.cpp b/sources/appl/Highlight.cpp
index eff62d9..0fc9a11 100644
--- a/sources/appl/Highlight.cpp
+++ b/sources/appl/Highlight.cpp
@@ -35,12 +35,15 @@ void appl::Highlight::parseRules(exml::Element* _child,
_mListPatern.push_back(std::unique_ptr(myPattern));
}
-appl::Highlight::Highlight(const std::string& _xmlFilename, const std::string& _colorFile) :
- ewol::Resource(_xmlFilename),
- m_typeName("") {
+appl::Highlight::Highlight() {
addObjectType("appl::Highlight");
+}
+
+void appl::Highlight::init(const std::string& _xmlFilename, const std::string& _colorFile) {
+ ewol::Resource::init(_xmlFilename);
+
// keep color propertiy file :
- m_paintingProperties = appl::GlyphPainting::keep(_colorFile);
+ m_paintingProperties = appl::GlyphPainting::create(_colorFile);
exml::Document doc;
if (doc.load(_xmlFilename) == false) {
@@ -48,7 +51,7 @@ appl::Highlight::Highlight(const std::string& _xmlFilename, const std::string& _
return;
}
exml::Element* root = doc.getNamed("EdnLang");
- if (NULL == root ) {
+ if (nullptr == root ) {
APPL_ERROR("(l ?) main node not find: \"EdnLang\" ...");
return;
}
@@ -58,7 +61,7 @@ appl::Highlight::Highlight(const std::string& _xmlFilename, const std::string& _
// parse all the elements :
for(size_t iii = 0; iii < root->size(); ++iii) {
exml::Element* child = root->getElement(iii);
- if (child == NULL) {
+ if (child == nullptr) {
// trash here all that is not element ...
continue;
}
@@ -72,7 +75,7 @@ appl::Highlight::Highlight(const std::string& _xmlFilename, const std::string& _
// get sub Nodes ...
for(size_t jjj=0; jjj< child->size(); jjj++) {
exml::Element* passChild = child->getElement(jjj);
- if (passChild == NULL) {
+ if (passChild == nullptr) {
continue;
}
if (passChild->getValue() != "rule") {
@@ -85,7 +88,7 @@ appl::Highlight::Highlight(const std::string& _xmlFilename, const std::string& _
// get sub Nodes ...
for(size_t jjj=0; jjj< child->size(); jjj++) {
exml::Element* passChild = child->getElement(jjj);
- if (passChild == NULL) {
+ if (passChild == nullptr) {
continue;
}
if (passChild->getValue() != "rule") {
@@ -177,22 +180,22 @@ void appl::Highlight::parse(int64_t _start,
//try to fond the HL in ALL of we have
for (int64_t jjj=0; jjj<(int64_t)m_listHighlightPass1.size(); jjj++){
enum resultFind ret = HLP_FIND_OK;
- HL_DEBUG("Parse HL id=" << jjj << " position search: (" << elementStart << "," << _stop << ")" );
+ HL_DEBUG("Parse HL id=" << jjj << " position search: (" << elementStart << "," << _stop << ") input start='" << _buffer[elementStart] << "' " << m_listHighlightPass1[jjj]->getPaternString());
// Stop the search to the end (to get the end of the pattern)
ret = m_listHighlightPass1[jjj]->find(elementStart, _buffer.size(), resultat, _buffer);
if (HLP_FIND_ERROR != ret) {
- HL_DEBUG("Find Pattern in the Buffer : (" << resultat.beginStart << "," << resultat.endStop << ")" );
+ HL_DEBUG("Find Pattern in the Buffer : (" << resultat.start << "," << resultat.stop << ")" );
// remove element in the current List where the current Element have a end inside the next...
int64_t kkk=_addingPos;
while(kkk < (int64_t)_metaData.size() ) {
- if (_metaData[kkk].beginStart <= resultat.endStop) {
+ if (_metaData[kkk].start <= resultat.stop) {
// remove element
HL_DEBUG("Erase element=" << kkk);
_metaData.erase(_metaData.begin()+kkk, _metaData.begin()+kkk+1);
// Increase the end of search
if (kkk < (int64_t)_metaData.size()) {
// just befor the end of the next element
- elementStop = _metaData[kkk].beginStart-1;
+ elementStop = _metaData[kkk].start-1;
} else {
// end of the buffer
elementStop = _buffer.size();
@@ -204,9 +207,9 @@ void appl::Highlight::parse(int64_t _start,
}
// add curent element in the list ...
_metaData.insert(_metaData.begin()+_addingPos, resultat);
- HL_DEBUG("INSERT at "<< _addingPos << " S=" << resultat.beginStart << " E=" << resultat.endStop );
+ HL_DEBUG("INSERT at "<< _addingPos << " S=" << resultat.start << " E=" << resultat.stop );
// update the current research starting element: (set position at the end of the current element
- elementStart = resultat.endStop-1;
+ elementStart = resultat.stop-1;
// increment the position of insertion:
_addingPos++;
// We find a pattern == > Stop search for the current element
@@ -234,19 +237,23 @@ void appl::Highlight::parse2(int64_t _start,
appl::HighlightInfo resultat;
while (elementStart < elementStop) {
+ if (elementStart == 306) {
+ //etk::log::setLevel(etk::log::logLevelVerbose);
+ }
//HL2_DEBUG("Parse element in the buffer pos=" << elementStart << "," << _buffer.size() << ")" );
//try to fond the HL in ALL of we have
for (int64_t jjj=0; jjj<(int64_t)m_listHighlightPass2.size(); jjj++){
enum resultFind ret = HLP_FIND_OK;
HL2_DEBUG("Parse HL id=" << jjj << " position search: (" <<
- _start << "," << _buffer.size() << ")" );
+ elementStart << "," << elementStop << ") in='"
+ << _buffer[elementStart] << "' " << m_listHighlightPass2[jjj]->getPaternString());
// Stop the search to the end (to get the end of the pattern)
ret = m_listHighlightPass2[jjj]->find(elementStart, elementStop, resultat, _buffer);
- if (HLP_FIND_ERROR != ret) {
- HL2_DEBUG("Find Pattern in the Buffer : (" << resultat.beginStart << "," << resultat.endStop << ")" );
+ if (ret != HLP_FIND_ERROR) {
+ HL2_DEBUG("Find Pattern in the Buffer : (" << resultat.start << "," << resultat.stop << ")" );
// add curent element in the list ...
_metaData.push_back(resultat);
- elementStart = resultat.endStop-1;
+ elementStart = resultat.stop-1;
// Exit current cycle
break;
}
@@ -255,21 +262,3 @@ void appl::Highlight::parse2(int64_t _start,
elementStart++;
}
}
-
-ewol::object::Shared appl::Highlight::keep(const std::string& _filename) {
- //EWOL_INFO("KEEP : appl::Highlight : file : \"" << _filename << "\"");
- ewol::object::Shared object = ewol::dynamic_pointer_cast(getManager().localKeep(_filename));
- if (NULL != object) {
- return object;
- }
- EWOL_INFO("CREATE : appl::Highlight : file : \"" << _filename << "\"");
- // this element create a new one every time ....
- object = ewol::object::makeShared(new appl::Highlight(_filename, "THEME:COLOR:textViewer.json"));
- if (NULL == object) {
- EWOL_ERROR("allocation error of a resource : ??Highlight??");
- return NULL;
- }
- getManager().localAdd(object);
- return object;
-}
-
diff --git a/sources/appl/Highlight.h b/sources/appl/Highlight.h
index a481694..87508c7 100644
--- a/sources/appl/Highlight.h
+++ b/sources/appl/Highlight.h
@@ -16,10 +16,8 @@ namespace appl {
class HighlightInfo {
public:
- int32_t beginStart;
- int32_t beginStop;
- int32_t endStart;
- int32_t endStop;
+ int32_t start;
+ int32_t stop;
bool notEnded;
appl::HighlightPattern* patern; // pointer on class :
};
@@ -35,11 +33,13 @@ namespace appl {
namespace appl {
class Highlight : public ewol::Resource {
private:
- ewol::object::Shared m_paintingProperties;
- protected:
- // Constructeur
- Highlight(const std::string& _xmlFilename, const std::string& _colorFile);
+ std::shared_ptr m_paintingProperties;
public:
+ // Constructeur
+ Highlight();
+ void init(const std::string& _xmlFilename, const std::string& _colorFile = "THEME:COLOR:textViewer.json");
+ public:
+ DECLARE_RESOURCE_NAMED_FACTORY(Highlight);
virtual ~Highlight();
private:
std::string m_typeName; //!< descriptive string type like "C/C++"
@@ -68,14 +68,6 @@ namespace appl {
std::vector m_listExtentions; //!< List of possible extention for this high-light, like : ".c", ".cpp", ".h"
std::vector> m_listHighlightPass1; //!< List of ALL hightlight modules (pass 1 == > when we load and wride data on the buffer)
std::vector> m_listHighlightPass2; //!< List of ALL hightlight modules (pass 2 == > When we display the buffer( only the display area (100 lines)) )
- public:
- /**
- * @brief keep the resource pointer.
- * @note Never free this pointer by your own...
- * @param[in] _filename Name of the configuration file.
- * @return pointer on the resource or NULL if an error occured.
- */
- static ewol::object::Shared keep(const std::string& _filename);
public: // herited function :
virtual void updateContext() {
// no upfate to do ...
diff --git a/sources/appl/HighlightManager.cpp b/sources/appl/HighlightManager.cpp
index d926d04..447108b 100644
--- a/sources/appl/HighlightManager.cpp
+++ b/sources/appl/HighlightManager.cpp
@@ -17,14 +17,14 @@
// TODO : Review this in a generic unique resource ...
-static std::vector>& s_list() {
- static std::vector> list;
+static std::vector>& s_list() {
+ static std::vector