/** * @file XTPMarkupSpan.cpp * * @copyright * (c) 1998-2025 Codejock Software, All Rights Reserved. * * This source file is the property of Codejock Software and must not be * redistributed by any means without the explicit written permission of * Codejock Software. * * The use of this source code is governed by the terms and conditions specified * in the Toolkit Pro license agreement. Codejock Software grants you, as a * single software developer, the limited right to use this software on one * computer only. * * Contact Information: * support@codejock.com * http://www.codejock.com * */ #include "StdAfx.h" #include "Common/XTPTypeId.h" #include "Common/XTPCasting.h" #include "Common/XTPFramework.h" #include "Common/XTPSystemHelpers.h" #include "Common/Base/Types/XTPSize.h" #include "Markup/XTPMarkupTools.h" #include "Markup/XTPMarkupObject.h" #include "Markup/XTPMarkupInputElement.h" #include "Markup/XTPMarkupFrameworkContentElement.h" #include "Markup/Text/XTPMarkupTextElement.h" #include "Markup/Text/XTPMarkupInline.h" #include "Markup/Text/XTPMarkupSpan.h" #include "Markup/Text/XTPMarkupInlineCollection.h" #include "Markup/XTPMarkupIIDs.h" #include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" #ifdef _DEBUG # undef THIS_FILE static char THIS_FILE[] = __FILE__; # define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////////// // CXTPMarkupSpan IMPLEMENT_MARKUPCLASS(L"Span", CXTPMarkupSpan, CXTPMarkupInline); void CXTPMarkupSpan::RegisterMarkupClass() { } CXTPMarkupSpan::CXTPMarkupSpan() { m_pInlines = new CXTPMarkupInlineCollection(); m_pInlines->SetLogicalParent(this); } CXTPMarkupSpan::~CXTPMarkupSpan() { if (m_pInlines) { m_pInlines->SetLogicalParent(NULL); m_pInlines->Release(); } } void CXTPMarkupSpan::SetContentObject(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pContent) { m_pInlines->SetContentObject(pBuilder, pContent); } BOOL CXTPMarkupSpan::HasContentObject() const { return m_pInlines->HasContentObject(); } BOOL CXTPMarkupSpan::AllowWhiteSpaceContent() const { return TRUE; } CXTPMarkupInline* CXTPMarkupSpan::GetFirstInline() const { return m_pInlines->GetCount() > 0 ? m_pInlines->GetInline(0)->GetFirstInline() : (CXTPMarkupInline*)this; } ///////////////////////////////////////////////////////////////////////// // Span #include "Common/Base/Diagnostic/XTPBeginAfxMap.h" BEGIN_DISPATCH_MAP(CXTPMarkupSpan, CXTPMarkupInline) DISP_PROPERTY_EX_ID(CXTPMarkupSpan, "Inlines", 700, OleGetInlines, SetNotSupported, VT_DISPATCH) END_DISPATCH_MAP() #include "Common/Base/Diagnostic/XTPEndAfxMap.h" #ifdef _XTP_ACTIVEX BEGIN_INTERFACE_MAP(CXTPMarkupSpan, CXTPMarkupInline) INTERFACE_PART(CXTPMarkupSpan, XTPDIID_MarkupSpan, Dispatch) END_INTERFACE_MAP() IMPLEMENT_OLETYPELIB_EX(CXTPMarkupSpan, XTPDIID_MarkupSpan) #endif LPDISPATCH CXTPMarkupSpan::OleGetInlines() { return XTPGetDispatch(GetInlines()); }