[DEV] End of simple button developement start of buttonColor rework
This commit is contained in:
parent
22e5c62c42
commit
dc6e4eeb49
@ -422,7 +422,8 @@ void ewol::Text::ParseHtmlNode(void* element2)
|
||||
} else if (child->Type()==TiXmlNode::TINYXML_TEXT) {
|
||||
HtmlAddData(child->Value() );
|
||||
EWOL_VERBOSE("XML Add : " << child->Value());
|
||||
} else if (!strcmp(child->Value(), "br")) {
|
||||
} else if( !strcmp(child->Value(), "br")
|
||||
|| !strcmp(child->Value(), "BR")) {
|
||||
HtmlFlush();
|
||||
EWOL_VERBOSE("XML flush & newLine");
|
||||
ForceLineReturn();
|
||||
@ -439,8 +440,9 @@ void ewol::Text::ParseHtmlNode(void* element2)
|
||||
}
|
||||
ParseHtmlNode(child);
|
||||
m_htmlDecoTmp = tmpDeco;
|
||||
} else if (!strcmp(child->Value(), "b")) {
|
||||
EWOL_VERBOSE("XML b ...");
|
||||
} else if( !strcmp(child->Value(), "b")
|
||||
|| !strcmp(child->Value(), "bold")) {
|
||||
EWOL_VERBOSE("XML bold ...");
|
||||
TextDecoration tmpDeco = m_htmlDecoTmp;
|
||||
if (m_htmlDecoTmp.m_mode == ewol::font::Regular) {
|
||||
m_htmlDecoTmp.m_mode = ewol::font::Bold;
|
||||
@ -449,8 +451,9 @@ void ewol::Text::ParseHtmlNode(void* element2)
|
||||
}
|
||||
ParseHtmlNode(child);
|
||||
m_htmlDecoTmp = tmpDeco;
|
||||
} else if (!strcmp(child->Value(), "i")) {
|
||||
EWOL_VERBOSE("XML i ...");
|
||||
} else if( !strcmp(child->Value(), "i")
|
||||
|| !strcmp(child->Value(), "italic")) {
|
||||
EWOL_VERBOSE("XML italic ...");
|
||||
TextDecoration tmpDeco = m_htmlDecoTmp;
|
||||
if (m_htmlDecoTmp.m_mode == ewol::font::Regular) {
|
||||
m_htmlDecoTmp.m_mode = ewol::font::Italic;
|
||||
@ -459,11 +462,13 @@ void ewol::Text::ParseHtmlNode(void* element2)
|
||||
}
|
||||
ParseHtmlNode(child);
|
||||
m_htmlDecoTmp = tmpDeco;
|
||||
} else if (!strcmp(child->Value(), "u")) {
|
||||
EWOL_VERBOSE("XML u ...");
|
||||
} else if( !strcmp(child->Value(), "u")
|
||||
|| !strcmp(child->Value(), "underline")) {
|
||||
EWOL_VERBOSE("XML underline ...");
|
||||
ParseHtmlNode(child);
|
||||
} else if (!strcmp(child->Value(), "p")) {
|
||||
EWOL_VERBOSE("XML p ...");
|
||||
} else if( !strcmp(child->Value(), "p")
|
||||
|| !strcmp(child->Value(), "paragraph")) {
|
||||
EWOL_VERBOSE("XML paragraph ...");
|
||||
HtmlFlush();
|
||||
m_alignement = ewol::Text::alignLeft;
|
||||
ForceLineReturn();
|
||||
|
@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#include <ewol/ewol.h>
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/WidgetManager.h>
|
||||
|
||||
@ -34,7 +35,8 @@ widget::Button::Button(etk::UString newLabel) :
|
||||
m_toggleMode(false),
|
||||
m_value(false),
|
||||
m_mouseHover(false),
|
||||
m_buttonPressed(false)
|
||||
m_buttonPressed(false),
|
||||
m_imageDisplaySize(32)
|
||||
{
|
||||
AddEventId(ewolEventButtonPressed);
|
||||
AddEventId(ewolEventButtonDown);
|
||||
@ -60,12 +62,14 @@ void widget::Button::SetImage(etk::UString imageName)
|
||||
{
|
||||
m_displayImage.SetSource(imageName);
|
||||
MarkToRedraw();
|
||||
ewol::RequestUpdateSize();
|
||||
}
|
||||
|
||||
void widget::Button::SetImageToggle(etk::UString imageName)
|
||||
{
|
||||
m_displayImageToggle.SetSource(imageName);
|
||||
MarkToRedraw();
|
||||
ewol::RequestUpdateSize();
|
||||
}
|
||||
|
||||
|
||||
@ -87,7 +91,7 @@ bool widget::Button::CalculateMinSize(void)
|
||||
// Add the image element ...
|
||||
if( true == m_displayImage.HasSources()
|
||||
|| true == m_displayImageToggle.HasSources()) {
|
||||
m_minSize.x += padding.x + minSize.y;
|
||||
m_minSize.x += padding.x/2 + m_imageDisplaySize;
|
||||
}
|
||||
MarkToRedraw();
|
||||
return true;
|
||||
@ -98,6 +102,7 @@ void widget::Button::SetLabel(etk::UString newLabel)
|
||||
{
|
||||
m_label = newLabel;
|
||||
MarkToRedraw();
|
||||
ewol::RequestUpdateSize();
|
||||
}
|
||||
|
||||
etk::UString widget::Button::GetLabel(void)
|
||||
@ -109,6 +114,7 @@ void widget::Button::SetLabelToggle(etk::UString newLabel)
|
||||
{
|
||||
m_labelToggle = newLabel;
|
||||
MarkToRedraw();
|
||||
ewol::RequestUpdateSize();
|
||||
}
|
||||
|
||||
etk::UString widget::Button::GetLabelToggle(void)
|
||||
@ -144,7 +150,6 @@ void widget::Button::SetToggleMode(bool togg)
|
||||
void widget::Button::OnDraw(ewol::DrawProperty& displayProp)
|
||||
{
|
||||
m_shaper.Draw();
|
||||
#warning generate the Toggle
|
||||
if( false == m_toggleMode
|
||||
|| false == m_value) {
|
||||
m_displayImage.Draw();
|
||||
@ -163,7 +168,8 @@ void widget::Button::OnRegenerateDisplay(void)
|
||||
etk::Vector3D<int32_t> minSize = m_displayText.CalculateSize('A');
|
||||
etk::Vector3D<int32_t> curentTextSize;
|
||||
if( false == m_toggleMode
|
||||
|| false == m_value) {
|
||||
|| false == m_value
|
||||
|| m_labelToggle.Size()==0) {
|
||||
curentTextSize = m_displayText.CalculateSizeDecorated(m_label);
|
||||
} else {
|
||||
curentTextSize = m_displayText.CalculateSizeDecorated(m_labelToggle);
|
||||
@ -206,10 +212,11 @@ void widget::Button::OnRegenerateDisplay(void)
|
||||
|
||||
if( true == m_displayImage.HasSources()
|
||||
|| true == m_displayImageToggle.HasSources()) {
|
||||
// TODO : Remove this size calculation ==> can regenrate siomme errro
|
||||
etk::Vector3D<int32_t> minSize = m_displayText.CalculateSizeDecorated(m_label);
|
||||
etk::Vector3D<int32_t> imagePos(tmpTextOrigin.x-padding.x/4, tmpTextOrigin.y-padding.x/4, 0);
|
||||
etk::Vector2D<int32_t> imageSize(minSize.y+padding.x/2, minSize.y+padding.x/2);
|
||||
etk::Vector3D<int32_t> imagePos(tmpOrigin.x-padding.x/4,
|
||||
tmpOrigin.y-padding.x/4+(m_minSize.y-m_imageDisplaySize-2*padding.y)/2.0,
|
||||
0);
|
||||
etk::Vector2D<int32_t> imageSize(m_imageDisplaySize,
|
||||
m_imageDisplaySize);
|
||||
if( false==m_toggleMode
|
||||
|| false==m_value) {
|
||||
m_displayImage.SetPos(imagePos);
|
||||
@ -219,7 +226,7 @@ void widget::Button::OnRegenerateDisplay(void)
|
||||
m_displayImageToggle.Print(imageSize);
|
||||
}
|
||||
// update the text position ...
|
||||
tmpTextOrigin.x += padding.x/2 + minSize.y;
|
||||
tmpTextOrigin.x += padding.x/2 + m_imageDisplaySize;
|
||||
}
|
||||
|
||||
etk::Vector3D<float> drawClippingPos(padding.x, padding.y, -0.5);
|
||||
@ -230,10 +237,16 @@ void widget::Button::OnRegenerateDisplay(void)
|
||||
// clean the element
|
||||
m_displayText.Reset();
|
||||
m_displayText.SetPos(tmpTextOrigin);
|
||||
m_displayText.SetTextAlignement(tmpTextOrigin.x, tmpTextOrigin.x+localSize.x, ewol::Text::alignCenter);
|
||||
if( true == m_displayImage.HasSources()
|
||||
|| true == m_displayImageToggle.HasSources()) {
|
||||
m_displayText.SetTextAlignement(tmpTextOrigin.x, tmpTextOrigin.x+localSize.x-m_imageDisplaySize, ewol::Text::alignCenter);
|
||||
} else {
|
||||
m_displayText.SetTextAlignement(tmpTextOrigin.x, tmpTextOrigin.x+localSize.x, ewol::Text::alignCenter);
|
||||
}
|
||||
m_displayText.SetClipping(drawClippingPos, drawClippingSize);
|
||||
if( false == m_toggleMode
|
||||
|| false == m_value) {
|
||||
|| false == m_value
|
||||
|| m_labelToggle.Size()==0) {
|
||||
m_displayText.PrintDecorated(m_label);
|
||||
} else {
|
||||
m_displayText.PrintDecorated(m_labelToggle);
|
||||
@ -354,3 +367,13 @@ void widget::Button::PeriodicCall(int64_t localTime)
|
||||
}
|
||||
MarkToRedraw();
|
||||
}
|
||||
|
||||
void widget::Button::SetImageSize(int32_t size)
|
||||
{
|
||||
MarkToRedraw();
|
||||
ewol::RequestUpdateSize();
|
||||
m_imageDisplaySize = size;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -38,6 +38,7 @@ namespace widget {
|
||||
bool m_value; //!< Current state of the button.
|
||||
bool m_mouseHover; //!< Flag to know where the mouse is (inside the displayed widget (if not fill)
|
||||
bool m_buttonPressed; //!< Flag to know if the button is curently pressed
|
||||
int32_t m_imageDisplaySize; //!< Display size of the Image
|
||||
// hover area :
|
||||
etk::Vector2D<float> m_selectableAreaPos; //!< Start position of the events
|
||||
etk::Vector2D<float> m_selectableAreaSize; //!< Size of the event positions
|
||||
@ -98,6 +99,11 @@ namespace widget {
|
||||
* @param[in] togg New toggle mode
|
||||
*/
|
||||
void SetToggleMode(bool togg);
|
||||
/**
|
||||
* @brief Set the new image Size (default 32).
|
||||
* @param[in] size The new display size.
|
||||
*/
|
||||
void SetImageSize(int32_t size);
|
||||
public:
|
||||
// Derived function
|
||||
virtual const char * const GetObjectType(void) { return "widget::Button"; };
|
||||
|
@ -21,40 +21,18 @@ extern const char * const ewolEventButtonColorChange = "ewol-Button-Color-Cha
|
||||
#undef __class__
|
||||
#define __class__ "ButtonColor"
|
||||
|
||||
|
||||
void widget::ButtonColor::Init(void)
|
||||
widget::ButtonColor::ButtonColor(draw::Color baseColor) :
|
||||
m_shaper("THEME:GUI:widgetButton.conf"),
|
||||
m_textColorFg(baseColor),
|
||||
m_widgetContextMenu(NULL)
|
||||
{
|
||||
AddEventId(ewolEventButtonColorChange);
|
||||
|
||||
#ifdef __TARGET_OS__Android
|
||||
m_padding.y = 12;
|
||||
m_padding.x = 12;
|
||||
#else
|
||||
m_padding.y = 4;
|
||||
m_padding.x = 4;
|
||||
#endif
|
||||
|
||||
|
||||
m_textColorBg = draw::color::black;
|
||||
m_textColorBg.a = 0x3F;
|
||||
m_widgetContextMenu = NULL;
|
||||
SetCanHaveFocus(true);
|
||||
// Limit event at 1:
|
||||
SetMouseLimit(1);
|
||||
}
|
||||
|
||||
widget::ButtonColor::ButtonColor(void)
|
||||
{
|
||||
m_label = "No Label";
|
||||
Init();
|
||||
}
|
||||
|
||||
widget::ButtonColor::ButtonColor(etk::UString newLabel)
|
||||
{
|
||||
m_label = newLabel;
|
||||
Init();
|
||||
}
|
||||
|
||||
|
||||
widget::ButtonColor::~ButtonColor(void)
|
||||
{
|
||||
@ -62,50 +40,34 @@ widget::ButtonColor::~ButtonColor(void)
|
||||
}
|
||||
|
||||
|
||||
void widget::ButtonColor::SetPadding(etk::Vector2D<float> newPadding)
|
||||
{
|
||||
m_padding = newPadding;
|
||||
}
|
||||
|
||||
bool widget::ButtonColor::CalculateMinSize(void)
|
||||
{
|
||||
etk::Vector3D<int32_t> minSize = m_oObjectText.CalculateSize(m_label);
|
||||
m_minSize.x = m_padding.x*2 + minSize.x;
|
||||
m_minSize.y = m_padding.y*2 + minSize.y;
|
||||
etk::Vector2D<float> padding = m_shaper.GetPadding();
|
||||
char colorText[256];
|
||||
sprintf(colorText, "#%08X", m_textColorFg.Get());
|
||||
etk::Vector3D<int32_t> minSize = m_text.CalculateSize(colorText);
|
||||
m_minSize.x = padding.x*2 + minSize.x;
|
||||
m_minSize.y = padding.y*2 + minSize.y;
|
||||
MarkToRedraw();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void widget::ButtonColor::SetLabel(etk::UString newLabel)
|
||||
{
|
||||
m_label = newLabel;
|
||||
MarkToRedraw();
|
||||
}
|
||||
|
||||
void widget::ButtonColor::SetValue(bool val)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
bool widget::ButtonColor::GetValue(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void widget::ButtonColor::OnDraw(ewol::DrawProperty& displayProp)
|
||||
{
|
||||
m_oObjectDecoration.Draw();
|
||||
m_oObjectText.Draw();
|
||||
m_shaper.Draw();
|
||||
m_text.Draw();
|
||||
}
|
||||
|
||||
|
||||
void widget::ButtonColor::OnRegenerateDisplay(void)
|
||||
{
|
||||
if (true == NeedRedraw()) {
|
||||
m_oObjectDecoration.Clear();
|
||||
m_oObjectText.Clear();
|
||||
m_text.Clear();
|
||||
m_shaper.Clear();
|
||||
/*
|
||||
int32_t tmpSizeX = m_minSize.x;
|
||||
int32_t tmpSizeY = m_minSize.y;
|
||||
int32_t tmpOriginX = (m_size.x - m_minSize.x) / 2;
|
||||
@ -146,12 +108,14 @@ void widget::ButtonColor::OnRegenerateDisplay(void)
|
||||
tmpSizeY += m_padding.y/1;
|
||||
m_oObjectDecoration.SetPos(etk::Vector3D<float>(tmpOriginX, tmpOriginY, 0) );
|
||||
m_oObjectDecoration.RectangleWidth(etk::Vector3D<float>(tmpSizeX, tmpSizeY, 0) );
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool widget::ButtonColor::OnEventInput(ewol::keyEvent::type_te type, int32_t IdInput, ewol::keyEvent::status_te typeEvent, etk::Vector2D<float> pos)
|
||||
{
|
||||
/*
|
||||
//EWOL_DEBUG("Event on BT ...");
|
||||
if (1 == IdInput) {
|
||||
if( ewol::keyEvent::statusSingle == typeEvent) {
|
||||
@ -183,24 +147,32 @@ bool widget::ButtonColor::OnEventInput(ewol::keyEvent::type_te type, int32_t IdI
|
||||
return true;
|
||||
}
|
||||
}
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void widget::ButtonColor::SetCurrentColor(draw::Color color)
|
||||
void widget::ButtonColor::SetValue(draw::Color color)
|
||||
{
|
||||
m_selectedColor = color;
|
||||
m_textColorBg = m_selectedColor;
|
||||
m_textColorFg = color;
|
||||
/*
|
||||
char colorText[256];
|
||||
sprintf(colorText, "#%08X", color.Get());
|
||||
//set the new label ...
|
||||
SetLabel(colorText);
|
||||
*/
|
||||
}
|
||||
|
||||
draw::Color widget::ButtonColor::GetValue(void)
|
||||
{
|
||||
return m_textColorFg;
|
||||
}
|
||||
|
||||
|
||||
void widget::ButtonColor::OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data)
|
||||
{
|
||||
if (eventId == ewolEventColorChooserChange) {
|
||||
/*
|
||||
// TODO : Parse the input color ...
|
||||
//draw::Color tmpColor(data);
|
||||
draw::Color tmpColor;
|
||||
@ -211,5 +183,6 @@ void widget::ButtonColor::OnReceiveMessage(ewol::EObject * CallerObject, const c
|
||||
//set the new label ...
|
||||
SetLabel(colorText);
|
||||
GenerateEventId(ewolEventButtonColorChange);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
@ -13,8 +13,8 @@
|
||||
#include <ewol/debug.h>
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/ContextMenu.h>
|
||||
#include <ewol/compositing/Drawing.h>
|
||||
#include <ewol/compositing/Text.h>
|
||||
#include <ewol/compositing/Shaper.h>
|
||||
#include <ewol/widget/Widget.h>
|
||||
|
||||
extern const char * const ewolEventButtonColorChange;
|
||||
@ -23,36 +23,35 @@ namespace widget {
|
||||
class ButtonColor : public ewol::Widget
|
||||
{
|
||||
public:
|
||||
ButtonColor(void);
|
||||
ButtonColor(etk::UString newLabel);
|
||||
// Derived function
|
||||
virtual const char * const GetObjectType(void) { return "EwolButtonColor"; };
|
||||
void Init(void);
|
||||
ButtonColor(draw::Color baseColor=draw::color::black);
|
||||
virtual ~ButtonColor(void);
|
||||
virtual bool CalculateMinSize(void);
|
||||
void SetLabel(etk::UString newLabel);
|
||||
etk::UString GetLabel(void) {return m_label;};
|
||||
void SetValue(bool val);
|
||||
bool GetValue(void);
|
||||
void SetPadding(etk::Vector2D<float> newPadding);
|
||||
private:
|
||||
ewol::Text m_oObjectText;
|
||||
ewol::Drawing m_oObjectDecoration;
|
||||
etk::Vector2D<float> m_padding;
|
||||
etk::UString m_label;
|
||||
draw::Color m_textColorFg; //!< Text color
|
||||
draw::Color m_textColorBg; //!< Background color
|
||||
draw::Color m_selectedColor; //!< user current selected Color
|
||||
ewol::Shaper m_shaper; //!< Compositing theme.
|
||||
ewol::Text m_text;
|
||||
draw::Color m_textColorFg; //!< Text color && user selected color
|
||||
widget::ContextMenu* m_widgetContextMenu;
|
||||
public:
|
||||
/**
|
||||
* @brief Get the current color of the color selection widget
|
||||
* @return The current color
|
||||
*/
|
||||
draw::Color GetValue(void);
|
||||
/**
|
||||
* @brief Specify the current color.
|
||||
* @param[in] color The new display color.
|
||||
*/
|
||||
void SetValue(draw::Color color);
|
||||
public:
|
||||
// Derived function
|
||||
virtual bool CalculateMinSize(void);
|
||||
// Derived function
|
||||
virtual const char * const GetObjectType(void) { return "EwolButtonColor"; };
|
||||
// Derived function
|
||||
virtual void OnRegenerateDisplay(void);
|
||||
// Derived function
|
||||
virtual void OnDraw(ewol::DrawProperty& displayProp);
|
||||
// Derived function
|
||||
virtual bool OnEventInput(ewol::keyEvent::type_te type, int32_t IdInput, ewol::keyEvent::status_te typeEvent, etk::Vector2D<float> pos);
|
||||
draw::Color GetCurrentColor(void) { return m_selectedColor; };
|
||||
void SetCurrentColor(draw::Color color);
|
||||
// Derived function
|
||||
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data);
|
||||
};
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/CheckBox.h>
|
||||
#include <ewol/widget/SizerHori.h>
|
||||
#include <ewol/widget/SizerVert.h>
|
||||
#include <ewol/widget/Label.h>
|
||||
#include <ewol/widget/Entry.h>
|
||||
#include <ewol/widget/List.h>
|
||||
@ -24,12 +23,17 @@
|
||||
#include <ewol/widget/meta/FileChooser.h>
|
||||
#include <ewol/widget/meta/Parameter.h>
|
||||
#include <ewol/widget/WidgetManager.h>
|
||||
#include <appl/TestButton.h>
|
||||
#include <appl/TestButtonColor.h>
|
||||
|
||||
|
||||
const char * l_eventChangeExpendX = "event-change-expend-X";
|
||||
const char * l_eventChangeExpendY = "event-change-expend-Y";
|
||||
const char * l_eventChangeFillX = "event-change-fill-X";
|
||||
const char * l_eventChangeFillY = "event-change-fill-Y";
|
||||
static const char * l_eventChangeTheme = "event-change-theme";
|
||||
static const char * l_eventChangeWidgetNext = "event-change-widget-test-next";
|
||||
static const char * l_eventChangeWidgetPrevious = "event-change-widget-test-previous";
|
||||
|
||||
|
||||
static const char * l_basicLabel = "<center>Test software for EWOL</center>";
|
||||
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "MainWindows"
|
||||
@ -37,123 +41,54 @@ const char * l_eventChangeFillY = "event-change-fill-Y";
|
||||
MainWindows::MainWindows(void)
|
||||
{
|
||||
APPL_DEBUG("CREATE WINDOWS ... ");
|
||||
widget::SizerVert* mySizerVert = NULL;
|
||||
widget::SizerVert* mySizerVert2 = NULL;
|
||||
widget::SizerHori* mySizerHori = NULL;
|
||||
widget::Button* myButton = NULL;
|
||||
|
||||
mySizerVert = new widget::SizerVert();
|
||||
if (NULL == mySizerVert) {
|
||||
m_sizerVert = new widget::SizerVert();
|
||||
if (NULL == m_sizerVert) {
|
||||
APPL_DEBUG("Allocation error mySizerVert");
|
||||
return;
|
||||
}
|
||||
SetSubWidget(mySizerVert);
|
||||
SetSubWidget(m_sizerVert);
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
mySizerVert->SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("<center>Expend X <br/> (false)</center>");
|
||||
m_sizerVert->SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("default theme (cube)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("<center>Expend X <br/> (true)</center>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendX);
|
||||
myButton->SetLabelToggle("rounded theme");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeTheme);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("<center>Expend Y <br/> (false)</center>");
|
||||
myButton = new widget::Button("Previous Widget test");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("<center>Expend Y <br/> (true)</center>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendY);
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeWidgetPrevious);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
mySizerVert->SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("<center>Fill X (false)</center>");
|
||||
myButton = new widget::Button("Next Widget test");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("<center>Fill X (true)</center>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillX);
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeWidgetNext);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("<center>Fill Y (false)</center>");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("<center>Fill Y (true)</center>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillY);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
int32_t idSpacer=0;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(true);
|
||||
m_spacer[idSpacer]->SetFillY(false);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0xFF000080);
|
||||
mySizerVert->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
widget::Spacer* mySpacer = new widget::Spacer();
|
||||
if (NULL != mySpacer) {
|
||||
mySpacer->SetExpendX(false);
|
||||
mySpacer->SetExpendY(false);
|
||||
mySpacer->SetFillX(true);
|
||||
mySpacer->SetFillY(false);
|
||||
mySpacer->SetSize(3);
|
||||
mySpacer->SetColor(0x000000FF);
|
||||
m_sizerVert->SubWidgetAdd(mySpacer);
|
||||
}
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
// basic generation ...
|
||||
m_subWidget = (ewol::Widget*)new widget::Label(l_basicLabel);
|
||||
if (NULL != m_subWidget) {
|
||||
m_sizerVert->SubWidgetAdd(m_subWidget);
|
||||
}
|
||||
mySizerVert->SubWidgetAdd(mySizerHori);
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(false);
|
||||
m_spacer[idSpacer]->SetFillY(true);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x00FF0080);
|
||||
mySizerHori->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
m_button = new widget::Button("My <font color=\"#FF0000\">Button</font> <br/> And Some under line<br/> plop <br/> and an other super long line ...");
|
||||
if (NULL != m_button) {
|
||||
m_button->SetExpendX(false);
|
||||
m_button->SetExpendY(false);
|
||||
m_button->SetFillX(false);
|
||||
m_button->SetFillY(false);
|
||||
mySizerHori->SubWidgetAdd(m_button);
|
||||
}
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(false);
|
||||
m_spacer[idSpacer]->SetFillY(true);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x0000FF80);
|
||||
mySizerHori->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(true);
|
||||
m_spacer[idSpacer]->SetFillY(false);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x00FFFF80);
|
||||
mySizerVert->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -169,55 +104,57 @@ void MainWindows::OnReceiveMessage(ewol::EObject * CallerObject, const char * ev
|
||||
ewol::Windows::OnReceiveMessage(CallerObject, eventId, data);
|
||||
|
||||
APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" ==> data=\"" << data << "\"" );
|
||||
|
||||
if (eventId == l_eventChangeExpendX) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetExpendX(true);
|
||||
} else {
|
||||
m_button->SetExpendX(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeExpendY) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetExpendY(true);
|
||||
} else {
|
||||
m_button->SetExpendY(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeFillX) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetFillX(true);
|
||||
} else {
|
||||
m_button->SetFillX(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeFillY) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetFillY(true);
|
||||
} else {
|
||||
m_button->SetFillY(false);
|
||||
}
|
||||
if (eventId == l_eventChangeTheme) {
|
||||
if (data=="1") {
|
||||
etk::theme::SetName("GUI", "rounded");
|
||||
} else {
|
||||
etk::theme::SetName("GUI", "default");
|
||||
}
|
||||
// Reload shaders and graphic system ...
|
||||
ewol::resource::ReLoadResources();
|
||||
return;
|
||||
} else if (eventId == l_eventChangeWidgetPrevious) {
|
||||
m_idWidget--;
|
||||
} else if (eventId == l_eventChangeWidgetNext) {
|
||||
m_idWidget++;
|
||||
}
|
||||
|
||||
return;
|
||||
if (m_subWidget != NULL) {
|
||||
delete (m_subWidget);
|
||||
// inn theory it must be removed ...
|
||||
m_subWidget = NULL;
|
||||
}
|
||||
switch(m_idWidget)
|
||||
{
|
||||
default:
|
||||
m_idWidget = 0;
|
||||
case 0:
|
||||
m_subWidget = (ewol::Widget*)new widget::Label(l_basicLabel);
|
||||
if (NULL != m_subWidget) {
|
||||
m_sizerVert->SubWidgetAdd(m_subWidget);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
m_subWidget = (ewol::Widget*)new TestButton();
|
||||
if (NULL != m_subWidget) {
|
||||
m_sizerVert->SubWidgetAdd(m_subWidget);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
m_subWidget = (ewol::Widget*)new TestButtonColor();
|
||||
if (NULL != m_subWidget) {
|
||||
m_sizerVert->SubWidgetAdd(m_subWidget);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @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 MainWindows::OnObjectRemove(ewol::EObject * removeObject)
|
||||
{
|
||||
ewol::Windows::OnObjectRemove(removeObject);
|
||||
if (m_button == removeObject) {
|
||||
m_button = NULL;
|
||||
if (m_subWidget == removeObject) {
|
||||
m_subWidget = NULL;
|
||||
} else if (m_sizerVert == removeObject) {
|
||||
m_sizerVert = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -12,14 +12,16 @@
|
||||
#include <appl/Debug.h>
|
||||
#include <ewol/widget/Widget.h>
|
||||
#include <ewol/widget/Windows.h>
|
||||
#include <ewol/widget/SizerVert.h>
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/Spacer.h>
|
||||
|
||||
class MainWindows : public ewol::Windows
|
||||
{
|
||||
private:
|
||||
widget::Button* m_button;
|
||||
widget::Spacer* m_spacer[4];
|
||||
widget::SizerVert* m_sizerVert;
|
||||
ewol::Widget* m_subWidget;
|
||||
int32_t m_idWidget;
|
||||
public:
|
||||
// Constructeur
|
||||
MainWindows(void);
|
||||
|
335
test/human/appl/TestButton.cpp
Normal file
335
test/human/appl/TestButton.cpp
Normal file
@ -0,0 +1,335 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2010, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license BSD v3 (see license file)
|
||||
*/
|
||||
|
||||
|
||||
#include <appl/Debug.h>
|
||||
#include <appl/TestButton.h>
|
||||
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/CheckBox.h>
|
||||
#include <ewol/widget/SizerHori.h>
|
||||
#include <ewol/widget/SizerVert.h>
|
||||
#include <ewol/widget/Label.h>
|
||||
#include <ewol/widget/Entry.h>
|
||||
#include <ewol/widget/List.h>
|
||||
#include <ewol/widget/ContextMenu.h>
|
||||
#include <ewol/widget/PopUp.h>
|
||||
#include <ewol/widget/Slider.h>
|
||||
#include <ewol/widget/Menu.h>
|
||||
#include <ewol/widget/meta/FileChooser.h>
|
||||
#include <ewol/widget/meta/Parameter.h>
|
||||
#include <ewol/widget/WidgetManager.h>
|
||||
|
||||
|
||||
static const char * l_eventChangeExpendX = "event-change-expend-X";
|
||||
static const char * l_eventChangeExpendY = "event-change-expend-Y";
|
||||
static const char * l_eventChangeFillX = "event-change-fill-X";
|
||||
static const char * l_eventChangeFillY = "event-change-fill-Y";
|
||||
static const char * l_eventChangeToggle = "event-change-toggle-mode";
|
||||
static const char * l_eventChangeText = "event-change-text";
|
||||
static const char * l_eventChangeTextToggle = "event-change-text-toggle";
|
||||
static const char * l_eventChangeImage = "event-change-image";
|
||||
static const char * l_eventChangeImageToggle = "event-change-image-toggle";
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "TestButton"
|
||||
|
||||
TestButton::TestButton(void)
|
||||
{
|
||||
APPL_DEBUG("CREATE "__class__" ... ");
|
||||
widget::SizerVert* mySizerVert2 = NULL;
|
||||
widget::SizerHori* mySizerHori = NULL;
|
||||
widget::Button* myButton = NULL;
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("Expend X <br/> (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Expend X <br/> (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendX);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Expend Y <br/> (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Expend Y <br/> (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendY);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Toggle<br/>(false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Toggle<br/><b>(true)</b>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeToggle);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Text On toggle state<br/>(false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Text On toggle state<br/><b>(true)</b>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeTextToggle);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("Fill X (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Fill X (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillX);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Fill Y (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Fill Y (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillY);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Image (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Image (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeImage);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Image Toggle (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Image Toggle (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeImageToggle);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Change Text");
|
||||
if (NULL != myButton) {
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeText);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
int32_t idSpacer=0;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(true);
|
||||
m_spacer[idSpacer]->SetFillY(false);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0xFF000080);
|
||||
SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
SubWidgetAdd(mySizerHori);
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(false);
|
||||
m_spacer[idSpacer]->SetFillY(true);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x00FF0080);
|
||||
mySizerHori->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
m_button = new widget::Button("My <font color=\"#FF0000\">Button</font> <br/> And Some under line<br/> plop <br/> and an other super long line ...");
|
||||
if (NULL != m_button) {
|
||||
m_button->SetExpendX(false);
|
||||
m_button->SetExpendY(false);
|
||||
m_button->SetFillX(false);
|
||||
m_button->SetFillY(false);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonPressed);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonDown);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonUp);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonEnter);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonLeave);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonValue);
|
||||
mySizerHori->SubWidgetAdd(m_button);
|
||||
}
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(false);
|
||||
m_spacer[idSpacer]->SetFillY(true);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x0000FF80);
|
||||
mySizerHori->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(true);
|
||||
m_spacer[idSpacer]->SetFillY(false);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x00FFFF80);
|
||||
SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TestButton::~TestButton(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TestButton::OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data)
|
||||
{
|
||||
widget::SizerVert::OnReceiveMessage(CallerObject, eventId, data);
|
||||
|
||||
//APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" ==> data=\"" << data << "\"" );
|
||||
if (m_button == CallerObject) {
|
||||
APPL_WARNING("Receive Event from tested Button ... : \"" << eventId << "\" ==> data=\"" << data << "\"" );
|
||||
}
|
||||
if (eventId == l_eventChangeExpendX) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetExpendX(true);
|
||||
} else {
|
||||
m_button->SetExpendX(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeExpendY) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetExpendY(true);
|
||||
} else {
|
||||
m_button->SetExpendY(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeFillX) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetFillX(true);
|
||||
} else {
|
||||
m_button->SetFillX(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeFillY) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetFillY(true);
|
||||
} else {
|
||||
m_button->SetFillY(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeToggle) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetToggleMode(true);
|
||||
} else {
|
||||
m_button->SetToggleMode(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeTextToggle) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetLabelToggle("A stupid very long text on toggle <br/><br/> and on multiple lines");
|
||||
} else {
|
||||
m_button->SetLabelToggle("");
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeImage) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetImage("THEME:GUI:icon.png");
|
||||
m_button->SetImageSize(50);
|
||||
} else {
|
||||
m_button->SetImage("");
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeImageToggle) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetImageToggle("THEME:GUI:icon.png");
|
||||
} else {
|
||||
m_button->SetImageToggle("");
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeText) {
|
||||
if (NULL!=m_button) {
|
||||
static int32_t countTextID = 1;
|
||||
switch (countTextID%10)
|
||||
{
|
||||
case 0:
|
||||
m_button->SetLabel("simple Text");
|
||||
break;
|
||||
case 1:
|
||||
m_button->SetLabel("<left>Align Left</left>");
|
||||
break;
|
||||
case 2:
|
||||
m_button->SetLabel("<right>Align right</right>");
|
||||
break;
|
||||
case 3:
|
||||
m_button->SetLabel("simple Text<br/> With Some Other Lines<br/> and more if you want ...<br/> plop");
|
||||
break;
|
||||
case 4:
|
||||
m_button->SetLabel("simple <bold>Text</bold> with bold");
|
||||
break;
|
||||
case 5:
|
||||
m_button->SetLabel("simple <italic>Text</italic> with italic");
|
||||
break;
|
||||
case 6:
|
||||
m_button->SetLabel("simple <italic><bold>Text</bold></italic> with italic bold");
|
||||
break;
|
||||
case 7:
|
||||
m_button->SetLabel("");
|
||||
break;
|
||||
case 8:
|
||||
m_button->SetLabel("simple <font color=\"#FFFF0088\">Text</font> with colored text");
|
||||
break;
|
||||
default:
|
||||
m_button->SetLabel("My <font color=\"#FF0000\">Button</font> <br/> And Some under line<br/> plop <br/> and an other super long line ...");
|
||||
break;
|
||||
}
|
||||
countTextID++;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void TestButton::OnObjectRemove(ewol::EObject * removeObject)
|
||||
{
|
||||
widget::SizerVert::OnObjectRemove(removeObject);
|
||||
if (m_button == removeObject) {
|
||||
m_button = NULL;
|
||||
}
|
||||
if (m_spacer[0] == removeObject) {
|
||||
m_spacer[0] = NULL;
|
||||
}
|
||||
if (m_spacer[1] == removeObject) {
|
||||
m_spacer[1] = NULL;
|
||||
}
|
||||
if (m_spacer[2] == removeObject) {
|
||||
m_spacer[2] = NULL;
|
||||
}
|
||||
if (m_spacer[3] == removeObject) {
|
||||
m_spacer[3] = NULL;
|
||||
}
|
||||
}
|
35
test/human/appl/TestButton.h
Normal file
35
test/human/appl/TestButton.h
Normal file
@ -0,0 +1,35 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2010, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license BSD v3 (see license file)
|
||||
*/
|
||||
|
||||
#ifndef __TEST_BUTTON_H__
|
||||
#define __TEST_BUTTON_H__
|
||||
|
||||
#include <appl/Debug.h>
|
||||
#include <ewol/widget/Widget.h>
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/Spacer.h>
|
||||
#include <ewol/widget/SizerVert.h>
|
||||
|
||||
class TestButton : public widget::SizerVert
|
||||
{
|
||||
private:
|
||||
widget::Button* m_button;
|
||||
widget::Spacer* m_spacer[4];
|
||||
public:
|
||||
// Constructeur
|
||||
TestButton(void);
|
||||
virtual ~TestButton(void);
|
||||
// Derived function
|
||||
virtual const char * const GetObjectType(void) { return "TestButton"; };
|
||||
// Derived function
|
||||
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data);
|
||||
// Derived function
|
||||
virtual void OnObjectRemove(ewol::EObject * removeObject);
|
||||
};
|
||||
|
||||
#endif
|
332
test/human/appl/TestButtonColor.cpp
Normal file
332
test/human/appl/TestButtonColor.cpp
Normal file
@ -0,0 +1,332 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2010, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license BSD v3 (see license file)
|
||||
*/
|
||||
|
||||
|
||||
#include <appl/Debug.h>
|
||||
#include <appl/TestButtonColor.h>
|
||||
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/CheckBox.h>
|
||||
#include <ewol/widget/SizerHori.h>
|
||||
#include <ewol/widget/SizerVert.h>
|
||||
#include <ewol/widget/Label.h>
|
||||
#include <ewol/widget/Entry.h>
|
||||
#include <ewol/widget/List.h>
|
||||
#include <ewol/widget/ContextMenu.h>
|
||||
#include <ewol/widget/PopUp.h>
|
||||
#include <ewol/widget/Slider.h>
|
||||
#include <ewol/widget/Menu.h>
|
||||
#include <ewol/widget/meta/FileChooser.h>
|
||||
#include <ewol/widget/meta/Parameter.h>
|
||||
#include <ewol/widget/WidgetManager.h>
|
||||
|
||||
|
||||
static const char * l_eventChangeExpendX = "event-change-expend-X";
|
||||
static const char * l_eventChangeExpendY = "event-change-expend-Y";
|
||||
static const char * l_eventChangeFillX = "event-change-fill-X";
|
||||
static const char * l_eventChangeFillY = "event-change-fill-Y";
|
||||
static const char * l_eventChangeToggle = "event-change-toggle-mode";
|
||||
static const char * l_eventChangeText = "event-change-text";
|
||||
static const char * l_eventChangeTextToggle = "event-change-text-toggle";
|
||||
static const char * l_eventChangeImage = "event-change-image";
|
||||
static const char * l_eventChangeImageToggle = "event-change-image-toggle";
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "TestButton"
|
||||
|
||||
TestButtonColor::TestButtonColor(void)
|
||||
{
|
||||
APPL_DEBUG("CREATE "__class__" ... ");
|
||||
widget::SizerVert* mySizerVert2 = NULL;
|
||||
widget::SizerHori* mySizerHori = NULL;
|
||||
widget::Button* myButton = NULL;
|
||||
/*
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("Expend X <br/> (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Expend X <br/> (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendX);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Expend Y <br/> (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Expend Y <br/> (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendY);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Toggle<br/>(false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Toggle<br/><b>(true)</b>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeToggle);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Text On toggle state<br/>(false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Text On toggle state<br/><b>(true)</b>");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeTextToggle);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
SubWidgetAdd(mySizerHori);
|
||||
myButton = new widget::Button("Fill X (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Fill X (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillX);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Fill Y (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Fill Y (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillY);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Image (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Image (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeImage);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Image Toggle (false)");
|
||||
if (NULL != myButton) {
|
||||
myButton->SetToggleMode(true);
|
||||
myButton->SetLabelToggle("Image Toggle (true)");
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeImageToggle);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
myButton = new widget::Button("Change Text");
|
||||
if (NULL != myButton) {
|
||||
myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeText);
|
||||
mySizerHori->SubWidgetAdd(myButton);
|
||||
}
|
||||
*/
|
||||
int32_t idSpacer=0;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(true);
|
||||
m_spacer[idSpacer]->SetFillY(false);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0xFF000080);
|
||||
SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
mySizerHori = new widget::SizerHori();
|
||||
if (NULL == mySizerHori) {
|
||||
APPL_DEBUG("Allocation error mySizerHori");
|
||||
return;
|
||||
}
|
||||
SubWidgetAdd(mySizerHori);
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(false);
|
||||
m_spacer[idSpacer]->SetFillY(true);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x00FF0080);
|
||||
mySizerHori->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
m_button = new widget::ButtonColor(draw::color::olive);
|
||||
if (NULL != m_button) {
|
||||
m_button->SetExpendX(true);
|
||||
m_button->SetExpendY(true);
|
||||
m_button->SetFillX(false);
|
||||
m_button->SetFillY(false);
|
||||
m_button->RegisterOnEvent(this, ewolEventButtonColorChange);
|
||||
mySizerHori->SubWidgetAdd(m_button);
|
||||
}
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(false);
|
||||
m_spacer[idSpacer]->SetFillY(true);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x0000FF80);
|
||||
mySizerHori->SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
|
||||
idSpacer++;
|
||||
m_spacer[idSpacer] = new widget::Spacer();
|
||||
if (NULL != m_spacer[idSpacer]) {
|
||||
m_spacer[idSpacer]->SetExpendX(false);
|
||||
m_spacer[idSpacer]->SetExpendY(false);
|
||||
m_spacer[idSpacer]->SetFillX(true);
|
||||
m_spacer[idSpacer]->SetFillY(false);
|
||||
m_spacer[idSpacer]->SetSize(10);
|
||||
m_spacer[idSpacer]->SetColor(0x00FFFF80);
|
||||
SubWidgetAdd(m_spacer[idSpacer]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TestButtonColor::~TestButtonColor(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TestButtonColor::OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data)
|
||||
{
|
||||
widget::SizerVert::OnReceiveMessage(CallerObject, eventId, data);
|
||||
|
||||
//APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" ==> data=\"" << data << "\"" );
|
||||
if (m_button == CallerObject) {
|
||||
APPL_WARNING("Receive Event from tested Button ... : \"" << eventId << "\" ==> data=\"" << data << "\"" );
|
||||
}
|
||||
/*
|
||||
if (eventId == l_eventChangeExpendX) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetExpendX(true);
|
||||
} else {
|
||||
m_button->SetExpendX(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeExpendY) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetExpendY(true);
|
||||
} else {
|
||||
m_button->SetExpendY(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeFillX) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetFillX(true);
|
||||
} else {
|
||||
m_button->SetFillX(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeFillY) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetFillY(true);
|
||||
} else {
|
||||
m_button->SetFillY(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeToggle) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetToggleMode(true);
|
||||
} else {
|
||||
m_button->SetToggleMode(false);
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeTextToggle) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetLabelToggle("A stupid very long text on toggle <br/><br/> and on multiple lines");
|
||||
} else {
|
||||
m_button->SetLabelToggle("");
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeImage) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetImage("THEME:GUI:icon.png");
|
||||
m_button->SetImageSize(50);
|
||||
} else {
|
||||
m_button->SetImage("");
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeImageToggle) {
|
||||
if (NULL!=m_button) {
|
||||
if (data=="1") {
|
||||
m_button->SetImageToggle("THEME:GUI:icon.png");
|
||||
} else {
|
||||
m_button->SetImageToggle("");
|
||||
}
|
||||
}
|
||||
} else if (eventId == l_eventChangeText) {
|
||||
if (NULL!=m_button) {
|
||||
static int32_t countTextID = 1;
|
||||
switch (countTextID%10)
|
||||
{
|
||||
case 0:
|
||||
m_button->SetLabel("simple Text");
|
||||
break;
|
||||
case 1:
|
||||
m_button->SetLabel("<left>Align Left</left>");
|
||||
break;
|
||||
case 2:
|
||||
m_button->SetLabel("<right>Align right</right>");
|
||||
break;
|
||||
case 3:
|
||||
m_button->SetLabel("simple Text<br/> With Some Other Lines<br/> and more if you want ...<br/> plop");
|
||||
break;
|
||||
case 4:
|
||||
m_button->SetLabel("simple <bold>Text</bold> with bold");
|
||||
break;
|
||||
case 5:
|
||||
m_button->SetLabel("simple <italic>Text</italic> with italic");
|
||||
break;
|
||||
case 6:
|
||||
m_button->SetLabel("simple <italic><bold>Text</bold></italic> with italic bold");
|
||||
break;
|
||||
case 7:
|
||||
m_button->SetLabel("");
|
||||
break;
|
||||
case 8:
|
||||
m_button->SetLabel("simple <font color=\"#FFFF0088\">Text</font> with colored text");
|
||||
break;
|
||||
default:
|
||||
m_button->SetLabel("My <font color=\"#FF0000\">Button</font> <br/> And Some under line<br/> plop <br/> and an other super long line ...");
|
||||
break;
|
||||
}
|
||||
countTextID++;
|
||||
}
|
||||
}*/
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void TestButtonColor::OnObjectRemove(ewol::EObject * removeObject)
|
||||
{
|
||||
widget::SizerVert::OnObjectRemove(removeObject);
|
||||
if (m_button == removeObject) {
|
||||
m_button = NULL;
|
||||
}
|
||||
if (m_spacer[0] == removeObject) {
|
||||
m_spacer[0] = NULL;
|
||||
}
|
||||
if (m_spacer[1] == removeObject) {
|
||||
m_spacer[1] = NULL;
|
||||
}
|
||||
if (m_spacer[2] == removeObject) {
|
||||
m_spacer[2] = NULL;
|
||||
}
|
||||
if (m_spacer[3] == removeObject) {
|
||||
m_spacer[3] = NULL;
|
||||
}
|
||||
}
|
36
test/human/appl/TestButtonColor.h
Normal file
36
test/human/appl/TestButtonColor.h
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2010, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license BSD v3 (see license file)
|
||||
*/
|
||||
|
||||
#ifndef __TEST_BUTTON_COLOR_H__
|
||||
#define __TEST_BUTTON_COLOR_H__
|
||||
|
||||
#include <appl/Debug.h>
|
||||
#include <ewol/widget/Widget.h>
|
||||
#include <ewol/widget/Button.h>
|
||||
#include <ewol/widget/ButtonColor.h>
|
||||
#include <ewol/widget/Spacer.h>
|
||||
#include <ewol/widget/SizerVert.h>
|
||||
|
||||
class TestButtonColor : public widget::SizerVert
|
||||
{
|
||||
private:
|
||||
widget::ButtonColor* m_button;
|
||||
widget::Spacer* m_spacer[4];
|
||||
public:
|
||||
// Constructeur
|
||||
TestButtonColor(void);
|
||||
virtual ~TestButtonColor(void);
|
||||
// Derived function
|
||||
virtual const char * const GetObjectType(void) { return "TestButton"; };
|
||||
// Derived function
|
||||
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data);
|
||||
// Derived function
|
||||
virtual void OnObjectRemove(ewol::EObject * removeObject);
|
||||
};
|
||||
|
||||
#endif
|
0
test/human/appl/TestCheckBox.cpp
Normal file
0
test/human/appl/TestCheckBox.cpp
Normal file
0
test/human/appl/TestCheckBox.h
Normal file
0
test/human/appl/TestCheckBox.h
Normal file
0
test/human/appl/TestEntry.cpp
Normal file
0
test/human/appl/TestEntry.cpp
Normal file
0
test/human/appl/TestEntry.h
Normal file
0
test/human/appl/TestEntry.h
Normal file
0
test/human/appl/TestImage.cpp
Normal file
0
test/human/appl/TestImage.cpp
Normal file
0
test/human/appl/TestImage.h
Normal file
0
test/human/appl/TestImage.h
Normal file
0
test/human/appl/TestLabel.cpp
Normal file
0
test/human/appl/TestLabel.cpp
Normal file
0
test/human/appl/TestLabel.h
Normal file
0
test/human/appl/TestLabel.h
Normal file
0
test/human/appl/TestProgressBar.cpp
Normal file
0
test/human/appl/TestProgressBar.cpp
Normal file
0
test/human/appl/TestProgressBar.h
Normal file
0
test/human/appl/TestProgressBar.h
Normal file
0
test/human/appl/TestSlider.cpp
Normal file
0
test/human/appl/TestSlider.cpp
Normal file
0
test/human/appl/TestSlider.h
Normal file
0
test/human/appl/TestSlider.h
Normal file
BIN
test/human/data/icon.png
Normal file
BIN
test/human/data/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
@ -7,5 +7,8 @@
|
||||
# Globals debug tool:
|
||||
FILE_LIST:= appl/Debug.cpp \
|
||||
appl/init.cpp \
|
||||
appl/MainWindows.cpp
|
||||
appl/MainWindows.cpp \
|
||||
appl/TestButton.cpp \
|
||||
appl/TestButtonColor.cpp
|
||||
|
||||
LOCAL_COPY_FOLDERS := data/*:theme/default \
|
||||
|
Loading…
x
Reference in New Issue
Block a user