本文整理汇总了C++中LinksWindow::Unlock方法的典型用法代码示例。如果您正苦于以下问题:C++ LinksWindow::Unlock方法的具体用法?C++ LinksWindow::Unlock怎么用?C++ LinksWindow::Unlock使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LinksWindow
的用法示例。
在下文中一共展示了LinksWindow::Unlock方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: KeyDown
void LinksView::KeyDown(const char *s, const char *rs, uint32 q)
{
int c;
unsigned char *ss = q & (QUAL_CTRL | QUAL_ALT) ? (unsigned char *)rs : (unsigned char *)s;
win->Unlock();
ath_lock->Lock();
win->Lock();
GET_UTF_8(ss, c);
switch (c) {
case VK_BACKSPACE: c = KBD_BS; break;
case VK_ENTER: c = KBD_ENTER; break;
case VK_SPACE: c = ' '; break;
case VK_TAB: c = KBD_TAB; break;
case VK_ESCAPE: c = KBD_ESC; break;
case VK_LEFT_ARROW: c = KBD_LEFT; break;
case VK_RIGHT_ARROW: c = KBD_RIGHT; break;
case VK_UP_ARROW: c = KBD_UP; break;
case VK_DOWN_ARROW: c = KBD_DOWN; break;
case VK_INSERT: c = KBD_INS; break;
case VK_DELETE: c = KBD_DEL; break;
case VK_HOME: c = KBD_HOME; break;
case VK_END: c = KBD_END; break;
case VK_PAGE_UP: c = KBD_PAGE_UP; break;
case VK_PAGE_DOWN: c = KBD_PAGE_DOWN; break;
default: if (c < 32) c = 0;
else q &= ~QUAL_SHIFT;
break;
}
if (c) if (dev) dev->keyboard_handler(dev, c, (q & QUAL_SHIFT ? KBD_SHIFT : 0) | (q & QUAL_CTRL ? KBD_CTRL : 0) | (q & QUAL_ALT ? KBD_ALT : 0));
ath_lock->Unlock();
write(wpipe, " ", 1);
/*fprintf(stderr, "key: :%s: :%s: %d %d\n", s, rs, q, c);*/
}
示例2: MouseUp
void LinksView::MouseUp(const Point &p, uint32 b, Message *m)
{
win->Unlock();
ath_lock->Lock();
win->Lock();
if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_UP | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT));
ath_lock->Unlock();
write(wpipe, " ", 1);
}
示例3: MouseMove
void LinksView::MouseMove(const Point &p, int c, uint32 b, Message *m)
{
win->Unlock();
ath_lock->Lock();
win->Lock();
if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? B_MOVE : B_DRAG | (b & 1 ? B_LEFT : b & 2 ? B_RIGHT : b & 4 ? B_MIDDLE : B_LEFT));
ath_lock->Unlock();
write(wpipe, " ", 1);
}
示例4: WheelMove
void LinksView::WheelMove(const point &d)
{
win->Unlock();
ath_lock->Lock();
win->Lock();
if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.y > 0 ? B_WHEELDOWN : B_WHEELUP));
if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.x < 0 ? B_WHEELLEFT : B_WHEELRIGHT));
ath_lock->Unlock();
write(wpipe, " ", 1);
}
示例5: Paint
void LinksView::Paint(const Rect &r)
{
struct rect rr;
win->Unlock();
ath_lock->Lock();
win->Lock();
rr.x1 = (int)r.left;
rr.x2 = (int)r.right + 1;
rr.y1 = (int)r.top;
rr.y2 = (int)r.bottom + 1;
/*fprintf(stderr, "paint: %d %d %d %d\n", rr.x1, rr.x2, rr.y1, rr.y2);*/
if (dev) {
if (!win->resized) dev->redraw_handler(dev, &rr);
else {
ath_get_size(dev);
win->resized = 0;
dev->resize_handler(dev);
}
}
check_bottom_halves();
ath_lock->Unlock();
write(wpipe, " ", 1);
}