core/vgui/vgui_tview_tableau.h
Go to the documentation of this file.
00001 // This is core/vgui/vgui_tview_tableau.h
00002 #ifndef vgui_tview_tableau_h_
00003 #define vgui_tview_tableau_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief  Tableau displaying a tableau tree.
00010 // \author Philip C. Pritchett, Robotics Research Group, University of Oxford
00011 // \date   12 Oct 99
00012 //
00013 //  Contains classes  vgui_tview_tableau  vgui_tview_tableau_new
00014 //
00015 // \verbatim
00016 //  Modifications
00017 //   12-OCT-2002 P.Pritchett - Initial version.
00018 //   07-Aug-2002 K.Y.McGaul - Change to Doxygen style comments.
00019 //   01-OCT-2002 K.Y.McGaul - Moved vgui_tview to vgui_tview_tableau.
00020 // \endverbatim
00021 
00022 
00023 #include "vgui_tview_tableau_sptr.h"
00024 #include <vcl_vector.h>
00025 #include <vgui/vgui_wrapper_tableau.h>
00026 
00027 //: Tableau displaying a tableau tree.
00028 class vgui_tview_tableau : public vgui_wrapper_tableau
00029 {
00030  public:
00031   //: Constructor - don't use this, use vgui_tview_tableau_new.
00032   vgui_tview_tableau(vgui_tableau_sptr const&);
00033 
00034   bool handle(const vgui_event &);
00035   vcl_string type_name() const;
00036 
00037   void get_popup(const vgui_popup_params& params, vgui_menu &menu);
00038 
00039 
00040   void draw_tableau_icon(float x, float y);
00041   void draw_tview_icon(float x, float y);
00042 
00043 
00044   struct icon
00045   {
00046     vgui_tableau_sptr tableau;
00047     float x;
00048     float y;
00049   };
00050 
00051   void draw_icons(vgui_tableau_sptr const& parent, float x, float y);
00052   void add_icons(vcl_vector<icon>* icons, vgui_tableau_sptr const& parent, float x, float y);
00053   vgui_tableau_sptr find_closest_icon(vcl_vector<icon> const& icons, float x, float y);
00054 
00055   float spacing;
00056   float icon_height;
00057   float icon_width;
00058 
00059   vgui_tableau_sptr active_icon;
00060   vgui_tableau_sptr closest_icon;
00061 
00062  protected:
00063  ~vgui_tview_tableau();
00064 };
00065 
00066 //: Create a smart-pointer to a vgui_tview_tableau tableau.
00067 struct vgui_tview_tableau_new : public vgui_tview_tableau_sptr
00068 {
00069   typedef vgui_tview_tableau_sptr base;
00070   vgui_tview_tableau_new(vgui_tableau_sptr const& arg1000) : base(new vgui_tview_tableau(arg1000)) { }
00071 };
00072 
00073 #endif // vgui_tview_tableau_h_