void ButtonArray::_input_event(const InputEvent &p_event) { if ( ((orientation == HORIZONTAL && p_event.is_action("ui_left")) || (orientation == VERTICAL && p_event.is_action("ui_up"))) && p_event.is_pressed() && selected > 0) { set_selected(selected - 1); accept_event(); emit_signal("button_selected", selected); return; } if ( ((orientation == HORIZONTAL && p_event.is_action("ui_right")) || (orientation == VERTICAL && p_event.is_action("ui_down"))) && p_event.is_pressed() && selected < (buttons.size() - 1)) { set_selected(selected + 1); accept_event(); emit_signal("button_selected", selected); return; } if (p_event.type == InputEvent::MOUSE_BUTTON && p_event.mouse_button.pressed && p_event.mouse_button.button_index == BUTTON_LEFT) { int ofs = orientation == HORIZONTAL ? p_event.mouse_button.x : p_event.mouse_button.y; for (int i = 0; i < buttons.size(); i++) { if (ofs >= buttons[i]._pos_cache && ofs < buttons[i]._pos_cache + buttons[i]._size_cache) { set_selected(i); emit_signal("button_selected", i); return; } } } if (p_event.type == InputEvent::MOUSE_MOTION) { int ofs = orientation == HORIZONTAL ? p_event.mouse_motion.x : p_event.mouse_motion.y; int new_hover = -1; for (int i = 0; i < buttons.size(); i++) { if (ofs >= buttons[i]._pos_cache && ofs < buttons[i]._pos_cache + buttons[i]._size_cache) { new_hover = i; break; } } if (new_hover != hover) { hover = new_hover; emit_signal("mouse_sub_enter"); update(); } } }
void menu_button::signal_handler_left_button_click(const event::ui_event event, bool& handled) { assert(get_window()); DBG_GUI_E << LOG_HEADER << ' ' << event << ".\n"; sound::play_UI_sound(settings::sound_button_click); // If a button has a retval do the default handling. dialogs::drop_down_menu droplist(this->get_rectangle(), this->values_, this->selected_, this->get_use_markup(), this->keep_open_, nullptr); if(droplist.show()) { const int selected = droplist.selected_item(); // Safety check. If the user clicks a selection in the dropdown and moves their mouse away too // quickly, selected_ could be set to -1. This returns in that case, preventing crashes. if(selected < 0) { return; } set_selected(selected, true); if(retval_ != 0) { if(window* window = get_window()) { window->set_retval(retval_); return; } } } handled = true; }
gboolean clone_obj_cb (GtkWidget *widget, gpointer data) { tbo_object *obj = selector_tool_get_selected_obj (); Frame *frame = selector_tool_get_selected_frame (); Page *page = tbo_comic_get_current_page (((TboWindow*)data)->comic); if (!get_frame_view () && frame) { Frame *cloned_frame = tbo_frame_clone (frame); cloned_frame->x += 10; cloned_frame->y -= 10; tbo_page_add_frame (page, cloned_frame); set_selected (cloned_frame, (TboWindow*)data); } else if (obj && get_frame_view ()) { tbo_object *cloned_obj = obj->clone (obj); cloned_obj->x += 10; cloned_obj->y -= 10; tbo_frame_add_obj (frame, cloned_obj); set_selected_obj (cloned_obj, (TboWindow*)data); } update_drawing ((TboWindow *)data); return FALSE; }
Node3D::Node3D(int index, int symbol, QColor color, int size) { set_index(index); set_coordinates(_random(), _random(), _random()); set_size(1); set_marked(false); set_selected(false); set_label(""); }
static gboolean shell_menu_leave_event (ClutterActor *actor, ClutterCrossingEvent *event) { ShellMenu *box = SHELL_MENU (actor); set_selected (box, NULL); return TRUE; }
static gboolean shell_menu_leave_event (ClutterActor *actor, ClutterCrossingEvent *event) { ShellMenu *menu = SHELL_MENU (actor); set_selected (menu, NULL); return CLUTTER_ACTOR_CLASS (shell_menu_parent_class)->leave_event (actor, event); }
void GLUI_RadioGroup::set_int_val( int new_val ) { if ( new_val == int_val ) return; set_selected( new_val ); draw_group( true ); output_live(true); }
static gboolean shell_menu_enter_event (ClutterActor *actor, ClutterCrossingEvent *event) { ShellMenu *menu = SHELL_MENU (actor); if (container_contains (CLUTTER_CONTAINER (menu), event->source) && event->source != CLUTTER_ACTOR (menu)) set_selected (menu, event->source); return CLUTTER_ACTOR_CLASS (shell_menu_parent_class)->enter_event (actor, event); }
void tdrop_button::create_drop_listbox( bool& handled, bool& halt) { handled = halt = true; CVideo& video = get_window()->video(); tdrop_listbox dlg(get_origin(), vals_, linked_groups_, list_builder_, transform_, selected_); dlg.show(video); int ret = dlg.get_retval(); if (ret >= 0) { set_selected(ret); if (callback_selection_changed_) { callback_selection_changed_(this, ret); } } }
int handle(int ev) { if(ev==FL_PUSH && Fl::event_is_click()) { if(Fl::event_button()==FL_LEFT_MOUSE) { set_selected(); redraw(); menu->anim_flags(Fl_Menu_::LEFT_TO_RIGHT); menu->Fl_Group::focus(-1); menu->popup(w(), 0); clear_selected(); redraw(); return 1; } } return Fl_Widget::handle(ev); }
bool ButtonArray::_set(const StringName& p_name, const Variant& p_value) { String n=String(p_name); if (n.begins_with("button/")) { String what = n.get_slicec('/',1); if (what=="count") { int new_size=p_value; if (new_size>0 && buttons.size()==0) { selected=0; } if (new_size < buttons.size()) { if (selected>=new_size) selected=new_size-1; } buttons.resize(new_size); _change_notify(); minimum_size_changed(); } else if (what=="align") { set_align(Align(p_value.operator int())); } else if (what=="selected") { set_selected(p_value); } else if (what == "min_button_size") { min_button_size = p_value; } else { int idx=what.to_int(); ERR_FAIL_INDEX_V(idx,buttons.size(),false); String f = n.get_slicec('/',2); if (f=="text") buttons[idx].text=p_value; else if (f=="tooltip") buttons[idx].tooltip=p_value; else if (f=="icon") buttons[idx].icon=p_value; else return false; } update(); return true; } return false; }
static gboolean shell_menu_enter_event (ClutterActor *actor, ClutterCrossingEvent *event) { ShellMenu *box = SHELL_MENU (actor); if (!shell_menu_contains (box, event->source)) return TRUE; if (event->source == (ClutterActor*)box) return TRUE; if (g_object_get_data (G_OBJECT (event->source), "shell-is-separator")) return TRUE; set_selected (box, event->source); return TRUE; }
gboolean delete_obj_cb (GtkWidget *widget, gpointer data) { TboWindow *tbo = (TboWindow *)data; tbo_object *obj = selector_tool_get_selected_obj (); Frame *frame = selector_tool_get_selected_frame (); Page *page = tbo_comic_get_current_page (((TboWindow*)data)->comic); if (obj && get_frame_view ()) { tbo_frame_del_obj (frame, obj); set_selected_obj (NULL, tbo); } else if (!get_frame_view () && frame) { tbo_page_del_frame (page, frame); set_selected (NULL, tbo); } update_drawing ((TboWindow *)data); return FALSE; }
void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id) { TreeItem *item=p_item->cast_to<TreeItem>(); ERR_FAIL_COND(!item); NodePath np = item->get_metadata(0); Node *n=get_node(np); ERR_FAIL_COND(!n); if (p_id==BUTTON_SUBSCENE) { //open scene request Rect2 item_rect = tree->get_item_rect(item,0); item_rect.pos.y-=tree->get_scroll().y; item_rect.pos+=tree->get_global_pos(); if (n==get_scene_node()) { inheritance_menu->set_pos(item_rect.pos+Vector2(0,item_rect.size.y)); inheritance_menu->set_size(Vector2(item_rect.size.x,0)); inheritance_menu->popup(); instance_node=n->get_instance_ID(); } else { instance_menu->set_pos(item_rect.pos+Vector2(0,item_rect.size.y)); instance_menu->set_size(Vector2(item_rect.size.x,0)); if (EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(n)) instance_menu->set_item_checked(0,true); else instance_menu->set_item_checked(0,false); if (n->get_owner()==get_scene_node()) { instance_menu->set_item_checked(1,n->get_scene_instance_load_placeholder()); instance_menu->set_item_disabled(1,false); } else { instance_menu->set_item_checked(1,false); instance_menu->set_item_disabled(1,true); } instance_menu->popup(); instance_node=n->get_instance_ID(); } //emit_signal("open",n->get_filename()); } else if (p_id==BUTTON_SCRIPT) { RefPtr script=n->get_script(); if (!script.is_null()) emit_signal("open_script",script); } else if (p_id==BUTTON_VISIBILITY) { if (n->is_type("Spatial")) { Spatial *ci = n->cast_to<Spatial>(); if (!ci->is_visible() && ci->get_parent_spatial() && !ci->get_parent_spatial()->is_visible()) { error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first.")); error->popup_centered_minsize(); return; } bool v = !bool(n->call("is_hidden")); undo_redo->create_action(TTR("Toggle Spatial Visible")); undo_redo->add_do_method(n,"_set_visible_",!v); undo_redo->add_undo_method(n,"_set_visible_",v); undo_redo->commit_action(); } else if (n->is_type("CanvasItem")) { CanvasItem *ci = n->cast_to<CanvasItem>(); if (!ci->is_visible() && ci->get_parent_item() && !ci->get_parent_item()->is_visible()) { error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first.")); error->popup_centered_minsize(); return; } bool v = !bool(n->call("is_hidden")); undo_redo->create_action(TTR("Toggle CanvasItem Visible")); undo_redo->add_do_method(n,v?"hide":"show"); undo_redo->add_undo_method(n,v?"show":"hide"); undo_redo->commit_action(); } } else if (p_id==BUTTON_LOCK) { if (n->is_type("CanvasItem")) { n->set_meta("_edit_lock_", Variant()); _update_tree(); emit_signal("node_changed"); } } else if (p_id==BUTTON_GROUP) { if (n->is_type("CanvasItem")) { n->set_meta("_edit_group_", Variant()); _update_tree(); emit_signal("node_changed"); } } else if (p_id==BUTTON_WARNING) { String config_err = n->get_configuration_warning(); if (config_err==String()) return; config_err=config_err.word_wrap(80); warning->set_text(config_err); warning->popup_centered_minsize(); } else if (p_id==BUTTON_SIGNALS) { editor_selection->clear(); editor_selection->add_node(n); set_selected(n); NodeDock::singleton->get_parent()->call("set_current_tab",NodeDock::singleton->get_index()); NodeDock::singleton->show_connections(); } else if (p_id==BUTTON_GROUPS) { editor_selection->clear(); editor_selection->add_node(n); set_selected(n); NodeDock::singleton->get_parent()->call("set_current_tab",NodeDock::singleton->get_index()); NodeDock::singleton->show_groups(); } }
void tdrop_button::set_items(const std::vector<std::string>& vals) { vals_ = vals; set_selected(selected_); }
/** Inherited from selectable_item */ virtual void set_value(const unsigned value ) override { set_selected(value); }
void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_id) { if (connect_to_script_mode) { return; //don't do anything in this mode } TreeItem *item = Object::cast_to<TreeItem>(p_item); ERR_FAIL_COND(!item); NodePath np = item->get_metadata(0); Node *n = get_node(np); ERR_FAIL_COND(!n); if (p_id == BUTTON_SUBSCENE) { if (n == get_scene_node()) { if (n && n->get_scene_inherited_state().is_valid()) { emit_signal("open", n->get_scene_inherited_state()->get_path()); } } else { emit_signal("open", n->get_filename()); } } else if (p_id == BUTTON_SCRIPT) { RefPtr script = n->get_script(); if (!script.is_null()) emit_signal("open_script", script); } else if (p_id == BUTTON_VISIBILITY) { undo_redo->create_action(TTR("Toggle Visible")); _toggle_visible(n); List<Node *> selection = editor_selection->get_selected_node_list(); if (selection.size() > 1 && selection.find(n) != NULL) { for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { Node *nv = E->get(); ERR_FAIL_COND(!nv); if (nv == n) { continue; } _toggle_visible(nv); } } undo_redo->commit_action(); } else if (p_id == BUTTON_LOCK) { undo_redo->create_action(TTR("Unlock Node")); if (n->is_class("CanvasItem") || n->is_class("Spatial")) { undo_redo->add_do_method(n, "remove_meta", "_edit_lock_"); undo_redo->add_undo_method(n, "set_meta", "_edit_lock_", true); undo_redo->add_do_method(this, "_update_tree", Variant()); undo_redo->add_undo_method(this, "_update_tree", Variant()); undo_redo->add_do_method(this, "emit_signal", "node_changed"); undo_redo->add_undo_method(this, "emit_signal", "node_changed"); } undo_redo->commit_action(); } else if (p_id == BUTTON_PIN) { if (n->is_class("AnimationPlayer")) { AnimationPlayerEditor::singleton->unpin(); _update_tree(); } } else if (p_id == BUTTON_GROUP) { undo_redo->create_action(TTR("Button Group")); if (n->is_class("CanvasItem") || n->is_class("Spatial")) { undo_redo->add_do_method(n, "remove_meta", "_edit_group_"); undo_redo->add_undo_method(n, "set_meta", "_edit_group_", true); undo_redo->add_do_method(this, "_update_tree", Variant()); undo_redo->add_undo_method(this, "_update_tree", Variant()); undo_redo->add_do_method(this, "emit_signal", "node_changed"); undo_redo->add_undo_method(this, "emit_signal", "node_changed"); } undo_redo->commit_action(); } else if (p_id == BUTTON_WARNING) { String config_err = n->get_configuration_warning(); if (config_err == String()) return; config_err = config_err.word_wrap(80); warning->set_text(config_err); warning->popup_centered_minsize(); } else if (p_id == BUTTON_SIGNALS) { editor_selection->clear(); editor_selection->add_node(n); set_selected(n); NodeDock::singleton->get_parent()->call("set_current_tab", NodeDock::singleton->get_index()); NodeDock::singleton->show_connections(); } else if (p_id == BUTTON_GROUPS) { editor_selection->clear(); editor_selection->add_node(n); set_selected(n); NodeDock::singleton->get_parent()->call("set_current_tab", NodeDock::singleton->get_index()); NodeDock::singleton->show_groups(); } }