void CommandChanged(const SmartPointer<const CommandEvent>& commandEvent) override { if (commandEvent->IsHandledChanged() || commandEvent->IsEnabledChanged() || commandEvent->IsDefinedChanged()) { item->UpdateCommandProperties(commandEvent); } }
void Command::HandlerChanged(const SmartPointer<HandlerEvent>& handlerEvent) { bool enabledChanged = handlerEvent->IsEnabledChanged(); bool handledChanged = handlerEvent->IsHandledChanged(); CommandEvent::Pointer cmdEvent(new CommandEvent(Command::Pointer(this), false, false, false, handledChanged, false, false, false, false, enabledChanged)); this->FireCommandChanged(cmdEvent); }
void CommandContributionItem::UpdateCommandPropertiesInUI(const SmartPointer< const CommandEvent>& commandEvent) { if (commandEvent->GetCommand()->IsDefined()) { this->Update(); } if (commandEvent->IsEnabledChanged() || commandEvent->IsHandledChanged()) { if (visibleEnabled) { IContributionManager* parent = this->GetParent(); if (parent) { parent->Update(true); } } } }
void CommandContributionItem::UpdateCommandProperties(const SmartPointer< const CommandEvent> commandEvent) { if (commandEvent->IsHandledChanged()) { dropDownMenuOverride = ""; } if (!action) { return; } Display* display = Display::GetDefault(); typedef AsyncRunnable<SmartPointer<const CommandEvent>, CommandContributionItem > UpdateRunnable; Poco::Runnable* update = new UpdateRunnable(this, &CommandContributionItem::UpdateCommandPropertiesInUI, commandEvent); if (display->InDisplayThread()) { update->run(); } else { display->AsyncExec(update); } }