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_ |
+ |