Пример #1
0
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);
};
Пример #2
0
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 );
}
Пример #3
0
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 );
}
Пример #4
0
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 );
	

}
Пример #6
0
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);

	
	
}
Пример #8
0
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;
}