00001 // This is core/vgui/internals/vgui_dialog_extensions_impl.h 00002 #ifndef vgui_dialog_extensions_impl_h_ 00003 #define vgui_dialog_extensions_impl_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief vgui_dialog_extensions_impl is the abstract base class for dialog_extensions implementation. 00010 // \author Gamze Tunali, LEMS, Brown University 00011 // \date 16 Nov 2007 00012 // 00013 // \verbatim 00014 // Modifications 00015 // \endverbatim 00016 00017 #include <vcl_string.h> 00018 #include "vgui_dialog_impl.h" 00019 00020 //: vgui_dialog_extensions_impl is the abstract base class for dialog extensions implementation. 00021 // 00022 // It contains methods for adding fields corresponding to those in 00023 // vgui_dialog_extensions. It has directory selection browser and line 00024 // break in addition to the vgui_dialog_impl capabilities (parent class) 00025 class vgui_dialog_extensions_impl : public vgui_dialog_impl 00026 { 00027 public: 00028 //: Constructor - create an empty dialog with the given title. 00029 vgui_dialog_extensions_impl(const char* dialog_name); 00030 00031 //: Destructor - delete this dialog box. 00032 virtual ~vgui_dialog_extensions_impl(); 00033 00034 //: Add a popup directory browser to the dialog box. 00035 void dir_browser(const char*, vcl_string&, vcl_string&); 00036 00037 //: Add a line break to the dialog box 00038 void line_break(); 00039 00040 //: Pointer to a GUI widget for a directory browser. 00041 virtual void* dir_browser_widget(const char*, vcl_string&, vcl_string&); 00042 00043 //: Display the dialog box with user added line breaks and a layout and collect data from the user. 00044 // Dialog elements are added next to each other until a line break element is found. 00045 virtual bool ask() = 0; 00046 }; 00047 00048 #endif // vgui_dialog_extensions_impl_h_