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_BROWSER_WINDOW_STATE_H_ 6 #define CHROME_BROWSER_UI_BROWSER_WINDOW_STATE_H_ 7 8 #include <string> 9 10 #include "base/memory/scoped_ptr.h" 11 #include "base/prefs/scoped_user_pref_update.h" 12 #include "ui/base/ui_base_types.h" 13 14 class Browser; 15 16 namespace base { 17 class DictionaryValue; 18 } 19 20 namespace gfx { 21 class Rect; 22 } 23 24 class PrefService; 25 26 namespace chrome { 27 28 std::string GetWindowName(const Browser* browser); 29 // A "window placement dictionary" holds information about the size and location 30 // of the window that is stored in the given PrefService. If the window_name 31 // isn't the name of a registered preference it is assumed to be the name of an 32 // app and the AppWindowPlacement key is used to find the app's dictionary. 33 scoped_ptr<DictionaryPrefUpdate> GetWindowPlacementDictionaryReadWrite( 34 const std::string& window_name, 35 PrefService* prefs); 36 // Returns NULL if the window corresponds to an app that doesn't have placement 37 // information stored in the preferences system. 38 const base::DictionaryValue* GetWindowPlacementDictionaryReadOnly( 39 const std::string& window_name, 40 PrefService* prefs); 41 42 bool ShouldSaveWindowPlacement(const Browser* browser); 43 44 void SaveWindowPlacement(const Browser* browser, 45 const gfx::Rect& bounds, 46 ui::WindowShowState show_state); 47 48 // Return the |bounds| for the browser window to be used upon creation. 49 // The |show_state| variable will receive the desired initial show state for 50 // the window. 51 void GetSavedWindowBoundsAndShowState(const Browser* browser, 52 gfx::Rect* bounds, 53 ui::WindowShowState* show_state); 54 55 } // namespace chrome 56 57 #endif // CHROME_BROWSER_UI_BROWSER_WINDOW_STATE_H_ 58