亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? diagramclipboardhandler.cpp

?? 大家用過UML的流程圖設(shè)計器吧
?? CPP
字號:
/* ==========================================================================
	Class :			CDiagramClipboardHandler

	Author :		Johan Rosengren, Abstrakt Mekanik AB

	Date :			2004-04-30

	Purpose :		"CDiagramClipboardHandler" handles the copy/paste 
					functionality for a "CDiagramEntityContainer". It's a 
					separate class to allow several containers to share 
					the same clipboard in an MDI-application.

	Description :	"CDiagramClipboardHandler" copy/paste is implemented as 
					a "CObArray" with "CDiagramEntity"-derived objects. As 
					soon as objects are put to the 'clipboard', they are 
					cloned into the paste array. As soon as objects are 
					pasted, they are cloned from the paste array. 

	Usage :			"CDiagramEntityContainer" takes a pointer to an instance 
					of "CDiagramClipboardHandler". The clipboard handler must 
					live as long as the "CDiagramEntityContainer". Several 
					"CDiagramEntityContainer"'s can share the same clipboard 
					handler.
   ========================================================================
					26/6 2004	Added group handling (Unruled Boy).
   ========================================================================*/
#include "stdafx.h"
#include "DiagramClipboardHandler.h"
#include "DiagramEntityContainer.h"
#include "GroupFactory.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// 

CDiagramClipboardHandler::CDiagramClipboardHandler()
/* ============================================================
	Function :		CDiagramClipboardHandler::CDiagramClipboardHandler
	Description :	Constructor
	Access :		Public

	Return :		void
	Parameters :	none

	Usage :			

   ============================================================*/
{
}

CDiagramClipboardHandler::~CDiagramClipboardHandler()
/* ============================================================
	Function :		CDiagramClipboardHandler::~CDiagramClipboardHandler
	Description :	Destructor
	Access :		Public
					
	Return :		void
	Parameters :	none

	Usage :			

   ============================================================*/
{

	ClearPaste();

}

void CDiagramClipboardHandler::Copy( CDiagramEntity* obj )
/* ============================================================
	Function :		CDiagramClipboardHandler::Copy
	Description :	Copies the object "obj" to the 'clipboard'.
	Access :		Public
					
	Return :		void
	Parameters :	CDiagramEntity* obj	-	The object to copy.	
					
	Usage :			Call in response to a Copy-command. Note 
					that "obj" will only be copied to the 
					clipboard, not the screen. See also the 
					functions for copy/paste below.

   ============================================================*/
{

	ClearPaste();
	CDiagramEntity* newobj = obj->Clone();
	newobj->Select( TRUE );
	newobj->MoveRect( 10, 10 );
	m_paste.Add( newobj );

}

void CDiagramClipboardHandler::CopyAllSelected( CDiagramEntityContainer* container )
/* ============================================================
	Function :		CDiagramClipboardHandler::CopyAllSelected
	Description :	Clones all selected object to the paste 
					array.
	Access :		Public
					
	Return :		void
	Parameters :	none

	Usage :			Call to copy all selected objects to the 
					clipboard. "Paste" will put them on screen.

   ============================================================*/
{

	ClearPaste();
	CObArray* arr = container->GetData();

	int	max = arr->GetSize();
	for( int t = 0 ; t < max ; t++ )
	{
		CDiagramEntity* obj = static_cast< CDiagramEntity* >( arr->GetAt( t ) );
		if( obj->IsSelected() )
		{
			CDiagramEntity* newobj = obj->Clone();
			newobj->Select( TRUE );
			newobj->MoveRect( 10, 10 );
			newobj->SetGroup( obj->GetGroup() );
			m_paste.Add( newobj );
		}
	}

}

int CDiagramClipboardHandler::ObjectsInPaste()
/* ============================================================
	Function :		CDiagramClipboardHandler::ObjectsInPaste
	Description :	Returns the number of objects in the paste 
					array.
	Access :		Public
					
	Return :		int		-	The number of objects.
	Parameters :	none

	Usage :			Call to get the number of objects in the 
					clipboard.

   ============================================================*/
{

	return m_paste.GetSize();

}

void CDiagramClipboardHandler::ClearPaste()
/* ============================================================
	Function :		CDiagramEntityContainer::ClearPaste
	Description :	Clears the paste-array.
	Access :		Public
					
	Return :		void
	Parameters :	none

	Usage :			Call to clear the clipboard. All memory is 
					released.

   ============================================================*/
{

	int count = m_paste.GetSize() - 1;
	for( int t = count ; t >= 0 ; t-- )
		delete static_cast< CDiagramEntity* >( m_paste.GetAt( t ) );
	m_paste.RemoveAll();

}

void CDiagramClipboardHandler::Paste( CDiagramEntityContainer* container )
/* ============================================================
	Function :		CDiagramClipboardHandler::Paste
	Description :	Clones the contents of the paste array 
					into the container data array.
	Access :		Public
					
	Return :		void
	Parameters :	none

	Usage :			Call to paste the contents of the clipboard 
					to screen.

   ============================================================*/
{

	CDWordArray	oldgroup;
	CDWordArray	newgroup;

	int max = m_paste.GetSize();
	for( int t = 0 ; t < max ; t++ )
	{
		CDiagramEntity* obj = static_cast< CDiagramEntity* >( m_paste.GetAt( t ) );
		if( obj->GetGroup() )
		{
			int size = oldgroup.GetSize();
			BOOL found = FALSE;
			for( int i = 0 ; i < size ; i++ )
				if( obj->GetGroup() == static_cast< int > ( oldgroup[ i ] ) )
					found = TRUE;

			if( !found )
			{
				oldgroup.Add( obj->GetGroup() );
				newgroup.Add( CGroupFactory::GetNewGroup() );
			}
		}
	}

	for( t = 0 ; t < max ; t++ )
	{
		CDiagramEntity* obj = static_cast< CDiagramEntity* >( m_paste.GetAt( t ) );
		CDiagramEntity* clone = obj->Clone();

		int group = 0;
		if( obj->GetGroup() )
		{
			int size = oldgroup.GetSize();
			for( int i = 0 ; i < size ; i++ )
				if( obj->GetGroup() == static_cast< int >( oldgroup[ i ] ) )
					group = newgroup[ i ];
		}

		clone->SetGroup( group );
		container->Add( clone );
	}

}

CObArray* CDiagramClipboardHandler::GetData() 
/* ============================================================
	Function :		CDiagramClipboardHandler::GetData
	Description :	Get a pointer to the clipboard data
	Access :		Public
					
	Return :		CObArray*	-	The clipboard data
	Parameters :	none

	Usage :			Call to get the clipboard data.

   ============================================================*/
{ 
	
	return &m_paste; 

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产清纯在线一区二区www| 欧美日韩亚洲综合一区二区三区| 欧美一区二区日韩| 肉色丝袜一区二区| 欧美色综合久久| 美脚の诱脚舐め脚责91| 日韩欧美国产精品一区| 精品在线播放午夜| 国产精品情趣视频| 在线一区二区三区四区| 日韩二区三区在线观看| 精品日韩一区二区三区免费视频| 国产精品影视在线观看| 国产精品国产自产拍在线| 一本一道波多野结衣一区二区| 亚洲成人av一区二区三区| 日韩无一区二区| 大陆成人av片| 亚洲电影你懂得| 精品国产第一区二区三区观看体验| 国产一区二区三区免费看| 亚洲人成在线观看一区二区| 欧美日韩精品一区二区三区四区 | 欧美肥妇free| 国模冰冰炮一区二区| 国产精品大尺度| 欧美一级生活片| 波多野结衣精品在线| 日本不卡免费在线视频| 国产精品无码永久免费888| 欧美午夜一区二区三区 | 国产成人一级电影| 亚洲老妇xxxxxx| 日韩精品一区二区三区四区| 不卡的av电影| 久久精品国产亚洲a| 一区二区三区四区视频精品免费 | 日韩精品欧美成人高清一区二区| 精品99999| 在线免费不卡视频| 国产成人免费在线| 麻豆一区二区99久久久久| 亚洲卡通欧美制服中文| 精品国一区二区三区| 91浏览器在线视频| 国产91精品精华液一区二区三区 | 亚洲素人一区二区| 久久丝袜美腿综合| 欧美精品日韩精品| 91丝袜美女网| 成人免费三级在线| 国产乱理伦片在线观看夜一区| 亚洲韩国精品一区| 日韩一区在线播放| 91日韩一区二区三区| 日韩精品一二三区| 亚洲综合久久av| 国产精品久久国产精麻豆99网站| 欧美mv日韩mv国产| 日韩欧美中文字幕制服| 欧美欧美欧美欧美| 欧美午夜片在线观看| a亚洲天堂av| 国产91清纯白嫩初高中在线观看| 激情丁香综合五月| 蜜桃av一区二区三区电影| 五月婷婷另类国产| 午夜精品久久一牛影视| 一区二区三区四区在线免费观看| 亚洲四区在线观看| 亚洲三级免费观看| 综合av第一页| 亚洲色图在线视频| 一区二区三区高清在线| 亚洲精品成人少妇| 亚洲精品免费在线观看| 亚洲女性喷水在线观看一区| 国产精品色噜噜| 国产精品久久久久婷婷二区次| 日本一区二区视频在线观看| 久久久www成人免费无遮挡大片| 精品久久国产字幕高潮| 欧美成人性战久久| 久久九九影视网| 中文字幕欧美三区| **欧美大码日韩| 亚洲午夜精品网| 日韩高清不卡一区二区三区| 麻豆精品一二三| 国产一区二区伦理| 99久久精品免费| 欧美在线短视频| 欧美一区二区网站| 欧美精品一区二区三区蜜桃视频| 久久天天做天天爱综合色| 欧美激情一区二区三区蜜桃视频| 国产精品妹子av| 有码一区二区三区| 日韩国产欧美在线观看| 久久国产麻豆精品| 国产成人午夜片在线观看高清观看| 成人免费看黄yyy456| 91毛片在线观看| 91精品婷婷国产综合久久性色| 日韩精品自拍偷拍| 中文字幕一区二区在线播放| 亚洲午夜三级在线| 国产一区二区在线电影| 风流少妇一区二区| 欧美日韩国产美女| 久久这里都是精品| 亚洲精品少妇30p| 热久久一区二区| 成人动漫av在线| 8v天堂国产在线一区二区| 久久香蕉国产线看观看99| 中文字幕在线观看一区二区| 偷拍一区二区三区四区| 欧美电影一区二区三区| 久久亚区不卡日本| 亚洲五月六月丁香激情| 国产精品影视在线| 精品1区2区3区| 久久久不卡网国产精品一区| 亚洲午夜久久久久久久久电影院| 国产真实精品久久二三区| 91福利在线导航| 久久久久97国产精华液好用吗| 伊人婷婷欧美激情| 国产高清久久久| 欧美区一区二区三区| 国产精品白丝在线| 极品尤物av久久免费看| 欧美天天综合网| 亚洲国产精品99久久久久久久久| 丝袜美腿一区二区三区| av电影天堂一区二区在线| 日韩欧美在线综合网| 亚洲国产日韩精品| 99国产精品久久久久| 精品国产麻豆免费人成网站| 亚洲精品亚洲人成人网| 国产99久久久国产精品潘金| 日韩一区二区在线观看视频播放| 亚洲精品久久7777| caoporn国产精品| 久久午夜国产精品| 另类小说欧美激情| 欧美精品免费视频| 亚洲一区在线视频| 日本精品视频一区二区三区| 日本一区二区三区四区| 久久精品免费观看| 日韩午夜精品电影| 男人的天堂亚洲一区| 欧美日韩色一区| 一区二区在线免费观看| 91网站最新地址| 亚洲天堂2014| 一本一本久久a久久精品综合麻豆| 中文字幕va一区二区三区| 国产伦精品一区二区三区免费迷| 日韩视频中午一区| 久久精品国产精品亚洲综合| 欧美日韩精品一区视频| 亚洲aⅴ怡春院| 欧美日韩一区国产| 午夜激情综合网| 欧美精品第一页| 日本中文一区二区三区| 欧美日韩一区二区三区视频| 亚洲一二三四区| 欧美人狂配大交3d怪物一区| 亚洲第一会所有码转帖| 欧美区视频在线观看| 日韩成人一区二区| 欧美变态口味重另类| 国产在线一区观看| 国产精品美女久久久久av爽李琼 | 99精品欧美一区| 亚洲欧美激情一区二区| 色88888久久久久久影院按摩| 亚洲欧洲三级电影| 91极品视觉盛宴| 偷拍一区二区三区四区| 欧美一区二区三区播放老司机| 激情综合网最新| 久久久www成人免费毛片麻豆| 风间由美性色一区二区三区| 国产精品久久看| 色婷婷av一区二区三区之一色屋| 亚洲sss视频在线视频| 日韩欧美一卡二卡| 国产成人免费在线观看不卡| 一区二区中文字幕在线| 欧美另类久久久品| 国产一区二区视频在线播放| 国产精品国产a级| 欧美综合色免费| 黄色资源网久久资源365|