static bool isClientChecked(HWND hwnd) { HWND child = getItem(hwnd, IDC_MAIN_CLIENT_RADIO); return isItemChecked(child); }
void MyPopupMenu::checkCheck(int id) { bool* var = bools.find(id); if ( var ) { bool check = !isItemChecked(id); setItemChecked(id, check); *var = check; emit variableChanged(var); } else { int* var = ints.find(id); int* val = values.find(id); if ( var && val ) { *var = *val; int ind=indexOf(id); // go back to start/separator while (idAt(ind)!=-1) { ind--; } ind++; // go forward to end/separator int i; while ((i=idAt(ind))!=-1) { setItemChecked( i, i==id ); ind++; } emit variableChanged(var); } } }
void ItemOrderList::onListWidgetItemsItemChanged(QListWidgetItem *item) { const auto row = ui->listWidgetItems->row(item); const bool checked = isItemChecked(row); if ( m_items[item].lastCheckedState != checked ) { m_items[item].lastCheckedState = checked; emit itemCheckStateChanged(row, checked); } }
void SpawnListMenu::toggle_spawnListCol(int id) { int colnum; colnum = itemParameter(id); if (isItemChecked(id)) m_spawnlist->setColumnVisible(colnum, false); else m_spawnlist->setColumnVisible(colnum, true); }
// This popup is much more useful from keyboard if it has the active // window active by default - however, TQPopupMenu tries hard to resist. // TQPopupMenu::popup() resets the active item, so this needs to be // called after popup(). void KWindowListMenu::selectActiveWindow() { for( unsigned int i = 0; i < count(); ++i ) if( isItemChecked( idAt( i ))) { setActiveItem( i ); break; } }
bool CGlobalOptions::save(HWND hwnd) { HWND child; int newDelayTime = 0; int newTwoTapTime = 0; int newHeartbeatTime = 0; // get requested options child = getItem(hwnd, IDC_GLOBAL_DELAY_CHECK); if (isItemChecked(child)) { child = getItem(hwnd, IDC_GLOBAL_DELAY_TIME); newDelayTime = getTime(hwnd, child, true); if (newDelayTime == 0) { return false; } } else { child = getItem(hwnd, IDC_GLOBAL_DELAY_TIME); newDelayTime = getTime(hwnd, child, false); if (newDelayTime == 0) { newDelayTime = s_defaultDelay; } } child = getItem(hwnd, IDC_GLOBAL_TWO_TAP_CHECK); if (isItemChecked(child)) { child = getItem(hwnd, IDC_GLOBAL_TWO_TAP_TIME); newTwoTapTime = getTime(hwnd, child, true); if (newTwoTapTime == 0) { return false; } } else { child = getItem(hwnd, IDC_GLOBAL_TWO_TAP_TIME); newTwoTapTime = getTime(hwnd, child, false); if (newTwoTapTime == 0) { newTwoTapTime = s_defaultDelay; } } child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_CHECK); if (isItemChecked(child)) { child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_TIME); newHeartbeatTime = getTime(hwnd, child, true); if (newHeartbeatTime == 0) { return false; } } else { child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_TIME); newHeartbeatTime = getTime(hwnd, child, false); if (newHeartbeatTime == 0) { newHeartbeatTime = s_defaultHeartbeat; } } // remove existing config options m_config->removeOption("", kOptionScreenSwitchDelay); m_config->removeOption("", kOptionScreenSwitchTwoTap); m_config->removeOption("", kOptionHeartbeat); m_config->removeOption("", kOptionScreenSaverSync); m_config->removeOption("", kOptionRelativeMouseMoves); m_config->removeOption("", kOptionWin32KeepForeground); // add requested options child = getItem(hwnd, IDC_GLOBAL_DELAY_CHECK); if (isItemChecked(child)) { m_config->addOption("", kOptionScreenSwitchDelay, newDelayTime); } child = getItem(hwnd, IDC_GLOBAL_TWO_TAP_CHECK); if (isItemChecked(child)) { m_config->addOption("", kOptionScreenSwitchTwoTap, newTwoTapTime); } child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_CHECK); if (isItemChecked(child)) { m_config->addOption("", kOptionHeartbeat, newHeartbeatTime); } child = getItem(hwnd, IDC_GLOBAL_SCREENSAVER_SYNC); if (!isItemChecked(child)) { m_config->addOption("", kOptionScreenSaverSync, 0); } child = getItem(hwnd, IDC_GLOBAL_RELATIVE_MOVES); if (isItemChecked(child)) { m_config->addOption("", kOptionRelativeMouseMoves, 1); } child = getItem(hwnd, IDC_GLOBAL_LEAVE_FOREGROUND); if (isItemChecked(child)) { m_config->addOption("", kOptionWin32KeepForeground, 1); } // save last values m_delayTime = newDelayTime; m_twoTapTime = newTwoTapTime; m_heartbeatTime = newHeartbeatTime; return true; }
static BOOL CALLBACK addDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { // only one add dialog at a time! static CScreenInfo* info = NULL; switch (message) { case WM_INITDIALOG: { info = (CScreenInfo*)lParam; // set title CString title; if (info->m_screen.empty()) { title = getString(IDS_ADD_SCREEN); } else { title = CStringUtil::format( getString(IDS_EDIT_SCREEN).c_str(), info->m_screen.c_str()); } SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)title.c_str()); // fill in screen name HWND child = getItem(hwnd, IDC_ADD_SCREEN_NAME_EDIT); SendMessage(child, WM_SETTEXT, 0, (LPARAM)info->m_screen.c_str()); // fill in aliases CString aliases; for (CStringList::const_iterator index = info->m_aliases.begin(); index != info->m_aliases.end(); ++index) { if (!aliases.empty()) { aliases += "\r\n"; } aliases += *index; } child = getItem(hwnd, IDC_ADD_ALIASES_EDIT); SendMessage(child, WM_SETTEXT, 0, (LPARAM)aliases.c_str()); // set options CConfig::CScreenOptions::const_iterator index; child = getItem(hwnd, IDC_ADD_HD_CAPS_CHECK); index = info->m_options.find(kOptionHalfDuplexCapsLock); setItemChecked(child, (index != info->m_options.end() && index->second != 0)); child = getItem(hwnd, IDC_ADD_HD_NUM_CHECK); index = info->m_options.find(kOptionHalfDuplexNumLock); setItemChecked(child, (index != info->m_options.end() && index->second != 0)); child = getItem(hwnd, IDC_ADD_HD_SCROLL_CHECK); index = info->m_options.find(kOptionHalfDuplexScrollLock); setItemChecked(child, (index != info->m_options.end() && index->second != 0)); // modifier options for (UInt32 i = 0; i < sizeof(s_modifiers) / sizeof(s_modifiers[0]); ++i) { child = getItem(hwnd, s_modifiers[i].m_ctrlID); // fill in options for (UInt32 j = 0; j < sizeof(s_modifiers) / sizeof(s_modifiers[0]); ++j) { SendMessage(child, CB_ADDSTRING, 0, (LPARAM)s_modifiers[j].m_name); } // choose current value index = info->m_options.find(s_modifiers[i].m_optionID); KeyModifierID id = s_modifiers[i].m_modifierID; if (index != info->m_options.end()) { id = index->second; } SendMessage(child, CB_SETCURSEL, id - baseModifier, 0); } // dead corners UInt32 corners = 0; index = info->m_options.find(kOptionScreenSwitchCorners); if (index != info->m_options.end()) { corners = index->second; } child = getItem(hwnd, IDC_ADD_DC_TOP_LEFT); setItemChecked(child, (corners & kTopLeftMask) != 0); child = getItem(hwnd, IDC_ADD_DC_TOP_RIGHT); setItemChecked(child, (corners & kTopRightMask) != 0); child = getItem(hwnd, IDC_ADD_DC_BOTTOM_LEFT); setItemChecked(child, (corners & kBottomLeftMask) != 0); child = getItem(hwnd, IDC_ADD_DC_BOTTOM_RIGHT); setItemChecked(child, (corners & kBottomRightMask) != 0); index = info->m_options.find(kOptionScreenSwitchCornerSize); SInt32 size = 0; if (index != info->m_options.end()) { size = index->second; } char buffer[20]; sprintf(buffer, "%d", size); child = getItem(hwnd, IDC_ADD_DC_SIZE); SendMessage(child, WM_SETTEXT, 0, (LPARAM)buffer); return TRUE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: { CString newName; CStringList newAliases; // extract name and aliases HWND child = getItem(hwnd, IDC_ADD_SCREEN_NAME_EDIT); newName = getWindowText(child); child = getItem(hwnd, IDC_ADD_ALIASES_EDIT); tokenize(newAliases, getWindowText(child)); // name must be valid if (!ARG->m_config.isValidScreenName(newName)) { showError(hwnd, CStringUtil::format( getString(IDS_INVALID_SCREEN_NAME).c_str(), newName.c_str())); return TRUE; } // aliases must be valid for (CStringList::const_iterator index = newAliases.begin(); index != newAliases.end(); ++index) { if (!ARG->m_config.isValidScreenName(*index)) { showError(hwnd, CStringUtil::format( getString(IDS_INVALID_SCREEN_NAME).c_str(), index->c_str())); return TRUE; } } // new name may not be in the new alias list if (isNameInList(newAliases, newName)) { showError(hwnd, CStringUtil::format( getString(IDS_SCREEN_NAME_IS_ALIAS).c_str(), newName.c_str())); return TRUE; } // name must not exist in config but allow same name. also // allow name if it exists in the old alias list but not the // new one. if (ARG->m_config.isScreen(newName) && !CStringUtil::CaselessCmp::equal(newName, info->m_screen) && !isNameInList(info->m_aliases, newName)) { showError(hwnd, CStringUtil::format( getString(IDS_DUPLICATE_SCREEN_NAME).c_str(), newName.c_str())); return TRUE; } // aliases must not exist in config but allow same aliases and // allow an alias to be the old name. for (CStringList::const_iterator index = newAliases.begin(); index != newAliases.end(); ++index) { if (ARG->m_config.isScreen(*index) && !CStringUtil::CaselessCmp::equal(*index, info->m_screen) && !isNameInList(info->m_aliases, *index)) { showError(hwnd, CStringUtil::format( getString(IDS_DUPLICATE_SCREEN_NAME).c_str(), index->c_str())); return TRUE; } } // dead corner size must be non-negative child = getItem(hwnd, IDC_ADD_DC_SIZE); CString valueString = getWindowText(child); int cornerSize = atoi(valueString.c_str()); if (cornerSize < 0) { showError(hwnd, CStringUtil::format( getString(IDS_INVALID_CORNER_SIZE).c_str(), valueString.c_str())); SetFocus(child); return TRUE; } // save name data info->m_screen = newName; info->m_aliases = newAliases; // save options child = getItem(hwnd, IDC_ADD_HD_CAPS_CHECK); if (isItemChecked(child)) { info->m_options[kOptionHalfDuplexCapsLock] = 1; } else { info->m_options.erase(kOptionHalfDuplexCapsLock); } child = getItem(hwnd, IDC_ADD_HD_NUM_CHECK); if (isItemChecked(child)) { info->m_options[kOptionHalfDuplexNumLock] = 1; } else { info->m_options.erase(kOptionHalfDuplexNumLock); } child = getItem(hwnd, IDC_ADD_HD_SCROLL_CHECK); if (isItemChecked(child)) { info->m_options[kOptionHalfDuplexScrollLock] = 1; } else { info->m_options.erase(kOptionHalfDuplexScrollLock); } // save modifier options for (UInt32 i = 0; i < sizeof(s_modifiers) / sizeof(s_modifiers[0]); ++i) { child = getItem(hwnd, s_modifiers[i].m_ctrlID); KeyModifierID id = static_cast<KeyModifierID>( SendMessage(child, CB_GETCURSEL, 0, 0) + baseModifier); if (id != s_modifiers[i].m_modifierID) { info->m_options[s_modifiers[i].m_optionID] = id; } else { info->m_options.erase(s_modifiers[i].m_optionID); } } // save dead corner options UInt32 corners = 0; if (isItemChecked(getItem(hwnd, IDC_ADD_DC_TOP_LEFT))) { corners |= kTopLeftMask; } if (isItemChecked(getItem(hwnd, IDC_ADD_DC_TOP_RIGHT))) { corners |= kTopRightMask; } if (isItemChecked(getItem(hwnd, IDC_ADD_DC_BOTTOM_LEFT))) { corners |= kBottomLeftMask; } if (isItemChecked(getItem(hwnd, IDC_ADD_DC_BOTTOM_RIGHT))) { corners |= kBottomRightMask; } info->m_options[kOptionScreenSwitchCorners] = corners; info->m_options[kOptionScreenSwitchCornerSize] = cornerSize; // success EndDialog(hwnd, 1); info = NULL; return TRUE; } case IDCANCEL: EndDialog(hwnd, 0); info = NULL; return TRUE; } default: break; } return FALSE; }