void ScreenSaverWindow::_UpdateStatus() { DisableUpdates(); bool enabled = fEnableCheckBox->Value() == B_CONTROL_ON; fPasswordCheckBox->SetEnabled(enabled); fTurnOffCheckBox->SetEnabled(enabled && fTurnOffScreenFlags != 0); fRunSlider->SetEnabled(enabled); fTurnOffSlider->SetEnabled(enabled && fTurnOffCheckBox->Value()); fPasswordSlider->SetEnabled(enabled && fPasswordCheckBox->Value()); fPasswordButton->SetEnabled(enabled && fPasswordCheckBox->Value()); EnableUpdates(); // Update the saved preferences fSettings.SetWindowFrame(Frame()); fSettings.SetWindowTab(fTabView->Selection()); fSettings.SetTimeFlags((enabled ? ENABLE_SAVER : 0) | (fTurnOffCheckBox->Value() ? fTurnOffScreenFlags : 0)); fSettings.SetBlankTime(fRunSlider->Time()); bigtime_t offTime = fTurnOffSlider->Time() - fSettings.BlankTime(); fSettings.SetOffTime(offTime); fSettings.SetSuspendTime(offTime); fSettings.SetStandByTime(offTime); fSettings.SetBlankCorner(fFadeNow->Corner()); fSettings.SetNeverBlankCorner(fFadeNever->Corner()); fSettings.SetLockEnable(fPasswordCheckBox->Value()); fSettings.SetPasswordTime(fPasswordSlider->Time()); // TODO - Tell the password window to update its stuff }
void LocaleWindow::_InsertPreferredLanguage(LanguageListItem* item, int32 atIndex) { if (item == NULL || fPreferredListView->ItemForLanguageID( item->ID().String()) != NULL) return; if (atIndex == -1) atIndex = fPreferredListView->CountItems(); BLanguage* language = NULL; be_locale_roster->GetLanguage(item->Code(), &language); LanguageListItem* baseItem = NULL; if (language != NULL) { baseItem = fPreferredListView->ItemForLanguageCode(language->Code(), &atIndex); delete language; } DisableUpdates(); fPreferredListView->AddItem(new LanguageListItem(*item), atIndex); // Replace other languages with the same base if (baseItem != NULL) { fPreferredListView->RemoveItem(baseItem); delete baseItem; } _PreferredLanguagesChanged(); EnableUpdates(); }
//! Get the preferred languages from the settings. void LocaleWindow::_UpdatePreferredFromLocaleRoster() { DisableUpdates(); // Delete all existing items for (int32 index = fPreferredListView->CountItems(); index-- > 0; ) { delete fPreferredListView->ItemAt(index); } fPreferredListView->MakeEmpty(); // Add new ones from the locale roster BMessage preferredLanguages; be_locale_roster->GetPreferredLanguages(&preferredLanguages); BString languageID; for (int32 index = 0; preferredLanguages.FindString("language", index, &languageID) == B_OK; index++) { int32 listIndex; LanguageListItem* item = fLanguageListView->ItemForLanguageID(languageID.String(), &listIndex); if (item != NULL) { // We found the item we were looking for, now copy it to // the other list fPreferredListView->AddItem(new LanguageListItem(*item)); } } _EnableDisableLanguages(); EnableUpdates(); }
void LocaleWindow::_EnableDisableLanguages() { DisableUpdates(); for (int32 i = 0; i < fLanguageListView->FullListCountItems(); i++) { LanguageListItem* item = static_cast<LanguageListItem*>( fLanguageListView->FullListItemAt(i)); bool enable = fPreferredListView->ItemForLanguageID(item->ID()) == NULL; if (item->IsEnabled() != enable) { item->SetEnabled(enable); int32 visibleIndex = fLanguageListView->IndexOf(item); if (visibleIndex >= 0) { if (!enable) fLanguageListView->Deselect(visibleIndex); fLanguageListView->InvalidateItem(visibleIndex); } } } SettingsChanged(); EnableUpdates(); }
void Game_Scene::UnPause() { resume(); _paused = false; _unPauseButton->setVisible(false); EnableUpdates(true); CocosDenshion::SimpleAudioEngine::getInstance()->resumeAllEffects(); }
void CFtpDialog::ListDirectory() { if (fSocket < 0) { beep(); return; } for (int i = fListView->CountItems() - 1; i >= 0; i--) delete fListView->RemoveItem(i); int data = 0; try { struct sockaddr_in saData; struct sockaddr_in saCmd; data = socket(AF_INET, SOCK_STREAM, 0); if (data < 0) THROW(("Failed to get socket: %s", strerror(errno))); memset(&saData, 0, sizeof(saData)); saData.sin_family = AF_INET; socklen_t size = sizeof(saData); bool passive = IsOn("pssv"); if (passive) { // switch to passive mode s_printf(fSocketFD, "pasv\r\n"); } else { FailSockErr(bind(data, (struct sockaddr *)&saData, sizeof(saData))); FailSockErr(listen(data, 5)); // [zooey]: calling getsockname() on a socket that has been bound to // IN_ADDR_ANY (the wildcard-address) will *not* return any IP-address, // as this will only be setup by the system during connect or accept. // [refer to W.R. Stevens - Unix Network Programming, Vol 1, p. 92] // BeOS R5 however, *does* fill in the IP-address at this stage (that's // why this code worked for R5 but didn't work for BONE). // In order to fix this problem, we simply use the IP-address of the // command-socket for the PORT-command: // // fetch port from data-socket: FailSockErr(getsockname(data, (struct sockaddr *)&saData, &size)); unsigned char *pap = (unsigned char *)&saData.sin_port; // fetch ip-address from cmd-socket: FailSockErr(getsockname(fSocketFD->sSocket, (struct sockaddr *)&saCmd, &size)); unsigned char *sap = (unsigned char *)&saCmd.sin_addr.s_addr; // combine both into the PORT-command: s_printf(fSocketFD, "port %d,%d,%d,%d,%d,%d\r\n", sap[0], sap[1], sap[2], sap[3], pap[0], pap[1]); } int state = 1; SOCK* dsf = NULL; while (state) { GetReply(); switch (state) { case 1: if (passive) { unsigned int sap[4]; unsigned int pap[2]; if (*fReply != '2') THROW(("Pasv command failed: %s", fReply)); char* pos = strchr(fReply,'('); if (!pos) THROW(("Answer to Pasv has unknown format: %s", fReply)); int cnt = sscanf(pos+1, "%u,%u,%u,%u,%u,%u", &sap[0], &sap[1], &sap[2], &sap[3], &pap[0], &pap[1]); if (cnt != 6) THROW(("Could not parse answer to Pasv (%d of 6): %s", cnt, fReply)); char ipAddr[20]; sprintf(ipAddr, "%d.%d.%d.%d", sap[0], sap[1], sap[2], sap[3]); saData.sin_port = htons(pap[0]*256+pap[1]); saData.sin_addr.s_addr = inet_addr(ipAddr); FailOSErr(connect(data, (struct sockaddr *)&saData, sizeof(saData))); dsf = s_open(data, "r+"); } else { if (*fReply != '2') THROW(("Port command failed: %s", fReply)); } s_printf(fSocketFD, "list\r\n"); state = 2; break; case 2: if (*fReply == '1') { int ds = 0; if (!passive) { FailSockErr(ds = accept(data, (struct sockaddr *)&saData, &size)); dsf = s_open(ds, "r+"); } try { CFtpListItem *item; char s[256]; bool showAll = IsOn("dotf"); int entryCount = 0; while (s_gets(s, 256, dsf)) { entryCount++; item = new CFtpListItem(this, s); if (item->IsValid() && (showAll || !item->IsDotFile())) { fListView->AddItem(item); } else delete item; } if (entryCount == 0) THROW(("Could not get listing.")); fListView->Invalidate(); UpdateIfNeeded(); s_close(dsf); if (!passive) closesocket(ds); } catch (HErr& e) { EnableUpdates(); s_close(dsf); closesocket(ds); throw; } state = 3; } else THROW(("Failed to get listing: %s", fReply)); break; case 3: if (*fReply != '2') THROW(("Something went wrong fetching the directory listing")); state = 0; break; } } closesocket(data); } catch (HErr& e) { if (data) closesocket(data); e.DoError(); } } // CFtpDialog::ListDirectory
void MainWindow::UpdateTeams() { ThreadItem *thread_item; TeamItem *team_item; DisableUpdates(); if (!team_items_list) team_items_list = new Hashtable; app_info inf; thread_info thinf; int32 th_cookie, te_cookie; int32 i; team_info teinf; te_cookie = 0; iteration = (iteration + 1) % 2; total_CPU_diff = 0; int idle_CPU_diff = 0; for (i = 0; get_next_team_info(&te_cookie, &teinf) == B_NO_ERROR; i++) { if (!(team_item = (TeamItem *)team_items_list->get(teinf.team))) { team_item = new TeamItem(&teinf); team_item->refreshed = iteration; team_items_list->put(teinf.team, team_item); teamView->AddRow(team_item); team_item->CPU_diff = 0; for (th_cookie = 0; get_next_thread_info(team_item->team, &th_cookie, &thinf) == B_OK;) { thread_item = new ThreadItem(&thinf); thread_item->refreshed = iteration; team_item->thread_items_list->put(thinf.thread, thread_item); teamView->AddRow(thread_item, team_item); if (teinf.team != 1 || strncmp(thinf.name, "idle thread ", 12) != 0) { team_item->CPU_diff += thread_item->CPU_diff; } else idle_CPU_diff += thread_item->CPU_diff; } } // update team else { team_item->update(&teinf); team_item->refreshed = iteration; team_item->CPU_diff = 0; for (th_cookie = 0; get_next_thread_info(team_item->team, &th_cookie, &thinf) == B_OK;) { if (!(thread_item = (ThreadItem *)team_item->thread_items_list->get(thinf.thread))) { thread_item = new ThreadItem(&thinf); thread_item->refreshed = iteration; team_item->thread_items_list->put(thinf.thread, thread_item); teamView->AddRow(thread_item, team_item); } // update thread else { thread_item->update(&thinf); thread_item->refreshed = iteration; } if (teinf.team != 1 || strncmp(thinf.name, "idle thread ", 12) != 0) { team_item->CPU_diff += thread_item->CPU_diff; } else idle_CPU_diff += thread_item->CPU_diff; } } total_CPU_diff += team_item->CPU_diff; if (total_CPU_diff < 0) printf("Error. CPU diff out of bounds\n"); } total_CPU_diff += idle_CPU_diff; // division by zero && overflow handling if (total_CPU_diff <= 0) total_CPU_diff = 1; RemoveList.MakeEmpty(); teamView->FullListDoForEach(postlistproc, (void *)this); RemoveProcessItems(&RemoveList); EnableUpdates(); }