#include "StdAfx.h" #include ".\itemframe.h" //#include "DFDrawProDoc.h" //#include "DFDrawProView.h" //#include "PropertiesSheet.h" CItemEditFrame::CItemEditFrame(CSigmaDoc * ppDoc) : CItemFocusRect(ppDoc) , m_pFrame(NULL) , color(0) , m_bBlackLine(FALSE) , m_dThickness(0) { SetType(ITEM_FRAME); } CItemEditFrame::~CItemEditFrame(void) { if(m_pFrame)delete m_pFrame; m_pFrame=NULL; } /* BOOL CItemEditFrame::InitPropertyGrid(CXTPPropertyGrid& grid) { if(this->IsEditState()) { COne* pOne=(COne*)GetDoc()->GetDraw()->GetAt(GetPos()); CFrame* pValue=(CFrame*)pOne->GetValue(); color=pOne->color; return InitPropertyGrid(grid, pValue); } return InitPropertyGrid(grid, m_pFrame); } BOOL CItemEditFrame::InitPropertyGrid(CXTPPropertyGrid& grid, CFrame* pValue) { if(pValue==NULL) return FALSE; CPropertyGridItemAdd ItemAdd(NULL); CString strFormat=GetFloatFormatString(); CXTPPropertyGridItem* pItem=grid.AddCategory(IDS_STRING_Frame); ItemAdd.SetItem(pItem); pItem->Expand(); m_rect.SetRect(pValue->x0,pValue->y0+pValue->m_size.cy,pValue->x0+pValue->m_size.cx,pValue->y0); ItemAdd.AddItemRect (IDS_GI_COORDINATE_RECT,m_rect, &m_rect); ItemAdd.AddItemSize8(IDS_STRING_SIZE, pValue->m_size, NULL, IDS_STRING_WIDTH, IDS_STRING_HEIGHT);//¸ß¿í CString name;if(!pValue->IsEmpty()) name=pValue->GetName(); m_bBlackLine=pValue->IsBlackLine(); pItem=ItemAdd.AddItemMark(IDS_GI_MARK_NAME, name, pValue->pDraw); pItem->SetReadOnly(m_bBlackLine); m_dThickness = GetUnitMode().toPrintUnit(pValue->thickness); ItemAdd.AddItemUnitDouble(IDS_GI_FRAME_THICKNESS, GetUnit(), m_dThickness, strFormat, &m_dThickness); ItemAdd.AddItemBool (IDS_GI_FRAME_BLACK, m_bBlackLine, &m_bBlackLine); ItemAdd.AddItemColor (IDS_GI_COLOR, color, NULL); CItem::InitPropertyGrid(grid); return TRUE; } BOOL CItemEditFrame::OnGridItemChangeValue(CXTPPropertyGridItem* pItem, CFrame* pValue) { if(pValue==NULL) return FALSE; COne* pOne=NULL; if(this->IsEditState()) pOne=(COne*)GetDoc()->GetDraw()->GetAt(GetPos()); BOOL bUpdate=FALSE; switch(pItem->GetID()) { case IDS_GI_COORDINATE_RECT: pValue->x0=m_rect.left; pValue->y0=m_rect.bottom; pValue->m_size.cx=m_rect.Width(); pValue->m_size.cy=fabs(m_rect.Height()); bUpdate=TRUE; break; case IDS_STRING_SIZE: pValue->m_size=((CCustomItemPoint*)pItem)->GetValuePoint(); { CCustomItemRect* pp=(CCustomItemRect*)((CXTPPropertyGridView*)(pItem->GetGrid()))->GetPropertyGrid()->FindItem(IDS_GI_COORDINATE_RECT); m_rect.SetRect(pValue->x0,pValue->y0+pValue->m_size.cy,pValue->x0+pValue->m_size.cx,pValue->y0); if(pp)pp->SetRectValue(m_rect); } bUpdate=TRUE; break; case IDS_GI_COLOR: color=atol(pItem->GetValue()); if(pOne) pOne->color=color; bUpdate=TRUE; break; case IDS_GI_FRAME_BLACK: pValue->EnableBlackLine(m_bBlackLine); { CXTPPropertyGridItem* pp=FindItem(pItem,IDS_GI_MARK_NAME); if(pp)pp->SetReadOnly(m_bBlackLine); } bUpdate=TRUE; break; case IDS_GI_MARK_NAME: { CString name=pItem->GetValue(); CString txt=pValue->GetName(); if(name.CollateNoCase(txt)!=0) { AfxGetGlobalMark()->BackupMark(); AfxGetGlobalMark()->SetMark(GetDoc()->GetDraw()->GetMark()); pValue->SetName(name); pValue->PositionNew(0); AfxGetGlobalMark()->RestoreMark(); } else bUpdate=FALSE; } bUpdate=TRUE; break; case IDS_GI_FRAME_THICKNESS: pValue->thickness = GetUnitMode().toRealUnit(m_dThickness); bUpdate=TRUE; break; } return bUpdate | CItem::OnGridItemChangeValue(pItem); } */ /* BOOL CItemEditFrame::OnGridItemChangeValue(CXTPPropertyGridItem* pItem) { if(this->IsEditState()) { COne* pOne=(COne*)GetDoc()->GetDraw()->GetAt(GetPos()); CFrame* pValue=(CFrame*)pOne->GetValue(); return OnGridItemChangeValue(pItem, pValue); } return OnGridItemChangeValue(pItem, m_pFrame); } */ int NItem::CItemEditFrame::CreateFrame(CFrame& frame, CNet* pNet, COLORREF &col) { if(pNet==NULL) return 0; CRect8 rect=pNet->GetInFrameRect(); rect.InflateRect(pNet->GetFrameWidth()*0.3, pNet->GetFrameWidth()*0.3); frame.x0=rect.left; frame.y0=rect.bottom; frame.m_size=rect.GetSize(); frame.m_size.cy=fabs(frame.m_size.cy); frame.thickness=pNet->m_szText.cy*0.5; m_pFrame=&frame; color=col; //CPropertiesSheet sheet(IDS_STRING_GRID,GetView(),0,FALSE); //sheet.SetItem(this); //if(sheet.DoModal()==IDOK) //{ // col=color; // m_pFrame=NULL; // return 1; //} m_pFrame=NULL; return 0; }