1/* 2 * Copyright 2003-2004 Waldemar Kornewald. All rights reserved. 3 * Copyright 2017 Haiku, Inc. All rights reserved. 4 * Distributed under the terms of the MIT License. 5 */ 6 7 8#include <stdio.h> 9#include <stdlib.h> 10#include <string.h> 11 12#include <dirent.h> 13#include <sys/stat.h> 14 15#include <String.h> 16#include <ListView.h> 17#include <ListItem.h> 18#include <ScrollView.h> 19#include <Box.h> 20#include <Button.h> 21#include <Bitmap.h> 22#include <Alert.h> 23 24#include <NetworkSettings.h> 25#include <NetworkSettingsAddOn.h> 26#include "InterfaceListItem.h" 27 28#include "DialUpView.h" 29 30 31using namespace BNetworkKit; 32 33 34class AddOn : public BNetworkSettingsAddOn { 35public: 36 AddOn(image_id addon_image, BNetworkSettings& settings); 37 virtual ~AddOn(); 38 39 virtual BNetworkSettingsItem* 40 CreateNextItem(uint32& cookie); 41}; 42 43 44class DialUpInterfaceItem : public BNetworkSettingsItem { 45public: 46 DialUpInterfaceItem(BNetworkSettings& settings); 47 virtual ~DialUpInterfaceItem(); 48 49 virtual BNetworkSettingsType 50 Type() const; 51 52 virtual BListItem* ListItem(); 53 virtual BView* View(); 54 55 virtual status_t Revert(); 56 virtual bool IsRevertable(); 57 58private: 59 BNetworkSettings& fSettings; 60 BListItem* fItem; 61 BView* fView; 62}; 63 64 65// #pragma mark - 66 67 68DialUpInterfaceItem::DialUpInterfaceItem(BNetworkSettings& settings) 69 : 70 fSettings(settings), 71 fItem(new InterfaceListItem("Dialup", 72 B_NETWORK_INTERFACE_TYPE_DIAL_UP)), 73 fView(NULL) 74{ 75} 76 77 78DialUpInterfaceItem::~DialUpInterfaceItem() 79{ 80 if (fView->Parent() == NULL) 81 delete fView; 82 83 delete fItem; 84} 85 86 87BNetworkSettingsType 88DialUpInterfaceItem::Type() const 89{ 90 return B_NETWORK_SETTINGS_TYPE_DIAL_UP; 91} 92 93 94BListItem* 95DialUpInterfaceItem::ListItem() 96{ 97 return fItem; 98} 99 100 101BView* 102DialUpInterfaceItem::View() 103{ 104 if (fView == NULL) 105 fView = new DialUpView(/*fSettings*/); 106 107 return fView; 108} 109 110 111status_t 112DialUpInterfaceItem::Revert() 113{ 114 return B_OK; 115} 116 117bool 118DialUpInterfaceItem::IsRevertable() 119{ 120 // TODO 121 return false; 122} 123 124 125// #pragma mark - 126 127 128AddOn::AddOn(image_id image, BNetworkSettings& settings) 129 : BNetworkSettingsAddOn(image, settings) 130{ 131} 132 133 134AddOn::~AddOn() 135{ 136} 137 138 139BNetworkSettingsItem* 140AddOn::CreateNextItem(uint32& cookie) 141{ 142 if (cookie++ == 0) 143 return new DialUpInterfaceItem(Settings()); 144 145 return NULL; 146} 147 148 149// #pragma mark - 150 151 152extern "C" 153BNetworkSettingsAddOn* 154instantiate_network_settings_add_on(image_id image, BNetworkSettings& settings) 155{ 156 return new AddOn(image, settings); 157} 158