Example #1
0
	bool iWidget::ProcessMessage(eGuiMessage a_Message, cGuiMessageData &a_Data)
	{
		if (IsEnabled()==false) return false;

		a_Data.m_Message = a_Message;

		bool bRet = false;
		bRet = OnMessage(a_Message, a_Data);

		if (bRet==false)
		{
			switch(a_Message)
			{
			case eGuiMessage_MouseMove:			bRet = OnMouseMove(a_Data);break;
			case eGuiMessage_MouseDown:			bRet = OnMouseDown(a_Data);break;
			case eGuiMessage_MouseUp:			bRet = OnMouseUp(a_Data);break;
			case eGuiMessage_MouseDoubleClick:	bRet = OnMouseDoubleClick(a_Data);break;
			case eGuiMessage_MouseEnter:		bRet = OnMouseEnter(a_Data);break;
			case eGuiMessage_MouseLeave:		bRet = OnMouseLeave(a_Data);break;
			case eGuiMessage_GotFocus:			bRet = OnGotFocus(a_Data);break;
			case eGuiMessage_LostFocus:			bRet = OnLostFocus(a_Data);break;
			case eGuiMessage_KeyPress:			bRet = OnKeyPress(a_Data);break;
			}
		}

		if (ProcessCallbacks(a_Message, a_Data))
			bRet = true;

		return bRet;
	}
Example #2
0
	bool iWidget::ProcessMessage(eGuiMessage aMessage, cGuiMessageData &aData)
	{
		if(IsEnabled()==false) return false;
		
		aData.mMessage = aMessage;

		bool bRet = false;
		bRet = OnMessage(aMessage,aData); //This can override any message.

		/////////////////////////////////////////
		//Call the correct virtual function
		if(bRet==false)
		{
			switch(aMessage)
			{
				case eGuiMessage_MouseMove:			bRet = OnMouseMove(aData); break;
				case eGuiMessage_MouseDown:			bRet = OnMouseDown(aData); break;
				case eGuiMessage_MouseUp:			bRet = OnMouseUp(aData); break;
				case eGuiMessage_MouseDoubleClick:	bRet = OnMouseDoubleClick(aData); break;
				case eGuiMessage_MouseEnter:		bRet = OnMouseEnter(aData); break;
				case eGuiMessage_MouseLeave:		bRet = OnMouseLeave(aData); break;
				case eGuiMessage_KeyPress:			bRet = OnKeyPress(aData); break;
				case eGuiMessage_GotFocus:			bRet = OnGotFocus(aData); break;
				case eGuiMessage_LostFocus:			bRet = OnLostFocus(aData); break;
			}
		}

		/////////////////////////////////////////
		//Process user callbacks for the event.
		if(ProcessCallbacks(aMessage,aData)) bRet = true;
		
		return bRet;
	}
Example #3
0
/** $(class), OnDisconnect:
 *  Detailed description.
 *  @return TODO
 */
void Screen::OnDisconnect(){
    //Hookable::Disconnect();
    m_conDraw.disconnect();
    m_conUpdate.disconnect();
    m_conEvt.disconnect();
    OnLostFocus();
}
Example #4
0
		//设置控件的焦点
		void XUI_Wnd::SetFocus(bool bFocused)
		{
			//触发事件
			if (bFocused && !m_bFocused)
			{
				OnSetFocus();
			}
			if (!bFocused && m_bFocused)
			{
				OnLostFocus();
			}
			m_bFocused=bFocused;
		}
Example #5
0
void State::OnEvent(const sf::Event::Event &e)
{
	switch (e.Type)
	{
		case sf::Event::KeyPressed:
			OnKeyPressed(e.Key.Code, e.Key.Alt, e.Key.Control, e.Key.Shift);
			break;

		case sf::Event::KeyReleased:
			OnKeyReleased(e.Key.Code, e.Key.Alt, e.Key.Control, e.Key.Shift);
			break;

		case sf::Event::MouseMoved:
			OnMouseMoved(e.MouseMove.X, e.MouseMove.Y);
			break;

		case sf::Event::MouseButtonPressed:
		{
			int x = e.MouseButton.X;
			int y = e.MouseButton.Y;

			switch (e.MouseButton.Button)
			{
				case sf::Mouse::Left:
					OnMouseLeftDown(x, y);
					buttons_[0] = true;
					break;

				case sf::Mouse::Right:
					OnMouseRightDown(x, y);
					buttons_[1] = true;
					break;

				case sf::Mouse::Middle:
					OnMouseMiddleDown(x, y);
					buttons_[2] = true;
					break;
			}

			break;
		}

		case sf::Event::MouseButtonReleased:
		{
			int x = e.MouseButton.X;
			int y = e.MouseButton.Y;

			switch (e.MouseButton.Button)
			{
				case sf::Mouse::Left:
					OnMouseLeftUp(x, y);

					if (buttons_[0])
					{
						buttons_[0] = false;
						OnMouseLeftClick(x, y);
					}

					break;

				case sf::Mouse::Right:
					OnMouseRightUp(x, y);

					if (buttons_[1])
					{
						buttons_[1] = false;
						OnMouseRightClick(x, y);
					}

					break;

				case sf::Mouse::Middle:
					OnMouseMiddleUp(x, y);

					if (buttons_[2])
					{
						buttons_[2] = false;
						OnMouseMiddleClick(x, y);
					}

					break;
			}

			break;
		}

		case sf::Event::MouseEntered:
			OnMouseEntered();
			break;

		case sf::Event::MouseLeft:
			OnMouseExited();
			break;

		case sf::Event::GainedFocus:
			OnGainedFocus();
			break;

		case sf::Event::LostFocus:
			OnLostFocus();
			break;
	}
}
Example #6
0
INT_PTR GenericWindow::HandleDialogMessage (UINT msg, WPARAM wParam, LPARAM lParam) {
	switch (msg) {	
	case WM_MOUSEMOVE:
		if (!m_flagMouseTracking) {
			// register for mouse out message (TME_LEAVE)
			TRACKMOUSEEVENT trackMouseEvent;
			trackMouseEvent.cbSize = sizeof (trackMouseEvent);
			trackMouseEvent.dwFlags = TME_LEAVE;
			trackMouseEvent.dwHoverTime = 0;
			trackMouseEvent.hwndTrack = GetHandle ();
			m_flagMouseTracking = ::TrackMouseEvent (&trackMouseEvent);
		}
		OnMouseMove (0, 0, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_MOUSELEAVE:
		OnMouseLeave ();
		m_flagMouseTracking = FALSE;
		break;

	case WM_LBUTTONDOWN:
		OnMouseDown (0, 0, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_LBUTTONUP:
		OnMouseUp (0, 0, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_RBUTTONDOWN:
		OnMouseDown (0, 0, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_RBUTTONUP:
		OnMouseUp (0, 0, LOWORD(lParam), HIWORD(lParam));
		OnContextMenu ( );
		break;

	case WM_CHAR:
		OnKeyPress ( (int)wParam, LOWORD(lParam) );
		break;

	case WM_KEYDOWN:
		OnKeyDown ( (int)wParam );
		break;

	case WM_NCDESTROY:
		OnPreDestroy ();
		m_hWnd = NULL;
		break;

	case WM_DESTROY:
		OnDestroy ();
		break;

	case WM_SIZE:
		{
			int cx, cy;
			cx = LOWORD(lParam);
			cy = HIWORD(lParam);
			OnResize (cx, cy);
		}
		break;

	case WM_SETFOCUS:
		OnGotFocus ();
		break;

	case WM_KILLFOCUS:
		OnLostFocus ();
		break;

	case WM_COMMAND:
		OnCommand ( LOWORD(wParam) );
		break;

	case WM_CONTEXTMENU:
		OnContextMenu ( );
		break;

	default:
		return FALSE;
	}

	return TRUE;
}
Example #7
0
LRESULT GenericWindow::HandleMessage (UINT msg, WPARAM wParam, LPARAM lParam) {
	switch (msg) {	
	case WM_MOUSEMOVE:
		if (!m_flagMouseTracking) {
			// register for mouse out message (TME_LEAVE)
			TRACKMOUSEEVENT trackMouseEvent;
			trackMouseEvent.cbSize = sizeof (trackMouseEvent);
			trackMouseEvent.dwFlags = TME_LEAVE;
			trackMouseEvent.dwHoverTime = 0;
			trackMouseEvent.hwndTrack = GetHandle ();
			m_flagMouseTracking = ::TrackMouseEvent (&trackMouseEvent);
		}
		OnMouseMove (0, -1, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_MOUSELEAVE:
		OnMouseLeave ();
		m_flagMouseTracking = FALSE;
		break;

	case WM_LBUTTONDOWN:
		OnMouseDown (0, 0, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_LBUTTONUP:
		OnMouseUp (0, 0, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_RBUTTONDOWN:
		OnMouseDown (0, 1, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_RBUTTONUP:
		OnMouseUp (0, 1, LOWORD(lParam), HIWORD(lParam));
		OnContextMenu ( );
		break;

	case WM_ERASEBKGND:
		// we'll erase the background during the WM_PAINT message as necessary
		// to support dynamic background color for views
		// return FALSE to indicate we didn't erase the background here.
		return FALSE;

	case WM_PAINT: 
		{
			PAINTSTRUCT ps;
			HDC hdc = ::BeginPaint (m_hWnd, &ps);

			// erase the background if required
			if (ps.fErase) {
				OnEraseBackground (hdc, ps);
				ps.fErase = FALSE;
			}

			OnPaint (hdc, ps);

			::EndPaint (m_hWnd, &ps);
		}
		break;

	case WM_CHAR:
		OnKeyPress ( (int)wParam, LOWORD(lParam) );
		break;

	case WM_KEYDOWN:
		OnKeyDown ( (int)wParam );
		break;

	case WM_KEYUP:
		OnKeyUp ( (int)wParam );
		break;

	case WM_NCDESTROY:
		OnPreDestroy ();
		m_hWnd = NULL;
		break;

	case WM_DESTROY:
		OnDestroy ();
		if (m_isMainWnd) {
			// ::MessageBox (0, _T("callling PostQuitMessage(0)"), _T(""), 0);
			::PostQuitMessage (0);
		}
		break;

	case WM_SIZE:
		{
			int cx, cy;
			cx = LOWORD(lParam);
			cy = HIWORD(lParam);
			OnResize (cx, cy);
		}
		break;

	case WM_SETFOCUS:
		OnGotFocus ();
		break;

	case WM_KILLFOCUS:
		OnLostFocus ();
		break;

	case WM_COMMAND:
		OnCommand ( LOWORD(wParam) );
		break;

	case WM_CONTEXTMENU:
		OnContextMenu ( );
		break;

	case WM_CLOSE:
		{
			BOOL cancel = FALSE;
			OnClose (cancel);
			if (cancel == FALSE) 
				DestroyWindow (m_hWnd);
		}
		break;

	case WM_DROPFILES:
		OnDropFiles ((HDROP)wParam);
		break;

	default:
		return ::DefWindowProc (m_hWnd, msg, wParam, lParam);
	}

	return 0;
}
Example #8
0
void EventHandler::OnEvent (sf::Event* event)
{
	switch (event->type)
	{
		case sf::Event::Closed:
			//Window closed:
			OnClosed();
			break;
		case sf::Event::Resized:
			//Window resized:
			OnWindowResized (event->size);
		case sf::Event::GainedFocus:
			//Window gained focus:
			OnGainedFocus();
			break;
		case sf::Event::LostFocus:
			//Window lost focus:
			OnLostFocus();
			break;
			break;
		case sf::Event::TextEntered:
			//Text entered:
			OnTextEntered (event->text);
			break;
		case sf::Event::KeyPressed:
			//Key pressed:
			OnKeyPressed (event->key);
			break;
		case sf::Event::KeyReleased:
			//Key released:
			OnKeyReleased (event->key);
			break;
		case sf::Event::MouseWheelMoved:
			//Mouse wheel moved:
			OnMouseWheelMoved (event->mouseWheel);
			break;
		case sf::Event::MouseButtonPressed:
			//Mouse button pressed:
			OnMouseButtonPressed (event->mouseButton);
			break;
		case sf::Event::MouseButtonReleased:
			//Mouse button released:
			OnMouseButtonReleased(event->mouseButton);
			break;
		case sf::Event::MouseMoved:
			//Mouse moved:
			OnMouseMoved (event->mouseMove);
			break;
		case sf::Event::MouseEntered:
			//Mouse entered Window bounds:
			OnMouseEntered();
			break;
		case sf::Event::MouseLeft:
			//Mouse left Window bounds:
			OnMouseLeft();
			break;
		case sf::Event::JoystickButtonPressed:
			//Joystick button pressed:
			OnJoystickButtonPressed (event->joystickButton);
			break;
		case sf::Event::JoystickButtonReleased:
			//Joystick button released:
			OnJoystickButtonReleased(event->joystickButton);
			break;
		case sf::Event::JoystickMoved:
			//Joystick moved:
			OnJoystickMoved(event->joystickMove);
			break;
		case sf::Event::JoystickConnected:
			//Joystick connected:
			OnJoystickConnected (event->joystickConnect);
			break;
		case sf::Event::JoystickDisconnected:
			//Joystick disconnected:
			OnJoystickDisconnected (event->joystickConnect);
			break;
		

	}
}