void JXDocktab::Receive ( JBroadcaster* sender, const Message& message ) { if (sender == itsActionMenu && message.Is(JXMenu::kNeedsUpdate)) { UpdateActionMenu(); } else if (sender == itsActionMenu && message.Is(JXTextMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleActionMenu(selection->GetIndex()); } else { JXWidget::Receive(sender, message); } }
void CMLocalVarsDir::Receive ( JBroadcaster* sender, const Message& message ) { if (sender == itsLink && (message.Is(CMLink::kValueChanged) || message.Is(CMLink::kThreadChanged) || message.Is(CMLink::kFrameChanged) || message.Is(CMLink::kCoreLoaded) || message.Is(CMLink::kAttachedToProcess))) { Rebuild(); } else if (sender == itsLink && message.Is(CMLink::kProgramStopped)) { const CMLink::ProgramStopped& info = dynamic_cast<const CMLink::ProgramStopped&>(message); const CMLocation* loc; if (info.GetLocation(&loc) && !(loc->GetFileName()).IsEmpty()) { Rebuild(); } } else if (sender == itsLink && (message.Is(CMLink::kProgramFinished) || message.Is(CMLink::kCoreCleared) || message.Is(CMLink::kDetachedFromProcess))) { // can't listen for CMLink::kProgramRunning because this happens // every time the user executes another line of code FlushOldData(); } else if (sender == itsLink && message.Is(CMLink::kSymbolsLoaded)) { const CMLink::SymbolsLoaded* info = dynamic_cast<const CMLink::SymbolsLoaded*>(&message); assert( info != NULL ); UpdateWindowTitle(info->GetProgramName()); } else if (sender == itsFileMenu && message.Is(JXMenu::kNeedsUpdate)) { UpdateFileMenu(); } else if (sender == itsFileMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleFileMenu(selection->GetIndex()); } else if (sender == itsActionMenu && message.Is(JXMenu::kNeedsUpdate)) { UpdateActionMenu(); } else if (sender == itsActionMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleActionMenu(selection->GetIndex()); } else if (sender == itsHelpMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleHelpMenu(selection->GetIndex()); } else if (sender == GetWindow() && message.Is(JXWindow::kDeiconified)) { Update(); } else { JXWindowDirector::Receive(sender, message); } }
void CMArray1DDir::Receive ( JBroadcaster* sender, const Message& message ) { if (sender == itsExprInput && (message.Is(JXWidget::kLostFocus) || message.Is(CMArrayExprInput::kReturnKeyPressed))) { if (itsExprInput->GetText() != itsExpr) { itsExpr = itsExprInput->GetText(); UpdateWindowTitle(); itsDisplayRange.SetToEmptyAt(0); BeginCreateNodes(); } } else if (sender == itsStartIndex && (message.Is(JXWidget::kLostFocus) || message.Is(CMArrayIndexInput::kReturnKeyPressed))) { JInteger value; if (itsStartIndex->GetValue(&value) && value != itsRequestRange.first) { itsRequestRange.first = value; BeginCreateNodes(); } } else if (sender == itsEndIndex && (message.Is(JXWidget::kLostFocus) || message.Is(CMArrayIndexInput::kReturnKeyPressed))) { JInteger value; if (itsEndIndex->GetValue(&value) && value != itsRequestRange.last) { itsRequestRange.last = value; BeginCreateNodes(); } } else if (sender == itsTree && message.Is(JTree::kNodeChanged)) { const JTree::NodeChanged* info = dynamic_cast<const JTree::NodeChanged*>(&message); assert(info != NULL); if (info->GetNode() == itsCurrentNode) { itsCurrentNode = NULL; CreateNextNode(); } } else if (sender == itsStopButton && message.Is(JXButton::kPushed)) { itsRequestRange = itsDisplayRange; itsStartIndex->SetValue(itsRequestRange.first); itsEndIndex->SetValue(itsRequestRange.last); CreateNodesFinished(); } else if (sender == itsLink && message.Is(CMLink::kDebuggerRestarted)) { itsWaitingForReloadFlag = kJTrue; } else if (sender == itsLink && message.Is(CMLink::kDebuggerStarted)) { if (!itsWaitingForReloadFlag) { JXCloseDirectorTask::Close(this); // close after bcast is finished } itsWaitingForReloadFlag = kJFalse; } else if (sender == itsFileMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleFileMenu(selection->GetIndex()); } else if (sender == itsActionMenu && message.Is(JXMenu::kNeedsUpdate)) { UpdateActionMenu(); } else if (sender == itsActionMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleActionMenu(selection->GetIndex()); } else if (sender == itsHelpMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleHelpMenu(selection->GetIndex()); } else { JXWindowDirector::Receive(sender, message); } }