Change the color of the current selected dot
This commit is contained in:
parent
7031b0248d
commit
688f7a28f0
47
jni/Main.cpp
47
jni/Main.cpp
@ -129,9 +129,13 @@ const char * const drawerEventRequestOpenFile = "Drawer Request Open Fil
|
|||||||
const char * const drawerEventRequestOpenFileClosed = "Drawer Close Open File";
|
const char * const drawerEventRequestOpenFileClosed = "Drawer Close Open File";
|
||||||
const char * const drawerEventRequestOpenFileSelected = "Drawer Open Selected File";
|
const char * const drawerEventRequestOpenFileSelected = "Drawer Open Selected File";
|
||||||
|
|
||||||
|
const char * const drawerEventColorHasChange = "Drawer-select-color-change";
|
||||||
|
|
||||||
|
|
||||||
class MainWindows :public ewol::Windows
|
class MainWindows :public ewol::Windows
|
||||||
{
|
{
|
||||||
|
private:
|
||||||
|
widgetDrawer* m_drawer;
|
||||||
public:
|
public:
|
||||||
MainWindows(void)
|
MainWindows(void)
|
||||||
{
|
{
|
||||||
@ -182,6 +186,7 @@ class MainWindows :public ewol::Windows
|
|||||||
tmpColor.blue = 0.0;
|
tmpColor.blue = 0.0;
|
||||||
tmpColor.alpha = 1.0;
|
tmpColor.alpha = 1.0;
|
||||||
mybtColor->SetCurrentColor(tmpColor);
|
mybtColor->SetCurrentColor(tmpColor);
|
||||||
|
mybtColor->RegisterOnEvent(this, ewolEventButtonColorChange, drawerEventColorHasChange);
|
||||||
mySizerVert2->SubWidgetAdd(mybtColor);
|
mySizerVert2->SubWidgetAdd(mybtColor);
|
||||||
|
|
||||||
mybtColor = new ewol::ButtonColor();
|
mybtColor = new ewol::ButtonColor();
|
||||||
@ -202,14 +207,14 @@ class MainWindows :public ewol::Windows
|
|||||||
mybtColor->SetCurrentColor(tmpColor);
|
mybtColor->SetCurrentColor(tmpColor);
|
||||||
mySizerVert2->SubWidgetAdd(mybtColor);
|
mySizerVert2->SubWidgetAdd(mybtColor);
|
||||||
|
|
||||||
widgetDrawer * monDrawer = new widgetDrawer();
|
m_drawer = new widgetDrawer();
|
||||||
monDrawer->SetFontSize(11);
|
m_drawer->SetFontSize(11);
|
||||||
monDrawer->SetFontNameNormal("freefont/FreeSerif.ttf");
|
m_drawer->SetFontNameNormal("freefont/FreeSerif.ttf");
|
||||||
monDrawer->SetExpendX(true);
|
m_drawer->SetExpendX(true);
|
||||||
monDrawer->SetExpendY(true);
|
m_drawer->SetExpendY(true);
|
||||||
monDrawer->SetFillX(true);
|
m_drawer->SetFillX(true);
|
||||||
monDrawer->SetFillY(true);
|
m_drawer->SetFillY(true);
|
||||||
mySizer->SubWidgetAdd(monDrawer);
|
mySizer->SubWidgetAdd(m_drawer);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -229,6 +234,8 @@ class MainWindows :public ewol::Windows
|
|||||||
*/
|
*/
|
||||||
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data)
|
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, etk::UString data)
|
||||||
{
|
{
|
||||||
|
ewol::Windows::OnReceiveMessage(CallerObject, eventId, data);
|
||||||
|
|
||||||
DRAW_INFO("Receive Event from the main windows ... : widgetid=" << CallerObject << " ==> " << eventId << " ==> data=\"" << data << "\"" );
|
DRAW_INFO("Receive Event from the main windows ... : widgetid=" << CallerObject << " ==> " << eventId << " ==> data=\"" << data << "\"" );
|
||||||
if (eventId == drawerEventRequestOpenFile) {
|
if (eventId == drawerEventRequestOpenFile) {
|
||||||
ewol::FileChooser* tmpWidget = new ewol::FileChooser();
|
ewol::FileChooser* tmpWidget = new ewol::FileChooser();
|
||||||
@ -247,9 +254,33 @@ class MainWindows :public ewol::Windows
|
|||||||
// get the filename :
|
// get the filename :
|
||||||
etk::UString tmpData = tmpWidget->GetCompleateFileName();
|
etk::UString tmpData = tmpWidget->GetCompleateFileName();
|
||||||
DRAW_DEBUG("Request opening the file : " << tmpData);
|
DRAW_DEBUG("Request opening the file : " << tmpData);
|
||||||
|
} else if (eventId == drawerEventColorHasChange) {
|
||||||
|
// the button color has change ==> we really change the current color ...
|
||||||
|
if (NULL != CallerObject) {
|
||||||
|
ewol::ButtonColor * tmpColorButton = static_cast<ewol::ButtonColor*>(CallerObject);
|
||||||
|
color_ts tmpColor = tmpColorButton->GetCurrentColor();
|
||||||
|
if (NULL != m_drawer) {
|
||||||
|
m_drawer->SetColorOnSelected(tmpColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* @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)
|
||||||
|
{
|
||||||
|
ewol::Windows::OnObjectRemove(removeObject);
|
||||||
|
|
||||||
|
if (removeObject == m_drawer) {
|
||||||
|
m_drawer = NULL;
|
||||||
|
m_needFlipFlop = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static MainWindows * basicWindows = NULL;
|
static MainWindows * basicWindows = NULL;
|
||||||
|
@ -52,6 +52,12 @@ widgetDrawer::widgetDrawer(void)
|
|||||||
m_textColorBg.green = 0.0;
|
m_textColorBg.green = 0.0;
|
||||||
m_textColorBg.blue = 0.0;
|
m_textColorBg.blue = 0.0;
|
||||||
m_textColorBg.alpha = 0.25;
|
m_textColorBg.alpha = 0.25;
|
||||||
|
|
||||||
|
m_triangleColor.red = 0.0;
|
||||||
|
m_triangleColor.green = 1.0;
|
||||||
|
m_triangleColor.blue = 0.0;
|
||||||
|
m_triangleColor.alpha = 1.0;
|
||||||
|
|
||||||
RegisterMultiCast(drawMsgGuiLinkNew);
|
RegisterMultiCast(drawMsgGuiLinkNew);
|
||||||
SetCanHaveFocus(true);
|
SetCanHaveFocus(true);
|
||||||
}
|
}
|
||||||
@ -349,20 +355,9 @@ void widgetDrawer::OnReceiveMessage(ewol::EObject * CallerObject, const char * e
|
|||||||
tmpLink.dot[0] = m_selectedList[0];
|
tmpLink.dot[0] = m_selectedList[0];
|
||||||
tmpLink.dot[1] = m_selectedList[1];
|
tmpLink.dot[1] = m_selectedList[1];
|
||||||
tmpLink.dot[2] = m_selectedList[2];
|
tmpLink.dot[2] = m_selectedList[2];
|
||||||
tmpLink.color[0].red = 0.0;
|
tmpLink.color[0] = m_triangleColor;
|
||||||
tmpLink.color[0].green = 0.0;
|
tmpLink.color[1] = m_triangleColor;
|
||||||
tmpLink.color[0].blue = 1.0;
|
tmpLink.color[2] = m_triangleColor;
|
||||||
tmpLink.color[0].alpha = 1.0;
|
|
||||||
|
|
||||||
tmpLink.color[1].red = 0.0;
|
|
||||||
tmpLink.color[1].green = 1.0;
|
|
||||||
tmpLink.color[1].blue = 0.0;
|
|
||||||
tmpLink.color[1].alpha = 1.0;
|
|
||||||
|
|
||||||
tmpLink.color[2].red = 1.0;
|
|
||||||
tmpLink.color[2].green = 0.0;
|
|
||||||
tmpLink.color[2].blue = 0.0;
|
|
||||||
tmpLink.color[2].alpha = 1.0;
|
|
||||||
m_linkList.PushBack(tmpLink);
|
m_linkList.PushBack(tmpLink);
|
||||||
MarkToReedraw();
|
MarkToReedraw();
|
||||||
}
|
}
|
||||||
@ -380,4 +375,27 @@ void widgetDrawer::SetFontNameNormal(etk::UString fontName)
|
|||||||
if (fontID >= 0) {
|
if (fontID >= 0) {
|
||||||
m_fontNormal = fontID;
|
m_fontNormal = fontID;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void widgetDrawer::SetColorOnSelected(color_ts newColor)
|
||||||
|
{
|
||||||
|
m_triangleColor = newColor;
|
||||||
|
// Remove all selected points ...
|
||||||
|
for(int32_t iii=0; iii<m_dotList.Size() ; iii++) {
|
||||||
|
if (true == DotIsSelected(iii)) {
|
||||||
|
// Remove all link who have a selected point :
|
||||||
|
for(int32_t jjj=0 ; jjj<m_linkList.Size() ; jjj++) {
|
||||||
|
if(m_linkList[jjj].dot[0] == iii) {
|
||||||
|
m_linkList[jjj].color[0] = newColor;
|
||||||
|
}
|
||||||
|
if(m_linkList[jjj].dot[1] == iii) {
|
||||||
|
m_linkList[jjj].color[1] = newColor;
|
||||||
|
}
|
||||||
|
if(m_linkList[jjj].dot[2] == iii) {
|
||||||
|
m_linkList[jjj].color[2] = newColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MarkToReedraw();
|
||||||
}
|
}
|
@ -43,8 +43,9 @@ class widgetDrawer :public ewol::Widget
|
|||||||
virtual ~widgetDrawer(void);
|
virtual ~widgetDrawer(void);
|
||||||
virtual bool CalculateMinSize(void);
|
virtual bool CalculateMinSize(void);
|
||||||
private:
|
private:
|
||||||
color_ts m_textColorFg; //!< Text color
|
color_ts m_triangleColor; //!< color for the next element of the triangle
|
||||||
color_ts m_textColorBg; //!< Background color
|
color_ts m_textColorFg; //!< Text color
|
||||||
|
color_ts m_textColorBg; //!< Background color
|
||||||
// drawing elements :
|
// drawing elements :
|
||||||
ewol::OObject2DTextColored m_OObjectTextNormal[NB_BOUBLE_BUFFER];
|
ewol::OObject2DTextColored m_OObjectTextNormal[NB_BOUBLE_BUFFER];
|
||||||
ewol::OObject2DColored m_OObjectsColored[NB_BOUBLE_BUFFER];
|
ewol::OObject2DColored m_OObjectsColored[NB_BOUBLE_BUFFER];
|
||||||
@ -84,6 +85,7 @@ class widgetDrawer :public ewol::Widget
|
|||||||
public:
|
public:
|
||||||
void SetFontSize(int32_t size);
|
void SetFontSize(int32_t size);
|
||||||
void SetFontNameNormal(etk::UString fontName);
|
void SetFontNameNormal(etk::UString fontName);
|
||||||
|
void SetColorOnSelected(color_ts newColor);
|
||||||
protected:
|
protected:
|
||||||
virtual void OnDraw(void);
|
virtual void OnDraw(void);
|
||||||
private:
|
private:
|
||||||
|
Loading…
Reference in New Issue
Block a user