モードスタックの話の続き。スタックにしたということはガンガン上にモードを積み重ねて使うのが正統派な気がするのだけど、実は標準のclmode_launcherの場合、フォーカスを失ってclmode_clockがPushされるときにスタックから削除される。ますます何のためにスタックしてるのかわからなくなってきた。

def NextMode():
    if mode_stack :
        mode_stack[0].OnLoseControl()
        mode = mode_stack.pop(0)
        mode_stack.append(mode)
        mode_stack[0].OnGetControl()

def PrevMode():
    if mode_stack :
        mode_stack[0].OnLoseControl()
        mode = mode_stack.pop()
        mode_stack.insert(0,mode)
        mode_stack[0].OnGetControl()
    

グルグルとモードスタックを循環。イメージはタスクの切り替えとかなんとか口走ると、それならリストから選ばせろという俺様脳内司令室からの冷たい一声が聞こえてきた気がした。えーと、精進します。しますけど、リスト要らないよね?