[DEV] update conf in json file
This commit is contained in:
parent
0a441228f1
commit
5606728ae4
10
data/theme/color/black/CheckBox.json
Normal file
10
data/theme/color/black/CheckBox.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"color": [
|
||||||
|
{ name:"EW_background", color:"#0000" },
|
||||||
|
{ name:"EW_border", color:"#FFF" },
|
||||||
|
{ name:"EW_foreground", color:"#000A" },
|
||||||
|
{ name:"EW_foregroundHover", color:"#0066" },
|
||||||
|
{ name:"EW_foregroundSelected", color:"#060A" },
|
||||||
|
{ name:"EW_foregroundPressed", color:"#6006" },
|
||||||
|
]
|
||||||
|
}
|
10
data/theme/color/white/CheckBox.json
Normal file
10
data/theme/color/white/CheckBox.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"color": [
|
||||||
|
{ name:"EW_background", color:"#0000" },
|
||||||
|
{ name:"EW_border", color:"#000" },
|
||||||
|
{ name:"EW_foreground", color:"#8884" },
|
||||||
|
{ name:"EW_foregroundHover", color:"#00A6" },
|
||||||
|
{ name:"EW_foregroundSelected", color:"#0A0A" },
|
||||||
|
{ name:"EW_foregroundPressed", color:"#A006" },
|
||||||
|
]
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=13
|
|
||||||
PaddingY=7
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# if an image is needed :
|
|
||||||
#image=plop.png
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:Button.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:Button.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/round/Button.json
Normal file
9
data/theme/shape/round/Button.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:13,
|
||||||
|
padding-right:13,
|
||||||
|
padding-top:7,
|
||||||
|
padding-buttom:7,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:Button.prog",
|
||||||
|
color:"THEME:COLOR:Button.json"
|
||||||
|
}
|
68
data/theme/shape/round/CheckBox.frag
Normal file
68
data/theme/shape/round/CheckBox.frag
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#ifdef GL_ES
|
||||||
|
precision mediump float;
|
||||||
|
precision mediump int;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct displayProperty {
|
||||||
|
vec2 size;
|
||||||
|
vec2 origin;
|
||||||
|
vec2 insidePos;
|
||||||
|
vec2 insideSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct widgetStateProperty {
|
||||||
|
int stateOld;
|
||||||
|
int stateNew;
|
||||||
|
float transition;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform displayProperty EW_widgetProperty;
|
||||||
|
|
||||||
|
uniform widgetStateProperty EW_status;
|
||||||
|
|
||||||
|
// transmit from the vertex shader
|
||||||
|
varying vec2 v_position; // interpolated position ...
|
||||||
|
varying vec4 v_colorTansition;
|
||||||
|
varying vec4 v_colorBorder;
|
||||||
|
varying vec4 v_colorBackground;
|
||||||
|
|
||||||
|
// internal static define
|
||||||
|
float S_sizePadding = 3.0; // must not be NULL
|
||||||
|
float S_sizeBorder = 1.0; //==> this id for 1 px border
|
||||||
|
float S_roundedRatio = 10.0;
|
||||||
|
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
// position form center :
|
||||||
|
vec2 ratio = EW_widgetProperty.size / 2.0;
|
||||||
|
|
||||||
|
// prevent origin moving ...
|
||||||
|
vec2 position = v_position - EW_widgetProperty.origin;
|
||||||
|
|
||||||
|
/* generate a central simetry
|
||||||
|
____ _____
|
||||||
|
\ /
|
||||||
|
\ /
|
||||||
|
\ /
|
||||||
|
-
|
||||||
|
*/
|
||||||
|
vec2 positionCenter = abs(position-ratio);
|
||||||
|
// This is a clip to remove center of the display of the widget
|
||||||
|
vec2 ratioLow = ratio - (S_roundedRatio+S_sizePadding);
|
||||||
|
vec2 circleMode = smoothstep(ratioLow, ratio, positionCenter)*(S_roundedRatio+S_sizePadding);
|
||||||
|
// Calculate the distance of the radius
|
||||||
|
float tmpDist = float(int(sqrt(dot(circleMode,circleMode))));
|
||||||
|
// Generate the internal rampe for the the imput drawing
|
||||||
|
float tmpVal = smoothstep(S_roundedRatio - S_sizeBorder*1.5,
|
||||||
|
S_roundedRatio + S_sizeBorder*1.5,
|
||||||
|
tmpDist);
|
||||||
|
// set Background
|
||||||
|
gl_FragColor = v_colorBackground;
|
||||||
|
// set foreground
|
||||||
|
gl_FragColor = gl_FragColor*tmpVal + v_colorTansition*(1.0-tmpVal);
|
||||||
|
// set border
|
||||||
|
float tmpVal2 = abs(tmpVal-0.5)*2.0;
|
||||||
|
gl_FragColor = gl_FragColor*tmpVal2 + v_colorBorder*(1.0-tmpVal2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
9
data/theme/shape/round/CheckBox.json
Normal file
9
data/theme/shape/round/CheckBox.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:13,
|
||||||
|
padding-right:13,
|
||||||
|
padding-top:7,
|
||||||
|
padding-buttom:7,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:CheckBox.prog",
|
||||||
|
color:"THEME:COLOR:CheckBox.json"
|
||||||
|
}
|
57
data/theme/shape/round/CheckBox.vert
Normal file
57
data/theme/shape/round/CheckBox.vert
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#ifdef GL_ES
|
||||||
|
precision mediump float;
|
||||||
|
precision mediump int;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct widgetStateProperty {
|
||||||
|
int stateOld;
|
||||||
|
int stateNew;
|
||||||
|
float transition;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform widgetStateProperty EW_status;
|
||||||
|
|
||||||
|
// Input :
|
||||||
|
attribute vec2 EW_coord2d;
|
||||||
|
uniform mat4 EW_MatrixTransformation;
|
||||||
|
uniform vec4 EW_border;
|
||||||
|
uniform vec4 EW_background;
|
||||||
|
uniform vec4 EW_foreground;
|
||||||
|
uniform vec4 EW_foregroundHover;
|
||||||
|
uniform vec4 EW_foregroundSelected;
|
||||||
|
uniform vec4 EW_foregroundPressed;
|
||||||
|
|
||||||
|
// output :
|
||||||
|
varying vec2 v_position; // This will be passed into the fragment shader.
|
||||||
|
varying vec4 v_colorTansition;
|
||||||
|
varying vec4 v_colorBorder;
|
||||||
|
varying vec4 v_colorBackground;
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
gl_Position = EW_MatrixTransformation * vec4(EW_coord2d, 0.0, 1.0);
|
||||||
|
// transmit position of the curent element (intermolated ...)
|
||||||
|
v_position = EW_coord2d;
|
||||||
|
|
||||||
|
vec4 colorOld = EW_foreground;
|
||||||
|
if(EW_status.stateOld == 1) {
|
||||||
|
colorOld = EW_foregroundPressed;
|
||||||
|
} else if(EW_status.stateOld == 2) {
|
||||||
|
colorOld = EW_foregroundHover;
|
||||||
|
} else if(EW_status.stateOld == 3) {
|
||||||
|
colorOld = EW_foregroundSelected;
|
||||||
|
}
|
||||||
|
vec4 colorNew = EW_foreground;
|
||||||
|
if(EW_status.stateNew == 1) {
|
||||||
|
colorNew = EW_foregroundPressed;
|
||||||
|
} else if(EW_status.stateNew == 2) {
|
||||||
|
colorNew = EW_foregroundHover;
|
||||||
|
} else if(EW_status.stateNew == 3) {
|
||||||
|
colorNew = EW_foregroundSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
// note : int() is needed for the OpenGL ES platform
|
||||||
|
v_colorTansition = colorOld * (1.0 - EW_status.transition)
|
||||||
|
+ colorNew * EW_status.transition;
|
||||||
|
v_colorBorder = EW_border;
|
||||||
|
v_colorBackground = EW_background;
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=13
|
|
||||||
PaddingY=7
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# if an image is needed :
|
|
||||||
#image=plop.png
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:ContextMenu.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:ContextMenu.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/round/ContextMenu.json
Normal file
9
data/theme/shape/round/ContextMenu.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:13,
|
||||||
|
padding-right:13,
|
||||||
|
padding-top:7,
|
||||||
|
padding-buttom:7,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:ContextMenu.prog",
|
||||||
|
color:"THEME:COLOR:ContextMenu.json"
|
||||||
|
}
|
@ -1,14 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=13
|
|
||||||
PaddingY=7
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:Entry.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:Entry.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/round/Entry.json
Normal file
9
data/theme/shape/round/Entry.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:13,
|
||||||
|
padding-right:13,
|
||||||
|
padding-top:7,
|
||||||
|
padding-buttom:7,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:Entry.prog",
|
||||||
|
color:"THEME:COLOR:Entry.json"
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=13
|
|
||||||
PaddingY=7
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# if an image is needed :
|
|
||||||
#image=plop.png
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:PopUp.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:PopUp.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/round/PopUp.json
Normal file
9
data/theme/shape/round/PopUp.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:13,
|
||||||
|
padding-right:13,
|
||||||
|
padding-top:7,
|
||||||
|
padding-buttom:7,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:PopUp.prog",
|
||||||
|
color:"THEME:COLOR:PopUp.json"
|
||||||
|
}
|
@ -1,15 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=16
|
|
||||||
PaddingY=16
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=200
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:WidgetScrolled.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:WidgetScrolled.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/round/WidgetScrolled.json
Normal file
9
data/theme/shape/round/WidgetScrolled.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:16,
|
||||||
|
padding-right:16,
|
||||||
|
padding-top:16,
|
||||||
|
padding-buttom:16,
|
||||||
|
change-time:200,
|
||||||
|
program:"THEME:GUI:WidgetScrolled.prog",
|
||||||
|
color:"THEME:COLOR:WidgetScrolled.json"
|
||||||
|
}
|
@ -1,16 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=8
|
|
||||||
PaddingY=8
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# if an image is needed :
|
|
||||||
#image=plop.png
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:Button.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:Button.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/square/Button.json
Normal file
9
data/theme/shape/square/Button.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:8,
|
||||||
|
padding-right:8,
|
||||||
|
padding-top:8,
|
||||||
|
padding-buttom:8,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:Button.prog",
|
||||||
|
color:"THEME:COLOR:Button.json"
|
||||||
|
}
|
51
data/theme/shape/square/CheckBox.frag
Normal file
51
data/theme/shape/square/CheckBox.frag
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#ifdef GL_ES
|
||||||
|
precision mediump float;
|
||||||
|
precision mediump int;
|
||||||
|
#endif
|
||||||
|
struct displayProperty {
|
||||||
|
vec2 size;
|
||||||
|
vec2 origin;
|
||||||
|
vec2 insidePos;
|
||||||
|
vec2 insideSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
uniform displayProperty EW_widgetProperty;
|
||||||
|
|
||||||
|
|
||||||
|
// transmit from the vertex shader
|
||||||
|
varying vec2 v_position; // interpolated position ...
|
||||||
|
varying vec4 v_colorTansition;
|
||||||
|
varying vec4 v_colorBorder;
|
||||||
|
varying vec4 v_colorBackground;
|
||||||
|
|
||||||
|
// internal static define
|
||||||
|
float S_sizePadding = 3.0;
|
||||||
|
float S_sizeBorder = 1.0;
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
// prevent origin moving ...
|
||||||
|
vec2 position = v_position - EW_widgetProperty.origin;
|
||||||
|
float specialBorder = S_sizeBorder+S_sizePadding;
|
||||||
|
vec2 endStart = EW_widgetProperty.size - vec2(S_sizePadding) - vec2(S_sizeBorder);
|
||||||
|
vec2 endStop = EW_widgetProperty.size - vec2(S_sizePadding);
|
||||||
|
if( position.x> S_sizePadding
|
||||||
|
&& position.y> S_sizePadding
|
||||||
|
&& position.x<= endStop.x
|
||||||
|
&& position.y<= endStop.y
|
||||||
|
) {
|
||||||
|
if( position.x<= specialBorder
|
||||||
|
|| position.y<= specialBorder
|
||||||
|
|| position.x> endStart.x
|
||||||
|
|| position.y> endStart.y
|
||||||
|
) {
|
||||||
|
gl_FragColor = v_colorBorder;
|
||||||
|
} else {
|
||||||
|
// note : int() is needed for the OpenGL ES platform
|
||||||
|
gl_FragColor = v_colorTansition;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gl_FragColor = v_colorBackground;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
11
data/theme/shape/square/CheckBox.json
Normal file
11
data/theme/shape/square/CheckBox.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
element-size:50,
|
||||||
|
element-border:10,
|
||||||
|
padding-left:80,
|
||||||
|
padding-right:8,
|
||||||
|
padding-top:8,
|
||||||
|
padding-buttom:8,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:CheckBox.prog",
|
||||||
|
color:"THEME:COLOR:CheckBox.json"
|
||||||
|
}
|
57
data/theme/shape/square/CheckBox.vert
Normal file
57
data/theme/shape/square/CheckBox.vert
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#ifdef GL_ES
|
||||||
|
precision mediump float;
|
||||||
|
precision mediump int;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct widgetStateProperty {
|
||||||
|
int stateOld;
|
||||||
|
int stateNew;
|
||||||
|
float transition;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform widgetStateProperty EW_status;
|
||||||
|
|
||||||
|
// Input :
|
||||||
|
attribute vec2 EW_coord2d;
|
||||||
|
uniform mat4 EW_MatrixTransformation;
|
||||||
|
uniform vec4 EW_border;
|
||||||
|
uniform vec4 EW_background;
|
||||||
|
uniform vec4 EW_foreground;
|
||||||
|
uniform vec4 EW_foregroundHover;
|
||||||
|
uniform vec4 EW_foregroundSelected;
|
||||||
|
uniform vec4 EW_foregroundPressed;
|
||||||
|
|
||||||
|
// output :
|
||||||
|
varying vec2 v_position; // This will be passed into the fragment shader.
|
||||||
|
varying vec4 v_colorTansition;
|
||||||
|
varying vec4 v_colorBorder;
|
||||||
|
varying vec4 v_colorBackground;
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
gl_Position = EW_MatrixTransformation * vec4(EW_coord2d, 0.0, 1.0);
|
||||||
|
// transmit position of the curent element (intermolated ...)
|
||||||
|
v_position = EW_coord2d;
|
||||||
|
|
||||||
|
vec4 colorOld = EW_foreground;
|
||||||
|
if(EW_status.stateOld == 1) {
|
||||||
|
colorOld = EW_foregroundPressed;
|
||||||
|
} else if(EW_status.stateOld == 2) {
|
||||||
|
colorOld = EW_foregroundHover;
|
||||||
|
} else if(EW_status.stateOld == 3) {
|
||||||
|
colorOld = EW_foregroundSelected;
|
||||||
|
}
|
||||||
|
vec4 colorNew = EW_foreground;
|
||||||
|
if(EW_status.stateNew == 1) {
|
||||||
|
colorNew = EW_foregroundPressed;
|
||||||
|
} else if(EW_status.stateNew == 2) {
|
||||||
|
colorNew = EW_foregroundHover;
|
||||||
|
} else if(EW_status.stateNew == 3) {
|
||||||
|
colorNew = EW_foregroundSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
// note : int() is needed for the OpenGL ES platform
|
||||||
|
v_colorTansition = colorOld * (1.0 - EW_status.transition)
|
||||||
|
+ colorNew * EW_status.transition;
|
||||||
|
v_colorBorder = EW_border;
|
||||||
|
v_colorBackground = EW_background;
|
||||||
|
}
|
@ -1,10 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=8
|
|
||||||
PaddingY=8
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:ContextMenu.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:ContextMenu.json
|
|
||||||
|
|
9
data/theme/shape/square/ContextMenu.json
Normal file
9
data/theme/shape/square/ContextMenu.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:8,
|
||||||
|
padding-right:8,
|
||||||
|
padding-top:8,
|
||||||
|
padding-buttom:8,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:ContextMenu.prog",
|
||||||
|
color:"THEME:COLOR:ContextMenu.json"
|
||||||
|
}
|
@ -1,10 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=8
|
|
||||||
PaddingY=8
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:Entry.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:Entry.json
|
|
||||||
|
|
9
data/theme/shape/square/Entry.json
Normal file
9
data/theme/shape/square/Entry.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:8,
|
||||||
|
padding-right:8,
|
||||||
|
padding-top:8,
|
||||||
|
padding-buttom:8,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:Entry.prog",
|
||||||
|
color:"THEME:COLOR:Entry.json"
|
||||||
|
}
|
@ -1,10 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=8
|
|
||||||
PaddingY=8
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=356
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:PopUp.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:PopUp.json
|
|
||||||
|
|
9
data/theme/shape/square/PopUp.json
Normal file
9
data/theme/shape/square/PopUp.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:8,
|
||||||
|
padding-right:8,
|
||||||
|
padding-top:8,
|
||||||
|
padding-buttom:8,
|
||||||
|
change-time:356,
|
||||||
|
program:"THEME:GUI:PopUp.prog",
|
||||||
|
color:"THEME:COLOR:PopUp.json"
|
||||||
|
}
|
@ -1,14 +0,0 @@
|
|||||||
# padding for the GUI
|
|
||||||
PaddingX=15
|
|
||||||
PaddingY=15
|
|
||||||
# change status in ms
|
|
||||||
ChangeTime=200
|
|
||||||
# the associated openGL ES-2 program :
|
|
||||||
program=THEME:GUI:WidgetScrolled.prog
|
|
||||||
# the associated color theme
|
|
||||||
color=THEME:COLOR:WidgetScrolled.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
data/theme/shape/square/WidgetScrolled.json
Normal file
9
data/theme/shape/square/WidgetScrolled.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
padding-left:15,
|
||||||
|
padding-right:15,
|
||||||
|
padding-top:15,
|
||||||
|
padding-buttom:15,
|
||||||
|
change-time:200,
|
||||||
|
program:"THEME:GUI:WidgetScrolled.prog",
|
||||||
|
color:"THEME:COLOR:WidgetScrolled.json"
|
||||||
|
}
|
@ -12,12 +12,18 @@
|
|||||||
#include <ewol/debug.h>
|
#include <ewol/debug.h>
|
||||||
|
|
||||||
namespace ewol {
|
namespace ewol {
|
||||||
|
/**
|
||||||
|
* @breif Simple class to abstarct the padding porperty.
|
||||||
|
*/
|
||||||
class Padding {
|
class Padding {
|
||||||
private:
|
private:
|
||||||
float value[4];
|
float value[4]; //!< this represent the 4 padding value Left top right buttom (like css)
|
||||||
public:
|
public:
|
||||||
Padding(void) { }
|
Padding(void) { }
|
||||||
Padding(float _xl, float _yt=0, float _xr=0, float _yb=0) {
|
Padding(float _xl, float _yt=0, float _xr=0, float _yb=0) {
|
||||||
|
setValue(_xl, _yt, _xr, _yb);
|
||||||
|
}
|
||||||
|
void setValue(float _xl, float _yt=0, float _xr=0, float _yb=0) {
|
||||||
value[0] = _xl;
|
value[0] = _xl;
|
||||||
value[1] = _yt;
|
value[1] = _yt;
|
||||||
value[2] = _xr;
|
value[2] = _xr;
|
||||||
@ -33,15 +39,27 @@ namespace ewol {
|
|||||||
float xLeft(void) const {
|
float xLeft(void) const {
|
||||||
return value[0];
|
return value[0];
|
||||||
}
|
}
|
||||||
|
void setXLeft(float _val) {
|
||||||
|
value[0] = _val;
|
||||||
|
}
|
||||||
float xRight(void) const {
|
float xRight(void) const {
|
||||||
return value[2];
|
return value[2];
|
||||||
}
|
}
|
||||||
|
void setXRight(float _val) {
|
||||||
|
value[2] = _val;
|
||||||
|
}
|
||||||
float yTop(void) const {
|
float yTop(void) const {
|
||||||
return value[1];
|
return value[1];
|
||||||
}
|
}
|
||||||
|
void setYTop(float _val) {
|
||||||
|
value[1] = _val;
|
||||||
|
}
|
||||||
float yButtom(void) const {
|
float yButtom(void) const {
|
||||||
return value[3];
|
return value[3];
|
||||||
}
|
}
|
||||||
|
void setYButtom(float _val) {
|
||||||
|
value[3] = _val;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -16,8 +16,10 @@
|
|||||||
ewol::compositing::Shaper::Shaper(const std::string& _shaperName) :
|
ewol::compositing::Shaper::Shaper(const std::string& _shaperName) :
|
||||||
m_name(_shaperName),
|
m_name(_shaperName),
|
||||||
m_config(NULL),
|
m_config(NULL),
|
||||||
m_confIdPaddingX(-1),
|
m_confIdPaddingLeft(-1),
|
||||||
m_confIdPaddingY(-1),
|
m_confIdPaddingRight(-1),
|
||||||
|
m_confIdPaddingTop(-1),
|
||||||
|
m_confIdPaddingButtom(-1),
|
||||||
m_confIdChangeTime(-1),
|
m_confIdChangeTime(-1),
|
||||||
m_confProgramFile(-1),
|
m_confProgramFile(-1),
|
||||||
m_confColorFile(-1),
|
m_confColorFile(-1),
|
||||||
@ -53,8 +55,10 @@ void ewol::compositing::Shaper::unLoadProgram(void) {
|
|||||||
ewol::resource::TextureFile::release(m_resourceTexture);
|
ewol::resource::TextureFile::release(m_resourceTexture);
|
||||||
ewol::resource::ConfigFile::release(m_config);
|
ewol::resource::ConfigFile::release(m_config);
|
||||||
ewol::resource::ColorFile::release(m_colorProperty);
|
ewol::resource::ColorFile::release(m_colorProperty);
|
||||||
m_confIdPaddingX = -1;
|
m_confIdPaddingLeft = -1;
|
||||||
m_confIdPaddingY = -1;
|
m_confIdPaddingRight = -1;
|
||||||
|
m_confIdPaddingTop = -1;
|
||||||
|
m_confIdPaddingButtom = -1;
|
||||||
m_confIdChangeTime = -1;
|
m_confIdChangeTime = -1;
|
||||||
m_confProgramFile = -1;
|
m_confProgramFile = -1;
|
||||||
m_confImageFile = -1;
|
m_confImageFile = -1;
|
||||||
@ -68,12 +72,14 @@ void ewol::compositing::Shaper::loadProgram(void) {
|
|||||||
}
|
}
|
||||||
m_config = ewol::resource::ConfigFile::keep(m_name);
|
m_config = ewol::resource::ConfigFile::keep(m_name);
|
||||||
if (NULL != m_config) {
|
if (NULL != m_config) {
|
||||||
m_confIdPaddingX = m_config->request("PaddingX");
|
m_confIdPaddingLeft = m_config->request("padding-left");
|
||||||
m_confIdPaddingY = m_config->request("PaddingY");
|
m_confIdPaddingRight = m_config->request("padding-right");
|
||||||
m_confIdChangeTime = m_config->request("ChangeTime");
|
m_confIdPaddingTop = m_config->request("padding-top");
|
||||||
m_confProgramFile = m_config->request("program");
|
m_confIdPaddingButtom = m_config->request("padding-buttom");
|
||||||
m_confImageFile = m_config->request("image");
|
m_confIdChangeTime = m_config->request("ChangeTime");
|
||||||
m_confColorFile = m_config->request("color");
|
m_confProgramFile = m_config->request("program");
|
||||||
|
m_confImageFile = m_config->request("image");
|
||||||
|
m_confColorFile = m_config->request("color");
|
||||||
}
|
}
|
||||||
std::string basicShaderFile = m_config->getString(m_confProgramFile);
|
std::string basicShaderFile = m_config->getString(m_confProgramFile);
|
||||||
if (basicShaderFile != "") {
|
if (basicShaderFile != "") {
|
||||||
@ -229,7 +235,7 @@ bool ewol::compositing::Shaper::periodicCall(const ewol::event::Time& _event) {
|
|||||||
m_nextStatusRequested = -1;
|
m_nextStatusRequested = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
float timeRelativity = m_config->getFloat(m_confIdChangeTime) / 1000.0;
|
float timeRelativity = m_config->getNumber(m_confIdChangeTime) / 1000.0;
|
||||||
m_stateTransition += _event.getDeltaCall() / timeRelativity;
|
m_stateTransition += _event.getDeltaCall() / timeRelativity;
|
||||||
//m_stateTransition += _event.getDeltaCall();
|
//m_stateTransition += _event.getDeltaCall();
|
||||||
m_stateTransition = etk_avg(0.0f, m_stateTransition, 1.0f);
|
m_stateTransition = etk_avg(0.0f, m_stateTransition, 1.0f);
|
||||||
@ -277,11 +283,13 @@ void ewol::compositing::Shaper::setInsidePos(const vec2& _newInsidePos) {
|
|||||||
m_propertyInsidePosition = _newInsidePos;
|
m_propertyInsidePosition = _newInsidePos;
|
||||||
}
|
}
|
||||||
|
|
||||||
vec2 ewol::compositing::Shaper::getPadding(void) {
|
ewol::Padding ewol::compositing::Shaper::getPadding(void) {
|
||||||
vec2 padding(0,0);
|
ewol::Padding padding(0,0,0,0);
|
||||||
if (m_config!=NULL) {
|
if (m_config != NULL) {
|
||||||
padding.setValue(m_config->getFloat(m_confIdPaddingX),
|
padding.setValue(m_config->getNumber(m_confIdPaddingLeft),
|
||||||
m_config->getFloat(m_confIdPaddingY));
|
m_config->getNumber(m_confIdPaddingTop),
|
||||||
|
m_config->getNumber(m_confIdPaddingRight),
|
||||||
|
m_config->getNumber(m_confIdPaddingButtom));
|
||||||
}
|
}
|
||||||
return padding;
|
return padding;
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <ewol/resource/ColorFile.h>
|
#include <ewol/resource/ColorFile.h>
|
||||||
#include <ewol/resource/Image.h>
|
#include <ewol/resource/Image.h>
|
||||||
#include <ewol/event/Time.h>
|
#include <ewol/event/Time.h>
|
||||||
|
#include <ewol/Padding.h>
|
||||||
|
|
||||||
namespace ewol {
|
namespace ewol {
|
||||||
namespace compositing {
|
namespace compositing {
|
||||||
@ -29,12 +30,14 @@ namespace ewol {
|
|||||||
std::string m_name; //!< Name of the configuration of the shaper.
|
std::string m_name; //!< Name of the configuration of the shaper.
|
||||||
// External theme config:
|
// External theme config:
|
||||||
ewol::resource::ConfigFile* m_config; //!< pointer on the config file resources
|
ewol::resource::ConfigFile* m_config; //!< pointer on the config file resources
|
||||||
int32_t m_confIdPaddingX; //!< ConfigFile padding property X
|
int32_t m_confIdPaddingLeft; //!< ConfigFile padding property X-left
|
||||||
int32_t m_confIdPaddingY; //!< ConfigFile padding property Y
|
int32_t m_confIdPaddingRight; //!< ConfigFile padding property X-right
|
||||||
int32_t m_confIdChangeTime; //!< ConfigFile padding transition time property
|
int32_t m_confIdPaddingTop; //!< ConfigFile padding property Y-top
|
||||||
int32_t m_confProgramFile; //!< ConfigFile opengGl program Name
|
int32_t m_confIdPaddingButtom; //!< ConfigFile padding property Y-buttom
|
||||||
int32_t m_confColorFile; //!< ConfigFile opengGl color file Name
|
int32_t m_confIdChangeTime; //!< ConfigFile padding transition time property
|
||||||
int32_t m_confImageFile; //!< ConfigFile opengGl program Name
|
int32_t m_confProgramFile; //!< ConfigFile opengGl program Name
|
||||||
|
int32_t m_confColorFile; //!< ConfigFile opengGl color file Name
|
||||||
|
int32_t m_confImageFile; //!< ConfigFile opengGl program Name
|
||||||
// openGL shaders programs:
|
// openGL shaders programs:
|
||||||
ewol::resource::Program* m_GLprogram; //!< pointer on the opengl display program
|
ewol::resource::Program* m_GLprogram; //!< pointer on the opengl display program
|
||||||
int32_t m_GLPosition; //!< openGL id on the element (vertex buffer)
|
int32_t m_GLPosition; //!< openGL id on the element (vertex buffer)
|
||||||
@ -149,7 +152,7 @@ namespace ewol {
|
|||||||
* @brief get the padding declared by the user in the config file
|
* @brief get the padding declared by the user in the config file
|
||||||
* @return the padding property
|
* @return the padding property
|
||||||
*/
|
*/
|
||||||
vec2 getPadding(void);
|
ewol::Padding getPadding(void);
|
||||||
/**
|
/**
|
||||||
* @brief change the shaper Source
|
* @brief change the shaper Source
|
||||||
* @param[in] _newFile New file of the shaper
|
* @param[in] _newFile New file of the shaper
|
||||||
|
@ -10,32 +10,15 @@
|
|||||||
#include <ewol/debug.h>
|
#include <ewol/debug.h>
|
||||||
#include <ewol/resource/ConfigFile.h>
|
#include <ewol/resource/ConfigFile.h>
|
||||||
#include <ewol/resource/Manager.h>
|
#include <ewol/resource/Manager.h>
|
||||||
|
#include <ejson/ejson.h>
|
||||||
|
#include <ejson/Number.h>
|
||||||
|
#include <ejson/String.h>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "resource::ConfigFile"
|
#define __class__ "resource::ConfigFile"
|
||||||
|
|
||||||
|
|
||||||
void ewol::resource::SimpleConfigElement::parse(const std::string& _value) {
|
|
||||||
m_value = _value;
|
|
||||||
#ifdef __EXCEPTIONS
|
|
||||||
try {
|
|
||||||
m_valueInt = std::stoi(_value);
|
|
||||||
m_valuefloat = std::stof(_value);
|
|
||||||
}
|
|
||||||
catch (const std::invalid_argument& ia) {
|
|
||||||
EWOL_VERBOSE(" invalid argument= " << ia.what() << "val='" << _value << "'");
|
|
||||||
m_valueInt = 0;
|
|
||||||
m_valuefloat = 0;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
m_valueInt = std::stoi(_value);
|
|
||||||
m_valuefloat = std::stof(_value);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ewol::resource::ConfigFile::ConfigFile(const std::string& _filename) :
|
ewol::resource::ConfigFile::ConfigFile(const std::string& _filename) :
|
||||||
ewol::Resource(_filename) {
|
ewol::Resource(_filename) {
|
||||||
addObjectType("ewol::ConfigFile");
|
addObjectType("ewol::ConfigFile");
|
||||||
@ -59,104 +42,58 @@ void ewol::resource::ConfigFile::reload(void) {
|
|||||||
// reset all parameters
|
// reset all parameters
|
||||||
for (size_t iii=0; iii<m_list.size(); iii++){
|
for (size_t iii=0; iii<m_list.size(); iii++){
|
||||||
if (NULL != m_list[iii]) {
|
if (NULL != m_list[iii]) {
|
||||||
m_list[iii]->parse("");
|
m_list[iii] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// acess of the file :
|
m_doc.load(m_name);
|
||||||
etk::FSNode file(m_name);
|
|
||||||
|
|
||||||
if (false == file.exist()) {
|
for (auto elementName : m_list.getKeys()) {
|
||||||
EWOL_ERROR("File does not Exist : \"" << file << "\"");
|
if (m_doc.exist(elementName) == true) {
|
||||||
return;
|
m_list[elementName] = m_doc[elementName];
|
||||||
}
|
|
||||||
std::string fileExtention = file.fileGetExtention();
|
|
||||||
if (fileExtention != "conf") {
|
|
||||||
EWOL_ERROR("File does not have extention \".conf\" for program but : \"" << fileExtention << "\"");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (false == file.fileOpenRead()) {
|
|
||||||
EWOL_ERROR("Can not open the file : " << file);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#define MAX_LINE_SIZE (2048)
|
|
||||||
char tmpData[MAX_LINE_SIZE];
|
|
||||||
while (file.fileGets(tmpData, MAX_LINE_SIZE) != NULL) {
|
|
||||||
int32_t len = strlen(tmpData);
|
|
||||||
if( tmpData[len-1] == '\n'
|
|
||||||
|| tmpData[len-1] == '\r') {
|
|
||||||
tmpData[len-1] = '\0';
|
|
||||||
len--;
|
|
||||||
}
|
|
||||||
//EWOL_DEBUG(" Read data : \"" << tmpData << "\"");
|
|
||||||
if (len == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
std::string tmpData2(tmpData);
|
|
||||||
std::string tmppp("#");
|
|
||||||
if (start_with(tmpData2, tmppp) == true) {
|
|
||||||
// comment ...
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
tmppp="//";
|
|
||||||
if (start_with(tmpData2, tmppp) == true) {
|
|
||||||
// comment ...
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// get parameters :
|
|
||||||
size_t pos = tmpData2.find('=');
|
|
||||||
if (pos == 0){
|
|
||||||
//the element "=" is not find ...
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
std::string paramName = std::string(tmpData2, 0, pos);
|
|
||||||
std::string paramValue = std::string(tmpData2, pos+1, 0x7FFFF);
|
|
||||||
EWOL_DEBUG(" param name=\"" << paramName << "\" val=\"" << paramValue << "\"");
|
|
||||||
// check if the parameters existed :
|
|
||||||
bool findParam = false;
|
|
||||||
for (size_t iii=0; iii<m_list.size(); iii++){
|
|
||||||
if (NULL != m_list[iii]) {
|
|
||||||
if (m_list[iii]->m_paramName == paramName) {
|
|
||||||
m_list[iii]->parse(paramValue);
|
|
||||||
findParam = true;
|
|
||||||
// stop parsing ...
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (false == findParam) {
|
|
||||||
ewol::resource::SimpleConfigElement* tmpElement = new ewol::resource::SimpleConfigElement(paramName);
|
|
||||||
if (NULL == tmpElement) {
|
|
||||||
EWOL_DEBUG("error while allocation");
|
|
||||||
} else {
|
|
||||||
tmpElement->parse(paramValue);
|
|
||||||
m_list.push_back(tmpElement);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// close the file:
|
|
||||||
file.fileClose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int32_t ewol::resource::ConfigFile::request(const std::string& _paramName) {
|
int32_t ewol::resource::ConfigFile::request(const std::string& _paramName) {
|
||||||
// check if the parameters existed :
|
// check if the parameters existed :
|
||||||
for (size_t iii=0; iii<m_list.size(); iii++){
|
if (m_list.exist(_paramName) == false) {
|
||||||
if (NULL != m_list[iii]) {
|
m_list.add(_paramName, NULL);
|
||||||
if (m_list[iii]->m_paramName == _paramName) {
|
|
||||||
return iii;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ewol::resource::SimpleConfigElement* tmpElement = new ewol::resource::SimpleConfigElement(_paramName);
|
if (m_doc.exist(_paramName) == true) {
|
||||||
if (NULL == tmpElement) {
|
m_list[_paramName] = m_doc[_paramName];
|
||||||
EWOL_DEBUG("error while allocation");
|
|
||||||
} else {
|
|
||||||
m_list.push_back(tmpElement);
|
|
||||||
}
|
}
|
||||||
return m_list.size()-1;
|
return m_list.getId(_paramName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
double ewol::resource::ConfigFile::getNumber(int32_t _id) {
|
||||||
|
if ( _id < 0
|
||||||
|
|| m_list[_id] == NULL) {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
ejson::Number* tmp = m_list[_id]->toNumber();
|
||||||
|
if (tmp == NULL) {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
return tmp->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& ewol::resource::ConfigFile::getString(int32_t _id) {
|
||||||
|
static const std::string& errorString("");
|
||||||
|
if ( _id < 0
|
||||||
|
|| m_list[_id] == NULL) {
|
||||||
|
return errorString;
|
||||||
|
}
|
||||||
|
ejson::String* tmp = m_list[_id]->toString();
|
||||||
|
if (tmp == NULL) {
|
||||||
|
return errorString;
|
||||||
|
}
|
||||||
|
return tmp->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ewol::resource::ConfigFile* ewol::resource::ConfigFile::keep(const std::string& _filename) {
|
ewol::resource::ConfigFile* ewol::resource::ConfigFile::keep(const std::string& _filename) {
|
||||||
EWOL_INFO("KEEP : SimpleConfig : file : \"" << _filename << "\"");
|
EWOL_INFO("KEEP : SimpleConfig : file : \"" << _filename << "\"");
|
||||||
ewol::resource::ConfigFile* object = NULL;
|
ewol::resource::ConfigFile* object = NULL;
|
||||||
|
@ -11,44 +11,15 @@
|
|||||||
|
|
||||||
#include <etk/types.h>
|
#include <etk/types.h>
|
||||||
#include <ewol/debug.h>
|
#include <ewol/debug.h>
|
||||||
|
#include <ejson/ejson.h>
|
||||||
#include <ewol/resource/Resource.h>
|
#include <ewol/resource/Resource.h>
|
||||||
|
|
||||||
namespace ewol {
|
namespace ewol {
|
||||||
namespace resource {
|
namespace resource {
|
||||||
// TODO : Show if it is possible to integrate this in a json interface ==> simplify code ...
|
|
||||||
/**
|
|
||||||
* @not-in-doc
|
|
||||||
*/
|
|
||||||
class SimpleConfigElement {
|
|
||||||
public:
|
|
||||||
std::string m_paramName;
|
|
||||||
private:
|
|
||||||
std::string m_value;
|
|
||||||
int32_t m_valueInt;
|
|
||||||
float m_valuefloat;
|
|
||||||
public:
|
|
||||||
SimpleConfigElement(const std::string& _name) :
|
|
||||||
m_paramName(_name),
|
|
||||||
m_value(""),
|
|
||||||
m_valueInt(0),
|
|
||||||
m_valuefloat(0.0) { };
|
|
||||||
~SimpleConfigElement(void) { };
|
|
||||||
void parse(const std::string& value);
|
|
||||||
int32_t getInteger(void) {
|
|
||||||
return m_valueInt;
|
|
||||||
};
|
|
||||||
float getFloat(void) {
|
|
||||||
return m_valuefloat;
|
|
||||||
};
|
|
||||||
std::string& getString(void) {
|
|
||||||
return m_value;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class ConfigFile : public ewol::Resource {
|
class ConfigFile : public ewol::Resource {
|
||||||
private:
|
private:
|
||||||
std::vector<ewol::resource::SimpleConfigElement*> m_list;
|
ejson::Document m_doc;
|
||||||
std::string m_errorString;
|
etk::Hash<ejson::Value*> m_list;
|
||||||
protected:
|
protected:
|
||||||
ConfigFile(const std::string& _filename);
|
ConfigFile(const std::string& _filename);
|
||||||
virtual ~ConfigFile(void);
|
virtual ~ConfigFile(void);
|
||||||
@ -57,24 +28,8 @@ namespace ewol {
|
|||||||
|
|
||||||
int32_t request(const std::string& _paramName);
|
int32_t request(const std::string& _paramName);
|
||||||
|
|
||||||
int32_t getInteger(int32_t _id) {
|
double getNumber(int32_t _id);
|
||||||
if (_id<0) {
|
const std::string& getString(int32_t _id);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return m_list[_id]->getInteger();
|
|
||||||
};
|
|
||||||
float getFloat(int32_t _id) {
|
|
||||||
if (_id<0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return m_list[_id]->getFloat();
|
|
||||||
};
|
|
||||||
std::string& getString(int32_t _id) {
|
|
||||||
if (_id<0) {
|
|
||||||
return m_errorString;
|
|
||||||
}
|
|
||||||
return m_list[_id]->getString();
|
|
||||||
};
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief keep the resource pointer.
|
* @brief keep the resource pointer.
|
||||||
|
@ -86,8 +86,8 @@ void ewol::widget::Button::setShaperName(const std::string& _shaperName) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Button::calculateSize(const vec2& _availlable) {
|
void ewol::widget::Button::calculateSize(const vec2& _availlable) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
ewol::Padding ret = calculateSizePadded(_availlable, ewol::Padding(padding.x(), padding.y(), padding.x(), padding.y()));
|
ewol::Padding ret = calculateSizePadded(_availlable, padding);
|
||||||
//EWOL_DEBUG(" configuring : origin=" << origin << " size=" << subElementSize << "");
|
//EWOL_DEBUG(" configuring : origin=" << origin << " size=" << subElementSize << "");
|
||||||
m_selectableAreaPos = vec2(ret.xLeft(), ret.yButtom());
|
m_selectableAreaPos = vec2(ret.xLeft(), ret.yButtom());
|
||||||
m_selectableAreaSize = m_size - (m_selectableAreaPos + vec2(ret.xRight(), ret.yTop()));
|
m_selectableAreaSize = m_size - (m_selectableAreaPos + vec2(ret.xRight(), ret.yTop()));
|
||||||
@ -95,8 +95,8 @@ void ewol::widget::Button::calculateSize(const vec2& _availlable) {
|
|||||||
|
|
||||||
|
|
||||||
void ewol::widget::Button::calculateMinMaxSize(void) {
|
void ewol::widget::Button::calculateMinMaxSize(void) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
calculateMinMaxSizePadded(ewol::Padding(padding.x(), padding.y(), padding.x(), padding.y()));
|
calculateMinMaxSizePadded(padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Button::onDraw(void) {
|
void ewol::widget::Button::onDraw(void) {
|
||||||
@ -107,12 +107,12 @@ void ewol::widget::Button::onDraw(void) {
|
|||||||
void ewol::widget::Button::onRegenerateDisplay(void) {
|
void ewol::widget::Button::onRegenerateDisplay(void) {
|
||||||
ewol::widget::Container2::onRegenerateDisplay();
|
ewol::widget::Container2::onRegenerateDisplay();
|
||||||
if (true == needRedraw()) {
|
if (true == needRedraw()) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
m_shaper.clear();
|
m_shaper.clear();
|
||||||
m_shaper.setOrigin(vec2ClipInt32(m_selectableAreaPos));
|
m_shaper.setOrigin(vec2ClipInt32(m_selectableAreaPos));
|
||||||
m_shaper.setSize(vec2ClipInt32(m_selectableAreaSize));
|
m_shaper.setSize(vec2ClipInt32(m_selectableAreaSize));
|
||||||
m_shaper.setInsidePos(vec2ClipInt32(m_selectableAreaPos+padding));
|
m_shaper.setInsidePos(vec2ClipInt32(m_selectableAreaPos+vec2(padding.xLeft(),padding.yButtom()) ));
|
||||||
m_shaper.setInsideSize(vec2ClipInt32(m_selectableAreaSize-padding*2.0f));
|
m_shaper.setInsideSize(vec2ClipInt32(m_selectableAreaSize-vec2(padding.x(),padding.y()) ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace ewol {
|
|||||||
* @brief Constructor
|
* @brief Constructor
|
||||||
* @param[in] _shaperName Shaper file properties
|
* @param[in] _shaperName Shaper file properties
|
||||||
*/
|
*/
|
||||||
Button(const std::string& _shaperName="THEME:GUI:Button.conf");
|
Button(const std::string& _shaperName="THEME:GUI:Button.json");
|
||||||
/**
|
/**
|
||||||
* @brief Destructor
|
* @brief Destructor
|
||||||
*/
|
*/
|
||||||
|
@ -62,7 +62,7 @@ void ewol::widget::ButtonColor::setShaperName(std::string _shaperName) {
|
|||||||
|
|
||||||
|
|
||||||
void ewol::widget::ButtonColor::calculateMinMaxSize(void) {
|
void ewol::widget::ButtonColor::calculateMinMaxSize(void) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
std::string label = m_textColorFg.getString();
|
std::string label = m_textColorFg.getString();
|
||||||
vec3 minSize = m_text.calculateSize(label);
|
vec3 minSize = m_text.calculateSize(label);
|
||||||
m_minSize.setX(padding.x()*2 + minSize.x() + 7);
|
m_minSize.setX(padding.x()*2 + minSize.x() + 7);
|
||||||
@ -86,7 +86,7 @@ void ewol::widget::ButtonColor::onRegenerateDisplay(void) {
|
|||||||
m_text.clear();
|
m_text.clear();
|
||||||
m_shaper.clear();
|
m_shaper.clear();
|
||||||
|
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
|
|
||||||
std::string label = m_textColorFg.getString();
|
std::string label = m_textColorFg.getString();
|
||||||
|
|
||||||
@ -108,9 +108,9 @@ void ewol::widget::ButtonColor::onRegenerateDisplay(void) {
|
|||||||
if (true == m_userFill.y()) {
|
if (true == m_userFill.y()) {
|
||||||
localSize.setY(m_size.y());
|
localSize.setY(m_size.y());
|
||||||
}
|
}
|
||||||
tmpOrigin += vec3(padding.x(), padding.y(), 0);
|
tmpOrigin += vec3(padding.xLeft(), padding.yButtom(), 0);
|
||||||
tmpTextOrigin += vec3(padding.x(), padding.y(), 0);
|
tmpTextOrigin += vec3(padding.xLeft(), padding.yButtom(), 0);
|
||||||
localSize -= ivec2(2*padding.x(), 2*padding.y());
|
localSize -= ivec2(padding.x(), padding.y());
|
||||||
|
|
||||||
// clean the element
|
// clean the element
|
||||||
m_text.reset();
|
m_text.reset();
|
||||||
@ -128,12 +128,12 @@ void ewol::widget::ButtonColor::onRegenerateDisplay(void) {
|
|||||||
|
|
||||||
|
|
||||||
if (true == m_userFill.y()) {
|
if (true == m_userFill.y()) {
|
||||||
tmpOrigin.setY(padding.y());
|
tmpOrigin.setY(padding.yButtom());
|
||||||
}
|
}
|
||||||
|
|
||||||
// selection area :
|
// selection area :
|
||||||
m_selectableAreaPos = vec2(tmpOrigin.x()-padding.x(), tmpOrigin.y()-padding.y());
|
m_selectableAreaPos = vec2(tmpOrigin.x()-padding.xLeft(), tmpOrigin.y()-padding.yButtom());
|
||||||
m_selectableAreaSize = localSize + vec2(2,2)*padding;
|
m_selectableAreaSize = localSize + vec2(padding.x(),padding.y());
|
||||||
m_shaper.setOrigin(m_selectableAreaPos );
|
m_shaper.setOrigin(m_selectableAreaPos );
|
||||||
m_shaper.setSize(m_selectableAreaSize);
|
m_shaper.setSize(m_selectableAreaSize);
|
||||||
m_shaper.setInsidePos(vec2(tmpTextOrigin.x(), tmpTextOrigin.y()) );
|
m_shaper.setInsidePos(vec2(tmpTextOrigin.x(), tmpTextOrigin.y()) );
|
||||||
|
@ -42,7 +42,7 @@ namespace ewol {
|
|||||||
* @param[in] _baseColor basic displayed color.
|
* @param[in] _baseColor basic displayed color.
|
||||||
* @param[in] _shaperName The new shaper filename.
|
* @param[in] _shaperName The new shaper filename.
|
||||||
*/
|
*/
|
||||||
ButtonColor(etk::Color<> _baseColor=etk::color::black, std::string _shaperName="THEME:GUI:widgetButton.conf");
|
ButtonColor(etk::Color<> _baseColor=etk::color::black, std::string _shaperName="THEME:GUI:widgetButton.json");
|
||||||
/**
|
/**
|
||||||
* @brief Main destructor.
|
* @brief Main destructor.
|
||||||
*/
|
*/
|
||||||
|
@ -74,16 +74,16 @@ void ewol::widget::CheckBox::setShaperName(const std::string& _shaperName) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::CheckBox::calculateSize(const vec2& _availlable) {
|
void ewol::widget::CheckBox::calculateSize(const vec2& _availlable) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
ewol::Padding ret = calculateSizePadded(_availlable, ewol::Padding(padding.x(), padding.y(), padding.x(), padding.y()));
|
ewol::Padding ret = calculateSizePadded(_availlable, padding);
|
||||||
//EWOL_DEBUG(" configuring : origin=" << origin << " size=" << subElementSize << "");
|
//EWOL_DEBUG(" configuring : origin=" << origin << " size=" << subElementSize << "");
|
||||||
m_selectableAreaPos = vec2(ret.xLeft(), ret.yButtom());
|
m_selectableAreaPos = vec2(ret.xLeft(), ret.yButtom());
|
||||||
m_selectableAreaSize = m_size - (m_selectableAreaPos + vec2(ret.xRight(), ret.yTop()));
|
m_selectableAreaSize = m_size - (m_selectableAreaPos + vec2(ret.xRight(), ret.yTop()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::CheckBox::calculateMinMaxSize(void) {
|
void ewol::widget::CheckBox::calculateMinMaxSize(void) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
calculateMinMaxSizePadded(ewol::Padding(padding.x(), padding.y(), padding.x(), padding.y()));
|
calculateMinMaxSizePadded(padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::CheckBox::onDraw(void) {
|
void ewol::widget::CheckBox::onDraw(void) {
|
||||||
@ -94,12 +94,12 @@ void ewol::widget::CheckBox::onDraw(void) {
|
|||||||
void ewol::widget::CheckBox::onRegenerateDisplay(void) {
|
void ewol::widget::CheckBox::onRegenerateDisplay(void) {
|
||||||
ewol::widget::Container2::onRegenerateDisplay();
|
ewol::widget::Container2::onRegenerateDisplay();
|
||||||
if (true == needRedraw()) {
|
if (true == needRedraw()) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
m_shaper.clear();
|
m_shaper.clear();
|
||||||
m_shaper.setOrigin(vec2ClipInt32(m_selectableAreaPos));
|
m_shaper.setOrigin(vec2ClipInt32(m_selectableAreaPos));
|
||||||
m_shaper.setSize(vec2ClipInt32(m_selectableAreaSize));
|
m_shaper.setSize(vec2ClipInt32(m_selectableAreaSize - vec2(m_selectableAreaSize.x(), 0) + vec2(padding.xLeft(), 0)));
|
||||||
m_shaper.setInsidePos(vec2ClipInt32(m_selectableAreaPos+padding));
|
m_shaper.setInsidePos(vec2ClipInt32(m_selectableAreaPos+vec2(padding.xLeft(), padding.yButtom())));
|
||||||
m_shaper.setInsideSize(vec2ClipInt32(m_selectableAreaSize-padding*2.0f));
|
m_shaper.setInsideSize(vec2ClipInt32(m_selectableAreaSize-vec2(padding.x()+ m_selectableAreaSize.x(), padding.y())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ namespace ewol {
|
|||||||
* @brief Main checkbox constructor
|
* @brief Main checkbox constructor
|
||||||
* @param[in] _shaperName Shaper file properties
|
* @param[in] _shaperName Shaper file properties
|
||||||
*/
|
*/
|
||||||
CheckBox(const std::string& _shaperName="THEME:GUI:CheckBox.conf");
|
CheckBox(const std::string& _shaperName="THEME:GUI:CheckBox.json");
|
||||||
/**
|
/**
|
||||||
* @brief main destructor.
|
* @brief main destructor.
|
||||||
*/
|
*/
|
||||||
@ -81,6 +81,8 @@ namespace ewol {
|
|||||||
void CheckStatus(void);
|
void CheckStatus(void);
|
||||||
protected: // Derived function
|
protected: // Derived function
|
||||||
virtual void onDraw(void);
|
virtual void onDraw(void);
|
||||||
|
virtual bool onSetConfig(const ewol::object::Config& _conf);
|
||||||
|
virtual bool onGetConfig(const char* _config, std::string& _result) const;
|
||||||
public: // Derived function
|
public: // Derived function
|
||||||
virtual void calculateMinMaxSize(void);
|
virtual void calculateMinMaxSize(void);
|
||||||
virtual void calculateSize(const vec2& _availlable);
|
virtual void calculateSize(const vec2& _availlable);
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <ewol/widget/ContextMenu.h>
|
#include <ewol/widget/ContextMenu.h>
|
||||||
#include <ewol/compositing/Drawing.h>
|
#include <ewol/compositing/Drawing.h>
|
||||||
#include <ewol/widget/Manager.h>
|
#include <ewol/widget/Manager.h>
|
||||||
|
#include <ewol/Padding.h>
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "ContextMenu"
|
#define __class__ "ContextMenu"
|
||||||
@ -66,7 +67,7 @@ void ewol::widget::ContextMenu::calculateSize(const vec2& _availlable) {
|
|||||||
//EWOL_DEBUG("CalculateSize=" << availlable);
|
//EWOL_DEBUG("CalculateSize=" << availlable);
|
||||||
// pop-up fill all the display :
|
// pop-up fill all the display :
|
||||||
m_size = _availlable;
|
m_size = _availlable;
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
EWOL_VERBOSE("our origin=" << m_origin << " size=" << m_size);
|
EWOL_VERBOSE("our origin=" << m_origin << " size=" << m_size);
|
||||||
if (NULL != m_subWidget) {
|
if (NULL != m_subWidget) {
|
||||||
vec2 subWidgetSize;
|
vec2 subWidgetSize;
|
||||||
@ -102,23 +103,23 @@ void ewol::widget::ContextMenu::calculateSize(const vec2& _availlable) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// set the widget position at the border of the screen
|
// set the widget position at the border of the screen
|
||||||
subWidgetOrigin.setX( (int32_t)( etk_max(0, (subWidgetOrigin.x()-padding.x()*2))
|
subWidgetOrigin.setX( (int32_t)( etk_max(0, (subWidgetOrigin.x()-padding.x()))
|
||||||
+ padding.x()*2) );
|
+ padding.x()) );
|
||||||
subWidgetOrigin.setY( (int32_t)( etk_max(0, (subWidgetOrigin.y()-padding.y()*2))
|
subWidgetOrigin.setY( (int32_t)( etk_max(0, (subWidgetOrigin.y()-padding.y()))
|
||||||
+ padding.y()*2) );
|
+ padding.y()) );
|
||||||
switch (m_arrawBorder)
|
switch (m_arrawBorder)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case markTop:
|
case markTop:
|
||||||
case markButtom:
|
case markButtom:
|
||||||
if (m_arrowPos.x() <= m_offset ) {
|
if (m_arrowPos.x() <= m_offset ) {
|
||||||
subWidgetOrigin.setX(m_arrowPos.x()+padding.x());
|
subWidgetOrigin.setX(m_arrowPos.x()+padding.xLeft());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case markRight:
|
case markRight:
|
||||||
case markLeft:
|
case markLeft:
|
||||||
if (m_arrowPos.y() <= m_offset ) {
|
if (m_arrowPos.y() <= m_offset ) {
|
||||||
subWidgetOrigin.setY(m_arrowPos.y()+padding.y());
|
subWidgetOrigin.setY(m_arrowPos.y()+padding.yButtom());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -134,7 +135,8 @@ void ewol::widget::ContextMenu::calculateMinMaxSize(void) {
|
|||||||
// call main class to calculate the min size...
|
// call main class to calculate the min size...
|
||||||
ewol::widget::Container::calculateMinMaxSize();
|
ewol::widget::Container::calculateMinMaxSize();
|
||||||
// add padding of the display
|
// add padding of the display
|
||||||
m_minSize += m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
|
m_minSize += vec2(padding.x(), padding.y());
|
||||||
//EWOL_DEBUG("CalculateMinSize=>>" << m_minSize);
|
//EWOL_DEBUG("CalculateMinSize=>>" << m_minSize);
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
}
|
}
|
||||||
@ -154,7 +156,7 @@ void ewol::widget::ContextMenu::onRegenerateDisplay(void) {
|
|||||||
}
|
}
|
||||||
m_compositing.clear();
|
m_compositing.clear();
|
||||||
m_shaper.clear();
|
m_shaper.clear();
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
|
|
||||||
if (m_subWidget == NULL) {
|
if (m_subWidget == NULL) {
|
||||||
return;
|
return;
|
||||||
@ -169,13 +171,13 @@ void ewol::widget::ContextMenu::onRegenerateDisplay(void) {
|
|||||||
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y(), 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y(), 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
if (m_arrowPos.x() <= tmpOrigin.x() ) {
|
if (m_arrowPos.x() <= tmpOrigin.x() ) {
|
||||||
float laking = m_offset - padding.y();
|
float laking = m_offset - padding.yTop();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()-laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()-laking, 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y()-laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y()-laking, 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
} else {
|
} else {
|
||||||
float laking = m_offset - padding.y();
|
float laking = m_offset - padding.yTop();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()-laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()-laking, 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x()-laking, m_arrowPos.y()-laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x()-laking, m_arrowPos.y()-laking, 0.0f) );
|
||||||
@ -186,13 +188,13 @@ void ewol::widget::ContextMenu::onRegenerateDisplay(void) {
|
|||||||
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y(), 0) );
|
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y(), 0) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
if (m_arrowPos.x() <= tmpOrigin.x() ) {
|
if (m_arrowPos.x() <= tmpOrigin.x() ) {
|
||||||
int32_t laking = m_offset - padding.y();
|
int32_t laking = m_offset - padding.yTop();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()+laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()+laking, 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y()+laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x(), m_arrowPos.y()+laking, 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
} else {
|
} else {
|
||||||
int32_t laking = m_offset - padding.y();
|
int32_t laking = m_offset - padding.yTop();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()+laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x()+laking, m_arrowPos.y()+laking, 0.0f) );
|
||||||
m_compositing.addVertex();
|
m_compositing.addVertex();
|
||||||
m_compositing.setPos(vec3(m_arrowPos.x()-laking, m_arrowPos.y()+laking, 0.0f) );
|
m_compositing.setPos(vec3(m_arrowPos.x()-laking, m_arrowPos.y()+laking, 0.0f) );
|
||||||
@ -206,12 +208,12 @@ void ewol::widget::ContextMenu::onRegenerateDisplay(void) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
vec2 shaperOrigin = tmpOrigin-padding;
|
vec2 shaperOrigin = tmpOrigin-vec2(padding.xLeft(), padding.yButtom());
|
||||||
vec2 shaperSize = tmpSize+padding*2.0f;
|
vec2 shaperSize = tmpSize+vec2(padding.x(), padding.y());
|
||||||
m_shaper.setOrigin(vec2ClipInt32(shaperOrigin));
|
m_shaper.setOrigin(vec2ClipInt32(shaperOrigin));
|
||||||
m_shaper.setSize(vec2ClipInt32(shaperSize));
|
m_shaper.setSize(vec2ClipInt32(shaperSize));
|
||||||
m_shaper.setInsidePos(vec2ClipInt32(shaperOrigin+padding));
|
m_shaper.setInsidePos(vec2ClipInt32(shaperOrigin+vec2(padding.xLeft(), padding.yButtom())));
|
||||||
m_shaper.setInsideSize(vec2ClipInt32(shaperSize-padding*2.0f));
|
m_shaper.setInsideSize(vec2ClipInt32(shaperSize-vec2(padding.x(), padding.y())));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ewol::widget::ContextMenu::onEventInput(const ewol::event::Input& _event) {
|
bool ewol::widget::ContextMenu::onEventInput(const ewol::event::Input& _event) {
|
||||||
|
@ -38,7 +38,7 @@ namespace ewol {
|
|||||||
static const char* const configArrowMode;
|
static const char* const configArrowMode;
|
||||||
static const char* const configShaper;
|
static const char* const configShaper;
|
||||||
public:
|
public:
|
||||||
ContextMenu(const std::string& _shaperName="THEME:GUI:ContextMenu.conf");
|
ContextMenu(const std::string& _shaperName="THEME:GUI:ContextMenu.json");
|
||||||
virtual ~ContextMenu(void);
|
virtual ~ContextMenu(void);
|
||||||
private:
|
private:
|
||||||
ewol::compositing::Shaper m_shaper; //!< Compositing theme.
|
ewol::compositing::Shaper m_shaper; //!< Compositing theme.
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <ewol/widget/Manager.h>
|
#include <ewol/widget/Manager.h>
|
||||||
#include <ewol/ewol.h>
|
#include <ewol/ewol.h>
|
||||||
#include <ewol/context/Context.h>
|
#include <ewol/context/Context.h>
|
||||||
|
#include <ewol/Padding.h>
|
||||||
|
|
||||||
|
|
||||||
const char * const ewolEventEntryCut = "ewol-widget-entry-event-internal-cut";
|
const char * const ewolEventEntryCut = "ewol-widget-entry-event-internal-cut";
|
||||||
@ -48,7 +49,7 @@ const char* const ewol::widget::Entry::configEmptyMessage = "emptytext";
|
|||||||
const char* const ewol::widget::Entry::configValue = "value";
|
const char* const ewol::widget::Entry::configValue = "value";
|
||||||
|
|
||||||
ewol::widget::Entry::Entry(std::string _newData) :
|
ewol::widget::Entry::Entry(std::string _newData) :
|
||||||
m_shaper("THEME:GUI:Entry.conf"),
|
m_shaper("THEME:GUI:Entry.json"),
|
||||||
m_data(""),
|
m_data(""),
|
||||||
m_maxCharacter(0x7FFFFFFF),
|
m_maxCharacter(0x7FFFFFFF),
|
||||||
m_regExp(".*"),
|
m_regExp(".*"),
|
||||||
@ -107,11 +108,11 @@ void ewol::widget::Entry::calculateMinMaxSize(void) {
|
|||||||
// call main class
|
// call main class
|
||||||
ewol::Widget::calculateMinMaxSize();
|
ewol::Widget::calculateMinMaxSize();
|
||||||
// get generic padding
|
// get generic padding
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
int32_t minHeight = m_text.calculateSize(char32_t('A')).y();
|
int32_t minHeight = m_text.calculateSize(char32_t('A')).y();
|
||||||
vec2 minimumSizeBase(20, minHeight);
|
vec2 minimumSizeBase(20, minHeight);
|
||||||
// add padding :
|
// add padding :
|
||||||
minimumSizeBase += padding*2.0f;
|
minimumSizeBase += vec2(padding.x(), padding.y());
|
||||||
m_minSize.setMax(minimumSizeBase);
|
m_minSize.setMax(minimumSizeBase);
|
||||||
// verify the min max of the min size ...
|
// verify the min max of the min size ...
|
||||||
checkMinSize();
|
checkMinSize();
|
||||||
@ -152,7 +153,7 @@ void ewol::widget::Entry::onRegenerateDisplay(void) {
|
|||||||
m_text.setSelectionColor(m_shaper.getColor(m_colorIdSelection));
|
m_text.setSelectionColor(m_shaper.getColor(m_colorIdSelection));
|
||||||
}
|
}
|
||||||
updateTextPosition();
|
updateTextPosition();
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
|
|
||||||
vec2 tmpSizeShaper = m_minSize;
|
vec2 tmpSizeShaper = m_minSize;
|
||||||
if (true == m_userFill.x()) {
|
if (true == m_userFill.x()) {
|
||||||
@ -163,7 +164,7 @@ void ewol::widget::Entry::onRegenerateDisplay(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vec2 tmpOriginShaper = (m_size - tmpSizeShaper) / 2.0f;
|
vec2 tmpOriginShaper = (m_size - tmpSizeShaper) / 2.0f;
|
||||||
vec2 tmpSizeText = tmpSizeShaper - padding * 2.0f;
|
vec2 tmpSizeText = tmpSizeShaper - vec2(padding.x(), padding.y());
|
||||||
vec2 tmpOriginText = (m_size - tmpSizeText) / 2.0f;
|
vec2 tmpOriginText = (m_size - tmpSizeText) / 2.0f;
|
||||||
// sometimes, the user define an height bigger than the real size needed == > in this case we need to center the text in the shaper ...
|
// sometimes, the user define an height bigger than the real size needed == > in this case we need to center the text in the shaper ...
|
||||||
int32_t minHeight = m_text.calculateSize(char32_t('A')).y();
|
int32_t minHeight = m_text.calculateSize(char32_t('A')).y();
|
||||||
@ -199,16 +200,16 @@ void ewol::widget::Entry::onRegenerateDisplay(void) {
|
|||||||
|
|
||||||
|
|
||||||
void ewol::widget::Entry::updateCursorPosition(const vec2& _pos, bool _selection) {
|
void ewol::widget::Entry::updateCursorPosition(const vec2& _pos, bool _selection) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
|
|
||||||
vec2 relPos = relativePosition(_pos);
|
vec2 relPos = relativePosition(_pos);
|
||||||
relPos.setX(relPos.x()-m_displayStartPosition - padding.x());
|
relPos.setX(relPos.x()-m_displayStartPosition - padding.xLeft());
|
||||||
// try to find the new cursor position :
|
// try to find the new cursor position :
|
||||||
std::string tmpDisplay = std::string(m_data, 0, m_displayStartPosition);
|
std::string tmpDisplay = std::string(m_data, 0, m_displayStartPosition);
|
||||||
int32_t displayHidenSize = m_text.calculateSize(tmpDisplay).x();
|
int32_t displayHidenSize = m_text.calculateSize(tmpDisplay).x();
|
||||||
//EWOL_DEBUG("hidenSize : " << displayHidenSize);
|
//EWOL_DEBUG("hidenSize : " << displayHidenSize);
|
||||||
int32_t newCursorPosition = -1;
|
int32_t newCursorPosition = -1;
|
||||||
int32_t tmpTextOriginX = padding.x();
|
int32_t tmpTextOriginX = padding.xLeft();
|
||||||
for (size_t iii=0; iii<m_data.size(); iii++) {
|
for (size_t iii=0; iii<m_data.size(); iii++) {
|
||||||
tmpDisplay = std::string(m_data, 0, iii);
|
tmpDisplay = std::string(m_data, 0, iii);
|
||||||
int32_t tmpWidth = m_text.calculateSize(tmpDisplay).x() - displayHidenSize;
|
int32_t tmpWidth = m_text.calculateSize(tmpDisplay).x() - displayHidenSize;
|
||||||
@ -513,13 +514,13 @@ void ewol::widget::Entry::updateTextPosition(void) {
|
|||||||
if (false == m_needUpdateTextPos) {
|
if (false == m_needUpdateTextPos) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
|
|
||||||
int32_t tmpSizeX = m_minSize.x();
|
int32_t tmpSizeX = m_minSize.x();
|
||||||
if (true == m_userFill.x()) {
|
if (true == m_userFill.x()) {
|
||||||
tmpSizeX = m_size.x();
|
tmpSizeX = m_size.x();
|
||||||
}
|
}
|
||||||
int32_t tmpUserSize = tmpSizeX - 2*(padding.x());
|
int32_t tmpUserSize = tmpSizeX - padding.x();
|
||||||
int32_t totalWidth = m_text.calculateSize(m_data).x();
|
int32_t totalWidth = m_text.calculateSize(m_data).x();
|
||||||
// Check if the data inside the display can be contain in the entry box
|
// Check if the data inside the display can be contain in the entry box
|
||||||
if (totalWidth < tmpUserSize) {
|
if (totalWidth < tmpUserSize) {
|
||||||
|
@ -66,20 +66,20 @@ void ewol::widget::PopUp::setShaperName(const std::string& _shaperName) {
|
|||||||
void ewol::widget::PopUp::calculateSize(const vec2& _available) {
|
void ewol::widget::PopUp::calculateSize(const vec2& _available) {
|
||||||
ewol::Widget::calculateSize(_available);
|
ewol::Widget::calculateSize(_available);
|
||||||
if (NULL != m_subWidget) {
|
if (NULL != m_subWidget) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
vec2 subWidgetSize = m_subWidget->getCalculateMinSize();
|
vec2 subWidgetSize = m_subWidget->getCalculateMinSize();
|
||||||
if (true == m_subWidget->canExpand().x()) {
|
if (true == m_subWidget->canExpand().x()) {
|
||||||
if (m_lockExpand.x() == true) {
|
if (m_lockExpand.x() == true) {
|
||||||
subWidgetSize.setX(m_minSize.x());
|
subWidgetSize.setX(m_minSize.x());
|
||||||
} else {
|
} else {
|
||||||
subWidgetSize.setX(m_size.x()-padding.x());
|
subWidgetSize.setX(m_size.x()-padding.xLeft());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (true == m_subWidget->canExpand().y()) {
|
if (true == m_subWidget->canExpand().y()) {
|
||||||
if (m_lockExpand.y() == true) {
|
if (m_lockExpand.y() == true) {
|
||||||
subWidgetSize.setY(m_minSize.y());
|
subWidgetSize.setY(m_minSize.y());
|
||||||
} else {
|
} else {
|
||||||
subWidgetSize.setY(m_size.y()-padding.y());
|
subWidgetSize.setY(m_size.y()-padding.yButtom());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// limit the size of the element :
|
// limit the size of the element :
|
||||||
@ -120,15 +120,15 @@ void ewol::widget::PopUp::onDraw(void) {
|
|||||||
void ewol::widget::PopUp::onRegenerateDisplay(void) {
|
void ewol::widget::PopUp::onRegenerateDisplay(void) {
|
||||||
if (true == needRedraw()) {
|
if (true == needRedraw()) {
|
||||||
m_shaper.clear();
|
m_shaper.clear();
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
vec2 tmpSize(0,0);
|
vec2 tmpSize(0,0);
|
||||||
bvec2 expand = canExpand();
|
bvec2 expand = canExpand();
|
||||||
bvec2 fill = canFill();
|
bvec2 fill = canFill();
|
||||||
if (fill.x()) {
|
if (fill.x()) {
|
||||||
tmpSize.setX(m_size.x()-padding.x()*2);
|
tmpSize.setX(m_size.x()-padding.x());
|
||||||
}
|
}
|
||||||
if (fill.y()) {
|
if (fill.y()) {
|
||||||
tmpSize.setY(m_size.y()-padding.y()*2);
|
tmpSize.setY(m_size.y()-padding.y());
|
||||||
}
|
}
|
||||||
if (NULL != m_subWidget) {
|
if (NULL != m_subWidget) {
|
||||||
vec2 tmpSize = m_subWidget->getSize();
|
vec2 tmpSize = m_subWidget->getSize();
|
||||||
@ -138,8 +138,8 @@ void ewol::widget::PopUp::onRegenerateDisplay(void) {
|
|||||||
|
|
||||||
m_shaper.setOrigin(vec2(0,0));
|
m_shaper.setOrigin(vec2(0,0));
|
||||||
m_shaper.setSize(vec2ClipInt32(m_size));
|
m_shaper.setSize(vec2ClipInt32(m_size));
|
||||||
m_shaper.setInsidePos(vec2ClipInt32(tmpOrigin-padding));
|
m_shaper.setInsidePos(vec2ClipInt32(tmpOrigin-vec2(padding.x(), padding.y())));
|
||||||
m_shaper.setInsideSize(vec2ClipInt32(tmpSize + padding*2.0f));
|
m_shaper.setInsideSize(vec2ClipInt32(tmpSize + vec2(padding.x(), padding.y())));
|
||||||
}
|
}
|
||||||
// SUBwIDGET GENERATION ...
|
// SUBwIDGET GENERATION ...
|
||||||
if (NULL != m_subWidget) {
|
if (NULL != m_subWidget) {
|
||||||
@ -196,7 +196,7 @@ bool ewol::widget::PopUp::onGetConfig(const char* _config, std::string& _result)
|
|||||||
bool ewol::widget::PopUp::onEventInput(const ewol::event::Input& _event) {
|
bool ewol::widget::PopUp::onEventInput(const ewol::event::Input& _event) {
|
||||||
if (0 != _event.getId()) {
|
if (0 != _event.getId()) {
|
||||||
if (true == m_closeOutEvent) {
|
if (true == m_closeOutEvent) {
|
||||||
vec2 padding = m_shaper.getPadding();
|
ewol::Padding padding = m_shaper.getPadding();
|
||||||
vec2 tmpSize(0,0);
|
vec2 tmpSize(0,0);
|
||||||
if (NULL != m_subWidget) {
|
if (NULL != m_subWidget) {
|
||||||
vec2 tmpSize = m_subWidget->getSize();
|
vec2 tmpSize = m_subWidget->getSize();
|
||||||
@ -204,8 +204,8 @@ bool ewol::widget::PopUp::onEventInput(const ewol::event::Input& _event) {
|
|||||||
tmpSize.setMax(m_minSize);
|
tmpSize.setMax(m_minSize);
|
||||||
vec2 tmpOrigin = (m_size-tmpSize)/2.0f;
|
vec2 tmpOrigin = (m_size-tmpSize)/2.0f;
|
||||||
|
|
||||||
tmpOrigin-=padding;
|
tmpOrigin -= vec2(padding.xLeft(), padding.yButtom());
|
||||||
tmpSize += padding*2.0f;
|
tmpSize += vec2(padding.x(), padding.y());
|
||||||
vec2 pos = relativePosition(_event.getPos());
|
vec2 pos = relativePosition(_event.getPos());
|
||||||
if( pos.x() < tmpOrigin.x()
|
if( pos.x() < tmpOrigin.x()
|
||||||
|| pos.y() < tmpOrigin.y()
|
|| pos.y() < tmpOrigin.y()
|
||||||
|
@ -37,7 +37,7 @@ namespace ewol {
|
|||||||
* @brief Constructor
|
* @brief Constructor
|
||||||
* @param[in] _shaperName Shaper file properties
|
* @param[in] _shaperName Shaper file properties
|
||||||
*/
|
*/
|
||||||
PopUp(const std::string& _shaperName="THEME:GUI:PopUp.conf");
|
PopUp(const std::string& _shaperName="THEME:GUI:PopUp.json");
|
||||||
/**
|
/**
|
||||||
* @brief Destructor
|
* @brief Destructor
|
||||||
*/
|
*/
|
||||||
|
@ -37,7 +37,6 @@ ewol::widget::WidgetScrolled::~WidgetScrolled(void) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ewol::widget::WidgetScrolled::onRegenerateDisplay(void) {
|
void ewol::widget::WidgetScrolled::onRegenerateDisplay(void) {
|
||||||
m_shaperH.clear();
|
m_shaperH.clear();
|
||||||
m_shaperV.clear();
|
m_shaperV.clear();
|
||||||
@ -47,29 +46,29 @@ void ewol::widget::WidgetScrolled::onRegenerateDisplay(void) {
|
|||||||
}
|
}
|
||||||
if( m_size.y() < m_maxSize.y()
|
if( m_size.y() < m_maxSize.y()
|
||||||
|| m_originScrooled.y()!=0) {
|
|| m_originScrooled.y()!=0) {
|
||||||
vec2 padding = m_shaperV.getPadding();
|
ewol::Padding padding = m_shaperV.getPadding();
|
||||||
m_shaperV.setOrigin(vec2(m_size.x()-padding.x(), 0));
|
m_shaperV.setOrigin(vec2(m_size.x()-padding.xLeft(), 0));
|
||||||
m_shaperV.setSize(vec2(padding.x(), m_size.y()));
|
m_shaperV.setSize(vec2(padding.xLeft(), m_size.y()));
|
||||||
float lenScrollBar = m_size.y()*m_size.y() / m_maxSize.y();
|
float lenScrollBar = m_size.y()*m_size.y() / m_maxSize.y();
|
||||||
lenScrollBar = etk_avg(10, lenScrollBar, m_size.y());
|
lenScrollBar = etk_avg(10, lenScrollBar, m_size.y());
|
||||||
float originScrollBar = m_originScrooled.y() / (m_maxSize.y()-m_size.y()*m_limitScrolling);
|
float originScrollBar = m_originScrooled.y() / (m_maxSize.y()-m_size.y()*m_limitScrolling);
|
||||||
originScrollBar = etk_avg(0.0, originScrollBar, 1.0);
|
originScrollBar = etk_avg(0.0, originScrollBar, 1.0);
|
||||||
originScrollBar *= (m_size.y()-lenScrollBar);
|
originScrollBar *= (m_size.y()-lenScrollBar);
|
||||||
m_shaperV.setInsidePos(vec2(m_size.x()-padding.x(), m_size.y() - originScrollBar - lenScrollBar));
|
m_shaperV.setInsidePos(vec2(m_size.x()-padding.xLeft(), m_size.y() - originScrollBar - lenScrollBar));
|
||||||
m_shaperV.setInsideSize(vec2(padding.x(), lenScrollBar));
|
m_shaperV.setInsideSize(vec2(padding.xLeft(), lenScrollBar));
|
||||||
}
|
}
|
||||||
if( m_size.x() < m_maxSize.x()
|
if( m_size.x() < m_maxSize.x()
|
||||||
|| m_originScrooled.x()!=0) {
|
|| m_originScrooled.x()!=0) {
|
||||||
vec2 padding = m_shaperH.getPadding();
|
ewol::Padding padding = m_shaperH.getPadding();
|
||||||
m_shaperH.setOrigin(vec2(0, 0));
|
m_shaperH.setOrigin(vec2(0, 0));
|
||||||
m_shaperH.setSize(vec2(m_size.x()-padding.x(), padding.y()));
|
m_shaperH.setSize(vec2(m_size.x()-padding.xLeft(), padding.yButtom()));
|
||||||
float lenScrollBar = (m_size.x()-padding.x())*(m_size.x()-padding.x()) / m_maxSize.x();
|
float lenScrollBar = (m_size.x()-padding.xLeft())*(m_size.x()-padding.xRight()) / m_maxSize.x();
|
||||||
lenScrollBar = etk_avg(10, lenScrollBar, (m_size.x()-padding.x()));
|
lenScrollBar = etk_avg(10, lenScrollBar, (m_size.x()-padding.xRight()));
|
||||||
float originScrollBar = m_originScrooled.x() / (m_maxSize.x()-m_size.x()*m_limitScrolling);
|
float originScrollBar = m_originScrooled.x() / (m_maxSize.x()-m_size.x()*m_limitScrolling);
|
||||||
originScrollBar = etk_avg(0.0, originScrollBar, 1.0);
|
originScrollBar = etk_avg(0.0, originScrollBar, 1.0);
|
||||||
originScrollBar *= (m_size.x()-padding.x()-lenScrollBar);
|
originScrollBar *= (m_size.x()-padding.xRight()-lenScrollBar);
|
||||||
m_shaperH.setInsidePos(vec2(originScrollBar, 0));
|
m_shaperH.setInsidePos(vec2(originScrollBar, 0));
|
||||||
m_shaperH.setInsideSize(vec2(lenScrollBar, padding.y()));
|
m_shaperH.setInsideSize(vec2(lenScrollBar, padding.yButtom()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,8 +77,8 @@ bool ewol::widget::WidgetScrolled::onEventInput(const ewol::event::Input& _event
|
|||||||
vec2 relativePos = relativePosition(_event.getPos());
|
vec2 relativePos = relativePosition(_event.getPos());
|
||||||
// corection due to the open Gl invertion ...
|
// corection due to the open Gl invertion ...
|
||||||
relativePos.setY(m_size.y() - relativePos.y());
|
relativePos.setY(m_size.y() - relativePos.y());
|
||||||
vec2 paddingV = m_shaperV.getPadding();
|
ewol::Padding paddingV = m_shaperV.getPadding();
|
||||||
vec2 paddingH = m_shaperH.getPadding();
|
ewol::Padding paddingH = m_shaperH.getPadding();
|
||||||
if (m_scroollingMode == scroolModeNormal) {
|
if (m_scroollingMode == scroolModeNormal) {
|
||||||
if ( _event.getType() == ewol::key::typeMouse
|
if ( _event.getType() == ewol::key::typeMouse
|
||||||
&& ( m_highSpeedType == ewol::key::typeUnknow
|
&& ( m_highSpeedType == ewol::key::typeUnknow
|
||||||
@ -87,30 +86,30 @@ bool ewol::widget::WidgetScrolled::onEventInput(const ewol::event::Input& _event
|
|||||||
if ( _event.getId() == 1
|
if ( _event.getId() == 1
|
||||||
&& _event.getStatus() == ewol::key::statusDown) {
|
&& _event.getStatus() == ewol::key::statusDown) {
|
||||||
// check if selected the scrolling position whth the scrolling bar ...
|
// check if selected the scrolling position whth the scrolling bar ...
|
||||||
if (relativePos.x() >= (m_size.x()-paddingV.x())) {
|
if (relativePos.x() >= (m_size.x()-paddingV.xLeft())) {
|
||||||
if( m_size.y() < m_maxSize.y()
|
if( m_size.y() < m_maxSize.y()
|
||||||
|| m_originScrooled.y() != 0) {
|
|| m_originScrooled.y() != 0) {
|
||||||
m_highSpeedMode = ewol::widget::Scroll::speedModeEnableVertical;
|
m_highSpeedMode = ewol::widget::Scroll::speedModeEnableVertical;
|
||||||
m_highSpeedType = ewol::key::typeMouse;
|
m_highSpeedType = ewol::key::typeMouse;
|
||||||
m_highSpeedStartPos.setX(relativePos.x());
|
m_highSpeedStartPos.setX(relativePos.x());
|
||||||
m_highSpeedStartPos.setY(m_originScrooled.y() / m_maxSize.y() * (m_size.y()-paddingV.y()*2));
|
m_highSpeedStartPos.setY(m_originScrooled.y() / m_maxSize.y() * (m_size.y()-paddingV.yButtom()*2));
|
||||||
m_highSpeedButton = 1;
|
m_highSpeedButton = 1;
|
||||||
// force direct scrolling in this case
|
// force direct scrolling in this case
|
||||||
m_originScrooled.setY((int32_t)(m_maxSize.y() * (relativePos.y()-paddingV.y()) / (m_size.y()-paddingV.y()*2)));
|
m_originScrooled.setY((int32_t)(m_maxSize.y() * (relativePos.y()-paddingV.yButtom()) / (m_size.y()-paddingV.yButtom()*2)));
|
||||||
m_originScrooled.setY(etk_avg(0, m_originScrooled.y(), (m_maxSize.y() - m_size.y()*m_limitScrolling)));
|
m_originScrooled.setY(etk_avg(0, m_originScrooled.y(), (m_maxSize.y() - m_size.y()*m_limitScrolling)));
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (relativePos.y() >= (m_size.y()-paddingH.y())) {
|
} else if (relativePos.y() >= (m_size.y()-paddingH.yButtom())) {
|
||||||
if( m_size.x() < m_maxSize.x()
|
if( m_size.x() < m_maxSize.x()
|
||||||
|| m_originScrooled.x()!=0) {
|
|| m_originScrooled.x()!=0) {
|
||||||
m_highSpeedMode = ewol::widget::Scroll::speedModeEnableHorizontal;
|
m_highSpeedMode = ewol::widget::Scroll::speedModeEnableHorizontal;
|
||||||
m_highSpeedType = ewol::key::typeMouse;
|
m_highSpeedType = ewol::key::typeMouse;
|
||||||
m_highSpeedStartPos.setX(m_originScrooled.x() / m_maxSize.x() * (m_size.x()-paddingH.x()*2));
|
m_highSpeedStartPos.setX(m_originScrooled.x() / m_maxSize.x() * (m_size.x()-paddingH.xLeft()*2));
|
||||||
m_highSpeedStartPos.setY(relativePos.y());
|
m_highSpeedStartPos.setY(relativePos.y());
|
||||||
m_highSpeedButton = 1;
|
m_highSpeedButton = 1;
|
||||||
// force direct scrolling in this case
|
// force direct scrolling in this case
|
||||||
m_originScrooled.setX((int32_t)(m_maxSize.x() * (relativePos.x()-paddingH.x()) / (m_size.x()-paddingH.x()*2)));
|
m_originScrooled.setX((int32_t)(m_maxSize.x() * (relativePos.x()-paddingH.xLeft()) / (m_size.x()-paddingH.xLeft()*2)));
|
||||||
m_originScrooled.setY(etk_avg(0, m_originScrooled.x(), (m_maxSize.x() - m_size.x()*m_limitScrolling)));
|
m_originScrooled.setY(etk_avg(0, m_originScrooled.x(), (m_maxSize.x() - m_size.x()*m_limitScrolling)));
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
return true;
|
return true;
|
||||||
@ -241,9 +240,9 @@ bool ewol::widget::WidgetScrolled::onEventInput(const ewol::event::Input& _event
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_highSpeedMode == ewol::widget::Scroll::speedModeEnableHorizontal) {
|
if (m_highSpeedMode == ewol::widget::Scroll::speedModeEnableHorizontal) {
|
||||||
m_highSpeedStartPos.setX(m_originScrooled.x() / m_maxSize.x() * (m_size.x()-paddingV.x()*2));
|
m_highSpeedStartPos.setX(m_originScrooled.x() / m_maxSize.x() * (m_size.x()-paddingV.x()));
|
||||||
} else {
|
} else {
|
||||||
m_highSpeedStartPos.setY(m_originScrooled.y() / m_maxSize.y() * (m_size.y()-paddingV.y()*2));
|
m_highSpeedStartPos.setY(m_originScrooled.y() / m_maxSize.y() * (m_size.y()-paddingV.y()));
|
||||||
}
|
}
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
}
|
}
|
||||||
@ -252,14 +251,14 @@ bool ewol::widget::WidgetScrolled::onEventInput(const ewol::event::Input& _event
|
|||||||
}
|
}
|
||||||
if ( m_highSpeedMode == ewol::widget::Scroll::speedModeEnableHorizontal
|
if ( m_highSpeedMode == ewol::widget::Scroll::speedModeEnableHorizontal
|
||||||
&& _event.getStatus() == ewol::key::statusMove) {
|
&& _event.getStatus() == ewol::key::statusMove) {
|
||||||
m_originScrooled.setX((int32_t)(m_maxSize.x() * (relativePos.x()-paddingH.x()) / (m_size.x()-paddingH.x()*2)));
|
m_originScrooled.setX((int32_t)(m_maxSize.x() * (relativePos.x()-paddingH.xLeft()) / (m_size.x()-paddingH.x())));
|
||||||
m_originScrooled.setX(etk_avg(0, m_originScrooled.x(), (m_maxSize.x() - m_size.x()*m_limitScrolling)));
|
m_originScrooled.setX(etk_avg(0, m_originScrooled.x(), (m_maxSize.x() - m_size.x()*m_limitScrolling)));
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if ( m_highSpeedMode == ewol::widget::Scroll::speedModeEnableVertical
|
if ( m_highSpeedMode == ewol::widget::Scroll::speedModeEnableVertical
|
||||||
&& _event.getStatus() == ewol::key::statusMove) {
|
&& _event.getStatus() == ewol::key::statusMove) {
|
||||||
m_originScrooled.setY((int32_t)(m_maxSize.y() * (relativePos.y()-paddingV.y()) / (m_size.y()-paddingV.y()*2)));
|
m_originScrooled.setY((int32_t)(m_maxSize.y() * (relativePos.y()-paddingV.yButtom()) / (m_size.y()-paddingV.y())));
|
||||||
m_originScrooled.setY(etk_avg(0, m_originScrooled.y(), (m_maxSize.y() - m_size.y()*m_limitScrolling)));
|
m_originScrooled.setY(etk_avg(0, m_originScrooled.y(), (m_maxSize.y() - m_size.y()*m_limitScrolling)));
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
return true;
|
return true;
|
||||||
|
@ -52,7 +52,7 @@ namespace ewol {
|
|||||||
* @brief Scroll Widget main constructor to be herited from an other widget (this is not a stand-alone widget)
|
* @brief Scroll Widget main constructor to be herited from an other widget (this is not a stand-alone widget)
|
||||||
* @param[in] _shaperName Shaper name if the scrolled widget.
|
* @param[in] _shaperName Shaper name if the scrolled widget.
|
||||||
*/
|
*/
|
||||||
WidgetScrolled(const std::string& _shaperName="THEME:GUI:WidgetScrolled.conf");
|
WidgetScrolled(const std::string& _shaperName="THEME:GUI:WidgetScrolled.json");
|
||||||
/**
|
/**
|
||||||
* @brief Scroll widget destructor.
|
* @brief Scroll widget destructor.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user