本文整理汇总了C++中GraphNode::set_drag方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphNode::set_drag方法的具体用法?C++ GraphNode::set_drag怎么用?C++ GraphNode::set_drag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphNode
的用法示例。
在下文中一共展示了GraphNode::set_drag方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _gui_input
//.........这里部分代码省略.........
top_layer->update();
} else {
if (connecting) {
connecting = false;
top_layer->update();
} else {
emit_signal("popup_request", b->get_global_position());
}
}
}
if (b->get_button_index() == BUTTON_LEFT && !b->is_pressed() && dragging) {
if (!just_selected && drag_accum == Vector2() && Input::get_singleton()->is_key_pressed(KEY_CONTROL)) {
//deselect current node
for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn = Object::cast_to<GraphNode>(get_child(i));
if (gn) {
Rect2 r = gn->get_rect();
r.size *= zoom;
if (r.has_point(get_local_mouse_position()))
gn->set_selected(false);
}
}
}
if (drag_accum != Vector2()) {
emit_signal("_begin_node_move");
for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn = Object::cast_to<GraphNode>(get_child(i));
if (gn && gn->is_selected())
gn->set_drag(false);
}
emit_signal("_end_node_move");
}
dragging = false;
top_layer->update();
update();
connections_layer->update();
}
if (b->get_button_index() == BUTTON_LEFT && b->is_pressed()) {
GraphNode *gn = NULL;
for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn_selected = Object::cast_to<GraphNode>(get_child(i));
if (gn_selected) {
if (gn_selected->is_resizing())
continue;
if (gn_selected->has_point(gn_selected->get_local_mouse_position())) {
gn = gn_selected;
break;
}
}
}
if (gn) {
示例2: _gui_input
//.........这里部分代码省略.........
top_layer->update();
} else {
if (connecting) {
connecting = false;
top_layer->update();
} else {
emit_signal("popup_request", Vector2(b.global_x, b.global_y));
}
}
}
if (b.button_index == BUTTON_LEFT && !b.pressed && dragging) {
if (!just_selected && drag_accum == Vector2() && Input::get_singleton()->is_key_pressed(KEY_CONTROL)) {
//deselect current node
for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn = get_child(i)->cast_to<GraphNode>();
if (gn) {
Rect2 r = gn->get_rect();
r.size *= zoom;
if (r.has_point(get_local_mouse_pos()))
gn->set_selected(false);
}
}
}
if (drag_accum != Vector2()) {
emit_signal("_begin_node_move");
for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn = get_child(i)->cast_to<GraphNode>();
if (gn && gn->is_selected())
gn->set_drag(false);
}
emit_signal("_end_node_move");
}
dragging = false;
top_layer->update();
update();
connections_layer->update();
}
if (b.button_index == BUTTON_LEFT && b.pressed) {
GraphNode *gn = NULL;
GraphNode *gn_selected = NULL;
for (int i = get_child_count() - 1; i >= 0; i--) {
gn_selected = get_child(i)->cast_to<GraphNode>();
if (gn_selected) {
if (gn_selected->is_resizing())
continue;
Rect2 r = gn_selected->get_rect();
r.size *= zoom;
if (r.has_point(get_local_mouse_pos()))
gn = gn_selected;
break;
}
}