BObjectList<Task>* TaskMerge::GetTasks(TaskList ctgr) { int32 i = 0; TaskSync* tmpSyncer = NULL; BObjectList<Task>* tmpTaskList = NULL; taskList->MakeEmpty(); for (i=0; i<CountHandlers(); i++){ tmpSyncer = dynamic_cast<TaskSync*>(HandlerAt(i)); if (tmpSyncer != NULL) tmpTaskList = tmpSyncer->GetTasks(); if (tmpTaskList != NULL) MergeIn(tmpTaskList); } return taskList; }
/** Hook function: handles received messages. @param message, the current message from the message queue to handle */ void BmeApp::MessageReceived(BMessage* message) { switch(message->what) { //if soundplay or CL-amp wants to set current track playing case InterfaceMessages::K_USER_SET_PERSONAL_MSG: { BMessenger msgr(m_protocolLooper); msgr.SendMessage(message); } break; case InterfaceMessages::K_PREFERENCES_MSG: { BRect prefsFrame(100.0f,100.0f,650.0f,420.0f); PrefsWindow *prefsWindow = new PrefsWindow(prefsFrame,"Bme Preferences", B_TITLED_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, 0); BString activeTab; if (message->FindString(K_ACTIVE_TAB, &activeTab) == B_OK) { //if available, make the tab passed in this message the active one prefsWindow->SetActiveTab(activeTab); } //show the preference window prefsWindow->Show(); } break; default: { int32 noHandlers = CountHandlers(); if (noHandlers > 1) { //make sure the message won't be send to the looper main handler again! for (int32 i = 1; i < noHandlers; i++) { BHandler *handler = HandlerAt(i); BMessenger msgr(handler); msgr.SendMessage(message); } } } break; } }