void JucerDocument::refreshAllPropertyComps() { if (ComponentLayout* l = getComponentLayout()) l->getSelectedSet().changed(); for (int i = getNumPaintRoutines(); --i >= 0;) { getPaintRoutine (i)->getSelectedElements().changed(); getPaintRoutine (i)->getSelectedPoints().changed(); } }
void JucerDocument::fillInPaintCode (GeneratedCode& code) const { for (int i = 0; i < getNumPaintRoutines(); ++i) getPaintRoutine (i) ->fillInGeneratedCode (code, code.getCallbackCode (String::empty, "void", "paint (Graphics& g)", false)); }
void ButtonDocument::fillInPaintCode (GeneratedCode& code) const { jassert (paintStatesEnabled [normalOff]); String paintCode [7]; for (int i = 0; i < 7; ++i) if (paintStatesEnabled [i]) paintRoutines[i]->fillInGeneratedCode (code, paintCode [i]); String& s = code.getCallbackCode ("public Button", "void", "paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown)", false); int numPaintRoutines = getNumPaintRoutines(); if (paintStatesEnabled [background]) { s << paintCode [background] << "\n"; --numPaintRoutines; } if (numPaintRoutines == 1) { s << paintCode [normalOff]; } else if (numPaintRoutines == downOff && (paintStatesEnabled [overOff] || paintStatesEnabled [downOff] || paintStatesEnabled [normalOn])) { if (paintStatesEnabled [normalOn]) { s << "if (getToggleState())\n{\n " << indentCode (paintCode [normalOn], 4).trimEnd(); } else if (paintStatesEnabled [overOff]) { s << "if (isButtonDown || isMouseOverButton)\n{\n " << indentCode (paintCode [overOff], 4).trimEnd(); } else { s << "if (isButtonDown)\n{\n " << indentCode (paintCode [downOff], 4).trimEnd(); } s << "\n}\nelse\n{\n " << indentCode (paintCode [normalOff], 4).trimEnd() << "\n}\n"; } else if (numPaintRoutines == normalOn && paintStatesEnabled [overOff] && paintStatesEnabled [downOff]) { s << "if (isButtonDown)\n{\n " << indentCode (paintCode [downOff], 4).trimEnd() << "\n}\nelse if (isMouseOverButton)\n{\n " << indentCode (paintCode [overOff], 4).trimEnd() << "\n}\nelse\n{\n " << indentCode (paintCode [normalOff], 4).trimEnd() << "\n}\n"; } else { if (paintStatesEnabled [normalOn] || paintStatesEnabled [overOn] || paintStatesEnabled [downOn]) { s << "switch (getToggleState() ? (isButtonDown ? " << chooseBestEnabledPaintRoutine (downOn) << " : (isMouseOverButton ? " << chooseBestEnabledPaintRoutine (overOn) << " : " << chooseBestEnabledPaintRoutine (normalOn) << "))\n : (isButtonDown ? " << chooseBestEnabledPaintRoutine (downOff) << " : (isMouseOverButton ? " << chooseBestEnabledPaintRoutine (overOff) << " : 0)))\n{\n"; } else { s << "switch (isButtonDown ? " << chooseBestEnabledPaintRoutine (downOff) << " : (isMouseOverButton ? " << chooseBestEnabledPaintRoutine (overOff) << " : 0))\n{\n"; } for (int i = 0; i < 6; ++i) { if (paintStatesEnabled [i]) { s << "case " << i << ":\n {\n " << indentCode (paintCode [i], 8).trimEnd() << "\n break;\n }\n\n"; } } s << "default:\n break;\n}\n"; } }