|
|
(35 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| <nowiki>
| | <!-- |
| #include "ExampleControl.h"
| |
| #include "GfxWrap.h"
| |
| #include "GUIStreamReader.h"
| |
| #include "GUIStreamWriter.h"
| |
| #include "GUIStreamingException.h"
| |
| #include "GUIControlResource.h"
| |
| #include "GUIMemLeakWatcher.h" // <-- has to be the last include
| |
|
| |
|
| #define EXAMPLE_CONTROL_CLASS_VERSION 1
| | https://developers.google.com/speed/webp/docs/riff_container |
| // The minimal class version allowed. | | https://chromium.googlesource.com/webm/libvpx |
| #define EXAMPLE_CONTROL_CLASS_MIN_VERSION 1
| |
|
| |
|
| ExampleControl::ExampleControl(
| | vera++ -> checkstlye output -> warnings next generation (input as logfile) |
| CGUICompositeObject *const pParent,
| |
| const eC_Value &vX, const eC_Value &vY,
| |
| const eC_Value &vWidth, const eC_Value &vHeight,
| |
| eC_UInt uiInnerColor, eC_UInt uiBorderColor,
| |
| eC_Value vBorderWidth,
| |
| const ObjectHandle_t &eID)
| |
| : CGUICompositeObject(pParent, vX, vY, vWidth, vHeight, eID),
| |
| m_uiInnerColor(uiInnerColor),
| |
| m_uiBorderColor(uiBorderColor),
| |
| m_vBorderWidth(vBorderWidth)
| |
| {
| |
| SetXMLTag("ExampleControl");
| |
| }
| |
|
| |
|
| ExampleControl::ExampleControl()
| | google code stylguide |
| : m_uiInnerColor(0), m_uiBorderColor(0), m_vBorderWidth(eC_FromInt(0)) | | https://google.github.io/styleguide/cppguide.html |
| {
| |
| SetXMLTag("ExampleControl");
| |
| }
| |
|
| |
|
| void ExampleControl::SetCenterColor(eC_UInt uiInnerColor)
| | google styleguide cpplint |
| {
| | https://github.com/google/styleguide |
| if (uiInnerColor != m_uiInnerColor)
| |
| {
| |
| m_uiInnerColor = uiInnerColor;
| |
| InvalidateArea();
| |
| }
| |
| }
| |
|
| |
|
| void ExampleControl::SetBorderColor(eC_UInt uiBorderColor)
| | find bugs plugin -> warnings next generation |
| {
| |
| if (uiBorderColor != m_uiBorderColor)
| |
| {
| |
| m_uiBorderColor = uiBorderColor;
| |
| InvalidateArea();
| |
| }
| |
| }
| |
|
| |
|
| void ExampleControl::SetBorderWidth(eC_Value vBorderWidth)
| | tags (e.g. TODO, FIXME, ...) can be found and listed |
| {
| |
| if (vBorderWidth != m_vBorderWidth)
| |
| {
| |
| m_vBorderWidth = vBorderWidth;
| |
| InvalidateArea();
| |
| }
| |
| }
| |
|
| |
|
| void ExampleControl::Flip(const eC_Bool& rbVertical)
| | --> |
| {
| |
| if (rbVertical)
| |
| {
| |
| // flip vertical means swap left and right side
| |
| CGUIObject* pkCurrentObject;
| |
| for (int i = 0; i < GetNumberOfChildren(); ++i)
| |
| {
| |
| pkCurrentObject = GetChild(i);
| |
| if (pkCurrentObject->IsCompositeObject())
| |
| pkCurrentObject->IsAnimating(); //Flip(rbVertical);
| |
| else
| |
| {
| |
| pkCurrentObject->SetRelXPos(GetWidth() - (pkCurrentObject->GetWidth() + pkCurrentObject->GetRelXPos()));
| |
| pkCurrentObject->InvalidateArea();
| |
| }
| |
| }
| |
| }
| |
| else
| |
| {
| |
| // flip horizontal means swap top and bottom side
| |
| CGUIObject* pkCurrentObject;
| |
| for (int i = 0; i < GetNumberOfChildren(); ++i)
| |
| {
| |
| pkCurrentObject = GetChild(i);
| |
| if (pkCurrentObject->IsCompositeObject())
| |
| pkCurrentObject->IsAnimating(); //Flip(rbVertical);
| |
| else
| |
| {
| |
| pkCurrentObject->SetRelYPos(GetHeight() - (pkCurrentObject->GetHeight() + pkCurrentObject->GetRelYPos()));
| |
| pkCurrentObject->InvalidateArea();
| |
| }
| |
| }
| |
| | |
| }
| |
| }
| |
| | |
| void ExampleControl::Rotate(const eC_Int& riDegrees)
| |
| {
| |
| switch (riDegrees)
| |
| {
| |
| case 0:
| |
| default:
| |
| // do nothing
| |
| break;
| |
| | |
| case 90:
| |
| {
| |
| // rotate 90 degrees clockwise
| |
| // width and height will be swapped
| |
| // x and y of every object will be re-calculated and swapped
| |
| | |
| CGUIRect r = GetRelRect();
| |
| SetWidth(r.GetHeight());
| |
| SetHeight(r.GetWidth());
| |
| CGUIObject* pkCurrentObject;
| |
| for (int i = 0; i < GetNumberOfChildren(); ++i)
| |
| {
| |
| pkCurrentObject = GetChild(i);
| |
| r = pkCurrentObject->GetRelRect();
| |
| pkCurrentObject->SetRelXPos(GetWidth() - (r.GetWidth() + r.GetY1()));
| |
| pkCurrentObject->SetRelYPos(r.GetX1());
| |
| pkCurrentObject->SetWidth(r.GetHeight());
| |
| pkCurrentObject->SetHeight(r.GetWidth());
| |
| }
| |
| InvalidateArea();
| |
| InvalidateChildren();
| |
| }
| |
| break;
| |
| | |
| case 180:
| |
| Flip(false);
| |
| Flip(true);
| |
| break;
| |
| | |
| case 270:
| |
| {
| |
| // rotate 270 degrees clockwise
| |
| // width and height will be swapped
| |
| // x and y of every object will be swapped
| |
| | |
| CGUIRect r = GetRelRect();
| |
| SetWidth(r.GetHeight());
| |
| SetHeight(r.GetWidth());
| |
| CGUIObject* pkCurrentObject;
| |
| for (int i = 0; i < GetNumberOfChildren(); ++i)
| |
| {
| |
| pkCurrentObject = GetChild(i);
| |
| r = pkCurrentObject->GetRelRect();
| |
| pkCurrentObject->SetRelXPos(r.GetY1());
| |
| pkCurrentObject->SetRelYPos(r.GetX1());
| |
| pkCurrentObject->SetWidth(r.GetHeight());
| |
| pkCurrentObject->SetHeight(r.GetWidth());
| |
| }
| |
| InvalidateArea();
| |
| InvalidateChildren();
| |
| }
| |
| break;
| |
| }
| |
| }
| |
| | |
| eC_Bool ExampleControl::DoDraw()
| |
| {
| |
| CGUIRect kAbsRect(GetAbsRect());
| |
| if (m_vBorderWidth != eC_FromInt(0))
| |
| {
| |
| GETGFX.SetForegroundColor(m_uiBorderColor);
| |
| GETGFX.FilledRect(kAbsRect);
| |
| kAbsRect.Expand(-m_vBorderWidth);
| |
| }
| |
| GETGFX.SetForegroundColor(m_uiInnerColor);
| |
| GETGFX.FilledRect(kAbsRect);
| |
| return true;
| |
| }
| |
| | |
| #if defined(GUILIANI_STREAM_GUI)
| |
| void ExampleControl::ReadFromStream()
| |
| {
| |
| ReadStreamingHeader(EXAMPLE_CONTROL_CLASS_VERSION, EXAMPLE_CONTROL_CLASS_MIN_VERSION);
| |
| | |
| CGUICompositeObject::ReadFromStream();
| |
| | |
| m_uiInnerColor = GETINPUTSTREAM.READ_HEX("InnerColor");
| |
| m_uiBorderColor = GETINPUTSTREAM.READ_HEX("BorderColor");
| |
| m_vBorderWidth = eC_FromFloat(GETINPUTSTREAM.READ_FLOAT("BorderWidth"));
| |
| }
| |
| #endif
| |
| | |
| #if defined(GUILIANI_WRITE_GUI)
| |
| void ExampleControl::WriteToStream(const eC_Bool bWriteClassID)
| |
| {
| |
| WriteStreamingHeader(bWriteClassID, XMLTAG_CONTROLCLASSID, CTL_EXAMPLE, EXAMPLE_CONTROL_CLASS_VERSION);
| |
| | |
| CGUICompositeObject::WriteToStream();
| |
| | |
| GETOUTPUTSTREAM.WriteHex(m_uiInnerColor, "InnerColor");
| |
| GETOUTPUTSTREAM.WriteHex(m_uiBorderColor, "BorderColor");
| |
| GETOUTPUTSTREAM.WriteFloat(eC_ToFloat(m_vBorderWidth), "BorderWidth");
| |
| | |
| WriteStreamingFooter(bWriteClassID);
| |
| }
| |
| #endif
| |
| | |
| ----------------
| |
| | |
| CGfxWrapeGML* pkWrap = dynamic_cast<CGfxWrapeGML*>(&GETGFX);
| |
| if (NULL != pkWrap)
| |
| {
| |
| eGML_Screen* pkScreen = pkWrap->GetScreen();
| |
| unsigned short* memory = (unsigned short*)pkScreen->Lock();
| |
| | |
| eC_UInt uiWidth = pkScreen->GetWidth();
| |
| eC_UInt uiHeight = pkScreen->GetHeight();
| |
| | |
| memset(memory, 0xf1, uiWidth * uiHeight);
| |
| for (eC_UInt y = 0; y < uiHeight; ++y)
| |
| {
| |
| for (eC_UInt x = 0; x < uiWidth; ++x)
| |
| {
| |
| unsigned short val = memory[y * uiWidth + x];
| |
| memory[y * uiWidth + x] = (val + (x * y)) & 0xffff;
| |
| }
| |
| }
| |
| | |
| pkScreen->Unlock();
| |
| | |
| // pkScreen->DrawLine(eGML_Vector2(0, 0), eGML_Vector2(10, 10), 0xff004400, 0, 1, 1);
| |
| }
| |
| | |
| ----------------
| |
| </nowiki>
| |