Author: kallisti5 Date: 2011-04-08 20:04:34 +0200 (Fri, 08 Apr 2011) New Revision: 41204 Changeset: https://dev.haiku-os.org/changeset/41204 Added: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h Modified: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.cpp haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.h haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.cpp haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.h Log: add InterfaceHardwareView which will show more general hardware information and give somewhere to configure wireless connection settings; add a few hardware calls to NetworkSettings, maybe we just want to pass back BNetworkDevice instead? Added: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp (rev 0) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.cpp 2011-04-08 18:04:34 UTC (rev 41204) @@ -0,0 +1,95 @@ +/* + * Copyright 2004-2011 Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Alexander von Gluck, kallisti5@xxxxxxxxxxx + */ + + +#include "InterfaceHardwareView.h" +#include "NetworkSettings.h" + +#include <LayoutBuilder.h> +#include <MenuItem.h> + + +InterfaceHardwareView::InterfaceHardwareView(BRect frame, + NetworkSettings* settings) + : + BGroupView(B_VERTICAL), + fSettings(settings) +{ + SetLayout(new BGroupLayout(B_VERTICAL)); + + // TODO : Small graph of throughput? + + // TODO : Use strings instead of TextControls + fStatusField = new BTextControl("Status:", NULL, NULL); + fStatusField->SetEnabled(false); + fMACField = new BTextControl("MAC Address:", NULL, NULL); + fMACField->SetEnabled(false); + fSpeedField = new BTextControl("Link Speed:", NULL, NULL); + fSpeedField->SetEnabled(false); + + RevertFields(); + // Do the initial field population + + BLayoutBuilder::Group<>(this) + .AddGrid() + .AddTextControl(fStatusField, 0, 0, B_ALIGN_RIGHT) + .AddTextControl(fMACField, 0, 1, B_ALIGN_RIGHT) + .AddTextControl(fSpeedField, 0, 2, B_ALIGN_RIGHT) + .End() + .AddGlue() + .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, + B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING); +} + + +InterfaceHardwareView::~InterfaceHardwareView() +{ + +} + + +void +InterfaceHardwareView::AttachedToWindow() +{ + +} + + +void +InterfaceHardwareView::MessageReceived(BMessage* message) +{ + switch (message->what) { + default: + BView::MessageReceived(message); + } +} + + +status_t +InterfaceHardwareView::RevertFields() +{ + // Populate fields with current settings + if (fSettings->HasLink()) + fStatusField->SetText("connected"); + else + fStatusField->SetText("disconnected"); + + // TODO : Find how to get link speed + fSpeedField->SetText("100 Mb/s"); + + return B_OK; +} + + +status_t +InterfaceHardwareView::SaveFields() +{ + + return B_OK; +} + Added: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h (rev 0) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceHardwareView.h 2011-04-08 18:04:34 UTC (rev 41204) @@ -0,0 +1,45 @@ +/* + * Copyright 2004-2011 Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Alexander von Gluck, kallisti5@xxxxxxxxxxx + */ +#ifndef INTERFACE_HARDWARE_VIEW_H +#define INTERFACE_HARDWARE_VIEW_H + + +#include "NetworkSettings.h" + +#include <MenuField.h> +#include <PopUpMenu.h> +#include <Screen.h> +#include <StringView.h> +#include <TextControl.h> +#include <GroupView.h> + + +class InterfaceHardwareView : public BGroupView { +public: + InterfaceHardwareView(BRect frame, + NetworkSettings* settings); + virtual ~InterfaceHardwareView(); + virtual void MessageReceived(BMessage* message); + virtual void AttachedToWindow(); + status_t RevertFields(); + status_t SaveFields(); + + +private: + void _EnableFields(bool enabled); + + NetworkSettings* fSettings; + + BTextControl* fStatusField; + BTextControl* fMACField; + BTextControl* fSpeedField; +}; + + +#endif /* INTERFACE_HARDWARE_VIEW_H */ + Modified: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.cpp =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.cpp 2011-04-08 17:46:23 UTC (rev 41203) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.cpp 2011-04-08 18:04:34 UTC (rev 41204) @@ -11,7 +11,9 @@ #include <Application.h> +#include <stdio.h> + #undef B_TRANSLATE_CONTEXT #define B_TRANSLATE_CONTEXT "NetworkSetupWindow" @@ -95,6 +97,16 @@ BRect frame = fTabView->Bounds(); protocols* supportedFamilies = fNetworkSettings->ProtocolVersions(); + BTab* hardwaretab = new BTab; + fTabHardwareView = new InterfaceHardwareView(frame, + fNetworkSettings); + fTabView->AddTab(fTabHardwareView, hardwaretab); + + if (fNetworkSettings->IsEthernet()) + hardwaretab->SetLabel("Wired"); + else + hardwaretab->SetLabel("Wirless"); + for (int index = 0; index < MAX_PROTOCOLS; index++) { if (supportedFamilies[index].present) { Modified: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.h =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.h 2011-04-08 17:46:23 UTC (rev 41203) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/InterfaceWindow.h 2011-04-08 18:04:34 UTC (rev 41204) @@ -11,6 +11,7 @@ #include "NetworkSettings.h" #include "InterfaceAddressView.h" +#include "InterfaceHardwareView.h" #include <Button.h> #include <Catalog.h> @@ -47,6 +48,7 @@ BTabView* fTabView; IPViewMap fTabIPView; + InterfaceHardwareView* fTabHardwareView; }; Modified: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile 2011-04-08 17:46:23 UTC (rev 41203) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile 2011-04-08 18:04:34 UTC (rev 41204) @@ -10,7 +10,7 @@ AddResources Interfaces : - InterfacesIcons.rdef + InterfacesIcons.rdef ; Addon Interfaces : @@ -19,6 +19,7 @@ NetworkSettings.cpp InterfaceWindow.cpp InterfaceAddressView.cpp + InterfaceHardwareView.cpp # from src/apps/networkstatus RadioView.cpp Modified: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.cpp =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.cpp 2011-04-08 17:46:23 UTC (rev 41203) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.cpp 2011-04-08 18:04:34 UTC (rev 41204) @@ -41,6 +41,7 @@ fName = name; _DetectProtocols(); + fNetworkDevice = new BNetworkDevice(fName); fNetworkInterface = new BNetworkInterface(fName); ReadConfiguration(); Modified: haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.h =================================================================== --- haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.h 2011-04-08 17:46:23 UTC (rev 41203) +++ haiku/trunk/src/tests/kits/net/preflet/InterfacesAddOn/NetworkSettings.h 2011-04-08 18:04:34 UTC (rev 41204) @@ -83,6 +83,14 @@ const char* Name() { return fName.String(); } const char* Domain() { return fDomain.String(); } bool IsDisabled() { return fDisabled; } + + bool IsWireless() { + return fNetworkDevice->IsWireless(); } + bool IsEthernet() { + return fNetworkDevice->IsEthernet(); } + bool HasLink() { + return fNetworkDevice->HasLink(); } + const BString& WirelessNetwork() { return fWirelessNetwork; } BObjectList<BString>& NameServers() { return fNameServers; } @@ -112,7 +120,10 @@ BString fWirelessNetwork; protocols fProtocols[MAX_PROTOCOLS]; + BNetworkInterface* fNetworkInterface; + BNetworkDevice* fNetworkDevice; + InterfaceAddressMap fInterfaceAddressMap; };