// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_PANELS_TEST_PANEL_COLLECTION_SQUEEZE_OBSERVER_H_ #define CHROME_BROWSER_UI_PANELS_TEST_PANEL_COLLECTION_SQUEEZE_OBSERVER_H_ #include "chrome/browser/ui/panels/test_panel_notification_observer.h" class DockedPanelCollection; class Panel; // Custom notification observer for waiting on panel collection that squeezes // its panels to reflect a certain state. // Modeled after ui_test_utils notification observers. class PanelCollectionSqueezeObserver : public TestPanelNotificationObserver { public: // Register to listen for panel collection updated notifications // from the specified collection to detect a change to the state // where the |active_panel| is at full width and all other // panels in the collection are squeezed. PanelCollectionSqueezeObserver(DockedPanelCollection* collection, Panel* active_panel); virtual ~PanelCollectionSqueezeObserver(); private: // TestNotificationObserver override: virtual bool AtExpectedState() OVERRIDE; bool IsSqueezed(Panel* panel); DockedPanelCollection* panel_collection_; Panel* active_panel_; DISALLOW_COPY_AND_ASSIGN(PanelCollectionSqueezeObserver); }; #endif // CHROME_BROWSER_UI_PANELS_TEST_PANEL_COLLECTION_SQUEEZE_OBSERVER_H_