本文整理汇总了C++中TopWindow::WhenClose方法的典型用法代码示例。如果您正苦于以下问题:C++ TopWindow::WhenClose方法的具体用法?C++ TopWindow::WhenClose怎么用?C++ TopWindow::WhenClose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TopWindow
的用法示例。
在下文中一共展示了TopWindow::WhenClose方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Proc
//.........这里部分代码省略.........
else
GtkButtonEvent(UP);
break;
case GDK_SCROLL: {
GtkMouseEvent(MOUSEWHEEL, MOUSEWHEEL, CurrentEvent.value);
break;
}
case GDK_KEY_PRESS:
pressed = true;
case GDK_KEY_RELEASE:
kv = CurrentEvent.value;
if(kv >= 0 && kv < 65536) {
LLOG("keyval " << FormatIntHex(kv) << ' ' << (char)kv);
if(kv >= 'a' && kv <= 'z')
kv = kv - 'a' + 'A';
static Tuple2<int, int> cv[] = {
{ GDKEY(BackSpace), K_BACKSPACE },
{ GDKEY(Tab), K_TAB },
{ GDKEY(ISO_Left_Tab), K_TAB },
{ GDKEY(Return), K_ENTER },
{ GDKEY(Escape), K_ESCAPE },
{ GDKEY(space), K_SPACE },
{ GDKEY(Control_L), K_CTRL_KEY },
{ GDKEY(Control_R), K_CTRL_KEY },
{ GDKEY(Shift_L), K_SHIFT_KEY },
{ GDKEY(Shift_R), K_SHIFT_KEY },
{ GDKEY(Alt_L), K_ALT_KEY },
{ GDKEY(Alt_R), K_ALT_KEY },
{ GDKEY(KP_Space), K_SPACE },
{ GDKEY(KP_Tab), K_TAB },
{ GDKEY(KP_Enter), K_ENTER },
{ GDKEY(KP_F1), K_F1 },
{ GDKEY(KP_F2), K_F2 },
{ GDKEY(KP_F3), K_F3 },
{ GDKEY(KP_F4), K_F4 },
{ GDKEY(KP_Home), K_HOME },
{ GDKEY(KP_Left), K_LEFT },
{ GDKEY(KP_Up), K_UP },
{ GDKEY(KP_Right), K_RIGHT },
{ GDKEY(KP_Down), K_DOWN },
{ GDKEY(KP_Page_Up), K_PAGEUP },
{ GDKEY(KP_Page_Down), K_PAGEDOWN },
{ GDKEY(KP_End), K_END },
{ GDKEY(KP_Begin), K_HOME },
{ GDKEY(KP_Insert), K_INSERT },
{ GDKEY(KP_Delete), K_DELETE },
};
Tuple2<int, int> *x = FindTuple(cv, __countof(cv), kv);
if(x)
kv = x->b;
else
kv += K_DELTA;
if(GetShift() && kv != K_SHIFT_KEY)
kv |= K_SHIFT;
if(GetCtrl() && kv != K_CTRL_KEY)
kv |= K_CTRL;
if(GetAlt() && kv != K_ALT_KEY)
kv |= K_ALT;
LLOG(GetKeyDesc(kv) << ", pressed: " << pressed << ", count: " << CurrentEvent.count);
#ifdef GDK_WINDOWING_X11
if(pressed)
for(int i = 0; i < hotkey.GetCount(); i++) {
if(hotkey[i] && keyhot[i] == (dword)kv) {
hotkey[i]();
return;
}
}
#endif
DispatchKey(!pressed * K_KEYUP + kv, CurrentEvent.count);
}
break;
case EVENT_TEXT: {
WString h = CurrentEvent.value;
for(int i = 0; i < h.GetCount(); i++) // TODO: Add compression
DispatchKey(h[i], 1);
break;
}
case GDK_DELETE: {
TopWindow *w = dynamic_cast<TopWindow *>(this);
if(w) {
if(IsEnabled()) {
IgnoreMouseUp();
w->WhenClose();
}
}
return;
}
case GDK_CONFIGURE: {
Rect rect = CurrentEvent.value;
if(GetRect() != rect)
SetWndRect(rect);
}
break;
default:
return;
}
if(_this)
_this->PostInput();
}