/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #include "DgTableElementProperties.h" //----------------------------------------------------------------------------------------------------------------------- // class: OdDgTableElement //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: AnnotationScaleFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementAnnotationScaleFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getAnnotationScaleFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementAnnotationScaleFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setAnnotationScaleFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: AnnotationScale //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementAnnotationScaleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getAnnotationScale(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementAnnotationScaleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setAnnotationScale(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Origin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementOriginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOrigin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementOriginProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setOrigin(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Rotation //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRotationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRotation(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRotationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRotation(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Width //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementWidthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getWidth(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Height //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementHeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultRowHeight //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultRowHeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDefaultRowHeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultColumnWidth //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultColumnWidthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDefaultColumnWidth(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultTextSize //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextSizeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDefaultTextSize(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: CellTopMargin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellTopMarginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCellTopMargin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: CellBottomMargin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellBottomMarginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCellBottomMargin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: CellLeftMargin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellLeftMarginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCellLeftMargin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: CellRightMargin //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellRightMarginProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCellRightMargin(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: OddFillColorFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementOddFillColorFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getOddFillColorFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementOddFillColorFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setOddFillColorFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EvenFillColorFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementEvenFillColorFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getEvenFillColorFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementEvenFillColorFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setEvenFillColorFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: OddFillColor //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementOddFillColorProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getOddFillColor(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getOddFillColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementOddFillColorProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); switch (pColor->colorMethod()) { case OdCmEntityColor::kByLayer: pObj->setOddFillColor(OdDg::kColorByLevel); break; case OdCmEntityColor::kByBlock: pObj->setOddFillColor(OdDg::kColorByCell); break; case OdCmEntityColor::kByACI: pObj->setOddFillColor(pColor->colorIndex()); break; //??? case OdCmEntityColor::kByDgnIndex: pObj->setOddFillColor(pColor->colorIndex()); break; case OdCmEntityColor::kByPen: pObj->setOddFillColor(pColor->colorIndex()); break; //??? case OdCmEntityColor::kByColor: { ODCOLORREF curColor = ODRGB(pColor->red(), pColor->green(), pColor->blue()); pObj->setOddFillColor(curColor); } } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: EvenFillColor //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementEvenFillColorProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getEvenFillColor(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getEvenFillColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementEvenFillColorProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); switch (pColor->colorMethod()) { case OdCmEntityColor::kByLayer: pObj->setEvenFillColor(OdDg::kColorByLevel); break; case OdCmEntityColor::kByBlock: pObj->setEvenFillColor(OdDg::kColorByCell); break; case OdCmEntityColor::kByACI: pObj->setEvenFillColor(pColor->colorIndex()); break; //??? case OdCmEntityColor::kByDgnIndex: pObj->setEvenFillColor(pColor->colorIndex()); break; case OdCmEntityColor::kByPen: pObj->setEvenFillColor(pColor->colorIndex()); break; //??? case OdCmEntityColor::kByColor: { ODCOLORREF curColor = ODRGB(pColor->red(), pColor->green(), pColor->blue()); pObj->setEvenFillColor(curColor); } } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TitleRowCount //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTitleRowCountProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTitleRowCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTitleRowCountProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setTitleRowCount(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HeaderRowCount //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementHeaderRowCountProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHeaderRowCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementHeaderRowCountProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setHeaderRowCount(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FooterRowCount //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementFooterRowCountProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFooterRowCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementFooterRowCountProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setFooterRowCount(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FirstColumnsCount //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementFirstColumnsCountProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFirstColumnsCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementFirstColumnsCountProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setFirstColumnsCount(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LastColumnsCount //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementLastColumnsCountProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLastColumnsCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementLastColumnsCountProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLastColumnsCount(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: BodyTextStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementBodyTextStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; //value = pObj->getBodyTextStyle(); OdDgDatabasePtr pDb = pObj->database(); OdDgTextStyleTablePtr pTextStyleTable = pDb->getTextStyleTable(OdDg::kForWrite); OdUInt32 textStyleId = pObj->getBodyTextStyle(); value = pTextStyleTable->getAt(textStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- /* OdResult OdDgTableElementBodyTextStyleProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setBodyTextStyle(*rxvalue_cast(&value)); return eOk; }*/ //----------------------------------------------------------------------------------------------------------------------- // property: TitleRowTextStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTitleRowTextStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgDatabasePtr pDb = pObj->database(); OdDgTextStyleTablePtr pTextStyleTable = pDb->getTextStyleTable(OdDg::kForWrite); OdUInt32 textStyleId = pObj->getTitleRowTextStyle(); value = pTextStyleTable->getAt(textStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: HeaderRowTextStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementHeaderRowTextStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgDatabasePtr pDb = pObj->database(); OdDgTextStyleTablePtr pTextStyleTable = pDb->getTextStyleTable(OdDg::kForWrite); OdUInt32 textStyleId = pObj->getHeaderRowTextStyle(); value = pTextStyleTable->getAt(textStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FooterRowTextStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementFooterRowTextStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgDatabasePtr pDb = pObj->database(); OdDgTextStyleTablePtr pTextStyleTable = pDb->getTextStyleTable(OdDg::kForWrite); OdUInt32 textStyleId = pObj->getFooterRowTextStyle(); value = pTextStyleTable->getAt(textStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FirstColumnTextStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementFirstColumnTextStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgDatabasePtr pDb = pObj->database(); OdDgTextStyleTablePtr pTextStyleTable = pDb->getTextStyleTable(OdDg::kForWrite); OdUInt32 textStyleId = pObj->getFirstColumnTextStyle(); value = pTextStyleTable->getAt(textStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LastColumnTextStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementLastColumnTextStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgDatabasePtr pDb = pObj->database(); OdDgTextStyleTablePtr pTextStyleTable = pDb->getTextStyleTable(OdDg::kForWrite); OdUInt32 textStyleId = pObj->getLastColumnTextStyle(); value = pTextStyleTable->getAt(textStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TableColor //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTableColorProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getTableColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getTableColorIndex(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTableColorProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); OdUInt32 tableLineStyle = pObj->getTableLineStyle(); OdUInt32 tableLineWeight = pObj->getTableLineWeight(); switch (pColor->colorMethod()) { case OdCmEntityColor::kByLayer: pObj->setTableSymbology(OdDg::kColorByLevel, tableLineStyle, tableLineWeight); break; case OdCmEntityColor::kByBlock: pObj->setTableSymbology(OdDg::kColorByCell, tableLineStyle, tableLineWeight); break; case OdCmEntityColor::kByACI: pObj->setTableSymbology(pColor->colorIndex(), tableLineStyle, tableLineWeight); break; //??? case OdCmEntityColor::kByDgnIndex: pObj->setTableSymbology(pColor->colorIndex(), tableLineStyle, tableLineWeight); break; case OdCmEntityColor::kByPen: pObj->setTableSymbology(pColor->colorIndex(), tableLineStyle, tableLineWeight); break; //??? case OdCmEntityColor::kByColor: { ODCOLORREF curColor = ODRGB(pColor->red(), pColor->green(), pColor->blue()); pObj->setTableSymbology(curColor, tableLineStyle, tableLineWeight); } } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TableLineStyle //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTableLineStyleProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdDgDatabasePtr pDb = pObj->database(); OdDgLineStyleTablePtr pLineStyleTable = pDb->getLineStyleTable(OdDg::kForWrite); OdUInt32 lineStyleId = pObj->getTableLineStyle(); value = pLineStyleTable->getAt(lineStyleId); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TableLineWeight //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTableLineWeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTableLineWeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTableLineWeightProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdUInt32 tableLineWeight = *rxvalue_cast(&value); OdUInt32 curColor = pObj->getTableColorIndex(); OdUInt32 tableLineStyle = pObj->getTableLineStyle(); pObj->setTableSymbology(curColor, tableLineStyle, tableLineWeight); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultTextColorFromTable //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextColorFromTableProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isDefaultTextColorFromTable(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextColorFromTableProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; bool isDefaultTextColorFromTableFlag = *rxvalue_cast(&value); pObj->setDefaultTextColorIndex(pObj->getDefaultTextColorIndex(), isDefaultTextColorFromTableFlag); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultTextColor //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextColorProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getDefaultTextColorIndex(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getDefaultTextColorIndex(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextColorProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); bool isDefaultTextColorFromTableFlag = pObj->isDefaultTextColorFromTable(); switch (pColor->colorMethod()) { case OdCmEntityColor::kByLayer: pObj->setDefaultTextColorIndex(OdDg::kColorByLevel, isDefaultTextColorFromTableFlag); break; case OdCmEntityColor::kByBlock: pObj->setDefaultTextColorIndex(OdDg::kColorByCell, isDefaultTextColorFromTableFlag); break; case OdCmEntityColor::kByACI: pObj->setDefaultTextColorIndex(pColor->colorIndex(), isDefaultTextColorFromTableFlag); break; //??? case OdCmEntityColor::kByDgnIndex: pObj->setDefaultTextColorIndex(pColor->colorIndex(), isDefaultTextColorFromTableFlag); break; case OdCmEntityColor::kByPen: pObj->setDefaultTextColorIndex(pColor->colorIndex(), isDefaultTextColorFromTableFlag); break; //??? case OdCmEntityColor::kByColor: { ODCOLORREF curColor = ODRGB(pColor->red(), pColor->green(), pColor->blue()); pObj->setDefaultTextColorIndex(curColor, isDefaultTextColorFromTableFlag); } } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultTextLineWeightFromTable //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextLineWeightFromTableProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->isDefaultTextLineWeightFromTable(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextLineWeightFromTableProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; bool isDefaultTextLineWeightFromTableFlag = *rxvalue_cast(&value); pObj->setDefaultTextLineWeight(pObj->getDefaultTextLineWeight(), isDefaultTextLineWeightFromTableFlag); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: DefaultTextLineWeight //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextLineWeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getDefaultTextLineWeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementDefaultTextLineWeightProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setDefaultTextLineWeight(*rxvalue_cast(&value), pObj->isDefaultTextLineWeightFromTable()); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: BreakType //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementBreakTypeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBreakType(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementBreakTypeProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setBreakType(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SubTablePosition //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementSubTablePositionProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSubTablePosition(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementSubTablePositionProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSubTablePosition(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: BreakHeight //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementBreakHeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBreakHeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementBreakHeightProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setBreakHeight(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: SubTableSpacing //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementSubTableSpacingProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getSubTableSpacing(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementSubTableSpacingProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setSubTableSpacing(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RepeatHeadersFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRepeatHeadersFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRepeatHeadersFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRepeatHeadersFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRepeatHeadersFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RepeatFootersFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRepeatFootersFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRepeatFootersFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRepeatFootersFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRepeatFootersFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TablePrototypeIndex //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementTablePrototypeIndexProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTablePrototypeIndex(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Merges //----------------------------------------------------------------------------------------------------------------------- ODDG_DEFINE_RX_VALUE_ARRAY_ITERATOR(OdDgTableElementMerge); OdRxValueIteratorPtr OdDgTableElementMergesProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; res = OdRxObjectImpl::createObject(); OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (!pObj.isNull()) { OdArray arrObjects; const OdUInt32 objCount = pObj->getMergeCount(); for (OdUInt32 i = 0; i < objCount; i++) { OdDgTableElementMerge tableMerge = pObj->getMerge(i); arrObjects.push_back(tableMerge); } ((OdRxOdDgTableElementMergeValueIterator*)res.get())->init(arrObjects, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementMergesProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->getMergeCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementMergesProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getMerge((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementMergesProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setMerge((OdUInt32)index, *rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementMergesProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->addMerge(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementMergesProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->deleteMerge((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Rows //----------------------------------------------------------------------------------------------------------------------- ODDG_DEFINE_RX_VALUE_ARRAY_ITERATOR(OdRxObjectPtr); OdRxValueIteratorPtr OdDgTableElementRowsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return res; res = OdRxObjectImpl::createObject(); if (!pObj.isNull()) { OdArray arrRows; for (OdUInt32 i = 0; i < pObj->getRowCount(); i++) { OdDgTableRowElementPtr pCurRow = pObj->getRow(i); if (pCurRow.isNull()) continue; arrRows.push_back(pCurRow); } ((OdRxOdRxObjectPtrValueIterator*)res.get())->init(arrRows, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRowsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->getRowCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRowsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index >= pObj->getRowCount()) return eInvalidIndex; OdRxObjectPtr pRet = pObj->getRow((OdUInt32)index); value = pRet; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRowsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { return eNotImplementedYet; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRowsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index > pObj->getRowCount()) return eInvalidIndex; pObj->addRow((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRowsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index >= pObj->getRowCount()) return eInvalidIndex; pObj->deleteRow((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementRowsProperty::subChildren(OdArray& children) const { return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Columns //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgTableElementColumnsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return res; res = OdRxObjectImpl::createObject(); if (!pObj.isNull()) { OdArray arrColumns; for (OdUInt32 i = 0; i < pObj->getColumnCount(); i++) { OdDgTableColumnElementPtr pCurColumn = pObj->getColumn(i); if (pCurColumn.isNull()) continue; arrColumns.push_back(pCurColumn); } ((OdRxOdRxObjectPtrValueIterator*)res.get())->init(arrColumns, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementColumnsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->getColumnCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementColumnsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index >= pObj->getColumnCount()) return eInvalidIndex; OdRxObjectPtr pRet = pObj->getColumn((OdUInt32)index); value = pRet; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementColumnsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { return eNotImplementedYet; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementColumnsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index > pObj->getColumnCount()) return eInvalidIndex; pObj->addColumn((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementColumnsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index >= pObj->getColumnCount()) return eInvalidIndex; pObj->deleteColumn((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementColumnsProperty::subChildren(OdArray& children) const { return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Cells //----------------------------------------------------------------------------------------------------------------------- OdRxValueIteratorPtr OdDgTableElementCellsProperty::subNewValueIterator(const OdRxObject* pO) const { OdRxValueIteratorPtr res; OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return res; res = OdRxObjectImpl::createObject(); if (!pObj.isNull()) { OdArray arrCells; for (OdUInt32 i = 0; i < pObj->getRowCount(); i++) { for (OdUInt32 j = 0; j < pObj->getColumnCount(); j++) { OdDgTableCellElementPtr pCurCell = pObj->getCell(i, j); if (pCurCell.isNull()) continue; arrCells.push_back(pCurCell); } } ((OdRxOdRxObjectPtrValueIterator*)res.get())->init(arrCells, 0); } return res; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellsProperty::subTryGetCount(const OdRxObject* pO, int& count) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; count = pObj->getRowCount() * pObj->getColumnCount(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- /* OdResult OdDgTableElementCellsProperty::subGetValue(const OdRxObject* pO, int index, OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index >= pObj->getColumnCount()) return eInvalidIndex; OdRxObjectPtr pRet = pObj->getColumn((OdUInt32)index); value = pRet; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellsProperty::subSetValue(OdRxObject* pO, int index, const OdRxValue& value) const { return eNotImplementedYet; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellsProperty::subInsertValue(OdRxObject* pO, int index, const OdRxValue& value) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index > pObj->getColumnCount()) return eInvalidIndex; pObj->addColumn((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellsProperty::subRemoveValue(OdRxObject* pO, int index) const { OdDgTableElementPtr pObj = OdDgTableElement::cast(pO); if (pObj.isNull()) return eNotApplicable; if (index < 0 || (OdUInt32)index >= pObj->getColumnCount()) return eInvalidIndex; pObj->deleteColumn((OdUInt32)index); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableElementCellsProperty::subChildren(OdArray& children) const { return eOk; } */ //----------------------------------------------------------------------------------------------------------------------- // class: OdDgTableRowElementPtr //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: RowIndex //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrRowIndexProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRowIndex(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Height //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrHeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrHeightProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setHeight(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LockFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrLockFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLockFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrLockFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLockFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Width //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrWidthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getWidth(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TableRowType //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableRowElementPtrTableRowTypeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableRowElementPtr pObj = OdDgTableRowElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTableRowType(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgTableColumnElementPtr //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: TableColumnType //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrTableColumnTypeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTableColumnType(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ColumnIndex //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrColumnIndexProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getColumnIndex(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Width //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrWidthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getWidth(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrWidthProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setWidth(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LockFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrLockFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLockFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrLockFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLockFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Height //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableColumnElementPtrHeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableColumnElementPtr pObj = OdDgTableColumnElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // class: OdDgTableCellElementPtr //----------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------- // property: TableCellType //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTableCellTypeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTableCellType(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RowIndex //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrRowIndexProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRowIndex(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ColumnIndex //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrColumnIndexProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getColumnIndex(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: CellText //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrCellTextProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdRxObjectPtr pCellText = pObj->getCellText(); value = pCellText; return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: CellMarginType //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrCellMarginTypeProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getCellMarginType(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrCellMarginTypeProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setCellMarginType(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TextAlignment //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTextAlignmentProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTextAlignment(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTextAlignmentProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setTextAlignment(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TextOrientation //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTextOrientationProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTextOrientation(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTextOrientationProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setTextOrientation(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FillFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrFillFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getFillFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrFillFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setFillFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: ShowTextFlag //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrShowTextFlagProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getShowTextFlag(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrShowTextFlagProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setShowTextFlag(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: FillColor //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrFillColorProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; OdCmEntityColor cmColor; OdUInt32 uIndex = pObj->getFillColor(); if (uIndex == OdDg::kColorByLevel) cmColor.setColorMethod(OdCmEntityColor::kByLayer); else if (uIndex == OdDg::kColorByCell) cmColor.setColorMethod(OdCmEntityColor::kByBlock); else if (uIndex < 256) { OdCmEntityColor::setDgnColorIndex(&uIndex, (OdInt16)uIndex); cmColor.setColor(uIndex); } else { ODCOLORREF rgbColor = pObj->getFillColor(); cmColor.setColorMethod(OdCmEntityColor::kByColor); cmColor.setRed(ODGETRED(rgbColor)); cmColor.setGreen(ODGETGREEN(rgbColor)); cmColor.setBlue(ODGETBLUE(rgbColor)); } value = cmColor; return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrFillColorProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; const OdCmEntityColor* pColor = rxvalue_cast(&value); switch (pColor->colorMethod()) { case OdCmEntityColor::kByLayer: pObj->setFillColor(OdDg::kColorByLevel); break; case OdCmEntityColor::kByBlock: pObj->setFillColor(OdDg::kColorByCell); break; case OdCmEntityColor::kByACI: pObj->setFillColor(pColor->colorIndex()); break; //??? case OdCmEntityColor::kByDgnIndex: pObj->setFillColor(pColor->colorIndex()); break; case OdCmEntityColor::kByPen: pObj->setFillColor(pColor->colorIndex()); break; //??? case OdCmEntityColor::kByColor: { ODCOLORREF curColor = ODRGB(pColor->red(), pColor->green(), pColor->blue()); pObj->setFillColor(curColor); } } return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Width //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrWidthProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getWidth(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: Height //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrHeightProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getHeight(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TableElementId //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTableElementIdProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTableElementId(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: TopBorder //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTopBorderProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getTopBorder(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrTopBorderProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setTopBorder(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: BottomBorder //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrBottomBorderProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getBottomBorder(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrBottomBorderProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setBottomBorder(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: LeftBorder //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrLeftBorderProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getLeftBorder(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrLeftBorderProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setLeftBorder(*rxvalue_cast(&value)); return eOk; } //----------------------------------------------------------------------------------------------------------------------- // property: RightBorder //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrRightBorderProperty::subGetValue(const OdRxObject* pO, OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; value = pObj->getRightBorder(); return eOk; } //----------------------------------------------------------------------------------------------------------------------- OdResult OdDgTableCellElementPtrRightBorderProperty::subSetValue(OdRxObject* pO, const OdRxValue& value) const { OdDgTableCellElementPtr pObj = OdDgTableCellElement::cast(pO); if (pObj.isNull()) return eNotApplicable; pObj->setRightBorder(*rxvalue_cast(&value)); return eOk; } //-----------------------------------------------------------------------------------------------------------------------