⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdlgtagjumplist.h

📁 日本的开源编辑器源码
💻 H
字号:
/*!	@file
	@brief タグジャンプリストダイアログボックス

	@author MIK
	$Revision: 1.3 $
*/
/*
	Copyright (C) 2003, MIK

	This software is provided 'as-is', without any express or implied
	warranty. In no event will the authors be held liable for any damages
	arising from the use of this software.

	Permission is granted to anyone to use this software for any purpose, 
	including commercial applications, and to alter it and redistribute it 
	freely, subject to the following restrictions:

		1. The origin of this software must not be misrepresented;
		   you must not claim that you wrote the original software.
		   If you use this software in a product, an acknowledgment
		   in the product documentation would be appreciated but is
		   not required.

		2. Altered source versions must be plainly marked as such, 
		   and must not be misrepresented as being the original software.

		3. This notice may not be removed or altered from any source
		   distribution.
*/



class CDlgTagJumpList;

#ifndef	_CDLGTAGJUMPLIST_H_
#define	_CDLGTAGJUMPLIST_H_

#include "CDialog.h"
#include "CSortedTagJumpList.h"

//	@@ 2005.03.31 MIK
//編集ボックスがコンボかどうか
#define TAGJUMP_EDITBOX_IS_COMBO

//キーワードを入力して該当する情報を表示するまでの時間(ミリ秒)
#define TAGJUMP_TIMER_DELAY 700
//タグファイル名	//	@@ 2005.03.31 MIK 定数化
#define TAG_FILENAME        "tags"
//タグファイルのフォーマット	//	@@ 2005.03.31 MIK 定数化
//	@@ 2005.04.03 MIK キーワードに空白が含まれる場合の考慮
#define TAG_FORMAT          "%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%s\t%s"

/*!	@brief ダイレクトタグジャンプ候補一覧ダイアログ

	ダイレクトタグジャンプで複数の候補がある場合及び
	キーワード指定タグジャンプのためのダイアログボックス制御
*/
class SAKURA_CORE_API CDlgTagJumpList : public CDialog
{
public:
	/*
	||  Constructors
	*/
	CDlgTagJumpList();
	~CDlgTagJumpList();

	/*
	||  Attributes & Operations
	*/
	int DoModal( HINSTANCE, HWND, LPARAM );	/* モーダルダイアログの表示 */

	//	@@ 2005.03.31 MIK 階層パラメータを追加
	bool AddParam( char *s0, char *s1, int n2, char *s3, char *s4, int depth );	//登録
	bool GetSelectedParam( char *s0, char *s1, int *n2, char *s3, char *s4, int *depth );	//取得
	void SetFileName( const char *pszFileName );
	void SetKeyword( const char *pszKeyword );	//	@@ 2005.03.31 MIK

protected:
	/*
	||  実装ヘルパ関数
	*/
	BOOL	OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
	BOOL	OnBnClicked( int );
	BOOL	OnNotify( WPARAM wParam, LPARAM lParam );
	//	@@ 2005.03.31 MIK キーワード入力エリアのイベント処理
	BOOL	OnCbnSelChange( HWND hwndCtl, int wID );
	BOOL	OnCbnEditChange( HWND hwndCtl, int wID );
	//BOOL	OnEditChange( HWND hwndCtl, int wID );
	BOOL	OnTimer( WPARAM wParam );
	LPVOID	GetHelpIdTable( void );
	void	StopTimer( void );
	void	StartTimer( void );

	void	SetData( void );	/* ダイアログデータの設定 */
	int		GetData( void );	/* ダイアログデータの取得 */
	void	UpdateData( void );	//	@@ 2005.03.31 MIK

	char	*GetNameByType( const char type, const char *name );	//タイプを名前に変換する。
	int		SearchBestTag( void );	//もっとも確率の高そうなインデックスを返す。
	//	@@ 2005.03.31 MIK
	const char *GetFileName( void );
	const char *GetFilePath( void ){ return m_pszFileName != NULL ? m_pszFileName : ""; }
	void find_key( const char* keyword );
	void Empty( void );



private:

	int		m_nIndex;		//!< 選択された要素番号
	char	*m_pszFileName;	//!< 編集中のファイル名
	char	*m_pszKeyword;	//!< キーワード(DoModalのlParam!=0を指定した場合に指定できる)
	int		m_nLoop;		//!< さかのぼれる階層数
	CSortedTagJumpList	m_cList;	//!< タグジャンプ情報
	UINT	m_nTimerId;		//!< タイマ番号
	BOOL	m_bTagJumpICase;	//!< 大文字小文字を同一視
	BOOL	m_bTagJumpAnyWhere;	//!< 文字列の途中にマッチ

};

#endif	//_CDLGTAGJUMPLIST_H_


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -