本文整理汇总了C++中wxKeyEvent::KeyCode方法的典型用法代码示例。如果您正苦于以下问题:C++ wxKeyEvent::KeyCode方法的具体用法?C++ wxKeyEvent::KeyCode怎么用?C++ wxKeyEvent::KeyCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxKeyEvent
的用法示例。
在下文中一共展示了wxKeyEvent::KeyCode方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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();
}
示例2: KeyEvent
void LabelTrack::KeyEvent(double sel0, double sel1, wxKeyEvent & event)
{
long keyCode = event.KeyCode();
if (mSelIndex >= 0) {
switch (keyCode) {
case WXK_BACK:{
int len = mLabels[mSelIndex]->title.Length();
if (len > 0)
mLabels[mSelIndex]->title =
mLabels[mSelIndex]->title.Left(len - 1);
}
break;
case WXK_RETURN:
if (mLabels[mSelIndex]->title == "") {
delete mLabels[mSelIndex];
mLabels.RemoveAt(mSelIndex);
}
mSelIndex = -1;
break;
case WXK_TAB:
if (event.ShiftDown()) {
if (mSelIndex > 0)
mSelIndex--;
} else {
if (mSelIndex < (int)mLabels.Count() - 1)
mSelIndex++;
}
break;
default:
mLabels[mSelIndex]->title += keyCode;
break;
}
} else {
// Create new label
LabelStruct *l = new LabelStruct();
l->t = sel0;
l->title += wxChar(keyCode);
int len = mLabels.Count();
int pos = 0;
while (pos < len && l->t > mLabels[pos]->t)
pos++;
mLabels.Insert(l, pos);
mSelIndex = pos;
}
}
示例3: OnKeyEvent
void APalette::OnKeyEvent(wxKeyEvent & event)
{
if (event.ControlDown()) {
event.Skip();
return;
}
long key = event.KeyCode();
if (event.KeyCode() == WXK_SPACE) {
if (gAudioIO->IsBusy()) {
OnStop();
SetPlay(false);
SetStop(true);
} else {
OnPlay();
SetPlay(true);
SetStop(false);
}
}
}
示例4: OnKeyDown
void GLCanvas::OnKeyDown( wxKeyEvent& event )
{
long evkey = event.KeyCode();
if (evkey == 0) return;
if (!m_TimeInitialized)
{
m_TimeInitialized = 1;
m_xsynct = event.m_timeStamp;
m_gsynct = wxStopWatch(&m_secbase);
m_Key = evkey;
m_StartTime = 0;
m_LastTime = 0;
m_LastRedraw = 0;
}
unsigned long currTime = event.m_timeStamp - m_xsynct;
if (evkey != m_Key)
{
m_Key = evkey;
m_LastRedraw = m_StartTime = m_LastTime = currTime;
}
if (currTime >= m_LastRedraw) // Redraw:
{
Action( m_Key, m_LastTime-m_StartTime, currTime-m_StartTime );
#if defined(__WXMAC__) && !defined(__DARWIN__)
m_LastRedraw = currTime; // wxStopWatch() doesn't work on Mac...
#else
m_LastRedraw = wxStopWatch(&m_secbase) - m_gsynct;
#endif
m_LastTime = currTime;
}
event.Skip();
}
示例5: OnKeyDown
void AudioView::OnKeyDown(wxKeyEvent& keyEvent)
{
if (keyEvent.KeyCode() == WXK_BACK ||
keyEvent.KeyCode() == WXK_DELETE)
Clear();
}
示例6: OnKeyPress
/////////////
// Key press
void BaseGrid::OnKeyPress(wxKeyEvent &event) {
// Get size
int w,h;
GetClientSize(&w,&h);
// Get scan code
int key = event.KeyCode();
bool ctrl = event.m_controlDown;
bool alt = event.m_altDown;
bool shift = event.m_shiftDown;
// Left/right, forward to seek bar if video is loaded
if (key == WXK_LEFT || key == WXK_RIGHT) {
if (video->loaded) {
video->ControlSlider->SetFocus();
video->ControlSlider->AddPendingEvent(event);
return;
}
event.Skip();
return;
}
// Select all
if (key == 'A' && ctrl && !alt && !shift) {
int rows = GetRows();
for (int i=0;i<rows;i++) SelectRow(i,true);
}
// Up/down
int dir = 0;
int step = 1;
if (key == WXK_UP) dir = -1;
if (key == WXK_DOWN) dir = 1;
if (key == WXK_PRIOR) {
dir = -1;
step = h/lineHeight - 2;
}
if (key == WXK_NEXT) {
dir = 1;
step = h/lineHeight - 2;
}
if (key == WXK_HOME) {
dir = -1;
step = GetRows();
}
if (key == WXK_END) {
dir = 1;
step = GetRows();
}
// Moving
if (dir) {
// Move selection
if (!ctrl && !shift && !alt) {
// Move to extent first
int curLine = editBox->linen;
if (extendRow != -1) {
curLine = extendRow;
extendRow = -1;
}
int next = MID(0,curLine+dir*step,GetRows()-1);
editBox->SetToLine(next);
SelectRow(next);
MakeCellVisible(next,0,false);
return;
}
// Move active only
if (alt && !shift && !ctrl) {
extendRow = -1;
int next = MID(0,editBox->linen+dir*step,GetRows()-1);
editBox->SetToLine(next);
Refresh(false);
MakeCellVisible(next,0,false);
return;
}
// Shift-selection
if (shift && !ctrl && !alt) {
// Find end
if (extendRow == -1) extendRow = editBox->linen;
extendRow = MID(0,extendRow+dir*step,GetRows()-1);
// Set range
int i1 = editBox->linen;
int i2 = extendRow;
if (i2 < i1) {
int aux = i1;
i1 = i2;
i2 = aux;
}
// Select range
ClearSelection();
for (int i=i1;i<=i2;i++) {
SelectRow(i,true);
}
//.........这里部分代码省略.........
示例7: KeyEvent
void LabelTrack::KeyEvent(double sel0, double sel1, wxKeyEvent & event)
{
#ifdef __WXMAC__
// HACK: why does each key event happen twice on wxMac?
gMacRepeat = !gMacRepeat;
if (gMacRepeat)
return;
#endif
long keyCode = event.KeyCode();
if (mSelIndex >= 0) {
switch (keyCode) {
case WXK_BACK:{
int len = mLabels[mSelIndex]->title.Length();
if (len > 0)
mLabels[mSelIndex]->title =
mLabels[mSelIndex]->title.Left(len - 1);
}
break;
case WXK_RETURN:
case WXK_ESCAPE:
if (mLabels[mSelIndex]->title == "") {
delete mLabels[mSelIndex];
mLabels.RemoveAt(mSelIndex);
}
mSelIndex = -1;
break;
case WXK_TAB:
if (event.ShiftDown()) {
if (mSelIndex > 0)
mSelIndex--;
} else {
if (mSelIndex < (int)mLabels.Count() - 1)
mSelIndex++;
}
break;
default:
mLabels[mSelIndex]->title += keyCode;
break;
}
} else {
// Create new label
LabelStruct *l = new LabelStruct();
l->t = sel0;
l->t1 = sel1;
l->title += wxChar(keyCode);
int len = mLabels.Count();
int pos = 0;
while (pos < len && l->t > mLabels[pos]->t)
pos++;
mLabels.Insert(l, pos);
mSelIndex = pos;
}
}
示例8: OnKeyEvent
void ControlToolBar::OnKeyEvent(wxKeyEvent & event)
{
if (event.ControlDown() || event.AltDown()) {
event.Skip();
return;
}
// Play/Stop
#if (AUDACITY_BRANDING == BRAND_AUDIOTOUCH)
if (event.GetKeyCode() == WXK_RETURN) {
#else
if (event.KeyCode() == WXK_SPACE) {
#endif
if (gAudioIO->IsStreamActive(GetActiveProject()->GetAudioIOToken())) {
SetPlay(false);
SetStop(true);
StopPlaying();
}
else if (!gAudioIO->IsBusy()) {
SetPlay(true);
SetStop(false);
PlayCurrentRegion();
}
return;
}
event.Skip();
}
//void ControlToolBar::OnKeyUp(wxKeyEvent & event)
//{
// #if (AUDACITY_BRANDING == BRAND_AUDIOTOUCH)
// if ((event.KeyCode() == WXK_SPACE) && // Record
// !mIsLocked)
// {
// StopPlaying();
//
// SetPlay(false);
// SetRecord(false);
// SetStop(true);
// mStop->Disable();
// }
// #endif
// event.Skip();
//}
//
void ControlToolBar::UpdatePrefs()
{
gPrefs->Read("/GUI/AlwaysEnablePlay", &mAlwaysEnablePlay, false);
#if 0
gPrefs->Read("/GUI/AlwaysEnablePause", &mAlwaysEnablePause, false);
if(mAlwaysEnablePause)
{
mPause->Enable();
this->EnablePauseCommand(true);
}
else if(!mAlwaysEnablePause && !gAudioIO->IsBusy())
{
mPause->PopUp();
mPause->Disable();
this->EnablePauseCommand(false);
mPaused = false;
gAudioIO->SetPaused(false);
}
gAudioIO->SetAlwaysEnablePause(mAlwaysEnablePause);
#endif
}