Chromium Code Reviews| Index: chrome/browser/cocoa/window_size_autosaver.h |
| diff --git a/chrome/browser/cocoa/window_size_autosaver.h b/chrome/browser/cocoa/window_size_autosaver.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9021d5dae5913fce852c11ff8855100400d3d007 |
| --- /dev/null |
| +++ b/chrome/browser/cocoa/window_size_autosaver.h |
| @@ -0,0 +1,42 @@ |
| +// Copyright (c) 2010 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_COCOA_WINDOW_SIZE_AUTOSAVER_H_ |
| +#define CHROME_BROWSER_COCOA_WINDOW_SIZE_AUTOSAVER_H_ |
| + |
| +class PrefService; |
| +@class NSWindow; |
| + |
| +enum WindowSizeAutosaverState { |
| + |
| + // Autosave only the window's bottom-right corner. |
| + kSaveWindowPos, |
| + |
| + // Autosave the whole window rect, i.e. both position and size. |
| + kSaveWindowRect, |
| +}; |
| + |
| +// WindowSizeAutosaver is a helper class that makes it easy to let windows |
| +// autoremember their position or position and size in a PrefService object. |
| +// To use this, add a |scoped_nsobject<WindowSizeAutosaver>| to your window |
| +// controller and initialize it in the window controller's init method, passing |
| +// a window and an autosave name. The autosaver will register for "window moved" |
| +// and "window resized" notifications and write the current window state to the |
| +// prefs service every time they fire. The window's size is automatically |
| +// restored when the autosaver's |initWithWindow:...| method is called. |
|
Robert Sesek
2010/01/19 21:51:12
Maybe add a note about not having "Visible on laun
|
| +@interface WindowSizeAutosaver : NSObject { |
| + NSWindow* window_; // weak |
| + PrefService* prefService_; // weak |
| + const wchar_t* path_; |
| + WindowSizeAutosaverState state_; |
| +} |
| + |
| +- (id)initWithWindow:(NSWindow*)window |
| + prefService:(PrefService*)prefs |
| + path:(const wchar_t*)path |
| + state:(WindowSizeAutosaverState)state; |
| +@end |
| + |
| +#endif // CHROME_BROWSER_COCOA_WINDOW_SIZE_AUTOSAVER_H_ |
| + |