本文整理汇总了C++中Statement::SetSelected方法的典型用法代码示例。如果您正苦于以下问题:C++ Statement::SetSelected方法的具体用法?C++ Statement::SetSelected怎么用?C++ Statement::SetSelected使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Statement
的用法示例。
在下文中一共展示了Statement::SetSelected方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Execute
void Select::Execute()
{
Input *pIn = pManager->GetInput();
Output *pOut = pManager->GetOutput();
Statement *SelectedStatement;
Connector* SelectedConnector;
int Type;
SelectedStatement = pManager->GetStatement(this->Position, Type);
SelectedConnector = pManager->GetConnector(this->Position);
if (SelectedStatement != NULL || SelectedConnector != NULL)
{
if (SelectedStatement)
{
SelectedStatement->SetSelected(!SelectedStatement->IsSelected());
pManager->UpdateSelectedStatements(SelectedStatement);
}
else
{
SelectedConnector->SetSelected(!SelectedConnector->IsSelected());
pManager->UpdateSelectedConnectors(SelectedConnector);
}
}
if (pManager->GetSelectedStatements().size() == 1)
pManager->GetOutput()->PrintMessage(pManager->GetSelectedStatements().front()->GetComment());
else
pManager->GetOutput()->PrintMessage("");
pManager->UpdateInterface();
}
示例2: Execute
void Paste::Execute()
{
Input *pIn = pManager->GetInput();
Output *pOut = pManager->GetOutput();
ReadActionParameters();
if (FlagToPaste == true) //Check that the user had already chosen Copy Or Cut to execute Paste action
{
//Get the List of Copied or Cut Statements
list<Statement*> CopiedOrCutStatements = pManager->GetCopiedOrCutStatements();
//If they are Copied
if (CopiedOrCutStatements.front()->GetCopiedOrCut() == 1) //Copy Action
{
Point LeftCornerUp, LeftCornerDown, RightCornerUp, RightCornerDown;
//Get First Copied statement type to help in calculating dx & dy
int Type = CopiedOrCutStatements.front()->GetStatementType();
//Get 4 corners of the point based on its type;
pManager->GetCorners(P, Type, LeftCornerUp, LeftCornerDown, RightCornerUp, RightCornerDown);
int dx, dy;
//Calculate dx and dy due to the first selectes statement
dx = LeftCornerUp.x - CopiedOrCutStatements.front()->GetLeftCorner().x;
dy = LeftCornerUp.y - CopiedOrCutStatements.front()->GetLeftCorner().y;
//Add New Statements to this list
list<Statement*> NewStatements;
for (list<Statement*>::iterator it = CopiedOrCutStatements.begin(); it != CopiedOrCutStatements.end(); it++)
{
Statement* NewStatement;
//Get Type of each statement
Type = (*it)->GetStatementType();
Point NewStatementPoint = (*it)->GetLeftCorner();
//This should be the new point for the current statement after copying
NewStatementPoint.x += dx;
NewStatementPoint.y += dy;
//Create New statement of the same type
//Types:
// 0 StartEnd
// 1 SMPLAssignment
// 2 VARAssignment
// 3 Conditional
// 4 Read Write
switch (Type)
{
//No case 0 because we will never have 0 type statements (Start End)
//"Start and End" are not copied
case 1:
NewStatement = new SmplAssign(*((SmplAssign*)(*it)));
break;
case 2:
NewStatement = new VariableAssign(*((VariableAssign*)(*it)));
break;
case 3:
NewStatement = new Conditional(*((Conditional*)(*it)));
((Conditional*)(NewStatement))->SetpConnL(NULL);
break;
case 4:
NewStatement = new ReadWrite(*((ReadWrite*)(*it)));
break;
}
Statement::IncrementIDCounter();
NewStatement->SetID(Statement::GetIDCounter());
NewStatement->SetLeftCorner(NewStatementPoint);
NewStatement->SetSelected(false);
NewStatement->SetCopiedOrCut(0);
NewStatement->UpdatePoints();
NewStatement->SetpConn(NULL);
//Dummy variable
bool tt;
//Check validity of point
if (pManager->IsOutOfBounds(NewStatement, tt, tt, tt, tt) || pManager->IsOverlapping(NewStatement))
{
//Print Error Message
pOut->PrintMessage("Unsuitable point for copying. Action terminated! Press any key to continue");
//Remove all new statements
for (list<Statement*>::iterator it2 = NewStatements.begin(); it2 != NewStatements.end(); it2++)
{
delete (*it2);
}
NewStatements.clear();
//Wait for key press
pIn->GetPointClicked(P);
pOut->PrintMessage("");
return;
}
//Statement position is okay, add it
NewStatements.push_back(NewStatement);
}
//All statements don't overlap, add them to Statements list
//.........这里部分代码省略.........