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)17 vgui_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()24 vgui_dialog_extensions::~vgui_dialog_extensions()
25 {
26   delete impl;
27   impl = nullptr; // so base class doesn't crash
28 }
29 
30 bool
ask()31 vgui_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)42 vgui_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()52 vgui_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