core/vgui/vgui_dialog.cxx
Go to the documentation of this file.
00001 // This is core/vgui/vgui_dialog.cxx
00002 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00003 #pragma implementation
00004 #endif
00005 //:
00006 // \file
00007 // \author Philip C. Pritchett, RRG, University of Oxford
00008 // \date   23 Oct 1999
00009 // \brief  See vgui_dialog.h for a description of this file.
00010 
00011 #include "vgui_dialog.h"
00012 #include <vgui/vgui.h>
00013 #include <vgui/vgui_tableau_sptr.h>
00014 #include <vgui/vgui_command.h>
00015 #include <vgui/internals/vgui_dialog_impl.h>
00016 
00017 //-----------------------------------------------------------------------------
00018 //
00019 // Default Constructor
00020 //
00021 
00022 vgui_dialog::vgui_dialog(const char* name)
00023 {
00024   // will eventually be
00025   impl = vgui::produce_dialog(name);
00026 }
00027 
00028 
00029 vgui_dialog::~vgui_dialog()
00030 {
00031   delete impl;
00032 }
00033 
00034 
00035 bool vgui_dialog::ask()
00036 {
00037   if (impl)
00038     return impl->ask();
00039 
00040   return false;
00041 }
00042 
00043 void vgui_dialog::pushbutton(vgui_command_sptr cmnd, const char *label, const void* icon)
00044 {
00045   if (impl) impl->pushbutton_field(cmnd, label, icon);
00046 }
00047 
00048 void vgui_dialog::pushbutton(vgui_dialog_callback_no_client_data f, const char *label, const void* icon)
00049 {
00050   vgui_command* cfunc = new vgui_command_cfunc(f);
00051   pushbutton(cfunc, label, icon);
00052 }
00053 
00054 void vgui_dialog::pushbutton(vgui_dialog_callback f, void const *client_data, const char *label, const void* icon)
00055 {
00056   vgui_command* cfunc = new vgui_command_cfunc(f, client_data);
00057   pushbutton(cfunc, label, icon);
00058 }
00059 
00060 void vgui_dialog::checkbox(const char* txt, bool& v)
00061 {
00062   if (impl) impl->bool_field(txt, v);
00063 }
00064 
00065 
00066 void vgui_dialog::field(const char* txt, int& v)
00067 {
00068   if (impl) impl->int_field(txt, v);
00069 }
00070 
00071 
00072 void vgui_dialog::field(const char* txt, long& v)
00073 {
00074   if (impl) impl->long_field(txt, v);
00075 }
00076 
00077 void vgui_dialog::field(const char* txt, float& v)
00078 {
00079   if (impl) impl->float_field(txt, v);
00080 }
00081 
00082 void vgui_dialog::field(const char* txt, double& v)
00083 {
00084   if (impl) impl->double_field(txt, v);
00085 }
00086 
00087 void vgui_dialog::field(const char* txt, vcl_string& v)
00088 {
00089   if (impl) impl->string_field(txt, v);
00090 }
00091 
00092 void vgui_dialog::choice(const char* txt, const vcl_vector<vcl_string>& labels, int& v)
00093 {
00094   if (impl) impl->choice_field(txt, labels, v);
00095 }
00096 
00097 void vgui_dialog::choice(const char* label, const char* option1, const char* option2, int& chosen)
00098 {
00099   vcl_vector<vcl_string> strs;
00100   strs.push_back(option1);
00101   strs.push_back(option2);
00102   choice(label, strs, chosen);
00103 }
00104 
00105 void vgui_dialog::choice(const char* label, const char* option1, const char* option2, const char* option3, int& chosen)
00106 {
00107   vcl_vector<vcl_string> strs;
00108   strs.push_back(option1);
00109   strs.push_back(option2);
00110   strs.push_back(option3);
00111   choice(label, strs, chosen);
00112 }
00113 
00114 void vgui_dialog::file(const char* label, vcl_string& regexp, vcl_string& v)
00115 {
00116   if (impl) impl->file_browser(label, regexp, v);
00117 }
00118 
00119 void vgui_dialog::inline_file(const char* label,vcl_string& regexp,
00120                               vcl_string& v)
00121 {
00122   if (impl) impl->inline_file_browser(label, regexp, v);
00123 }
00124 
00125 void vgui_dialog::color(const char* label, vcl_string& v)
00126 {
00127   if (impl) impl->color_chooser(label, v);
00128 }
00129 
00130 void vgui_dialog::inline_color(const char* label, vcl_string& v)
00131 {
00132   if (impl) impl->inline_color_chooser(label, v);
00133 }
00134 
00135 void vgui_dialog::message(const char* txt)
00136 {
00137   if (impl) impl->text_message(txt);
00138 }
00139 
00140 void vgui_dialog::inline_tableau(const vgui_tableau_sptr tab, unsigned width,
00141                                  unsigned height)
00142 {
00143   if (impl) impl->inline_tab(tab, width, height);
00144 }
00145 
00146 void vgui_dialog::set_cancel_button(const char* txt)
00147 {
00148   if (impl) impl->set_cancel_button(txt);
00149 }
00150 
00151 void vgui_dialog::set_ok_button(const char* txt)
00152 {
00153   if (impl) impl->set_ok_button(txt);
00154 }
00155 
00156 void vgui_dialog::set_modal(const bool is_modal)
00157 {
00158   if (impl) impl->modal(is_modal);
00159 }
00160 
00161 void vgui_dialog::line_break()
00162 {
00163   if (impl) impl->line_break();
00164 }