1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_PANEL_H_ 6#define CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_PANEL_H_ 7 8#include "ui/views/view.h" 9 10class Profile; 11 12namespace extensions { 13class Extension; 14} 15namespace views { 16class Label; 17} 18 19// A piece of the App Info dialog that displays information for a particular 20// profile and app. Panels in the App Info dialog extend this class. 21class AppInfoPanel : public views::View { 22 public: 23 AppInfoPanel(Profile* profile, const extensions::Extension* app); 24 25 virtual ~AppInfoPanel(); 26 27 protected: 28 // Create a heading label with the given text. 29 views::Label* CreateHeading(const base::string16& text) const; 30 31 // Create a view with a vertically-stacked box layout, which can have child 32 // views appended to it. |child_spacing| defaults to 33 // |views::kRelatedControlVerticalSpacing|. 34 views::View* CreateVerticalStack(int child_spacing) const; 35 views::View* CreateVerticalStack() const; 36 37 // Create a view with a horizontally-stacked box layout, which can have child 38 // views appended to it. |child_spacing| defaults to the spacing between 39 // related horizontal controls. 40 views::View* CreateHorizontalStack(int child_spacing) const; 41 views::View* CreateHorizontalStack() const; 42 43 // Given a key and a value, displays them side-by-side as a field and its 44 // value. 45 views::View* CreateKeyValueField(views::View* key, views::View* value) const; 46 47 Profile* profile_; 48 const extensions::Extension* app_; 49 50 private: 51 DISALLOW_COPY_AND_ASSIGN(AppInfoPanel); 52}; 53 54#endif // CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_PANEL_H_ 55