summaryrefslogtreecommitdiffstats
path: root/chrome/views/window.cc
Commit message (Collapse)AuthorAgeFilesLines
* use a registrar to safely remove observertc@google.com2009-01-211-5/+1
| | | | | | | | 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
* Fix BrowserTest.WindowsSessionEnd by moving a virtual calltc@google.com2009-01-211-4/+5
| | | | | | | | | | | | | from the constructor to the Init() function(). The virtual call in the constructor of the base class doesn't get dispatched to the child class since we haven't started to construct it yet. Instead, defer the call until after we've finished creating the object. Review URL: http://codereview.chromium.org/18601 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8354 0039d316-1c4b-4281-b951-d872f2087c98
* Make CommandLine into a normal object, with some statics for getting at the ↵evan@chromium.org2009-01-211-1/+1
| | | | | | | | | | | current process's command line. One explicit goal of this change is to *not* deal with the string/wstring issues at the API on POSIX; the functions are the same as before, which means they remain as broken as before. (I did try to fix the internals, though, so migrating the callers is now possible by adding platform-appropriate hooks.) Review URL: http://codereview.chromium.org/18248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8347 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "revert r8217 until memory tests are fixed." This re-applies r8217.tc@google.com2009-01-201-4/+21
| | | | | | | | | | | 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-21/+4
| | | | 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-4/+21
| | | | | | | | | | 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
* Fixes two bugs resulting in bad window resize behavior:sky@google.com2008-12-171-5/+8
| | | | | | | | | | | | | | | | | . Dragging a tab out was forcing the bounds to fit on the monitor. This was a regression introduced during some refactoring. The fix is not to call Window::SetBounds, but instead SetWindowPos (which is roughly what the old code did). . When the bounds of the window change always layout. We need this for the situation where the normal bounds and maximized bounds are the same because we layout differently in the two. BUG=5540 5118 TEST=see description in 5118 Review URL: http://codereview.chromium.org/14511 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7169 0039d316-1c4b-4281-b951-d872f2087c98
* Attempt at fixing reliability crash spike. The traces lead me tosky@google.com2008-12-111-1/+5
| | | | | | | | | | | | | | | | | | believe RichEdit is sending a WM_COMMAND with an id of 35000, which corresponds to IDC_STAR. Peter's changing of IDs resulted in IDC_STAR getting set to 35000. I'm hoping the WM_COMMAND sent from the rich edit has it's high bits set appropriately so that this change will result in not trying to execute IDC_STAR when we get the command. WARNING: this is all speculation from looking at the traces. I couldn't repro on my machine. BUG=5405 TEST=none Review URL: http://codereview.chromium.org/14010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6823 0039d316-1c4b-4281-b951-d872f2087c98
* Chromium-MultiProfile-Prototypemunjal@chromium.org2008-12-031-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix a crash when hiding the find bar due to a NULL window_delegate_.ben@chromium.org2008-12-021-1/+3
| | | | | | Review URL: http://codereview.chromium.org/12854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6197 0039d316-1c4b-4281-b951-d872f2087c98
* Rename Container->Widgetben@chromium.org2008-11-211-13/+13
| | | | | | | | | 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-2/+11
| | | | | | | | | 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-83/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* In dialogs, when the focus moves to a button, that button should become the ↵jcampan@chromium.org2008-11-081-2/+2
| | | | | | | | | | | | | | default button. When the focus is not a button, then the default button should be the one the delegate specifies. BUG=4132 TEST=Open the option dialog. OK should be the default and focused button. Move the focus around by pressing tab. When a button is selected, it should be the default button. Review URL: http://codereview.chromium.org/10230 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5056 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Issue 2918 in chromium: Chrome dialog displayed in large size with ↵hbono@chromium.org2008-10-301-1/+1
| | | | | | | | Meiryo font.This issue is caused by a font whose text metric |tmAveCharWidth| is not precise as noted in Microsoft Knowledge Base 145994 (*1) To handle this case, this change uses the ChromeFont::horizontal_dlus_to_pixels() function instead of the ChromeFont::ave_char_width() function.(*1) http://support.microsoft.com/kb/145994BUG=2918 Review URL: http://codereview.chromium.org/8051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4213 0039d316-1c4b-4281-b951-d872f2087c98
* Support shortcut show styles for "run maximized", "run minimized" etc.ben@chromium.org2008-10-171-1/+5
| | | | | | | 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
* testing something elseben@chromium.org2008-10-171-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3544 0039d316-1c4b-4281-b951-d872f2087c98
* Removes an unneeded override.sky@google.com2008-10-171-6/+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-3/+3
| | | | | | http://crbug.com/2188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3495 0039d316-1c4b-4281-b951-d872f2087c98
* Fix weird NC painting in classic mode by removing an apparently unnecessary ↵ben@chromium.org2008-10-161-4/+1
| | | | | | | | | window style. http://crbug.com/3264 Review URL: http://codereview.chromium.org/7442 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3494 0039d316-1c4b-4281-b951-d872f2087c98
* revert the testbeng@google.com2008-10-161-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3454 0039d316-1c4b-4281-b951-d872f2087c98
* a quick testbeng@google.com2008-10-161-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3451 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ViewContainer to Container and HWNDViewContainer to ContainerWin.ben@chromium.org2008-10-161-16/+14
| | | | | | | 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
* Convert GetPreferredSize from:beng@google.com2008-10-151-5/+6
| | | | | | | | | | | | | | | | | void GetPreferredSize(CSize* out); to: gfx::Size GetPreferredSize(); .. and update some other places to use gfx::Size as well. http://crbug.com/2186 Review URL: http://codereview.chromium.org/7344 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3400 0039d316-1c4b-4281-b951-d872f2087c98
* The window class now set the initial focus after the window is made visible. ↵jcampan@chromium.org2008-10-091-13/+2
| | | | | | | | | | The SetInitialFocus method needs to be changed to still work. BUG=2519 TEST=Open Chrome, the location bar has focus, type something the drop down menu shows. Press ESC, the drop down menu should go. Review URL: http://codereview.chromium.org/7030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3130 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land this earlier change. Will deal with dist crashes as they arise.ben@chromium.org2008-10-091-0/+3
| | | | | | | | | | | | | | Make sure the frame is set to the foreground when: - opening from a shortcut when an existing frame is already open - pressing Ctrl+T from an app window http://crbug.com/2477 R=jcampan git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3103 0039d316-1c4b-4281-b951-d872f2087c98
* roll backbeng@google.com2008-09-191-3/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2402 0039d316-1c4b-4281-b951-d872f2087c98
* Make sure the frame is set to the foreground when:ben@chromium.org2008-09-191-0/+3
| | | | | | | | | | | - opening from a shortcut when an existing frame is already open - pressing Ctrl+T from an app window http://crbug.com/2477 Review URL: http://codereview.chromium.org/3134 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2399 0039d316-1c4b-4281-b951-d872f2087c98
* Fix GDI leak in Window object (leak of HICONs)ben@chromium.org2008-09-171-4/+12
| | | | | | | | http://crbug.com/2322 Review URL: http://codereview.chromium.org/3120 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2341 0039d316-1c4b-4281-b951-d872f2087c98
* Rename legacy methods that were in CamelCase to unix_hacker.erg@google.com2008-09-171-2/+2
| | | | | | | | | Required going through and modifying some of the code to solve name clashes. Review URL: http://codereview.chromium.org/2945 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2337 0039d316-1c4b-4281-b951-d872f2087c98
* Support WM_APPCOMMAND on Window. Make it just pass through to ↵beng@google.com2008-09-081-0/+12
| | | | | | | | | | | | 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-1/+39
| | | | | | | | | | | - 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
* roll back r1297 for nowbeng@google.com2008-08-241-1/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1298 0039d316-1c4b-4281-b951-d872f2087c98
* Fix task manager crash by releasing the delegate's scoped_ptr back to the ↵beng@google.com2008-08-241-0/+1
| | | | | | | | window when the window is destroyed, not when the window delegate is destroyed, since some use cases recycle the delegate. B=1333829 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1297 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
* Allow popups using the new frames to be sized correctly. This involved a ↵beng@google.com2008-08-201-10/+9
| | | | | | | | | slight tweak to how RestoreWindowPosition on Window works - if the window is opened with specified bounds, we still ask the delegate to try and restore the position. The delegate can use the provided bounds as a hint (in the popup case the bounds aren't the true layout bounds of the window, rather the rect contains the window position and content area size) to return the actual bounds of the window. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1117 0039d316-1c4b-4281-b951-d872f2087c98
* Large patch set (159 files total) to cleanup the includes.maruel@google.com2008-08-151-0/+4
| | | | | | | | | | - Slightly reduce the size of the generated .lib files ~3%. - Reduce the number of implicit and explicit atl and windows includes. hooray! - Help incremental build by reducing the number of unnecessary included files. - Split some template class in two, one base class for the common code and the specialization that inherits from the base class. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@937 0039d316-1c4b-4281-b951-d872f2087c98
* If a Window is created with specified bounds, make sure its sized to them!beng@google.com2008-08-141-1/+8
| | | | | | B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@900 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for ChromeViews::Windows to disable inactive rendering. This is ↵beng@google.com2008-08-111-12/+21
| | | | | | | | | 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/+12
| | | | | | | B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@614 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing an issue where BiDi text in window titles was not displayed correctly ↵idana@google.com2008-08-051-0/+7
| | | | | | | | on Vista with aero. BUG=1306227 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@385 0039d316-1c4b-4281-b951-d872f2087c98
* Add the AeroGlassFrame and AeroGlassNonClientView for Vista.beng@google.com2008-08-051-3/+19
| | | | | | | | 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
* Move some methods from public to protected, since only subclasses should be ↵beng@google.com2008-07-311-56/+56
| | | | | | | | | | 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-80/+23
| | | | | | | | | | | | | | 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
* Make HWNDViewContainer set up its contents view separately from its Init method.beng@google.com2008-07-301-5/+5
| | | | | | | | | This is needed as a first step in further adjustments I'm going to be making to Window, ClientView, etc. B=1280060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105 0039d316-1c4b-4281-b951-d872f2087c98
* roll back this part of the fix since it has unintended side effects when ↵beng@google.com2008-07-301-1/+2
| | | | | | calling virtual overrides git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104 0039d316-1c4b-4281-b951-d872f2087c98
* Move the initial sizing of a Window into a separate function ↵beng@google.com2008-07-301-71/+72
| | | | | | | | (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-100/+81
| | | | | | | | | | | | | | | | | | | | | | - 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/+660
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15 0039d316-1c4b-4281-b951-d872f2087c98