吉里吉里2/吉里吉里Z用UIウィジェット実装kwidgets
- yunyundetective
- 14674
- 2
- 5
- 0
ウィジェット間のドラッグ&ドロップは、異なるウィンドウ間でも有効。ウィンドウの垣根を越えてパケットを送達できる。(続く)
2012-04-21 15:01:10ドラッグ&ドロップに関してもう1つ。吉里吉里では Window.onFileDrop() で外部アプリからのファイルのD&Dに対応しているけど、kwidegtsではこれを拡張して KWidget.onFileDrop() でウィジェット単位で受け入れ判定が出来る。本日ここまで。
2012-04-21 15:03:20kwidgets講座その6。一緒に使うと便利なDLL。今日はちょっと脇道に逸れて、kwidgetsと一緒に使うとツール作るのに便利なDLLを色々紹介する。吉里吉里本体のI/Oは微妙に弱いので、それを補強するDLLと組み合わせると一気に便利になるのだ。
2012-04-25 14:53:53ここから紹介するDLL、主立った物は最近の吉里吉里の配布アーカイブにはビルド済みの物が含まれている。無い場合は、吉里吉里のソースレポジトリをチェックアウトして、自分でVC使ってビルドする必要がある。
2012-04-25 14:54:55まずはド定番、fstat.dll。吉里吉里で各種ファイル操作するならこいつが必須。ファイルを削除したり一覧取得したりディレクトリ選択したりファイルサイズや日付を取得したりと色々出来る。fstatって名前は歴史的経緯で、今となってはちょっとこの名前不適切なんだけど。
2012-04-25 14:57:04csvParser.dll。CSV形式のファイルをパースしてくれるパーサー。仕様はかなりガチ。よくあるadhocなパーサーでは無いので、ダブルクオート付きのCSVなんかでもちゃんと読めたはず。
2012-04-25 14:59:43json.dll。JSON形式のファイルの読み書きが出来る。JSONは、オクテットを除いてTJS式と論理構造に互換性があるので、JSONを介するとrubyやCと言った他の言語との間での、構造を持ったデータのやり取りが一気に楽になる。
2012-04-25 15:01:19saveStruct.dll。これ地味に便利。元々TJSに実装されているArray/Dictionary.saveStruct()関数は、データの内容をテキスト形式で書き出す関数なんだけど、UTF16なのがちょっと使いづらい。このDLLはそのSJIS/UTF8版を提供してくれる。
2012-04-25 15:03:13clipboardEx.dll。吉里吉里のクリップボード機能を拡張して、テキストだけで無く「画像データ」と「TJS式」をクリップボードを介して他のアプリとやりとり出来るようにする。
2012-04-25 15:05:52windowEx.dll。ウィンドウの最小化や最大化など、各種ウィンドウ操作に関する拡張を詰め込んだDLL。kwidgetsでアプリ作るとウィンドウ操作もしたくなる事多いので、これがあるとありがたい。
2012-04-25 15:08:20messenger.dll。同時起動している複数の吉里吉里間でWin32のメッセージを送受信するためのDLL。複数アプリを同時起動させないケースで、後から起動したアプリが起動時引数だけ、起動済みのアプリに送信してファイルを開かせたりする目的に使える。
2012-04-25 15:09:53layerExDraw.dll。GDI+の機能を利用して、様々な形状の図形の描画が出来る。線にはアンチエイリアスがかかるので、非常に綺麗に描画を行える。ツール的にに必要な絵の描画は概ねこれでまかなえる。
2012-04-25 15:12:02htmlhelp.dll。これものっそい地味なんだけど(^^; 吉里吉里内からHTMLヘルプを開くためのDLL。このDLLを使うと、吉里吉里に連動して一個だけヘルプが開くあたりがポイント。吉里吉里閉じるとちゃんとヘルプも閉じてくれる。
2012-04-25 15:13:30layerExSave.dll。データのセーブをBMP以外の、TLG5やPNG形式で行えるようにするDLL。これがあれば、αつき画像を読み込んで加工して吐き出すところまで完結したツールが作れる。
2012-04-25 15:15:01まだまだ半分も紹介し切れてない。吉里吉里には本当に便利なDLLがたくさんあるので(ほとんどワムソフトさん作 ^^;)、kwidegtsでツール作ろうと思う人は、一度プラグインのソースフォルダ一通り見ておくといい。てなとこで今日は締め。
2012-04-25 15:16:45ツールとして吉里吉里を使いたい日とは Rev.5002 以降のをつかったほうがいいです。System.exit(エラーコード), System.terminate(エラーコード) が使えるようになってるので
2012-04-26 00:18:23kwidgets講座その7。ツリービューであるKListの解説。KListを大幅更新したのを機に解説を書こうとと思ったのだが、前のポストからすでに1年半経っていた。しかも個別ウィジェットの解説まるでしていない…。ということで、改めて1から「KListの解説」を行おうと思う。
2013-11-15 16:06:06KListは、いわゆるツリービュー。Explorerのツリービューみたいな感じの代物を簡単に実現できる。もちろん、D&D完備。構造化エディタみたいな物もたぶん作れるよ。
2013-11-15 16:06:19ツリーのルートになるウィジェットが KList、 個々のリスト項目を KListItem と言うクラスで定義している。
2013-11-15 16:06:43ちょっと注意が必要なのは KListItem は KWidget 継承クラス「ではない」と言う事。parent,enabledなどのプロパティ、onMouseDownなどのフック関数など一通り装備してるので、KWidget継承クラスと感覚的にはそう変わりなく扱えるケド。
2013-11-15 16:06:46KListに対してKListItemをadd()すると、ルートにリスト項目がずらっと並ぶ。KListItemに対してKListItemをadd()するとその子階層のリストが出来上がる。簡単。リストアイテム先端の開閉アイコンをクリックするすることで子階層以降の開閉ができる。
2013-11-15 16:07:14