Label::Label(const String &p_text) { align=ALIGN_LEFT; valign=VALIGN_TOP; text=""; word_cache=NULL; word_cache_dirty=true; autowrap=false; line_count=0; set_v_size_flags(0); clip=false; set_ignore_mouse(true); total_char_cache=0; visible_chars=-1; percent_visible=-1; set_text(p_text); uppercase=false; }
EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { buses = p_buses; updating_bus = false; is_master = p_is_master; set_tooltip(TTR("Audio Bus, Drag and Drop to rearrange.")); VBoxContainer *vb = memnew(VBoxContainer); add_child(vb); set_v_size_flags(SIZE_EXPAND_FILL); set_custom_minimum_size(Size2(100, 0) * EDSCALE); track_name = memnew(LineEdit); track_name->connect("text_entered", this, "_name_changed"); track_name->connect("focus_exited", this, "_name_focus_exit"); vb->add_child(track_name); HBoxContainer *hbc = memnew(HBoxContainer); vb->add_child(hbc); solo = memnew(ToolButton); solo->set_toggle_mode(true); solo->set_tooltip(TTR("Solo")); solo->set_focus_mode(FOCUS_NONE); solo->connect("pressed", this, "_solo_toggled"); hbc->add_child(solo); mute = memnew(ToolButton); mute->set_toggle_mode(true); mute->set_tooltip(TTR("Mute")); mute->set_focus_mode(FOCUS_NONE); mute->connect("pressed", this, "_mute_toggled"); hbc->add_child(mute); bypass = memnew(ToolButton); bypass->set_toggle_mode(true); bypass->set_tooltip(TTR("Bypass")); bypass->set_focus_mode(FOCUS_NONE); bypass->connect("pressed", this, "_bypass_toggled"); hbc->add_child(bypass); hbc->add_spacer(); bus_options = memnew(MenuButton); bus_options->set_h_size_flags(SIZE_SHRINK_END); bus_options->set_anchor(MARGIN_RIGHT, 0.0); bus_options->set_tooltip(TTR("Bus options")); hbc->add_child(bus_options); Ref<StyleBoxEmpty> sbempty = memnew(StyleBoxEmpty); for (int i = 0; i < hbc->get_child_count(); i++) { Control *child = Object::cast_to<Control>(hbc->get_child(i)); child->add_style_override("normal", sbempty); child->add_style_override("hover", sbempty); child->add_style_override("focus", sbempty); child->add_style_override("pressed", sbempty); } vb->add_child(memnew(HSeparator)); HBoxContainer *hb = memnew(HBoxContainer); vb->add_child(hb); slider = memnew(VSlider); slider->set_min(-80); slider->set_max(24); slider->set_step(0.1); slider->connect("value_changed", this, "_volume_db_changed"); hb->add_child(slider); cc = 0; for (int i = 0; i < CHANNELS_MAX; i++) { channel[i].vu_l = memnew(TextureProgress); channel[i].vu_l->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP); hb->add_child(channel[i].vu_l); channel[i].vu_l->set_min(-80); channel[i].vu_l->set_max(24); channel[i].vu_l->set_step(0.1); channel[i].vu_r = memnew(TextureProgress); channel[i].vu_r->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP); hb->add_child(channel[i].vu_r); channel[i].vu_r->set_min(-80); channel[i].vu_r->set_max(24); channel[i].vu_r->set_step(0.1); channel[i].peak_l = 0.0f; channel[i].peak_r = 0.0f; } scale = memnew(TextureRect); hb->add_child(scale); effects = memnew(Tree); effects->set_hide_root(true); effects->set_custom_minimum_size(Size2(0, 100) * EDSCALE); effects->set_hide_folding(true); effects->set_v_size_flags(SIZE_EXPAND_FILL); vb->add_child(effects); effects->connect("item_edited", this, "_effect_edited"); effects->connect("cell_selected", this, "_effect_selected"); effects->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); effects->set_drag_forwarding(this); effects->connect("item_rmb_selected", this, "_effect_rmb"); effects->set_allow_rmb_select(true); effects->set_focus_mode(FOCUS_CLICK); effects->set_allow_reselect(true); send = memnew(OptionButton); send->set_clip_text(true); send->connect("item_selected", this, "_send_selected"); vb->add_child(send); set_focus_mode(FOCUS_CLICK); effect_options = memnew(PopupMenu); effect_options->connect("index_pressed", this, "_effect_add"); add_child(effect_options); List<StringName> effects; ClassDB::get_inheriters_from_class("AudioEffect", &effects); effects.sort_custom<StringName::AlphCompare>(); for (List<StringName>::Element *E = effects.front(); E; E = E->next()) { if (!ClassDB::can_instance(E->get())) continue; Ref<Texture> icon = EditorNode::get_singleton()->get_class_icon(E->get()); String name = E->get().operator String().replace("AudioEffect", ""); effect_options->add_item(name); effect_options->set_item_metadata(effect_options->get_item_count() - 1, E->get()); effect_options->set_item_icon(effect_options->get_item_count() - 1, icon); } bus_popup = bus_options->get_popup(); bus_popup->add_item(TTR("Duplicate")); bus_popup->add_item(TTR("Delete")); bus_popup->set_item_disabled(1, is_master); bus_popup->add_item(TTR("Reset Volume")); bus_popup->connect("index_pressed", this, "_bus_popup_pressed"); delete_effect_popup = memnew(PopupMenu); delete_effect_popup->add_item(TTR("Delete Effect")); add_child(delete_effect_popup); delete_effect_popup->connect("index_pressed", this, "_delete_effect_pressed"); }
EditorAudioBuses::EditorAudioBuses() { drop_end = NULL; top_hb = memnew(HBoxContainer); add_child(top_hb); file = memnew(ToolButton); file->set_text("default_bus_layout.tres"); top_hb->add_child(file); file->connect("pressed", this, "_select_layout"); add = memnew(Button); top_hb->add_child(add); add->set_text(TTR("Add Bus")); add->set_tooltip(TTR("Add a new Audio Bus to this layout.")); add->connect("pressed", this, "_add_bus"); top_hb->add_spacer(); load = memnew(Button); load->set_text(TTR("Load")); load->set_tooltip(TTR("Load an existing Bus Layout.")); top_hb->add_child(load); load->connect("pressed", this, "_load_layout"); save_as = memnew(Button); save_as->set_text(TTR("Save As")); save_as->set_tooltip(TTR("Save this Bus Layout to a file.")); top_hb->add_child(save_as); save_as->connect("pressed", this, "_save_as_layout"); _default = memnew(Button); _default->set_text(TTR("Load Default")); _default->set_tooltip(TTR("Load the default Bus Layout.")); top_hb->add_child(_default); _default->connect("pressed", this, "_load_default_layout"); _new = memnew(Button); _new->set_text(TTR("Create")); _new->set_tooltip(TTR("Create a new Bus Layout.")); top_hb->add_child(_new); _new->connect("pressed", this, "_new_layout"); bus_scroll = memnew(ScrollContainer); bus_scroll->add_style_override("panel", memnew(StyleBoxEmpty)); bus_scroll->set_v_size_flags(SIZE_EXPAND_FILL); bus_scroll->set_enable_h_scroll(true); bus_scroll->set_enable_v_scroll(false); add_child(bus_scroll); bus_hb = memnew(HBoxContainer); bus_hb->set_v_size_flags(SIZE_EXPAND_FILL); bus_scroll->add_child(bus_hb); save_timer = memnew(Timer); save_timer->set_wait_time(0.8); save_timer->set_one_shot(true); add_child(save_timer); save_timer->connect("timeout", this, "_server_save"); set_v_size_flags(SIZE_EXPAND_FILL); edited_path = "res://default_bus_layout.tres"; file_dialog = memnew(EditorFileDialog); List<String> ext; ResourceLoader::get_recognized_extensions_for_type("AudioBusLayout", &ext); for (List<String>::Element *E = ext.front(); E; E = E->next()) { file_dialog->add_filter("*." + E->get() + "; Audio Bus Layout"); } add_child(file_dialog); file_dialog->connect("file_selected", this, "_file_dialog_callback"); set_process(true); }
ProgressBar::ProgressBar() { set_v_size_flags(0); percent_visible = true; }
MonoBottomPanel::MonoBottomPanel(EditorNode *p_editor) { singleton = this; editor = p_editor; set_v_size_flags(SIZE_EXPAND_FILL); set_anchors_and_margins_preset(Control::PRESET_WIDE); panel_tabs = memnew(TabContainer); panel_tabs->set_tab_align(TabContainer::ALIGN_LEFT); panel_tabs->add_style_override("panel", editor->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles")); panel_tabs->add_style_override("tab_fg", editor->get_gui_base()->get_stylebox("DebuggerTabFG", "EditorStyles")); panel_tabs->add_style_override("tab_bg", editor->get_gui_base()->get_stylebox("DebuggerTabBG", "EditorStyles")); panel_tabs->set_custom_minimum_size(Size2(0, 228) * EDSCALE); panel_tabs->set_v_size_flags(SIZE_EXPAND_FILL); add_child(panel_tabs); { // Builds panel_builds_tab = memnew(VBoxContainer); panel_builds_tab->set_name(TTR("Builds")); panel_builds_tab->set_h_size_flags(SIZE_EXPAND_FILL); panel_tabs->add_child(panel_builds_tab); HBoxContainer *toolbar_hbc = memnew(HBoxContainer); toolbar_hbc->set_h_size_flags(SIZE_EXPAND_FILL); panel_builds_tab->add_child(toolbar_hbc); toolbar_hbc->add_spacer(); warnings_btn = memnew(ToolButton); warnings_btn->set_text("Warnings"); warnings_btn->set_toggle_mode(true); warnings_btn->set_pressed(true); warnings_btn->set_visible(false); warnings_btn->set_focus_mode(FOCUS_NONE); warnings_btn->connect("toggled", this, "_warnings_toggled"); toolbar_hbc->add_child(warnings_btn); errors_btn = memnew(ToolButton); errors_btn->set_text("Errors"); errors_btn->set_toggle_mode(true); errors_btn->set_pressed(true); errors_btn->set_visible(false); errors_btn->set_focus_mode(FOCUS_NONE); errors_btn->connect("toggled", this, "_errors_toggled"); toolbar_hbc->add_child(errors_btn); HSplitContainer *hsc = memnew(HSplitContainer); hsc->set_h_size_flags(SIZE_EXPAND_FILL); hsc->set_v_size_flags(SIZE_EXPAND_FILL); panel_builds_tab->add_child(hsc); build_tabs_list = memnew(ItemList); build_tabs_list->set_h_size_flags(SIZE_EXPAND_FILL); build_tabs_list->connect("item_selected", this, "_build_tab_item_selected"); hsc->add_child(build_tabs_list); build_tabs = memnew(TabContainer); build_tabs->set_tab_align(TabContainer::ALIGN_LEFT); build_tabs->set_h_size_flags(SIZE_EXPAND_FILL); build_tabs->set_tabs_visible(false); build_tabs->connect("tab_changed", this, "_build_tab_changed"); hsc->add_child(build_tabs); } }
ProgressBar::ProgressBar() { set_v_size_flags(0); }