Example #1
0
CTextDimsKey::CTextDimsKey(const CTextDimsKey& textDimsKey)
    : m_hash(textDimsKey.m_hash)
    , m_str(textDimsKey.m_str)
    , m_style(DEBUG_NEW STSStyle(*textDimsKey.m_style))
{
}
Example #2
0
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();
	}
}
Example #3
0
CTextDimsKey::CTextDimsKey(const CStringW& str, const STSStyle& style)
    : m_str(str)
    , m_style(DEBUG_NEW STSStyle(style))
{
    UpdateHash();
}