BluetoothSettingsView::BluetoothSettingsView(const char* name) : BView(name, 0), fLocalDevicesMenu(NULL) { _BuildConnectionPolicy(); fPolicyMenuField = new BMenuField("policy", B_TRANSLATE("Incoming connections policy:"), fPolicyMenu); fInquiryTimeControl = new BSlider("time", B_TRANSLATE("Default inquiry time:"), new BMessage(kMsgSetInquiryTime), 0, 255, B_HORIZONTAL); fInquiryTimeControl->SetLimitLabels(B_TRANSLATE("15 secs"), B_TRANSLATE("61 secs")); fInquiryTimeControl->SetHashMarks(B_HASH_MARKS_BOTTOM); fInquiryTimeControl->SetHashMarkCount(255 / 15); fInquiryTimeControl->SetEnabled(true); // hinting menu _BuildClassMenu(); fClassMenuField = new BMenuField("class", B_TRANSLATE("Identify host as:"), fClassMenu); // localdevices menu _BuildLocalDevicesMenu(); fLocalDevicesMenuField = new BMenuField("devices", B_TRANSLATE("Local devices found on system:"), fLocalDevicesMenu); fExtDeviceView = new ExtendedLocalDeviceView(BRect(0, 0, 5, 5), NULL); SetLayout(new BGroupLayout(B_VERTICAL)); // controls pane AddChild(BGridLayoutBuilder(10, 10) .Add(fClassMenuField->CreateLabelLayoutItem(), 0, 0) .Add(fClassMenuField->CreateMenuBarLayoutItem(), 1, 0) .Add(fPolicyMenuField->CreateLabelLayoutItem(), 0, 1) .Add(fPolicyMenuField->CreateMenuBarLayoutItem(), 1, 1) .Add(BSpaceLayoutItem::CreateGlue(), 0, 2, 2) .Add(fInquiryTimeControl, 0, 3, 2) .Add(BSpaceLayoutItem::CreateGlue(), 0, 4, 2) .Add(fLocalDevicesMenuField->CreateLabelLayoutItem(), 0, 5) .Add(fLocalDevicesMenuField->CreateMenuBarLayoutItem(), 1, 5) .Add(fExtDeviceView, 0, 6, 2) .Add(BSpaceLayoutItem::CreateGlue(), 0, 7, 2) .SetInsets(10, 10, 10, 10) ); }
void BluetoothSettingsView::MessageReceived(BMessage* message) { switch (message->what) { case kMsgLocalSwitched: { LocalDevice* lDevice; if (message->FindPointer("LocalDevice", (void**) &lDevice) == B_OK) { // Device integrity should be rechecked fExtDeviceView->SetLocalDevice(lDevice); fExtDeviceView->SetEnabled(true); ActiveLocalDevice = lDevice; } } break; /* To be fixed :) case kMsgSetConnectionPolicy: { //uint8 Policy; //if (message->FindInt8("Policy", (int8*)&Policy) == B_OK) break; } case kMsgSetInquiryTime: { break; }*/ case kMsgSetDeviceClass: { uint8 deviceClass; if (message->FindInt8("DeviceClass", (int8*)&deviceClass) == B_OK) { if (deviceClass == 5) _SetDeviceClass(2, 3, 0x72); else _SetDeviceClass(1, deviceClass, 0x72); } break; } case kMsgRefresh: _BuildLocalDevicesMenu(); fLocalDevicesMenu->SetTargetForItems(this); break; default: BView::MessageReceived(message); } }
void BluetoothSettingsView::MessageReceived(BMessage* message) { DeviceClass devClass; switch (message->what) { case kMsgLocalSwitched: { LocalDevice* lDevice; if (message->FindPointer("LocalDevice", (void**) &lDevice) == B_OK) { // Device integrity should be rechecked fExtDeviceView->SetLocalDevice(lDevice); fExtDeviceView->SetEnabled(true); ActiveLocalDevice = lDevice; } } break; case kMsgSetDeviceClassDesktop: { devClass.SetRecord(1, 1, 0x72); if (ActiveLocalDevice != NULL) ActiveLocalDevice->SetDeviceClass(devClass); break; } case kMsgSetDeviceClassServer: { devClass.SetRecord(1, 2, 0x72); if (ActiveLocalDevice != NULL) ActiveLocalDevice->SetDeviceClass(devClass); break; } case kMsgSetDeviceClassLaptop: { devClass.SetRecord(1, 3, 0x72); if (ActiveLocalDevice != NULL) ActiveLocalDevice->SetDeviceClass(devClass); break; } case kMsgSetDeviceClassHandheld: { devClass.SetRecord(1, 4, 0x72); if (ActiveLocalDevice != NULL) ActiveLocalDevice->SetDeviceClass(devClass); break; } case kMsgSetDeviceClassSmartPhone: { devClass.SetRecord(2, 3, 0x72); if (ActiveLocalDevice != NULL) ActiveLocalDevice->SetDeviceClass(devClass); break; } case kMsgRefresh: _BuildLocalDevicesMenu(); fLocalDevicesMenu->SetTargetForItems(this); break; default: BView::MessageReceived(message); } }