[DEV] add correct version for Admods and back button and image part display
This commit is contained in:
parent
6a36013460
commit
32d55bcdc6
2
build
2
build
@ -1 +1 @@
|
|||||||
Subproject commit b48a5672b6c3a981160bb5ec61df46cde8d823a9
|
Subproject commit b7cc1ef456bc7635a1eff57f8c3e0919adb6b7a8
|
2
external/airtaudio
vendored
2
external/airtaudio
vendored
@ -1 +1 @@
|
|||||||
Subproject commit b30ff7808fe7205aa166dc4a856566a6ecfd9b85
|
Subproject commit 7ea04602a2cbf9b2ae26ff7ba1d338d773a413db
|
2
external/ogg
vendored
2
external/ogg
vendored
@ -1 +1 @@
|
|||||||
Subproject commit d0f4c63e4571e022cad80a25a9386483546aa334
|
Subproject commit 841f407905ad4f2d3434c20c4f3b4b4eec9ebdeb
|
@ -82,8 +82,8 @@ public class Ewol {
|
|||||||
EWaudioPlayback(instanceID, bufferData, frames, nbChannels);
|
EWaudioPlayback(instanceID, bufferData, frames, nbChannels);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void keyboardEventKeySystem(int keyVal, boolean isDown) {
|
public boolean keyboardEventKeySystem(int keyVal, boolean isDown) {
|
||||||
EWkeyboardEventKeySystem(instanceID, keyVal, isDown);
|
return EWkeyboardEventKeySystem(instanceID, keyVal, isDown);
|
||||||
}
|
}
|
||||||
// renderer Event :
|
// renderer Event :
|
||||||
public void renderInit() {
|
public void renderInit() {
|
||||||
@ -127,7 +127,7 @@ public class Ewol {
|
|||||||
// Audio section ...
|
// Audio section ...
|
||||||
public native void EWaudioPlayback(int instanceId, short[] bufferData, int frames, int nbChannels);
|
public native void EWaudioPlayback(int instanceId, short[] bufferData, int frames, int nbChannels);
|
||||||
|
|
||||||
private native void EWkeyboardEventKeySystem(int instanceId, int keyVal, boolean isDown);
|
private native boolean EWkeyboardEventKeySystem(int instanceId, int keyVal, boolean isDown);
|
||||||
// renderer Event :
|
// renderer Event :
|
||||||
private native void EWrenderInit(int instanceId);
|
private native void EWrenderInit(int instanceId);
|
||||||
private native void EWrenderResize(int instanceId, int w, int h);
|
private native void EWrenderResize(int instanceId, int w, int h);
|
||||||
|
@ -47,15 +47,13 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import org.ewol.Ewol;
|
import org.ewol.Ewol;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Class :
|
* @brief Class :
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class EwolActivity extends Activity implements EwolCallback, EwolConstants {
|
public abstract class EwolActivity extends Activity implements EwolCallback, EwolConstants {
|
||||||
private static Context mContext;
|
private static Context mContext;
|
||||||
private EwolSurfaceViewGL mGLView;
|
protected EwolSurfaceViewGL mGLView = null;
|
||||||
private Ewol EWOL;
|
private Ewol EWOL;
|
||||||
// clipboard section
|
// clipboard section
|
||||||
private String tmpClipBoard; // TODO : Remove this ==> clipboard acces does not work
|
private String tmpClipBoard; // TODO : Remove this ==> clipboard acces does not work
|
||||||
@ -63,6 +61,7 @@ public abstract class EwolActivity extends Activity implements EwolCallback, Ewo
|
|||||||
private EwolAudioTask mStreams;
|
private EwolAudioTask mStreams;
|
||||||
private Thread mAudioThread;
|
private Thread mAudioThread;
|
||||||
private boolean mAudioStarted;
|
private boolean mAudioStarted;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
System.loadLibrary("ewol");
|
System.loadLibrary("ewol");
|
||||||
|
@ -216,27 +216,24 @@ public class EwolSurfaceViewGL extends GLSurfaceView implements EwolConstants {
|
|||||||
Log.i("Surface GL", "get event : " + keyCode + " is down : " + isDown);
|
Log.i("Surface GL", "get event : " + keyCode + " is down : " + isDown);
|
||||||
switch(keyCode) {
|
switch(keyCode) {
|
||||||
case KeyEvent.KEYCODE_VOLUME_DOWN:
|
case KeyEvent.KEYCODE_VOLUME_DOWN:
|
||||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_VOLUME_DOWN, isDown);
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_VOLUME_DOWN, isDown);
|
||||||
return false;
|
|
||||||
case KeyEvent.KEYCODE_VOLUME_UP:
|
case KeyEvent.KEYCODE_VOLUME_UP:
|
||||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_VOLUME_UP, isDown);
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_VOLUME_UP, isDown);
|
||||||
return false;
|
|
||||||
case KeyEvent.KEYCODE_MENU:
|
case KeyEvent.KEYCODE_MENU:
|
||||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_MENU, isDown);
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_MENU, isDown);
|
||||||
return false;
|
|
||||||
case KeyEvent.KEYCODE_CAMERA:
|
case KeyEvent.KEYCODE_CAMERA:
|
||||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_CAMERA, isDown);
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_CAMERA, isDown);
|
||||||
return false;
|
|
||||||
case KeyEvent.KEYCODE_HOME:
|
case KeyEvent.KEYCODE_HOME:
|
||||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_HOME, isDown);
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_HOME, isDown);
|
||||||
return false;
|
|
||||||
case KeyEvent.KEYCODE_POWER:
|
case KeyEvent.KEYCODE_POWER:
|
||||||
EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_POWER, isDown);
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_POWER, isDown);
|
||||||
return false;
|
|
||||||
case KeyEvent.KEYCODE_BACK:
|
case KeyEvent.KEYCODE_BACK:
|
||||||
// the back key is wrapped in the <esc> key to simplify PC validation ...
|
// the back key is wrapped in the <esc> key to simplify PC validation ...
|
||||||
|
return EWOL.keyboardEventKeySystem(EWOL_SYSTEM_KEY_BACK, isDown);
|
||||||
|
/*
|
||||||
EWOL.keyboardEventKey(EWOL_SYSTEM_KEY_BACK, isDown);
|
EWOL.keyboardEventKey(EWOL_SYSTEM_KEY_BACK, isDown);
|
||||||
return false;
|
return false;
|
||||||
|
*/
|
||||||
case KeyEvent.KEYCODE_DEL:
|
case KeyEvent.KEYCODE_DEL:
|
||||||
EWOL.keyboardEventKey(EWOL_SYSTEM_KEY_DEL, isDown);
|
EWOL.keyboardEventKey(EWOL_SYSTEM_KEY_DEL, isDown);
|
||||||
return true;
|
return true;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
*
|
*
|
||||||
* @license BSD v3 (see license file)
|
* @license BSD v3 (see license file)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.ewol;
|
package org.ewol;
|
||||||
|
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
@ -209,3 +210,5 @@ public abstract class EwolWallpaper extends WallpaperService implements EwolCall
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -589,6 +589,9 @@ class AndroidContext : public ewol::Context {
|
|||||||
OS_SetKeyboard(m_guiKeyBoardSpecialKeyMode, _myChar, _isDown, _isARepeateKey);
|
OS_SetKeyboard(m_guiKeyBoardSpecialKeyMode, _myChar, _isDown, _isARepeateKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ANDROID_systemKeyboradEvent(enum ewol::key::keyboardSystem _key, bool _down) {
|
||||||
|
return systemKeyboradEvent(_key, _down);
|
||||||
|
}
|
||||||
void ANDROID_SetKeyboardMove(int _move, bool _isDown, bool _isARepeateKey=false) {
|
void ANDROID_SetKeyboardMove(int _move, bool _isDown, bool _isARepeateKey=false) {
|
||||||
// direct wrapping :
|
// direct wrapping :
|
||||||
enum ewol::key::keyboard move = (enum ewol::key::keyboard)_move;
|
enum ewol::key::keyboard move = (enum ewol::key::keyboard)_move;
|
||||||
@ -956,7 +959,7 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO : set a return true or false if we want to grep this event ...
|
// TODO : set a return true or false if we want to grep this event ...
|
||||||
void Java_org_ewol_Ewol_EWkeyboardEventKeySystem(JNIEnv* _env,
|
bool Java_org_ewol_Ewol_EWkeyboardEventKeySystem(JNIEnv* _env,
|
||||||
jobject _thiz,
|
jobject _thiz,
|
||||||
jint _id,
|
jint _id,
|
||||||
jint _keyVal,
|
jint _keyVal,
|
||||||
@ -967,31 +970,35 @@ extern "C" {
|
|||||||
|| NULL == s_listInstance[_id] ) {
|
|| NULL == s_listInstance[_id] ) {
|
||||||
EWOL_ERROR("Call C With an incorrect instance _id=" << (int32_t)_id);
|
EWOL_ERROR("Call C With an incorrect instance _id=" << (int32_t)_id);
|
||||||
// TODO : generate error in java to stop the current instance
|
// TODO : generate error in java to stop the current instance
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
switch (_keyVal) {
|
switch (_keyVal) {
|
||||||
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_VOLUME_UP:
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_VOLUME_UP:
|
||||||
EWOL_DEBUG("IO keyboard Key system \"VOLUME_UP\" is down=" << _isdown);
|
EWOL_VERBOSE("IO keyboard Key system \"VOLUME_UP\" is down=" << _isdown);
|
||||||
break;
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemVolumeUp, _isdown);
|
||||||
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_VOLUME_DOWN:
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_VOLUME_DOWN:
|
||||||
EWOL_DEBUG("IO keyboard Key system \"VOLUME_DOWN\" is down=" << _isdown);
|
EWOL_DEBUG("IO keyboard Key system \"VOLUME_DOWN\" is down=" << _isdown);
|
||||||
break;
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemVolumeDown, _isdown);
|
||||||
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_MENU:
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_MENU:
|
||||||
EWOL_DEBUG("IO keyboard Key system \"MENU\" is down=" << _isdown);
|
EWOL_DEBUG("IO keyboard Key system \"MENU\" is down=" << _isdown);
|
||||||
break;
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemMenu, _isdown);
|
||||||
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_CAMERA:
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_CAMERA:
|
||||||
EWOL_DEBUG("IO keyboard Key system \"CAMERA\" is down=" << _isdown);
|
EWOL_DEBUG("IO keyboard Key system \"CAMERA\" is down=" << _isdown);
|
||||||
break;
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemCamera, _isdown);
|
||||||
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_HOME:
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_HOME:
|
||||||
EWOL_DEBUG("IO keyboard Key system \"HOME\" is down=" << _isdown);
|
EWOL_DEBUG("IO keyboard Key system \"HOME\" is down=" << _isdown);
|
||||||
break;
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemHome, _isdown);
|
||||||
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_POWER:
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_POWER:
|
||||||
EWOL_DEBUG("IO keyboard Key system \"POWER\" is down=" << _isdown);
|
EWOL_DEBUG("IO keyboard Key system \"POWER\" is down=" << _isdown);
|
||||||
break;
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemPower, _isdown);
|
||||||
|
case org_ewol_EwolConstants_EWOL_SYSTEM_KEY_BACK:
|
||||||
|
EWOL_DEBUG("IO keyboard Key system \"BACK\" is down=" << _isdown);
|
||||||
|
return s_listInstance[_id]->ANDROID_systemKeyboradEvent(ewol::key::keyboardSystemBack, _isdown);
|
||||||
default:
|
default:
|
||||||
EWOL_DEBUG("IO keyboard Key system event : \"" << _keyVal << "\" is down=" << _isdown);
|
EWOL_ERROR("IO keyboard Key system event : \"" << _keyVal << "\" is down=" << _isdown);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -723,3 +723,14 @@ void ewol::Context::keyboardShow(void) {
|
|||||||
void ewol::Context::keyboardHide(void) {
|
void ewol::Context::keyboardHide(void) {
|
||||||
EWOL_INFO("keyboardHide: NOT implemented ...");
|
EWOL_INFO("keyboardHide: NOT implemented ...");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ewol::Context::systemKeyboradEvent(enum ewol::key::keyboardSystem _key, bool _down) {
|
||||||
|
if (m_windowsCurrent == NULL) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
lockContext();
|
||||||
|
bool ret = m_windowsCurrent->onEventHardwareInput(_key, _down);
|
||||||
|
unLockContext();
|
||||||
|
return ret;
|
||||||
|
}
|
@ -337,6 +337,14 @@ namespace ewol {
|
|||||||
* @param[in] _fileName Name of the image to load
|
* @param[in] _fileName Name of the image to load
|
||||||
*/
|
*/
|
||||||
void setInitImage(const std::string& _fileName);
|
void setInitImage(const std::string& _fileName);
|
||||||
|
protected:
|
||||||
|
/**
|
||||||
|
* @brief HARDWARE keyboard event from the system
|
||||||
|
* @param[in] _key event type
|
||||||
|
* @param[in] _status Up or down status
|
||||||
|
* @return Keep the event or not
|
||||||
|
*/
|
||||||
|
virtual bool systemKeyboradEvent(enum ewol::key::keyboardSystem _key, bool _down);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* @brief From everyware in the program, we can get the context inteface.
|
* @brief From everyware in the program, we can get the context inteface.
|
||||||
|
@ -58,3 +58,23 @@ etk::CCout& ewol::key::operator <<(etk::CCout& _os, const enum ewol::key::keyboa
|
|||||||
return _os;
|
return _os;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char* keyboardSystemDescriptionString[ewol::key::keyboardSystemCount+1] = {
|
||||||
|
"keyboardSystemUnknow",
|
||||||
|
"keyboardSystemVolumeUp",
|
||||||
|
"keyboardSystemVolumeDown",
|
||||||
|
"keyboardSystemMenu",
|
||||||
|
"keyboardSystemCamera",
|
||||||
|
"keyboardSystemHome",
|
||||||
|
"keyboardSystemPower",
|
||||||
|
"keyboardSystemBack",
|
||||||
|
"keyboardSystemCount"
|
||||||
|
};
|
||||||
|
|
||||||
|
etk::CCout& ewol::key::operator <<(etk::CCout& _os, const enum ewol::key::keyboardSystem _obj) {
|
||||||
|
if (_obj >= 0 && _obj <ewol::key::keyboardSystemCount) {
|
||||||
|
_os << keyboardSystemDescriptionString[_obj];
|
||||||
|
} else {
|
||||||
|
_os << "[ERROR]";
|
||||||
|
}
|
||||||
|
return _os;
|
||||||
|
}
|
@ -62,6 +62,19 @@ namespace ewol {
|
|||||||
* @brief Debug operator To display the curent element in a Human redeable information
|
* @brief Debug operator To display the curent element in a Human redeable information
|
||||||
*/
|
*/
|
||||||
etk::CCout& operator <<(etk::CCout& _os, const enum ewol::key::keyboard _obj);
|
etk::CCout& operator <<(etk::CCout& _os, const enum ewol::key::keyboard _obj);
|
||||||
|
|
||||||
|
enum keyboardSystem {
|
||||||
|
keyboardSystemUnknow = 0, //!< Unknown keyboard system key
|
||||||
|
keyboardSystemVolumeUp, //!< Hardware volume UP key
|
||||||
|
keyboardSystemVolumeDown, //!< Hardware volume DOWN key
|
||||||
|
keyboardSystemMenu, //!< Hardware Menu key
|
||||||
|
keyboardSystemCamera, //!< Hardware Camera key
|
||||||
|
keyboardSystemHome, //!< Hardware Home key
|
||||||
|
keyboardSystemPower, //!< Hardware Power key
|
||||||
|
keyboardSystemBack, //!< Hardware Back key
|
||||||
|
keyboardSystemCount //!< number of posible System key
|
||||||
|
};
|
||||||
|
etk::CCout& operator <<(etk::CCout& _os, const enum ewol::key::keyboardSystem _obj);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -337,7 +337,7 @@ ewol::GlyphProperty* ewol::resource::TexturedFont::getGlyphPointer(const char32_
|
|||||||
}
|
}
|
||||||
|
|
||||||
ewol::resource::TexturedFont* ewol::resource::TexturedFont::keep(const std::string& _filename) {
|
ewol::resource::TexturedFont* ewol::resource::TexturedFont::keep(const std::string& _filename) {
|
||||||
EWOL_ERROR("KEEP : TexturedFont : file : '" << _filename << "'");
|
EWOL_INFO("KEEP : TexturedFont : file : '" << _filename << "'");
|
||||||
ewol::resource::TexturedFont* object = NULL;
|
ewol::resource::TexturedFont* object = NULL;
|
||||||
ewol::Resource* object2 = getManager().localKeep(_filename);
|
ewol::Resource* object2 = getManager().localKeep(_filename);
|
||||||
if (NULL != object2) {
|
if (NULL != object2) {
|
||||||
@ -351,7 +351,7 @@ ewol::resource::TexturedFont* ewol::resource::TexturedFont::keep(const std::stri
|
|||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
// need to crate a new one ...
|
// need to crate a new one ...
|
||||||
EWOL_ERROR("CREATE: TexturedFont : file : '" << _filename << "'");
|
EWOL_INFO("CREATE: TexturedFont : file : '" << _filename << "'");
|
||||||
object = new ewol::resource::TexturedFont(_filename);
|
object = new ewol::resource::TexturedFont(_filename);
|
||||||
if (NULL == object) {
|
if (NULL == object) {
|
||||||
EWOL_ERROR("allocation error of a resource : " << _filename);
|
EWOL_ERROR("allocation error of a resource : " << _filename);
|
||||||
@ -365,7 +365,7 @@ void ewol::resource::TexturedFont::release(ewol::resource::TexturedFont*& _objec
|
|||||||
if (NULL == _object) {
|
if (NULL == _object) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EWOL_ERROR("RELEASE: TexturedFont : file : '" << _object->getName() << "' count=" << _object->getCounter());
|
EWOL_INFO("RELEASE: TexturedFont : file : '" << _object->getName() << "' count=" << _object->getCounter());
|
||||||
std::string name = _object->getName();
|
std::string name = _object->getName();
|
||||||
int32_t count = _object->getCounter() - 1;
|
int32_t count = _object->getCounter() - 1;
|
||||||
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
|
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
|
||||||
|
@ -32,12 +32,16 @@ const char * const ewol::widget::Image::configSize = "size";
|
|||||||
const char * const ewol::widget::Image::configBorder = "border";
|
const char * const ewol::widget::Image::configBorder = "border";
|
||||||
const char * const ewol::widget::Image::configSource = "src";
|
const char * const ewol::widget::Image::configSource = "src";
|
||||||
const char * const ewol::widget::Image::configDistanceField = "distance-field";
|
const char * const ewol::widget::Image::configDistanceField = "distance-field";
|
||||||
|
const char * const ewol::widget::Image::configPartStart = "part-start";
|
||||||
|
const char * const ewol::widget::Image::configPartStop = "part-stop";
|
||||||
|
|
||||||
ewol::widget::Image::Image(const std::string& _file, const ewol::Dimension& _border) :
|
ewol::widget::Image::Image(const std::string& _file, const ewol::Dimension& _border) :
|
||||||
m_colorProperty(NULL),
|
m_colorProperty(NULL),
|
||||||
m_colorId(-1),
|
m_colorId(-1),
|
||||||
m_imageSize(vec2(0,0)),
|
m_imageSize(vec2(0.0f,0.0f)),
|
||||||
m_keepRatio(true) {
|
m_keepRatio(true),
|
||||||
|
m_posStart(0.0f,0.0f),
|
||||||
|
m_posStop(1.0f,1.0f) {
|
||||||
addObjectType("ewol::widget::Image");
|
addObjectType("ewol::widget::Image");
|
||||||
addEventId(eventPressed);
|
addEventId(eventPressed);
|
||||||
registerConfig(configRatio, "bool", NULL, "Keep ratio of the image");
|
registerConfig(configRatio, "bool", NULL, "Keep ratio of the image");
|
||||||
@ -45,6 +49,8 @@ ewol::widget::Image::Image(const std::string& _file, const ewol::Dimension& _bor
|
|||||||
registerConfig(configBorder, "Dimension", NULL, "Border of the image");
|
registerConfig(configBorder, "Dimension", NULL, "Border of the image");
|
||||||
registerConfig(configSource, "string", "Image source path");
|
registerConfig(configSource, "string", "Image source path");
|
||||||
registerConfig(configDistanceField, "bool", "Distance field mode");
|
registerConfig(configDistanceField, "bool", "Distance field mode");
|
||||||
|
registerConfig(configPartStart, "vec2", NULL, "Start display position in the image [0.0 .. 1.0]");
|
||||||
|
registerConfig(configPartStop, "vec2", NULL, "Stop display position in the image [0.0 .. 1.0]");
|
||||||
m_colorProperty = ewol::resource::ColorFile::keep("THEME:COLOR:Image.json");
|
m_colorProperty = ewol::resource::ColorFile::keep("THEME:COLOR:Image.json");
|
||||||
if (m_colorProperty != NULL) {
|
if (m_colorProperty != NULL) {
|
||||||
m_colorId = m_colorProperty->request("foreground");
|
m_colorId = m_colorProperty->request("foreground");
|
||||||
@ -79,13 +85,36 @@ void ewol::widget::Image::setBorder(const ewol::Dimension& _border) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Image::setKeepRatio(bool _keep) {
|
void ewol::widget::Image::setKeepRatio(bool _keep) {
|
||||||
if (m_keepRatio != _keep) {
|
if (m_keepRatio == _keep) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// copy data :
|
// copy data :
|
||||||
m_keepRatio = _keep;
|
m_keepRatio = _keep;
|
||||||
// force redraw all :
|
// force redraw all :
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
requestUpdateSize();
|
requestUpdateSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ewol::widget::Image::setStartPos(const vec2& _pos) {
|
||||||
|
if (m_posStart == _pos) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
// copy data :
|
||||||
|
m_posStart = _pos;
|
||||||
|
// force redraw all :
|
||||||
|
markToRedraw();
|
||||||
|
requestUpdateSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ewol::widget::Image::setStopPos(const vec2& _pos) {
|
||||||
|
if (m_posStop == _pos) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// copy data :
|
||||||
|
m_posStop = _pos;
|
||||||
|
// force redraw all :
|
||||||
|
markToRedraw();
|
||||||
|
requestUpdateSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Image::setImageSize(const ewol::Dimension& _size) {
|
void ewol::widget::Image::setImageSize(const ewol::Dimension& _size) {
|
||||||
@ -128,6 +157,9 @@ void ewol::widget::Image::onRegenerateDisplay(void) {
|
|||||||
vec2 imageRealSize = m_minSize - imageBoder;
|
vec2 imageRealSize = m_minSize - imageBoder;
|
||||||
vec2 imageRealSizeMax = m_size - imageBoder;
|
vec2 imageRealSizeMax = m_size - imageBoder;
|
||||||
|
|
||||||
|
vec2 ratioSizeDisplayRequested = m_posStop - m_posStart;
|
||||||
|
//imageRealSizeMax *= ratioSizeDisplayRequested;
|
||||||
|
|
||||||
if (m_userFill.x() == true) {
|
if (m_userFill.x() == true) {
|
||||||
imageRealSize.setX(imageRealSizeMax.x());
|
imageRealSize.setX(imageRealSizeMax.x());
|
||||||
} else {
|
} else {
|
||||||
@ -140,7 +172,9 @@ void ewol::widget::Image::onRegenerateDisplay(void) {
|
|||||||
}
|
}
|
||||||
if (m_keepRatio == true) {
|
if (m_keepRatio == true) {
|
||||||
vec2 tmpSize = m_compositing.getRealSize();
|
vec2 tmpSize = m_compositing.getRealSize();
|
||||||
float ratio = tmpSize.x() / tmpSize.y();
|
//float ratio = tmpSize.x() / tmpSize.y();
|
||||||
|
float ratio = (tmpSize.x()*ratioSizeDisplayRequested.x()) / (tmpSize.y() * ratioSizeDisplayRequested.y());
|
||||||
|
//float ratioCurrent = (imageRealSize.x()*ratioSizeDisplayRequested.x()) / (imageRealSize.y() * ratioSizeDisplayRequested.y());
|
||||||
float ratioCurrent = imageRealSize.x() / imageRealSize.y();
|
float ratioCurrent = imageRealSize.x() / imageRealSize.y();
|
||||||
if (ratio == ratioCurrent) {
|
if (ratio == ratioCurrent) {
|
||||||
// nothing to do ...
|
// nothing to do ...
|
||||||
@ -157,7 +191,7 @@ void ewol::widget::Image::onRegenerateDisplay(void) {
|
|||||||
|
|
||||||
// set the somposition properties :
|
// set the somposition properties :
|
||||||
m_compositing.setPos(origin);
|
m_compositing.setPos(origin);
|
||||||
m_compositing.print(imageRealSize);
|
m_compositing.printPart(imageRealSize, m_posStart, m_posStop);
|
||||||
//EWOL_DEBUG("Paint Image at : " << origin << " size=" << imageRealSize << " origin=" << origin);
|
//EWOL_DEBUG("Paint Image at : " << origin << " size=" << imageRealSize << " origin=" << origin);
|
||||||
EWOL_VERBOSE("Paint Image :" << m_fileName << " realsize=" << m_compositing.getRealSize() << " size=" << imageRealSize);
|
EWOL_VERBOSE("Paint Image :" << m_fileName << " realsize=" << m_compositing.getRealSize() << " size=" << imageRealSize);
|
||||||
}
|
}
|
||||||
@ -258,6 +292,14 @@ bool ewol::widget::Image::onSetConfig(const ewol::object::Config& _conf) {
|
|||||||
setDistanceField(std::stob(_conf.getData()));
|
setDistanceField(std::stob(_conf.getData()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (_conf.getConfig() == configPartStart) {
|
||||||
|
setStartPos(vec2(_conf.getData()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (_conf.getConfig() == configPartStop) {
|
||||||
|
setStopPos(vec2(_conf.getData()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,6 +327,14 @@ bool ewol::widget::Image::onGetConfig(const char* _config, std::string& _result)
|
|||||||
_result = std::to_string(getDistanceField());
|
_result = std::to_string(getDistanceField());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (_config == configPartStart) {
|
||||||
|
_result = (std::string)getStartPos();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (_config == configPartStop) {
|
||||||
|
_result = (std::string)getStopPos();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,8 @@ namespace ewol {
|
|||||||
static const char * const configBorder;
|
static const char * const configBorder;
|
||||||
static const char * const configSource;
|
static const char * const configSource;
|
||||||
static const char * const configDistanceField;
|
static const char * const configDistanceField;
|
||||||
|
static const char * const configPartStart;
|
||||||
|
static const char * const configPartStop;
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Main call of recording the widget on the List of "widget named creator"
|
* @brief Main call of recording the widget on the List of "widget named creator"
|
||||||
@ -117,6 +119,36 @@ namespace ewol {
|
|||||||
bool getKeepRatio(void) const {
|
bool getKeepRatio(void) const {
|
||||||
return m_keepRatio;
|
return m_keepRatio;
|
||||||
};
|
};
|
||||||
|
protected:
|
||||||
|
vec2 m_posStart; //!< position in the image to start the sisplay (when we want not to display all the image)
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief set the current 'start' position in the image to display.
|
||||||
|
* @param[in] _keep The new position in the image vec2([0..1],[0..1])
|
||||||
|
*/
|
||||||
|
void setStartPos(const vec2& _pos);
|
||||||
|
/**
|
||||||
|
* @brief get the current 'start' position in the image to display.
|
||||||
|
* @return The Position of the display in image
|
||||||
|
*/
|
||||||
|
vec2 getStartPos(void) const {
|
||||||
|
return m_posStart;
|
||||||
|
};
|
||||||
|
protected:
|
||||||
|
vec2 m_posStop; //!< position in the image to start the sisplay (when we want not to display all the image)
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief set the current 'stop' position in the image to display.
|
||||||
|
* @param[in] _keep The new position in the image vec2([0..1],[0..1])
|
||||||
|
*/
|
||||||
|
void setStopPos(const vec2& _pos);
|
||||||
|
/**
|
||||||
|
* @brief get the current 'stop' position in the image to display.
|
||||||
|
* @return The Position of the display in image
|
||||||
|
*/
|
||||||
|
vec2 getStopPos(void) const {
|
||||||
|
return m_posStop;
|
||||||
|
};
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Set distance field rendering mode
|
* @brief Set distance field rendering mode
|
||||||
|
@ -180,6 +180,7 @@ void ewol::Widget::onObjectRemove(ewol::Object* _removeObject) {
|
|||||||
|
|
||||||
void ewol::Widget::hide(void) {
|
void ewol::Widget::hide(void) {
|
||||||
if (m_hide == false) {
|
if (m_hide == false) {
|
||||||
|
EWOL_WARNING("HIDE widget: '" << getName() << "'");
|
||||||
m_hide = true;
|
m_hide = true;
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
requestUpdateSize();
|
requestUpdateSize();
|
||||||
@ -188,6 +189,7 @@ void ewol::Widget::hide(void) {
|
|||||||
|
|
||||||
void ewol::Widget::show(void) {
|
void ewol::Widget::show(void) {
|
||||||
if (m_hide == true) {
|
if (m_hide == true) {
|
||||||
|
EWOL_WARNING("SHOW widget: '" << getName() << "'");
|
||||||
m_hide = false;
|
m_hide = false;
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
requestUpdateSize();
|
requestUpdateSize();
|
||||||
|
@ -201,6 +201,17 @@ void ewol::widget::Windows::popUpWidgetPush(ewol::Widget* _widget) {
|
|||||||
getContext().resetIOEvent();
|
getContext().resetIOEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ewol::widget::Windows::popUpWidgetPop(void) {
|
||||||
|
if (m_popUpWidgetList.size() == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ewol::Widget* widget = m_popUpWidgetList[m_popUpWidgetList.size()-1];
|
||||||
|
if (widget == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
widget->removeObject();
|
||||||
|
}
|
||||||
|
|
||||||
void ewol::widget::Windows::onObjectRemove(ewol::Object* _removeObject) {
|
void ewol::widget::Windows::onObjectRemove(ewol::Object* _removeObject) {
|
||||||
// First step call parrent :
|
// First step call parrent :
|
||||||
ewol::Widget::onObjectRemove(_removeObject);
|
ewol::Widget::onObjectRemove(_removeObject);
|
||||||
|
@ -57,6 +57,10 @@ namespace ewol {
|
|||||||
public:
|
public:
|
||||||
void setSubWidget(ewol::Widget* _widget);
|
void setSubWidget(ewol::Widget* _widget);
|
||||||
void popUpWidgetPush(ewol::Widget* _widget);
|
void popUpWidgetPush(ewol::Widget* _widget);
|
||||||
|
void popUpWidgetPop(void);
|
||||||
|
size_t popUpCount(void) {
|
||||||
|
return m_popUpWidgetList.size();
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
etk::Color<float> m_backgroundColor; //!< reset color of the Main windows
|
etk::Color<float> m_backgroundColor; //!< reset color of the Main windows
|
||||||
public:
|
public:
|
||||||
@ -121,6 +125,11 @@ namespace ewol {
|
|||||||
void displayCriticalMessage(const std::string& _message) {
|
void displayCriticalMessage(const std::string& _message) {
|
||||||
createPopUpMessage(messageTypeCritical, _message);
|
createPopUpMessage(messageTypeCritical, _message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
virtual bool onEventHardwareInput(const ewol::key::keyboardSystem& _event, bool _down) {
|
||||||
|
return false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user