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

Unified Diff: chrome/browser/chromeos/options/network_config_view.cc

Issue 8726008: Disable network "Connect" dialog UI in case of policy-managed networks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 1 month 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/chromeos/options/network_config_view.cc
diff --git a/chrome/browser/chromeos/options/network_config_view.cc b/chrome/browser/chromeos/options/network_config_view.cc
index 595253450540c73b2ef9d9cc911d070131ecb9f3..3e8a0f44e1aed6116229721eacce5daa25a40017 100644
--- a/chrome/browser/chromeos/options/network_config_view.cc
+++ b/chrome/browser/chromeos/options/network_config_view.cc
@@ -13,10 +13,14 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
+#include "grit/theme_resources.h"
#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/image/image.h"
#include "ui/gfx/rect.h"
#include "ui/views/controls/button/text_button.h"
+#include "ui/views/controls/image_view.h"
#include "ui/views/layout/grid_layout.h"
#include "ui/views/layout/layout_constants.h"
#include "ui/views/widget/widget.h"
@@ -187,4 +191,68 @@ void NetworkConfigView::CreateAdvancedButton() {
layout->AddView(advanced_button_);
}
+ControlledSettingIndicatorView::ControlledSettingIndicatorView()
+ : managed_(false),
+ image_view_(NULL) {
+ Init();
+}
+
+ControlledSettingIndicatorView::ControlledSettingIndicatorView(
+ const NetworkPropertyUIData& ui_data)
+ : managed_(false),
+ image_view_(NULL) {
+ Init();
+ Update(ui_data);
+}
+
+ControlledSettingIndicatorView::~ControlledSettingIndicatorView() {}
+
+void ControlledSettingIndicatorView::Update(
+ const NetworkPropertyUIData& ui_data) {
+ if (managed_ == ui_data.managed())
+ return;
+
+ managed_ = ui_data.managed();
+ PreferredSizeChanged();
+}
+
+gfx::Size ControlledSettingIndicatorView::GetPreferredSize() {
+ if (!IsVisible())
+ return gfx::Size();
+
+ return image_view_->GetPreferredSize();
+}
+
+bool ControlledSettingIndicatorView::IsVisible() const {
+ return managed_ && views::View::IsVisible();
+}
+
+void ControlledSettingIndicatorView::Layout() {
+ image_view_->SetBounds(0, 0, width(), height());
+}
+
+void ControlledSettingIndicatorView::OnMouseEntered(
+ const views::MouseEvent& event) {
+ image_view_->SetImage(color_image_);
+}
+
+void ControlledSettingIndicatorView::OnMouseExited(
+ const views::MouseEvent& event) {
+ image_view_->SetImage(gray_image_);
+}
+
+void ControlledSettingIndicatorView::Init() {
+ color_image_ = ResourceBundle::GetSharedInstance().GetImageNamed(
+ IDR_CONTROLLED_SETTING_MANDATORY).ToSkBitmap();
+ gray_image_ = ResourceBundle::GetSharedInstance().GetImageNamed(
+ IDR_CONTROLLED_SETTING_MANDATORY_GRAY).ToSkBitmap();
+ image_view_ = new views::ImageView();
+ // Disable |image_view_| so mouse events propagate to the parent.
+ image_view_->SetEnabled(false);
+ image_view_->SetImage(gray_image_);
+ image_view_->SetTooltipText(
+ l10n_util::GetStringUTF16(IDS_OPTIONS_CONTROLLED_SETTING_POLICY));
+ AddChildView(image_view_);
+}
+
} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/options/network_config_view.h ('k') | chrome/browser/chromeos/options/vpn_config_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698