17 #ifndef _MOUSE_EVENT_HANDLER_HH_    18 #define _MOUSE_EVENT_HANDLER_HH_    20 #include <boost/function.hpp>    34     class GZ_GUI_VISIBLE MouseEventHandler
    39       public: 
typedef boost::function<bool (const common::MouseEvent &_event)>
    49                  public: Filter(
const std::string &_name,
    50                                 MouseEventFilter _func)
    51                          : name(_name), func(_func) {}
    56                  public: 
bool operator==(
const Filter &_f)
 const    58                            return this->name == _f.name;
    64                  public: 
bool operator==(
const std::string &_f)
 const    66                            return this->name == _f;
    70                  public: std::string name;
    73                  public: MouseEventFilter func;
    77       private: MouseEventHandler();
    80       private: 
virtual ~MouseEventHandler();
    85       public: 
void AddPressFilter(
const std::string &_name,
    86                   MouseEventFilter _filter);
    91       public: 
void AddReleaseFilter(
const std::string &_name,
    92                   MouseEventFilter _filter);
    97       public: 
void AddMoveFilter(
const std::string &_name,
    98                   MouseEventFilter _filter);
   103       public: 
void AddDoubleClickFilter(
const std::string &_name,
   104                   MouseEventFilter _filter);
   108       public: 
void RemovePressFilter(
const std::string &_name);
   112       public: 
void RemoveReleaseFilter(
const std::string &_name);
   116       public: 
void RemoveMoveFilter(
const std::string &_name);
   120       public: 
void RemoveDoubleClickFilter(
const std::string &_name);
   124       public: 
void HandlePress(
const common::MouseEvent &_event);
   128       public: 
void HandleRelease(
const common::MouseEvent &_event);
   132       public: 
void HandleMove(
const common::MouseEvent &_event);
   136       public: 
void HandleDoubleClick(
const common::MouseEvent &_event);
   142       private: 
void Add(
const std::string &_name, MouseEventFilter _filter,
   143                    std::list<Filter> &_list);
   148       private: 
void Remove(
const std::string &_name, std::list<Filter> &_list);
   153       private: 
void Handle(
const common::MouseEvent &_event,
   154                    std::list<Filter> &_list);
   157       private: std::list<Filter> pressFilters;
   160       private: std::list<Filter> releaseFilters;
   163       private: std::list<Filter> moveFilters;
   166       private: std::list<Filter> doubleClickFilters;
   169       private: 
friend class SingletonT<MouseEventHandler>;
 Forward declarations for the common classes. 
Definition: Animation.hh:33
 
Singleton template class. 
Definition: SingletonT.hh:33