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_ui_base_impl_Display_hxx
00035 #define esve_ui_base_impl_Display_hxx
00036
00037 #include <esve/ui/base/Display.hxx>
00038 #include <esve/ui/base/Keyboard_Emitter.hxx>
00039 #include <esve/ui/base/Mouse_Emitter.hxx>
00040 #include <esve/message/impl/Update_Receiver.hxx>
00041 #include <string>
00042 #include <memory>
00043
00044 namespace esve { namespace platform { class Representation ; } }
00045
00046 namespace esve { namespace ui { namespace base { namespace impl {
00047
00052
00053 class Display
00054 : virtual public ui::base::Display,
00055 virtual public message::impl::Update_Receiver,
00056 public Mouse_Emitter,
00057 public Keyboard_Emitter
00058 {
00059 public:
00061 Display( const std::string & label, const Rectangle & ) ;
00062
00064 const ui::base::Display_Details & peek_display_details() const ;
00065 ui::base::Display_Details & peek_display_details() ;
00067
00068 message::Compute_Sender & peek_compute_sender() ;
00069 message::Draw_Sender & peek_draw_sender() ;
00070
00071 void reinitialize() ;
00072
00073 Catch_Function catch_function() const ;
00074 void catch_function( Catch_Function ) ;
00075
00076 ~Display() ;
00077
00078 protected:
00079 void update() ;
00080 void update( double dt ) ;
00081
00082 private:
00083 Display( const Display & ) ;
00084 Display & operator=( const Display & ) ;
00085
00086
00087 friend class platform::Representation ;
00088
00089 class Private ;
00090 const std::auto_ptr<Private> m ;
00091 } ;
00092
00093 }}}}
00094
00095 #endif
00096