Home | History | Annotate | Download | only in panels
      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