void Triangle::SetPoints(const Point& A, const Point& B, const Point& C) { _pointA = A.GetPosition(); _pointB = B.GetPosition(); _pointC = C.GetPosition(); CalculateDimensions(); CalculateArea(); }
Triangle::Triangle(const Vector2D& pointOne, const Vector2D& pointTwo, const Vector2D& pointThree, const a2de::Color& color, bool filled) : Shape(), _pointA(pointOne), _pointB(pointTwo), _pointC(pointThree) { if(_pointA == _pointB || _pointA == _pointC || _pointB == _pointC || _pointA == _pointC) throw Exception("Points do not describe a triangle."); _type = Shape::SHAPETYPE_TRIANGLE; _color = color; _filled = filled; CalculateDimensions(); CalculateArea(); }
Triangle& Triangle::operator=(const Triangle& rhs) { if(this == &rhs) return *this; Shape::operator=(rhs); CalculateDimensions(); CalculateArea(); return *this; }
AUI_ERRCODE aui_Header::RemoveChild( uint32 itemId ) { AUI_ERRCODE errcode = aui_SwitchGroup::RemoveChild( itemId ); CalculateDimensions(); RepositionSwitches(); return errcode; }
AUI_ERRCODE aui_Header::AddChild( aui_Region *child ) { AUI_ERRCODE errcode = aui_SwitchGroup::AddChild( child ); CalculateDimensions(); RepositionSwitches(); return errcode; }
A2DE_BEGIN Triangle::Triangle(double x1, double y1, double x2, double y2, double x3, double y3, const a2de::Color& color, bool filled) : Shape(), _pointA(x1, y1), _pointB(x2, y2), _pointC(x3, y3) { if(_pointA == _pointB || _pointA == _pointC || _pointB == _pointC || _pointA == _pointC) throw Exception("Points do not describe a triangle."); _type = Shape::SHAPETYPE_TRIANGLE; _color = color; _filled = filled; CalculateDimensions(); CalculateArea(); }
HRESULT CFeedback::Init(FeedbackTypeId idType, bool bIsDisabled, bool bIsInherited, CString &csText, CArray<DrawSdk::DrawObject *, DrawSdk::DrawObject *> *pObjects, CInteractionAreaEx *pOkButton) { HRESULT hr = Init(idType, bIsDisabled, bIsInherited); if (SUCCEEDED(hr)) { m_csText = csText; if (!bIsDisabled && !bIsInherited) { // Note: more or less any combination of parameters is allowed here. // For example: bIsDisabled == true and pObjects->GetSize() > 0 is possible. // But this case here is an error. if (pObjects == NULL) // TODO require? || pOkButton == NULL) return E_POINTER; } //if (bIsInherited && pObjects != NULL && pObjects->GetSize() > 0) // _ASSERT(false); if (pObjects != NULL) { for (int i=0; i<pObjects->GetSize(); ++i) m_aObjects.Add(pObjects->GetAt(i)->Copy()); } if (pOkButton != NULL) m_pOkButton = pOkButton; // calculate bounding box from objects CArray<DrawSdk::DrawObject *, DrawSdk::DrawObject *> aObjectsDummy; aObjectsDummy.Append(m_aObjects); if (pOkButton != NULL) aObjectsDummy.Append(*(pOkButton->GetNormalObjects())); CalculateDimensions(&aObjectsDummy, &m_rcDimensions); // TODO (inconsistency): no "+2" here (see CMoveableObjects); which is better? CreateNameAndType(); m_bHiddenDuringEdit = true; m_bHiddenDuringPreview = true; } return hr; }
HRESULT CFeedback::Init(CFeedbackDefinition *pDefinition) { if (pDefinition == NULL) return E_POINTER; CString csType = pDefinition->GetType(); if (StringManipulation::StartsWith(csType, CString(_T("q-correct")))) m_idType = FEEDBACK_TYPE_Q_CORRECT; else if (StringManipulation::StartsWith(csType, CString(_T("q-wrong")))) m_idType = FEEDBACK_TYPE_Q_WRONG; else if (StringManipulation::StartsWith(csType, CString(_T("q-repeat")))) m_idType = FEEDBACK_TYPE_Q_REPEAT; else if (StringManipulation::StartsWith(csType, CString(_T("q-time")))) m_idType = FEEDBACK_TYPE_Q_TIME; else if (StringManipulation::StartsWith(csType, CString(_T("q-tries")))) m_idType = FEEDBACK_TYPE_Q_TRIES; else if (StringManipulation::StartsWith(csType, CString(_T("qq-passed")))) m_idType = FEEDBACK_TYPE_QQ_PASSED; else if (StringManipulation::StartsWith(csType, CString(_T("qq-failed")))) m_idType = FEEDBACK_TYPE_QQ_FAILED; else if (StringManipulation::StartsWith(csType, CString(_T("qq-eval")))) m_idType = FEEDBACK_TYPE_QQ_EVAL; else return E_INVALIDARG; m_bIsDisabled = pDefinition->IsDisabled(); m_csText = pDefinition->GetText(); // can be empty if (!m_bIsDisabled) { m_bIsInherited = pDefinition->IsInherited(); if (!m_bIsInherited) { pDefinition->ExtractObjects(&m_aObjects); // m_aObjects can be empty, eg for question feedback in the test/questionnaire (storing texts) //if (m_aObjects.GetSize() <= 0) // return E_INVALIDARG; // there must be some objects in this case CInteractionArea *pOldArea = pDefinition->ExtractOkButton(); if (pOldArea != NULL) { m_pOkButton = new CInteractionAreaEx(); HRESULT hr = m_pOkButton->Init(pOldArea, NULL, 0); // Note: CEditorDoc* and nInsertPositionMs hopefully (?) not necessary for this button. if (FAILED(hr)) delete m_pOkButton; // ignore error delete pOldArea; } } } // calculate bounding box from objects CArray<DrawSdk::DrawObject *, DrawSdk::DrawObject *> aObjectsDummy; aObjectsDummy.Append(m_aObjects); if (m_pOkButton != NULL) aObjectsDummy.Append(*(m_pOkButton->GetNormalObjects())); CalculateDimensions(&aObjectsDummy, &m_rcDimensions); // TODO (inconsistency): no "+2" here (see CMoveableObjects); which is better? m_bHiddenDuringEdit = true; m_bHiddenDuringPreview = true; CreateNameAndType(); return S_OK; }
Triangle::Triangle(const Triangle& triangle) : Shape(triangle), _pointA(triangle.GetPointA()), _pointB(triangle.GetPointB()), _pointC(triangle.GetPointC()) { _type = Shape::SHAPETYPE_TRIANGLE; CalculateDimensions(); CalculateArea(); }
AUI_ERRCODE TextBox::CreateRangers( MBCHAR *ldlBlock ) { AUI_ERRCODE errcode = AUI_ERRCODE_OK; MBCHAR *patternFilename = NULL; if (m_pattern) patternFilename = m_pattern->GetFilename(); static MBCHAR block[ k_AUI_LDL_MAXBLOCK + 1 ]; if ( ldlBlock ) { if ( m_header ) { RemoveChild( m_header->Id() ); delete m_header; m_header = NULL; } sprintf( block, "%s.%s", ldlBlock, k_AUI_LISTBOX_LDL_HEADER ); if (aui_Ldl::GetLdl()->FindDataBlock(block)) m_header = new aui_Header( &errcode, aui_UniqueId(), block ); } if ( !m_header ) m_header = new aui_Header( &errcode, aui_UniqueId(), 0, 0, 0, 0 ); Assert( AUI_NEWOK(m_header,errcode) ); if ( !AUI_NEWOK(m_header,errcode) ) return AUI_ERRCODE_MEMALLOCFAILED; AddChild( m_header ); ListPos position = m_header->ChildList()->GetHeadPosition(); for ( sint32 i = m_header->ChildList()->L(); i; i-- ) m_widthList->AddTail( m_header->ChildList()->GetNext( position )->Width() ); if ( ldlBlock ) { sprintf( block, "%s.%s", ldlBlock, k_AUI_LISTBOX_LDL_RANGERY ); if (aui_Ldl::GetLdl()->FindDataBlock(block)) m_verticalRanger = new c3_Ranger( &errcode, aui_UniqueId(), block, ListBoxRangerActionCallback, this ); } if ( !m_verticalRanger ) m_verticalRanger = new c3_Ranger( &errcode, aui_UniqueId(), 0, 0, 0, 0, AUI_RANGER_TYPE_SCROLLER, AUI_RANGER_ORIENTATION_VERTICAL, patternFilename, ListBoxRangerActionCallback, this ); Assert( AUI_NEWOK(m_verticalRanger,errcode) ); if ( !AUI_NEWOK(m_verticalRanger,errcode) ) return AUI_ERRCODE_MEMALLOCFAILED; AddChild( m_verticalRanger ); if ( ldlBlock ) { sprintf( block, "%s.%s", ldlBlock, k_AUI_LISTBOX_LDL_RANGERX ); if (aui_Ldl::GetLdl()->FindDataBlock(block)) m_horizontalRanger = new c3_Ranger( &errcode, aui_UniqueId(), block, ListBoxRangerActionCallback, this ); } if ( !m_horizontalRanger ) m_horizontalRanger = new c3_Ranger( &errcode, aui_UniqueId(), 0, 0, 0, 0, AUI_RANGER_TYPE_SCROLLER, AUI_RANGER_ORIENTATION_HORIZONTAL, patternFilename, ListBoxRangerActionCallback, this ); Assert( AUI_NEWOK(m_horizontalRanger,errcode) ); if ( !AUI_NEWOK(m_horizontalRanger,errcode) ) return AUI_ERRCODE_MEMALLOCFAILED; AddChild( m_horizontalRanger ); sint32 maxRangerSize = std::max(m_verticalRanger->Width(), m_horizontalRanger->Height()); if (maxRangerSize) SetRangerSize( maxRangerSize ); else RepositionRangers(); CalculateDimensions(); RepositionHeaderSwitches(); return AUI_ERRCODE_OK; }