示例#1
0
STDMETHODIMP CPDPath::removeSubPath(IPDSubPath *subpath)
{
	if (subpath == NULL) return E_INVALIDARG;

	int index;
	for (index = 0; index < m_subPaths.GetSize(); index++)
	{
		if (IsUnknownEqualUnknown(m_subPaths[index]->GetUnknown(), subpath))
		{
			break;
		}
	}

	if (index >= 0 && index < m_subPaths.GetSize())
	{
		m_subPaths[index]->Unadvise(this);
		m_subPaths[index]->m_pOwnerPath = NULL;
		m_subPaths.RemoveAt(index);

		FireOnChanged(NOTIFY_REMOVE, subpath, DISPID_UNKNOWN);

		subpath->Release();

		return S_OK;
	}

	ATLASSERT(0);
	return E_FAIL;
}
示例#2
0
// INotifyGet
STDMETHODIMP CPDObjectFrame::OnChanged(NotifyType type, IUnknown* targetObject, IUnknown* immtargetObject, DISPID dispID)
{
	CalculateBounds();

	CComQIPtr<IPDPath> path = immtargetObject;
	if (path)
	{
		if (IsUnknownEqualUnknown(path, m_path->GetUnknown()))
		{
			if (m_gdppath)
			{
				delete m_gdppath;
				m_gdppath = NULL;
			}

			if (m_wrapPath)
			{
				if (m_editedWrapPath == FALSE)
				{
					CComQIPtr<INotifySend> cp = m_wrapPath;
					cp->LockSend();

					RecreateWrapPath();

					cp->UnlockSend();
				}
			}
		}
	}

	CNotifySendImpl<CPDObjectFrame>::FireOnChanged(type, targetObject, dispID);
	return S_OK;
}
示例#3
0
bool CPDPage::IsLeftOfSpine()
{
	for (int pageIndex = 0; pageIndex < m_ownerSpread->m_pages->m_items.GetSize(); pageIndex++)
	{
		if (IsUnknownEqualUnknown(m_ownerSpread->m_pages->m_items[pageIndex], GetUnknown()))
		{
			break;
		}
	}

	ATLASSERT(pageIndex < m_ownerSpread->m_pages->m_items.GetSize());

	return pageIndex < m_ownerSpread->m_spine;
}
示例#4
0
STDMETHODIMP CStrokeDlg::handleDeactivateObjectEvent(IUnknown* object, long cookie, BOOL* bAllow)
{
	for (int i = 0; i < m_targetObjects.GetSize(); i++)
	{
		if (IsUnknownEqualUnknown(m_targetObjects[i], object))
		{
			m_targetObjects[i]->Release();
			m_targetObjects.RemoveAt(i);
		}
	}

	SetControlValues();

	return S_OK;
}
示例#5
0
STDMETHODIMP CTabsDlg::handleDeactivateObjectEvent(IUnknown* object, long cookie, BOOL* bAllow)
{
	if (IsUnknownEqualUnknown(object, m_view->GetUnknown()))
	{
		m_view->Release();
		m_view = NULL;
	}
	else if (IsUnknownEqualUnknown(object, m_range))
	{
		m_textPara.Release();
		m_tabsCtl->put_textPara(NULL);
		m_tabsCtl->put_Enabled(FALSE);

		m_range.Release();
	}

	if (m_hWnd)
	{
		Invalidate();
		OnSize();
	}

	return S_OK;
}
示例#6
0
STDMETHODIMP CSVGSwatchesDlg::handleDeactivateObjectEvent(IUnknown* object, long cookie, BOOL* bAllow)
{
	ASSERT(IsUnknownEqualUnknown(m_viewGroup, object));

//	IDispEventImpl<2, CSVGFiltersDlg, &DIID__IWebXMLDocumentEvents, &LIBID_WEBEDITORLib, 1, 0>::DispEventUnadvise(m_document);

	CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument;
	eventTarget->removeEventListener(L"DOMNodeInserted", (ILDOMEventListener*)this, VARIANT_TRUE);
	RemoveEventListeners();

	m_listView.RemoveItems();

	m_listView.m_xmlDocument.Release();
	m_viewGroup.Release();

	return S_OK;
}
示例#7
0
STDMETHODIMP CPDPage::getPageRect(RectD *pVal)
{
	double x = 0;

	for (int i = 0; i < m_ownerSpread->m_pages->m_items.GetSize(); i++)
	{
		if (IsUnknownEqualUnknown(m_ownerSpread->m_pages->m_items[i], GetUnknown()))
		{
			break;
		}

		x += m_pDocument->m_pageWidth;
	}

	pVal->X = x;
	pVal->Y = 0;
	pVal->Width = m_pDocument->m_pageWidth;
	pVal->Height = m_pDocument->m_pageHeight;

	return S_OK;
}
示例#8
0
STDMETHODIMP CSVGSymbolsDlg::handleDeactivateObjectEvent(IUnknown* object, long cookie, BOOL* bAllow)
{
	ASSERT(IsUnknownEqualUnknown(m_document, object));

	IDispEventImpl<2, CSVGSymbolsDlg, &DIID__IEXMLDocumentEvents, &LIBID_LXMLEDITORLib, 1, 0>::DispEventUnadvise(m_document);

	CComQIPtr<ILDOMEventTarget> eventTarget = m_listView.m_xmlDocument;
	eventTarget->removeEventListener(L"DOMNodeInserted", (ILDOMEventListener*)this, VARIANT_TRUE);

	m_listView.RemoveItems();

	m_listView.m_xmlDocument.Release();
	m_document.Release();

	g_selectedSymbol = NULL;

	if (m_hWnd)
	{
		Invalidate();
	}

	return S_OK;
}
示例#9
0
CPDPage* CPDPage::GetBasePage()
{
	ATLASSERT(m_baseMaster);

	for (int pageIndex = 0; pageIndex < m_ownerSpread->m_pages->m_items.GetSize(); pageIndex++)
	{
		if (IsUnknownEqualUnknown(m_ownerSpread->m_pages->m_items[pageIndex], GetUnknown()))
		{
			break;
		}
	}

	ATLASSERT(pageIndex < m_ownerSpread->m_pages->m_items.GetSize());

//	m_ownerSpread->m_spine;
//	m_baseMaster->m_pages->m_items.GetSize();

	int basepageIndex = m_baseMaster->m_pages->m_items.GetSize()-1 - (m_ownerSpread->m_spine - pageIndex);

	ATLASSERT(basepageIndex >= 0);
	ATLASSERT(basepageIndex < m_baseMaster->m_pages->m_items.GetSize());

	return static_cast<CPDPage*>((IPDPage*)(m_baseMaster->m_pages->m_items[basepageIndex]));
}