<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Command</title><link>https://sourceforge.net/p/sakura-editor/wiki/Command/</link><description>Recent changes to Command</description><atom:link href="https://sourceforge.net/p/sakura-editor/wiki/Command/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 11 Nov 2012 01:21:05 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/sakura-editor/wiki/Command/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage Command modified by novice123</title><link>https://sourceforge.net/p/sakura-editor/wiki/Command/</link><description>[内部構造](Design)＞コマンドの追加 

# コマンドの追加 #
2002/12/11

このエディタはコマンドに関係する処理があちこちに散っているため，コマンド追加時にはそれらを漏れなくチェックする必要があります．

## するべきこと ##
  1. Funccode.hにコマンドID追加メニューに入れる物は32767以下の値を割り振る
  1. **CEditView::HandleCommand**() に処理追加
  1. Funccode.cpp にコマンドID追加．どこかのカテゴリに加える．
  1. sakura_rc.rcにコマンド名IDとコマンド名の組み合わせを追加
  1. **CEditWnd::InitMenu**() にメニューを追加
  1. CSMacroMgr.cppにマクロ文字列及び引数型を定義
  1. (必要なら) CShareData.cppの**CShareData::Init**() でデフォルトのキー割り当てを設定
  1. 常時利用可能なコマンドでなければ，**CEditWnd::IsFuncEnable**() でコマンドの有効・無効判定を追加
  1. チェック状態を持つコマンドでは，**CEditWnd::IsFuncChecked**() でON/OFF表示判定を追加
  1. ファイル編集に関連するコマンドは， CEditDoc_new.cppの**CEditDoc::IsModificationForbidden**() に追加し，読みとり専用時に利用できなくする．
  1. アイコンを追加する場合は，ビットマップリソース mytool.bmpにアイコン追加．
  1. アイコンを追加する場合は，CMenuDrawer.cppの該当箇所にコマンドIDを入れて有効化
  1. キーマクロの保存対象コマンドであれば，**CSMacroMgr::CanFuncIsKeyMacro**() に判定追加
  1. マクロに引数がある場合は **CMacro::HandleCommand**() に引数をCEditView::**HandleCommand**() に渡す処理を追加．
  1. マクロ保存時に引数を付けたい場合には**CMacro::AddParam**() に引数を追加する処理を追加

## 確認内容 ##
  1. メニューから実行できるか
  1. ツールバーから実行できるか
  1. ショートカットキーから実行できるか
  1. マクロ登録の有無は意図どおりか
  1. 読み出し専用モードでは意図どおりに動作するか
  1. マクロからの実行は可能か
  1. マクロ引数は意図どおりに解釈され，動作するか
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">novice123</dc:creator><pubDate>Sun, 11 Nov 2012 01:21:05 -0000</pubDate><guid>https://sourceforge.net27dcb8188dad11ed5577dc474e69bc57c90b8154</guid></item></channel></rss>