本文整理汇总了C++中TXshColumn::getCellColumn方法的典型用法代码示例。如果您正苦于以下问题:C++ TXshColumn::getCellColumn方法的具体用法?C++ TXshColumn::getCellColumn怎么用?C++ TXshColumn::getCellColumn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TXshColumn
的用法示例。
在下文中一共展示了TXshColumn::getCellColumn方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setCell
bool TXsheet::setCell(int row, int col, const TXshCell &cell) {
if (row < 0 || col < 0) return false;
bool wasColumnEmpty = isColumnEmpty(col);
TXshCellColumn *cellColumn;
if (!cell.isEmpty()) {
TXshLevel *level = cell.m_level.getPointer();
assert(level);
int levelType = level->getType();
TXshColumn::ColumnType type = TXshColumn::eLevelType;
if (levelType == SND_XSHLEVEL)
type = TXshColumn::eSoundType;
else if (levelType == SND_TXT_XSHLEVEL)
type = TXshColumn::eSoundTextType;
else if (levelType == PLT_XSHLEVEL)
type = TXshColumn::ePaletteType;
else if (levelType == ZERARYFX_XSHLEVEL)
type = TXshColumn::eZeraryFxType;
else if (levelType == MESH_XSHLEVEL)
type = TXshColumn::eMeshType;
cellColumn = touchColumn(col, type)->getCellColumn();
} else {
TXshColumn *column = getColumn(col);
cellColumn = column ? column->getCellColumn() : 0;
}
if (!cellColumn || cellColumn->isLocked()) return false;
cellColumn->setXsheet(this);
if (!cellColumn->setCell(row, cell)) {
if (wasColumnEmpty) {
removeColumn(col);
insertColumn(col);
}
return false;
}
TFx *fx = cellColumn->getFx();
if (wasColumnEmpty && fx && fx->getOutputConnectionCount() == 0 &&
cellColumn->getPaletteColumn() == 0)
getFxDag()->addToXsheet(fx);
if (cell.isEmpty())
updateFrameCount();
else if (row >= m_imp->m_frameCount)
m_imp->m_frameCount = row + 1;
TNotifier::instance()->notify(TXsheetChange());
return true;
}
示例2: setCells
//
// xsheet <- cells
//
void CellsMover::setCells(const std::vector<TXshCell> &cells, int r,
int c) const {
TXsheet *xsh = getXsheet();
for (int i = 0; i < m_colCount; i++) {
TXshColumn *column = xsh->getColumn(c + i);
if (column) // skip if columns is locked or doesn't support cells operation
if (column->getCellColumn() == 0 || column->isLocked()) continue;
xsh->setCells(r, c + i, m_rowCount, &cells[m_rowCount * i]);
}
}
示例3: moveCells
//
// xsheet <- m_cells; insert cells if qualifiers contain eInsertCells
//
void CellsMover::moveCells(const TPoint &pos) const {
int r = pos.y;
int c = pos.x;
TXsheet *xsh = getXsheet();
if (m_qualifiers & eInsertCells) {
for (int i = 0; i < m_colCount; i++) {
TXshColumn *column = xsh->getColumn(c + i);
if (column) {
if (column->getCellColumn() == 0 || column->isLocked()) continue;
xsh->insertCells(r, c + i, m_rowCount);
}
}
}
setCells(m_cells, r, c);
}
示例4: restoreColumns
void CellsMover::restoreColumns(int c) const {
std::set<int> ii;
for (int i = 0; i < m_colCount; i++) ii.insert(c + i);
TXsheet *xsh = getXsheet();
for (int i = 0; i < m_colCount; i++) xsh->removeColumn(c);
std::list<int> restoredSplineIds;
m_columnsData->restoreObjects(
ii, restoredSplineIds, xsh,
StageObjectsData::eDoClone | StageObjectsData::eResetFxDagPositions);
for (int i = 0; i < m_colCount; i++) {
TXshColumn *column = xsh->getColumn(c + i);
if (!column) continue;
TXshCellColumn *cellColumn = column->getCellColumn();
if (!cellColumn) continue;
int r0 = 0, r1 = -1;
cellColumn->getRange(r0, r1);
if (r0 <= r1) cellColumn->clearCells(r0, r1 - r0 + 1);
}
}