本文整理汇总了C++中emit_signal函数的典型用法代码示例。如果您正苦于以下问题:C++ emit_signal函数的具体用法?C++ emit_signal怎么用?C++ emit_signal使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了emit_signal函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: emit_signal
void CreateDialog::_update_favorite_list() {
favorites->clear();
TreeItem *root = favorites->create_item();
for (int i = 0; i < favorite_list.size(); i++) {
String l = favorite_list[i];
String name = l.split(" ")[0];
if (!(ClassDB::class_exists(name) || ScriptServer::is_global_class(name)))
continue;
TreeItem *ti = favorites->create_item(root);
ti->set_text(0, l);
ti->set_icon(0, EditorNode::get_singleton()->get_class_icon(l, base_type));
}
emit_signal("favorites_updated");
}
示例2: print_verbose
void FindInFiles::start() {
if (_pattern == "") {
print_verbose("Nothing to search, pattern is empty");
emit_signal(SIGNAL_FINISHED);
return;
}
if (_extension_filter.size() == 0) {
print_verbose("Nothing to search, filter matches no files");
emit_signal(SIGNAL_FINISHED);
return;
}
// Init search
_current_dir = "";
PoolStringArray init_folder;
init_folder.append(_root_dir);
_folders_stack.clear();
_folders_stack.push_back(init_folder);
_initial_files_count = 0;
_searching = true;
set_process(true);
}
示例3: emit_signal
Error Object::emit_signal(const StringName &p_name, VARIANT_ARG_DECLARE) {
VARIANT_ARGPTRS;
int argc = 0;
for (int i = 0; i < VARIANT_ARG_MAX; i++) {
if (argptr[i]->get_type() == Variant::NIL)
break;
argc++;
}
return emit_signal(p_name, argptr, argc);
}
示例4: ERR_FAIL_INDEX
void GeometryInstance::set_flag(Flags p_flag,bool p_value) {
ERR_FAIL_INDEX(p_flag,FLAG_MAX);
if (flags[p_flag]==p_value)
return;
flags[p_flag]=p_value;
VS::get_singleton()->instance_geometry_set_flag(get_instance(),(VS::InstanceFlags)p_flag,p_value);
if (p_flag==FLAG_VISIBLE) {
_change_notify("geometry/visible");
emit_signal(SceneStringNames::get_singleton()->visibility_changed);
}
}
示例5: get_node
void SceneTreeEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) {
if (!can_drop_data_fw(p_point, p_data, p_from))
return;
TreeItem *item = tree->get_item_at_pos(p_point);
if (!item)
return;
int section = tree->get_drop_section_at_pos(p_point);
if (section < -1)
return;
NodePath np = item->get_metadata(0);
Node *n = get_node(np);
if (!n)
return;
Dictionary d = p_data;
if (String(d["type"]) == "nodes") {
Array nodes = d["nodes"];
emit_signal("nodes_rearranged", nodes, np, section);
}
if (String(d["type"]) == "files") {
Vector<String> files = d["files"];
String ftype = EditorFileSystem::get_singleton()->get_file_type(files[0]);
if (_is_script_type(ftype)) {
emit_signal("script_dropped", files[0], np);
} else {
emit_signal("files_dropped", files, np, section);
}
}
}
示例6: emit_signal
void EditorSubScene::ok_pressed() {
TreeItem *s = tree->get_selected();
if (!s)
return;
Node *selnode = s->get_metadata(0);
if (!selnode)
return;
emit_signal("subscene_selected");
hide();
clear();
}
示例7: get_constant
void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) {
if (collapsed || !_getch(0) || !_getch(1) || dragger_visibility != DRAGGER_VISIBLE)
return;
Ref<InputEventMouseButton> mb = p_event;
if (mb.is_valid()) {
if (mb->get_button_index() == BUTTON_LEFT) {
if (mb->is_pressed()) {
int sep = get_constant("separation");
if (vertical) {
if (mb->get_position().y > middle_sep && mb->get_position().y < middle_sep + sep) {
dragging = true;
drag_from = mb->get_position().y;
drag_ofs = expand_ofs;
}
} else {
if (mb->get_position().x > middle_sep && mb->get_position().x < middle_sep + sep) {
dragging = true;
drag_from = mb->get_position().x;
drag_ofs = expand_ofs;
}
}
} else {
dragging = false;
}
}
}
Ref<InputEventMouseMotion> mm = p_event;
if (mm.is_valid() && dragging) {
expand_ofs = drag_ofs + ((vertical ? mm->get_position().y : mm->get_position().x) - drag_from);
queue_sort();
emit_signal("dragged", get_split_offset());
}
}
示例8: while
void Node::_propagate_enter_tree() {
// this needs to happen to all childs before any enter_tree
if (data.parent) {
data.tree=data.parent->data.tree;
data.depth=data.parent->data.depth+1;
} else {
data.depth=1;
}
data.viewport = cast_to<Viewport>();
if (!data.viewport)
data.viewport = data.parent->data.viewport;
data.inside_tree=true;
const StringName *K=NULL;
while ((K=data.grouped.next(K))) {
data.tree->add_to_group(*K,this);
}
notification(NOTIFICATION_ENTER_TREE);
if (get_script_instance()) {
Variant::CallError err;
get_script_instance()->call_multilevel_reversed(SceneStringNames::get_singleton()->_enter_tree,NULL,0);
}
emit_signal(SceneStringNames::get_singleton()->enter_tree);
data.blocked++;
//block while adding children
for (int i=0;i<data.children.size();i++) {
if (!data.children[i]->is_inside_tree()) // could have been added in enter_tree
data.children[i]->_propagate_enter_tree();
}
data.blocked--;
// enter groups
}
示例9: emit_signal
void Popup::popup() {
emit_signal("about_to_show");
show_modal(exclusive);
_fix_size();
Control *focusable = find_next_valid_focus();
if (focusable)
focusable->grab_focus();
_post_popup();
notification(NOTIFICATION_POST_POPUP);
}
示例10: set_color
void ColorPicker::_value_changed(double) {
if (updating)
return;
for(int i=0;i<4;i++) {
color.components[i] = scroll[i]->get_val()/(raw_mode_enabled?1.0:255.0);
}
set_color(color);
_update_text_value();
emit_signal("color_changed",color);
}
示例11: emit_signal
void StreamPlayer::stop() {
if (!is_inside_tree())
return;
if (playback.is_null())
return;
//_THREAD_SAFE_METHOD_
AudioServer::get_singleton()->stream_set_active(stream_rid,false);
stop_request=false;
playback->stop();
resampler.flush();
emit_signal("finished");
//set_idle_process(false);
}
示例12: pr
void EditorFileSystem::reimport_files(const Vector<String> &p_files) {
importing = true;
EditorProgress pr("reimport", TTR("(Re)Importing Assets"), p_files.size());
for (int i = 0; i < p_files.size(); i++) {
pr.step(p_files[i].get_file(), i);
_reimport_file(p_files[i]);
}
_save_filesystem_cache();
importing = false;
if (!is_scanning()) {
emit_signal("filesystem_changed");
}
}
示例13: ERR_FAIL_COND
void ScriptTextEditor::set_edited_script(const Ref<Script>& p_script) {
ERR_FAIL_COND(!script.is_null());
script=p_script;
_load_theme_settings();
code_editor->get_text_edit()->set_text(script->get_source_code());
code_editor->get_text_edit()->clear_undo_history();
code_editor->get_text_edit()->tag_saved_version();
emit_signal("name_changed");
code_editor->update_line_and_column();
}
示例14: set_pick_color
void ColorPicker::_html_entered(const String &p_html) {
if (updating)
return;
float last_alpha = color.a;
color = Color::html(p_html);
if (!is_editing_alpha())
color.a = last_alpha;
if (!is_inside_tree())
return;
set_pick_color(color);
emit_signal("color_changed", color);
}
示例15: ERR_FAIL_COND
void ARVRServer::add_interface(const Ref<ARVRInterface> &p_interface) {
ERR_FAIL_COND(p_interface.is_null());
for (int i = 0; i < interfaces.size(); i++) {
if (interfaces[i] == p_interface) {
ERR_PRINT("Interface was already added");
return;
};
};
print_line("ARVR: Registered interface: " + p_interface->get_name());
interfaces.push_back(p_interface);
emit_signal("interface_added", p_interface->get_name());
};