[DEV] add correct stdPopUp and start integration of documantation

This commit is contained in:
Edouard DUPIN 2013-11-08 22:31:45 +01:00
parent f73a5b80c4
commit 2235522951
11 changed files with 268 additions and 175 deletions

View File

@ -4,7 +4,7 @@
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "EWOL/ETK: "
PROJECT_NAME = "EWOL"
PROJECT_NUMBER =
OUTPUT_DIRECTORY = "doxygen/"
CREATE_SUBDIRS = YES
@ -18,7 +18,7 @@ FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
@ -29,24 +29,21 @@ OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
TYPEDEF_HIDES_STRUCT = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
SYMBOL_CACHE_SIZE = 0
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
@ -54,22 +51,21 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
SHOW_INCLUDE_FILES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_TODOLIST = NO
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = NO
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_USED_FILES = NO
SHOW_DIRECTORIES = NO
SHOW_FILES = YES
SHOW_FILES = NO
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
@ -86,7 +82,13 @@ WARN_LOGFILE = "doxygen.log"
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = sources external/etk external/parsersvg
INPUT = sources \
external/egami \
external/ege \
external/ejson \
external/esvg \
external/etk \
external/exml
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cpp \
@ -111,7 +113,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
REFERENCES_LINK_SOURCE = NO
USE_HTAGS = NO
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
@ -211,14 +213,14 @@ PERLMOD_MAKEVAR_PREFIX =
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = NO
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
@ -233,20 +235,20 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
HAVE_DOT = NO
DOT_FONTNAME = FreeSans
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = YES
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
#DOT_PATH = /usr/bin/dot

18
sources/ewol/docBook.h Normal file
View File

@ -0,0 +1,18 @@
/**
@mainpage Ewol Library framework
<center>
<h1>Ewol Library framework</h1>
Edouard DUPIN <sup>(C)</sup><br/>
License : BSD 3 clauses
</center>
Ewol is a basic graphic inteface for :
- Linux (X11)
- Windows
- MacOs
- Andoid
- Ios (in-progress)
*/

View File

@ -337,7 +337,7 @@ void ewol::eInput::state(ewol::keyEvent::type_te _type,
// reject pointer == > out of IDs...
return;
}
EWOL_DEBUG("event pointerId=" << _pointerID);
EVENT_DEBUG("event pointerId=" << _pointerID);
// convert position in open-GL coordonates ...
InputPoperty_ts *eventTable = NULL;
inputLimit_ts localLimit;
@ -361,7 +361,7 @@ void ewol::eInput::state(ewol::keyEvent::type_te _type,
ewol::Windows* tmpWindows = m_context.getWindows();
if (true == _isDown) {
EWOL_VERBOSE("GUI : Input ID=" << _pointerID
EVENT_DEBUG("GUI : Input ID=" << _pointerID
<< " == >" << eventTable[_pointerID].destinationInputId
<< " [DOWN] " << _pos);
if(true == eventTable[_pointerID].isUsed) {
@ -424,7 +424,7 @@ void ewol::eInput::state(ewol::keyEvent::type_te _type,
_pos);
}
} else {
EWOL_VERBOSE("GUI : Input ID=" << _pointerID
EVENT_DEBUG("GUI : Input ID=" << _pointerID
<< " == >" << eventTable[_pointerID].destinationInputId
<< " [UP] " << _pos);
if(false == eventTable[_pointerID].isUsed) {

View File

@ -23,8 +23,7 @@ namespace widget {
/**
* @brief a composed button is a button with an inside composed with the specify XML element == > this permit to generate standard element simple
*/
class Button : public ewol::Widget
{
class Button : public ewol::Widget {
public:
static void init(ewol::WidgetManager& _widgetManager);
// Event list of properties

View File

@ -58,12 +58,16 @@ namespace widget {
* @brief Request the Auto-remove when the event input is set outside the widget
* @param[in] _state New status
*/
void setRemoveOnExternClick(bool _state) { m_closeOutEvent = _state; };
void setRemoveOnExternClick(bool _state) {
m_closeOutEvent = _state;
};
/**
* @brief get the status of the request the Auto-remove when the event input is set outside the widget.
* @return the status of the removing
*/
bool getRemoveOnExternClick(void) const { return m_closeOutEvent; };
bool getRemoveOnExternClick(void) const {
return m_closeOutEvent;
};
private:
//float m_slidingProgress; //!< ratio progression of a sliding
public:
@ -96,7 +100,9 @@ namespace widget {
virtual void calculateSize(const vec2& _available);
virtual bool onEventInput(const ewol::EventInput& _event);
//virtual void calculateMinMaxSize(void);
virtual const char * const getObjectType(void) { return "ewol::PopUp"; };
virtual const char * const getObjectType(void) {
return "ewol::PopUp";
};
virtual ewol::Widget* getWidgetAtPos(const vec2& pos);
};

View File

@ -14,6 +14,7 @@
#include <ewol/widget/Widget.h>
#include <ewol/widget/Windows.h>
#include <ewol/widget/WidgetManager.h>
#include <ewol/widget/meta/StdPopUp.h>
#undef __class__
#define __class__ "Windows"
@ -227,19 +228,20 @@ void ewol::Windows::createPopUpMessage(enum popUpMessageType _type, const etk::U
}
switch(_type) {
case messageTypeInfo:
tmpPopUp->setTitle("Info");
tmpPopUp->setTitle("<bold>Info</bold>");
break;
case messageTypeWarning:
tmpPopUp->setTitle("Warning");
tmpPopUp->setTitle("<bold><font color=\"orange\">Warning</font></bold>");
break;
case messageTypeError:
tmpPopUp->setTitle("Error");
tmpPopUp->setTitle("<bold><font color=\"red\">Error</font></bold>");
break;
case messageTypeCritical:
tmpPopUp->setTitle("Critical");
tmpPopUp->setTitle("<bold><font colorBg=\"red\">Critical</font></bold>");
break;
}
tmpPopUp->setComment(_message);
tmpPopUp->setButtonLabel(0, "close");
tmpPopUp->addButton("close", true);
tmpPopUp->setRemoveOnExternClick(true);
popUpWidgetPush(tmpPopUp);
}

View File

@ -47,8 +47,8 @@ namespace ewol {
ewol::Widget* m_subWidget;
etk::Vector<ewol::Widget*> m_popUpWidgetList;
public:
void setSubWidget(ewol::Widget * widget);
void popUpWidgetPush(ewol::Widget * widget);
void setSubWidget(ewol::Widget* _widget);
void popUpWidgetPush(ewol::Widget* _widget);
private:
etk::Color<float> m_backgroundColor; //!< reset color of the Main windows
public:
@ -56,7 +56,9 @@ namespace ewol {
* @brief get the background color.
* @return A reference on the color
*/
const etk::Color<float>& getBackgroundColor(void) { return m_backgroundColor; };
const etk::Color<float>& getBackgroundColor(void) {
return m_backgroundColor;
};
/**
* @brief set the background color.
* @param[IN] the new requested color.
@ -65,7 +67,9 @@ namespace ewol {
protected: // Derived function
virtual void systemDraw(const ewol::DrawProperty& _displayProp);
public: // Derived function
virtual const char * const getObjectType(void) { return "ewol::Windows"; };
virtual const char * const getObjectType(void) {
return "ewol::Windows";
};
virtual void onRegenerateDisplay(void);
virtual void onObjectRemove(ewol::EObject * _removeObject);
virtual void calculateSize(const vec2& _availlable);

View File

@ -30,8 +30,8 @@ extern "C" {
#define __class__ "FileChooser"
extern const char * const ewolEventFileChooserCancel = "ewol-event-file-chooser-cancel";
extern const char * const ewolEventFileChooserValidate = "ewol-event-file-chooser-validate";
extern const char * const widget::FileChooser::eventCancel = "ewol-event-file-chooser-cancel";
extern const char * const widget::FileChooser::eventValidate = "ewol-event-file-chooser-validate";
extern const char * const ewolEventFileChooserHidenFileChange = "ewol-event-file-chooser-Show/Hide-hiden-Files";
extern const char * const ewolEventFileChooserEntryFolder = "ewol-event-file-chooser-modify-entry-folder";
extern const char * const ewolEventFileChooserEntryFolderEnter = "ewol-event-file-chooser-modify-entry-folder-enter";
@ -44,8 +44,8 @@ extern const char * const ewolEventFileChooserHome = "ewol-event-fil
widget::FileChooser::FileChooser(void) {
addEventId(ewolEventFileChooserCancel);
addEventId(ewolEventFileChooserValidate);
addEventId(eventCancel);
addEventId(eventValidate);
m_widgetTitle = NULL;
m_widgetValidate = NULL;
@ -146,7 +146,7 @@ widget::FileChooser::FileChooser(void) {
" <label>Validate</label>\n"
" </sizer>\n"
"</composer>\n"));
m_widgetValidate->registerOnEvent(this, widget::Button::eventPressed, ewolEventFileChooserValidate);
m_widgetValidate->registerOnEvent(this, widget::Button::eventPressed, eventValidate);
mySizerHori->subWidgetAdd(m_widgetValidate);
}
m_widgetCancel = new widget::Button();
@ -161,7 +161,7 @@ widget::FileChooser::FileChooser(void) {
" <label>Cancel</label>\n"
" </sizer>\n"
"</composer>\n"));
m_widgetCancel->registerOnEvent(this, widget::Button::eventPressed, ewolEventFileChooserCancel);
m_widgetCancel->registerOnEvent(this, widget::Button::eventPressed, eventCancel);
mySizerHori->subWidgetAdd(m_widgetCancel);
}
}
@ -294,14 +294,14 @@ widget::FileChooser::~FileChooser(void) {
}
void widget::FileChooser::setTitle(etk::UString _label) {
void widget::FileChooser::setTitle(const etk::UString& _label) {
if (NULL == m_widgetTitle) {
return;
}
m_widgetTitle->setLabel(_label);
}
void widget::FileChooser::setValidateLabel(etk::UString _label) {
void widget::FileChooser::setValidateLabel(const etk::UString& _label) {
if (NULL == m_widgetValidate) {
return;
}
@ -311,7 +311,7 @@ void widget::FileChooser::setValidateLabel(etk::UString _label) {
*/
}
void widget::FileChooser::setCancelLabel(etk::UString _label) {
void widget::FileChooser::setCancelLabel(const etk::UString& _label) {
if (NULL == m_widgetCancel) {
return;
}
@ -321,12 +321,12 @@ void widget::FileChooser::setCancelLabel(etk::UString _label) {
*/
}
void widget::FileChooser::setFolder(etk::UString _folder) {
void widget::FileChooser::setFolder(const etk::UString& _folder) {
m_folder = _folder + "/";
updateCurrentFolder();
}
void widget::FileChooser::setFileName(etk::UString _filename) {
void widget::FileChooser::setFileName(const etk::UString& _filename) {
m_file = _filename;
if (NULL == m_widgetCurrentFileName) {
return;
@ -346,7 +346,7 @@ void widget::FileChooser::onReceiveMessage(const ewol::EMessage& _msg) {
if (m_widgetListFile != NULL) {
m_widgetListFile->setSelect(m_file);
}
} else if (ewolEventFileChooserCancel == _msg.getMessage()) {
} else if (eventCancel == _msg.getMessage()) {
// == > Auto remove ...
generateEventId(_msg.getMessage());
autoDestroy();
@ -380,7 +380,7 @@ void widget::FileChooser::onReceiveMessage(const ewol::EMessage& _msg) {
tmpFileCompleatName += m_file;
generateEventId(_msg.getMessage(), tmpFileCompleatName);
} else if( _msg.getMessage() == ewolEventFileChooserListFileValidate
|| (_msg.getMessage() == ewolEventFileChooserValidate && m_file != "" )
|| (_msg.getMessage() == eventValidate && m_file != "" )
|| (_msg.getMessage() == ewolEventFileChooserEntryFileEnter && m_file != "" ) ) {
// select the file == > generate a validate
if (_msg.getData() != "") {
@ -389,7 +389,7 @@ void widget::FileChooser::onReceiveMessage(const ewol::EMessage& _msg) {
EWOL_VERBOSE(" generate a fiel opening : \"" << m_folder << "\" / \"" << m_file << "\"");
etk::UString tmpFileCompleatName = m_folder;
tmpFileCompleatName += m_file;
generateEventId(ewolEventFileChooserValidate, tmpFileCompleatName);
generateEventId(eventValidate, tmpFileCompleatName);
autoDestroy();
} else if(ewolEventFileChooserHome == _msg.getMessage()) {
etk::UString tmpUserFolder = etk::getUserHomeFolder();

View File

@ -18,25 +18,16 @@
#include <ewol/widget/CheckBox.h>
#include <ewol/widget/ListFileSystem.h>
extern const char * const ewolEventFileChooserCancel;
extern const char * const ewolEventFileChooserValidate;
namespace widget {
class FileChooser : public widget::PopUp {
public:
// Event list of properties
static const char* const eventCancel;
static const char* const eventValidate;
// Config list of properties
public:
FileChooser(void);
virtual ~FileChooser(void);
// Derived function
virtual const char * const getObjectType(void) { return "Ewol::fileChooser"; };
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject * removeObject);
void setTitle(etk::UString label);
void setValidateLabel(etk::UString label);
void setCancelLabel(etk::UString label);
void setFolder(etk::UString folder);
void setFileName(etk::UString filename);
etk::UString getCompleateFileName(void);
void updateCurrentFolder(void);
private:
widget::Label* m_widgetTitle;
widget::Button* m_widgetValidate;
@ -48,6 +39,20 @@ namespace widget {
widget::CheckBox* m_widgetCheckBox;
etk::UString m_folder;
etk::UString m_file;
public:
void setTitle(const etk::UString& _label);
void setValidateLabel(const etk::UString& _label);
void setCancelLabel(const etk::UString& _label);
void setFolder(const etk::UString& _folder);
void setFileName(const etk::UString& _filename);
etk::UString getCompleateFileName(void);
void updateCurrentFolder(void);
public: // Derived function
virtual const char * const getObjectType(void) {
return "Ewol::fileChooser";
};
virtual void onReceiveMessage(const ewol::EMessage& _msg);
virtual void onObjectRemove(ewol::EObject* _removeObject);
};
};

View File

@ -6,10 +6,8 @@
* @license BSD v3 (see license file)
*/
#include <ewol/widget/meta/stdPopUp.h>
#include <ewol/widget/Button.h>
#include <ewol/widget/SizerHori.h>
#include <ewol/widget/SizerVert.h>
#include <ewol/widget/meta/StdPopUp.h>
#include <ewol/widget/Sizer.h>
#include <ewol/widget/Spacer.h>
#include <ewol/widget/Label.h>
#include <ewol/widget/WidgetManager.h>
@ -18,111 +16,124 @@
#undef __class__
#define __class__ "ewol::StdPopUp"
const char * const widget::StdPopUp::eventButton = "ewol-event-pop-up-button";
static const char * const eventButtonExit = "ewol-event-pop-up-exit-button";
widget::StdPopUp::StdPopUp(void) :
m_title(NULL),
m_comment(NULL) {
addEventId(eventButton);
m_comment(NULL),
m_subBar(NULL) {
setMinSize(ewol::Dimension(vec2(20,10),ewol::Dimension::Pourcent));
widget::Sizer* mySizerVert = NULL;
widget::Spacer* mySpacer = NULL;
ewol::sizerVert * mySizerVert = NULL;
ewol::sizerHori * mySizerHori = NULL;
ewol::Button * myButton = NULL;
ewol::Entry * myEntry = NULL;
ewol::Spacer * mySpacer = NULL;
fileChooserFileList * myListFile = NULL;
fileChooserFolderList * myListFolder = NULL;
ewol::Label * myLabel = NULL;
mySizerVert = new ewol::sizerVert();
mySizerVert = new widget::Sizer(widget::Sizer::modeVert);
// set it in the pop-up-system :
subWidgetSet(mySizerVert);
setSubWidget(mySizerVert);
myLabel = new ewol::Label("File chooser ...");
m_widgetTitleId = myLabel->getWidgetId();
mySizerVert->subWidgetAdd(myLabel);
m_subBar = new widget::Sizer(widget::Sizer::modeHori);
m_subBar->lockExpand(bvec2(true,true));
m_subBar->setExpand(bvec2(true,false));
mySizerVert->subWidgetAdd(m_subBar);
mySpacer = new widget::Spacer();
mySpacer->setExpand(bvec2(true,false));
m_subBar->subWidgetAdd(mySpacer);
mySizerHori = new ewol::sizerHori();
mySizerHori->lockExpendContamination(true);
mySizerVert->subWidgetAdd(mySizerHori);
myButton = new ewol::Button("<-");
myButton->externLinkOnEvent("ewol Button Pressed", getWidgetId(), ewolEventFileChooserFolderUp );
mySizerHori->subWidgetAdd(myButton);
myEntry = new ewol::Entry("~/");
m_widgetCurrentFolderId = myEntry->getWidgetId();
myEntry->setExpendX(true);
myEntry->setFillX(true);
myEntry->setWidth(200);
mySizerHori->subWidgetAdd(myEntry);
mySizerHori = new ewol::sizerHori();
mySizerHori->lockExpendContamination(true);
mySizerVert->subWidgetAdd(mySizerHori);
myListFolder = new fileChooserFolderList();
m_widgetListFolderId = myListFolder->getWidgetId();
//myList->setExpendX(true);
myListFolder->setExpendY(true);
myListFolder->setFillY(true);
mySizerHori->subWidgetAdd(myListFolder);
myListFile = new fileChooserFileList();
m_widgetListFileId = myListFile->getWidgetId();
myListFile->setExpendY(true);
myListFile->setFillX(true);
myListFile->setExpendY(true);
myListFile->setFillY(true);
mySizerHori->subWidgetAdd(myListFile);
mySizerHori = new ewol::sizerHori();
mySizerHori->lockExpendContamination(true);
mySizerVert->subWidgetAdd(mySizerHori);
mySpacer = new ewol::Spacer();
mySpacer->setExpendX(true);
mySizerHori->subWidgetAdd(mySpacer);
myButton = new ewol::Button("Open");
m_widgetValidateId = myButton->getWidgetId();
myButton->externLinkOnEvent("ewol Button Pressed", getWidgetId(), ewolEventFileChooserValidate);
mySizerHori->subWidgetAdd(myButton);
myButton = new ewol::Button("Cancel");
m_widgetCancelId = myButton->getWidgetId();
myButton->externLinkOnEvent("ewol Button Pressed", getWidgetId(), ewolEventFileChooserCancel);
mySizerHori->subWidgetAdd(myButton);
mySpacer = new widget::Spacer();
mySpacer->setExpand(bvec2(true,false));
mySpacer->setColor(etk::Color<>(0x888888FF));
mySpacer->setMinSize(ewol::Dimension(vec2(0,3),ewol::Dimension::Pixel));
mySizerVert->subWidgetAdd(mySpacer);
mySpacer = new widget::Spacer();
mySpacer->setExpand(bvec2(true,false));
mySpacer->setMinSize(ewol::Dimension(vec2(0,5),ewol::Dimension::Pixel));
mySizerVert->subWidgetAdd(mySpacer);
m_comment = new widget::Label("No Label");
m_comment->setExpand(bvec2(true,true));
mySizerVert->subWidgetAdd(m_comment);
mySpacer = new widget::Spacer();
mySpacer->setExpand(bvec2(true,false));
mySpacer->setMinSize(ewol::Dimension(vec2(0,5),ewol::Dimension::Pixel));
mySizerVert->subWidgetAdd(mySpacer);
mySpacer = new widget::Spacer();
mySpacer->setExpand(bvec2(true,false));
mySpacer->setColor(etk::Color<>(0x888888FF));
mySpacer->setMinSize(ewol::Dimension(vec2(0,3),ewol::Dimension::Pixel));
mySizerVert->subWidgetAdd(mySpacer);
m_title = new widget::Label("<bold>Message</bold>");
m_title->setExpand(bvec2(true,false));
m_title->setFill(bvec2(true,true));
mySizerVert->subWidgetAdd(m_title);
}
widget::StdPopUp::~StdPopUp(void) {
}
void widget::StdPopUp::setTitle(const etk::UString& _label) {
ewol::Label * tmpWidget = (ewol::Label*)ewol::widgetManager::get(m_widgetTitleId);
if (NULL == tmpWidget) {
void widget::StdPopUp::setTitle(const etk::UString& _text) {
if (m_title == NULL) {
return;
}
tmpWidget->setLabel(_label);
m_title->setLabel(_text);
markToRedraw();
}
void widget::StdPopUp::setValidateLabel(const etk::UString& _label) {
ewol::Button * tmpWidget = (ewol::Button*)ewol::widgetManager::get(m_widgetValidateId);
if (NULL == tmpWidget) {
void widget::StdPopUp::setComment(const etk::UString& _text) {
if (m_comment == NULL) {
return;
}
tmpWidget->setLabel(_label);
m_comment->setLabel(_text);
markToRedraw();
}
void widget::StdPopUp::setCancelLabel(const etk::UString& _label) {
ewol::Button * tmpWidget = (ewol::Button*)ewol::widgetManager::get(m_widgetCancelId);
if (NULL == tmpWidget) {
widget::Button* widget::StdPopUp::addButton(const etk::UString& _text, bool _autoExit) {
if (m_subBar == NULL) {
EWOL_ERROR("button-bar does not existed ...");
return NULL;
}
widget::Button* myButton = new widget::Button();
if (myButton == NULL) {
EWOL_ERROR("Can not allocate new button ...");
return NULL;
}
myButton->setSubWidget(new widget::Label(_text));
if(_autoExit == true) {
myButton->registerOnEvent(this, widget::Button::eventPressed, eventButtonExit);
}
m_subBar->subWidgetAdd(myButton);
markToRedraw();
return myButton;
}
void widget::StdPopUp::onObjectRemove(ewol::EObject* _removeObject) {
// call parent:
widget::PopUp::onObjectRemove(_removeObject);
if (_removeObject == m_subBar) {
m_subBar = NULL;
markToRedraw();
return;
}
if (_removeObject == m_comment) {
m_comment = NULL;
markToRedraw();
return;
}
if (_removeObject == m_title) {
m_title = NULL;
markToRedraw();
return;
}
tmpWidget->setLabel(_label);
}
bool widget::StdPopUp::onEventAreaExternal(int32_t _widgetID, const char *_generateEventId, const char *_eventExternId, float _x, float _y) {
EWOL_INFO("Receive Event from the BT ... : widgetid=" << _widgetID << "\"" << _generateEventId << "\" == > internalEvent=\"" << _eventExternId << "\"" );
if (ewolEventFileChooserCancel == _eventExternId) {
// == > Auto remove ...
void widget::StdPopUp::onReceiveMessage(const ewol::EMessage& _msg) {
// call parent:
widget::PopUp::onReceiveMessage(_msg);
if (_msg.getMessage() == eventButtonExit) {
autoDestroy();
}
return genEventInputExternal(_eventExternId, _x, _y);
}

View File

@ -9,33 +9,79 @@
#ifndef __EWOL_STD_POP_UP_H__
#define __EWOL_STD_POP_UP_H__
#include <etk/Types.h>
#include <ewol/Debug.h>
#include <ewol/widget/PopUp.h>
#include <ewol/widget/Label.h>
#include <ewol/widget/Button.h>
#include <ewol/widget/Sizer.h>
namespace widget {
/**
* @brief The std pop up widget is a siple message widget to notyfy user of some simple things, like:
*/
/**
* @page DSP_Perfo Performances :
* <pre>
* +---------------------------------+---+---+---+
* | Windows name... | _ | O | X |
* +---------------------------------+---+---+---+
* | |
* | |
* | |
* | +-------------------+ |
* | | Erreur: | |
* | | | |
* | | Message to diplay | |
* | | to user | |
* | | | |
* | | Close | |
* | +-------------------+ |
* | |
* | |
* | |
* +---------------------------------------------+
* </pre>
*/
class StdPopUp : public widget::PopUp {
public:
// Event list of properties
static const char * const eventButton;
public:
/**
* @brief std-pop-up constructor.
*/
StdPopUp(void);
/**
* @brief std-pop-up destructor.
*/
~StdPopUp(void);
// Derived function
protected:
widget::Label* m_title; //!< Title Label widget
public:
/**
* @brief Set the title string.
* @param[in] _text Decorated text to diplay in title.
*/
void setTitle(const etk::UString& _text);
protected:
widget::Label* m_comment; //!< Comment label widget
public:
/**
* @brief Set the commentary string.
* @param[in] _text Decorated text to diplay in Comment.
*/
void setComment(const etk::UString& _text);
protected:
widget::Sizer* m_subBar; //!< subwidget bar containing all the button.
public:
/**
* @brief Add a buttom button.
* @param[in] _text Decorated text to diplay in button.
*/
widget::Button* addButton(const etk::UString& _text, bool _autoExit=false);
public: // Derived function
virtual const char * const getObjectType(void) {
return "ewol::StdPopUp";
};
void setTitle(const etk::UString& _text);
void setComment(const etk::UString& _text);
void addButton(const etk::UString& _text);
private:
widget::Label* m_title;
widget::Label* m_comment;
etk::Vector<widget::Button*> m_button;
virtual void onObjectRemove(ewol::EObject* _removeObject);
virtual void onReceiveMessage(const ewol::EMessage& _msg);
};
};
#endif