Tkinterに挑戦ということで、TkinterCraftLaunchEx用のコマンド編集GUIを作ってみました。念のためcommand.xmlのバックアップを取ってから使用してください。消えてしまっても責任は持てません。

CommandEditor.py

不具合や要望がありましたらコメント、またはメールでお願います。

Tkinterでのドラッグアンドドロップの方法がわからない…。

python2.5でdllを作ってもimportできないと思ったら、「What’s New in Python 2.5」にこんな記述が
Windows: .dll is no longer supported as a filename extension for extension modules. .pyd is now the only filename extension that will be searched for.」

「.dll」は探してくれないのね。「.pyd」にしたら解決。ということで、clmode_tasktrayとmixerをpython2.5に対応させました。

Wikiにアップしてあります。

これでやっとCraftLaunchEx0.991に移行できます。

バージョン0.99が久々の更新。ということで日記も更新。とりあえずpython2.5を入れて動くか試し中。
申し訳ないことに気が付いたらファイルのリンクがすべて切れているのでそのうち0.99に対応したバージョンでどこかに再アップします。 

clnchexから音楽プレイヤーやメディアプレイヤーなどの再生、停止などを行ったりするのだが、色々なプレイヤーを使い分けていると、それぞれのプレイヤーごとに、再生、停止などのコマンドを登録する必要があって、play〜〜のようなコマンドが多数存在することになってしまう。このため補完リストもごちゃごちゃになり使いにくくなってしまう。実際に再生や停止するのは現在起動しているプレイヤーに対してであって起動していないプレイヤーのに対しての再生、停止は必要ない。この問題を解消するために、以下のスクリプトを作ってみました。

clplaycontrol.py

これは、たとえば再生に関してはplayというコマンドを登録していれば,そのときに起動しているプレイヤーに対して再生コマンドを実行します。複数のプレイヤーが起動している場合はそれらのプレイヤーのリストを表示します。

やっと少し時間が取れるようになったので,小ネタを1つ.某巨大掲示板に書いてあった要望のTabで共通部分を補完するための関数を作ってみた.かなり力技だけど他にやり方が思いつかないのでこれで.
以下をconfig.pyに書く.自動補完OFF用.

def completion():
    import clwindow
    t = GetListItem(0)
    if GetListSelection() >= 0:
        m = len(t)
    else:
        omit_len = clwindow.list.omit_len
        s = t[omit_len:]
        for n in range(1, GetListCount()):
            s = commonpart(s, GetListItem(n)[omit_len:])
            if not s:
                return
        m = omit_len+len(s)
    SetValue(t[:m])
    SetSelection(m,m)
    clwindow.edit.Abbrev()

def commonpart(s,t):
    for n in range(0, min( len(s), len(t) ) ):
        if s[n].lower() != t[n].lower():
            return s[:n]
    else:
        return s[:n+1]
SetKeyDownHandler( VK_TAB, 0, completion )

MenuModeを更新しました。
MenuMode 0.0.9

かなり大改造したので、これまでのバージョンとやや互換性が失われてますがご了承ください
。変更点などは、readmeおよびchanges.txtを見てください。readmeには書いてない隠し機能(readmeが完全に書き終わっていないだという説も)があります。これらについては追々解説していきたいと思います。

追記

readmeの誤植を修正しました。スクリプトは変更なしです。