diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp index 4b3cdb88c6..4485d69012 100644 --- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp +++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp @@ -14,6 +14,7 @@ #include "NetworkSettings.h" #include "WirelessNetworkMenuItem.h" +#include #include #include #include @@ -79,6 +80,14 @@ InterfaceHardwareView::InterfaceHardwareView(NetworkSettings* settings) fNetworkMenuField->SetAlignment(B_ALIGN_RIGHT); fNetworkMenuField->Menu()->SetLabelFromMarked(true); + // Construct the BButtons + fOnOff = new BButton("onoff", B_TRANSLATE("Disable"), + new BMessage(kMsgInterfaceToggle)); + + fRenegotiate = new BButton("heal", B_TRANSLATE("Renegotiate"), + new BMessage(kMsgInterfaceRenegotiate)); + fRenegotiate->SetEnabled(false); + BLayoutBuilder::Group<>(this) .AddGrid() .Add(status, 0, 0) @@ -95,6 +104,11 @@ InterfaceHardwareView::InterfaceHardwareView(NetworkSettings* settings) .Add(fLinkRxField, 1, 5) .End() .AddGlue() + .AddGroup(B_HORIZONTAL) + .Add(fOnOff) + .AddGlue() + .Add(fRenegotiate) + .End() .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING); } @@ -114,6 +128,9 @@ InterfaceHardwareView::AttachedToWindow() { Update(); // Populate the fields + + fOnOff->SetTarget(this); + fRenegotiate->SetTarget(this); } @@ -126,6 +143,20 @@ InterfaceHardwareView::MessageReceived(BMessage* message) fSettings->SetWirelessNetwork(message->FindString("name")); break; } + case kMsgInterfaceToggle: + { + fSettings->SetDisabled(!fSettings->IsDisabled()); + Update(); + Window()->FindView("interfaces")->Invalidate(); + break; + } + + case kMsgInterfaceRenegotiate: + { + fSettings->RenegotiateAddresses(); + break; + } + default: BView::MessageReceived(message); } @@ -233,6 +264,9 @@ InterfaceHardwareView::Update() menu->SetTargetForItems(this); } + fRenegotiate->SetEnabled(!fSettings->IsDisabled()); + fOnOff->SetLabel(fSettings->IsDisabled() ? "Enable" : "Disable"); + return B_OK; } diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h index d6a7384842..abb4cbb1bf 100644 --- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h +++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h @@ -15,6 +15,11 @@ #include +static const uint32 kMsgInterfaceToggle = 'onof'; +static const uint32 kMsgInterfaceRenegotiate = 'redo'; + + +class BButton; class BMenuField; class BMessage; class BRect; @@ -45,6 +50,9 @@ private: BStringView* fLinkRxField; BMenuField* fNetworkMenuField; + + BButton* fOnOff; + BButton* fRenegotiate; }; diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h index 57aeda2f7c..51a5fbb4fb 100644 --- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h +++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceView.h @@ -41,6 +41,8 @@ public: void Apply(); void Revert(); + NetworkSettings* Settings() { return fNetworkSettings; } + private: status_t _PopulateTabs(); diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp index 8a916fbab4..09d99843e0 100644 --- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp +++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.cpp @@ -76,25 +76,11 @@ InterfacesAddOn::CreateView() BScrollView* scrollView = new BScrollView("scrollView", fListView, B_WILL_DRAW | B_FRAME_EVENTS, false, true); - // Construct the BButtons - fOnOff = new BButton("onoff", B_TRANSLATE("Disable"), - new BMessage(kMsgInterfaceToggle)); - fOnOff->SetEnabled(false); - - fRenegotiate = new BButton("heal", B_TRANSLATE("Renegotiate"), - new BMessage(kMsgInterfaceRenegotiate)); - fRenegotiate->SetEnabled(false); - // Build the layout SetLayout(new BGroupLayout(B_HORIZONTAL)); AddChild(BGroupLayoutBuilder(B_VERTICAL, B_USE_DEFAULT_SPACING) .Add(scrollView) - .AddGroup(B_HORIZONTAL, B_USE_SMALL_SPACING) - .Add(fOnOff) - .AddGlue() - .Add(fRenegotiate) - .End() ); return this; @@ -105,8 +91,6 @@ void InterfacesAddOn::AttachedToWindow() { fListView->SetTarget(this); - fOnOff->SetTarget(this); - fRenegotiate->SetTarget(this); } @@ -142,12 +126,8 @@ InterfacesAddOn::MessageReceived(BMessage* msg) switch (msg->what) { case kMsgInterfaceSelected: { - fOnOff->SetEnabled(item != NULL); - fRenegotiate->SetEnabled(item != NULL); if (item == NULL) break; - fRenegotiate->SetEnabled(!item->IsDisabled()); - fOnOff->SetLabel(item->IsDisabled() ? "Enable" : "Disable"); // TODO it would be better to reuse the view instead of recreating // one. @@ -160,27 +140,9 @@ InterfacesAddOn::MessageReceived(BMessage* msg) break; } - case kMsgInterfaceToggle: - { - if (item == NULL) - break; - - item->SetDisabled(!item->IsDisabled()); - fOnOff->SetLabel(item->IsDisabled() ? "Enable" : "Disable"); - fRenegotiate->SetEnabled(!item->IsDisabled()); + case B_OBSERVER_NOTICE_CHANGE: fListView->Invalidate(); break; - } - - case kMsgInterfaceRenegotiate: - { - if (item == NULL) - break; - - NetworkSettings* ns = item->GetSettings(); - ns->RenegotiateAddresses(); - break; - } default: BBox::MessageReceived(msg); diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h index 46636c5ec6..c3bdc0b26f 100644 --- a/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h +++ b/src/tests/kits/net/preflet/InterfacesAddOn/InterfacesAddOn.h @@ -19,8 +19,6 @@ static const uint32 kMsgInterfaceSelected = 'ifce'; -static const uint32 kMsgInterfaceToggle = 'onof'; -static const uint32 kMsgInterfaceRenegotiate = 'redo'; class BButton; @@ -46,8 +44,6 @@ public: private: InterfacesListView* fListView; InterfaceView* fSettingsView; - BButton* fOnOff; - BButton* fRenegotiate; };