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