Go to the documentation of this file.00001
00002 #ifndef vgui_dialog_h_
00003 #define vgui_dialog_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <vcl_string.h>
00026 #include <vcl_vector.h>
00027 #include <vgui/vgui_tableau.h>
00028 #include <vgui/vgui_command_sptr.h>
00029
00030 class vgui_dialog_impl;
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 typedef void (*vgui_dialog_callback)(void const* client_data);
00055 typedef void (*vgui_dialog_callback_no_client_data)();
00056
00057 class vgui_dialog
00058 {
00059 public:
00060
00061
00062 vgui_dialog(const char* name);
00063 virtual ~vgui_dialog();
00064
00065
00066
00067 void pushbutton(vgui_command_sptr cmnd, const char *label, const void* icon);
00068 void pushbutton(vgui_dialog_callback_no_client_data f, const char *label, const void* icon);
00069 void pushbutton(vgui_dialog_callback f, void const *client_data, const char *label, const void* icon);
00070
00071 void checkbox(const char*, bool&);
00072
00073 void field(const char*, int&);
00074 void field(const char* c, unsigned int& v) { field(c,*reinterpret_cast<int*>(&v)); }
00075 void field(const char*, long&);
00076 void field(const char*, float&);
00077 void field(const char*, double&);
00078 void field(const char*, vcl_string&);
00079
00080
00081 void choice(const char* label, const char* option1,
00082 const char* option2, int& chosen);
00083
00084
00085 void choice(const char* label, const char* option1,
00086 const char* option2, const char* option3, int& chosen);
00087
00088
00089 void choice(const char*, const vcl_vector<vcl_string>&, int &);
00090
00091 void choice(const char*s, const vcl_vector<vcl_string>&v, unsigned &r)
00092 { choice(s,v,*reinterpret_cast<int*>(&r)); }
00093
00094
00095 void file (const char* label, vcl_string& regexp, vcl_string& filepath);
00096
00097
00098 void inline_file(const char* label, vcl_string& regexp,vcl_string& filepath);
00099
00100
00101 void color (const char* label, vcl_string&);
00102
00103
00104 void inline_color(const char *label, vcl_string &);
00105
00106
00107 void message(const char*);
00108
00109 void line_break();
00110
00111
00112 void inline_tableau(const vgui_tableau_sptr tab, unsigned width,
00113 unsigned height);
00114
00115
00116 void set_cancel_button(const char* label);
00117
00118
00119 void set_ok_button(const char* label);
00120
00121
00122 void set_modal(const bool);
00123
00124
00125
00126
00127 bool ask();
00128
00129 protected:
00130 vgui_dialog() {}
00131 vgui_dialog_impl* impl;
00132 };
00133
00134 #endif // vgui_dialog_h_