1 // This is core/vgui/vgui_dialog_extensions.cxx 2 //: 3 // \file 4 // \author Gamze Tunali, LEMS, Brown University 5 // \date 16 Nov 2007 6 // \brief See vgui_dialog_extensions.h for a description of this file. 7 8 #include "vgui_dialog_extensions.h" 9 #include "vgui/vgui.h" 10 #include <vgui/internals/vgui_dialog_extensions_impl.h> 11 12 //----------------------------------------------------------------------------- 13 // 14 // Default Constructor 15 // 16 vgui_dialog_extensions(const char * name)17vgui_dialog_extensions::vgui_dialog_extensions(const char * name) 18 : vgui_dialog() 19 { 20 impl = vgui::produce_extension_dialog(name); 21 } 22 23 ~vgui_dialog_extensions()24vgui_dialog_extensions::~vgui_dialog_extensions() 25 { 26 delete impl; 27 impl = nullptr; // so base class doesn't crash 28 } 29 30 bool ask()31vgui_dialog_extensions::ask() 32 { 33 if (impl) 34 { 35 vgui_dialog_extensions_impl * my_impl = static_cast<vgui_dialog_extensions_impl *>(impl); 36 return my_impl->ask(); 37 } 38 return false; 39 } 40 41 void dir(const char * label,std::string & regexp,std::string & v)42vgui_dialog_extensions::dir(const char * label, std::string & regexp, std::string & v) 43 { 44 if (impl) 45 { 46 vgui_dialog_extensions_impl * my_impl = static_cast<vgui_dialog_extensions_impl *>(impl); 47 my_impl->dir_browser(label, regexp, v); 48 } 49 } 50 51 void line_break()52vgui_dialog_extensions::line_break() 53 { 54 if (impl) 55 { 56 vgui_dialog_extensions_impl * my_impl = static_cast<vgui_dialog_extensions_impl *>(impl); 57 my_impl->line_break(); 58 } 59 } 60