const String JucerFillType::toString() const { switch (mode) { case solidColour: return T("solid: ") + colourToHex (colour); case linearGradient: case radialGradient: return (mode == linearGradient ? T("linear: ") : T(" radial: ")) + positionToString (gradPos1) + T(", ") + positionToString (gradPos2) + T(", 0=") + colourToHex (gradCol1) + T(", 1=") + colourToHex (gradCol2); case imageBrush: return T("image: ") + imageResourceName + T(", ") + String (imageOpacity) + T(", ") + positionToString (imageAnchor); default: jassertfalse break; } return String::empty; }
XmlElement* ComponentTypeHandler::createXmlFor (Component* comp, const ComponentLayout* layout) { XmlElement* e = new XmlElement (getXmlTagName()); e->setAttribute ("name", comp->getName()); e->setAttribute ("id", String::toHexString (getComponentId (comp))); e->setAttribute ("memberName", comp->getProperties() ["memberName"].toString()); e->setAttribute ("virtualName", comp->getProperties() ["virtualName"].toString()); e->setAttribute ("explicitFocusOrder", comp->getExplicitFocusOrder()); RelativePositionedRectangle pos (getComponentPosition (comp)); pos.updateFromComponent (*comp, layout); pos.applyToXml (*e); SettableTooltipClient* const ttc = dynamic_cast <SettableTooltipClient*> (comp); if (ttc != 0 && ttc->getTooltip().isNotEmpty()) e->setAttribute ("tooltip", ttc->getTooltip()); for (int i = 0; i < colours.size(); ++i) { if (comp->isColourSpecified (colours[i]->colourId)) { e->setAttribute (colours[i]->xmlTagName, colourToHex (comp->findColour (colours[i]->colourId))); } } return e; }
//============================================================================== const String colourToCode (const Colour& col) { #define COL(col) Colours::col, const Colour colours[] = { #include "jucer_Colours.h" Colours::transparentBlack }; #undef COL #define COL(col) #col, static const char* colourNames[] = { #include "jucer_Colours.h" 0 }; #undef COL for (int i = 0; i < numElementsInArray (colourNames) - 1; ++i) if (col == colours[i]) return "Colours::" + String (colourNames[i]); return "Colour (0x" + colourToHex (col) + ")"; }
const Colour getColourXml (const XmlElement& xml, const char* const attName, const Colour& defaultColour) { return Colour (xml.getStringAttribute (attName, colourToHex (defaultColour)).getHexValue32()); }
void setColourXml (XmlElement& xml, const char* const attName, const Colour& colour) { xml.setAttribute (attName, colourToHex (colour)); }