From a3967049c5449eb9ba2e98acf3706ff547d9dc2d Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Fri, 12 Apr 2013 22:37:23 +0200 Subject: [PATCH] [DEV] add image test --- sources/appl/MainWindows.cpp | 22 +++- sources/appl/MainWindows.h | 2 + sources/appl/TestButton.cpp | 4 +- sources/appl/TestImage.cpp | 228 +++++++++++++++++++++++++++++++++++ sources/appl/TestImage.h | 34 ++++++ sources/file.mk | 1 + 6 files changed, 288 insertions(+), 3 deletions(-) diff --git a/sources/appl/MainWindows.cpp b/sources/appl/MainWindows.cpp index 9532956..5628d17 100644 --- a/sources/appl/MainWindows.cpp +++ b/sources/appl/MainWindows.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include @@ -39,7 +40,8 @@ static const char * l_eventChangeWidgetPrevious = "event-change-widget-test-pre MainWindows::MainWindows(void) : m_idWidget(0), - m_subWidget(NULL) + m_subWidget(NULL), + m_testName(NULL) { APPL_DEBUG("CREATE WINDOWS ... "); widget::Sizer* mySizerHori = NULL; @@ -78,6 +80,10 @@ MainWindows::MainWindows(void) : myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeWidgetNext); mySizerHori->SubWidgetAdd(myButton); } + m_testName = new widget::Label("none"); + if (NULL != m_testName) { + mySizerHori->SubWidgetAdd(m_testName); + } widget::Spacer* mySpacer = new widget::Spacer(); if (NULL != mySpacer) { mySpacer->SetExpand(bvec2(false,false)); @@ -138,30 +144,42 @@ void MainWindows::OnReceiveMessage(ewol::EObject * CallerObject, const char * ev m_subWidget->SetExpand(bvec2(true,true)); m_sizerVert->SubWidgetAdd(m_subWidget); } + if (m_testName!=NULL) { m_testName->SetLabel("Label"); }; break; case 1: m_subWidget = (ewol::Widget*)new TestButton(); if (NULL != m_subWidget) { m_sizerVert->SubWidgetAdd(m_subWidget); } + if (m_testName!=NULL) { m_testName->SetLabel("TestButton"); }; break; case 2: m_subWidget = (ewol::Widget*)new TestButtonColor(); if (NULL != m_subWidget) { m_sizerVert->SubWidgetAdd(m_subWidget); } + if (m_testName!=NULL) { m_testName->SetLabel("TestButtonColor"); }; break; case 3: m_subWidget = (ewol::Widget*)new TestLabel(); if (NULL != m_subWidget) { m_sizerVert->SubWidgetAdd(m_subWidget); } + if (m_testName!=NULL) { m_testName->SetLabel("TestLabel"); }; break; case 4: + m_subWidget = (ewol::Widget*)new TestImage(); + if (NULL != m_subWidget) { + m_sizerVert->SubWidgetAdd(m_subWidget); + } + if (m_testName!=NULL) { m_testName->SetLabel("TestImage"); }; + break; + case 5: m_subWidget = (ewol::Widget*)new TestScene(); if (NULL != m_subWidget) { m_sizerVert->SubWidgetAdd(m_subWidget); } + if (m_testName!=NULL) { m_testName->SetLabel("TestScene"); }; break; } } @@ -173,5 +191,7 @@ void MainWindows::OnObjectRemove(ewol::EObject * removeObject) m_subWidget = NULL; } else if (m_sizerVert == removeObject) { m_sizerVert = NULL; + } else if (m_testName == removeObject) { + m_testName = NULL; } } diff --git a/sources/appl/MainWindows.h b/sources/appl/MainWindows.h index c24a905..12c6ee7 100644 --- a/sources/appl/MainWindows.h +++ b/sources/appl/MainWindows.h @@ -14,6 +14,7 @@ #include #include #include +#include #include class MainWindows : public ewol::Windows @@ -21,6 +22,7 @@ class MainWindows : public ewol::Windows private: widget::Sizer* m_sizerVert; ewol::Widget* m_subWidget; + widget::Label* m_testName; int32_t m_idWidget; public: // Constructeur diff --git a/sources/appl/TestButton.cpp b/sources/appl/TestButton.cpp index b851872..fa7eeee 100644 --- a/sources/appl/TestButton.cpp +++ b/sources/appl/TestButton.cpp @@ -187,9 +187,9 @@ void TestButton::OnReceiveMessage(ewol::EObject * CallerObject, const char * eve widget::Sizer::OnReceiveMessage(CallerObject, eventId, data); //APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" ==> data=\"" << data << "\"" ); - //if (m_testWidget == CallerObject) { + if (m_testWidget == CallerObject) { APPL_WARNING("Receive Event from tested Button ... : \"" << eventId << "\" ==> data=\"" << data << "\"" ); - //} + } if (eventId == l_eventChangeExpendX) { if (NULL!=m_testWidget) { if (data=="1") { diff --git a/sources/appl/TestImage.cpp b/sources/appl/TestImage.cpp index e69de29..2fd3f5d 100644 --- a/sources/appl/TestImage.cpp +++ b/sources/appl/TestImage.cpp @@ -0,0 +1,228 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2010, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +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_eventChangeImage = "event-change-image"; + +#undef __class__ +#define __class__ "TestImage" + +TestImage::TestImage(void) : + widget::Sizer(widget::Sizer::modeVert), + m_testWidget(NULL) +{ + APPL_CRITICAL("Create "__class__" (start)"); + widget::Sizer* mySizerVert2 = NULL; + widget::Sizer* mySizerHori = NULL; + widget::Button* myButton = NULL; + + mySizerHori = new widget::Sizer(widget::Sizer::modeHori); + if (NULL == mySizerHori) { + APPL_DEBUG("Allocation error mySizerHori"); + return; + } + SubWidgetAdd(mySizerHori); + myButton = new widget::Button(); + if (NULL != myButton) { + myButton->SetToggleMode(true); + myButton->SetSubWidget( new widget::Label("Expend X
(false)")); + myButton->SetSubWidgetToggle(new widget::Label("Expend X
(true)")); + myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendX); + mySizerHori->SubWidgetAdd(myButton); + } + myButton = new widget::Button(); + if (NULL != myButton) { + myButton->SetToggleMode(true); + myButton->SetSubWidget( new widget::Label("Expend Y
(false)")); + myButton->SetSubWidgetToggle(new widget::Label("Expend Y
(true)")); + myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeExpendY); + mySizerHori->SubWidgetAdd(myButton); + } + + mySizerHori = new widget::Sizer(widget::Sizer::modeHori); + if (NULL == mySizerHori) { + APPL_DEBUG("Allocation error mySizerHori"); + return; + } + SubWidgetAdd(mySizerHori); + + myButton = new widget::Button(); + if (NULL != myButton) { + myButton->SetToggleMode(true); + myButton->SetSubWidget( new widget::Label("Fill X
(false)")); + myButton->SetSubWidgetToggle(new widget::Label("Fill X
(true)")); + myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillX); + mySizerHori->SubWidgetAdd(myButton); + } + myButton = new widget::Button(); + if (NULL != myButton) { + myButton->SetToggleMode(true); + myButton->SetSubWidget( new widget::Label("Fill Y
(false)")); + myButton->SetSubWidgetToggle(new widget::Label("Fill Y
(true)")); + myButton->RegisterOnEvent(this, ewolEventButtonValue, l_eventChangeFillY); + mySizerHori->SubWidgetAdd(myButton); + } + myButton = new widget::Button(); + if (NULL != myButton) { + myButton->SetSubWidget(new widget::Label("Change Image")); + myButton->RegisterOnEvent(this, ewolEventButtonPressed, l_eventChangeImage); + mySizerHori->SubWidgetAdd(myButton); + } + widget::Spacer* mySpacer = new widget::Spacer(); + if (NULL != mySpacer) { + mySpacer->SetExpand(bvec2(false,false)); + mySpacer->SetFill(bvec2(true,false)); + mySpacer->SetSize(10); + mySpacer->SetColor(0xFF000080); + SubWidgetAdd(mySpacer); + } + + mySizerHori = new widget::Sizer(widget::Sizer::modeHori); + if (NULL == mySizerHori) { + APPL_DEBUG("Allocation error mySizerHori"); + return; + } + SubWidgetAdd(mySizerHori); + + mySpacer = new widget::Spacer(); + if (NULL != mySpacer) { + mySpacer->SetExpand(bvec2(false,false)); + mySpacer->SetFill(bvec2(false,true)); + mySpacer->SetSize(10); + mySpacer->SetColor(0x00FF0080); + mySizerHori->SubWidgetAdd(mySpacer); + } + + m_testWidget = new widget::Image("DATA:sphere.png"); + if (NULL != m_testWidget) { + m_testWidget->SetExpand(bvec2(false,false)); + m_testWidget->SetFill(bvec2(false,false)); + //m_testWidget->RegisterOnEvent(this, ewolEventButtonValue); + mySizerHori->SubWidgetAdd(m_testWidget); + } + + mySpacer = new widget::Spacer(); + if (NULL != mySpacer) { + mySpacer->SetExpand(bvec2(false,false)); + mySpacer->SetFill(bvec2(false,true)); + mySpacer->SetSize(10); + mySpacer->SetColor(0x0000FF80); + mySizerHori->SubWidgetAdd(mySpacer); + } + + mySpacer = new widget::Spacer(); + if (NULL != mySpacer) { + mySpacer->SetExpand(bvec2(false,false)); + mySpacer->SetFill(bvec2(true,false)); + mySpacer->SetSize(10); + mySpacer->SetColor(0x00FFFF80); + SubWidgetAdd(mySpacer); + } + APPL_CRITICAL("Create "__class__" (end)"); +} + + +TestImage::~TestImage(void) +{ + APPL_CRITICAL("Remove "__class__" ..."); +} + + +void TestImage::OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, const etk::UString& data) +{ + widget::Sizer::OnReceiveMessage(CallerObject, eventId, data); + + //APPL_INFO("Receive Event from the main windows ... : \"" << eventId << "\" ==> data=\"" << data << "\"" ); + if (m_testWidget == CallerObject) { + APPL_WARNING("Receive Event from tested Button ... : \"" << eventId << "\" ==> data=\"" << data << "\"" ); + } + if (eventId == l_eventChangeExpendX) { + if (NULL!=m_testWidget) { + if (data=="1") { + m_testWidget->SetExpand(bvec2(true,m_testWidget->GetExpand().y())); + } else { + m_testWidget->SetExpand(bvec2(false,m_testWidget->GetExpand().y())); + } + } + } else if (eventId == l_eventChangeExpendY) { + if (NULL!=m_testWidget) { + if (data=="1") { + m_testWidget->SetExpand(bvec2(m_testWidget->GetExpand().x(),true)); + } else { + m_testWidget->SetExpand(bvec2(m_testWidget->GetExpand().x(),false)); + } + } + } else if (eventId == l_eventChangeFillX) { + if (NULL!=m_testWidget) { + if (data=="1") { + m_testWidget->SetFill(bvec2(true,m_testWidget->GetFill().y())); + } else { + m_testWidget->SetFill(bvec2(false,m_testWidget->GetFill().y())); + } + } + } else if (eventId == l_eventChangeFillY) { + if (NULL!=m_testWidget) { + if (data=="1") { + m_testWidget->SetFill(bvec2(m_testWidget->GetFill().x(),true)); + } else { + m_testWidget->SetFill(bvec2(m_testWidget->GetFill().x(),false)); + } + } + } else if (eventId == l_eventChangeImage) { + if (NULL!=m_testWidget) { + static int32_t countID = 1; + switch (countID) + { + case 0: + m_testWidget->SetFile("DATA:stone.png"); + break; + case 1: + m_testWidget->SetFile("DATA:grass.png"); + break; + default: + m_testWidget->SetFile("DATA:sphere.png"); + countID=-1; + break; + } + countID++; + } + } + + return; +} + +void TestImage::OnObjectRemove(ewol::EObject * removeObject) +{ + widget::Sizer::OnObjectRemove(removeObject); + if (m_testWidget == removeObject) { + m_testWidget = NULL; + } +} diff --git a/sources/appl/TestImage.h b/sources/appl/TestImage.h index e69de29..0ef975e 100644 --- a/sources/appl/TestImage.h +++ b/sources/appl/TestImage.h @@ -0,0 +1,34 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2010, Edouard DUPIN, all right reserved + * + * @license BSD v3 (see license file) + */ + +#ifndef __TEST_IMAGE_H__ +#define __TEST_IMAGE_H__ + +#include +#include +#include +#include +#include +#include + +class TestImage : public widget::Sizer +{ + private: + widget::Image* m_testWidget; + public: + // Constructeur + TestImage(void); + virtual ~TestImage(void); + public: + // Derived function + virtual const char * const GetObjectType(void) { return "appl::TestImage"; }; + virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, const etk::UString& data); + virtual void OnObjectRemove(ewol::EObject * removeObject); +}; + +#endif diff --git a/sources/file.mk b/sources/file.mk index d319455..c064ec3 100644 --- a/sources/file.mk +++ b/sources/file.mk @@ -9,6 +9,7 @@ FILE_LIST:= appl/Debug.cpp \ appl/init.cpp \ appl/MainWindows.cpp \ appl/TestButton.cpp \ + appl/TestImage.cpp \ appl/TestButtonColor.cpp \ appl/TestLabel.cpp \ appl/TestScene.cpp