Added OnKeyDown, OnKeyUp.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3,8 +3,9 @@
|
|||||||
A class for manipulating the clipboard. Note that this is not compatible with the
|
A class for manipulating the clipboard. Note that this is not compatible with the
|
||||||
clipboard class from wxWindows 1.xx, which has the same name but a different implementation.
|
clipboard class from wxWindows 1.xx, which has the same name but a different implementation.
|
||||||
|
|
||||||
To use the clipboard, construct a wxClipboard object on the stack and
|
To use the clipboard, you call member functions of the global {\bf wxTheClipboard} object.
|
||||||
call \helpref{wxClipboard::Open}{wxclipboardopen}. If this operation returns TRUE, you
|
|
||||||
|
Call \helpref{wxClipboard::Open}{wxclipboardopen} to get ownership of the clipboard. If this operation returns TRUE, you
|
||||||
now own the clipboard. Call \helpref{wxClipboard::SetData}{wxclipboardsetdata} to put data
|
now own the clipboard. Call \helpref{wxClipboard::SetData}{wxclipboardsetdata} to put data
|
||||||
on the clipboard (one or more times), or \helpref{wxClipboard::GetData}{wxclipboardgetdata} to
|
on the clipboard (one or more times), or \helpref{wxClipboard::GetData}{wxclipboardgetdata} to
|
||||||
retrieve data from the clipboard. Call \helpref{wxClipboard::Close}{wxclipboardclose} to close
|
retrieve data from the clipboard. Call \helpref{wxClipboard::Close}{wxclipboardclose} to close
|
||||||
@@ -13,22 +14,21 @@ the clipboard and relinquish ownership. You should keep the clipboard open only
|
|||||||
For example:
|
For example:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
wxClipboard clipboard;
|
|
||||||
|
|
||||||
// Write some text to the clipboard
|
// Write some text to the clipboard
|
||||||
if (clipboard.Open())
|
if (wxTheClipboard->Open())
|
||||||
{
|
{
|
||||||
wxTextDataObject object("Some text");
|
// This object is held by the clipboard, so do not delete it in the app.
|
||||||
clipboard.SetData(& object);
|
wxTextDataObject* object = new wxTextDataObject("Some text");
|
||||||
clipboard.Close();
|
wxTheClipboard->SetData(& object);
|
||||||
|
wxTheClipboard->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read some text
|
// Read some text
|
||||||
if (clipboard.Open() && clipboard.IsSupportedFormat(wxDF_TEXT))
|
if (wxTheClipboard->Open() && wxTheClipboard->IsSupportedFormat(wxDF_TEXT))
|
||||||
{
|
{
|
||||||
wxTextDataObject object;
|
wxTextDataObject object;
|
||||||
clipboard.GetData(& object);
|
wxTheClipboard->GetData(& object);
|
||||||
clipboard.Close();
|
wxTheClipboard->Close();
|
||||||
|
|
||||||
wxMessageBox(object.GetText());
|
wxMessageBox(object.GetText());
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
\section{\class{wxKeyEvent}}\label{wxkeyevent}
|
\section{\class{wxKeyEvent}}\label{wxkeyevent}
|
||||||
|
|
||||||
This event class contains information about keypress (character) events. See \helpref{wxWindow::OnChar}{wxwindowonchar}.
|
This event class contains information about keypress (character) events.
|
||||||
|
|
||||||
\wxheading{Derived from}
|
\wxheading{Derived from}
|
||||||
|
|
||||||
@@ -13,10 +13,20 @@ functions that take a wxKeyEvent argument.
|
|||||||
|
|
||||||
\twocolwidtha{7cm}
|
\twocolwidtha{7cm}
|
||||||
\begin{twocollist}\itemsep=0pt
|
\begin{twocollist}\itemsep=0pt
|
||||||
|
\twocolitem{{\bf EVT\_CHAR(func)}}{Process a wxEVT\_CHAR event (an ASCII key has been pressed).}
|
||||||
|
\twocolitem{{\bf EVT\_KEY\_DOWN(func)}}{Process a wxEVT\_KEY\_DOWN event (any key has been pressed).}
|
||||||
|
\twocolitem{{\bf EVT\_KEY\_UP(func)}}{Process a wxEVT\_KEY\_UP event (any key has been released).}
|
||||||
\twocolitem{{\bf EVT\_CHAR(func)}}{Process a wxEVT\_CHAR event.}
|
\twocolitem{{\bf EVT\_CHAR(func)}}{Process a wxEVT\_CHAR event.}
|
||||||
\twocolitem{{\bf EVT\_CHAR\_HOOK(func)}}{Process a wxEVT\_CHAR\_HOOK event.}
|
\twocolitem{{\bf EVT\_CHAR\_HOOK(func)}}{Process a wxEVT\_CHAR\_HOOK event.}
|
||||||
\end{twocollist}%
|
\end{twocollist}%
|
||||||
|
|
||||||
|
\wxheading{See also}
|
||||||
|
|
||||||
|
\helpref{wxWindow::OnChar}{wxwindowonchar},
|
||||||
|
\helpref{wxWindow::OnCharHook}{wxwindowoncharhook},
|
||||||
|
\helpref{wxWindow::OnKeyDown}{wxwindowonkeydown},
|
||||||
|
\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}
|
||||||
|
|
||||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||||
|
|
||||||
\membersection{wxKeyEvent::m\_altDown}
|
\membersection{wxKeyEvent::m\_altDown}
|
||||||
|
@@ -807,7 +807,7 @@ otherwise it returns FALSE (it is being deactivated).
|
|||||||
|
|
||||||
\func{void}{OnChar}{\param{wxKeyEvent\&}{ event}}
|
\func{void}{OnChar}{\param{wxKeyEvent\&}{ event}}
|
||||||
|
|
||||||
Called when the user has pressed a key.
|
Called when the user has pressed a key, which has been translated into an ASCII value.
|
||||||
|
|
||||||
\wxheading{Parameters}
|
\wxheading{Parameters}
|
||||||
|
|
||||||
@@ -823,10 +823,15 @@ default function to achieve default keypress functionality.
|
|||||||
Note that the ASCII values do not have explicit key codes: they are passed as ASCII
|
Note that the ASCII values do not have explicit key codes: they are passed as ASCII
|
||||||
values.
|
values.
|
||||||
|
|
||||||
|
Note that not all keypresses can be intercepted this way. If you wish to intercept special
|
||||||
|
keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or
|
||||||
|
\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}.
|
||||||
|
|
||||||
Most, but not all, windows allow keypresses to be intercepted.
|
Most, but not all, windows allow keypresses to be intercepted.
|
||||||
|
|
||||||
\wxheading{See also}
|
\wxheading{See also}
|
||||||
|
|
||||||
|
\helpref{wxWindow::OnKeyDown}{wxwindowonkeydown}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp
|
||||||
\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
|
\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
|
||||||
\helpref{Event handling overview}{eventhandlingoverview}
|
\helpref{Event handling overview}{eventhandlingoverview}
|
||||||
|
|
||||||
@@ -999,6 +1004,65 @@ To intercept this event, use the EVT\_ERASE\_BACKGROUND macro in an event table
|
|||||||
|
|
||||||
\helpref{wxEraseEvent}{wxeraseevent}, \helpref{Event handling overview}{eventhandlingoverview}
|
\helpref{wxEraseEvent}{wxeraseevent}, \helpref{Event handling overview}{eventhandlingoverview}
|
||||||
|
|
||||||
|
\membersection{wxWindow::OnKeyDown}\label{wxwindowonkeydown}
|
||||||
|
|
||||||
|
\func{void}{OnKeyDown}{\param{wxKeyEvent\&}{ event}}
|
||||||
|
|
||||||
|
Called when the user has pressed a key, before it is translated into an ASCII value using other
|
||||||
|
modifier keys that might be pressed at the same time.
|
||||||
|
|
||||||
|
\wxheading{Parameters}
|
||||||
|
|
||||||
|
\docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for
|
||||||
|
details about this class.}
|
||||||
|
|
||||||
|
\wxheading{Remarks}
|
||||||
|
|
||||||
|
This member function is called in response to a key down event. To intercept this event,
|
||||||
|
use the EVT\_KEY\_DOWN macro in an event table definition. Your {\bf OnKeyDown} handler may call this
|
||||||
|
default function to achieve default keypress functionality.
|
||||||
|
|
||||||
|
Note that not all keypresses can be intercepted this way. If you wish to intercept special
|
||||||
|
keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or
|
||||||
|
\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}.
|
||||||
|
|
||||||
|
Most, but not all, windows allow keypresses to be intercepted.
|
||||||
|
|
||||||
|
\wxheading{See also}
|
||||||
|
|
||||||
|
\helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp
|
||||||
|
\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
|
||||||
|
\helpref{Event handling overview}{eventhandlingoverview}
|
||||||
|
|
||||||
|
\membersection{wxWindow::OnKeyUp}\label{wxwindowonkeyup}
|
||||||
|
|
||||||
|
\func{void}{OnKeyUp}{\param{wxKeyEvent\&}{ event}}
|
||||||
|
|
||||||
|
Called when the user has released a key.
|
||||||
|
|
||||||
|
\wxheading{Parameters}
|
||||||
|
|
||||||
|
\docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for
|
||||||
|
details about this class.}
|
||||||
|
|
||||||
|
\wxheading{Remarks}
|
||||||
|
|
||||||
|
This member function is called in response to a key up event. To intercept this event,
|
||||||
|
use the EVT\_KEY\_UP macro in an event table definition. Your {\bf OnKeyUp} handler may call this
|
||||||
|
default function to achieve default keypress functionality.
|
||||||
|
|
||||||
|
Note that not all keypresses can be intercepted this way. If you wish to intercept special
|
||||||
|
keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or
|
||||||
|
\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}.
|
||||||
|
|
||||||
|
Most, but not all, windows allow key up events to be intercepted.
|
||||||
|
|
||||||
|
\wxheading{See also}
|
||||||
|
|
||||||
|
\helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown},\rtfsp
|
||||||
|
\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
|
||||||
|
\helpref{Event handling overview}{eventhandlingoverview}
|
||||||
|
|
||||||
\membersection{wxWindow::OnKillFocus}\label{wxwindowonkillfocus}
|
\membersection{wxWindow::OnKillFocus}\label{wxwindowonkillfocus}
|
||||||
|
|
||||||
\func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}}
|
\func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}}
|
||||||
|
@@ -41,10 +41,10 @@ High Priority
|
|||||||
|
|
||||||
- Get wxGLCanvas from 1.68 working.
|
- Get wxGLCanvas from 1.68 working.
|
||||||
|
|
||||||
- Implement missing wxImage functions for Motif.
|
|
||||||
|
|
||||||
- wxClipboard
|
- wxClipboard
|
||||||
|
|
||||||
|
- EVT_KEY_DOWN, EVT_KEY_UP events.
|
||||||
|
|
||||||
Low Priority
|
Low Priority
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@@ -85,7 +85,10 @@ const wxEventType wxEVT_NC_RIGHT_DCLICK = wxEVT_FIRST + 211;
|
|||||||
|
|
||||||
/* Character input event type */
|
/* Character input event type */
|
||||||
const wxEventType wxEVT_CHAR = wxEVT_FIRST + 212;
|
const wxEventType wxEVT_CHAR = wxEVT_FIRST + 212;
|
||||||
const wxEventType wxEVT_NAVIGATION_KEY = wxEVT_FIRST + 213;
|
const wxEventType wxEVT_CHAR_HOOK = wxEVT_FIRST + 213;
|
||||||
|
const wxEventType wxEVT_NAVIGATION_KEY = wxEVT_FIRST + 214;
|
||||||
|
const wxEventType wxEVT_KEY_DOWN = wxEVT_FIRST + 215;
|
||||||
|
const wxEventType wxEVT_KEY_UP = wxEVT_FIRST + 216;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Scrollbar event identifiers
|
* Scrollbar event identifiers
|
||||||
@@ -105,8 +108,6 @@ const wxEventType wxEVT_END_SESSION = wxEVT_FIRST + 403;
|
|||||||
const wxEventType wxEVT_QUERY_END_SESSION = wxEVT_FIRST + 404;
|
const wxEventType wxEVT_QUERY_END_SESSION = wxEVT_FIRST + 404;
|
||||||
const wxEventType wxEVT_ACTIVATE_APP = wxEVT_FIRST + 405;
|
const wxEventType wxEVT_ACTIVATE_APP = wxEVT_FIRST + 405;
|
||||||
const wxEventType wxEVT_POWER = wxEVT_FIRST + 406;
|
const wxEventType wxEVT_POWER = wxEVT_FIRST + 406;
|
||||||
const wxEventType wxEVT_CHAR_HOOK = wxEVT_FIRST + 407;
|
|
||||||
const wxEventType wxEVT_KEY_UP = wxEVT_FIRST + 408;
|
|
||||||
const wxEventType wxEVT_ACTIVATE = wxEVT_FIRST + 409;
|
const wxEventType wxEVT_ACTIVATE = wxEVT_FIRST + 409;
|
||||||
const wxEventType wxEVT_CREATE = wxEVT_FIRST + 410;
|
const wxEventType wxEVT_CREATE = wxEVT_FIRST + 410;
|
||||||
const wxEventType wxEVT_DESTROY = wxEVT_FIRST + 411;
|
const wxEventType wxEVT_DESTROY = wxEVT_FIRST + 411;
|
||||||
@@ -537,6 +538,7 @@ public:
|
|||||||
/*
|
/*
|
||||||
wxEVT_CHAR
|
wxEVT_CHAR
|
||||||
wxEVT_CHAR_HOOK
|
wxEVT_CHAR_HOOK
|
||||||
|
wxEVT_KEY_DOWN
|
||||||
wxEVT_KEY_UP
|
wxEVT_KEY_UP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -1172,6 +1174,8 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
|
|||||||
#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
|
#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
|
||||||
#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
|
#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
|
||||||
#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
|
#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
|
||||||
|
#define EVT_KEY_DOWN(func) { wxEVT_KEY_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
|
||||||
|
#define EVT_KEY_UP(func) { wxEVT_KEY_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
|
||||||
#define EVT_CHAR_HOOK(func) { wxEVT_CHAR_HOOK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, NULL },
|
#define EVT_CHAR_HOOK(func) { wxEVT_CHAR_HOOK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, NULL },
|
||||||
#define EVT_MENU_HIGHLIGHT(id, func) { wxEVT_MENU_HIGHLIGHT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
|
#define EVT_MENU_HIGHLIGHT(id, func) { wxEVT_MENU_HIGHLIGHT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
|
||||||
#define EVT_MENU_HIGHLIGHT_ALL(func) { wxEVT_MENU_HIGHLIGHT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
|
#define EVT_MENU_HIGHLIGHT_ALL(func) { wxEVT_MENU_HIGHLIGHT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
|
||||||
|
@@ -416,6 +416,9 @@ public:
|
|||||||
|
|
||||||
void OnEraseBackground(wxEraseEvent& event);
|
void OnEraseBackground(wxEraseEvent& event);
|
||||||
void OnChar(wxKeyEvent& event);
|
void OnChar(wxKeyEvent& event);
|
||||||
|
void OnKeyDown(wxKeyEvent& event);
|
||||||
|
void OnKeyUp(wxKeyEvent& event);
|
||||||
|
void OnChar(wxKeyEvent& event);
|
||||||
void OnPaint(wxPaintEvent& event);
|
void OnPaint(wxPaintEvent& event);
|
||||||
void OnIdle(wxIdleEvent& event);
|
void OnIdle(wxIdleEvent& event);
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#if wxUSE_CLIPBOARD
|
#if wxUSE_CLIPBOARD
|
||||||
|
|
||||||
#include "wx/list.h"
|
#include "wx/list.h"
|
||||||
|
#include "wx/module.h"
|
||||||
|
|
||||||
// These functions superceded by wxClipboard, but retained in order to implement
|
// These functions superceded by wxClipboard, but retained in order to implement
|
||||||
// wxClipboard, and for compatibility.
|
// wxClipboard, and for compatibility.
|
||||||
@@ -72,10 +73,25 @@ public:
|
|||||||
// implementation
|
// implementation
|
||||||
|
|
||||||
bool m_open;
|
bool m_open;
|
||||||
|
wxList m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The clipboard */
|
/* The clipboard */
|
||||||
// WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
|
WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// wxClipboardModule
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class wxClipboardModule: public wxModule
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxClipboardModule)
|
||||||
|
|
||||||
|
public:
|
||||||
|
wxClipboardModule() {}
|
||||||
|
bool OnInit();
|
||||||
|
void OnExit();
|
||||||
|
};
|
||||||
|
|
||||||
#endif // wxUSE_CLIPBOARD
|
#endif // wxUSE_CLIPBOARD
|
||||||
#endif
|
#endif
|
||||||
|
@@ -454,6 +454,8 @@ public:
|
|||||||
|
|
||||||
void OnEraseBackground(wxEraseEvent& event);
|
void OnEraseBackground(wxEraseEvent& event);
|
||||||
void OnChar(wxKeyEvent& event);
|
void OnChar(wxKeyEvent& event);
|
||||||
|
void OnKeyDown(wxKeyEvent& event);
|
||||||
|
void OnKeyUp(wxKeyEvent& event);
|
||||||
void OnPaint(wxPaintEvent& event);
|
void OnPaint(wxPaintEvent& event);
|
||||||
void OnIdle(wxIdleEvent& event);
|
void OnIdle(wxIdleEvent& event);
|
||||||
|
|
||||||
@@ -612,6 +614,8 @@ public:
|
|||||||
virtual void MSWOnMouseLeave(int x, int y, WXUINT flags);
|
virtual void MSWOnMouseLeave(int x, int y, WXUINT flags);
|
||||||
|
|
||||||
virtual void MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
|
virtual void MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
|
||||||
|
virtual void MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
|
||||||
|
virtual void MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
|
||||||
|
|
||||||
virtual bool MSWOnActivate(int flag, bool minimized, WXHWND activate);
|
virtual bool MSWOnActivate(int flag, bool minimized, WXHWND activate);
|
||||||
virtual long MSWOnMDIActivate(long flag, WXHWND activate, WXHWND deactivate);
|
virtual long MSWOnMDIActivate(long flag, WXHWND activate, WXHWND deactivate);
|
||||||
|
@@ -390,6 +390,8 @@ public:
|
|||||||
|
|
||||||
void OnEraseBackground(wxEraseEvent& event);
|
void OnEraseBackground(wxEraseEvent& event);
|
||||||
void OnChar(wxKeyEvent& event);
|
void OnChar(wxKeyEvent& event);
|
||||||
|
void OnKeyDown(wxKeyEvent& event);
|
||||||
|
void OnKeyUp(wxKeyEvent& event);
|
||||||
void OnPaint(wxPaintEvent& event);
|
void OnPaint(wxPaintEvent& event);
|
||||||
void OnIdle(wxIdleEvent& event);
|
void OnIdle(wxIdleEvent& event);
|
||||||
|
|
||||||
|
@@ -1700,8 +1700,6 @@ wxImage::wxImage( const wxBitmap &bitmap )
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
#ifdef __WXMOTIF__
|
#ifdef __WXMOTIF__
|
||||||
|
|
||||||
#include <Xm/Xm.h>
|
#include <Xm/Xm.h>
|
||||||
|
@@ -70,6 +70,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler)
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
||||||
EVT_CHAR(wxWindow::OnChar)
|
EVT_CHAR(wxWindow::OnChar)
|
||||||
|
EVT_KEY_DOWN(wxWindow::OnKeyDown)
|
||||||
|
EVT_KEY_UP(wxWindow::OnKeyUp)
|
||||||
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
||||||
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
||||||
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
||||||
@@ -1472,6 +1474,7 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
|
|||||||
|
|
||||||
void wxWindow::OnChar(wxKeyEvent& event)
|
void wxWindow::OnChar(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
|
/* ??
|
||||||
if ( event.KeyCode() == WXK_TAB ) {
|
if ( event.KeyCode() == WXK_TAB ) {
|
||||||
// propagate the TABs to the parent - it's up to it to decide what
|
// propagate the TABs to the parent - it's up to it to decide what
|
||||||
// to do with it
|
// to do with it
|
||||||
@@ -1480,6 +1483,17 @@ void wxWindow::OnChar(wxKeyEvent& event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxWindow::OnKeyDown(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxWindow::OnKeyUp(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
Default();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindow::OnPaint(wxPaintEvent& event)
|
void wxWindow::OnPaint(wxPaintEvent& event)
|
||||||
|
@@ -333,6 +333,8 @@ bool wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int max
|
|||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject)
|
IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject)
|
||||||
|
|
||||||
|
wxClipboard* wxTheClipboard = (wxClipboard*) NULL;
|
||||||
|
|
||||||
wxClipboard::wxClipboard()
|
wxClipboard::wxClipboard()
|
||||||
{
|
{
|
||||||
m_open = FALSE;
|
m_open = FALSE;
|
||||||
@@ -345,6 +347,14 @@ wxClipboard::~wxClipboard()
|
|||||||
|
|
||||||
void wxClipboard::Clear()
|
void wxClipboard::Clear()
|
||||||
{
|
{
|
||||||
|
wxNode* node = m_data.First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxDataObject* data = (wxDataObject*) node->Data();
|
||||||
|
delete data;
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
m_data.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxClipboard::Open()
|
bool wxClipboard::Open()
|
||||||
@@ -479,4 +489,24 @@ bool wxClipboard::GetData( wxDataObject *data )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// wxClipboardModule
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule)
|
||||||
|
|
||||||
|
bool wxClipboardModule::OnInit()
|
||||||
|
{
|
||||||
|
wxTheClipboard = new wxClipboard();
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxClipboardModule::OnExit()
|
||||||
|
{
|
||||||
|
if (wxTheClipboard) delete wxTheClipboard;
|
||||||
|
wxTheClipboard = (wxClipboard*) NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_CLIPBOARD
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
|
||||||
|
@@ -100,6 +100,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler)
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
||||||
EVT_CHAR(wxWindow::OnChar)
|
EVT_CHAR(wxWindow::OnChar)
|
||||||
|
EVT_KEY_DOWN(wxWindow::OnKeyDown)
|
||||||
|
EVT_KEY_UP(wxWindow::OnKeyUp)
|
||||||
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
||||||
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
||||||
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
||||||
@@ -1161,6 +1163,9 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
}
|
}
|
||||||
|
|
||||||
case WM_KEYDOWN:
|
case WM_KEYDOWN:
|
||||||
|
{
|
||||||
|
MSWOnKeyDown((WORD) wParam, lParam);
|
||||||
|
#if 0
|
||||||
// we consider these message "not interesting"
|
// we consider these message "not interesting"
|
||||||
if ( wParam == VK_SHIFT || wParam == VK_CONTROL )
|
if ( wParam == VK_SHIFT || wParam == VK_CONTROL )
|
||||||
return Default();
|
return Default();
|
||||||
@@ -1178,8 +1183,15 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
MSWOnChar((WORD)wParam, lParam);
|
MSWOnChar((WORD)wParam, lParam);
|
||||||
else
|
else
|
||||||
return Default();
|
return Default();
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case WM_KEYUP:
|
||||||
|
{
|
||||||
|
MSWOnKeyUp((WORD) wParam, lParam);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case WM_CHAR: // Always an ASCII character
|
case WM_CHAR: // Always an ASCII character
|
||||||
{
|
{
|
||||||
MSWOnChar((WORD)wParam, lParam, TRUE);
|
MSWOnChar((WORD)wParam, lParam, TRUE);
|
||||||
@@ -2392,6 +2404,74 @@ void wxWindow::MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxWindow::MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII)
|
||||||
|
{
|
||||||
|
int id;
|
||||||
|
|
||||||
|
if ((id = wxCharCodeMSWToWX(wParam)) == 0) {
|
||||||
|
id = wParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id != -1)
|
||||||
|
{
|
||||||
|
wxKeyEvent event(wxEVT_KEY_DOWN);
|
||||||
|
event.m_shiftDown = (::GetKeyState(VK_SHIFT)&0x100?TRUE:FALSE);
|
||||||
|
event.m_controlDown = (::GetKeyState(VK_CONTROL)&0x100?TRUE:FALSE);
|
||||||
|
if ((HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN)
|
||||||
|
event.m_altDown = TRUE;
|
||||||
|
|
||||||
|
event.m_eventObject = this;
|
||||||
|
event.m_keyCode = id;
|
||||||
|
event.SetTimestamp(wxApp::sm_lastMessageTime);
|
||||||
|
|
||||||
|
POINT pt ;
|
||||||
|
GetCursorPos(&pt) ;
|
||||||
|
RECT rect ;
|
||||||
|
GetWindowRect((HWND) GetHWND(),&rect) ;
|
||||||
|
pt.x -= rect.left ;
|
||||||
|
pt.y -= rect.top ;
|
||||||
|
|
||||||
|
event.m_x = pt.x; event.m_y = pt.y;
|
||||||
|
|
||||||
|
if (!GetEventHandler()->ProcessEvent(event))
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxWindow::MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII)
|
||||||
|
{
|
||||||
|
int id;
|
||||||
|
|
||||||
|
if ((id = wxCharCodeMSWToWX(wParam)) == 0) {
|
||||||
|
id = wParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id != -1)
|
||||||
|
{
|
||||||
|
wxKeyEvent event(wxEVT_KEY_UP);
|
||||||
|
event.m_shiftDown = (::GetKeyState(VK_SHIFT)&0x100?TRUE:FALSE);
|
||||||
|
event.m_controlDown = (::GetKeyState(VK_CONTROL)&0x100?TRUE:FALSE);
|
||||||
|
if ((HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN)
|
||||||
|
event.m_altDown = TRUE;
|
||||||
|
|
||||||
|
event.m_eventObject = this;
|
||||||
|
event.m_keyCode = id;
|
||||||
|
event.SetTimestamp(wxApp::sm_lastMessageTime);
|
||||||
|
|
||||||
|
POINT pt ;
|
||||||
|
GetCursorPos(&pt) ;
|
||||||
|
RECT rect ;
|
||||||
|
GetWindowRect((HWND) GetHWND(),&rect) ;
|
||||||
|
pt.x -= rect.left ;
|
||||||
|
pt.y -= rect.top ;
|
||||||
|
|
||||||
|
event.m_x = pt.x; event.m_y = pt.y;
|
||||||
|
|
||||||
|
if (!GetEventHandler()->ProcessEvent(event))
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void wxWindow::MSWOnJoyDown(int joystick, int x, int y, WXUINT flags)
|
void wxWindow::MSWOnJoyDown(int joystick, int x, int y, WXUINT flags)
|
||||||
{
|
{
|
||||||
int buttons = 0;
|
int buttons = 0;
|
||||||
@@ -3464,6 +3544,8 @@ WXDWORD wxWindow::Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D)
|
|||||||
|
|
||||||
void wxWindow::OnChar(wxKeyEvent& event)
|
void wxWindow::OnChar(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
|
/* I'm commenting this out because otherwise, we lose tabs in e.g. a text window (see MDI sample)
|
||||||
|
* (JACS, 14/01/99)
|
||||||
if ( event.KeyCode() == WXK_TAB ) {
|
if ( event.KeyCode() == WXK_TAB ) {
|
||||||
// propagate the TABs to the parent - it's up to it to decide what
|
// propagate the TABs to the parent - it's up to it to decide what
|
||||||
// to do with it
|
// to do with it
|
||||||
@@ -3472,6 +3554,7 @@ void wxWindow::OnChar(wxKeyEvent& event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
bool isVirtual;
|
bool isVirtual;
|
||||||
int id = wxCharCodeWXToMSW((int)event.KeyCode(), &isVirtual);
|
int id = wxCharCodeWXToMSW((int)event.KeyCode(), &isVirtual);
|
||||||
@@ -3483,6 +3566,16 @@ void wxWindow::OnChar(wxKeyEvent& event)
|
|||||||
(void) MSWDefWindowProc(m_lastMsg, (WPARAM) id, m_lastLParam);
|
(void) MSWDefWindowProc(m_lastMsg, (WPARAM) id, m_lastLParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxWindow::OnKeyDown(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxWindow::OnKeyUp(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
|
||||||
void wxWindow::OnPaint(wxPaintEvent& event)
|
void wxWindow::OnPaint(wxPaintEvent& event)
|
||||||
{
|
{
|
||||||
Default();
|
Default();
|
||||||
|
@@ -44,6 +44,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler)
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
||||||
EVT_CHAR(wxWindow::OnChar)
|
EVT_CHAR(wxWindow::OnChar)
|
||||||
|
EVT_KEY_DOWN(wxWindow::OnKeyDown)
|
||||||
|
EVT_KEY_UP(wxWindow::OnKeyUp)
|
||||||
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
||||||
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
||||||
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
||||||
@@ -551,6 +553,7 @@ void wxWindow::SetFont(const wxFont& font)
|
|||||||
|
|
||||||
void wxWindow::OnChar(wxKeyEvent& event)
|
void wxWindow::OnChar(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
|
/* ??
|
||||||
if ( event.KeyCode() == WXK_TAB ) {
|
if ( event.KeyCode() == WXK_TAB ) {
|
||||||
// propagate the TABs to the parent - it's up to it to decide what
|
// propagate the TABs to the parent - it's up to it to decide what
|
||||||
// to do with it
|
// to do with it
|
||||||
@@ -559,6 +562,18 @@ void wxWindow::OnChar(wxKeyEvent& event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxWindow::OnKeyDown(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
Default();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxWindow::OnKeyUp(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
Default();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindow::OnPaint(wxPaintEvent& event)
|
void wxWindow::OnPaint(wxPaintEvent& event)
|
||||||
|
Reference in New Issue
Block a user