core/vgui/vgui_displaylist2D_tableau.h
Go to the documentation of this file.
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_