Home | History | Annotate | Download | only in client
      1 // Copyright (c) 2012 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_AURA_CLIENT_USER_ACTION_CLIENT_H_
      6 #define UI_AURA_CLIENT_USER_ACTION_CLIENT_H_
      7 
      8 #include "ui/aura/aura_export.h"
      9 
     10 namespace aura {
     11 class RootWindow;
     12 namespace client {
     13 
     14 // An interface for handling a user action that isn't handled by the standard
     15 // event path.
     16 class AURA_EXPORT UserActionClient {
     17  public:
     18   enum Command {
     19     BACK = 0,
     20     FORWARD,
     21   };
     22 
     23   // Returns true if the command was handled and false otherwise.
     24   virtual bool OnUserAction(Command command) = 0;
     25 
     26   virtual ~UserActionClient() {}
     27 };
     28 
     29 // Sets/gets the client for handling user action on the specified root window.
     30 AURA_EXPORT void SetUserActionClient(RootWindow* root_window,
     31                                      UserActionClient* client);
     32 AURA_EXPORT UserActionClient* GetUserActionClient(RootWindow* root_window);
     33 
     34 }  // namespace client
     35 }  // namespace aura
     36 
     37 #endif  // UI_AURA_CLIENT_USER_ACTION_CLIENT_H_
     38