void NetworkWindow::MessageReceived(BMessage *message) { switch (message->what) { case kRestart_Networking_M: { RestartWindow *restartWindow = new RestartWindow(); restartWindow->Show(); BMessenger messenger("application/x-vnd.Be-NETS"); if (messenger.IsValid() == true) messenger.SendMessage(B_QUIT_REQUESTED); const char **arg_v; int32 argc; thread_id thread; status_t return_value; argc = 1; arg_v = (const char **)malloc(sizeof(char *) * (argc + 1)); arg_v[0] = strdup("/boot/beos/system/servers/net_server"); arg_v[1] = NULL; thread = load_image(argc,arg_v,(const char **)environ); while (--argc >= 0) free((void *)arg_v[argc]); free (arg_v); return_value = resume_thread(thread); restartWindow->Quit(); break; } case kRevert_M: { LoadSettings(); fRevert->SetEnabled(false); fSave->SetEnabled(false); break; } case kSave_M: { SaveBackup(NULL,fData); fRevert->SetEnabled(false); fSave->SetEnabled(false); break; } case kSettings_M: { BRect r(Frame()); r.right = r.left + 325; r.bottom = r.top + 225; NetListItem *selection = dynamic_cast <NetListItem *> (fInterfacesList->ItemAt(fInterfacesList->CurrentSelection())); if(!selection) break; InterfaceWin *win = new InterfaceWin(r,selection->fData); r=win->Frame(); win->MoveBy((Frame().Width()-r.Width())/2, (Frame().Height()-r.Height())/2); win->fParentWindow = dynamic_cast <NetworkWindow *> (fView->Window()); if (selection->fData.fEnabled) win->fEnabled->SetValue(1); if (selection->fData.fDHCP) win->fDHCP->SetValue(1); else win->fManual->SetValue(1); win->fName->SetText(selection->fData.fPrettyName.String()); win->fIPAddress->SetText(selection->fData.fIPAddress.String()); win->fNetMask->SetText(selection->fData.fNetMask.String()); win->fChanged = false; win->fIPAddress->SetTarget(win); win->fNetMask->SetTarget(win); win->fGateway->SetTarget(win); win->Show(); break; } case kClear_M: { break; } case kCustom_M: { break; } case kLogin_Info_M: { LoginInfo *login_info_pop = new LoginInfo(); login_info_pop->fParentWindow = dynamic_cast <NetworkWindow *> (fView->Window()); login_info_pop->fName->SetText(fusername.String()); login_info_pop->fName->MakeFocus(); login_info_pop->Show(); break; } case kBackup_M: { BRect r(Frame()); r.right = r.left + 260; r.bottom = r.top + 77; r.OffsetBy( (Frame().Width()-260)/2, (Frame().Height()-77)/2); BackupWin *backup_pop = new BackupWin(r); backup_pop->fParentWindow = dynamic_cast <NetworkWindow *> (fView->Window()); backup_pop->Show(); break; } case kRestore_M: { BStringItem *string_item = dynamic_cast <BStringItem *> (fConfigurationsList->ItemAt(fConfigurationsList->CurrentSelection())); LoadSettings(string_item->Text()); PostMessage(kSOMETHING_HAS_CHANGED_M); break; } case kDelete_M: { DeleteConfigFile(); LoadConfigEntries(); fConfigurationsList->SelectionChanged(); break; } case kSOMETHING_HAS_CHANGED_M: { fRevert->SetEnabled(true); fSave->SetEnabled(true); break; } } }
//=================================== DirMonitor::~DirMonitor () { ASSERT(m_handle == INVALID_HANDLE_VALUE); for_each(m_files.begin(), m_files.end(), DeleteConfigFile()); m_files.clear(); --s_dirCount; }