00001 // This is core/vgui/vgui_displaylist2D_tableau.h 00002 #ifndef vgui_displaylist2D_tableau_h_ 00003 #define vgui_displaylist2D_tableau_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief Displaying two-dimensional geometric objects. 00010 // \author Philip C. Pritchett, Robotics Research Group, University of Oxford 00011 // \date 14 Sep 99 00012 // 00013 // \verbatim 00014 // Modifications 00015 // 01-SEP-2000 Marko Bacic,Oxford RRG - Added displaying of object information 00016 // 01-OCT-2002 K.Y.McGaul - Moved displaylist2D to displaylist2D_tableau. 00017 // 26-JUN-2003 Mark Johnson - Fixed overlay highlighting. 00018 // \endverbatim 00019 00020 #include "vgui_displaybase_tableau.h" 00021 #include <vgui/vgui_displaylist2D_tableau_sptr.h> 00022 00023 //: Displaying two-dimensional geometric objects. 00024 class vgui_displaylist2D_tableau : public vgui_displaybase_tableau 00025 { 00026 public: 00027 vgui_displaylist2D_tableau() {} 00028 00029 virtual bool handle(const vgui_event& e); 00030 bool motion(int x, int y); 00031 bool mouse_down(int x, int y, vgui_button button, vgui_modifier modifier); 00032 00033 protected: 00034 ~vgui_displaylist2D_tableau() {} 00035 00036 private: 00037 void get_hits(float x, float y, vcl_vector<unsigned>& my_hits); 00038 unsigned find_closest(float x, float y, vcl_vector<unsigned> const& hits); 00039 }; 00040 00041 //: Create a smart-pointer to a vgui_displaylist2D_tableau. 00042 struct vgui_displaylist2D_tableau_new : public vgui_displaylist2D_tableau_sptr 00043 { 00044 vgui_displaylist2D_tableau_new() 00045 : vgui_displaylist2D_tableau_sptr(new vgui_displaylist2D_tableau) {} 00046 }; 00047 00048 #endif // vgui_displaylist2D_tableau_h_