MQMemoクラス

(new in Rev4.00)

MQMemo クラスは複数行のテキストを入力するウィジェットを管理します。MQWidgetBaseクラスを継承しています。

継承元クラスで定義されるメンバ関数はそのクラスの記述を参照してください。

クラス
MQMemo コンストラクタ
~MQMemo デストラクタ
メンバ関数
GetText 表示文字列の取得
GetTextLength 表示文字列の長さの取得
SetText 表示文字列の設定
GetFontName フォント名の取得
SetFontName フォント名の設定
GetFontBold 太字フォントの取得
SetFontBold 太字フォントの設定
GetFontScale 文字の表示拡大率の取得
SetFontScale 文字の表示拡大率の設定
GetReadOnly 読み込み専用の取得
SetReadOnly 読み込み専用の設定
GetPriorMenuShortcut キーイベントのメニュー処理優先取得
SetPriorMenuShortcut キーイベントのメニュー処理優先設定
GetHorzBarStatus 水平バーの状態取得
SetHorzBarStatus 水平バーの状態設定
GetVertBarStatus 垂直バーの状態取得
SetVertBarStatus 垂直バーの状態設定
GetFocus フォーカスの取得
SetFocus フォーカスの設定
GetCaretPos キャレット位置の取得
SetCaretPos キャレット位置の設定
GetTabColumn タブ幅の取得
SetTabColumn タブ幅の設定
GetAutoIndent 自動インデントの取得
SetAutoIndent 自動インデントの設定
GetShowTabMark タブマークの取得
SetShowTabMark タブマークの設定
GetShowReturnMark 改行マークの取得
SetShowReturnMark 改行マークの設定
GetShowLineNumber 行番号表示の取得
SetShowLineNumber 行番号表示の設定
GetChanged 変更されているかどうかの取得
SetChanged 変更フラグの設定
メンバ関数 - 構文ハイライト
GetSyntaxHighlight 構文ハイライトの取得
SetSyntaxHighlight 構文ハイライトの設定
GetMarkCharacters 記号文字の取得
SetMarkCharacters 記号文字の設定
AddSyntaxKeyword キーワードの追加
ClearSyntaxKeyword キーワードの消去
AddRadixPrefix 進数表記プレフィックスの追加
ClearRadixPrefix 進数表記プレフィックスの消去
GetSyntaxComment コメント文字列の取得
SetSyntaxComment コメント文字列の設定
AddSyntaxMultiLineComment 複数行コメント文字列の追加
ClearSyntaxMultiLineComment 複数行コメント文字列の消去
AddSyntaxString 構文文字列の追加
ClearSyntaxString 構文文字列の消去
メンバ関数 - 選択・行数関連
SelectAll 文字列を全選択
SelectRange 指定範囲の文字列選択
GetSelectedRange 文字列の選択範囲取得
CutSelection 選択文字列のカット
CopySelection 選択文字列のコピー
PasteFromClipboard 文字列のペースト
ReplaceSelectedText 選択文字列の置換
FindString 文字列の検索
FindStringFromCaretPos キャレット位置から文字列検索
FindNextWordBreak 単語の区切れの検索
GetLineColumnByCaretPos キャレット位置から行・列番号の取得
GetCaretPosByLineColumn 行・列番号からキャレット位置の取得
メンバ関数 - アンドゥ関連
CanUndo アンドゥの可否取得
CanRedo リドゥの可否取得
Undo アンドゥの実行
Redo リドゥの実行
イベント
AddChangedEvent 文字列が変更された時のイベントを追加
AddChangingEvent 文字列を変更中のイベントを追加
AddDrawItemEvent 描画イベントを追加

MQMemo::MQMemo();

MQMemo::MQMemo(int id);

id
プラグイン外で生成されたウィジェットのID

コンストラクタです。


virtual MQMemo::~MQMemo();

デストラクタです。仮想関数として定義されます。


std::wstring MQMemo::GetText();

戻り値
文字列

すべての行を結合した文字列を取得します。


size_t MQMemo::GetTextLength();

戻り値
表示文字列の長さ

(new in Rev4.64)

すべての行を結合した文字列の長さを取得します。

長さのみが必要な場合、GetText()で取得した文字の長さを計算するよりも高速に動作します。


void MQMemo::SetText(const std::wstring& text);

text
表示文字列

ボタン上に表示される文字列を設定します。


std::wstring MQMemo::GetFontName();

戻り値
フォント名

文字を表示するフォントを取得します。


void MQMemo::SetFontName(const std::wstring& value);

value
フォント名

文字を表示するフォントを設定します。


bool MQMemo::GetFontBold();

戻り値
太字設定

文字を太字で表示するかどうかを取得します。


void MQMemo::SetFontBold(bool value);

value
太字設定

文字を太字で表示するかどうかを設定します。


double MQMemo::GetFontScale();

戻り値
文字の表示拡大率

標準フォントサイズに対する比率で文字の表示拡大率を取得します。

デフォルト値は1.0です。


void MQMemo::SetFontScale(double value);

value
文字の表示拡大率

標準フォントサイズに対する比率で文字の表示拡大率を設定します。


bool MQMemo::GetReadOnly();

戻り値
読み込み専用

読み込み専用にしてキー操作による文字入力を受け付けないかどうかを取得します。


void MQMemo::SetReadOnly(bool value);

value
読み込み専用

読み込み専用にしてキー操作による文字入力を受け付けないかどうかを設定します。


bool MQMemo::GetPriorMenuShortcut();

戻り値
メニューの優先

キーが押されたときにメニューのショートカットキー処理を優先するかどうかを取得します。


void MQMemo::SetPriorMenuShortcut(bool value);

value
メニューの優先

キーが押されたときにメニューのショートカットキー処理を優先するかどうかを設定します。


MQBarStatus MQMemo::GetHorzBarStatus();

戻り値
水平バーの状態
[SCROLLBAR_AUTO] 各行の長さに応じて自動設定
[SCROLLBAR_OFF] 常にオフ
[SCROLLBAR_ON] 常にオン

(new in Rev4.64)

水平スクロールバーの状態を取得します。


void MQMemo::SetHorzBarStatus(MQBarStatus value);

value
水平バーの状態
[SCROLLBAR_AUTO] 各行の長さに応じて自動設定
[SCROLLBAR_OFF] 常にオフ
[SCROLLBAR_ON] 常にオン

(new in Rev4.64)

水平スクロールバーの状態を設定します。


MQBarStatus MQMemo::GetVertBarStatus();

戻り値
垂直バーの状態
[SCROLLBAR_AUTO] 行数に応じて自動設定
[SCROLLBAR_OFF] 常にオフ
[SCROLLBAR_ON] 常にオン

(new in Rev4.64)

垂直スクロールバーの状態を取得します。


void MQMemo::SetVertBarStatus(MQBarStatus value);

value
垂直バーの状態
[SCROLLBAR_AUTO] 行数に応じて自動設定
[SCROLLBAR_OFF] 常にオフ
[SCROLLBAR_ON] 常にオン

(new in Rev4.64)

垂直スクロールバーの状態を設定します。


bool MQMemo::GetFocus();

戻り値
フォーカス状態

(new in Rev4.64)

現在フォーカス状態にあるかどうかを取得します。


void MQMemo::SetFocus(bool value);

value
フォーカス状態

フォーカス状態を設定します。

フォーカス状態になっている場合に、このウィジェットへキーボードメッセージが通知されます。

trueを指定した場合、既に他のウィジェットがフォーカス状態になっていればフォーカスはそのウィジェットからこのウィジェットに移動します。


size_t MQMemo::GetCaretPos();

戻り値
キャレットの位置

(new in Rev4.64)

現在のキャレットの位置を取得します。


void MQMemo::SetCaretPos(size_t value);

value
キャレットの位置

(new in Rev4.64)

キャレットの位置を設定します。


int MQMemo::GetTabColumn();

戻り値
タブの幅

(new in Rev4.64)

タブの幅がスペース何文字分に相当するかを取得します。


void MQMemo::SetTabColumn(int value);

value
タブの幅

(new in Rev4.64)

タブの幅がスペース何文字分に相当するかを設定します。


bool MQMemo::GetAutoIndent();

戻り値
自動インデントの可否

(new in Rev4.64)

改行時に自動でインデントを行うかどうかを取得します。


void MQMemo::SetAutoIndent(bool value);

value
自動インデントの可否

(new in Rev4.64)

改行時に自動でインデントを行うかどうかを設定します。


bool MQMemo::GetShowTabMark();

戻り値
タブの記号表示の可否

(new in Rev4.64)

タブを記号として表示するかどうか取得します。


void MQMemo::SetShowTabMark(bool value);

value
タブの記号表示の可否

(new in Rev4.64)

タブを記号として表示するかどうか設定します。


bool MQMemo::GetShowReturnMark();

戻り値
改行の記号表示の可否

(new in Rev4.64)

改行を記号として表示するかどうか取得します。


void MQMemo::SetShowReturnMark(bool value);

value
改行の記号表示の可否

(new in Rev4.64)

改行を記号として表示するかどうか設定します。


bool MQMemo::GetShowLineNumber();

戻り値
行番号表示の可否

(new in Rev4.64)

行番号を表示するかどうか取得します。


void MQMemo::SetShowLineNumber(bool value);

value
行番号表示の可否

(new in Rev4.64)

行番号を表示するかどうか設定します。


bool MQMemo::GetSyntaxHighlight();

戻り値
構文ハイライトの可否

(new in Rev4.64)

構文のハイライト表示が有効かどうか取得します。


void MQMemo::SetSyntaxHighlight(bool value);

value
構文ハイライトの可否

(new in Rev4.64)

構文のハイライト表示を有効にするかどうか設定します。


bool MQMemo::GetChanged();

戻り値
変更フラグ

(new in Rev4.64)

テキストが編集されたかどうか取得します。


void MQMemo::SetChanged(bool value);

value
変更フラグ

(new in Rev4.64)

テキストが編集されたかどうか設定します。


std::wstring MQMemo::GetMarkCharacters();

戻り値
記号文字群

(new in Rev4.64)

構文ハイライトや単語検索時に記号として扱われる文字群を取得します。


void MQMemo::SetMarkCharacters(const std::wstring& text);

text
記号文字群

(new in Rev4.64)

構文ハイライトや単語検索時に記号として扱われる文字群を設定します。


void MQMemo::AddSyntaxKeyword(const std::wstring& text);

text
キーワード

(new in Rev4.64)

構文ハイライト表示を行うキーワードを追加します。

例えば、CやPythonで言語組み込みの予約語「for」「break」などに相当します。


void MQMemo::ClearSyntaxKeyword();

(new in Rev4.64)

構文ハイライト表示を行うキーワードをすべて消去します。


void MQMemo::AddRadixPrefix(const std::wstring& text);

text
プレフィックス

(new in Rev4.64)

構文ハイライト時に数値として認識するプレフィックスを追加します。

例えばCやPythonで16進数を表す「0x」が相当します。


void MQMemo::ClearRadixPrefix();

(new in Rev4.64)

構文ハイライト時に数値として認識するプレフィックスをすべて消去します。


std::wstring MQMemo::GetSyntaxComment();

戻り値
コメント文字列

(new in Rev4.64)

構文ハイライト時に行頭の単一行コメントとして扱われる文字列を取得します。

例えば、C++の「//」やPythonの「#」に相当します。


void MQMemo::SetSyntaxComment(const std::wstring& text);

text
コメント文字列

(new in Rev4.64)

構文ハイライト時に行頭の単一行コメントとして扱われる文字列を設定します。


void MQMemo::AddSyntaxMultiLineComment(const std::wstring& start, const std::wstring& end);

start
コメント開始文字列
end
コメント終了字列

(new in Rev4.64)

構文ハイライト時に複数行のコメントとして認識する開始・終了文字列を追加します。

例えばCの「/*」「*/」やPythonの「"""」「"""」に相当します。


void MQMemo::ClearSyntaxMultiLineComment();

(new in Rev4.64)

構文ハイライト時に複数行のコメントとして認識する開始・終了文字列をすべて消去します。


void MQMemo::AddSyntaxString(const std::wstring& start, const std::wstring& end);

start
文字列の開始文字列
end
文字列の終了字列

(new in Rev4.64)

構文ハイライト時に文字列として認識する開始・終了文字列を追加します。

例えばCやPythonの「"」「"」などに相当します。


void MQMemo::ClearSyntaxString();

(new in Rev4.64)

構文ハイライト時に文字列として認識する開始・終了文字列をすべて消去します。


void MQMemo::SelectAll();

(new in Rev4.64)

文字列をすべて選択します。


void MQMemo::SelectRange(size_t start, size_t end);

start
開始位置
end
終了位置

(new in Rev4.64)

指定した範囲の文字列を選択します。


bool MQMemo::GetSelectedRange(size_t& start, size_t& end);

start
開始位置(出力)
end
終了位置(出力)
戻り値
選択されているかどうか

(new in Rev4.64)

現在選択されている文字列の範囲を取得します。


void MQMemo::CutSelection();

(new in Rev4.64)

選択範囲の文字列をカットし、クリップボードへ転送します。


void MQMemo::CopySelection();

(new in Rev4.64)

選択範囲の文字列をクリップボードへコピーします。


void MQMemo::PasteFromClipboard();

(new in Rev4.64)

クリップボードから文字列をペーストします。


void MQMemo::ReplaceSelectedText(const std::wstring& text);

text
置換文字列

(new in Rev4.64)

選択範囲を指定された文字列で置換します。


size_t MQMemo::FindString(const std::wstring& text, size_t start_pos, bool forward, bool matchcase, bool word);

text
検索文字列
start_pos
検索開始位置
forward
前方検索
matchcase
大文字・小文字の区別
word
単語単位
戻り値
位置(見つからない場合 MQMemo::INVALID_POS)

(new in Rev4.64)

指定された条件下で検索文字列に最初に一致する位置を検索します。


size_t MQMemo::FindStringFromCaretPos(const std::wstring& text, bool forward, bool matchcase, bool word);

text
検索文字列
forward
前方検索
matchcase
大文字・小文字の区別
word
単語単位
戻り値
位置(見つからない場合 MQMemo::INVALID_POS)

(new in Rev4.64)

指定された条件下で現在のキャレット位置から検索文字列に最初に一致する位置を検索します。


size_t MQMemo::FindNextWordBreak(size_t pos, bool forward);

pos
検索開始位置
forward
前方検索
戻り値
位置(見つからない場合 MQMemo::INVALID_POS)

(new in Rev4.64)

指定された位置から次の単語の区切れの位置を検索します。


bool MQMemo::GetLineColumnByCaretPos(size_t pos, int& line, int& column);

pos
位置
line
行番号(出力)
column
列番号(出力)
戻り値
取得可否

(new in Rev4.64)

指定された位置の行・列番号を取得します。


bool MQMemo::GetCaretPosByLineColumn(int line, int column, size_t& pos);

line
行番号
column
列番号
pos
位置(出力)
戻り値
取得可否

(new in Rev4.64)

指定された行・列番号から位置を取得します。


bool MQMemo::CanUndo();

戻り値
アンドゥの可否

(new in Rev4.64)

アンドゥ可能かどうか取得します。


bool MQMemo::CanRedo();

戻り値
リドゥの可否

(new in Rev4.64)

リドゥ可能かどうか取得します。


void MQMemo::Undo();

(new in Rev4.64)

アンドゥ処理を実行します。


void MQMemo::Redo();

(new in Rev4.64)

リドゥ処理を実行します。


template<typename T> void MQMemo::AddChangedEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument), bool prior = false)

p
イベント通知先のウィジェット
f
イベント通知先のメンバ関数
prior
イベントの通知順序
[true] 最初に通知されるよう指定
[false] 最後に通知されるよう指定

ユーザーの操作により文字列が変更されたときに発生されるイベントを追加します。

キー入力により文字列が編集されたときにAddChangingEvent()が、Enterキーが押されたりTabキーやマウス操作によって他のウィジェットへフォーカスが移動したときにAddChangedEvent()が発生します。


template<typename T> void MQMemo::AddChangingEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument), bool prior = false)

p
イベント通知先のウィジェット
f
イベント通知先のメンバ関数
prior
イベントの通知順序
[true] 最初に通知されるよう指定
[false] 最後に通知されるよう指定

ユーザーの操作により文字列が変更されている最中に発生されるイベントを追加します。

キー入力により文字列が編集されたときにAddChangingEvent()が、Enterキーが押されたりTabキーやマウス操作によって他のウィジェットへフォーカスが移動したときにAddChangedEvent()が発生します。


template<typename T> void MQMemo::AddDrawItemEvent(T *p, BOOL (T::*f)(MQWidgetBase*, MQDocument, MQMemoDrawItemParam&), bool prior = false)

p
イベント通知先のウィジェット
f
イベント通知先のメンバ関数
prior
イベントの通知順序
[true] 最初に通知されるよう指定
[false] 最後に通知されるよう指定

(new in Rev4.64)

1行ごとの描画時に発生されるイベントを追加します。

通知先のメンバ関数 f は以下の引数・戻り値を持ったものである必要があります。

 

BOOL T::f(MQWidgetBase* sender, MQDocument doc, MQMemoDrawItemParam& param);

sender
イベント通知元のウィジェット
doc
ドキュメント
param
イベント発生時のパラメータ(下記参照)
戻り値
[TRUE] ドキュメントに何らかの変更が行われた
[FALSE] ドキュメントは何も変更されなかった

struct MQMemoDrawItemParam {
	MQCanvas *Canvas;
	int Line;
	size_t StartPos;
	size_t EndPos;
	int X;
	int Y;
	int Width;
	int Height;
};
Canvas
描画キャンバス
Line
行番号
StartPos
行頭の文字位置
EndPos
行末の文字位置
X
描画範囲の左上X座標
Y
描画範囲の左上Y座標
Width
描画範囲の横幅
Height
描画範囲の縦幅