Index: chrome/browser/ui/views/apps/app_info_dialog_views.h |
diff --git a/chrome/browser/ui/views/apps/app_info_dialog_views.h b/chrome/browser/ui/views/apps/app_info_dialog_views.h |
index 8187a8729b1491bc68132fbde858d88247e8aab5..42dd93057a04eaddb0c9cd4630433758401b1822 100644 |
--- a/chrome/browser/ui/views/apps/app_info_dialog_views.h |
+++ b/chrome/browser/ui/views/apps/app_info_dialog_views.h |
@@ -6,6 +6,9 @@ |
#define CHROME_BROWSER_UI_VIEWS_APPS_APP_INFO_DIALOG_VIEWS_H_ |
#include "base/compiler_specific.h" |
+#include "chrome/browser/shell_integration.h" |
+#include "ui/message_center/views/bounded_scroll_view.h" |
+#include "ui/views/controls/image_view.h" |
#include "ui/views/window/dialog_delegate.h" |
class Profile; |
@@ -18,8 +21,22 @@ namespace views { |
class Label; |
} |
+// A scrollable list of permissions for the given app. |
+class PermissionsScrollView : public message_center::BoundedScrollView { |
+ public: |
+ PermissionsScrollView(int min_height, |
+ int max_height, |
+ const extensions::Extension* app); |
+ |
+ private: |
+ virtual ~PermissionsScrollView(); |
+ |
+ views::View* inner_scrollable_view; |
+}; |
+ |
// View the information about a particular chrome application. |
-class AppInfoView : public views::DialogDelegateView { |
+class AppInfoView : public views::DialogDelegateView, |
+ public base::SupportsWeakPtr<AppInfoView> { |
public: |
AppInfoView(Profile* profile, |
const extensions::Extension* app, |
@@ -42,16 +59,25 @@ class AppInfoView : public views::DialogDelegateView { |
virtual ui::ModalType GetModalType() const OVERRIDE; |
virtual base::string16 GetWindowTitle() const OVERRIDE; |
+ // Called when the app's icon is loaded. |
+ void OnAppImageLoaded(const gfx::Image& image); |
+ |
// Profile in which the shortcuts will be created. |
Profile* profile_; |
// UI elements on the dialog. |
views::Label* app_name_label; |
views::Label* app_description_label; |
+ views::Label* app_version_label; |
+ views::ImageView* app_icon; |
+ views::Label* permission_list_heading; |
+ PermissionsScrollView* permissions_scroll_view; |
const extensions::Extension* app_; |
base::Closure close_callback_; |
+ base::WeakPtrFactory<AppInfoView> weak_ptr_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(AppInfoView); |
}; |