#include "stdafx.h" #include "SigmaView.h" #include "SectionDoc.h" #include "ItemProportion.h" static CItemProportion * getItemProportion(CSigmaView * pView) { CItem * pItem = pView->GetItem(); if (pItem == NULL) return NULL; CItemProportion * proportionItem = dynamic_cast(pItem); return proportionItem; } extern "C" __declspec(dllexport) int CreateProportion(CSigmaView * pView) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; pItem->InsertProportion(); return 1; } extern "C" __declspec(dllexport) int Proportion_ChangeScale(CSigmaView * pView, double length) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeScale(length); } extern "C" __declspec(dllexport) int Proportion_ChangeScaleHeight(CSigmaView * pView, double height) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeScaleHeight(height); } extern "C" __declspec(dllexport) int Proportion_ChangeNumber(CSigmaView * pView, int number) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeNumber(number); } extern "C" __declspec(dllexport) int Proportion_ChangeShowMode(CSigmaView * pView, int mode) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeShowMode(mode); } extern "C" __declspec(dllexport) int Proportion_ChangeUnit(CSigmaView * pView, int unit) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeUnit(unit); } extern "C" __declspec(dllexport) int Proportion_ChangeColor(CSigmaView * pView, int r, int g, int b) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeColor(r, g, b); } extern "C" __declspec(dllexport) int Proportion_ChangeTextScale(CSigmaView * pView, double scale) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeTextScale(scale); } extern "C" __declspec(dllexport) int Proportion_ChangeAlign(CSigmaView * pView, int align) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeAlign(align); } extern "C" __declspec(dllexport) int Proportion_ChangeTextHeight(CSigmaView * pView, int height) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeTextHeight(height); } extern "C" __declspec(dllexport) int Proportion_ChangeTextWidth(CSigmaView * pView, int width) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeTextWidth(width); } extern "C" __declspec(dllexport) int Proportion_ChangeTextHeightAlone(CSigmaView * pView, int alone) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeTextHeightAlone(alone); } extern "C" __declspec(dllexport) int Proportion_ChangeCoordinate(CSigmaView * pView, double x, double y) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->ChangeCoordinate(x, y); } extern "C" __declspec(dllexport) int Proportion_Create(CSigmaView * pView) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->Add(); } extern "C" __declspec(dllexport) int Proportion_GetScale(CSigmaView * pView) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) return -1; return pItem->GetScale(); } extern "C" __declspec(dllexport) void Proportion_SetParameter(CSigmaView * pView, struct ProportionData * data) { CItemProportion * pItem = getItemProportion(pView); if (pItem == nullptr) { return; } pItem->SetParameter(data); } extern "C" __declspec(dllexport) int Proportion_GetData(CSigmaView * pView, struct ProportionData * data) { CItemProportion * pItem = getItemProportion(pView); if (pItem == NULL) { //data->ScaleFactor = pView->m_pDoc->GetDraw()->m_dScaleFactor; CUnit cu; double h = cu.Millimetres(pView->m_pDoc->GetDraw()->m_unit.cx); //根据1个实际单位的毫米长度 //1毫米代表的实际长度 double m_dScaleLength = pView->m_pDoc->GetDraw()->m_dScaleFactor / h; //转换为1厘米代表的实际长度 m_dScaleLength *= 10; m_dScaleLength = 2000; data->ScaleLength = m_dScaleLength; data->ColorR = 0; data->ColorG = 0; data->ColorB = 0; data->Unit = 2; data->TextSpace = 1; data->TextAlign = 1; data->TextScale = 1; return -1; } pItem->GetData(data); return 1; }