Пример #1
0
void waitConfig() {
	String line;
	unsigned long end = millis() + 5000;
	while (true) {
		if (millis() > end) {
			Serial.println(" input timed out, starting...");
			break;
		}
		Serial.printf(" Hit 'x' + Enter for menu within 5 seconds : ");
		readLine(line, 10000);
		if (line.equals("x")) {
			configMenu();
			return;
		} else {
			Serial.printf(" invalid input >>%s<< , try again.\n", line.c_str());
		}
		line = "";
	}
}
Пример #2
0
/** @brief wndProc
  *
  * @TODO: document this function
  */
LRESULT TaskArea::wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg)
	{
	case WM_TIMER:
		if (wParam == m_dragTimer)
		{
			if (m_dragTask)
			{
				SendMessage(hBlackboxWnd, BB_BRINGTOFRONT, 0,  (LPARAM)m_dragTask->GetTaskWnd());
				m_dragTask = NULL;
			}
			KillTimer(barWnd, m_dragTimer);
		}
		break;
	case BB_RECONFIGURE:
		readSettings();
		populateTasks();
		break;
	case BB_BROADCAST:
	{
		LPCSTR msg_string = (LPCSTR)lParam;
		LPCSTR element = NULL;
		msg_string += 1;
		if (!strnicmp(msg_string, m_pluginPrefix, strlen(m_pluginPrefix)))
		{
			msg_string += strlen(m_pluginPrefix) + 1;
			if (!strnicmp(msg_string, m_itemPrefix, strlen(m_itemPrefix)))
			{
				msg_string += strlen(m_itemPrefix) + 1;
				if ((element = "Stretch") && !strnicmp(msg_string, element, strlen(element)))
				{
					//msg_string += strlen(element);
					//m_iconSize = atoi(msg_string);
					//s_settingsManager.WriteSetting(m_pluginPrefix, "Tasks", element);
					//populateTasks();
					//PostMessage(barWnd, BOXBAR_UPDATESIZE, 1, 0);
				}
			}
			else if (!strnicmp(msg_string, m_basePrefix.c_str(), m_basePrefix.size()))
			{
				if (itemList.size())
				{
					itemList.front()->wndProc(hWnd, msg, wParam, lParam);
				}
				PostMessage(barWnd, BOXBAR_UPDATESIZE, 1, 0);
				configMenu(NULL, true);
				return 0;
			}
		}
	}
	break;
	case BB_TASKSUPDATE:
		switch (lParam)
		{
		case TASKITEM_FLASHED:
		case TASKITEM_ACTIVATED:
			Collection::wndProc(hWnd, msg, wParam, lParam);
			RedrawWindow(barWnd, NULL, NULL, RDW_INVALIDATE | RDW_INTERNALPAINT);
			return 0;
		case TASKITEM_ADDED:

			if (std::find_if(itemList.begin(), itemList.end(), bind2nd(TaskIsHWnd(), reinterpret_cast<HWND>(wParam))) == itemList.end())
			{
				Task *newTask = new Task(reinterpret_cast<HWND>(wParam), vertical);
				itemList_t::iterator insertLoc = itemList.end();
				if (vertical && stretchTaskarea)
				{
					insertLoc--;
				}
				itemList.insert(insertLoc, newTask);
				if (stretchTaskarea)
				{
					calculateSizes(true);
					RedrawWindow(barWnd, NULL, NULL, RDW_INVALIDATE | RDW_INTERNALPAINT);
				}
				else
				{
					PostMessage(barWnd, BOXBAR_UPDATESIZE, 1, 0);
				}
			}
			break;

		case TASKITEM_REMOVED:
		{
			itemList.remove_if(bind2nd(TaskIsHWnd(), reinterpret_cast<HWND>(wParam)));
			if (stretchTaskarea)
			{
				calculateSizes(true);
				RedrawWindow(barWnd, NULL, NULL, RDW_INVALIDATE | RDW_INTERNALPAINT);
			}
			else
			{
				PostMessage(barWnd, BOXBAR_UPDATESIZE, 1, 0);
			}
			break;
		}
		//populateTasks();
		}
		break;
	}
	return Collection::wndProc(hWnd, msg, wParam, lParam);
}