//--------------------------------------------------------------- // Purpose: //--------------------------------------------------------------- void CEntityOutputWnd::UpdateToList() { if( !m_enableOutputToList ) return; TCHAR buf[128]; GetComboBoxString(&m_cbEvt, buf, 128); if( !IsMultiSelection(buf) ) m_list.SetOutputEvent(buf); GetComboBoxString(&m_cbTarget, buf, 128); if( !IsMultiSelection(buf) ) m_list.SetOutputTarget(buf); GetComboBoxString(&m_cbInput, buf, 128); if( !IsMultiSelection(buf) ) m_list.SetOutputInput(buf); GetComboBoxString(&m_cbParam, buf, 128); if( !IsMultiSelection(buf) ) m_list.SetOutputParam(buf); m_eDelay.GetWindowText(buf, 128); if( !IsMultiSelection(buf) ) m_list.SetOutputDelay(buf); int onlyOnce = m_bOnlyOnce.GetCheck(); if( onlyOnce != BST_INDETERMINATE ) m_list.SetOutputOnlyOnce(onlyOnce == BST_CHECKED); m_list.UpdateSelected(); }
C4FileSelDlg::ListItem *C4FileSelDlg::CreateListItem(const char *szFilename) { // Default list item if (szFilename) return new DefaultListItem(szFilename, !!GetFileMask(), IsMultiSelection(), IsItemGrayed(szFilename), GetFileItemIcon()); else return new DefaultListItem(NULL, false, IsMultiSelection(), false, GetFileItemIcon()); }
StdStrBuf C4FileSelDlg::GetSelection(const char *szFixedSelection, bool fFilenameOnly) const { StdStrBuf sResult; if (!IsMultiSelection()) { // get single selected file for single selection dlg if (pSelection) sResult.Copy(fFilenameOnly ? GetFilename(pSelection->GetFilename()) : pSelection->GetFilename()); } else { // force fixed selection first if (szFixedSelection) sResult.Append(szFixedSelection); // get ';'-seperated list for multi selection dlg for (ListItem *pFileItem = static_cast<ListItem *>(pFileListBox->GetFirst()); pFileItem; pFileItem = static_cast<ListItem *>(pFileItem->GetNext())) if (pFileItem->IsChecked()) { const char *szAppendFilename = pFileItem->GetFilename(); if (fFilenameOnly) szAppendFilename = GetFilename(szAppendFilename); // prevent adding entries twice (especially those from the fixed // selection list) if (!SIsModule(sResult.getData(), szAppendFilename)) { if (sResult.getLength()) sResult.AppendChar(';'); sResult.Append(szAppendFilename); } } } return sResult; }
void SetComboBoxText(CCustomComboBox &cb, const TCHAR *text) { if(IsMultiSelection(text)) cb.SetFontData(false, RGB(100, 100, 100)); else cb.SetFontData(false, RGB(0, 0, 0), CCB_NOWEIGHT); cb.SetWindowText(text); }
void C4FileSelDlg::OnSelDblClick(class C4GUI::Element *pEl) { // item double-click: confirms with this file in single mode; toggles // selection in multi mode if (IsMultiSelection()) { ListItem *pItem = static_cast<ListItem *>(pEl); pItem->UserToggleCheck(); } else UserClose(true); }
//--------------------------------------------------------------- // Purpose: //--------------------------------------------------------------- void CEntityOutputWnd::UpdateTargetComboBox() { TCHAR buf[256]; GetComboBoxString(&m_cbTarget, buf, 256); if(IsMultiSelection(buf)) { m_cbTarget.SetFontData(false, 0, CCB_NOCOLOR); } else { int num = GetActiveDocument()->GetEntityList()->FindNumberByName(std::string(CT2A(buf))); bool valid = num > 1 || OutputSystem::isGenericTargetName(buf); m_cbTarget.SetFontData(num > 1, valid ? RGB(0, 0, 0) : RGB(200, 0, 0)); } }