SinglePlaylist

画像表示やキーボード関連は改善されたものの未だに不完全かな。
個人的には演奏時のチラつきが無くなったのが嬉しい。
もっと嬉しいのはフォントサイズ不一致の話題が再浮上したこと。
TrackInfoModの方で久しぶりに話題に上ってます。(かなり初期にも一度指摘されてます)
まぁ暫くは画像表示や文字のエフェクトなど派手な機能が先行しそうですな。

タブ切り替え(昨日の続き)

教えて頂いたヒントを元にSendMessage()で頑張ってみる。
ayanaさんってTabbedPanelModの中の人だったのね(゚д゚)
フォーラム見てて気付きました。


TCM_SETCURSEL送ってタブ(だけ)を切り替えるところまではサクっと。
しかし案の定、WM_NOTIFYを親(タブコントロール)に送るところ詰まりました。
こりゃ確かに面倒そう。
どうしてこんなに構造体ばっかり出てくるのさ。
猫でも分かる・・・あ〜どうせuninkoは猫以下ですよorz
そもそもAHKの範囲で出来るのかと疑い始める。
AHKスレも舐めるように舐めてみる。
やっぱりよくわからん。30分で諦めるuninkoですorz


で、灯台下暗し。
AHKのリファレンス見てたら発見。
Controlで動くらしい→試してみる→鎖骨が割れるほど動く
安全性・汎用性・コーディングなど色々と問題アリですが勉強がてら晒してみます。
ダメ出し・つっこみ大募集。

#IfWinActive ahk_class {E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}
NumpadRight::

	ControlGet,TabIndex,Tab,,SysTabControl321
	SendMessage,0x1304,0,0,SysTabControl321,A

if ErrorLevel <> FAIL
{
	if TabIndex < %ErrorLevel%
		Control,TabRight,1,SysTabControl321,A
	else
		Control,TabLeft,%ErrorLevel%-1,SysTabControl321,A
}
return


#IfWinActive ahk_class {E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}
NumpadLeft::

	ControlGet,TabIndex,Tab,,SysTabControl321
	SendMessage,0x1304,0,0,SysTabControl321,A

if ErrorLevel <> FAIL
{
	if TabIndex > 1
		Control,TabLeft,1,SysTabControl321,A
	else
		Control,TabRight,%ErrorLevel%-1,SysTabControl321,A
}
return

見ての通りの有様ですぜ。
まぁ動くことは動きますぜ。

foo_cwb_hooks

cwb系の変数が変化したタイミングで更新できるようになったみたい。
ただし他のコンポ側がそれに対応する必要があります。
(まだPlaylistTreeすら対応してません)
TrackInfo系はUpdateEverySecondがあるので恩恵が少ないかもしれませんが、
PlaylistTreeには大きい変化じゃないかな。
これでPlaylistSwitcherと同じように表示できるかと思ったけど・・・。
@playlistsは描画リフレッシュに問題蟻でうまくいかんです。

foo_ui_gfx

随分前に0.9版がリリースされてたのに気付かなかった。
似たようなコンポにfoo_titleってのがありますがこちらの方がfoo_looksに近いです。
foo_titleはxmlで記述しますがgfxはlooksと同じくluaスクリプトで記述します。
2004年 looks作者が消える
2005年 gfxリリース→いまだα版
2006年 titleリリース→微妙な仕様
foobarの生い立ちからして当然ですがスキン系のコンポは肩身狭いです。
今のところ弄る予定無し。


ここから御託。
winamp化どころかfoobar化してるとさえ思えます。
全く見た目の違うインターフェースが追加されて、それを使うことも使わないことも許されるってのがfoobarのキモだと思ってます。
それゆえ需要が少ないコンポが消えていくのは詮無きことかな。

PlaylistTree解説ページ

すんません。曜日算出また間違ってました。
foo_cwb_hooksを使ったシンプルで確実な方法に差し替えました。
これに限らずサンプル全般に関してhooks使用を前提にして見直します。
それと左のカテゴリーメニューも正式ページのリンクに変更しました。
今後は↓このページを編集していく予定。
http://d.hatena.ne.jp/uninko/20060602

Tabbed panel modified

さっそく使わせて頂いてます。
たしかにタブを消すとスッキリ。
単にタブ領域が無くなっただけじゃ大してコンパクトにはなりませんが
工夫次第ではパネル切り替えが以前より楽になりそうです。
基本的にはタブの変りに任意のボタンやキーボードショートカットで切り替える感じ。
ボタンならタブから離れた場所にも置けますしタブ内のパネルにボタンを配置することも出来ます。


ここから迷走録。
正直uninkoはタブも嫌いではないです。
でも見た目に関しては不調和な部分があるのでタブを隠せる機能は非常に嬉しい!
とりわけEdgeStyle=Noneだと外観が少々変だったりします(2kでの話)。
操作量に関してはuninkoの使い方だとタブでもボタンでも変らないです。
マウスメインで操作してるので結局タブでもボタンでも押さなきゃならん。
で、せっかくなのでAutoHotkey経由でマウスの進む・戻るボタンをタブを切り替えに割り当ててみるテスト。


作戦1
SendMessageで放り込んでみる→なぜかうまくいかん。
Controlによってはキーを受け付けてくれない。
とりあえずウィンドウやタブに送ってみるが駄目っぽい。
いやそもそもSendMessageの使い方とか間違ってね?
WinAPI絡みが全く駄目なuninkoです。
試行錯誤→諦めるorz


作戦2
ControlSendでやってみる。
どうやらControlをちゃんと取得できてないみたい。
ClassNNでもidでもハンドル指定でもうまくいかん。
よほどアホな間違いをしてるんだろうな・・・。


作戦3
GlobalHotKeyに設定してsendしてみる→これはうまくいく。
何となくGlobalHotKey使いたくなかったけど、
AutoHotKey側でウィンドウ指定してるから動作自体に差は無いか、と妥協。
ControlGetでアクティブなタブを取得してその値で分岐→Send
という野暮ったい方法ですが動いてます。
とりあえず動けば良い。
もうちと賢くなったらスマートな書き方を探ってみよう。


右クリック+ホイールなんかも悪くないかもしれません。
チルト付きのホイールならそれも使えるのかな。わからん。
ともかくマウスだけでサクサク操作は(・∀・)イイ!!