Esempio n. 1
0
void Triangle::SetPoints(const Point& A, const Point& B, const Point& C) {
    _pointA = A.GetPosition();
    _pointB = B.GetPosition();
    _pointC = C.GetPosition();
    CalculateDimensions();
    CalculateArea();
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
Triangle& Triangle::operator=(const Triangle& rhs) {
    if(this == &rhs) return *this;

    Shape::operator=(rhs);
    CalculateDimensions();
    CalculateArea();

    return *this;
}
Esempio n. 4
0
AUI_ERRCODE aui_Header::RemoveChild( uint32 itemId )
{
	AUI_ERRCODE errcode = aui_SwitchGroup::RemoveChild( itemId );

	CalculateDimensions();
	RepositionSwitches();

	return errcode;
}
Esempio n. 5
0
AUI_ERRCODE aui_Header::AddChild( aui_Region *child )
{
	AUI_ERRCODE errcode = aui_SwitchGroup::AddChild( child );

	CalculateDimensions();
	RepositionSwitches();

	return errcode;
}
Esempio n. 6
0
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();
}
Esempio n. 7
0
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;
}
Esempio n. 8
0
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;
}
Esempio n. 9
0
Triangle::Triangle(const Triangle& triangle) : Shape(triangle), _pointA(triangle.GetPointA()), _pointB(triangle.GetPointB()), _pointC(triangle.GetPointC()) {
    _type = Shape::SHAPETYPE_TRIANGLE;
    CalculateDimensions();
    CalculateArea();
}
Esempio n. 10
0
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;
}