/* * Copyright 2021, Haiku, Inc. * Distributed under the terms of the MIT License. * * Authors: * Tri-Edge AI */ #include #include namespace Bluetooth { ConnectionView::ConnectionView(BRect frame, BString device, BString address) : BView(frame, "ConnectionView", 0, B_PULSE_NEEDED) { SetLayout(new BGroupLayout(B_HORIZONTAL)); SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fIcon = new BluetoothIconView(); strMessage = "A new connection is incoming.."; fMessage = new BStringView(frame, "", strMessage, B_FOLLOW_LEFT); fMessage->SetAlignment(B_ALIGN_LEFT); fDeviceLabel = new BStringView(frame, "", "Device Name:", B_FOLLOW_LEFT); fDeviceLabel->SetFont(be_bold_font); fDeviceText = new BStringView(frame, "", device, B_FOLLOW_RIGHT); fDeviceText->SetAlignment(B_ALIGN_RIGHT); fAddressLabel = new BStringView(frame, "", "MAC Address:", B_FOLLOW_LEFT); fAddressLabel->SetFont(be_bold_font); fAddressText = new BStringView(frame, "", address, B_FOLLOW_RIGHT); fAddressText->SetAlignment(B_ALIGN_RIGHT); AddChild(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(BGroupLayoutBuilder(B_VERTICAL, 8) .Add(fIcon) ) .Add(BGroupLayoutBuilder(B_VERTICAL, 0) .Add(fMessage) .AddGlue() .Add(BGroupLayoutBuilder(B_HORIZONTAL, 10) .Add(fDeviceLabel) .AddGlue() .Add(fDeviceText) ) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 10) .Add(fAddressLabel) .AddGlue() .Add(fAddressText) ) .AddGlue() ) .AddGlue() .SetInsets(8, 8, 8, 8) ); } void ConnectionView::Pulse() { static int pulses = 0; pulses++; if (pulses >= 5) { Window()->PostMessage(B_QUIT_REQUESTED); } else { strMessage += "."; fMessage->SetText(strMessage); } } }