QuestionInputDialog::QuestionInputDialog(Window* p_parent) : Window(p_parent,MODE_POPUP,SIZE_CENTER) { VBoxContainer * vb=GUI_NEW( VBoxContainer ); set_root_frame(vb); l=vb->add( GUI_NEW( Label("Question")) ); button_hbox = vb->add( GUI_NEW(CenterContainer) )->set( GUI_NEW( HBoxContainer) ); button_hbox->set_separation(5); };
StringInputDialog::StringInputDialog(Window *p_parent) : Window(p_parent,MODE_POPUP,SIZE_CENTER) { mg = GUI_NEW( MarginGroup("Enter a Number:") ); set_root_frame( mg ); le = mg->add( GUI_NEW( LineEdit) ); le->text_enter_signal.connect( this, &StringInputDialog::ok_pressed_text); mg->add( GUI_NEW(CenterContainer))->set( GUI_NEW( Button("Ok"))) ->pressed_signal.connect( this, &StringInputDialog::ok_pressed ); }
NumericInputDialog::NumericInputDialog(Window *p_parent) : Window(p_parent,MODE_POPUP,SIZE_CENTER) { mg = GUI_NEW( MarginGroup("Enter a Number:") ); set_root_frame( mg ); sb = mg->add( GUI_NEW( SpinBox) ); sb->get_line_edit()->text_enter_signal.connect( this, &NumericInputDialog::ok_pressed_text); mg->add( GUI_NEW( CenterContainer))->set( GUI_NEW(Button("Ok"))) ->pressed_signal.connect( this, &NumericInputDialog::ok_pressed ); }
PopUpMenu::PopUpMenu(Window *p_parent) : Window(p_parent,MODE_POPUP) { id_count=0; main_vbc = GUI_NEW( VBoxContainer ); set_root_frame( main_vbc ); vbc = main_vbc->add( GUI_NEW( VBoxContainer ) ); }
NodeUI_Window::NodeUI_Window(GUI::Window *p_parent) : GUI::Window(p_parent,GUI::Window::MODE_POPUP,GUI::Window::SIZE_NORMAL) { container = new GUI::VBoxContainer; set_root_frame(container); node_ui=NULL; GUI::Timer *t=get_timer(); timer = t->create_timer( GUI::Method( this, &NodeUI_Window::update_controls_callback),50 ); }
PopUpMenu::PopUpMenu(Window *p_parent) : Window(p_parent,MODE_POPUP) { id_count=0; main_vbc = GUI_NEW( VBoxContainer ); set_root_frame( main_vbc ); vbc = main_vbc->add( GUI_NEW( VBoxContainer ) ); vbc->set_separation(1); main_vbc->set_stylebox_override( get_skin()->get_stylebox( SB_POPUP_MENU_BG ) ); }
PatternTranspose::PatternTranspose(Window *p_parent,Editor *p_editor) : Window(p_parent,Window::MODE_POPUP,Window::SIZE_CENTER) { editor=p_editor; VBoxContainer *vb = new VBoxContainer; set_root_frame( vb ); MarginGroup *mg=vb->add(new MarginGroup("Note Relationship")); for (int i=0;i<12;i++) { static const char* notes[12]={"C","C#","D","D#","E","F","F#","G","G#","A","A#","B"}; HBoxContainer *hb=mg->add(new HBoxContainer); LineEdit *le=hb->add(new LineEdit,1); le->set_text(notes[i]); le->set_editable( false ); hb->add(new HSeparator,2); trans[i]=hb->add(new ComboBox,2); for (int j=0;j<12;j++) { trans[i]->add_string(notes[j]); } trans[i]->select(i); } mg=vb->add(new MarginGroup("Actions")); HBoxContainer *hb = mg->add(new CenterContainer)->set(new HBoxContainer); hb->add(new Button("Clear"))->pressed_signal.connect(this,&PatternTranspose::reset); hb->add(new VSeparator); hb->add(new Button("Lower"))->pressed_signal.connect(this,&PatternTranspose::lower); hb->add(new Button("Raise"))->pressed_signal.connect(this,&PatternTranspose::raise); hb->add(new VSeparator); apply_b=hb->add(new Button("Apply")); apply_b->pressed_signal.connect(this,&PatternTranspose::apply); }
PathsDialog::PathsDialog(Window *p_parent,DefaultPaths *p_paths,ConfigApi *p_config) : Window(p_parent,MODE_POPUP,SIZE_TOPLEVEL_CENTER) { paths=p_paths; config=p_config; WindowBox *vb = new WindowBox("Default Paths"); set_root_frame( vb ); MarginGroup *mg = vb->add( new MarginGroup("Song Path:")); HBoxContainer *hbc = mg->add(new HBoxContainer); song_path=hbc->add(new LineEdit,1); song_path->text_changed_signal.connect(this,&PathsDialog::paths_text_changed); hbc->add(new Button("Browse"))->pressed_signal.connect(this,&PathsDialog::browse_song_path); mg = vb->add( new MarginGroup("Sample Path:")); hbc = mg->add(new HBoxContainer); sample_path=hbc->add(new LineEdit,1); sample_path->text_changed_signal.connect(this,&PathsDialog::paths_text_changed); hbc->add(new Button("Browse"))->pressed_signal.connect(this,&PathsDialog::browse_sample_path); mg = vb->add( new MarginGroup("Instrument Path:")); hbc = mg->add(new HBoxContainer); instrument_path=hbc->add(new LineEdit,1); instrument_path->text_changed_signal.connect(this,&PathsDialog::paths_text_changed); hbc->add(new Button("Browse"))->pressed_signal.connect(this,&PathsDialog::browse_instrument_path); browser = new FileDialog(get_root()); browser->dir_selected_signal.connect(this,&PathsDialog::dir_selected ); config->write_entry_signal.connect( this, &PathsDialog::save_slot ); config->read_entry_signal.connect( this, &PathsDialog::read_slot ); config->read_finished_signal.connect( this, &PathsDialog::read_finished ); updating=false; update_paths(); }
SoundDriverDialog::SoundDriverDialog(Window *p_parent,ConfigApi *p_config) : Window(p_parent,MODE_POPUP,SIZE_CENTER) { config=p_config; WindowBox *vb = new WindowBox("Sound Driver"); set_root_frame( vb ); MarginGroup *mg = vb->add( new MarginGroup("Selected Driver:")); sound_driver=mg->add(new ComboBox); sound_driver->selected_signal.connect( this, &SoundDriverDialog::sound_driver_changed ); HBoxContainer *hbc = mg->add( new HBoxContainer ); hbc->add( new Button("Disable"),1)->pressed_signal.connect(this,&SoundDriverDialog::disable); hbc->add( new Button("Reset"),1)->pressed_signal.connect(this,&SoundDriverDialog::restart); vb->add(new HSeparator); mg = vb->add( new MarginGroup("Mixing Frequency:")); mix_freq=mg->add(new ComboBox); mix_freq->add_string("4096"); mix_freq->add_string("8192"); mix_freq->add_string("11025"); mix_freq->add_string("22050"); mix_freq->add_string("44100"); mix_freq->add_string("48000"); mix_freq->add_string("96000"); mix_freq->add_string("192000"); mix_freq->selected_signal.connect( this, &SoundDriverDialog::parameter_changed_i ); mg = vb->add( new MarginGroup("Format:")); bits=mg->add(new ComboBox); bits->add_string( "8 Bits" ); bits->add_string( "16 Bits" ); bits->add_string( "24/32 Bits" ); bits->selected_signal.connect( this, &SoundDriverDialog::parameter_changed_i ); stereo=mg->add(new CheckButton("Stereo")); stereo->pressed_signal.connect(this, &SoundDriverDialog::parameter_changed ); mg = vb->add( new MarginGroup("Buffer Size (frames):")); buffsize=mg->add(new ComboBox); buffsize->add_string("128"); buffsize->add_string("256"); buffsize->add_string("512"); buffsize->add_string("1024"); buffsize->add_string("2048"); buffsize->add_string("4096"); buffsize->add_string("8192"); buffsize->add_string("16384"); buffsize->add_string("32768"); buffsize->selected_signal.connect( this, &SoundDriverDialog::parameter_changed_i ); mg = vb->add( new MarginGroup("Status:")); status=mg->add(new LineEdit("Active")); status->set_editable( false ); updating=false; updating_parameters=false; config->write_entry_signal.connect( this, &SoundDriverDialog::save_slot ); config->read_entry_signal.connect( this, &SoundDriverDialog::read_slot ); config->read_finished_signal.connect( this, &SoundDriverDialog::read_finished ); config_must_enable_driver=false; config_driver=-1; }
MainWindow::MainWindow(Painter *p_painter,Timer *p_timer,Skin *p_skin) : Window(p_painter,p_timer,p_skin) { main_vbc = new VBoxContainer; set_root_frame(main_vbc); HBoxContainer *hb = main_vbc->add(new HBoxContainer); tab_bar = hb->add( new TabBar ); tab_bar->add_tab("Global"); tab_bar->add_tab("Tracks"); tab_bar->add_tab("Graph"); hb->add( new VSeparator ); MenuBox * file_menu = hb->add( new MenuBox("File") ); file_menu->item_selected_signal.connect( this, &MainWindow::menu_callback ); file_menu->add_item("New Song",FILE_NEW_SONG); file_menu->add_item("Open Song",FILE_OPEN_SONG); file_menu->add_item("Save Song",FILE_SAVE_SONG); file_menu->add_item("Save Song As",FILE_SAVE_SONG_AS); file_menu->add_separator(); file_menu->add_item("Import MIDI File",FILE_IMPORT_MIDI); file_menu->add_item("Export MIDI File",FILE_EXPORT_MIDI); file_menu->add_separator(); file_menu->add_item("Export WAV",FILE_EXPORT_WAV); file_menu->add_separator(); file_menu->add_item("Quit",FILE_QUIT); MenuBox * track_menu = hb->add( new MenuBox("Track") ); track_menu->item_selected_signal.connect( this, &MainWindow::menu_callback ); track_menu->add_item("Add Pattern Track",TRACK_ADD_PATTERN); track_menu->add_item("Add Audio Track",TRACK_ADD_AUDIO); track_menu->add_item("Add Automation Track",TRACK_ADD_AUTOMATION); MenuBox * graph_menu = hb->add( new MenuBox("Graph") ); graph_menu->add_item("Add Node",GRAPH_ADD_NODE); graph_menu->add_separator(); graph_menu->add_item("Add Layer",GRAPH_ADD_LAYER); graph_menu->add_item("Change Layer",GRAPH_CHANGE_LAYER); graph_menu->add_item("Erase Layer",GRAPH_ERASE_LAYER); hb->add( new VSeparator ); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_ICON_UNDO)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)EDIT_UNDO )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_ICON_REDO)) )->pressed_signal.connect( Method(Method1<int>(this, &MainWindow::menu_callback), (int)EDIT_REDO )); hb->add( new VSeparator ); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_RW)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_RW )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_PLAY)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_PLAY )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_LOOP)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_LOOP )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_PAUSE)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_PAUSE )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_STOP)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_STOP )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_FF)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_FF )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_REC)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_REC )); hb->add( new MenuButton(get_skin()->get_bitmap(BITMAP_CONTROL_REC_AUTO)) )->pressed_signal.connect( Method( Method1<int>(this, &MainWindow::menu_callback), (int)CONTROL_REC_AUTO )); hb->add( new VSeparator ); hb->add( new Widget, 1 ); //expand hb->add( new VSeparator ); MenuBox * tools_menu = hb->add( new MenuBox("Config") ); tools_menu->item_selected_signal.connect( this, &MainWindow::menu_callback ); tools_menu->add_item("Audio && MIDI",TOOL_AUDIO_SETTINGS); tools_menu->add_item("Keyboard",TOOL_KEYBOARD); tools_menu->add_item("Interface",TOOL_INTERFACE); tools_menu->add_item("Paths",TOOL_DEFAULT_PATHS); MenuBox * help_menu = hb->add( new MenuBox("Help") ); help_menu->item_selected_signal.connect( this, &MainWindow::menu_callback ); help_menu->add_item("Help!",HELP_HELP); help_menu->add_item("About",HELP_ABOUT); main_stack = main_vbc->add( new StackContainer, 1 ); graph_screen = main_stack->add(new GraphScreen(song.get_audio_graph()) ); hb = main_vbc->add( new HBoxContainer ); hb->add( new Icon( get_skin()->get_bitmap( BITMAP_ICON_INFO ) ) ); info_line = hb->add( new LineEdit, 4 ); hb->add( new Icon( get_skin()->get_bitmap( BITMAP_ICON_TIME ) ) ); time_line = hb->add( new LineEdit ); time_line->set_minimum_size( Size(150,-1)); /* Pages */ // global_view_frame =main_stack->add( new GlobalViewFrame(data.editor) ); //edit_view_frame =main_stack->add( new EditViewFrame(update_notify,data.editor) ); //rack_view_frame =main_stack->add( new RackViewFrame(update_notify, data.editor) ); tab_bar->tab_changed_signal.connect( main_stack, &StackContainer::raise ); /* UPDATE NOTIFY ASSIGN */ //update_notify->notify_action_signal.connect(this, &MainWindow::notify_action_slot); //update_notify->track_list_changed_signal.connect(this,&MainWindow::rebuild_track_lists); //edit_view_frame->show_track_dialog_signal.connect( track_dialog, &TrackDialog::show ); // create_keybindings(); new_track_dialog = new NewTrackDialog(this); audio_settings_dialog = new AudioSettingsDialog(this,&update_notify); quit=false; }