[DEBUG] correction of debug and expand of sizer

This commit is contained in:
Edouard DUPIN 2013-04-16 21:12:20 +02:00
parent 87676f657a
commit a5451a9f7f
20 changed files with 84 additions and 27 deletions

2
external/etk vendored

@ -1 +1 @@
Subproject commit dffd6233d37dd886f910ca95d9f176724b6fc4ff
Subproject commit 4ffe6c34272127f822d6643273a471a0074e7743

View File

@ -9,6 +9,9 @@
#include <ewol/Dimension.h>
#include <ewol/debug.h>
#undef __class__
#define __class__ "Dimension"
// ratio in milimeter :
static vec2 ratio(9999999,888888);
static vec2 invRatio(1,1);

View File

@ -153,7 +153,12 @@ void ewol::EObject::GenerateEventId(const char * generateEventId, const etk::USt
// if we find the event ...
if (m_externEvent[iii]->localEventId == generateEventId) {
if (NULL != m_externEvent[iii]->destEObject) {
if (m_externEvent[iii]->overloadData.Size()<=0){
m_externEvent[iii]->destEObject->OnReceiveMessage(this, m_externEvent[iii]->destEventId, data);
} else {
// set the user requested data ...
m_externEvent[iii]->destEObject->OnReceiveMessage(this, m_externEvent[iii]->destEventId, m_externEvent[iii]->overloadData);
}
}
}
}
@ -177,7 +182,7 @@ void ewol::EObject::RegisterMultiCast(const char* const messageId)
MultiCastAdd(this, messageId);
}
void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const char * eventId, const char * eventIdgenerated)
void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const char * eventId, const char * eventIdgenerated, const etk::UString& overloadData)
{
if (NULL == destinationObject) {
EWOL_ERROR("Input ERROR NULL pointer EObject ...");
@ -216,6 +221,7 @@ void ewol::EObject::RegisterOnEvent(ewol::EObject * destinationObject, const cha
}
tmpEvent->localEventId = eventId;
tmpEvent->destEObject = destinationObject;
tmpEvent->overloadData = overloadData;
if (NULL != eventIdgenerated) {
tmpEvent->destEventId = eventIdgenerated;
} else {

View File

@ -29,6 +29,7 @@ namespace ewol {
const char* localEventId; //!< local event Id generation
ewol::EObject* destEObject; //!< destination widget that might be call
const char* destEventId; //!< Generated event ID on the distant widget
etk::UString overloadData; //!< sometimes the user prefer to receive some specific data on an event (instead of the one sed by the widget)
};
/**
@ -107,8 +108,9 @@ namespace ewol {
* @param[in] destinationObject pointer on the object that might be call when an event is generated
* @param[in] eventId Event generate inside the object
* @param[in] eventIdgenerated event generated when call the distant EObject.OnReceiveMessage(...)
* @param[in] overloadData When the user prever to receive a data specificly for this event ...
*/
void RegisterOnEvent(ewol::EObject * destinationObject, const char * eventId, const char * eventIdgenerated = NULL);
void RegisterOnEvent(ewol::EObject * destinationObject, const char * eventId, const char * eventIdgenerated = NULL, const etk::UString& overloadData="");
/**
* @brief Inform object that an other object is removed ...

View File

@ -236,21 +236,21 @@ void ewol::openGL::UpdateAllFlags(void)
void ewol::openGL::ActiveTexture(uint32_t flagID)
{
if (l_programId>0) {
if (l_programId>=0) {
glActiveTexture(flagID);
}
}
void ewol::openGL::DesActiveTexture(uint32_t flagID)
{
if (l_programId>0) {
if (l_programId>=0) {
}
}
void ewol::openGL::DrawArrays(uint32_t mode, int32_t first, int32_t count)
{
if (l_programId>0) {
if (l_programId>=0) {
UpdateAllFlags();
glDrawArrays(mode, first, count);
}
@ -258,7 +258,7 @@ void ewol::openGL::DrawArrays(uint32_t mode, int32_t first, int32_t count)
void ewol::openGL::DrawElements(uint32_t mode, const etk::Vector<uint32_t>& indices)
{
if (l_programId>0) {
if (l_programId>=0) {
UpdateAllFlags();
//EWOL_DEBUG("Request draw of " << indices.Size() << "elements");
glDrawElements(mode, indices.Size(), GL_UNSIGNED_INT, &indices[0]);
@ -267,7 +267,7 @@ void ewol::openGL::DrawElements(uint32_t mode, const etk::Vector<uint32_t>& indi
void ewol::openGL::DrawElements16(uint32_t mode, const etk::Vector<uint16_t>& indices)
{
if (l_programId>0) {
if (l_programId>=0) {
UpdateAllFlags();
glDrawElements(mode, indices.Size(), GL_UNSIGNED_SHORT, &indices[0]);
}
@ -275,7 +275,7 @@ void ewol::openGL::DrawElements16(uint32_t mode, const etk::Vector<uint16_t>& in
void ewol::openGL::DrawElements8(uint32_t mode, const etk::Vector<uint8_t>& indices)
{
if (l_programId>0) {
if (l_programId>=0) {
UpdateAllFlags();
glDrawElements(mode, indices.Size(), GL_UNSIGNED_BYTE, &indices[0]);
}
@ -284,7 +284,11 @@ void ewol::openGL::DrawElements8(uint32_t mode, const etk::Vector<uint8_t>& indi
void ewol::openGL::UseProgram(int32_t id)
{
// note : program at -1 mean that no use of a program on open GL (here we did not use it ) when 0 ==> program error ...
//EWOL_DEBUG("USE prog : " << id);
#if 1
// note : In normal openGL case, the system might call with the program ID and at the end with 0,
// here, we wrap this use to prevent over call of glUseProgram ==> then we set -1 when the
// user no more use this program, and just stop grnerating. (chen 0 ==> this is an errored program ...
if (-1==id) {
// not used ==> because it is unneded
return;
@ -293,6 +297,14 @@ void ewol::openGL::UseProgram(int32_t id)
l_programId = id;
glUseProgram(l_programId);
}
#else
if (-1==id) {
glUseProgram(0);
} else {
l_programId = id;
glUseProgram(id);
}
#endif
}

View File

@ -10,6 +10,9 @@
#include <ewol/renderer/resources/Colored3DObject.h>
#include <ewol/renderer/ResourceManager.h>
#undef __class__
#define __class__ "Colored3DObject"
ewol::Colored3DObject::Colored3DObject(etk::UString genName) :
ewol::Resource(genName),

View File

@ -10,6 +10,9 @@
#include <ewol/debug.h>
#include <ewol/renderer/resources/ConfigFile.h>
#undef __class__
#define __class__ "ConfigFile"
void ewol::SimpleConfigElement::Parse(const etk::UString& value)
{

View File

@ -19,7 +19,7 @@
#undef __class__
#define __class__ "ewol::FontFreeType"
#define __class__ "FontFreeType"
// free Font hnadle of librairies ... entry for acces ...

View File

@ -20,6 +20,8 @@
#include <ewol/renderer/resources/image/ImageBMP.h>
#include <ewol/renderer/resources/image/ImagePNG.h>
#undef __class__
#define __class__ "TextureFile"
ewol::TextureFile::TextureFile(etk::UString genName, etk::UString tmpfileName, ivec2 size) :
Texture(genName)

View File

@ -10,6 +10,9 @@
#include <ewol/renderer/resources/Mesh.h>
#include <ewol/renderer/ResourceManager.h>
#undef __class__
#define __class__ "Mesh"
typedef enum {
VERTEX_OLD,
VERTEX_CENTER_FACE,

View File

@ -14,6 +14,8 @@
#include <ewol/renderer/ResourceManager.h>
#include <ewol/renderer/resources/MeshObj.h>
#undef __class__
#define __class__ "MeshObj"
ewol::MeshObj::MeshObj(etk::UString _fileName) :
ewol::Mesh(_fileName)

View File

@ -16,6 +16,9 @@
//#define LOCAL_DEBUG EWOL_VERBOSE
#define LOCAL_DEBUG EWOL_DEBUG
#undef __class__
#define __class__ "Program"
ewol::Program::Program(const etk::UString& filename) :
ewol::Resource(filename),
m_exist(false),
@ -177,6 +180,7 @@ void ewol::Program::UpdateContext(void)
checkGlError("glCreateProgram", __LINE__);
return;
}
EWOL_DEBUG("Create program with oglID=" << m_program);
// first attach vertex shader, and after fragment shader
for (int32_t iii=0; iii<m_shaderList.Size(); iii++) {
if (NULL != m_shaderList[iii]) {

View File

@ -12,6 +12,8 @@
#include <ewol/renderer/resources/Shader.h>
#undef __class__
#define __class__ "Shader"
ewol::Shader::Shader(const etk::UString& filename):
ewol::Resource(filename),

View File

@ -16,6 +16,8 @@
#include <ewol/renderer/resources/Texture.h>
#undef __class__
#define __class__ "Texture"
/**
* @brief get the next power 2 if the input

View File

@ -16,6 +16,8 @@
#include <ewol/renderer/resources/font/FontBase.h>
#include <ewol/renderer/resources/TexturedFont.h>
#undef __class__
#define __class__ "TexturedFont"
static int32_t nextP2(int32_t value)
{

View File

@ -11,6 +11,9 @@
#include <ewol/renderer/ResourceManager.h>
#include <ewol/renderer/resources/VirtualBufferObject.h>
#undef __class__
#define __class__ "VirtualBufferObject"
ewol::VirtualBufferObject::VirtualBufferObject(const etk::UString& accesMode):
ewol::Resource(),
m_exist(false)

View File

@ -12,6 +12,10 @@
#include <ewol/widget/WidgetManager.h>
#undef __class__
#define __class__ "Container"
widget::Container::Container(ewol::Widget* subElement) :
m_subWidget(subElement)
{

View File

@ -11,6 +11,9 @@
#include <ewol/widget/ContainerN.h>
#include <ewol/widget/WidgetManager.h>
#undef __class__
#define __class__ "ContainerN"
widget::ContainerN::ContainerN(void) :
m_lockExpand(false,false),
@ -33,11 +36,12 @@ bvec2 widget::ContainerN::CanExpand(void)
res.setX(true);
}
}
if (false==m_lockExpand.x()) {
if (true==m_subExpend.x()) {
res.setX(false);
if (false==m_lockExpand.y()) {
if (true==m_subExpend.y()) {
res.setY(true);
}
}
//EWOL_DEBUG("Expend check : user=" << m_userExpand << " lock=" << m_lockExpand << " sub=" << m_subExpend << " res=" << res);
return res;
}

View File

@ -41,7 +41,7 @@ namespace widget
*/
void LockExpand(const bvec2& lockExpand);
// herited function
bvec2 CanExpand(void);
virtual bvec2 CanExpand(void);
public:
/**
* @brief Remove all sub element from the widget.

View File

@ -140,7 +140,7 @@ void widget::Sizer::CalculateSize(const vec2& availlable)
void widget::Sizer::CalculateMinMaxSize(void)
{
//EWOL_DEBUG("[" << GetId() << "] Update minimum Size");
m_userExpand.setValue(false, false);
m_subExpend.setValue(false, false);
m_minSize = m_userMinSize.GetPixel();
vec2 tmpBorderSize = m_borderSize.GetPixel();
@ -149,10 +149,10 @@ void widget::Sizer::CalculateMinMaxSize(void)
if (NULL != m_subWidget[iii]) {
m_subWidget[iii]->CalculateMinMaxSize();
if (true == m_subWidget[iii]->CanExpand().x()) {
m_userExpand.setX(true);
m_subExpend.setX(true);
}
if (true == m_subWidget[iii]->CanExpand().y()) {
m_userExpand.setY(true);
m_subExpend.setY(true);
}
vec2 tmpSize = m_subWidget[iii]->GetCalculateMinSize();
//EWOL_DEBUG("[" << GetId() << "] NewMinSize=" << tmpSize);