+#endif
+ bool aRedisplayed = false;
+ if (myIsActive[theFlag])
+ aRedisplayed = displayPresentation(theFlag, theUpdateViewer);
+
+ return aRedisplayed;
+}
+
+void PartSet_CustomPrs::clearPrs()
+{
+ clearPresentation(ModuleBase_IModule::CustomizeArguments);
+ clearPresentation(ModuleBase_IModule::CustomizeResults);
+ clearPresentation(ModuleBase_IModule::CustomizeHighlightedObjects);
+}
+
+void PartSet_CustomPrs::processEvent(const std::shared_ptr<Events_Message>& theMessage)
+{
+ if (theMessage->eventID() == Events_Loop::eventByName(EVENT_EMPTY_OPERATION_PRESENTATION))
+ myPresentationIsEmpty = true; /// store state to analize it after display/erase is finished
+}
+
+void PartSet_CustomPrs::initPresentation(
+ const ModuleBase_IModule::ModuleBase_CustomizeFlag& theFlag)
+{
+ AISObjectPtr anOperationPrs = AISObjectPtr(new GeomAPI_AISObject());
+ Handle(PartSet_OperationPrs) anAISPrs = new PartSet_OperationPrs(myWorkshop);
+ anOperationPrs->setImpl(new Handle(AIS_InteractiveObject)(anAISPrs));
+ if (theFlag == ModuleBase_IModule::CustomizeArguments ||
+ theFlag == ModuleBase_IModule::CustomizeResults) {
+ anOperationPrs->setPointMarker(5, 2.);
+ anOperationPrs->setWidth(1);
+ }
+ else if (theFlag == ModuleBase_IModule::CustomizeHighlightedObjects)
+ anAISPrs->useAISWidth();
+
+ if (anOperationPrs.get())
+ myPresentations[theFlag] = anOperationPrs;
+}
+
+Quantity_Color PartSet_CustomPrs::getShapeColor(
+ const ModuleBase_IModule::ModuleBase_CustomizeFlag& theFlag)
+{
+ Quantity_Color aColor;
+ switch(theFlag) {
+ case ModuleBase_IModule::CustomizeArguments:
+ aColor = ModuleBase_Tools::color("Visualization", "operation_parameter_color");
+ break;
+ case ModuleBase_IModule::CustomizeResults:
+ aColor = ModuleBase_Tools::color("Visualization", "operation_result_color");
+ break;
+ case ModuleBase_IModule::CustomizeHighlightedObjects:
+ aColor = ModuleBase_Tools::color("Visualization", "operation_highlight_color");
+ break;
+ default:
+ break;
+ }
+ return aColor;
+}
+
+XGUI_Workshop* PartSet_CustomPrs::workshop() const
+{
+ XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(myWorkshop);
+ return aConnector->workshop();