Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Unified Diff: chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h

Issue 327743002: Re-styled the App Info Dialog according to UI feedback (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated to use AboutPage instead of OptionsPage (rebase) Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h
new file mode 100644
index 0000000000000000000000000000000000000000..e7316954e1c4fbe2a29b3e087a2ae78a18aec01e
--- /dev/null
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h
@@ -0,0 +1,87 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_HEADER_PANEL_H_
+#define CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_HEADER_PANEL_H_
+
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/extensions/extension_uninstall_dialog.h"
+#include "chrome/browser/ui/views/apps/app_info_dialog/app_info_panel.h"
+#include "ui/views/controls/link_listener.h"
+
+class Profile;
+
+namespace extensions {
+class Extension;
+}
+
+namespace gfx {
+class Image;
+}
+
+namespace views {
+class ImageView;
+class Label;
+class Link;
+}
+
+// A small summary panel with the app's name, icon, version, and various links
+// that is displayed at the top of the app info dialog.
+class AppInfoHeaderPanel
+ : public AppInfoPanel,
+ public views::LinkListener,
+ public extensions::ExtensionUninstallDialog::Delegate,
+ public base::SupportsWeakPtr<AppInfoHeaderPanel> {
+ public:
+ AppInfoHeaderPanel(Profile* profile, const extensions::Extension* app);
+ virtual ~AppInfoHeaderPanel();
+
+ private:
+ void CreateControls();
+ void LayoutAppNameAndVersionInto(views::View* parent_view);
+ void LayoutControls();
+
+ // Overridden from views::LinkListener:
+ virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE;
+
+ // Overridden from ExtensionUninstallDialog::Delegate:
+ virtual void ExtensionUninstallAccepted() OVERRIDE;
+ virtual void ExtensionUninstallCanceled() OVERRIDE;
+
+ // Load the app icon asynchronously. For the response, check OnAppImageLoaded.
+ void LoadAppImageAsync();
+ // Called when the app's icon is loaded.
+ void OnAppImageLoaded(const gfx::Image& image);
+
+ // Opens the app in the web store. Must only be called if
+ // CanShowAppInWebStore() returns true.
+ void ShowAppInWebStore() const;
+ bool CanShowAppInWebStore() const;
+
+ // Uninstall the app. Must only be called if CanUninstallApp() returns true.
+ void UninstallApp();
+ bool CanUninstallApp() const;
+
+ // Displays the licenses for the app. Must only be called if
+ // CanDisplayLicenses() returns true.
+ void DisplayLicenses();
+ bool CanDisplayLicenses();
+
+ // UI elements on the dialog. Elements are NULL if they are not displayed.
+ views::ImageView* app_icon_;
+ views::Label* app_name_label_;
+ views::Label* app_version_label_;
+ views::Link* view_in_store_link_;
+ views::Link* remove_link_;
+ views::Link* licenses_link_;
+
+ scoped_ptr<extensions::ExtensionUninstallDialog> extension_uninstall_dialog_;
+
+ base::WeakPtrFactory<AppInfoHeaderPanel> weak_ptr_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(AppInfoHeaderPanel);
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_APP_INFO_HEADER_PANEL_H_

Powered by Google App Engine
This is Rietveld 408576698