Пример #1
0
void CTabsDlg::SetX(long selected)
{
	if (selected)
	{
		float x;

		if (selected == -3)
		{
			m_textPara->GetRightIndent(&x);
		}
		else if (selected == -2)
		{
			m_textPara->GetFirstLineIndent(&x);
		}
		else if (selected == -1)
		{
			m_textPara->GetLeftIndent(&x);
		}
		else	// Tab
		{
			m_textPara->GetTab(selected-1, &x, NULL, NULL);
		}

		SetDlgItemValue(m_hWnd, IDC_TABS_X, x, UNIT_PT);
	}
	else
	{
		SetDlgItemText(IDC_TABS_X, "");
	}
}
Пример #2
0
void CStrokeDlg::SetControlValues()
{
	// Weight
	{
		double strokeWeight = tomUndefined;
		for (int i = 0; i < m_targetObjects.GetSize(); i++)
		{
			CComPtr<IPDStrokeSettings> stroke = m_targetObjects[i];

			double strokeWeight2;
			stroke->get_strokeWeight(&strokeWeight2);

			if (i == 0)
			{
				strokeWeight = strokeWeight2;
			}
			else if (strokeWeight != strokeWeight2)
			{
				strokeWeight = tomUndefined;
				break;
			}
		}

		if (strokeWeight != tomUndefined)
			SetDlgItemValue(m_hWnd, IDC_STROKE_WEIGHT, strokeWeight, UNIT_PT);
		else
			SetDlgItemText(IDC_STROKE_WEIGHT, "");
	}

	// Cap
	{
		long strokeCap = tomUndefined;
		for (int i = 0; i < m_targetObjects.GetSize(); i++)
		{
			CComPtr<IPDStrokeSettings> stroke = m_targetObjects[i];

			long strokeCap2;
			stroke->get_strokeCap(&strokeCap2);

			if (i == 0)
			{
				strokeCap = strokeCap2;
			}
			else if (strokeCap != strokeCap2)
			{
				strokeCap = tomUndefined;
				break;
			}
		}

		CheckRadioButton(IDC_STROKE_CAP0, IDC_STROKE_CAP2, IDC_STROKE_CAP0+strokeCap);
	}

	// Join
	{
		double strokeJoin = tomUndefined;
		for (int i = 0; i < m_targetObjects.GetSize(); i++)
		{
			CComPtr<IPDStrokeSettings> stroke = m_targetObjects[i];

			long strokeJoin2;
			stroke->get_strokeJoin(&strokeJoin2);

			if (i == 0)
			{
				strokeJoin = strokeJoin2;
			}
			else if (strokeJoin != strokeJoin2)
			{
				strokeJoin = tomUndefined;
				break;
			}
		}

		CheckRadioButton(IDC_STROKE_JOIN0, IDC_STROKE_JOIN2, IDC_STROKE_JOIN0+strokeJoin);
	}

	// MiterLimit
	{
		double miterLimit = tomUndefined;
		for (int i = 0; i < m_targetObjects.GetSize(); i++)
		{
			CComPtr<IPDStrokeSettings> stroke = m_targetObjects[i];

			double miterLimit2;
			stroke->get_strokeMiterLimit(&miterLimit2);

			if (i == 0)
			{
				miterLimit = miterLimit2;
			}
			else if (miterLimit != miterLimit2)
			{
				miterLimit = tomUndefined;
				break;
			}
		}


		if (miterLimit != tomUndefined)
			SetDlgItemInt(IDC_STROKE_MITERLIMIT, miterLimit);
		else
			SetDlgItemText(IDC_STROKE_MITERLIMIT, "");
	}

// Dashes
	{
		double dashValues[6];
		long dashedCount = 0;

		for (int i = 0; i < m_targetObjects.GetSize(); i++)
		{
			CComPtr<IPDStrokeSettings> stroke = m_targetObjects[i];

			long dashedCount2;
			stroke->get_dashedCount(&dashedCount2);

			if (i == 0)
			{
				dashedCount = dashedCount2;
			}
			else if (dashedCount != dashedCount2)
			{
				dashedCount = 0;
				break;
			}

			for (int j = 0; j < dashedCount2; j++)
			{
				double value2;
				stroke->getDashedValue(j, &value2);
				if (i == 0)
				{
					dashValues[j] = value2;
				}
				else if (dashValues[j] != value2)
				{
					break;
				}
			}

			if (j < dashedCount2)
			{
				dashedCount = 0;
				break;
			}
		}

		for (i = 0; i < 6; i++)
		{
			if (i < dashedCount)
				SetDlgItemValue(m_hWnd, IDC_STROKE_DASHED0+i, dashValues[i], UNIT_PT);
			else
				SetDlgItemText(IDC_STROKE_DASHED0+i, "");
		}
	}
}