Rework of EWOL (Step 2)
This commit is contained in:
parent
87f4cb08e6
commit
187aaa2101
@ -26,6 +26,99 @@
|
||||
#include <ewol/EObjectManager.h>
|
||||
#include <ewol/Debug.h>
|
||||
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "ewol::EObjectMessageMultiCast"
|
||||
|
||||
extern "C" {
|
||||
typedef struct {
|
||||
const char* message;
|
||||
ewol::EObject* object;
|
||||
} messageList_ts;
|
||||
};
|
||||
|
||||
|
||||
// internal element of the widget manager :
|
||||
static etk::VectorType<messageList_ts> m_messageList; // all widget allocated ==> all time increment ... never removed ...
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::Init(void)
|
||||
{
|
||||
EWOL_INFO("EObject message Multi-Cast");
|
||||
m_messageList.Clear();
|
||||
}
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::UnInit(void)
|
||||
{
|
||||
EWOL_INFO("EObject message Multi-Cast");
|
||||
m_messageList.Clear();
|
||||
}
|
||||
|
||||
|
||||
static void MultiCastAdd(ewol::EObject* object, const char* const message)
|
||||
{
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("Add with NULL object");
|
||||
return;
|
||||
}
|
||||
if (NULL == message) {
|
||||
EWOL_ERROR("Add with NULL Message");
|
||||
return;
|
||||
}
|
||||
messageList_ts tmpMessage;
|
||||
tmpMessage.object = object;
|
||||
tmpMessage.message = message;
|
||||
m_messageList.PushBack(tmpMessage);
|
||||
EWOL_DEBUG("SendMulticast ADD listener :" << object->GetId() << " on \"" << message << "\"" );
|
||||
}
|
||||
|
||||
|
||||
static void MultiCastRm(ewol::EObject* object)
|
||||
{
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("Rm with NULL object");
|
||||
return;
|
||||
}
|
||||
// send the message at all registered widget ...
|
||||
for (int32_t iii=m_messageList.Size(); iii>=0; iii--) {
|
||||
if(m_messageList[iii].object == object) {
|
||||
EWOL_DEBUG("SendMulticast RM listener :" << object->GetId());
|
||||
m_messageList[iii].message = NULL;
|
||||
m_messageList[iii].object = NULL;
|
||||
m_messageList.Erase(iii);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void MultiCastSend(ewol::EObject* object, const char* const message, etk::UString& data)
|
||||
{
|
||||
EWOL_DEBUG("SendMulticast message \"" << message << "\" data=\"" << data << "\" to :");
|
||||
|
||||
// send the message at all registered widget ...
|
||||
for (int32_t iii=0; iii<m_messageList.Size(); iii++) {
|
||||
if( m_messageList[iii].message == message
|
||||
&& m_messageList[iii].object != object)
|
||||
{
|
||||
if (NULL != m_messageList[iii].object) {
|
||||
EWOL_DEBUG(" id = " << m_messageList[iii].object->GetId());
|
||||
// generate event ...
|
||||
m_messageList[iii].object->OnReceiveMessage(object, m_messageList[iii].message, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::EObjectMessageMultiCast::AnonymousSend(const char* const messageId, etk::UString& data)
|
||||
{
|
||||
MultiCastSend(NULL, messageId, data);
|
||||
}
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "ewol::EObject"
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Constructor
|
||||
*/
|
||||
@ -44,6 +137,7 @@ ewol::EObject::EObject(void)
|
||||
ewol::EObject::~EObject(void)
|
||||
{
|
||||
ewol::EObjectManager::Rm(this);
|
||||
MultiCastRm(this);
|
||||
EWOL_DEBUG("delete EObject : [" << m_uniqueId << "]");
|
||||
for (int32_t iii=0; iii<m_externEvent.Size(); iii++) {
|
||||
if (NULL!=m_externEvent[iii]) {
|
||||
@ -101,6 +195,38 @@ void ewol::EObject::GenerateEventId(const char * generateEventId)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Generate Multicast event on all EObject requested the event
|
||||
* @param[in] messageId Event Id that is generated
|
||||
* @param[in] data Interger which is transform in etk::UString
|
||||
* @return ---
|
||||
*/
|
||||
void ewol::EObject::SendMultiCast(const char* const messageId, int32_t data)
|
||||
{
|
||||
etk::UString tmpData(data);
|
||||
MultiCastSend(this, messageId, tmpData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Generate Multicast event on all EObject requested the event
|
||||
* @param[in] messageId Event Id that is generated
|
||||
* @param[in] data String that is send at all the destinations
|
||||
* @return ---
|
||||
*/
|
||||
void ewol::EObject::SendMultiCast(const char* const messageId, etk::UString& data)
|
||||
{
|
||||
MultiCastSend(this, messageId, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Register of the arrival of a Multicast message
|
||||
* @param[in] messageId Event Id waiting for...
|
||||
* @return ---
|
||||
*/
|
||||
void ewol::EObject::RegisterMultiCast(const char* const messageId)
|
||||
{
|
||||
MultiCastAdd(this, messageId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Register an EObject over an other to get event on the second...
|
||||
|
@ -30,6 +30,12 @@
|
||||
#include <etk/VectorType.h>
|
||||
|
||||
namespace ewol {
|
||||
namespace EObjectMessageMultiCast {
|
||||
void Init( void);
|
||||
void UnInit(void);
|
||||
void AnonymousSend(const char* const messageId, etk::UString& data);
|
||||
};
|
||||
|
||||
|
||||
class EObject;
|
||||
/**
|
||||
@ -86,6 +92,29 @@ namespace ewol {
|
||||
* @return ---
|
||||
*/
|
||||
void GenerateEventId(const char * generateEventId);
|
||||
|
||||
/**
|
||||
* @brief Generate Multicast event on all EObject requested the event
|
||||
* @param[in] messageId Event Id that is generated
|
||||
* @param[in] data Interger which is transform in etk::UString
|
||||
* @return ---
|
||||
*/
|
||||
void SendMultiCast(const char* const messageId, int32_t data);
|
||||
|
||||
/**
|
||||
* @brief Generate Multicast event on all EObject requested the event
|
||||
* @param[in] messageId Event Id that is generated
|
||||
* @param[in] data String that is send at all the destinations
|
||||
* @return ---
|
||||
*/
|
||||
void SendMultiCast(const char* const messageId, etk::UString& data);
|
||||
|
||||
/**
|
||||
* @brief Register of the arrival of a Multicast message
|
||||
* @param[in] messageId Event Id waiting for...
|
||||
* @return ---
|
||||
*/
|
||||
void RegisterMultiCast(const char* const messageId);
|
||||
public:
|
||||
/**
|
||||
* @brief Register an EObject over an other to get event on the second...
|
||||
|
@ -1,116 +0,0 @@
|
||||
/**
|
||||
*******************************************************************************
|
||||
* @file ewol/WidgetMessageMultiCast.cpp
|
||||
* @brief basic ewol Widget Message Multi-cast (Sources)
|
||||
* @author Edouard DUPIN
|
||||
* @date 31/01/2012
|
||||
* @par Project
|
||||
* ewol
|
||||
*
|
||||
* @par Copyright
|
||||
* Copyright 2011 Edouard DUPIN, all right reserved
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY.
|
||||
*
|
||||
* Licence summary :
|
||||
* You can modify and redistribute the sources code and binaries.
|
||||
* You can send me the bug-fix
|
||||
*
|
||||
* Term of the licence in in the file licence.txt.
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include <ewol/EObjectMessageMulticast.h>
|
||||
#include <ewol/EObjectManager.h>
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "ewol::EObjectMessageMultiCast"
|
||||
|
||||
extern "C" {
|
||||
typedef struct {
|
||||
const char* message;
|
||||
ewol::EObject* object;
|
||||
} messageList_ts;
|
||||
};
|
||||
|
||||
|
||||
// internal element of the widget manager :
|
||||
static etk::VectorType<messageList_ts> m_messageList; // all widget allocated ==> all time increment ... never removed ...
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::Init(void)
|
||||
{
|
||||
EWOL_INFO("EObject message Multi-Cast");
|
||||
}
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::UnInit(void)
|
||||
{
|
||||
EWOL_INFO("EObject message Multi-Cast");
|
||||
m_messageList.Clear();
|
||||
}
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::Add(ewol::EObject* object, const char* const message)
|
||||
{
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("Add with NULL object");
|
||||
return;
|
||||
}
|
||||
if (NULL == message) {
|
||||
EWOL_ERROR("Add with NULL Message");
|
||||
return;
|
||||
}
|
||||
messageList_ts tmpMessage;
|
||||
tmpMessage.object = object;
|
||||
tmpMessage.message = message;
|
||||
m_messageList.PushBack(tmpMessage);
|
||||
EWOL_DEBUG("SendMulticast ADD listener :" << object->GetId() << " on \"" << message << "\"" );
|
||||
}
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::Rm(ewol::EObject* object)
|
||||
{
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("Rm with NULL object");
|
||||
return;
|
||||
}
|
||||
// send the message at all registered widget ...
|
||||
for (int32_t iii=m_messageList.Size(); iii>=0; iii--) {
|
||||
if(m_messageList[iii].object == object) {
|
||||
EWOL_DEBUG("SendMulticast RM listener :" << object->GetId());
|
||||
m_messageList[iii].message = NULL;
|
||||
m_messageList[iii].object = NULL;
|
||||
m_messageList.Erase(iii);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::EObjectMessageMultiCast::Send(ewol::EObject* object, const char* const message, int32_t data)
|
||||
{
|
||||
etk::UString tmpData(data);
|
||||
Send(object, message, tmpData);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ewol::EObjectMessageMultiCast::Send(ewol::EObject* object, const char* const message, etk::UString& data)
|
||||
{
|
||||
EWOL_DEBUG("SendMulticast message \"" << message << "\" data=\"" << data << "\" to :");
|
||||
|
||||
// send the message at all registered widget ...
|
||||
for (int32_t iii=0; iii<m_messageList.Size(); iii++) {
|
||||
if( m_messageList[iii].message == message
|
||||
&& m_messageList[iii].object != object)
|
||||
{
|
||||
if (NULL != m_messageList[iii].object) {
|
||||
EWOL_DEBUG(" id = " << m_messageList[iii].object->GetId());
|
||||
// generate event ...
|
||||
m_messageList[iii].object->OnReceiveMessage(object, m_messageList[iii].message, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,47 +0,0 @@
|
||||
/**
|
||||
*******************************************************************************
|
||||
* @file ewol/WidgetMessageMultiCast.h
|
||||
* @brief basic ewol Widget Message Multi-cast (Header)
|
||||
* @author Edouard DUPIN
|
||||
* @date 31/01/2012
|
||||
* @par Project
|
||||
* ewol
|
||||
*
|
||||
* @par Copyright
|
||||
* Copyright 2011 Edouard DUPIN, all right reserved
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY.
|
||||
*
|
||||
* Licence summary :
|
||||
* You can modify and redistribute the sources code and binaries.
|
||||
* You can send me the bug-fix
|
||||
*
|
||||
* Term of the licence in in the file licence.txt.
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __EWOL_E_OBJECT_MESSAGE_MULTIICAST_H__
|
||||
#define __EWOL_E_OBJECT_MESSAGE_MULTIICAST_H__
|
||||
|
||||
#include <etk/Types.h>
|
||||
#include <ewol/Debug.h>
|
||||
#include <ewol/OObject.h>
|
||||
#include <etk/VectorType.h>
|
||||
#include <ewol/EObject.h>
|
||||
#include <etk/UString.h>
|
||||
|
||||
namespace ewol {
|
||||
namespace EObjectMessageMultiCast {
|
||||
void Init( void);
|
||||
void UnInit(void);
|
||||
void Add( ewol::EObject* object, const char* const message);
|
||||
void Rm( ewol::EObject* object);
|
||||
void Send(ewol::EObject* object, const char* const message, int32_t data);
|
||||
void Send(ewol::EObject* object, const char* const message, etk::UString& data);
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
|
||||
#include <ewol/ShortCutManager.h>
|
||||
#include <ewol/EObjectMessageMulticast.h>
|
||||
#include <ewol/EObject.h>
|
||||
#include <ewol/ewol.h>
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ bool ewol::shortCut::Process(bool shift, bool control, bool alt, bool meta, uniC
|
||||
&& l_inputShortCutEvent[iii]->UnicodeValue == unicodeValue)
|
||||
{
|
||||
if (isDown) {
|
||||
ewol::EObjectMessageMultiCast::Send(NULL, l_inputShortCutEvent[iii]->generateEventId, l_inputShortCutEvent[iii]->eventData);
|
||||
ewol::EObjectMessageMultiCast::AnonymousSend(l_inputShortCutEvent[iii]->generateEventId, l_inputShortCutEvent[iii]->eventData);
|
||||
} // no else
|
||||
return true;
|
||||
}
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include <ewol/Widget.h>
|
||||
#include <ewol/EObjectManager.h>
|
||||
#include <ewol/WidgetManager.h>
|
||||
#include <ewol/EObjectMessageMulticast.h>
|
||||
#include <ewol/ewol.h>
|
||||
#include <ewol/importgl.h>
|
||||
|
||||
|
@ -289,3 +289,34 @@ void ewol::Windows::OnFlipFlopEvent(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Inform object that an other object is removed ...
|
||||
* @param[in] removeObject Pointer on the EObject remeved ==> the user must remove all reference on this EObject
|
||||
* @note : Sub classes must call this class
|
||||
* @return ---
|
||||
*/
|
||||
void ewol::Windows::OnObjectRemove(ewol::EObject * removeObject)
|
||||
{
|
||||
// First step call parrent :
|
||||
ewol::Widget::OnObjectRemove(removeObject);
|
||||
// second strep find if in alll the elements ...
|
||||
|
||||
if (m_subWidget[m_currentCreateId] == removeObject) {
|
||||
EWOL_DEBUG("Remove main element of the windows ==> destroyed object");
|
||||
m_subWidget[m_currentCreateId] = NULL;
|
||||
}
|
||||
for(int32_t iii=m_popUpWidgetList[m_currentCreateId].Size(); iii>=0; iii--) {
|
||||
if(m_popUpWidgetList[m_currentCreateId][iii] == removeObject) {
|
||||
EWOL_DEBUG("Remove Pop-up [" << iii << "] element of the windows ==> destroyed object");
|
||||
m_popUpWidgetList[m_currentCreateId][iii] = NULL;
|
||||
m_popUpWidgetList[m_currentCreateId].Erase(iii);
|
||||
}
|
||||
}
|
||||
if (m_keyBoardwidget == removeObject) {
|
||||
EWOL_DEBUG("Remove Keyboard element of the windows ==> destroyed object");
|
||||
m_keyBoardwidget = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,6 +69,7 @@ namespace ewol {
|
||||
private:
|
||||
ewol::Widget* m_subWidget[NB_BOUBLE_BUFFER];
|
||||
etk::VectorType<ewol::Widget*> m_popUpWidgetList[NB_BOUBLE_BUFFER];
|
||||
// TODO : Add flip flop ...
|
||||
ewol::Keyboard* m_keyBoardwidget;
|
||||
public:
|
||||
void SetSubWidget(ewol::Widget * widget);
|
||||
@ -81,6 +82,13 @@ namespace ewol {
|
||||
void KeyboardShow(ewol::keyboardMode_te mode);
|
||||
void KeyboardHide(void);
|
||||
virtual void OnFlipFlopEvent(void);
|
||||
/**
|
||||
* @brief Inform object that an other object is removed ...
|
||||
* @param[in] removeObject Pointer on the EObject remeved ==> the user must remove all reference on this EObject
|
||||
* @note : Sub classes must call this class
|
||||
* @return ---
|
||||
*/
|
||||
virtual void OnObjectRemove(ewol::EObject * removeObject);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -102,7 +102,8 @@ static void* BaseAppEntry(void* param)
|
||||
pthread_getschedparam(pthread_self(), &policy, &pr);
|
||||
EWOL_INFO("Child Thread Up PL" << policy << " PRI" << pr.sched_priority); //The result Set
|
||||
*/
|
||||
|
||||
|
||||
ewol::EObjectMessageMultiCast::Init();
|
||||
ewol::widgetManager::Init();
|
||||
ewol::texture::Init();
|
||||
ewol::theme::Init();
|
||||
@ -195,6 +196,7 @@ static void* BaseAppEntry(void* param)
|
||||
ewol::texture::UnInit();
|
||||
ewol::UnInitFont();
|
||||
ewol::widgetManager::UnInit();
|
||||
ewol::EObjectMessageMultiCast::UnInit();
|
||||
ewol::theme::UnInit();
|
||||
EWOL_DEBUG("==> Un-Init BThread (END)");
|
||||
pthread_exit(NULL);
|
||||
|
@ -74,6 +74,7 @@ void EWOL_NativeRegenerateDisplay(void)
|
||||
gui_uniqueWindows->OnRegenerateDisplay();
|
||||
ewol::widgetManager::DoubleBufferLock();
|
||||
gui_uniqueWindows->OnFlipFlopEvent();
|
||||
ewol::widgetManager::SetDoubleBufferNeedDraw();
|
||||
ewol::widgetManager::DoubleBufferUnLock();
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include <ewol/widget/ContextMenu.h>
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "ewol::ContextMenu"
|
||||
#define __class__ "ContextMenu"
|
||||
|
||||
ewol::ContextMenu::ContextMenu(void)
|
||||
{
|
||||
@ -57,28 +57,25 @@ ewol::ContextMenu::ContextMenu(void)
|
||||
|
||||
ewol::ContextMenu::~ContextMenu(void)
|
||||
{
|
||||
/*
|
||||
SubWidgetRemove();
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
bool ewol::ContextMenu::CalculateSize(etkFloat_t availlableX, etkFloat_t availlableY)
|
||||
{
|
||||
/*
|
||||
EWOL_DEBUG("CalculateSize(" << availlableX << "," << availlableY << ")");
|
||||
// pop-up fill all the display :
|
||||
m_size.x = availlableX;
|
||||
m_size.y = availlableY;
|
||||
|
||||
if (NULL != m_subWidget) {
|
||||
if (NULL != m_subWidget[m_currentCreateId]) {
|
||||
coord2D_ts subWidgetSize;
|
||||
coord2D_ts subWidgetOrigin;
|
||||
subWidgetSize = m_subWidget->GetMinSize();
|
||||
if (true == m_subWidget->CanExpentX()) {
|
||||
subWidgetSize = m_subWidget[m_currentCreateId]->GetMinSize();
|
||||
if (true == m_subWidget[m_currentCreateId]->CanExpentX()) {
|
||||
subWidgetSize.x = m_size.x;
|
||||
}
|
||||
if (true == m_subWidget->CanExpentY()) {
|
||||
if (true == m_subWidget[m_currentCreateId]->CanExpentY()) {
|
||||
subWidgetSize.y = m_size.y;
|
||||
}
|
||||
int32_t minWidth = 100;
|
||||
@ -128,32 +125,29 @@ bool ewol::ContextMenu::CalculateSize(etkFloat_t availlableX, etkFloat_t availla
|
||||
}
|
||||
break;
|
||||
}
|
||||
m_subWidget->SetOrigin(subWidgetOrigin.x, subWidgetOrigin.y);
|
||||
m_subWidget->CalculateSize(subWidgetSize.x, subWidgetSize.y);
|
||||
m_subWidget[m_currentCreateId]->SetOrigin(subWidgetOrigin.x, subWidgetOrigin.y);
|
||||
m_subWidget[m_currentCreateId]->CalculateSize(subWidgetSize.x, subWidgetSize.y);
|
||||
}
|
||||
MarkToReedraw();
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool ewol::ContextMenu::CalculateMinSize(void)
|
||||
{
|
||||
/*
|
||||
EWOL_DEBUG("CalculateMinSize");
|
||||
m_userExpendX=false;
|
||||
m_userExpendY=false;
|
||||
m_minSize.x = 50.0;
|
||||
m_minSize.y = 50.0;
|
||||
if (NULL != m_subWidget) {
|
||||
m_subWidget->CalculateMinSize();
|
||||
coord2D_ts tmpSize = m_subWidget->GetMinSize();
|
||||
if (NULL != m_subWidget[m_currentCreateId]) {
|
||||
m_subWidget[m_currentCreateId]->CalculateMinSize();
|
||||
coord2D_ts tmpSize = m_subWidget[m_currentCreateId]->GetMinSize();
|
||||
m_minSize.x = tmpSize.x;
|
||||
m_minSize.y = tmpSize.y;
|
||||
}
|
||||
EWOL_DEBUG("CalculateMinSize(" << m_minSize.x << "," << m_minSize.y << ")");
|
||||
MarkToReedraw();
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -175,41 +169,34 @@ void ewol::ContextMenu::SetExpendY(bool newExpend)
|
||||
|
||||
void ewol::ContextMenu::SubWidgetSet(ewol::Widget* newWidget)
|
||||
{
|
||||
/*
|
||||
if (NULL == newWidget) {
|
||||
return;
|
||||
}
|
||||
m_subWidget = newWidget;
|
||||
newWidget->SetParrent(this);
|
||||
*/
|
||||
m_subWidget[m_currentCreateId] = newWidget;
|
||||
}
|
||||
|
||||
|
||||
void ewol::ContextMenu::SubWidgetRemove(void)
|
||||
{
|
||||
/*
|
||||
if (NULL != m_subWidget) {
|
||||
ewol::widgetManager::MarkWidgetToBeRemoved(m_subWidget);
|
||||
m_subWidget = NULL;
|
||||
if (NULL != m_subWidget[m_currentCreateId]) {
|
||||
m_subWidget[m_currentCreateId]->MarkToRemove();
|
||||
m_subWidget[m_currentCreateId] = NULL;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
bool ewol::ContextMenu::OnDraw(void)
|
||||
{
|
||||
/*
|
||||
EWOL_DEBUG("On Draw " << m_currentDrawId);
|
||||
ewol::Drawable::OnDraw();
|
||||
if (NULL != m_subWidget) {
|
||||
m_subWidget->GenDraw();
|
||||
if (NULL != m_subWidget[m_currentDrawId]) {
|
||||
m_subWidget[m_currentDrawId]->GenDraw();
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void ewol::ContextMenu::OnRegenerateDisplay(void)
|
||||
{
|
||||
/*
|
||||
if (true == NeedRedraw()) {
|
||||
}
|
||||
// generate a white background and take gray on other surfaces
|
||||
@ -217,9 +204,9 @@ void ewol::ContextMenu::OnRegenerateDisplay(void)
|
||||
ewol::OObject2DColored * BGOObjects = new ewol::OObject2DColored();
|
||||
AddOObject(BGOObjects);
|
||||
|
||||
if (NULL != m_subWidget) {
|
||||
coord2D_ts tmpSize = m_subWidget->GetSize();
|
||||
coord2D_ts tmpOrigin = m_subWidget->GetOrigin();
|
||||
if (NULL != m_subWidget[m_currentCreateId]) {
|
||||
coord2D_ts tmpSize = m_subWidget[m_currentCreateId]->GetSize();
|
||||
coord2D_ts tmpOrigin = m_subWidget[m_currentCreateId]->GetOrigin();
|
||||
|
||||
// display border ...
|
||||
BGOObjects->SetColor(m_colorBorder);
|
||||
@ -250,23 +237,21 @@ void ewol::ContextMenu::OnRegenerateDisplay(void)
|
||||
BGOObjects->SetColor(m_colorBackGroung);
|
||||
BGOObjects->Rectangle(tmpOrigin.x, tmpOrigin.y, tmpSize.x, tmpSize.y);
|
||||
}
|
||||
if (NULL != m_subWidget) {
|
||||
m_subWidget->OnRegenerateDisplay();
|
||||
if (NULL != m_subWidget[m_currentCreateId]) {
|
||||
m_subWidget[m_currentCreateId]->OnRegenerateDisplay();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
bool ewol::ContextMenu::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, eventPosition_ts pos)
|
||||
{
|
||||
/*
|
||||
if (NULL != m_subWidget) {
|
||||
coord2D_ts tmpSize = m_subWidget->GetSize();
|
||||
coord2D_ts tmpOrigin = m_subWidget->GetOrigin();
|
||||
if (NULL != m_subWidget[m_currentCreateId]) {
|
||||
coord2D_ts tmpSize = m_subWidget[m_currentCreateId]->GetSize();
|
||||
coord2D_ts tmpOrigin = m_subWidget[m_currentCreateId]->GetOrigin();
|
||||
if( (tmpOrigin.x <= pos.local.x && tmpOrigin.x + tmpSize.x >= pos.local.x)
|
||||
&& (tmpOrigin.y <= pos.local.y && tmpOrigin.y + tmpSize.y >= pos.local.y) )
|
||||
{
|
||||
return m_subWidget->GenEventInput(IdInput, typeEvent, pos.abs);
|
||||
return m_subWidget[m_currentCreateId]->GenEventInput(IdInput, typeEvent, pos.abs);
|
||||
} else {
|
||||
//EWOL_INFO("Event ouside the context menu");
|
||||
if (IdInput > 0) {
|
||||
@ -278,23 +263,36 @@ bool ewol::ContextMenu::OnEventInput(int32_t IdInput, eventInputType_te typeEven
|
||||
|| typeEvent == ewol::EVENT_INPUT_TYPE_UP
|
||||
|| typeEvent == ewol::EVENT_INPUT_TYPE_ENTER
|
||||
|| typeEvent == ewol::EVENT_INPUT_TYPE_LEAVE ) {
|
||||
ewol::RmPopUp(GetWidgetId());
|
||||
// Auto-remove ...
|
||||
MarkToRemove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void ewol::ContextMenu::SetPositionMark(markPosition_te position, coord2D_ts arrowPos)
|
||||
{
|
||||
/*
|
||||
EWOL_DEBUG("set context menu at the position : (" << arrowPos.x << "," << arrowPos.y << ")");
|
||||
m_arrawBorder = position;
|
||||
m_arrowPos = arrowPos;
|
||||
MarkToReedraw();
|
||||
*/
|
||||
}
|
||||
|
||||
void ewol::ContextMenu::OnFlipFlopEvent(void)
|
||||
{
|
||||
EWOL_DEBUG("Flip-Flop");
|
||||
bool needFlipFlop = m_needFlipFlop;
|
||||
// call herited classes
|
||||
ewol::Drawable::OnFlipFlopEvent();
|
||||
// internal saving
|
||||
if (true == needFlipFlop) {
|
||||
m_subWidget[m_currentCreateId] = m_subWidget[m_currentDrawId];
|
||||
}
|
||||
// in every case, we propagate the flip-flop EVENT
|
||||
if (NULL != m_subWidget[m_currentDrawId]) {
|
||||
m_subWidget[m_currentDrawId]->OnFlipFlopEvent();
|
||||
}
|
||||
}
|
@ -56,7 +56,7 @@ namespace ewol {
|
||||
coord2D_ts m_arrowPos;
|
||||
etkFloat_t m_offset;
|
||||
markPosition_te m_arrawBorder;
|
||||
ewol::Widget* m_subWidget;
|
||||
ewol::Widget* m_subWidget[NB_BOUBLE_BUFFER];
|
||||
public:
|
||||
void SubWidgetSet(ewol::Widget* newWidget);
|
||||
void SubWidgetRemove(void);
|
||||
@ -67,6 +67,7 @@ namespace ewol {
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
public:
|
||||
virtual bool OnEventInput(int32_t IdInput, eventInputType_te typeEvent, eventPosition_ts pos);
|
||||
virtual void OnFlipFlopEvent(void);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
namespace ewol {
|
||||
|
||||
class Drawable : virtual public ewol::Widget {
|
||||
class Drawable : public ewol::Widget {
|
||||
public:
|
||||
Drawable(void);
|
||||
virtual ~Drawable(void);
|
||||
|
@ -50,7 +50,14 @@ ewol::List::List(void)
|
||||
|
||||
ewol::List::~List(void)
|
||||
{
|
||||
|
||||
//clean all the object
|
||||
for (int32_t jjj=0; jjj<NB_BOUBLE_BUFFER; jjj++) {
|
||||
for (int32_t iii=0; iii<m_listOObject[jjj].Size(); iii++) {
|
||||
delete(m_listOObject[jjj][iii]);
|
||||
m_listOObject[jjj][iii] = NULL;
|
||||
}
|
||||
m_listOObject[jjj].Clear();
|
||||
}
|
||||
}
|
||||
|
||||
bool ewol::List::CalculateMinSize(void)
|
||||
@ -67,6 +74,43 @@ bool ewol::List::CalculateMinSize(void)
|
||||
}
|
||||
|
||||
|
||||
void ewol::List::AddOObject(ewol::OObject* newObject, int32_t pos)
|
||||
{
|
||||
if (NULL == newObject) {
|
||||
EWOL_ERROR("Try to add an empty object in the Widget generic display system");
|
||||
return;
|
||||
}
|
||||
if (pos < 0 || pos >= m_listOObject[m_currentCreateId].Size() ) {
|
||||
m_listOObject[m_currentCreateId].PushBack(newObject);
|
||||
} else {
|
||||
m_listOObject[m_currentCreateId].Insert(pos, newObject);
|
||||
}
|
||||
m_needFlipFlop = true;
|
||||
}
|
||||
|
||||
|
||||
void ewol::List::ClearOObjectList(void)
|
||||
{
|
||||
for (int32_t iii=0; iii<m_listOObject[m_currentCreateId].Size(); iii++) {
|
||||
delete(m_listOObject[m_currentCreateId][iii]);
|
||||
m_listOObject[m_currentCreateId][iii] = NULL;
|
||||
}
|
||||
m_listOObject[m_currentCreateId].Clear();
|
||||
}
|
||||
|
||||
bool ewol::List::OnDraw(void)
|
||||
{
|
||||
for (int32_t iii=0; iii<m_listOObject[m_currentDrawId].Size(); iii++) {
|
||||
if (NULL != m_listOObject[m_currentDrawId][iii]) {
|
||||
m_listOObject[m_currentDrawId][iii]->Draw();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void ewol::List::OnRegenerateDisplay(void)
|
||||
{
|
||||
if (true == NeedRedraw()) {
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include <ewol/widget/Drawable.h>
|
||||
|
||||
namespace ewol {
|
||||
class List :public ewol::WidgetScrooled, ewol::Drawable
|
||||
class List :public ewol::WidgetScrooled
|
||||
{
|
||||
public:
|
||||
List(void);
|
||||
@ -39,6 +39,15 @@ namespace ewol {
|
||||
virtual ~List(void);
|
||||
virtual bool CalculateMinSize(void);
|
||||
void SetLabel(etk::UString newLabel);
|
||||
// Drawing capabilities ....
|
||||
private:
|
||||
etk::VectorType<ewol::OObject*> m_listOObject[NB_BOUBLE_BUFFER]; //!< generic element to display...
|
||||
public:
|
||||
void AddOObject(ewol::OObject* newObject, int32_t pos=-1);
|
||||
void ClearOObjectList(void);
|
||||
protected:
|
||||
virtual bool OnDraw(void);
|
||||
// list properties ...
|
||||
private:
|
||||
int32_t m_paddingSizeX;
|
||||
int32_t m_paddingSizeY;
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
#include <ewol/ewol.h>
|
||||
#include <ewol/EObjectMessageMulticast.h>
|
||||
#include <ewol/EObject.h>
|
||||
#include <ewol/WidgetManager.h>
|
||||
#include <ewol/widget/Menu.h>
|
||||
#include <ewol/widget/Button.h>
|
||||
@ -37,8 +37,8 @@
|
||||
|
||||
ewol::Menu::Menu(void)
|
||||
{
|
||||
m_staticPointer = NULL;
|
||||
m_widgetPopUp = NULL;
|
||||
m_staticId = 0;
|
||||
m_widgetContextMenu = NULL;
|
||||
}
|
||||
|
||||
ewol::Menu::~Menu(void)
|
||||
@ -68,7 +68,6 @@ void ewol::Menu::SubWidgetUnLink(ewol::Widget* newWidget)
|
||||
|
||||
void ewol::Menu::Clear(void)
|
||||
{
|
||||
/*
|
||||
for( int32_t iii=0; iii < m_listElement.Size(); iii++) {
|
||||
if (m_listElement[iii] != NULL) {
|
||||
delete(m_listElement[iii]);
|
||||
@ -76,7 +75,6 @@ void ewol::Menu::Clear(void)
|
||||
}
|
||||
}
|
||||
m_listElement.Clear();
|
||||
*/
|
||||
}
|
||||
|
||||
int32_t ewol::Menu::AddTitle(etk::UString label, etk::UString image, const char * generateEvent, const etk::UString message)
|
||||
@ -86,7 +84,6 @@ int32_t ewol::Menu::AddTitle(etk::UString label, etk::UString image, const char
|
||||
|
||||
int32_t ewol::Menu::Add(int32_t parent, etk::UString label, etk::UString image, const char * generateEvent, const etk::UString message)
|
||||
{
|
||||
/*
|
||||
ewol::MenuElement * tmpObject = new ewol::MenuElement();
|
||||
if (NULL == tmpObject) {
|
||||
EWOL_ERROR("Allocation problem");
|
||||
@ -94,7 +91,7 @@ int32_t ewol::Menu::Add(int32_t parent, etk::UString label, etk::UString image,
|
||||
}
|
||||
tmpObject->m_localId = m_staticId++;
|
||||
tmpObject->m_parentId = parent;
|
||||
tmpObject->m_widgetId = -1;
|
||||
tmpObject->m_widgetPointer = NULL;
|
||||
tmpObject->m_label = label;
|
||||
tmpObject->m_image = image;
|
||||
tmpObject->m_generateEvent = generateEvent;
|
||||
@ -108,12 +105,10 @@ int32_t ewol::Menu::Add(int32_t parent, etk::UString label, etk::UString image,
|
||||
return tmpObject->m_localId;;
|
||||
}
|
||||
ewol::SizerHori::SubWidgetAdd(myButton);
|
||||
myButton->ExternLinkOnEvent(ewolEventButtonPressed, GetWidgetId(), ewolEventButtonPressed);
|
||||
tmpObject->m_widgetId = myButton->GetWidgetId();
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonPressed, ewolEventButtonPressed);
|
||||
tmpObject->m_widgetPointer = myButton;
|
||||
}
|
||||
return tmpObject->m_localId;
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ewol::Menu::AddSpacer(void)
|
||||
@ -122,25 +117,37 @@ void ewol::Menu::AddSpacer(void)
|
||||
}
|
||||
|
||||
|
||||
bool ewol::Menu::OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y)
|
||||
/**
|
||||
* @brief Receive a message from an other EObject with a specific eventId and data
|
||||
* @param[in] CallerObject Pointer on the EObject that information came from
|
||||
* @param[in] eventId Message registered by this class
|
||||
* @param[in] data Data registered by this class
|
||||
* @return ---
|
||||
*/
|
||||
void ewol::Menu::OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data)
|
||||
{
|
||||
/*
|
||||
if (true == ewol::SizerHori::OnEventAreaExternal(widgetID, generateEventId, data, x, y)) {
|
||||
if (true == ewol::SizerHori::OnReceiveMessage(CallerObject, eventId, data)) {
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
/*
|
||||
if (NULL==data && generateEventId==ewolEventButtonPressed) {
|
||||
if (eventId == ewolEventButtonPressed) {
|
||||
for(int32_t iii=0; iii<m_listElement.Size(); iii++) {
|
||||
if (widgetID == m_listElement[iii]->m_widgetId) {
|
||||
// 2 posible case
|
||||
if (CallerObject == m_listElement[iii]->m_widgetPointer) {
|
||||
// 2 posible case (have a message or have a child ...
|
||||
if (m_listElement[iii]->m_generateEvent != NULL) {
|
||||
// TODO : Later ...
|
||||
//ewol::widgetMessageMultiCast::Send(GetWidgetId(), m_listElement[iii]->m_generateEvent, m_listElement[iii]->m_message);
|
||||
m_widgetPopUp->MarkToRemove();
|
||||
m_widgetPopUp = NULL;
|
||||
return true;
|
||||
} else {
|
||||
EWOL_DEBUG("Menu ==> Generate Event");
|
||||
// Send a multicast event ...
|
||||
SendMultiCast(m_listElement[iii]->m_generateEvent, m_listElement[iii]->m_message);
|
||||
/*
|
||||
if (NULL != m_widgetContextMenu) {
|
||||
m_widgetContextMenu->MarkToRemove();
|
||||
}
|
||||
*/
|
||||
m_widgetContextMenu = NULL;
|
||||
return;
|
||||
} else{
|
||||
EWOL_DEBUG("Menu ==> Load Sub Menu");
|
||||
bool findChild = false;
|
||||
for(int32_t jjj=0; jjj<m_listElement.Size(); jjj++) {
|
||||
if (m_listElement[iii]->m_localId == m_listElement[jjj]->m_parentId) {
|
||||
@ -150,19 +157,17 @@ bool ewol::Menu::OnEventAreaExternal(int32_t widgetID, const char * generateEven
|
||||
}
|
||||
if (false == findChild) {
|
||||
EWOL_WARNING("Event on menu element with no child an no event... label=" << m_listElement[iii]->m_label);
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
// create a context menu :
|
||||
ewol::ContextMenu * tmpWidget = new ewol::ContextMenu();
|
||||
if (NULL == tmpWidget) {
|
||||
m_widgetContextMenu = new ewol::ContextMenu();
|
||||
if (NULL == m_widgetContextMenu) {
|
||||
EWOL_ERROR("Allocation Error");
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
// Get the button widget :
|
||||
coord2D_ts newPosition;
|
||||
newPosition.x = x;
|
||||
newPosition.y = y;
|
||||
ewol::Widget * eventFromWidget = ewol::widgetManager::Get(widgetID);
|
||||
ewol::Widget * eventFromWidget = static_cast<ewol::Widget*>(CallerObject);
|
||||
if (NULL != eventFromWidget) {
|
||||
coord2D_ts tmpOri = eventFromWidget->GetOrigin();
|
||||
coord2D_ts tmpSize = eventFromWidget->GetSize();
|
||||
@ -171,7 +176,7 @@ bool ewol::Menu::OnEventAreaExternal(int32_t widgetID, const char * generateEven
|
||||
newPosition.y = tmpOri.y + tmpSize.y;
|
||||
}
|
||||
|
||||
tmpWidget->SetPositionMark(ewol::CONTEXT_MENU_MARK_TOP, newPosition );
|
||||
m_widgetContextMenu->SetPositionMark(ewol::CONTEXT_MENU_MARK_TOP, newPosition );
|
||||
|
||||
ewol::SizerVert * mySizerVert = NULL;
|
||||
ewol::Button * myButton = NULL;
|
||||
@ -179,7 +184,7 @@ bool ewol::Menu::OnEventAreaExternal(int32_t widgetID, const char * generateEven
|
||||
mySizerVert = new ewol::SizerVert();
|
||||
mySizerVert->LockExpendContamination(true);
|
||||
// set it in the pop-up-system :
|
||||
tmpWidget->SubWidgetSet(mySizerVert);
|
||||
m_widgetContextMenu->SubWidgetSet(mySizerVert);
|
||||
|
||||
for(int32_t jjj=0; jjj<m_listElement.Size(); jjj++) {
|
||||
if (m_listElement[iii]->m_localId == m_listElement[jjj]->m_parentId) {
|
||||
@ -195,13 +200,10 @@ bool ewol::Menu::OnEventAreaExternal(int32_t widgetID, const char * generateEven
|
||||
mySizerVert->SubWidgetAdd(myButton);
|
||||
}
|
||||
}
|
||||
m_staticPointer = tmpWidget;
|
||||
ewol::PopUpWidgetPush(m_staticPointer);
|
||||
ewol::PopUpWidgetPush(m_widgetContextMenu);
|
||||
}
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <ewol/Debug.h>
|
||||
#include <ewol/Widget.h>
|
||||
#include <ewol/widget/SizerHori.h>
|
||||
#include <ewol/widget/ContextMenu.h>
|
||||
|
||||
namespace ewol {
|
||||
|
||||
@ -55,15 +56,22 @@ namespace ewol {
|
||||
virtual void SubWidgetUnLink(ewol::Widget* newWidget);
|
||||
private:
|
||||
etk::VectorType<MenuElement*> m_listElement;
|
||||
ewol::EObject* m_staticPointer;
|
||||
ewol::EObject* m_widgetPopUp;
|
||||
int32_t m_staticId; // unique ID for every element of the menu ...
|
||||
ewol::ContextMenu* m_widgetContextMenu;
|
||||
public:
|
||||
void Clear(void);
|
||||
int32_t AddTitle(etk::UString label, etk::UString image="", const char * generateEvent = NULL, const etk::UString message = "");
|
||||
int32_t Add(int32_t parent, etk::UString label, etk::UString image="", const char * generateEvent = NULL, const etk::UString message = "");
|
||||
void AddSpacer(void);
|
||||
|
||||
virtual bool OnEventAreaExternal(int32_t widgetID, const char * generateEventId, const char * data, etkFloat_t x, etkFloat_t y);
|
||||
/**
|
||||
* @brief Receive a message from an other EObject with a specific eventId and data
|
||||
* @param[in] CallerObject Pointer on the EObject that information came from
|
||||
* @param[in] eventId Message registered by this class
|
||||
* @param[in] data Data registered by this class
|
||||
* @return ---
|
||||
*/
|
||||
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <ewol/WidgetManager.h>
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "ewol::SizerHori"
|
||||
#define __class__ "SizerHori"
|
||||
|
||||
ewol::SizerHori::SizerHori(void)
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ namespace ewol {
|
||||
#endif
|
||||
}highSpeedMode_te;
|
||||
|
||||
class WidgetScrooled : virtual public ewol::Widget
|
||||
class WidgetScrooled : public ewol::Widget
|
||||
{
|
||||
protected:
|
||||
coord2D_ts m_originScrooled;
|
||||
|
@ -472,7 +472,7 @@ ewol::FileChooser::~FileChooser(void)
|
||||
void ewol::FileChooser::SetTitle(etk::UString label)
|
||||
{
|
||||
/*
|
||||
ewol::Label * tmpWidget = dynamic_cast<ewol::Label*>(ewol::widgetManager::Get(m_widgetTitleId));
|
||||
ewol::Label * tmpWidget = static_cast<ewol::Label*>(ewol::widgetManager::Get(m_widgetTitleId));
|
||||
if (NULL == tmpWidget) {
|
||||
return;
|
||||
}
|
||||
@ -483,7 +483,7 @@ void ewol::FileChooser::SetTitle(etk::UString label)
|
||||
void ewol::FileChooser::SetValidateLabel(etk::UString label)
|
||||
{
|
||||
/*
|
||||
ewol::Button * tmpWidget = dynamic_cast<ewol::Button*>(ewol::widgetManager::Get(m_widgetValidateId));
|
||||
ewol::Button * tmpWidget = static_cast<ewol::Button*>(ewol::widgetManager::Get(m_widgetValidateId));
|
||||
if (NULL == tmpWidget) {
|
||||
return;
|
||||
}
|
||||
@ -494,7 +494,7 @@ void ewol::FileChooser::SetValidateLabel(etk::UString label)
|
||||
void ewol::FileChooser::SetCancelLabel(etk::UString label)
|
||||
{
|
||||
/*
|
||||
ewol::Button * tmpWidget = dynamic_cast<ewol::Button*>(ewol::widgetManager::Get(m_widgetCancelId));
|
||||
ewol::Button * tmpWidget = static_cast<ewol::Button*>(ewol::widgetManager::Get(m_widgetCancelId));
|
||||
if (NULL == tmpWidget) {
|
||||
return;
|
||||
}
|
||||
@ -514,7 +514,7 @@ void ewol::FileChooser::SetFileName(etk::UString filename)
|
||||
{
|
||||
/*
|
||||
m_file = filename;
|
||||
ewol::Entry * tmpWidget = dynamic_cast<ewol::Entry*>(ewol::widgetManager::Get(m_widgetCurrentFileNameId));
|
||||
ewol::Entry * tmpWidget = static_cast<ewol::Entry*>(ewol::widgetManager::Get(m_widgetCurrentFileNameId));
|
||||
if (NULL == tmpWidget) {
|
||||
return;
|
||||
}
|
||||
@ -534,7 +534,7 @@ bool ewol::FileChooser::OnEventAreaExternal(int32_t widgetID, const char * gener
|
||||
return true;
|
||||
} else if (ewolEventFileChooserEntryFile == generateEventId) {
|
||||
//==> change the file name
|
||||
ewol::Entry * tmpWidget = dynamic_cast<ewol::Entry*>(ewol::widgetManager::Get(m_widgetCurrentFileNameId));
|
||||
ewol::Entry * tmpWidget = static_cast<ewol::Entry*>(ewol::widgetManager::Get(m_widgetCurrentFileNameId));
|
||||
if (NULL != tmpWidget) {
|
||||
m_file = tmpWidget->GetValue();
|
||||
}
|
||||
@ -551,7 +551,7 @@ bool ewol::FileChooser::OnEventAreaExternal(int32_t widgetID, const char * gener
|
||||
return true;
|
||||
} else if (ewolEventFileChooserSelectFolder == generateEventId) {
|
||||
//==> this is an internal event ...
|
||||
FileChooserFolderList * myListFolder = dynamic_cast<FileChooserFolderList *>(ewol::widgetManager::Get(m_widgetListFolderId));
|
||||
FileChooserFolderList * myListFolder = static_cast<FileChooserFolderList *>(ewol::widgetManager::Get(m_widgetListFolderId));
|
||||
etk::UString tmpString = myListFolder->GetSelectedLine();
|
||||
EWOL_DEBUG(" old PATH : \"" << m_folder << "\" + \"" << tmpString << "\"");
|
||||
m_folder = m_folder + tmpString;
|
||||
@ -576,7 +576,7 @@ bool ewol::FileChooser::OnEventAreaExternal(int32_t widgetID, const char * gener
|
||||
return true;
|
||||
} else if (ewolEventFileChooserSelectFile == generateEventId) {
|
||||
m_hasSelectedFile = true;
|
||||
FileChooserFileList * myListFile = dynamic_cast<FileChooserFileList *>(ewol::widgetManager::Get(m_widgetListFileId));
|
||||
FileChooserFileList * myListFile = static_cast<FileChooserFileList *>(ewol::widgetManager::Get(m_widgetListFileId));
|
||||
etk::UString file = myListFile->GetSelectedLine();
|
||||
SetFileName(file);
|
||||
GenEventInputExternal(generateEventId, x, y);
|
||||
@ -596,10 +596,10 @@ bool ewol::FileChooser::OnEventAreaExternal(int32_t widgetID, const char * gener
|
||||
void ewol::FileChooser::UpdateCurrentFolder(void)
|
||||
{
|
||||
/*
|
||||
FileChooserFileList * myListFile = dynamic_cast<FileChooserFileList *>(ewol::widgetManager::Get(m_widgetListFileId));
|
||||
FileChooserFolderList * myListFolder = dynamic_cast<FileChooserFolderList *>(ewol::widgetManager::Get(m_widgetListFolderId));
|
||||
ewol::Entry * myEntry = dynamic_cast<ewol::Entry *>(ewol::widgetManager::Get(m_widgetCurrentFolderId));
|
||||
ewol::CheckBox * myhidenFiles = dynamic_cast<ewol::CheckBox *>(ewol::widgetManager::Get(m_widgetCheckBoxId));
|
||||
FileChooserFileList * myListFile = static_cast<FileChooserFileList *>(ewol::widgetManager::Get(m_widgetListFileId));
|
||||
FileChooserFolderList * myListFolder = static_cast<FileChooserFolderList *>(ewol::widgetManager::Get(m_widgetListFolderId));
|
||||
ewol::Entry * myEntry = static_cast<ewol::Entry *>(ewol::widgetManager::Get(m_widgetCurrentFolderId));
|
||||
ewol::CheckBox * myhidenFiles = static_cast<ewol::CheckBox *>(ewol::widgetManager::Get(m_widgetCheckBoxId));
|
||||
|
||||
myListFile->ClearElements();
|
||||
myListFolder->ClearElements();
|
||||
|
@ -191,7 +191,7 @@ bool ewol::Keyboard::OnEventAreaExternal(int32_t widgetID, const char * generate
|
||||
/*
|
||||
EWOL_INFO("Receive Event from the Keyboard ... : widgetid=" << widgetID << "\"" << generateEventId << "\" ==> internalEvent=\"" << data << "\"" );
|
||||
if (ewolEventKeyEvent == generateEventId) {
|
||||
ewol::Button * bt = dynamic_cast<ewol::Button *>(ewol::widgetManager::Get(widgetID));
|
||||
ewol::Button * bt = static_cast<ewol::Button *>(ewol::widgetManager::Get(widgetID));
|
||||
EWOL_DEBUG("kbevent : \"" << bt->GetLabel() << "\"");
|
||||
etk::UString data = bt->GetLabel();
|
||||
if (data == "DEL") {
|
||||
|
@ -7,7 +7,6 @@ FILE_LIST = ewol/ewol.cpp \
|
||||
ewol/Debug.cpp \
|
||||
ewol/EObject.cpp \
|
||||
ewol/EObjectManager.cpp \
|
||||
ewol/EObjectMessageMulticast.cpp \
|
||||
ewol/OObject.cpp \
|
||||
ewol/OObject/2DText.cpp \
|
||||
ewol/OObject/2DTextColored.cpp \
|
||||
|
Loading…
x
Reference in New Issue
Block a user