void DialUpView::UpdateControls() { if(fTabView->IsHidden() && CountInterfaces() > 0) { fInterfaceMenu->SetLabelFromMarked(true); fStringView->Hide(); fCreateNewButton->Hide(); fTabView->Show(); fConnectButton->SetEnabled(true); } else if(!fTabView->IsHidden() && CountInterfaces() == 0) { fDeleterItem->SetEnabled(false); fInterfaceMenu->SetRadioMode(false); fInterfaceMenu->Superitem()->SetLabel(kLabelCreateNew); fTabView->Hide(); fStringView->Show(); fCreateNewButton->Show(); fConnectButton->SetEnabled(false); } }
void DialUpView::AddInterface(const char *name, bool isNew) { if(fInterfaceMenu->FindItem(name)) { (new BAlert(kErrorTitle, kErrorInterfaceExists, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); return; } BMenuItem *item = new BMenuItem(name, new BMessage(kMsgSelectInterface)); item->SetTarget(this); int32 index = FindNextMenuInsertionIndex(fInterfaceMenu, name); if(index > CountInterfaces()) index = CountInterfaces(); fInterfaceMenu->AddItem(item, index); UpdateControls(); item->SetMarked(true); SelectInterface(index, isNew); }
void DialUpView::SelectInterface(int32 index, bool isNew) { BMenuItem *item = fInterfaceMenu->FindMarked(); if(fCurrentItem && item == fCurrentItem) return; if(fCurrentItem && !SaveSettingsToFile()) (new BAlert(kErrorTitle, kErrorSavingFailed, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); if(index >= CountInterfaces() || index < 0) { if(CountInterfaces() > 0) SelectInterface(0); else { fCurrentItem = NULL; WatchInterface(PPP_UNDEFINED_INTERFACE_ID); } } else { fCurrentItem = fInterfaceMenu->ItemAt(index); if(!fCurrentItem) { SelectInterface(0); return; } fCurrentItem->SetMarked(true); fDeleterItem->SetEnabled(true); WatchInterface(fListener.Manager().InterfaceWithName(fCurrentItem->Label())); } if(!fCurrentItem) LoadSettings(false); // tell modules to unload all settings else if(!isNew && !LoadSettings(false)) { (new BAlert(kErrorTitle, kErrorLoadingFailed, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); LoadSettings(true); } else if(isNew && !LoadSettings(true)) (new BAlert(kErrorTitle, kErrorLoadingFailed, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); }
bool DialUpView::SelectInterfaceNamed(const char *name) { BMenuItem *item = fInterfaceMenu->FindItem(name); int32 index = fInterfaceMenu->IndexOf(item); if(!item || index >= CountInterfaces()) return false; SelectInterface(index); return true; }
TDI_STATUS InfoTdiQueryGetIPSnmpInfo( TDIEntityID ID, PIP_INTERFACE IF, PNDIS_BUFFER Buffer, PUINT BufferSize ) { IPSNMP_INFO SnmpInfo; UINT IfCount = CountInterfaces(); UINT RouteCount = CountFIBs(IF); TDI_STATUS Status = TDI_INVALID_REQUEST; TI_DbgPrint(DEBUG_INFO, ("Called.\n")); RtlZeroMemory(&SnmpInfo, sizeof(IPSNMP_INFO)); SnmpInfo.NumIf = IfCount; SnmpInfo.NumAddr = 1; SnmpInfo.NumRoutes = RouteCount; Status = InfoCopyOut( (PCHAR)&SnmpInfo, sizeof(SnmpInfo), Buffer, BufferSize ); TI_DbgPrint(DEBUG_INFO, ("Returning %08x\n", Status)); return Status; }