00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00033
00034 #ifndef esve_components_dimn_impl_Simple_UI_hxx
00035 #define esve_components_dimn_impl_Simple_UI_hxx
00036
00037 #include <esve/components/dimn/Valuator_Emitter.hxx>
00038 #include <esve/components/dimn/Simple_UI.hxx>
00039 #include <esve/ui/extra/Modal_Tie.hxx>
00040 #include <esve/ui/extra/File_Selector_Emitter.hxx>
00041 #include <esve/ui/extra/Toggle_Emitter.hxx>
00042 #include <esve/types/quat.hxx>
00043 #include <esve/types/pure.hxx>
00044 #include <esve/types/complex.hxx>
00045 #include <memory>
00046
00047 namespace esve { namespace ui { namespace base { namespace impl {
00048
00049 class Display ;
00050
00051 }}}}
00052
00053 namespace esve { namespace components { namespace dimn { namespace impl {
00054
00059
00060 class Simple_UI
00061 : virtual public components::dimn::Simple_UI,
00062 virtual public ui::extra::Modal_Tie,
00063 public ui::extra::Toggle_Emitter,
00064 public ui::extra::File_Selector_Emitter,
00065 public Valuator_Emitter<types::real>,
00066 public Valuator_Emitter<types::complex>,
00067 public Valuator_Emitter<types::pure>,
00068 public Valuator_Emitter<types::quat>
00069 {
00070 public:
00071 Simple_UI( ui::base::impl::Display & ) ;
00072
00073 void toggle_modal_visible() ;
00074 void toggle_display_fullscreen() ;
00075
00076 void create_label( const std::string & label ) ;
00077
00078 ui::extra::File_Selector &
00079 create_file_selector( const std::string & initial_value = "",
00080 const std::string & label = "file",
00081 const std::string & selector_label = "select a file",
00082 const std::string & initial_directory = ".",
00083 const std::string & filter = "*" ) ;
00084
00085 void create_help( const std::string & text,
00086 const std::string & label = "help" ) ;
00087
00088 ui::extra::Toggle &
00089 create_toggle( bool initial_value,
00090 const std::string & label ) ;
00091
00092 Valuator<types::real> &
00093 create_valuator( types::real initial_value,
00094 const std::string & label = "" ) ;
00095
00096 Valuator<types::complex> &
00097 create_valuator( const types::complex & initial_value,
00098 const std::string & label = "" ) ;
00099
00100 Valuator<types::pure> &
00101 create_valuator( const types::pure & initial_value,
00102 const std::string & label = "" ) ;
00103
00104 Valuator<types::quat> &
00105 create_valuator( const types::quat & initial_value,
00106 const std::string & label = "" ) ;
00107
00108 Catch_Function catch_function() const ;
00109 void catch_function( Catch_Function ) ;
00110
00111 ~Simple_UI() ;
00112
00113 protected:
00114 using Valuator_Emitter<types::real>::emit_valuator ;
00115 using Valuator_Emitter<types::complex>::emit_valuator ;
00116 using Valuator_Emitter<types::pure>::emit_valuator ;
00117 using Valuator_Emitter<types::quat>::emit_valuator ;
00118
00119 private:
00120 Simple_UI( const Simple_UI & ) ;
00121 Simple_UI & operator=( const Simple_UI & ) ;
00122
00123 class Private ;
00124 const std::auto_ptr<Private> m ;
00125 } ;
00126
00127 }}}}
00128
00129 #endif
00130