本文整理汇总了C++中PD_Document::getStruxOfTypeFromPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ PD_Document::getStruxOfTypeFromPosition方法的具体用法?C++ PD_Document::getStruxOfTypeFromPosition怎么用?C++ PD_Document::getStruxOfTypeFromPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PD_Document
的用法示例。
在下文中一共展示了PD_Document::getStruxOfTypeFromPosition方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setCurFrameProps
void AP_Dialog_FormatFrame::setCurFrameProps(void)
{
XAP_Frame * frame = m_pApp->getLastFocussedFrame();
if (!frame) {
if (m_bSensitive) {
m_bSensitive = false;
setAllSensitivities();
}
return;
}
FV_View * pView = static_cast<FV_View *>(frame->getCurrentView());
if (!pView) {
if (m_bSensitive) {
m_bSensitive = false;
setAllSensitivities();
}
return;
}
PT_DocPosition pos = pView->getPoint();
if (/* m_bSettingsChanged || */ m_iOldPos == pos) {
// comparing the actual cell pos would be even better; but who cares :)
return;
}
m_iOldPos = pos;
if (!pView->isInFrame(pos)) {
if (m_bSensitive) {
m_bSensitive = false;
setAllSensitivities();
}
return;
}
m_bLineToggled = false;
m_borderLineStyleRight = LS_NORMAL;
m_borderLineStyleLeft = LS_NORMAL;
m_borderLineStyleTop = LS_NORMAL;
m_borderLineStyleBottom = LS_NORMAL;
UT_RGBColor black(0,0,0);
UT_RGBColor white(255,255,255);
m_borderColor = black;
m_borderColorRight = black;
m_borderColorLeft = black;
m_borderColorTop = black;
m_borderColorBottom = black;
m_borderThicknessRight = 1.0f;
m_borderThicknessLeft = 1.0f;
m_borderThicknessTop = 1.0f;
m_borderThicknessBottom = 1.0f;
m_sBorderThickness = "1.00pt",
m_sBorderThicknessRight = "1.00pt";
m_sBorderThicknessLeft = "1.00pt";
m_sBorderThicknessTop = "1.00pt";
m_sBorderThicknessBottom = "1.00pt";
m_backgroundColor = white;
m_bSetWrapping = false;
m_iFramePositionTo = FL_FRAME_POSITIONED_TO_BLOCK;
PD_Document * pDoc = pView->getDocument();
PL_StruxDocHandle sdh;
m_bSensitive = false;
if (pDoc->getStruxOfTypeFromPosition(pos, PTX_SectionFrame, &sdh))
if (PT_AttrPropIndex api = pDoc->getAPIFromSDH(sdh)) {
const PP_AttrProp * pAP = 0;
if (pDoc->getAttrProp(api, &pAP))
if (pAP) {
m_bSensitive = true;
#define REPLACE_CELL_PROPERTY(X) \
do { \
const gchar * prop = 0; \
if (pAP->getProperty(X, prop)) \
m_vecProps.addOrReplaceProp(X, prop); \
else \
m_vecProps.removeProp(X); \
} while (0)
REPLACE_CELL_PROPERTY("right-style");
REPLACE_CELL_PROPERTY("left-style");
REPLACE_CELL_PROPERTY("top-style");
REPLACE_CELL_PROPERTY("bot-style");
REPLACE_CELL_PROPERTY("right-thickness");
REPLACE_CELL_PROPERTY("left-thickness");
//.........这里部分代码省略.........
示例2: calculateValue
bool fp_FieldTableSumCols::calculateValue(void)
{
FV_View * pView = _getView();
pf_Frag_Strux* tableSDH= NULL;
UT_sint32 numRows =0;
UT_sint32 numCols = 0;
bUseCurrency = false;
cCurrency = '$';
pf_Frag_Strux* sdh = getBlock()->getStruxDocHandle();
PD_Document * pDoc = getBlock()->getDocument();
if(pDoc->isPieceTableChanging())
{
return false;
}
if(getLine() == NULL)
{
return false;
}
fp_Container * pCol = getLine()->getColumn();
if(pCol == NULL)
{
return false;
}
fp_ShadowContainer * pShad =NULL;
fl_HdrFtrShadow * pShadL = NULL;
if(pCol->getContainerType() == FP_CONTAINER_COLUMN_SHADOW)
{
pShad = static_cast<fp_ShadowContainer *>(pCol);
pShadL = pShad->getShadow();
}
PT_DocPosition pos = pDoc->getStruxPosition(sdh)+1;
pDoc->getStruxOfTypeFromPosition(pos,PTX_SectionTable,&tableSDH);
pDoc-> getRowsColsFromTableSDH(tableSDH, pView->isShowRevisions(), pView->getRevisionLevel(), &numRows, &numCols);
UT_UTF8String sValF;
if(!pView->isInTable(pos))
{
sValF = "???";
return _setValue(sValF.ucs4_str().ucs4_str());
}
fl_CellLayout * pCell = NULL;
UT_sint32 myLeft,myRight,myTop,myBot;
pView->getCellParams(pos,&myLeft,&myRight,&myTop,&myBot);
UT_sint32 col = 0;
UT_sint32 row = myTop;
UT_sint32 lastCol = -1;
double dSum = 0.0;
for(col = 0; col < numCols; col++)
{
pf_Frag_Strux* sdhCell = pDoc->getCellSDHFromRowCol(tableSDH,true,99999,row,col);
UT_sint32 i = getBlock()->getDocLayout()->getLID();
fl_ContainerLayout* fmtCell = pDoc->getNthFmtHandle(sdhCell,i);
pCell = static_cast<fl_CellLayout *>(fmtCell);
if(pCell->getLeftAttach() == lastCol)
{
continue;
}
if((pCell->getTopAttach() == myTop) && (pCell->getLeftAttach() == myLeft))
{
continue;
}
UT_GrowBuf grText;
pCell->appendTextToBuf(grText);
if(grText.getLength() == 0)
{
fl_ContainerLayout * pC = pCell->getFirstLayout();
while(pC)
{
if(pC->getContainerType() == FL_CONTAINER_BLOCK)
{
fl_BlockLayout * pBL = static_cast<fl_BlockLayout *>(pC);
if(pShadL)
{
pBL = static_cast<fl_BlockLayout *>(pShadL->findMatchingContainer(pBL));
}
if(pBL == NULL)
{
continue;
}
fp_Run * pRun = pBL->getFirstRun();
while(pRun)
{
if(pRun->getType() == FPRUN_FIELD)
{
fp_FieldRun * pFRun = static_cast<fp_FieldRun *>(pRun);
const UT_UCS4Char * szVal = pFRun->getValue();
sValF.clear();
sValF.appendUCS4(szVal);
dSum += dGetVal(sValF.utf8_str());
pRun = NULL;
pC = NULL;
break;
}
pRun = pRun->getNextRun();
}
}
if(pC)
{
pC = pC->getNext();
//.........这里部分代码省略.........