「tsvtool」version 20140825M071439 BaCon付属HUGでは作れなかったsensortray(タスクトレイに温度表示)できました。それと関数逆引きgtknotebook。
ミユ「前回のあらすじ。HUGを使わずに「tsvtool(L:Tsv)」の実装の話。そこそこ具現化に成功。
BaConはHSPではないのでcelputみたいな画像処理を搭載してないのでそこの繋ぎにtsvtoolが期待される予感
「tsvtool」version 20140825M071439 ゲームパッドのボタン配列違いを吸収する「L:Tsv」。あと漢直kantrayの簡易版kantestも。 - 大風呂ダ敷
「L:Tsv」自体はGPLの影響はうけないけど、「tsvtool」にHUGのCANVASを用いる描画命令を追加した場合「特定のライブラリとリンク」になるからGPL汚染するものと。
HUGが毎回画像をファイルから呼び出してるのでメモリに待機させるライブラリを書かなきゃ
HUGには無かった機能は大雑把には以下の4つ
・タスクトレイ&ポップアップメニュー。
・画像分割(HSPのceldivに相当)。
・アジャストメント(adjustment)でスケール(SLIDER)の範囲の変更できるように。
・カラーダイアログ。
てなわけで今回は以下の追加サンプルの紹介と共に解説。
「sensortray」CPUの温度をタスクトレイに表示。
「polylinetest」ベクター形式の落描きツールす。
「gtkdialogs」ダイアログ一覧。
「gtknotebook」widgetのサンプル集。
」
フレア「タスクトレイに温度計が表示されるようになったので熱暴走電源遮断のエンカウントの恐れから脱構築。
」
ミユ「「sensortray」CPUの温度をタスクトレイに表示します。
PuppyLinuxなので下準備としてlm_Sensorをインストールします。
インストールの際にパスワード関連のツールのステマもあるけど無視。常時rootのPuppyでパスワツールは不要のはず。
lm_Sensorのインストールに成功したなら「sensors」コマンドが使えるように。
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +0.0°C (crit = +95.0°C)k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +64.0°C
Core1 Temp: +64.0°C
温度が取得できる箇所を「sensortray」に読み込ませてタスクトレイに画像表示。
どの温度計が表示されるとか有効になるかはPCの機種毎に異なると思うので各自設定調整。
トレイサイズに画像をgdk_pixbuf_new_subpixbufで100分割したポインタをltsv_picture_celdiv$がtsvにまとめて
「ltsv_trayicon_set(trayicon_id,VAL(ltsv_pickdatanum$(trayicons_div$,ltsv_temp)))」する。
ltsv_trayicon_setの代わりにltsv_picture_drawする事でCANVASにセルを表示できるのでBaConでのゲーム作成とかに一歩ずつ近づくという寸法。」
シルキ「でも1フレームごとにセル並べて地図作ってたら凄く重くなるよね」
ミユ「とりあえずHUGの代替を優先したから画像合成とかバッファ作成とかは次回に。
画像処理で思い出したけど絵を描くサンプルも作ってみました。
「polylinetest」ベクター形式の落描きツールです。
「塗」ボタンの列にあるスケールがRGB変更。「層」ボタンの列にあるスケールがレイヤー選択。
線を描く毎にレイヤー追加。地味だけどスケールのアジャストメント(adjustment)変更もHUGではできかった事。
ベクター形式なので一度描いた線の頂点を動かしての微調整も可能。
gdk_draw_polygonのような関数は構造体とか要求してきて本当は扱いが面倒なんだけどltsv_polygon_drawに頂点のtsvを渡すだけで」
シルキ「polylinetestでは結局使ってなかったけどカラーダイアログとかあったよね?」
ミユ「カラーダイアログが動かない時があったので結局本当にサンプルプログラムっぽい所でしか使わなかったかなー
「gtkdialogs」ダイアログ一覧を表示します。
gtkstocksも既に前回作ってあるけどついでに再度紹介。
」
アケミ「今思ったんだけどさ、いっそのことボタンだけじゃなくてさGUI全体のカタログとかあった方便利くない?」
ミユ「そんなこともあろうかと「gtknotebook」widgetのサンプル集。
サンプルをコンパイルしなくても左上のwidgetは動きます。
画像69枚全部貼ると重いのでリンク先スクリーンショットで概要を掴んでもらえれば。
- readme
- http://f.hatena.ne.jp/ooblog/20141031180423
- ATTACH
- http://f.hatena.ne.jp/ooblog/20141031180420
- BUTTON
- http://f.hatena.ne.jp/ooblog/20141031180417
- CALLBACK
- http://f.hatena.ne.jp/ooblog/20141031180413
- CALLBACKX
- http://f.hatena.ne.jp/ooblog/20141031180409
- CANVAS
- http://f.hatena.ne.jp/ooblog/20141031183136
- CHECK
- http://f.hatena.ne.jp/ooblog/20141031183134
- CIRCLE
- http://f.hatena.ne.jp/ooblog/20141031183131
- CLIPBOARD
- http://f.hatena.ne.jp/ooblog/20141031183128
- COMBO
- http://f.hatena.ne.jp/ooblog/20141111204737
- DISABLE
- http://f.hatena.ne.jp/ooblog/20141031185943
- DISPLAY
- http://f.hatena.ne.jp/ooblog/20141031185940
- DRAW
- :http://f.hatena.ne.jp/ooblog/20141031185937
- EDIT
- :http://f.hatena.ne.jp/ooblog/20141031185933
- ENABLE
- http://f.hatena.ne.jp/ooblog/20141031185930
- ENTRY
- http://f.hatena.ne.jp/ooblog/20141031193337
- FILEDIALOG
- http://f.hatena.ne.jp/ooblog/20141031193333
- FOCUS
- http://f.hatena.ne.jp/ooblog/20141111210259
- FONT
- http://f.hatena.ne.jp/ooblog/20141031193326
- FRAME
- http://f.hatena.ne.jp/ooblog/20141031193323
- GET
- http://f.hatena.ne.jp/ooblog/20141031204807
- GETPROPERTY
- http://f.hatena.ne.jp/ooblog/20141031204805
- GRAB$
- http://f.hatena.ne.jp/ooblog/20141031204801
- HIDE
- http://f.hatena.ne.jp/ooblog/20141031204758
- HSEPARATOR
- http://f.hatena.ne.jp/ooblog/20141031204755
- HSLIDER
- http://f.hatena.ne.jp/ooblog/20141111204731
- HUGLIB$
- http://f.hatena.ne.jp/ooblog/20141101011849
- HUGOPTIONS
- http://f.hatena.ne.jp/ooblog/20141101011845
- HUGVERSION$
- http://f.hatena.ne.jp/ooblog/20141101011842
- IMAGE
- http://f.hatena.ne.jp/ooblog/20141101011839
- INIT
- http://f.hatena.ne.jp/ooblog/20141114184814
- KEY
- http://f.hatena.ne.jp/ooblog/20141114184811
- LINE
- http://f.hatena.ne.jp/ooblog/20141114184807
- LIST
- http://f.hatena.ne.jp/ooblog/20141114184804
- MARK
- http://f.hatena.ne.jp/ooblog/20141114184800
- METHOD
- http://f.hatena.ne.jp/ooblog/20141114190550
- MOUSE
- http://f.hatena.ne.jp/ooblog/20141114190548
- MSGDIALOG
- http://f.hatena.ne.jp/ooblog/20141114190547
- NOTEBOOK
- http://f.hatena.ne.jp/ooblog/20141114190543
- OUT
- http://f.hatena.ne.jp/ooblog/20141114190540
- PASSWORD
- http://f.hatena.ne.jp/ooblog/20141114192229
- PICTURE
- http://f.hatena.ne.jp/ooblog/20141114192225
- PIXEL
- http://f.hatena.ne.jp/ooblog/20141114192221
- PROGRESSBAR
- http://f.hatena.ne.jp/ooblog/20141114192217
- PROPERTY
- http://f.hatena.ne.jp/ooblog/20141114192214
- QUIT
- http://f.hatena.ne.jp/ooblog/20141114225217
- RADIO
- http://f.hatena.ne.jp/ooblog/20141114225214
- REGISTER
- http://f.hatena.ne.jp/ooblog/20141114225210
- RESETKEY
- http://f.hatena.ne.jp/ooblog/20141114225208
- SCREENSIZE
- http://f.hatena.ne.jp/ooblog/20141114225205
- SET
- http://f.hatena.ne.jp/ooblog/20141114230807
- SETPROPERTY
- http://f.hatena.ne.jp/ooblog/20141114230803
- SHOW
- http://f.hatena.ne.jp/ooblog/20141114230800
- SQUARE
- http://f.hatena.ne.jp/ooblog/20141114230756
- SPIN
- :http://f.hatena.ne.jp/ooblog/20141116021109
- STOCK
- http://f.hatena.ne.jp/ooblog/20141114232334
- SYNC
- http://f.hatena.ne.jp/ooblog/20141114232328
- TEXT
- http://f.hatena.ne.jp/ooblog/20141114232325
- TIMEOUT
- http://f.hatena.ne.jp/ooblog/20141114232322
- TOGGLE
- http://f.hatena.ne.jp/ooblog/20141114232318
- UNFOCUS
- http://f.hatena.ne.jp/ooblog/20141114233606
- VSEPARATOR
- http://f.hatena.ne.jp/ooblog/20141114233603
- VSLIDER
- http://f.hatena.ne.jp/ooblog/20141114233559
- WIDGET
- http://f.hatena.ne.jp/ooblog/20141114233556
- WINDOW
- http://f.hatena.ne.jp/ooblog/20141114233552
- celdiv
- http://f.hatena.ne.jp/ooblog/20141115000416
- colordialog
- http://f.hatena.ne.jp/ooblog/20141115000412
- range
- http://f.hatena.ne.jp/ooblog/20141115000410
- trayicon
- http://f.hatena.ne.jp/ooblog/20141115000407」
フレア「NOTEBOOKタブの文字列が表示されない超常現象について一言。
」
ミユ「私にだって…解らない事ぐらいある…
もう少し真面目に言うとHUGの時点でOUTが日本語と英語どちらかしか表示しなかったりとか不審な挙動はあったので。
今思いつく対策は「widget同士の干渉をさけるためいっそのことwidgetの使用は最小限にとどめる」ぐらいしか。」
フレア「何のためのguimoduleL開発っていう」
ミユ「極端な話CANVAS一枚貼ってその中に自力でUI描画するHSPではよくあること方式がある意味ベター。
ゲーム製作だと結局そうなるし。
ただしCANVASにdrawする関数だけ使ってれば安全というわけにもいかないのがBaCon+GTKの恐ろしい所。
」
フレア「ところでだけどLinux版siroganeどうなってんの
新名称「Live Dwango Reader」として引き継ぐことを表明した。わずか3週間強でのサービス継続の正式発表を受けて、ネットでは継続を喜ぶ声
「にゃんこをひきとった感じ」livedoor Readerからドワンゴへ24日間の舞台裏 - 週アスPLUS
」
ミユ「本当はsiroganeの方もある程度進めるべきなんだけど…
kantest→kantray、sensortrayできればpolylinetestも独立させてtsvtoolの.7zの軽量化を図りたい所。」