Home | History | Annotate | Download | only in win
      1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef UI_BASE_WIN_WINDOW_EVENT_TARGET_H_
      6 #define UI_BASE_WIN_WINDOW_EVENT_TARGET_H_
      7 
      8 #include <windows.h>
      9 
     10 #include "base/basictypes.h"
     11 #include "ui/base/ui_base_export.h"
     12 
     13 namespace ui {
     14 
     15 // This interface is implemented by classes who get input events forwarded to
     16 // them from others. E.g. would be a win32 parent child relationship where the
     17 // child forwards input events to the parent after doing minimal processing.
     18 class UI_BASE_EXPORT WindowEventTarget {
     19  public:
     20   static const char kWin32InputEventTarget[];
     21 
     22   // Handles mouse events like WM_MOUSEMOVE, WM_LBUTTONDOWN, etc.
     23   // The |message| parameter identifies the message.
     24   // The |w_param| and |l_param| values are dependent on the type of the
     25   // message.
     26   // Returns the result of processing the message.
     27   virtual LRESULT HandleMouseMessage(unsigned int message,
     28                                      WPARAM w_param,
     29                                      LPARAM l_param) = 0;
     30 
     31   // Handles keyboard events like WM_KEYDOWN/WM_KEYUP, etc.
     32   // The |message| parameter identifies the message.
     33   // The |w_param| and |l_param| values are dependent on the type of the
     34   // message.
     35   // Returns the result of processing the message.
     36   virtual LRESULT HandleKeyboardMessage(unsigned int message,
     37                                         WPARAM w_param,
     38                                         LPARAM l_param) = 0;
     39 
     40   // Handles WM_TOUCH events.
     41   // The |message| parameter identifies the message.
     42   // The |w_param| and |l_param| values are as per MSDN docs.
     43   // Returns the result of processing the message.
     44   virtual LRESULT HandleTouchMessage(unsigned int message,
     45                                      WPARAM w_param,
     46                                      LPARAM l_param) = 0;
     47 
     48   // Handles scroll messages like WM_VSCROLL and WM_HSCROLL.
     49   // The |message| parameter identifies the scroll message.
     50   // The |w_param| and |l_param| values are dependent on the type of scroll.
     51   virtual LRESULT HandleScrollMessage(unsigned int message,
     52                                       WPARAM w_param,
     53                                       LPARAM l_param) = 0;
     54 
     55   // Handles the WM_NCHITTEST message
     56   // The |message| parameter identifies the message.
     57   // The |w_param| and |l_param| values are as per MSDN docs.
     58   // Returns the result of processing the message.
     59   virtual LRESULT HandleNcHitTestMessage(unsigned int message,
     60                                          WPARAM w_param,
     61                                          LPARAM l_param) = 0;
     62  protected:
     63   WindowEventTarget();
     64   virtual ~WindowEventTarget();
     65 };
     66 
     67 }  // namespace ui
     68 
     69 #endif  // UI_BASE_WIN_WINDOW_EVENT_TARGET_H_
     70 
     71 
     72