本文整理汇总了C++中wxKeyEvent::GetUnicodeKey方法的典型用法代码示例。如果您正苦于以下问题:C++ wxKeyEvent::GetUnicodeKey方法的具体用法?C++ wxKeyEvent::GetUnicodeKey怎么用?C++ wxKeyEvent::GetUnicodeKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxKeyEvent
的用法示例。
在下文中一共展示了wxKeyEvent::GetUnicodeKey方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_key_down
void ImageGroundTruthPanelViewer::on_key_down(wxKeyEvent & event)
{
if(event.ControlDown() && event.GetUnicodeKey() == 'O')
{
InitIO();
return;
}
if(mp_ground_truth_manager->IsEmpty())
{
return ;
}
try
{
switch(event.GetKeyCode())
{
case WXK_PAGEUP: LoadNextImage(); break;
case WXK_PAGEDOWN: LoadPreviousImage(); break;
}
if(event.ControlDown())
{
switch(event.GetUnicodeKey())
{
case 'S': Save(); break;
case 'Z': Undo(); break;
case 'Y': Redo(); break;
case 'A': MarkAsBlind(); break;
case 'I': MarkAsUnknown(); break;
case 'R': Reject(); break;
}
}
}
JPB_wx_CATCH("échec de l'ajout d'une boîtes englobante d'occlusion");
}
示例2: if
PlatformKeyboardEvent::PlatformKeyboardEvent(wxKeyEvent& event)
{
if (event.GetEventType() == wxEVT_KEY_UP)
m_type = KeyUp;
else if (event.GetEventType() == wxEVT_KEY_DOWN)
m_type = KeyDown;
else if (event.GetEventType() == wxEVT_CHAR)
m_type = Char;
else
ASSERT_NOT_REACHED();
if (m_type != Char)
m_keyIdentifier = keyIdentifierForWxKeyCode(event.GetKeyCode());
else {
//ENTER is an editing command processed as a char (only Enter and Tab are)
//unfortunately the unicode key for numpad_enter (370) is NOT what we want here (13)
//The unicode values for normal enter and tab are the same as the ASCII values, thus ok
//Note that I think this a wx bug, as the Character Code is actually 13 when
//numpad_enter is a CHAR event.
if (event.GetKeyCode() == 13 && event.GetUnicodeKey() == wxChar(370))
m_text = "\r";
else
m_text = wxString(event.GetUnicodeKey());
m_unmodifiedText = m_text;
}
m_autoRepeat = false; // FIXME: not correct.
m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event.GetKeyCode());
m_nativeVirtualKeyCode = event.GetKeyCode();
m_isKeypad = (event.GetKeyCode() >= WXK_NUMPAD_SPACE) && (event.GetKeyCode() <= WXK_NUMPAD_DIVIDE);
m_shiftKey = event.ShiftDown();
m_ctrlKey = event.CmdDown();
m_altKey = event.AltDown();
m_metaKey = event.MetaDown();
}
示例3: OnKeyDown
void NotebookNavigationDlg::OnKeyDown(wxKeyEvent& event)
{
if((event.GetUnicodeKey() == WXK_TAB) && (
#ifdef __WXOSX__
event.AltDown()
#else
event.CmdDown()
#endif
&&
event.ShiftDown())) {
// Navigate Up
wxDataViewItem item = m_dvListCtrl->GetSelection();
if(item.IsOk()) {
int row = m_dvListCtrl->ItemToRow(item);
if(row > 0) {
--row;
item = m_dvListCtrl->RowToItem(row);
m_dvListCtrl->Select(item);
m_dvListCtrl->EnsureVisible(item);
} else {
// Select the last item
row = m_dvListCtrl->GetItemCount() - 1;
item = m_dvListCtrl->RowToItem(row);
m_dvListCtrl->Select(item);
m_dvListCtrl->EnsureVisible(item);
}
}
} else if((event.GetUnicodeKey() == WXK_TAB) &&
#ifdef __WXOSX__
event.AltDown()
#else
event.CmdDown()
#endif
) {
// Navigate Down
wxDataViewItem item = m_dvListCtrl->GetSelection();
if(item.IsOk()) {
int row = m_dvListCtrl->ItemToRow(item);
if(row < (m_dvListCtrl->GetItemCount() - 1)) {
++row;
item = m_dvListCtrl->RowToItem(row);
m_dvListCtrl->Select(item);
m_dvListCtrl->EnsureVisible(item);
} else {
// Select the last item
item = m_dvListCtrl->RowToItem(0);
m_dvListCtrl->Select(item);
m_dvListCtrl->EnsureVisible(item);
}
}
} else {
event.Skip();
}
}
示例4: OnChar
void CRenderWnd::OnChar( wxKeyEvent & event )
{
TRACEUSER( "jlh92", _T("CRenderWnd::OnChar \"%c\" \n"), event.GetUnicodeKey() );
if( !AfxGetApp().HandleKeyPress( event ) )
event.Skip(); // Pass the key event on to someone who really wants it.
}
示例5: IsAcceptedKey
bool wxGridCellEditor::IsAcceptedKey(wxKeyEvent& event)
{
bool ctrl = event.ControlDown();
bool alt;
#ifdef __WXMAC__
// On the Mac the Alt key is more like shift and is used for entry of
// valid characters, so check for Ctrl and Meta instead.
alt = event.MetaDown();
#else // !__WXMAC__
alt = event.AltDown();
#endif // __WXMAC__/!__WXMAC__
// Assume it's not a valid char if ctrl or alt is down, but if both are
// down then it may be because of an AltGr key combination, so let them
// through in that case.
if ((ctrl || alt) && !(ctrl && alt))
return false;
#if wxUSE_UNICODE
if ( static_cast<int>(event.GetUnicodeKey()) == WXK_NONE )
return false;
#else
if ( event.GetKeyCode() > WXK_START )
return false;
#endif
return true;
}
示例6: wxKeyCodeToSDLCode
void wxG3DCanvas::handleKeyDown(wxKeyEvent& event) {
if (_gWindow->keyboardEvents.length() > 200) {
_gWindow->keyboardEvents.clear();
}
GEvent e;
e.key.type = SDL_KEYDOWN;
e.key.state = SDL_PRESSED;
e.key.keysym.sym = wxKeyCodeToSDLCode(event.KeyCode());
#if (wxUSE_UNICODE == 1)
e.key.keysym.unicode = event.GetUnicodeKey();
#elif defined(wxHAS_RAW_KEY_CODES)
e.key.keysym.unicode = event.GetRawKeyCode();
#else
e.key.keysym.unicode = e.key.keysym.sym;
#endif
#if defined(wxHAS_RAW_KEY_CODES)
e.key.keysym.scancode = event.GetRawKeyCode();
#else
e.key.keysym.scancode = 0;
#endif
_gWindow->keyboardEvents.pushBack(e);
event.Skip();
}
示例7: OnCanvasKeyPress
void SelectionTool::OnCanvasKeyPress(const wxKeyEvent &event)
{
if (event.GetUnicodeKey() == REMOVE_SELECTED_KEY)
{
m_selectionManager.RemoveSelection();
}
}
示例8: IsAcceptedKey
bool wxGridCellEditor::IsAcceptedKey(wxKeyEvent& event)
{
bool ctrl = event.ControlDown();
bool alt = event.AltDown();
#ifdef __WXMAC__
// On the Mac the Alt key is more like shift and is used for entry of
// valid characters, so check for Ctrl and Meta instead.
alt = event.MetaDown();
#endif
// Assume it's not a valid char if ctrl or alt is down, but if both are
// down then it may be because of an AltGr key combination, so let them
// through in that case.
if ((ctrl || alt) && !(ctrl && alt))
return false;
#if wxUSE_UNICODE
// if the unicode key code is not really a unicode character (it may
// be a function key or etc., the platforms appear to always give us a
// small value in this case) then fallback to the ASCII key code but
// don't do anything for function keys or etc.
if ( event.GetUnicodeKey() > 127 && event.GetKeyCode() > 127 )
return false;
#else
if ( event.GetKeyCode() > 255 )
return false;
#endif
return true;
}
示例9: OnChar
void MainSequencer::OnChar(wxKeyEvent& event)
{
wxChar uc = event.GetUnicodeKey();
KeyBinding *binding = keyBindings.Find(uc);
if (binding != NULL) {
event.StopPropagation();
switch (binding->GetType()) {
case TIMING_ADD:
InsertTimingMarkFromRange();
break;
case TIMING_SPLIT:
SplitTimingMark();
break;
case KEY_ZOOM_IN:
PanelTimeLine->ZoomIn();
break;
case KEY_ZOOM_OUT:
PanelTimeLine->ZoomOut();
break;
case RANDOM_EFFECT:
PanelEffectGrid->Paste("Random\t\t\n");
break;
case EFFECT_STRING:
PanelEffectGrid->Paste(binding->GetEffectName() + "\t" + binding->GetEffectString() + "\t\n");
break;
}
}
//printf("OnChar %d %c\n", uc, uc);
switch(uc)
{
case 'c':
case 'C':
case WXK_CONTROL_C:
if (event.CmdDown() || event.ControlDown()) {
CopySelectedEffects();
PanelEffectGrid->SetCanPaste();
event.StopPropagation();
}
break;
case 'x':
case 'X':
case WXK_CONTROL_X:
if (event.CmdDown() || event.ControlDown()) {
CopySelectedEffects();
PanelEffectGrid->DeleteSelectedEffects();
event.StopPropagation();
}
break;
case 'v':
case 'V':
case WXK_CONTROL_V:
if (event.CmdDown() || event.ControlDown()) {
Paste();
event.StopPropagation();
}
break;
}
}
示例10: OnUserInput
void PipedProcessCtrl::OnUserInput(wxKeyEvent& ke)
{
if(m_dead)
{
ke.Skip();
return;
}
//todo: if user presses navigational keys accept them as navigational (also copy/paste shortcuts?)
char* kc1=new char[2];
kc1[0]=ke.GetKeyCode()%256;
kc1[1]=0;
if(kc1[0]=='\r')
{
//cbMessageBox(_T("converting keystroke"));
kc1[0]='\n';
}
// cbMessageBox(_T("key press: ")+wxString::FromAscii(kc1)+wxString::Format(_T(" keycode: %i"),ke.GetKeyCode()));
wxChar kc2=ke.GetUnicodeKey();
wxString buf(kc2);
//kc1[0]=buf[0];
m_ostream->Write(kc1,1);
// m_proc->GetOutputStream()->Write(kc1,1);
// cbMessageBox(_T("bytes written: ")+wxString::Format(_T("code: %u"),m_ostream->LastWrite()));
m_textctrl->AppendText(kc2);
// m_textctrl->SetInsertionPointEnd();
}
示例11: OnChar
void TimeEdit::OnChar(wxKeyEvent &event) {
event.Skip();
if (byFrame || insert) return;
int key = event.GetUnicodeKey();
if ((key < '0' || key > '9') && key != ';' && key != '.' && key != ',') return;
event.Skip(false);
long start = GetInsertionPoint();
std::string text = from_wx(GetValue());
// Cursor is at the end so do nothing
if (start >= (long)text.size()) return;
// If the cursor is at punctuation, move it forward to the next digit
if (text[start] == ':' || text[start] == '.' || text[start] == ',')
++start;
// : and . hop over punctuation but never insert anything
if (key == ':' || key == ';' || key == '.' || key == ',') {
SetInsertionPoint(start);
return;
}
// Overwrite the digit
text[start] = (char)key;
time = text;
SetValue(to_wx(time.GetAssFormated()));
SetInsertionPoint(start + 1);
}
示例12: OnUserInput
void PipedProcessCtrl::OnUserInput(wxKeyEvent& ke)
{
if(m_dead)
{
ke.Skip();
return;
}
//todo: if user presses navigational keys accept them as navigational (also copy/paste shortcuts?)
char* kc1=new char[2];
kc1[0]=ke.GetKeyCode()%256;
kc1[1]=0;
if(kc1[0]=='\r')
kc1[0]='\n';
wxChar kc2=ke.GetUnicodeKey();
wxString buf(kc2);
if (!ke.ControlDown() && !ke.AltDown())
if (ke.GetKeyCode()<WXK_START ||
ke.GetKeyCode()>WXK_COMMAND)
{
m_ostream->Write(kc1,1);
m_textctrl->AppendText(kc2);
m_textctrl->GotoPos(m_textctrl->GetLength());
return;
}
ke.Skip();
}
示例13: OnKeyDown
void wxListCtrlEx::OnKeyDown(wxKeyEvent& event)
{
if (!m_prefixSearch_enabled)
{
event.Skip();
return;
}
int code = event.GetKeyCode();
if (code == WXK_LEFT ||
code == WXK_RIGHT ||
code == WXK_UP ||
code == WXK_DOWN ||
code == WXK_HOME ||
code == WXK_END)
{
ResetSearchPrefix();
}
#if defined(__WXMSW__) && wxUSE_UNICODE
wxChar key = MapVirtualKey(event.GetUnicodeKey(), 2);
if (key < 32)
{
event.Skip();
return;
}
else if (key == 32 || event.HasModifiers())
{
event.Skip();
return;
}
HandlePrefixSearch(key);
return;
#else
if (code > 32 && code < 300 && !event.HasModifiers())
{
#if wxUSE_UNICODE
int unicodeKey = event.GetUnicodeKey();
if (unicodeKey)
code = unicodeKey;
#endif
HandlePrefixSearch(code);
}
else
event.Skip();
#endif //defined(__WXMSW__) && wxUSE_UNICODE
}
示例14: OnChar
void InputManager::OnChar(wxKeyEvent& e)
{
e.Skip();
wxString keystr(e.GetUnicodeKey());
wprintf(L"InputManager::OnChar %s\n", keystr.wc_str());
handleEvent(e);
}
示例15: OnChar
void ScriptEditor::OnChar(wxKeyEvent& event)
{
#if wxUSE_UNICODE and __WXGTK__
if (m_lastKeyDownConsumed && event.GetUnicodeKey() > 255)
m_lastKeyDownConsumed = false;
#endif
wxStyledTextCtrl::OnChar(event);
}