summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/toolbar_view.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix crash in LocationBarView when accessing TabContents.finnur@chromium.org2009-06-191-4/+1
| | | | | | | | | | | | | The LocationBarView asks its delegate (the ToolbarView) for a pointer to TabContents. The problem is, the ToolbarView is keeping an internal pointer to TabContents, and that pointer is not getting cleared when the last tab goes away. This can lead to shutdown crashes, which is what I think is happening in the crash in bug 14601. This is a speculative fix because we can't reproduce, but according to the dis-assembly we access a corrupt STL struct through a non-null TabContents pointer, which makes sense if the TabContents pointer is not getting cleared (or if the STL struct is being modified through multiple threads, which I have verified it is not). BUG=14601 TEST=Cannot reproduce, we'll have to watch the crash reports as they come in to see if the crash is fixed. Review URL: http://codereview.chromium.org/132043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18775 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the Menu object, converting all the remaining callers to use Menu2. ↵ben@chromium.org2009-06-121-2/+2
| | | | | | | | | | | I'll rename Menu2->Menu afterwards. TEST=none BUG=none Review URL: http://codereview.chromium.org/122027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18315 0039d316-1c4b-4281-b951-d872f2087c98
* Remove Menu2Delegate interface and fold methods onto Menu2Model instead.ben@chromium.org2009-06-091-8/+2
| | | | | | | | | | | | | Enhance SimpleMenuModel::Delegate interface to support additional options required by the above. Make MenuHostWindow process WM_MENUCOMMAND and WM_MENUSELECT - the first so we can determine which index was selected, the second so we can track highlight changes within a menu. Convert Tab's context menu back to the windows native menu. This will make my life easier when I upgrade chrome_menu.cc to the new API if only the bookmarks menus/context menus are using it. BUG=none TEST=page, app menus again, context menu for tabs. open a bunch of tabs, open this page: http://bengoodger.dreamhosters.com/software/chrome/cxmenutest.html, close that tab then right click on the menu quickly. should not crash! Review URL: http://codereview.chromium.org/118426 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17996 0039d316-1c4b-4281-b951-d872f2087c98
* Convert toolbar page and app menus over to use the new system.ben@chromium.org2009-06-081-10/+74
| | | | | | | TEST=test page and app menus thoroughly. Review URL: http://codereview.chromium.org/119291 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17897 0039d316-1c4b-4281-b951-d872f2087c98
* Rename BrowserToolbarView->ToolbarView to match file name.ben@chromium.org2009-06-061-82/+61
| | | | | | | | | Reorganize functions in CC to match header and related OCD activities. No logic changes. Review URL: http://codereview.chromium.org/118352 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17809 0039d316-1c4b-4281-b951-d872f2087c98
* Renames BackForwardMenuModelWin to BackForwardMenuModelViews.sky@chromium.org2009-05-291-3/+3
| | | | | | | | | BUG=NONE TEST=none Review URL: http://codereview.chromium.org/118001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17221 0039d316-1c4b-4281-b951-d872f2087c98
* Some more porting of browser_views.brettw@chromium.org2009-05-221-4/+4
| | | | | | Review URL: http://codereview.chromium.org/113794 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16809 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeCanvas->gfx::Canvasben@chromium.org2009-05-151-1/+1
| | | | | | | | | | | Rename files too. TBR=brettw http://crbug.com/11387 Review URL: http://codereview.chromium.org/113443 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16148 0039d316-1c4b-4281-b951-d872f2087c98
* Refactors menus so that I can create a MenuGtk implementation, and moves it intosky@chromium.org2009-05-141-1/+1
| | | | | | | | | | | | the namespace views. BUG=none TEST=make sure I haven't broken any menus. This impacts all menus in Chrome, except bookmark ones. Review URL: http://codereview.chromium.org/113410 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16100 0039d316-1c4b-4281-b951-d872f2087c98
* Remove even more ATL dependencies.maruel@chromium.org2009-05-141-3/+3
| | | | | | Review URL: http://codereview.chromium.org/115309 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16088 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 15965. I wasn't supposed to check that in since it still doesn't ↵maruel@chromium.org2009-05-131-3/+3
| | | | | | | | | compile on linux and mac! TBR=sky Review URL: http://codereview.chromium.org/113351 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15967 0039d316-1c4b-4281-b951-d872f2087c98
* Remove even more ATL dependencies.maruel@chromium.org2009-05-131-3/+3
| | | | | | Review URL: http://codereview.chromium.org/115309 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15965 0039d316-1c4b-4281-b951-d872f2087c98
* This is the first pass at themes.glen@chromium.org2009-05-091-0/+4
| | | | | | | | | | | | This CL is paired with http://codereview.chromium.org/67284 This CL (for commit purposes) includes http://codereview.chromium.org/67284 BUG=4463,11232,11233,11234,11235 Review URL: http://codereview.chromium.org/99030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15704 0039d316-1c4b-4281-b951-d872f2087c98
* Move src/chrome/views to src/views. RS=darin http://crbug.com/11387ben@chromium.org2009-05-081-4/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15604 0039d316-1c4b-4281-b951-d872f2087c98
* Removes the use of Windows-specific types for accessibility roles and states ↵klink@chromium.org2009-04-281-11/+3
| | | | | | | | in Views and Browser\Views. Helps with the porting effort, and makes for a cleaner implementation. Review URL: http://codereview.chromium.org/93085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14689 0039d316-1c4b-4281-b951-d872f2087c98
* Move the implementation of AutocompletePopupView from AutocompletePopupWin ↵ben@chromium.org2009-04-171-1/+1
| | | | | | | | to AutocompletePopupContentsView, a more central location. Review URL: http://codereview.chromium.org/77012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13967 0039d316-1c4b-4281-b951-d872f2087c98
* Make the omnibox popup look nicer. Add dropshadow images (not final). ↵ben@chromium.org2009-04-151-1/+6
| | | | | | | | | | | | Experiment with some effects. Adds a positioner interface that allows the popup to size itself to the width of the edit view + the width of the star and go buttons. (Basically the toolbar needs to help the popup position itself). No results yet! Review URL: http://codereview.chromium.org/68011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13784 0039d316-1c4b-4281-b951-d872f2087c98
* Adds a bookmark menu. This is experimental. To turn on you needsky@google.com2009-03-201-0/+2
| | | | | | | | | | | | --bookmark-menu. BUG=3206 TEST=Turn on the bookmark menu via --bookmark-menu and make sure it works. Also make sure I didn't break anything on the bookmark bar. Review URL: http://codereview.chromium.org/42460 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12217 0039d316-1c4b-4281-b951-d872f2087c98
* Move controls into their own dir under chrome/views/controlsben@chromium.org2009-03-171-3/+3
| | | | | | | | TBR=sky Review URL: http://codereview.chromium.org/48058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11841 0039d316-1c4b-4281-b951-d872f2087c98
* Rework the Button API to be saner in preparation for NativeControl ↵ben@chromium.org2009-03-161-6/+6
| | | | | | | | rejiggering.BaseButton->Button, CustomButtonButton->ImageButtonToggleButton->ToggleImageButtonRemoving SetListener (buttons take listener through ctor)Tidy up source files. No functionality changes, just naming and organization.Look at the button classes first, then everything else. Review URL: http://codereview.chromium.org/46096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11799 0039d316-1c4b-4281-b951-d872f2087c98
* Support DWM switching.ben@chromium.org2009-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This completes the collapsing of window types and browser frames around a single class: views::Window. CustomFrameWindow is removed with this change. The Browser window is represented by a single views::Window subclass: BrowserFrame, which replaces both AeroGlassFrame and OpaqueFrame. NonClientView is now a container of two sibling classes - the Window's ClientView (in the Browser's case, BrowserView), and a NonClientFrameView subclass, which provides the rendering for the non-client portions of the window. These Views are siblings rather than the ClientView a child of the NonClientFrameView because when the DWM is toggled, the ClientView would have to be re-parented. Many Views make the assumption they are only inserted into a View hierarchy once, and so this is problematic. By having the views be siblings, this is avoided. With this in mind, all of the former NonClientViews now become NonClientFrameView subclasses: DefaultNonClientView -> CustomFrameView (non-existent, NonClientView) -> NativeFrameView AeroGlassNonClientView -> GlassBrowserFrameView OpaqueNonClientView -> OpaqueBrowserFrameView The latter two derive from NonClientFrameView via BrowserNonClientFrameView, which adds some extras. I also had to modify the TabRenderer class to know how to drop its cache of tab background images when the theme changes since it uses different ones for Glass and non-Glass. This change also fixes a few non-client flicker issues relating to window non-client activation by using more ScopedRedrawLocks. (Touches info_bubble.cc, window.cc) Bugs fixed: http://crbug.com/153 http://crbug.com/747 http://crbug.com/2371 http://crbug.com/3264 http://crbug.com/8234 Plumbing for http://crbug.com/8247 Design docs: http://dev.chromium.org/developers/design-documents/views-windowing http://dev.chromium.org/developers/design-documents/browser-window Review URL: http://codereview.chromium.org/27317 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10757 0039d316-1c4b-4281-b951-d872f2087c98
* Fix toolbar keyboard focus (shift-alt-t), which was broken by me, and ↵pkasting@chromium.org2009-02-271-10/+8
| | | | | | | | | | | | | toolbar button context menus on VK_APPS, which was broken by Jonas. The overall focus issue was caused by my change that made View::RequestFocus() sanity-check that the View was focusable. The toolbar uses a crazy hack where it purposefully wants to get focus even though it's not focusable. :P The context menu issue was caused by Jonas changing the name of a virtual function, presumably not realizing it was a virtual, not just a simple accessor. I changed the name back and marked this function (and several others) as virtual. In order to avoid blowing up the source in toolbar_view.cc, I reverted users of the accessor to just using the member variable name. Also reordered a couple functions to match the order they were originally declared in View.h. Review URL: http://codereview.chromium.org/27175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10548 0039d316-1c4b-4281-b951-d872f2087c98
* Make non-glass popups match new mockup from Glen.pkasting@chromium.org2009-02-251-4/+8
| | | | | | | | | Unfortunately glass popups can't be made to match the mockup unless we want to completely reimplement Windows titlebar drawing, so I'm leaving them pretty much unchanged :( BUG=7569 Review URL: http://codereview.chromium.org/28072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10341 0039d316-1c4b-4281-b951-d872f2087c98
* Port back_forward_menu_model to linux.estade@chromium.org2009-02-181-6/+6
| | | | | | | | | | | * Refactor BackForwardMenuModel. - Create platform-specific subclasses that implement menu delegate interfaces - Push almost all functionality into BackForwardMenuModel * Implement GTK back/forward dropdowns (in MenuGtk and BrowserToolbarViewGtk) Review URL: http://codereview.chromium.org/21440 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9983 0039d316-1c4b-4281-b951-d872f2087c98
* Make popups closer to pixel-perfect. The main problem is that the toolbar ↵pkasting@chromium.org2009-01-271-9/+10
| | | | | | | | | is constrained to the width of the client area, when it actually needs to extend out two pixesl on each side into the current nonclient area. I don't have a good fix for this, hoping Ben comes up with a brilliant idea. BUG=5054 Review URL: http://codereview.chromium.org/18799 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8726 0039d316-1c4b-4281-b951-d872f2087c98
* Rework the command updater to not be dependent on views::Button (needed for ↵ben@chromium.org2009-01-201-6/+11
| | | | | | | | | porting). TEST=make sure back/forward buttons still enable/disable correctly depending on the length of the back/forward navigation list. Review URL: http://codereview.chromium.org/18343 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8332 0039d316-1c4b-4281-b951-d872f2087c98
* Enables restoring of keyboard focus to the the toolbar button that last had ↵klink@chromium.org2009-01-061-1/+5
| | | | | | | | | | focus, before focus was lost (e.g to a dialog, another window, etc). Setting focus using the toolbar focus keyboard shortcut will still reset focus to the first enabled, visible button (starting at the Back button). BUG=5750 Review URL: http://codereview.chromium.org/15098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7620 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup part 4.pkasting@chromium.org2008-12-091-1/+0
| | | | | | | | | Remove dead/unnecessary resources/identifiers/code. The trickiest bit of this to review are the browser.cc changes, where various commands are no longer initialized multiple times. Review URL: http://codereview.chromium.org/13648 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6628 0039d316-1c4b-4281-b951-d872f2087c98
* Chromium-MultiProfile-Prototypemunjal@chromium.org2008-12-031-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Adds support for keyboard-triggered (through VK_APPS and SHIFT+VK_F10) ↵klink@chromium.org2008-10-311-0/+5
| | | | | | | | right-click menu, specifically on the toolbar's back/forward buttons. Review URL: http://codereview.chromium.org/8942 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4326 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ChromeViews namespace to viewsben@chromium.org2008-10-161-17/+17
| | | | | | http://crbug.com/2188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3495 0039d316-1c4b-4281-b951-d872f2087c98
* Make View::SetBounds take a const gfx::Rect& instead of a const CRect&ben@chromium.org2008-10-161-1/+0
| | | | | | | | | | Make View::DidChangeBounds call Layout by default, eliminating this function from most places. http://crbug.com/2186 Review URL: http://codereview.chromium.org/7429 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3471 0039d316-1c4b-4281-b951-d872f2087c98
* Convert GetPreferredSize from:beng@google.com2008-10-151-1/+1
| | | | | | | | | | | | | | | | | 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
* 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
* Makes the toolbar/location bar look nice in popup windows.beng@google.com2008-08-131-0/+12
| | | | | | | | Rather than creating a frankenstein separate window type for popups, this just uses BrowserView2, and the regular BrowserToolbarView, but hides all the irrelevant controls. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@770 0039d316-1c4b-4281-b951-d872f2087c98
* Bring up the new frame (opaque version for XP only, for now).beng@google.com2008-08-041-0/+1
| | | | | | | | | | | | I've hidden this frame behind a command line switch (--magic_browzR) so as not to destabilize the main browser UI any further. Note that running with this switch is likely buggy, incomplete, crashy, etc. In order to make this work without disrupting a lot of existing code, I've had to make another BrowserView class (temporary) - BrowserView2. This also has to be a BrowserWindow implementor since that's the interface Browser uses to communicate with the UI. BrowserView2 and OpaqueNonClientView are the major new files in this CL, but BrowserView2 is pretty similar to BrowserView. OpaqueNonClientView is the view that renders the titlebar/borders/etc. It's layout/painting routines are a bit simpler than XPFrame's! B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@329 0039d316-1c4b-4281-b951-d872f2087c98
* Adds the BrowserView to the XPFrame/VistaFrame, and moves the ↵beng@google.com2008-08-011-0/+1
| | | | | | | | | | | | | | | | | | | | BrowserToolbarView and StatusBubble into it. Also restructures the creation of the Frame. This is significant! The Browser now constructs a frame via a new static BrowserWindow::CreateBrowserWindow method (see browser_window_factory.cc). Recall the diagram in the architectural overview doc - the BrowserView object is the one that implements the interface that the Browser object uses to communicate with the UI. The Browser object communicates to the BrowserView directly through this interface, but not directly to the frame. What actually happens right now in CreateBrowserWindow is that an XP/VistaFrame is constructed, but this is _not_ the object returned to the Browser, rather when the XP/VistaFrame is init'ed, it constructs a BrowserView that also implements BrowserWindow. This is the object that's returned to the Browser. Since both BrowserView and XP/VistaFrame implement BrowserWindow, I am now able to gradually migrate functionality from the frames to BrowserView. During this process BrowserWindow functions not handled yet by BrowserView will be forwarded to the appropriate frame. Modifies the Accessibility UI tests to account for this extra level of indirection (should only be temporary while I'm moving things around). This does actually pass the UI tests. See the whiteboard in my office for a diagram. This is a bit confusing right now since there's so much going on. Sadly the only way to get where we need to go incrementally is to make a mess on the way. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245 0039d316-1c4b-4281-b951-d872f2087c98
* Add chrome to the repository.initial.commit2008-07-261-0/+197
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15 0039d316-1c4b-4281-b951-d872f2087c98