Пример #1
0
/**
 * @brioef 検索処理を行います
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(int) Footy2SearchW(int nID,const wchar_t *szText,int nFlags)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	
	// 検索文字が空のとき
	if (szText[0] == L'\0')
		return FOOTY2ERR_ARGUMENT;
	
	// 検索処理を実行する
	if (pFooty->m_cDoc.Search(szText,nFlags))			// 見つかったとき
	{
		if ((nFlags & SEARCH_NOT_ADJUST_VIEW) == 0)		// スクロールさせる
		{
			pFooty->m_cView[0].AdjustVisiblePos();
			pFooty->m_cView[0].AdjustVisibleLine();
		}
		if ((nFlags & SEARCH_NOT_REFRESH) == 0)			// 再描画させる
		{
			pFooty->m_cView[0].Refresh();
		}
		return FOOTY2ERR_NONE;
	}
	else
	{
		// 見つからなかったとき
		if ((nFlags & SEARCH_BEEP_ON_404) != 0)
			MessageBeep(MB_ICONEXCLAMATION);
		return FOOTY2ERR_404;
	}
}
Пример #2
0
/**
 * @brief 編集されているかどうかを取得します。
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(bool) Footy2IsEdited(int nID)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return false;
	return pFooty->m_cDoc.IsEdited();
}
Пример #3
0
/*----------------------------------------------------------------
Footy2SetSel
選択を開始させる
----------------------------------------------------------------*/
FOOTYEXPORT(int) Footy2SetSel(int nID,size_t nStartLine,size_t nStartPos,size_t nEndLine,size_t nEndPos,bool bRefresh){
	/*数値が正しいかどうかチェックする*/
	if (nStartLine > nEndLine)return FOOTY2ERR_ARGUMENT;
	else if (nStartLine == nEndLine){
		if (nStartPos > nEndPos)return FOOTY2ERR_ARGUMENT;
	}
	/*Footyを取得する*/
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	
	/*選択する*/
	CEditPosition cSelStart,cSelEnd;
	if (!cSelStart.SetPosition(pFooty->m_cDoc.GetLineList(),nStartLine,nStartPos) ||
		!cSelEnd.SetPosition(pFooty->m_cDoc.GetLineList(),nEndLine,nEndPos) ||
		!pFooty->m_cDoc.SetSelectStart(&cSelStart) ||
		!pFooty->m_cDoc.SetSelectEndNormal(&cSelEnd))
		return FOOTY2ERR_ARGUMENT;
	*pFooty->m_cDoc.GetCaretPosition() = cSelEnd;
	
	/*再描画*/
	if (bRefresh){
		pFooty->m_cView[0].AdjustVisiblePos();
		pFooty->m_cView[0].AdjustVisibleLine();
		pFooty->m_cView[0].Refresh();
		pFooty->m_cView[0].Refresh();
	}
	
	/*関数が正常に終了した*/
	return FOOTY2ERR_NONE;
}
Пример #4
0
/**
 * @brief ペースト処理を行います。
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(int) Footy2Paste(int nID)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	return pFooty->Paste() ? FOOTY2ERR_NONE : FOOTY2ERR_MEMORY;
}
Пример #5
0
/**
 * @brief 切り取り処理を行います。
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(int) Footy2Cut(int nID)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	if (!pFooty->m_cDoc.IsSelecting())return FOOTY2ERR_NOTSELECTED;
	return pFooty->Cut() ? FOOTY2ERR_NONE : FOOTY2ERR_MEMORY;
}
Пример #6
0
/**
 * @brief 読み込み専用かどうかを取得します
 * @param	nID			[in] 取得対象FootyのID
 */
FOOTYEXPORT(bool) Footy2IsReadOnly(int nID)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return false;
	// 読み込み専用かどうかを取得します
	return pFooty->m_cDoc.IsReadOnly();
}
Пример #7
0
/**
 * @brief シフトロックされているかどうか取得する
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(bool) Footy2IsShiftLocked(int nID)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return false;
	// シフトロック状態を取得する
	return pFooty->m_cView[0].IsShiftLocked();
}
Пример #8
0
/**
 * @brief 読み込み専用かどうかを設定します
 * @param	nID			[in] 設定対象FootyのID
 * @param	bReadOnly	[in] 読み込み専用かどうか
 */
FOOTYEXPORT(int) Footy2SetReadOnly(int nID, bool bReadOnly)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	// 読み込み専用かどうかを設定します
	pFooty->m_cDoc.SetReadOnly( bReadOnly );
	return FOOTY2ERR_NONE;
}
Пример #9
0
/**
 * @brief リドゥを行います。
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(int) Footy2Redo(int id)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(id);
	if (!pFooty)return FOOTY2ERR_NOID;
	// 選択解除
	pFooty->m_cDoc.ClearSelected();
	// リドゥ処理
	if (!pFooty->Redo())
		return FOOTY2ERR_NOUNDO;
	// 成功
	return FOOTY2ERR_NONE;
}
Пример #10
0
/*----------------------------------------------------------------
Footy2GetCaretPosition
キャレット位置を取得します
----------------------------------------------------------------*/
FOOTYEXPORT(int) Footy2GetCaretPosition(int nID,size_t *pCaretLine,size_t *pCaretPos){
	/*Footyを取得する*/
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;

	/*キャレットの位置を取得*/
	CEditPosition *pPosition = pFooty->m_cDoc.GetCaretPosition();
	if (pCaretLine)
		*pCaretLine = pPosition->GetLineNum();
	if (pCaretPos)
		*pCaretPos = pPosition->GetPosition();
	return FOOTY2ERR_NONE;
}
Пример #11
0
/**
 * @brief シフトロックを行う
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(int) Footy2ShiftLock(int nID,bool bLocked)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;

	// シフトロック状態をセットする
	for (int i=0;i<4;i++)
	{
		pFooty->m_cView[i].SetShiftLock(bLocked);
	}
	
	return FOOTY2ERR_NONE;
}
Пример #12
0
/*----------------------------------------------------------------
Footy2SetMetrics
数値設定
----------------------------------------------------------------*/
FOOTYEXPORT(int) Footy2SetMetrics(int nID,int nObject,int nValue,bool bRefresh)
{
	// 宣言
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	
	switch(nObject)
	{
	// for (int i=0;i<3;i++)をfor (int i=0;i<4;i++)に修正 by Tetr@pod
	case SM_MARK_VISIBLE:
		for (int i=0;i<4;i++)
		{
			pFooty->m_cView[i].SetMarkVisible(nValue);
		}
		break;
	case SM_LINENUM_WIDTH:
		for (int i=0;i<4;i++)
		{
			pFooty->m_cView[i].SetLineWidth(nValue);
		}
		break;
	case SM_RULER_HEIGHT:
		for (int i=0;i<4;i++)
		{
			pFooty->m_cView[i].SetRulerHeight(nValue);
		}
		break;
	case SM_UNDERLINE_VISIBLE:
		for (int i=0;i<4;i++)
		{
			pFooty->m_cView[i].SetUnderlineVisible(nValue);
		}
		break;
	case SM_MARGIN_HEIGHT:
		for (int i=0;i<4;i++)
		{
			pFooty->m_cView[i].SetMarginHeight(nValue);
		}
		break;
	case SM_TAB_WIDTH:
		pFooty->m_cDoc.SetTabLen(nValue);
		break;
	default:
		return FOOTY2ERR_ARGUMENT;
	}

	/*再描画させる*/
	if (bRefresh)pFooty->m_cView[0].Refresh();
	return FOOTY2ERR_NONE;
}
Пример #13
0
/**
 * @brief 全て選択処理を行います
 * @param nID 処理を実行するFootyのID
 * @param bRedraw 再描画処理を行うかどうか
 */
FOOTYEXPORT(int) Footy2SelectAll(int nID,bool bRedraw)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;

	// 全て選択する
	pFooty->m_cDoc.SelectAll();

	// 再描画処理
	if (bRedraw)
	{
		pFooty->m_cView[0].Refresh();
	}
	return FOOTY2ERR_NONE;
}
Пример #14
0
/*----------------------------------------------------------------
Footy2GetMetrics
数値取得
----------------------------------------------------------------*/
FOOTYEXPORT(int) Footy2GetMetrics(int nID,int nObject,int *pValue)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	if (!pValue)return FOOTY2ERR_ARGUMENT;

	// 返す
	switch(nObject)
	{
	case SM_LAPEL_COLUMN:
		*pValue = (int)pFooty->m_cDoc.GetLapelColumn();
		break;
	case SM_LAPEL_MODE:
		*pValue = (int)pFooty->m_cDoc.GetLapelMode();
		break;
	case SM_MARK_VISIBLE:
		*pValue = pFooty->m_cView[0].GetMarkVisible();
		break;
	case SM_LINENUM_WIDTH:
		*pValue = pFooty->m_cView[0].GetLineCountWidth();
		break;
	case SM_RULER_HEIGHT:
		*pValue = pFooty->m_cView[0].GetRulerHeight();
		break;
	case SM_UNDERLINE_VISIBLE:
		*pValue = pFooty->m_cView[0].GetUnderlineVisible();
		break;
	case SM_TAB_WIDTH:
		*pValue = pFooty->m_cDoc.GetTabLen();
		break;
	case SM_REDOREM:
		*pValue = pFooty->m_cDoc.GetRedoRem();
		break;
	case SM_UNDOREM:
		*pValue = pFooty->m_cDoc.GetUndoRem();
		break;
	default:
		return FOOTY2ERR_ARGUMENT;
	}
	return FOOTY2ERR_NONE;
}
Пример #15
0
/*----------------------------------------------------------------
Footy2SetCaretPosition
キャレット位置を取得します
----------------------------------------------------------------*/
FOOTYEXPORT(int) Footy2SetCaretPosition(int nID,size_t nCaretLine,size_t nCaretPos,bool bRefresh){
	/*Footyを取得する*/
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;

	/*キャレット位置を更新*/
	CEditPosition *pPosition = pFooty->m_cDoc.GetCaretPosition();
	if (!pPosition->SetPosition(pFooty->m_cDoc.GetLineList(),nCaretLine,nCaretPos))
		return FOOTY2ERR_ARGUMENT;
	else{
		pFooty->m_cDoc.UnSelect();
		pFooty->m_cDoc.SendMoveCaretCallBack();
		if (bRefresh){
			pFooty->m_cView[0].AdjustVisiblePos();
			pFooty->m_cView[0].AdjustVisibleLine();
			pFooty->m_cView[0].Refresh();
		}
		return FOOTY2ERR_NONE;
	}
}
Пример #16
0
/**
 * @brief アンドゥを行います。
 * @param nID 処理を実行するFootyのID
 */
FOOTYEXPORT(int) Footy2Undo(int id)
{
	// Footyを取得する
	CFooty *pFooty = GetFooty(id);
	if (!pFooty)return FOOTY2ERR_NOID;

	// 選択解除
	pFooty->m_cDoc.ClearSelected();

	// アンドゥ処理
	if (!pFooty->Undo())
		return FOOTY2ERR_NOUNDO;

	// キャレットから位置を再設定
	for (int i=0;i<4;i++)
	{
		pFooty->m_cView[i].AdjustVisibleLine();
		pFooty->m_cView[i].AdjustVisiblePos();
	}

	// 成功
	return FOOTY2ERR_NONE;
}
Пример #17
0
/**
 * Footy2GetSel
 * @brief 選択の開始位置を取得する
 * @param nID FootyのID
 * @param pStartLine [out]選択開始行
 * @param pStartPos [out]選択開始桁
 * @param pEndLine [out]選択終了行
 * @param pEndPos [out]選択終了桁
 */
FOOTYEXPORT(int) Footy2GetSel(int nID,size_t *pStartLine,size_t *pStartPos,size_t *pEndLine,size_t *pEndPos){
	/*Footyを取得する*/
	CFooty *pFooty = GetFooty(nID);
	if (!pFooty)return FOOTY2ERR_NOID;
	/*選択位置を取得する*/
	if (pFooty->m_cDoc.IsSelecting()){
		CEditPosition *pStart = pFooty->m_cDoc.GetSelStart();
		CEditPosition *pEnd = pFooty->m_cDoc.GetSelEnd();
		/*ポインタに返す*/
		if (pStartLine)
			*pStartLine = pStart->GetLineNum();
		if (pStartPos)
			*pStartPos = pStart->GetPosition();
		if (pEndLine)
			*pEndLine = pEnd->GetLineNum();
		if (pEndPos)
			*pEndPos = pEnd->GetPosition();
		/*正常に終了した*/
		return FOOTY2ERR_NONE;
	}
	else
		return FOOTY2ERR_NOTSELECTED;
}