summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/toolbar_view.h
Commit message (Collapse)AuthorAgeFilesLines
* 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