Monday, February 26, 2007

CraftLaunchExをbluewind風に使う

私はbluewindをコマンド実行,非アクティブで隠れるようにして使用しています.デスクトップにはできるだけ不要なものは表示したくないのです.ところが,CraftLaunchはコマンド実行,Escで隠れるようにはできますが,非アクティブで隠れるようにはできません.この僅かな差が使い勝手に大きく影響してくるため,今まで乗り換えを検討することもありませんでした.

閑話休題.CraftLaunchの次世代版CraftLaunchExでは“OPTION_ACTIVE_POPUP”という動作オプションが用意されています.ホットキーで呼ばれると現れ,用がない時は隠れるという理想的な動作です.しかし,これの実装にはバグがあり,仕事をした時にしか隠れてくれないため修正しようというのが本日のテーマです.

最新版のCraftLaunchEx0.991に基づいて説明します.方法は2通りありますが,モードを継承して上書きするその1がオススメです.

その1: クロックモードを上書き

extension/clmode_myclock.py
新規作成する
from clapi import *
import cloption
from clmode_clock import ClockMode

class MyClockMode(ClockMode):
def OnGetControl(self):
ClockMode.OnGetControl(self)
if cloption.GetOption(OPTION_ACTIVE_POPUP):
SetValue('')
PopMode()
import clmode_launcher
PushMode( clmode_launcher.LauncherMode() )
clcore.Edit_Show(False)

config.py
from clconst import *の下に追加
import clmode_clock
import clmode_myclock
clmode_clock.ClockMode = clmode_myclock.MyClockMode

その2: CraftLaunchExのコードを直接いじる(非アクティブでは隠れません)
script/clwindow.py
if cloption.GetOption(OPTION_ACTIVE_POPUP):をコメントアウト
            #if cloption.GetOption(OPTION_ACTIVE_POPUP):
# make invisible
# clcore.Edit_Show(False)
clcore.RaiseNextWindow()の下に追加
            if cloption.GetOption(OPTION_ACTIVE_POPUP):
clcore.Edit_Show(False)

script/clmode_clock.py
PushMode( clmode_launcher.LauncherMode() )の下に追加
            import cloption
if cloption.GetOption(OPTION_ACTIVE_POPUP):
import clcore
clcore.Edit_Show(False)

No comments: