// ----------------------------------------------------------------------------- // Draws function text (spec+args) for [context] at [left,top]. // Returns a rect of the bounds of the drawn text // ----------------------------------------------------------------------------- wxRect SCallTip::drawFunctionContext( wxDC& dc, const TLFunction::Context& context, int left, int top, wxColour& col_faded, wxFont& bold) const { auto rect_func = drawFunctionSpec(dc, context, left, top); auto rect_args = drawArgs(dc, context, rect_func.GetRight() + 1, rect_func.GetTop(), col_faded, bold); return wxRect{ rect_func.GetTopLeft(), wxPoint{ std::max(rect_func.GetRight(), rect_args.GetRight()), std::max(rect_func.GetBottom(), rect_args.GetBottom()) } }; }
/** @brief The common entry point used by all interacts */ static OfxStatus interactMainEntry(const std::string &action, OfxInteractHandle handle, PropertySet inArgs, PropertySet /*outArgs*/) { OfxStatus stat = kOfxStatReplyDefault; // get the interact pointer Interact *interact = retrieveInteractPointer(handle); // if one was not made, return and do nothing if(!interact) return stat; if(action == kOfxActionDestroyInstance) { delete interact; stat = kOfxStatOK; } else if(action == kOfxInteractActionDraw) { // make the draw args DrawArgs drawArgs(inArgs); if(interact->draw(drawArgs)) stat = kOfxStatOK; } else if(action == kOfxInteractActionPenMotion) { // make the draw args PenArgs args(inArgs); if(interact->penMotion(args)) stat = kOfxStatOK; } else if(action == kOfxInteractActionPenDown) { // make the draw args PenArgs args(inArgs); if(interact->penDown(args)) stat = kOfxStatOK; } else if(action == kOfxInteractActionPenUp) { // make the draw args PenArgs args(inArgs); if(interact->penUp(args)) stat = kOfxStatOK; } else if(action == kOfxInteractActionKeyDown) { // make the draw args KeyArgs args(inArgs); if(interact->keyDown(args)) stat = kOfxStatOK; } else if(action == kOfxInteractActionKeyUp) { // make the draw args KeyArgs args(inArgs); if(interact->keyUp(args)) stat = kOfxStatOK; } else if(action == kOfxInteractActionKeyRepeat) { // make the draw args KeyArgs args(inArgs); if(interact->keyRepeat(args)) stat = kOfxStatOK; } else if(action == kOfxInteractActionGainFocus) { // make the draw args FocusArgs args(inArgs); interact->gainFocus(args); } else if(action == kOfxInteractActionLoseFocus) { // make the draw args FocusArgs args(inArgs); interact->loseFocus(args); } return stat; }