1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file. 44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#ifndef CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_INSTRUCTIONS_VIEW_H_ 6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_INSTRUCTIONS_VIEW_H_ 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#pragma once 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ui/base/accessibility/accessible_view_state.h" 104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "views/controls/link.h" 11dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "views/view.h" 124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochnamespace views { 144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass Label; 154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass Link; 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch} 174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// BookmarkBarInstructionsView is a child of the bookmark bar that is visible 194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// when the user has no bookmarks on the bookmark bar. 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// BookmarkBarInstructionsView shows a description of the bookmarks bar along 214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// with a link to import bookmarks. Clicking the link results in notifying the 224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// delegate. 234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass BookmarkBarInstructionsView : public views::View, 244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public views::LinkController { 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public: 264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // The delegate is notified once the user clicks on the link to import 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // bookmarks. 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch class Delegate { 294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public: 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void ShowImportDialog() = 0; 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch protected: 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual ~Delegate() {} 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch }; 354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch explicit BookmarkBarInstructionsView(Delegate* delegate); 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // View overrides. 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual gfx::Size GetPreferredSize() OVERRIDE; 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void Layout() OVERRIDE; 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnThemeChanged() OVERRIDE; 424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void ViewHierarchyChanged(bool is_add, 434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch views::View* parent, 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen views::View* child) OVERRIDE; 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; 464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // LinkController. 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void LinkActivated(views::Link* source, int event_flags) OVERRIDE; 494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch private: 514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch void UpdateColors(); 524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch Delegate* delegate_; 544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch views::Label* instructions_; 564a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch views::Link* import_link_; 574a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // The baseline of the child views. This is -1 if none of the views support a 594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // baseline. 604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch int baseline_; 614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 624a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Have the colors of the child views been updated? This is initially false 634a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // and set to true once we have a valid ThemeProvider. 644a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch bool updated_colors_; 654a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 664a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch DISALLOW_COPY_AND_ASSIGN(BookmarkBarInstructionsView); 674a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 684a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 69dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_INSTRUCTIONS_VIEW_H_ 70