示例#1
0
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;
}
示例#2
0
/**	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;
	}
}