Applet編集EnglishQtopiaへの入力(mouse/keyboard/qcop)を補助するためのアプレットpluginです。mouseイベントの発生、keyboardイベントの発生、qcopメッセージの送信を行う事が出来ます。Appletのhook機能と連携して、マウスカーソルを表示/操作する事が可能になります。キーボードマクロ機能も実装しました。Grahamさんのパッチを取り込み、USBマウスが使用出来るようになりました。2005/05/19一部のキーがファイル(クリップボード)出力したテキストからのマクロ再生で正常に再生できていなかったので修正。supportパッチを取り込み。Qtopia上でマウスが使用出来るようになりました。2004/12/03キーイベント発生機能で一部のキー名称(Space(等?))を使用した場合に正しいキーイベントが生成出来ていなかったのを修正。マウスカーソル表示時にShift+Returnでスペースの入力が出来るように変更。指定した場合にキーフックを行わないように変更。クリップボードへの文字列読み込み機能。2004/03/19修飾キーが単体で押された時の保存形式を簡略化。(+SHIFT等は表示しない様に)記録したキーボードマクロを複数回実行した場合に問題が発生していたのを修正。2004/03/18キーボードマクロの保存で、press/releaseが連続している場合にはclickにまとめる様に変更。キーアクションも数字ではなくpress/release/clickで記録するように変更。2004/03/16キーボードマクロの保存形式をキー名称を使用する形式に変更。(可読性の向上)キーイベント発生機能で、CTRLキー併用のキーイベントがキー名称で指定できなかったのを修正。2004/03/15キーボードマクロの保存/再生をクリップボード経由でも出来る様に変更。(ファイル名として""空文字を指定します)マウスカーソル位置を知らせる機能を追加。(別画像を一時的に表示)マウスカーソル位置を取得する(クリップボード/ファイル)機能を追加。2004/03/14hotX,hotYでイメージ外の点を指定すると落ちるバグを修正。(無限リセットループからの脱出)を追加。2004/03/13マウスカーソルの加速を実装。マウスカーソルの移動幅を設定可能に。キー名称で指定できなかったキーがあったので修正。QCopメッセージ送信機能もQCopメッセージで扱える様に変更。(Fn+Shift+スペースを割り当てたのでSL-Cシリーズ以外ではQCopメッセージを使用して下さい)指定回数のクリックで自動的にマウスモードを終了する機能を追加。修飾キー付きのマウスイベントも発生可能に。QCopメッセージの受信処理部分をちょっと安全に。2004/03/12マウスカーソル画像の変更を実装。キーボードマクロ機能を実装。マウスカーソルの操作方法を変更。キー入力の仕様を変更。2004/03/11初版リリース。本体メモリ以外へのインストールはサポートしていません。タスクバーアプレットプラグインとして実装しているので、なんらかのバグがあるとQtopia毎落ちてしまうため、ロード時に落ちてしまう状態になると無限リセットループに入ってしまう可能性があります。そのため、/tmp/disable-inputhelper/mnt/card/disable-inputhelper/mnt/cf/disable-inputhelperのいずれかのファイルが存在した時にはプラグインのロードを行わない様な機能を追加しました。無限リセットループに入ってしまっても、外部メディアに上記ファイルを用意すれば正常に起動する様になります。(ただしVer0.8.3以降を使用している場合のみ)起動後にエラーの原因を取り除き、ファイルを削除して下さい。'reloadApplets()'を実行する事でアプレットをリロードする事が可能です。SLシリーズでは外部メディアは/mnt/cardまたは/mnt/cfですが、それ以外にも対応するために/tmp以下も見る様にしています。任意のファイルへのシンボリックリンクとして作成しておくとリンク先の任意ファイルの有無で判断する事が可能になります。Grahamさんのパッチを取り込み、USBマウスが使用出来るようになりました。IntelliMouseのホイールにも対応しており、Up,Downキーとして動作するようになっています。USBマウス使用時は下記のqcopメッセージhandle()でカーソルの表示をしなくても、マウスを動かすだけでカーソルが表示されます(カーソルは数秒後に自動的に消えます)。SL-C750+REX-CFU1で使用する場合には、下記のモジュールを読み込み、QCopメッセージstartMouse()でマウスデバイスを初期化する必要があります。マウスデバイスを閉じ、モジュールをアンロードします。下記のQCopメッセージで、マウスハンドラの開始/停止を行います。'handle(int)'2つめの方は指定回数のクリック後に自動的にマウスモードを終了します。以降が必要になります。handle()の様な設定を記述しておくとボタンでハンドラの開始/停止が行えます。ポインタのPress/ReleaseShiftキー、Controlキーを併用すると移動幅を変更できます。2ピクセルずつ移動Fnキーを押しながらスペースキーを押すと右クリック、Fn+Shiftを押しながらスペースキーを押すと中クリックになります。編集~/Settings/inputhelper.confの[Cursor]セクションでマウスカーソルの設定を変更できます。タイムアウト値(ミリ秒単位)カーソルイメージはKeyHelperのメニューアイコン指定と同様$QTDIR/pics以下の相対ファイルパス(拡張子省略可)を指定します。デフォルトのイメージは16x16のイメージを使用していますが、サイズに規定はありません。クリックポイントはその画像内のどのポイントでクリックイベントを発生させるかを指定します。指定をしないと(7,7)がクリックポイントに設定されます。※注意クリックポイントは必ずカーソル画像内の点(16x16のイメージであれば0〜15)を指定して下さい。現バージョンではQtopia毎落ちてしまうので、無限リセットループに入ってしまいます。次のバージョンで不正な値は指定できない様な対処を入れます。タイムアウト値はマウスイベント発生機能でマウスイベントを発生させた時のカーソル表示時間を指定します。デフォルトでは3000ミリ秒に指定されています。編集~/Settings/inputhelper.confの[Step]セクションでマウスカーソルの設定を変更できます。加速までのリピート数をカンマ区切りのリストで指定します。しきい値を超えると移動幅がベース設定の2倍、3倍、4倍と増えていきます。10,20,30例えば上記の様な設定で、ベースが8の場合だとリピートが10を超えたところで16、20を超えると24、30を超えると32の様に加速していきます。画面端の境界を無くすための設定です。デフォルトは1でCtrlキーを押しながらカーソルを移動した時のみ、画面端を突き抜けて逆側にカーソルが現れます。ファイル名を実行する事でマウスカーソルの現在座標をファイルに保存します。""ファイル名として""空文字を指定するとクリップボードに座標を取得します。'where()'を実行する事で一時的に別のカーソル画像を表示し、カーソル位置を知らせます。タイムアウト値(ミリ秒単位)変更したい場合は上記の設定をして下さい。デフォルトでは500ミリ秒でタイムアウトします。キーボードマクロ編集キーイベントの記録/再生を行う事が出来ます。以降が必要になります。'record()'キーボードマクロを記録開始または記録停止します。record()の様な設定を記述しておくと、ボタンで記録開始/停止が行えます。'play()'最後に記録したキーボードマクロを再生します。play()の様な設定を記述しておくと、ボタンでマクロの再生が行えます。最後に記録したキーボードマクロをファイルに保存します。ファイルの内容は1イベント1行で、キーイベント発生に使用するフォーマットで書き込まれます。""上記のファイルへ記録する際と同じメッセージですが、ファイル名に空文字を指定するとクリップボードに記録されます。KeyHelperのランチャー機能で使用する場合はVer1.1.5以降を使用して下さい。指定したファイルに記録されたキーボードマクロを再生します。""上記のファイルから再生する際と同じメッセージですが、ファイル名に空文字を指定するとクリップボードから再生されます。KeyHelperのランチャー機能で使用する場合はVer1.1.5以降を使用して下さい。編集キーイベント発生、マウスイベント発生、qcopメッセージ送信で共通して使用できる機能です。操作と操作の間に適当な待ち時間を設けたい場合に使用できます。[待ち時間]待ち時間はミリ秒単位で指定します。'key(QString)'にスペース区切りの下記のようなフォーマットの文字列を書き込む事でキーイベントを発生させます。編集A,B,C,Return,Escape等のキー名称。qnamespace.hを参照(Qt::Key_XXXのXXXの部分)修飾キー指定はQAccel::stringToKey()が理解できる形式。処理できないキーが合ったので自前で実装しました。修飾キー設定は上記と同じキー名称に下記の文字列を付加します。+ALTユニコード編集16進数で0x????の様に指定。キーコード編集16進数で0x????の様に指定。編集16進数で0x????の様に指定。オートリピートのキーイベントかどうかを指定。repeatローレベルイベント編集QWSServer::sendKeyEvent()でキーイベントを発生させるか、QWSServer::processKeyEvent()でキーイベントを発生させるかを決定します。省略時はQWSServer::sendKeyEvent()。low何が違うかというと、ローレベルイベント(processKeyEvent())として発生させると、キーボードフィルタを通るのでインプットメソッドやKeyHelper等にキーを渡す事が出来ます。'mouse(QString)'に下記のようなフォーマットの文字列を書き込む事でマウスイベントを発生させます。現在のマウスポインタ位置。どちらかが+または-付きの場合には現在のポインタ位置からの相対位置。両方とも数値のみの指定の場合は絶対位置。+0でもカレント指定になります。