CTextDimsKey::CTextDimsKey(const CTextDimsKey& textDimsKey) : m_hash(textDimsKey.m_hash) , m_str(textDimsKey.m_str) , m_style(DEBUG_NEW STSStyle(*textDimsKey.m_style)) { }
void CPlayerSubresyncBar::OnEndlabeleditList(NMHDR* pNMHDR, LRESULT* pResult) { LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR; LV_ITEM* pItem = &pDispInfo->item; *pResult = FALSE; if (!m_list.m_fInPlaceDirty) { return; } bool fNeedsUpdate = false; if (pItem->iItem >= 0 && pItem->pszText && (m_mode == VOBSUB || m_mode == TEXTSUB)) { switch (pItem->iSubItem) { case COL_START: { int t; if (ParseTime(pItem->pszText, t)) { fNeedsUpdate = ModStart(pItem->iItem, t); *pResult = TRUE; } } break; case COL_END: if (m_mode == TEXTSUB) { int t; if (ParseTime(pItem->pszText, t)) { fNeedsUpdate = ModEnd(pItem->iItem, t); *pResult = TRUE; } } break; case COL_TEXT: if (m_mode == TEXTSUB) { CString str = m_sts.GetStrW(pItem->iItem, true); if (str != pItem->pszText) { fNeedsUpdate = true; m_sts.SetStr(pItem->iItem, CString(pItem->pszText), true); m_list.SetItemText(pItem->iItem, pItem->iSubItem, m_sts.GetStrW(pItem->iItem, true)); } } break; case COL_STYLE: if (m_mode == TEXTSUB) { CString str(pItem->pszText); str.Trim(); if (!str.IsEmpty() && m_sts[pItem->iItem].style != str) { fNeedsUpdate = true; if (!m_sts.m_styles.Lookup(str)) { m_sts.AddStyle(str, DNew STSStyle()); } m_sts[pItem->iItem].style = str; m_list.SetItemText(pItem->iItem, pItem->iSubItem, pItem->pszText); } } break; case COL_LAYER: if (m_mode == TEXTSUB) { int l; if (_stscanf_s(pItem->pszText, _T("%d"), &l) == 1) { fNeedsUpdate = true; m_sts[pItem->iItem].layer = l; CString str; str.Format(_T("%d"), l); m_list.SetItemText(pItem->iItem, pItem->iSubItem, str); } } break; case COL_ACTOR: if (m_mode == TEXTSUB) { CString str(pItem->pszText); str.Trim(); if (!str.IsEmpty()) { fNeedsUpdate = true; m_sts[pItem->iItem].actor = str; m_list.SetItemText(pItem->iItem, pItem->iSubItem, str); } } break; case COL_EFFECT: if (m_mode == TEXTSUB) { CString str(pItem->pszText); str.Trim(); if (!str.IsEmpty()) { fNeedsUpdate = true; m_sts[pItem->iItem].effect = str; m_list.SetItemText(pItem->iItem, pItem->iSubItem, str); } } break; } } if (fNeedsUpdate) { UpdatePreview(); } }
CTextDimsKey::CTextDimsKey(const CStringW& str, const STSStyle& style) : m_str(str) , m_style(DEBUG_NEW STSStyle(style)) { UpdateHash(); }