file_dialog::file_dialog(CVideo& video, const std::string& file_path, const std::string& title, const std::string& default_file_name, bool show_directory_buttons) : gui::dialog(video, title, file_path, gui::OK_CANCEL), show_directory_buttons_(show_directory_buttons), files_list_(nullptr), last_selection_(-1), last_textbox_text_(), chosen_file_(".."), autocomplete_(true) { files_list_ = new gui::file_menu(video, file_path); const unsigned file_list_height = (video.gety() / 2); const unsigned file_list_width = std::min<unsigned>(files_list_->width(), (video.gety() / 4)); files_list_->set_measurements(file_list_width, file_list_height); files_list_->set_max_height(file_list_height); set_menu(files_list_); default_file_name_ = default_file_name; get_message().set_text(format_dirname(files_list_->get_directory())); set_textbox(_("File: "), format_filename(file_path), 100); if (show_directory_buttons_) { add_button( new gui::dialog_button(video, _("Delete File"), gui::button::TYPE_PRESS, gui::DELETE_ITEM), dialog::BUTTON_EXTRA); add_button( new gui::dialog_button(video, _("New Folder"), gui::button::TYPE_PRESS, gui::CREATE_ITEM), dialog::BUTTON_EXTRA_LEFT); } }