MouseGestureL設定メモ

# 設定内容
自分用メモ。
※随時更新中

## ジェスチャ未発動時に右クリックメニューを表示しない
`MouseGestureL.ahk`本体の`MG_TriggerUp(name)`関数を書き換えます。

```ini
; Emulate trigger if gesture is not executed
; ジェスチャー未発動の場合、トリガー操作をエミュレート
SetMouseDelay,-1
BlockInput,On
MouseGetPos,px,py
MouseMove,%MG_X%,%MG_Y%,0
GoSub,MG_%name%_Down
MouseMove,%px%,%py%,0
Sleep,1
GoSub,MG_%name%_Up
BlockInput,Off
```

先頭に2行追加します。

```ini
; Emulate trigger if gesture is not executed
; ジェスチャー未発動の場合、トリガー操作をエミュレート
if MG_Gesture <> %name%__
return

SetMouseDelay,-1
BlockInput,On
MouseGetPos,px,py
MouseMove,%MG_X%,%MG_Y%,0
GoSub,MG_%name%_Down
MouseMove,%px%,%py%,0
Sleep,1
GoSub,MG_%name%_Up
BlockInput,Off
```

## デフォルト
### ジェスチャー

#### RB_
```ini
;アクティブ化
IfWinNotActive
   WinActivate
```

#### RB_L_
```ini
;戻る
SendInput, !{Left}
```

#### RB_R_
```ini
;進む
SendInput, !{Right}
```

#### RB_D_
```ini
;最小化
PostMessage, 0x0112, 0xF020, 0
```

#### RB_LU_
```ini
;直前のアクティブウィンドウを復元
If (MG_Defer())
{
   MG_ActivatePrevWin()
}
```

#### RB_RU_
```ini
;先頭へジャンプ
SendInput, ^{Home}
```

#### RB_RD_
```ini
;最後へジャンプ
SendInput, ^{End}
```

#### RB_DR_
MDIアプリの場合は子ウィンドウを閉じる操作で上書きします。

```ini
;ウィンドウを閉じる
PostMessage, 0x0010
```

#### RB_UDLR_
MDIアプリの場合、`PostMessage, 0x0010`だと全ての子ウィンドウを閉じてしまうため`RB_DR_`を子ウィンドウを閉じる操作で上書きし、全てのウィンドウを閉じる場合はこちらを使います。

```ini
;ウィンドウを閉じる
PostMessage, 0x0010
```

#### RB_DLR_
```ini
;デスクトップを表示
SendInput, #d
```

#### RB_UD_
```ini
;更新
SendInput, {F5}
```

#### RB_ULR_
```ini
;ウィンドウの最前面化/解除
WinSet, Topmost, Toggle
```

### ホイール操作
ホイール操作は、ウィンドウ透明度・水平スクロールお好みで。
チルト機能のないマウスの場合、水平スクロールが便利。
水平スクロールはExcelの場合を別に設定しないと動作しないので注意してください。

#### RB_WheelUp
```ini
;ウィンドウの透明度を変更
If (vT == "")
{
   vT := 255
}
Else
{
   vT += 5
}
WinSet, Transparent, %vT%, A
```

```ini
;左水平スクロール
Send, {WheelLeft}
```

#### RB_WheelDown
```ini
;ウィンドウの透明度を変更
WinGet, vT, Transparent, A
If (vT == "")
{
   vT := 255
}
Else
{
   vT -= 5
}
WinSet, Transparent, %vT%, A
```

```ini
;右水平スクロール
Send, {WheelRight}
```

#### RB_MB_
```ini
;ウィンドウの半透明化を解除
WinSet, Transparent, Off
```

## ブラウザ
### ターゲット
実行ファイル名
`iexplore.exe`
`chrome.exe`
`firefox.exe`

### ジェスチャー
#### RB_UL_
```ini
;直前に閉じたタブを開く
SendInput, ^+t
```

#### RB_UR_
```ini
;新しいタブ
SendInput, ^t
```

#### RB_DL_
```ini
;開発者ツール
SendInput, {F12}
```

#### RB_DR_
```ini
;タブを閉じる
SendInput, ^w
```

## Microsoft Excel
### ターゲット
実行ファイル名
`EXCEL.EXE`

### ジェスチャー
#### RB_DR_
```ini
;現在のウィンドウを閉じる
SendInput, !{F4}
```

### ホイール操作
デフォルトのホイール操作に水平スクロールを設定した場合、こちらは別に設定する必要があります。

#### RB_WheelUp
```ini
;左水平スクロール
SetScrollLockState, On
Send, {Left}
SetScrollLockState, Off
```

#### RB_WheelDown
```ini
;右水平スクロール
SetScrollLockState, On
Send, {Right}
SetScrollLockState, Off
```

## サクラエディタ
### ターゲット
実行ファイル名
`sakura.exe`

### ジェスチャー
#### RB_UDLR_
```ini
;サクラエディタの全終了
SendInput, ^!{F4}
```

## eBuilder8
### ターゲット
ウィンドウクラス
`SWT_Window0`

### ジェスチャー
#### RB_DR_
```ini
;閉じる
SendInput, ^w
```

## エクスプローラ
### ターゲット
ウィンドウクラス
`CabinetWClass`
`ExploreWClass`
`Progman`
`WorkerW`

### ジェスチャー
#### RB_U_
```ini
;1つ上の階層
SendInput, !{Up}
```

## エクスプローラ - アイコン
### ターゲット
カスタム条件式
`MG_TreeListHitTest()`

### ジェスチャー
#### RB_
デフォルトは`MG_Abort()`が有効だが、エクスプローラのリスト上でもマウスジェスチャーを発動可能にするため、解除。
設定自体消してもいいかも。

```ini
;ジェスチャーキャンセル
;MG_Abort()
```