本文整理汇总了C++中Graphic::grasp方法的典型用法代码示例。如果您正苦于以下问题:C++ Graphic::grasp方法的具体用法?C++ Graphic::grasp怎么用?C++ Graphic::grasp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Graphic
的用法示例。
在下文中一共展示了Graphic::grasp方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: grasp
boolean GraphicMaster::grasp (const Event& e, Tool& tool) {
if (window_cursor == nil) {
window_cursor = e.window()->cursor();
}
boolean flag = false;
unsigned int tool_type = tool.tool();
switch (tool_type) {
case Tool::move:
case Tool::scale:
case Tool::rotate:
{
float tol = 2.0;
BoxObj box(
e.pointer_x()-tol, e.pointer_y()-tol,
e.pointer_x()+tol, e.pointer_y()+tol
);
Graphic* target = last_intersecting(box);
if (target != nil) {
Window* w = e.window();
Canvas* c = w->canvas();
w->cursor(grabber_cursor);
ToolState& ts = tool.toolstate();
total_gs(ts._gs);
_gr_list->append(target);
Coord l, b, r, t;
target->getbounds(l, b, r, t);
c->damage(l, b, r, t);
flag = target->grasp(e, tool);
if (flag) {
target->getbounds(l, b, r, t);
c->damage(l, b, r, t);
}
CanvasRep& rep = *c->rep();
CanvasDamage& cd = rep.damage_;
rep.start_repair();
drawclipped(c, cd.left, cd.bottom, cd.right, cd.top);
rep.finish_repair();
}
break;
}
}
return flag;
}