Patch level : 4.0

Files correlati     : avaga.dll
Ricompilazione Demo : [ ]
Commento            :
Aggiunto supporto per evento EVT_MOUSE_CAPTURE_LOST
che e' obbligatorio intercettare dalla versione 2.8.0 in poi


git-svn-id: svn://10.65.10.50/trunk@15168 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2007-04-03 10:53:21 +00:00
parent 239085d3cd
commit db5a91f19f

View File

@ -173,11 +173,14 @@ const wxCursor* GetCursorResource(int rid)
case CURSOR_IBEAM: cursor = new wxCursor(wxCURSOR_IBEAM); break;
default:
{
wxString strName = ::GetResourceName("Cursor", rid);
const wxString strName = ::GetResourceName("Cursor", rid);
if (::wxFileExists(strName))
{
#ifdef WIN32
cursor = new wxCursor(strName, wxBITMAP_TYPE_CUR);
#ifdef WIN32
if (strName.EndsWith(".ico"))
cursor = new wxCursor(strName, wxBITMAP_TYPE_ICO);
else
cursor = new wxCursor(strName, wxBITMAP_TYPE_CUR);
#else
cursor = wxSTANDARD_CURSOR;
#endif
@ -670,7 +673,6 @@ wxFont& TFontCache::FindOrCreate(int pointSize, int family, int style, int weigh
}
///////////////////////////////////////////////////////////
// Generic window class
///////////////////////////////////////////////////////////
@ -717,7 +719,8 @@ protected:
virtual void OnClose(wxCloseEvent& e);
virtual void OnKeyDown(wxKeyEvent& e);
virtual void OnKillFocus(wxFocusEvent& e);
virtual void OnMenu(wxCommandEvent& event);
virtual void OnMenu(wxCommandEvent& e);
virtual void OnMouseCaptureLost(wxMouseCaptureLostEvent& e);
virtual void OnMouseDouble(wxMouseEvent& e);
virtual void OnMouseDown(wxMouseEvent& e);
virtual void OnMouseMove(wxMouseEvent& e);
@ -731,7 +734,7 @@ protected:
public:
void DoXvtEvent(EVENT& e);
virtual void OnPaint(wxPaintEvent& event);
virtual void OnPaint(wxPaintEvent& e);
public:
WIN_TYPE _type;
@ -760,12 +763,12 @@ class TTaskWin : public wxFrame
wxWindow* m_MenuOwner;
protected:
virtual void OnClose(wxCloseEvent& event);
virtual void OnMenu(wxCommandEvent& event);
virtual void OnSize(wxSizeEvent& event);
virtual void OnClose(wxCloseEvent& e);
virtual void OnMenu(wxCommandEvent& e);
virtual void OnSize(wxSizeEvent& e);
public:
virtual void OnPaint(wxPaintEvent& event);
virtual void OnPaint(wxPaintEvent& e);
public:
void SetMenuTree(const MENU_ITEM* tree);
@ -797,6 +800,7 @@ BEGIN_EVENT_TABLE(TwxWindow, TwxWindowBase)
EVT_MIDDLE_DOWN(TwxWindow::OnMouseDown)
EVT_MIDDLE_UP(TwxWindow::OnMouseUp)
EVT_MOTION(TwxWindow::OnMouseMove)
EVT_MOUSE_CAPTURE_LOST(TwxWindow::OnMouseCaptureLost)
EVT_MOUSEWHEEL(TwxWindow::OnMouseWheel)
EVT_PAINT(TwxWindow::OnPaint)
EVT_RIGHT_DOWN(TwxWindow::OnMouseDown)
@ -814,7 +818,7 @@ void TwxWindow::DoXvtEvent(EVENT& e)
_eh((WINDOW)this, &e);
}
void TwxWindow::OnChar(wxKeyEvent& event)
void TwxWindow::OnChar(wxKeyEvent& evt)
{
static int nSkipNextDotKey = -883; // Valore indefinito
if (nSkipNextDotKey == -883) // Devo stabilire se attivare la gestione o no
@ -823,19 +827,18 @@ void TwxWindow::OnChar(wxKeyEvent& event)
char str[2];
xvt_sys_get_profile_string(campoini, "Main", "Point2Comma", "1", str, sizeof(str));
nSkipNextDotKey = strchr("1XY", *str) != NULL ? 0 : -1; // Dis/Abilita conversione punto in virgola
}
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_CHAR;
int k = event.GetKeyCode();
int k = evt.GetKeyCode();
if (nSkipNextDotKey == 1)
{
nSkipNextDotKey = 0;
if (k == '.')
{
event.Skip();
evt.Skip();
return;
}
}
@ -854,7 +857,7 @@ void TwxWindow::OnChar(wxKeyEvent& event)
case WXK_NUMPAD7:
case WXK_NUMPAD8:
case WXK_NUMPAD9:
event.Skip();
evt.Skip();
return;
case WXK_NUMPAD_DECIMAL: // Arriva solo dalla 3.6.3 in poi
case WXK_DECIMAL: // ??? Arriva sia '.' sia WXK_DECIMAL=340
@ -874,7 +877,7 @@ void TwxWindow::OnChar(wxKeyEvent& event)
case WXK_RIGHT: k = K_RIGHT; break;
case WXK_UP : k = K_UP; break;
case WXK_TAB:
if (event.ShiftDown())
if (evt.ShiftDown())
k = K_BTAB;
break;
default:
@ -883,9 +886,9 @@ void TwxWindow::OnChar(wxKeyEvent& event)
break;
}
e.v.chr.shift = event.ShiftDown();
e.v.chr.control = event.ControlDown();
if (event.AltDown())
e.v.chr.shift = evt.ShiftDown();
e.v.chr.control = evt.ControlDown();
if (evt.AltDown())
{
e.v.chr.control = TRUE;
if (xvt_chr_is_alnum(k))
@ -894,7 +897,7 @@ void TwxWindow::OnChar(wxKeyEvent& event)
{
if (strchr("+-", k) == NULL) // Aggiungere qui vari testi eventuali
{
event.Skip();
evt.Skip();
return;
}
}
@ -904,30 +907,30 @@ void TwxWindow::OnChar(wxKeyEvent& event)
DoXvtEvent(e);
}
void TwxWindow::OnKeyDown(wxKeyEvent& event)
void TwxWindow::OnKeyDown(wxKeyEvent& e)
{
#ifdef WIN32
// Triste necessita' per gestire corretamente Alt+'+' del tasterino
const int k = event.GetKeyCode();
const int k = e.GetKeyCode();
if (k == WXK_NUMPAD_ADD)
{
if (event.AltDown())
if (e.AltDown())
{
OnChar(event);
OnChar(e);
return;
}
}
#else
if (event.AltDown() || event.ControlDown())
if (e.AltDown() || e.ControlDown())
{
OnChar(event);
return;
}
#endif
event.Skip();
e.Skip();
}
void TwxWindow::OnClose(wxCloseEvent& event)
void TwxWindow::OnClose(wxCloseEvent& WXUNUSED(e))
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_DESTROY;
@ -935,7 +938,7 @@ void TwxWindow::OnClose(wxCloseEvent& event)
Destroy();
}
void TwxWindow::OnKillFocus(wxFocusEvent& event)
void TwxWindow::OnKillFocus(wxFocusEvent& WXUNUSED(e))
{
if (_TheCaret.Owner() == (WINDOW)this)
_TheCaret.Hide();
@ -946,78 +949,83 @@ void TwxWindow::OnKillFocus(wxFocusEvent& event)
DoXvtEvent(e);
}
void TwxWindow::OnMenu(wxCommandEvent& event)
void TwxWindow::OnMenu(wxCommandEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_COMMAND;
e.v.cmd.control = 0; e.v.cmd.shift = 0;
e.v.cmd.tag = event.GetId();
e.v.cmd.tag = evt.GetId();
DoXvtEvent(e);
}
void TwxWindow::OnMouseDouble(wxMouseEvent& event)
void TwxWindow::OnMouseCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(e))
{
xvt_win_release_pointer();
}
void TwxWindow::OnMouseDouble(wxMouseEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_MOUSE_DBL;
e.v.mouse.button = (event.RightDown() ? 1 : 0) + (event.MiddleDown() ? 2 : 0);
e.v.mouse.control = event.ControlDown();
e.v.mouse.shift = event.ShiftDown();
e.v.mouse.where.h = event.GetX();
e.v.mouse.where.v = event.GetY();
e.v.mouse.button = (evt.RightDown() ? 1 : 0) + (evt.MiddleDown() ? 2 : 0);
e.v.mouse.control = evt.ControlDown();
e.v.mouse.shift = evt.ShiftDown();
e.v.mouse.where.h = evt.GetX();
e.v.mouse.where.v = evt.GetY();
DoXvtEvent(e);
}
void TwxWindow::OnMouseDown(wxMouseEvent& event)
void TwxWindow::OnMouseDown(wxMouseEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_MOUSE_DOWN;
e.v.mouse.button = (event.RightDown() ? 1 : 0) + (event.MiddleDown() ? 2 : 0);
e.v.mouse.control = event.ControlDown();
e.v.mouse.shift = event.ShiftDown();
e.v.mouse.where.h = event.GetX();
e.v.mouse.where.v = event.GetY();
e.v.mouse.button = (evt.RightDown() ? 1 : 0) + (evt.MiddleDown() ? 2 : 0);
e.v.mouse.control = evt.ControlDown();
e.v.mouse.shift = evt.ShiftDown();
e.v.mouse.where.h = evt.GetX();
e.v.mouse.where.v = evt.GetY();
DoXvtEvent(e);
SetFocus(); // Triste necessita'
}
void TwxWindow::OnMouseMove(wxMouseEvent& event)
void TwxWindow::OnMouseMove(wxMouseEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_MOUSE_MOVE;
e.v.mouse.button = (event.RightIsDown() ? 1 : 0) + (event.MiddleIsDown() ? 2 : 0);
e.v.mouse.control = event.ControlDown();
e.v.mouse.shift = event.m_shiftDown;
e.v.mouse.where.h = event.GetX();
e.v.mouse.where.v = event.GetY();
e.v.mouse.button = (evt.RightIsDown() ? 1 : 0) + (evt.MiddleIsDown() ? 2 : 0);
e.v.mouse.control = evt.ControlDown();
e.v.mouse.shift = evt.m_shiftDown;
e.v.mouse.where.h = evt.GetX();
e.v.mouse.where.v = evt.GetY();
DoXvtEvent(e);
}
void TwxWindow::OnMouseUp(wxMouseEvent& event)
void TwxWindow::OnMouseUp(wxMouseEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_MOUSE_UP;
e.v.mouse.button = (event.RightUp() ? 1 : 0) + (event.MiddleUp() ? 2 : 0);
e.v.mouse.control = event.ControlDown();
e.v.mouse.shift = event.ShiftDown();
e.v.mouse.where.h = event.GetX();
e.v.mouse.where.v = event.GetY();
e.v.mouse.button = (evt.RightUp() ? 1 : 0) + (evt.MiddleUp() ? 2 : 0);
e.v.mouse.control = evt.ControlDown();
e.v.mouse.shift = evt.ShiftDown();
e.v.mouse.where.h = evt.GetX();
e.v.mouse.where.v = evt.GetY();
DoXvtEvent(e);
}
void TwxWindow::OnMouseWheel(wxMouseEvent& event)
void TwxWindow::OnMouseWheel(wxMouseEvent& evt)
{
const int nRot = event.GetWheelRotation();
const int nRot = evt.GetWheelRotation();
if (nRot != 0)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_VSCROLL;
e.v.scroll.pos = event.GetY();
e.v.scroll.pos = evt.GetY();
e.v.scroll.what = nRot > 0 ? SC_LINE_UP : SC_LINE_DOWN;
DoXvtEvent(e);
}
}
void TwxWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
void TwxWindow::OnPaint(wxPaintEvent& WXUNUSED(evt))
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_UPDATE;
@ -1058,42 +1066,42 @@ static SCROLL_CONTROL ConvertScrollToXVT(wxEventType et)
return SC_NONE;
}
void TwxWindow::OnScroll(wxScrollEvent& event)
void TwxWindow::OnScroll(wxScrollEvent& evt)
{
SCROLL_CONTROL sc = ConvertScrollToXVT(event.GetEventType());
SCROLL_CONTROL sc = ConvertScrollToXVT(evt.GetEventType());
if (sc != SC_NONE)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
const wxScrollBar* sb = (wxScrollBar*)event.GetEventObject();
const wxScrollBar* sb = (wxScrollBar*)evt.GetEventObject();
const wxSize sz = sb->GetSize();
e.type = E_CONTROL;
e.v.ctl.id = event.GetId();
e.v.ctl.id = evt.GetId();
e.v.ctl.ci.type = sz.x > sz.y ? WC_HSCROLL : WC_VSCROLL;
e.v.ctl.ci.win = (WINDOW)sb;
e.v.ctl.ci.v.scroll.pos = event.GetPosition();
e.v.ctl.ci.v.scroll.pos = evt.GetPosition();
e.v.ctl.ci.v.scroll.what = sc;
DoXvtEvent(e);
}
}
void TwxWindow::OnScrollWin(wxScrollWinEvent& event)
void TwxWindow::OnScrollWin(wxScrollWinEvent& evt)
{
wxEventType et = event.GetEventType();
wxEventType et = evt.GetEventType();
et -= (wxEVT_SCROLLWIN_TOP - wxEVT_SCROLL_TOP);
const SCROLL_CONTROL sc = ConvertScrollToXVT(et);
if (sc != SC_NONE)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = event.GetOrientation() == wxHORIZONTAL ? E_HSCROLL : E_VSCROLL;
e.v.scroll.pos = event.GetPosition();
e.type = evt.GetOrientation() == wxHORIZONTAL ? E_HSCROLL : E_VSCROLL;
e.v.scroll.pos = evt.GetPosition();
e.v.scroll.what = sc;
DoXvtEvent(e);
}
}
void TwxWindow::OnSetFocus(wxFocusEvent& event)
void TwxWindow::OnSetFocus(wxFocusEvent& WXUNUSED(e))
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_FOCUS;
@ -1101,16 +1109,16 @@ void TwxWindow::OnSetFocus(wxFocusEvent& event)
DoXvtEvent(e);
}
void TwxWindow::OnSize(wxSizeEvent& event)
void TwxWindow::OnSize(wxSizeEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_SIZE;
e.v.size.height = event.GetSize().x;
e.v.size.width = event.GetSize().y;
e.v.size.height = evt.GetSize().x;
e.v.size.width = evt.GetSize().y;
DoXvtEvent(e);
}
void TwxWindow::OnTimer(wxTimerEvent& event)
void TwxWindow::OnTimer(wxTimerEvent& WXUNUSED(evt))
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_TIMER;
@ -1165,25 +1173,25 @@ BEGIN_EVENT_TABLE(TTaskWin, wxFrame)
EVT_SIZE(TTaskWin::OnSize)
END_EVENT_TABLE()
void TTaskWin::OnClose(wxCloseEvent& event)
void TTaskWin::OnClose(wxCloseEvent& evt)
{
if (event.CanVeto())
if (evt.CanVeto())
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_CLOSE;
int veto = _task_win_handler((WINDOW)this, &e);
event.Veto(veto != 0);
evt.Veto(veto != 0);
}
else
event.Skip();
evt.Skip();
}
void TTaskWin::OnMenu(wxCommandEvent& event)
void TTaskWin::OnMenu(wxCommandEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_COMMAND;
e.v.cmd.control = 0; e.v.cmd.shift = 0;
e.v.cmd.tag = event.GetId();
e.v.cmd.tag = evt.GetId();
if (m_MenuOwner == NULL || m_MenuOwner == this)
_task_win_handler((WINDOW)this, &e);
@ -1191,7 +1199,7 @@ void TTaskWin::OnMenu(wxCommandEvent& event)
((TwxWindow*)m_MenuOwner)->_eh((WINDOW)m_MenuOwner, &e);
}
void TTaskWin::OnPaint(wxPaintEvent& WXUNUSED(event))
void TTaskWin::OnPaint(wxPaintEvent& WXUNUSED(evt))
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_UPDATE;
@ -1209,12 +1217,12 @@ void TTaskWin::OnPaint(wxPaintEvent& WXUNUSED(event))
dc.KillDC();
}
void TTaskWin::OnSize(wxSizeEvent& event)
void TTaskWin::OnSize(wxSizeEvent& evt)
{
EVENT e; memset(&e, 0, sizeof(EVENT));
e.type = E_SIZE;
e.v.size.height = event.GetSize().x;
e.v.size.width = event.GetSize().y;
e.v.size.height = evt.GetSize().x;
e.v.size.width = evt.GetSize().y;
_task_win_handler((WINDOW)this, &e);
}
@ -1763,7 +1771,7 @@ class TwxCalendarDlg : public wxDialog
protected:
virtual bool TransferDataFromWindow();
void OnCalendar(wxCalendarEvent& event);
void OnCalendar(wxCalendarEvent& e);
public:
TwxCalendarDlg(wxWindow* parent, const wxPoint& pnt, wxDateTime& date);
@ -1775,7 +1783,7 @@ BEGIN_EVENT_TABLE(TwxCalendarDlg, wxDialog)
EVT_CALENDAR(wxID_ANY, TwxCalendarDlg::OnCalendar)
END_EVENT_TABLE()
void TwxCalendarDlg::OnCalendar(wxCalendarEvent& event)
void TwxCalendarDlg::OnCalendar(wxCalendarEvent& e)
{
wxCommandEvent evt(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
AddPendingEvent(evt);