Exemplo n.º 1
0
/*!
	ターゲットしているAAを使う処理
	@param[in]	hWnd	多分AA一覧のウインドウハンドル
	@param[in]	dMode	使用モードもしくはデフォで
	@param[in]	dDirct	非0マウス直下ので 0表示トップので
	@return		UINT	非0AAとった 0AA無かった
*/
UINT AaItemsDoSelect( HWND hWnd, UINT dMode, UINT dDirct )
{
	LPSTR		pcConts = NULL;
	UINT		uRslt;
	UINT_PTR	rdLength;

	//	該当するインデックスAAを引っ張ってくる
	if( dDirct ){	pcConts = AacAsciiArtGet( gixNowSel );	}
	else{			pcConts = AacAsciiArtGet( gixTopItem );	}

	if( !pcConts  ){	return 0;	}

	rdLength = strlen( pcConts );	//	文字列の長さ取得

	uRslt = ViewMaaMaterialise( hWnd, pcConts, rdLength, dMode );	//	本体に飛ばす
	//	EditorとViewerで本体が異なるので注意

	//	ここでお気に入りに入れる
	if( SUCCEEDED( AaItemsFavUpload( pcConts, rdLength ) ) )
	{
		FavContsRedrawRequest( hWnd );
	}

	free( pcConts );

	return 1;
}
Exemplo n.º 2
0
/*!
	Targetアイテムを使う・クルップボードへ・他に使いたいときは?
	@param[in]	hWnd	ウインドウハンドル
	@param[in]	id		動作モードID
	@return		HRESULT	終了状態コード
*/
HRESULT DraughtItemUse( HWND hWnd, INT id )
{
	LPSTR		pcAaItem;
	INT_PTR		iItems, i, iOffset, iTarget;
	UINT_PTR	cbSize;
	UINT		dMode;
	MAAM_ITR	itItem;

	if( gbThumb )	//	サムネモード
	{
		iOffset = gdVwTop * TPNL_HORIZ;
		iTarget = iOffset + giTarget;

		pcAaItem = AacAsciiArtGet( iTarget );
		if( !(pcAaItem) )	return E_OUTOFMEMORY;

		switch( id )
		{
			case IDM_DRAUGHT_INSERTEDIT:	dMode = MAA_INSERT;		break;
			case IDM_DRAUGHT_INTERRUPTEDIT:	dMode = MAA_INTERRUPT;	break;
			case IDM_DRAUGHT_LAYERBOX:		dMode = MAA_LAYERED;	break;
			default:
			case IDM_DRAUGHT_UNICLIP:		dMode = MAA_UNICLIP;	break;
			case IDM_DRAUGHT_SJISCLIP:		dMode = MAA_SJISCLIP;	break;

			case IDM_THUMB_DRAUGHT_ADD:		dMode = MAA_DRAUGHT;	break;
		}
		StringCchLengthA( pcAaItem, STRSAFE_MAX_CCH, &cbSize );

		ViewMaaMaterialise( hWnd, pcAaItem, cbSize, dMode );

		if( id != IDM_THUMB_DRAUGHT_ADD )
		{
			//	ここでお気に入りに入れる・大丈夫か?
			if( SUCCEEDED( AaItemsFavUpload( pcAaItem, cbSize ) ) )
			{
				FavContsRedrawRequest( hWnd );
			}
		}

		FREE(pcAaItem);
	}
	else
	{
		iItems = gvcDrtItems.size( );	//	現在個数
		if( 0 >= iItems )	return E_OUTOFMEMORY;

		for( i = 0, itItem = gvcDrtItems.begin(); gvcDrtItems.end() != itItem; i++, itItem++ )
		{
			if( giTarget == i )	//	ヒット
			{
				switch( id )
				{
					case IDM_DRAUGHT_INSERTEDIT:	dMode = MAA_INSERT;		break;
					case IDM_DRAUGHT_INTERRUPTEDIT:	dMode = MAA_INTERRUPT;	break;
					case IDM_DRAUGHT_LAYERBOX:		dMode = MAA_LAYERED;	break;
					default:
					case IDM_DRAUGHT_UNICLIP:		dMode = MAA_UNICLIP;	break;
					case IDM_DRAUGHT_SJISCLIP:		dMode = MAA_SJISCLIP;	break;
				}
				StringCchLengthA( itItem->pcItem, STRSAFE_MAX_CCH, &cbSize );

				ViewMaaMaterialise( hWnd, itItem->pcItem, cbSize, dMode );
			}
		}
	}

	return E_INVALIDARG;
}