GSPanel::GSPanel( wxWindow* parent ) : wxWindow() , m_HideMouseTimer( this ) , m_coreRunning(false) { m_CursorShown = true; m_HasFocus = false; if ( !wxWindow::Create(parent, wxID_ANY) ) throw Exception::RuntimeError().SetDiagMsg( L"GSPanel constructor explode!!" ); SetName( L"GSPanel" ); InitDefaultAccelerators(); SetBackgroundColour(wxColour((unsigned long)0)); if( g_Conf->GSWindow.AlwaysHideMouse ) { SetCursor( wxCursor(wxCURSOR_BLANK) ); m_CursorShown = false; } Bind(wxEVT_CLOSE_WINDOW, &GSPanel::OnCloseWindow, this); Bind(wxEVT_SIZE, &GSPanel::OnResize, this); Bind(wxEVT_KEY_UP, &GSPanel::OnKeyDownOrUp, this); Bind(wxEVT_KEY_DOWN, &GSPanel::OnKeyDownOrUp, this); Bind(wxEVT_SET_FOCUS, &GSPanel::OnFocus, this); Bind(wxEVT_KILL_FOCUS, &GSPanel::OnFocusLost, this); Bind(wxEVT_TIMER, &GSPanel::OnHideMouseTimeout, this, m_HideMouseTimer.GetId()); // Any and all events which should result in the mouse cursor being made visible // are connected here. If I missed one, feel free to add it in! --air Bind(wxEVT_LEFT_DOWN, &GSPanel::OnMouseEvent, this); Bind(wxEVT_LEFT_UP, &GSPanel::OnMouseEvent, this); Bind(wxEVT_MIDDLE_DOWN, &GSPanel::OnMouseEvent, this); Bind(wxEVT_MIDDLE_UP, &GSPanel::OnMouseEvent, this); Bind(wxEVT_RIGHT_DOWN, &GSPanel::OnMouseEvent, this); Bind(wxEVT_RIGHT_UP, &GSPanel::OnMouseEvent, this); Bind(wxEVT_MOTION, &GSPanel::OnMouseEvent, this); Bind(wxEVT_LEFT_DCLICK, &GSPanel::OnMouseEvent, this); Bind(wxEVT_MIDDLE_DCLICK, &GSPanel::OnMouseEvent, this); Bind(wxEVT_RIGHT_DCLICK, &GSPanel::OnMouseEvent, this); Bind(wxEVT_MOUSEWHEEL, &GSPanel::OnMouseEvent, this); Bind(wxEVT_LEFT_DCLICK, &GSPanel::OnLeftDclick, this); }
GSPanel::GSPanel( wxWindow* parent ) : wxWindow() , m_HideMouseTimer( this ) { m_CursorShown = true; m_HasFocus = false; if ( !wxWindow::Create(parent, wxID_ANY) ) throw Exception::RuntimeError().SetDiagMsg( L"GSPanel constructor explode!!" ); SetName( L"GSPanel" ); InitDefaultAccelerators(); if( g_Conf->GSWindow.AlwaysHideMouse ) { SetCursor( wxCursor(wxCURSOR_BLANK) ); m_CursorShown = false; } Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler (GSPanel::OnCloseWindow)); Connect(wxEVT_SIZE, wxSizeEventHandler (GSPanel::OnResize)); Connect(wxEVT_KEY_UP, wxKeyEventHandler (GSPanel::OnKeyDown)); Connect(wxEVT_KEY_DOWN, wxKeyEventHandler (GSPanel::OnKeyDown)); Connect(wxEVT_SET_FOCUS, wxFocusEventHandler (GSPanel::OnFocus)); Connect(wxEVT_KILL_FOCUS, wxFocusEventHandler (GSPanel::OnFocusLost)); Connect(m_HideMouseTimer.GetId(), wxEVT_TIMER, wxTimerEventHandler(GSPanel::OnHideMouseTimeout) ); // Any and all events which should result in the mouse cursor being made visible // are connected here. If I missed one, feel free to add it in! --air Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_LEFT_UP, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_MIDDLE_UP, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_RIGHT_UP, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_MOTION, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler (GSPanel::OnLeftDclick)); Connect(wxEVT_MIDDLE_DCLICK, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_RIGHT_DCLICK, wxMouseEventHandler (GSPanel::OnMouseEvent)); Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler (GSPanel::OnMouseEvent)); }