1 // Copyright (c) 2012 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 #include "chrome/browser/chromeos/bluetooth/bluetooth_pairing_dialog.h" 6 7 #include "base/json/json_writer.h" 8 #include "chrome/browser/profiles/profile_manager.h" 9 #include "chrome/browser/ui/browser_dialogs.h" 10 #include "chrome/common/url_constants.h" 11 #include "device/bluetooth/bluetooth_device.h" 12 #include "grit/generated_resources.h" 13 #include "ui/base/l10n/l10n_util.h" 14 #include "ui/gfx/size.h" 15 16 using content::WebContents; 17 using content::WebUIMessageHandler; 18 19 namespace chromeos { 20 21 namespace { 22 23 // Default width/height ratio of screen size. 24 const int kDefaultWidth = 480; 25 const int kDefaultHeight = 280; 26 27 } // namespace 28 29 /////////////////////////////////////////////////////////////////////////////// 30 // BluetoothPairingDialog, public: 31 32 BluetoothPairingDialog::BluetoothPairingDialog( 33 gfx::NativeWindow parent_window, 34 const device::BluetoothDevice* device) 35 : parent_window_(parent_window) { 36 device_data_.SetString("address", device->GetAddress()); 37 device_data_.SetString("name", device->GetName()); 38 device_data_.SetBoolean("paired", device->IsPaired()); 39 device_data_.SetBoolean("connected", device->IsConnected()); 40 } 41 42 BluetoothPairingDialog::~BluetoothPairingDialog() { 43 } 44 45 void BluetoothPairingDialog::Show() { 46 chrome::ShowWebDialog(parent_window_, 47 ProfileManager::GetDefaultProfile(), 48 this); 49 } 50 51 /////////////////////////////////////////////////////////////////////////////// 52 // LoginWebDialog, protected: 53 54 ui::ModalType BluetoothPairingDialog::GetDialogModalType() const { 55 return ui::MODAL_TYPE_SYSTEM; 56 } 57 58 base::string16 BluetoothPairingDialog::GetDialogTitle() const { 59 return l10n_util::GetStringUTF16( 60 IDS_OPTIONS_SETTINGS_BLUETOOTH_ADD_DEVICE_TITLE); 61 } 62 63 GURL BluetoothPairingDialog::GetDialogContentURL() const { 64 return GURL(chrome::kChromeUIBluetoothPairingURL); 65 } 66 67 void BluetoothPairingDialog::GetWebUIMessageHandlers( 68 std::vector<WebUIMessageHandler*>* handlers) const { 69 } 70 71 void BluetoothPairingDialog::GetDialogSize(gfx::Size* size) const { 72 size->SetSize(kDefaultWidth, kDefaultHeight); 73 } 74 75 std::string BluetoothPairingDialog::GetDialogArgs() const { 76 std::string data; 77 base::JSONWriter::Write(&device_data_, &data); 78 return data; 79 } 80 81 void BluetoothPairingDialog::OnDialogClosed(const std::string& json_retval) { 82 delete this; 83 } 84 85 void BluetoothPairingDialog::OnCloseContents(WebContents* source, 86 bool* out_close_dialog) { 87 if (out_close_dialog) 88 *out_close_dialog = true; 89 } 90 91 bool BluetoothPairingDialog::ShouldShowDialogTitle() const { 92 return true; 93 } 94 95 bool BluetoothPairingDialog::HandleContextMenu( 96 const content::ContextMenuParams& params) { 97 // Disable context menu. 98 return true; 99 } 100 101 } // namespace chromeos 102