• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CHROME_BROWSER_UI_PANELS_TEST_PANEL_COLLECTION_SQUEEZE_OBSERVER_H_
6 #define CHROME_BROWSER_UI_PANELS_TEST_PANEL_COLLECTION_SQUEEZE_OBSERVER_H_
7 
8 #include "chrome/browser/ui/panels/test_panel_notification_observer.h"
9 
10 class DockedPanelCollection;
11 class Panel;
12 
13 // Custom notification observer for waiting on panel collection that squeezes
14 // its panels to reflect a certain state.
15 // Modeled after ui_test_utils notification observers.
16 class PanelCollectionSqueezeObserver : public TestPanelNotificationObserver {
17  public:
18   // Register to listen for panel collection updated notifications
19   // from the specified collection to detect a change to the state
20   // where the |active_panel| is at full width and all other
21   // panels in the collection are squeezed.
22   PanelCollectionSqueezeObserver(DockedPanelCollection* collection,
23                                  Panel* active_panel);
24   virtual ~PanelCollectionSqueezeObserver();
25 
26  private:
27   // TestNotificationObserver override:
28   virtual bool AtExpectedState() OVERRIDE;
29 
30   bool IsSqueezed(Panel* panel);
31 
32   DockedPanelCollection* panel_collection_;
33   Panel* active_panel_;
34 
35   DISALLOW_COPY_AND_ASSIGN(PanelCollectionSqueezeObserver);
36 };
37 
38 #endif  // CHROME_BROWSER_UI_PANELS_TEST_PANEL_COLLECTION_SQUEEZE_OBSERVER_H_
39