Giraffe+ 0.5.16.309

Downloadページへ

前リリースからの変化

  • Giraffe.RegisteredItemsに登録アイテムを直接置けるようにした
  • マーク実行時に引数等を扱えるようにした
  • String.shell_executeとContainer.shell_executeのshow引数に文字列を置けるようにした
  • タイマーイベントの名前の最後が!の場合に一度だけ実行されるようにした
  • Giraffe.ListBox.GetMarkedItemsをString_arrayではなくArrayを返すようにした

Giraffe.RegisteredItemsはString_arrayです。Giraffe.RegisteredItems.push_back('item')とすればitemが登録アイテムとして扱われます。登録アイテムのキャッシュについて、これといったキレイな仕様が思いつかなかったので、こういう、スクリプトでどうとでも出来る仕様にすることにしました。
今まで、マーク実行時にはエディットに引数等があっても無視されてましたが、されないようにしました。実装的には、Giraffe:GetExecuteeを、エディットに引数等があり、マーク付リストアイテムに引数等が無い場合に、マーク付リストアイテムにそのエディットの引数等を付加したものを返すようにしました。
shell_executeのshowを空文字列にするとSW_DEFAULTになるようにしました。空じゃない場合は数値化されます。Giraffe:GetExecutee等、Giraffe+の関数はshowを文字列として扱っていて、なおかつ空文字列の場合はSW_DEFAULTとするという暗黙の仕様が出来上がってしまっていたので、それに合わせました。
Giraffe.Event.Timer.test!-100とやれば100ミリ秒後に一度だけ実行されるようにしました。タイマーは、結局そういう使い方が多いので。自動的にundefされるタイミングは実行前です。エラーになっても(例外が飛んでも)いいようにそうしています。
Giraffe.ListBox.GetMarkedItemsの戻り値をArrayにしました。旧DLLの関数にArrayであるかどうかで動作の変わるものがあるため、そうしました。String_arrayは内部的に文字列の配列を扱いたい場合に使うものですので、そもそも間違った仕様でした。


バージョン履歴には書いてませんが、gs.dllの最適化を速度重視にしました。Boost.Spiritを使ったパースが遅いために、起動時や設定適用時にやたらと時間がかかるのを、もう少しなんとかならないかと思いやってみました。私のPC*1で1割増しぐらい速くなったようです。