summaryrefslogtreecommitdiffstats
path: root/chrome/views/window.h
Commit message (Collapse)AuthorAgeFilesLines
* use a registrar to safely remove observertc@google.com2009-01-211-1/+4
| | | | | | | | TBR=evan Review URL: http://codereview.chromium.org/18442 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8359 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "revert r8217 until memory tests are fixed." This re-applies r8217.tc@google.com2009-01-201-1/+13
| | | | | | | | | | | This reverts commit r8245. TBR=ben Review URL: http://codereview.chromium.org/18410 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8292 0039d316-1c4b-4281-b951-d872f2087c98
* revert r8217 until memory tests are fixed.ben@chromium.org2009-01-171-13/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8245 0039d316-1c4b-4281-b951-d872f2087c98
* window.cc should not include browser_list.h ... dependent (non-browser) ↵ben@chromium.org2009-01-161-1/+13
| | | | | | | | | | windows are closed when they receive a notification rather than by being called directly from BrowserList. Also browser_list.cc should not include window.h, required for porting. TEST=Open browser. Open options dialog box. Close browser. Options dialog should close too. Review URL: http://codereview.chromium.org/18328 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8217 0039d316-1c4b-4281-b951-d872f2087c98
* Chromium-MultiProfile-Prototypemunjal@chromium.org2008-12-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary ======= Implement a prototype of multiple profiles in Chrome by utilizing the functionality of user-data-dir command line flag that already exists. A profile in this case is an umbrella for all user data including cookies, history, bookmarks, settings, etc. Each profile gives the user a separation of all these data elements. User Interface ============== - Wrench > "New window in profile" menu item, with sub-menu items. This new menu item has sub menu items for each existing profile, for up to 9 profiles, and one more sub menu item to launch a window in a new profile. The 9 sub-menu items also have the accelerators like CTRL + SHIFT + 1, CTRL + SHIFT + 2, etc. If there are more than 9 profiles, we will also show an extra sub-menu item, "Other...". - New Profile dialog box This dialog box is shown to the use when (s)he clicks Wrench > New window in profile > <New Profile>. It lets the user specify a profile name, and also shows a checkbox to create a desktop shortcut to launch Chrome in that profile. - Choose profile dialog box This dialog box lets the user select a profile from a drop down to open a new window in. It also has an item <New Profile> in the drop down, selecting which will show the new profile dialog box mentioned above. CTRL + M shortcut also launches this dialog box. Code Organization ================= chrome\browser\user_data_dir_profile_manager.h/.cc: This class provides an abstraction of profiles on top of the user data dir command line flag. chrome\browser\views\user_data_dir_new_profile_dialog.h/.cc New profile dialog box code. chrome\browser\views\user_data_dir_profiles_dialog.h/.cc Choose profile dialog box code. Review URL: http://codereview.chromium.org/12895 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6333 0039d316-1c4b-4281-b951-d872f2087c98
* Rename Container->Widgetben@chromium.org2008-11-211-4/+4
| | | | | | | | | R=erg review url = http://codereview.chromium.org/11348/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5849 0039d316-1c4b-4281-b951-d872f2087c98
* Fix broken size restoration for bookmark manager. Initializing a rect ↵ben@chromium.org2008-11-141-0/+4
| | | | | | | | | incorrectly, and clobbering the maximized state during initial sizing. http://crbug.com/4437 Review URL: http://codereview.chromium.org/10758 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5512 0039d316-1c4b-4281-b951-d872f2087c98
* Re-do the way browser windows are shown:ben@chromium.org2008-11-141-19/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove the path from WinMain to the Browser object passing the show_command. For the Browser object, this is a problem since this value isn't portable. For the code in general it involves a lot of ugly wiring. It's completely unnecessary since the value is obtainable via GetStartupInfo. - Remove show_command plumbing from all over the place (session restore, web app launcher, etc) Change the way browser windows are constructed: - The browser constructor now takes just a type and a profile, and simply initializes the object. - Some configuration that used to be part of the constructor that was only used in one or two use cases (initial bounds, maximized state, web app name) are split into separate setters. - Window creation is split out into a separate step to be called post configuration. - Assorted static helper functions added to Browser to make construction of common types easy. - Remove Browser::Show in favor of BrowserWindow::Show - Adjust all callers to use the new helpers. Change the way ChromeViews restores window placement: - Split restored size determination from restored maximized determination. They are needed by the code at different times. Size restoration happens when the window is constructed and Window::SetInitialBounds is called. Maximized state restoration happens when the window is shown for the first time and SW_SHOWMAXIMIZED or SW_SHOWNORMAL is needed. Thus, replace WindowDelegate::RestoreWindowPosition with WindowDelegate::RestoreWindowBounds and WindowDelegate::RestoreMaximizedState. - Window::SetInitialBounds calls WindowDelegate::RestoreWindowBounds - Window::Show calls WindowDelegate::RestoreMaximizedState - Adjusts all WindowDelegate implementations that override RestoreWindowPosition to implement these new methods instead. - Move "playback/record" mode window size setting from browser_init to Browser::RestoreWindowBounds. - Provide a virtual function on Window called GetShowState that determines the default show state to be used when Window::Show is called. For most windows and dialogs this is SW_SHOWNORMAL. AeroGlassFrame/OpaqueFrame (the browser window frames) override this since they're the app's main windows to return the value provided by GetStartupInfo which gives the value from the app shortcut. http://crbug.com/3557 Review URL: http://codereview.chromium.org/10896 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5417 0039d316-1c4b-4281-b951-d872f2087c98
* Support shortcut show styles for "run maximized", "run minimized" etc.ben@chromium.org2008-10-171-1/+2
| | | | | | | http://crbug.com/3278 Review URL: http://codereview.chromium.org/7504 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3579 0039d316-1c4b-4281-b951-d872f2087c98
* Removes an unneeded override.sky@google.com2008-10-171-1/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/7398 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3526 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ChromeViews namespace to viewsben@chromium.org2008-10-161-2/+2
| | | | | | http://crbug.com/2188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3495 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ViewContainer to Container and HWNDViewContainer to ContainerWin.ben@chromium.org2008-10-161-7/+7
| | | | | | | http://crbug.com/3430 Review URL: http://codereview.chromium.org/7376 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3441 0039d316-1c4b-4281-b951-d872f2087c98
* Support WM_APPCOMMAND on Window. Make it just pass through to ↵beng@google.com2008-09-081-0/+2
| | | | | | | | | | | | WindowDelegate::ExecuteWindowsCommand. The delegate needs to pre-translate for it. This allows my mouse's back and forward buttons to work on the new frames. B=1031854 Review URL: http://codereview.chromium.org/1620 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1849 0039d316-1c4b-4281-b951-d872f2087c98
* Make the AeroGlassFrame better:beng@google.com2008-08-251-0/+8
| | | | | | | | | | | - client edge rendering is now pixel-perfect for all BrowserTypes. - fix NCCALCSIZE handling that was making our top-right corner less than perfectly round - make system menu work - remove some unnecessary functions B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1340 0039d316-1c4b-4281-b951-d872f2087c98
* Use a more compact license header in source files.license.bot2008-08-241-28/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for ChromeViews::Windows to disable inactive rendering. This is ↵beng@google.com2008-08-111-0/+17
| | | | | | | | | for the new frames to make it so when infobubbles are activated the window frame isn't deactivated. B=1318343 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@659 0039d316-1c4b-4281-b951-d872f2087c98
* Allow the window icon to be shown in the task bar, Alt+Tab etc.beng@google.com2008-08-091-0/+3
| | | | | | | B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@614 0039d316-1c4b-4281-b951-d872f2087c98
* Add the AeroGlassFrame and AeroGlassNonClientView for Vista.beng@google.com2008-08-051-0/+7
| | | | | | | | Note that AeroGlassFrame needs a NonClientView as well - even though Windows draws most of the frame and its borders, we do some custom rendering in the non-client area, such as the distributor logo, the client edge and toolbar backgrounds. This necessitated allowing Window to support an optional NonClientView. I just jimmied this in for now... can clean up that API later if desired. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@352 0039d316-1c4b-4281-b951-d872f2087c98
* rollback these changesbeng@google.com2008-07-311-3/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171 0039d316-1c4b-4281-b951-d872f2087c98
* fix bustage, not sure why this didn't break on my machinebeng@google.com2008-07-311-0/+3
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169 0039d316-1c4b-4281-b951-d872f2087c98
* Move some methods from public to protected, since only subclasses should be ↵beng@google.com2008-07-311-22/+19
| | | | | | | | | | calling them. Move some data members from protected to private and provide a protected setter, per C++ style guidelines. B=1293984 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157 0039d316-1c4b-4281-b951-d872f2087c98
* Move dialog-specific aspects of ClientView into a new subclass DialogClientView.beng@google.com2008-07-311-32/+16
| | | | | | | | | | | | | | ClientView becomes a generic representation of the View that occupies the "client area" of a window. All Windows now require a Client View (though they can use the default). Adjust WindowDelegate to provide a method for constructing the ClientView for a Window. The DialogDelegate overrides this to construct the DialogClientView. In the future, other specialized delegates will construct ClientViews specific to them, e.g. WizardDelegate would construct WizardClientView. Adjust the Window Init method to set up this new required Client View, and make some tweaks to CustomFrameWindow to make all this work. Remove all traces of dialog specific handling in Window into DialogClientView. B=1280060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153 0039d316-1c4b-4281-b951-d872f2087c98
* Move the initial sizing of a Window into a separate function ↵beng@google.com2008-07-301-5/+9
| | | | | | | | (SetInitialBounds) to tidy up the Init method a bit. Move SetInitialFocus into private section since it's not used by subclasses. B=1293984 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99 0039d316-1c4b-4281-b951-d872f2087c98
* Window Delegate Improvements:beng@google.com2008-07-301-12/+4
| | | | | | | | | | | | | | | | | | | | | | - Windows now must have a Delegate. Just construct the default WindowDelegate if you don't want to have to write one in testing. - Windows now obtain their contents view by asking the delegate via WindowDelegate::GetContentsView. - Contents views no longer need to manually store a pointer to the Window that contains them, WindowDelegate does this automatically via its window() accessor. Reviewer notes: - review window_delegate.h first, then - window.h/cc - custom frame window.h/cc - constrained_window_impl.h/cc - then everything else (just updating all call sites) B=1280060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96 0039d316-1c4b-4281-b951-d872f2087c98
* Add chrome to the repository.initial.commit2008-07-261-0/+275
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15 0039d316-1c4b-4281-b951-d872f2087c98