gnoteその後
去年書いたMona用テキストエディタgnoteをid:higeponさんが見てくれたようだ、ドキドキッ。
なぜかメニュー部分がうまくイベントを拾ってくれなくて今日のところはここまで。
とあるので、ちょっと久々にのぞいてみた。今見るとかなりへっぽこな部分があり恥ずかしいが、まぁおいといて。
ファイル保存処理はこんな感じでしょうか。
[rootwindow.cpp]
RootWindow::RootWindow() {
...
menu->add(item = new TMenuItem("Save"));
item->setActionCommand("FILE_SAVE"); # 追加
// item->setEnabled(false); # 削除
...
}
[controller.cpp]
void Controller::ProcessActionEvent(TActionEvent* event) {
...
if (command.equals(String("FILE_NEW"))) {
...
} else if (command.equals(String("FILE_SAVE"))) { # 追加
WriteFile(file, document); # 追加
} else if (command.equals(String("FILE_QUIT"))) {
...
}
bool Controller::WriteFile(const String& f, const Document& d) {
String s; # 追加
for (int ii = 1; ii <= d.GetMaxLineNumber(); ++ii) { # 追加
s += d.GetLine(ii); # 追加
} # 追加
monapi_cmemoryinfo* buffer = new monapi_cmemoryinfo(); # 追加
// ごにょごにょ # 追加
}ここまで書いて、もしかしてメニュー部がどれも動かないのかな?とも思えてきた。ちょっと今環境がないので試せません。ごめんなさいm(__)m