マウス操作のためのウインドウに追加する

マウスのウインドウで。その5

「追加するランチャー」と同じの。その2

addButtonGui76_type2.trr
; 引数1に表示する文字。
; 実行するサブルーチンは G_subroutine76 だけにする
; exp76_area1_script  などの変数に、実行する処理を別途、代入する必要あり
exp76_tmpViewText = %B_itemArg1%
if( exp76_tmpViewText == "" ){
    F_errorOutput( "addButtonGui76_type2のエラー。`n引数の指定が足りない" )
    return
}

exp76_tmpHeightCount := exp76_count // exp76_widthNumber
exp76_tmpWidthCount := Mod(exp76_count, exp76_widthNumber)
exp76_tmpPosX := exp76_tmpWidthCount * exp76_width
exp76_tmpPosY := exp76_tmpHeightCount * exp76_height

; exp76_area1 からスタートさせるため、exp76_count の数字をここでプラスしておく
exp76_count++
exp76_tmpControlVar = exp76_area%exp76_count%
if( exp76_count >= exp76_many ){
    F_tmpOutput( "これ以上は追加できない" )
    return
}

; ボタンはタイプ1
%exp76_tmpControlVar%_type = 1
%exp76_tmpControlVar%_text = %exp76_tmpViewText%

exp76_tmpOption = X%exp76_tmpPosX% Y%exp76_tmpPosY% w%exp76_width% h%exp76_height% v%exp76_tmpControlVar% gG_subroutine76
Gui, 76:Add, Button, %exp76_tmpOption%,  %exp76_tmpViewText%
%--
addPictureGui76_type2.trr
; 引数1に画像が無かった場合の文字。
; 引数2に画像のファイルパスを指定
; 実行するサブルーチンは G_subroutine76 だけにする
; exp76_area1_script  などの変数に、実行する処理を別途、代入する必要あり
exp76_tmpViewText = %1
exp76_tmpNoExtFile = %*
if( exp76_tmpNoExtFile == "" ){
    F_errorOutput( "addPictureGui76_type2のエラー。`n引数の指定が足りない" )
    return
}

exp76_tmpHeightCount := exp76_count // exp76_widthNumber
exp76_tmpWidthCount := Mod(exp76_count, exp76_widthNumber)
exp76_tmpPosX := exp76_tmpWidthCount * exp76_width
exp76_tmpPosY := exp76_tmpHeightCount * exp76_height

; exp76_area1 からスタートさせるため、exp76_count の数字をここでプラスしておく
exp76_count++
exp76_tmpControlVar = exp76_area%exp76_count%
if( exp76_count >= exp76_many ){
F_tmpOutput( "これ以上は追加できない" )
    return
}

; 画像はタイプ2
%exp76_tmpControlVar%_type = 2
%exp76_tmpControlVar%_text = %exp76_tmpViewText%
%exp76_tmpControlVar%_img = %exp76_tmpNoExtFile%

exp76_tmpOption = X%exp76_tmpPosX% Y%exp76_tmpPosY% w%exp76_width% h%exp76_height% v%exp76_tmpControlVar% gG_subroutine76
exp76_imgExistFlag := F_GuiAddPictureNoExtFile( 76, exp76_tmpNoExtFile, exp76_tmpOption )
if( exp76_imgExistFlag == False )
    Gui, 76:Add, Button, %exp76_tmpOption%,  %exp76_tmpViewText%
}
; 初期化
exp76_tmpNoExtFile =
byText1InputAddButtonGui76.trr
; テキスト1から実行処理を登録する
InputBox, exp76_tmpViewText, ボタンの文字入力, 表示する時の文字を入れて, , 250, 130, 200, 300, メイリオ
if( ErrorLevel_TextRunRun == 1 ){
    F_tmpOutput( "中断する。" )
    return
}
if( exp76_tmpViewText == "" ){
    F_tmpOutput( "入力文字がないので中断する。" )
    return
}
exp76_tmpArg1 := F_getTextGuiAssign(B_GuiNumText1)
if( exp76_tmpArg1 == "" ){
    F_tmpOutput( "テキスト1に実行処理を記入していないので中断する。" )
    return
}
addButtonGui76_type2 %exp76_tmpViewText%

if( exp76_count >= exp76_many ){
    return
}
; テキスト1から処理を代入する
%exp76_tmpControlVar%_script := exp76_tmpArg1
%--
byText1_2InputAddPictureGui76.trr
; テキスト1から実行処理を登録する
; テキスト2から画像パスを取得する
InputBox, exp76_tmpViewText, ボタンの文字入力, 画像が無い時の代えの文字を入れて, , 250, 150, 200, 300, メイリオ
if( ErrorLevel_TextRunRun == 1 ){
    F_tmpOutput( "中断する。" )
    return
}
if( exp76_tmpViewText == "" ){
    F_tmpOutput( "入力文字がないので中断する。" )
    return
}
exp76_tmpArg1 := F_getTextGuiAssign(B_GuiNumText1)
if( exp76_tmpArg1 == "" ){
    F_tmpOutput( "テキスト1に実行処理を記入していないので中断する。" )
    return
}

; テキスト2から画像パスを取得。変数は何に代入してもいいが、exp76_tmpNoExtFile をどうせ使うのでこの変数でよい
exp76_tmpNoExtFile := F_getTextGuiAssign(B_GuiNumText2)
addPictureGui76_type2 %exp76_tmpViewText%  %exp76_tmpNoExtFile%

if( exp76_count >= exp76_many ){
    return
}
; テキスト1から処理を代入する
%exp76_tmpControlVar%_script := exp76_tmpArg1
%--
76GuiDropFiles.trr
StringSplit, exp76_files, A_GuiEvent, %B_LineFeedLF%
exp76_tmpIconPath = %exp76_files1%

; exp76_tmpIconPath の拡張子が、txt、画像ファイル、lnk なら、
; exp76_tmpIconPath に SHELL32.dll のファイルを。exp76_tmpIconOption に アイコン番号を代入する
myClickGui76_getIconAddGui76

exp76_tmpHeightCount := exp76_count // exp76_widthNumber
exp76_tmpWidthCount := Mod(exp76_count, exp76_widthNumber)
exp76_tmpPosX := exp76_tmpWidthCount * exp76_width
exp76_tmpPosY := exp76_tmpHeightCount * exp76_height

exp76_count++
if(exp76_count >= exp76_many){
    F_tmpOutput( "これ以上は追加できない" )
    return
}
exp76_tmpControlVar = exp76_area%exp76_count%

; ドロップ登録はタイプ3
%exp76_tmpControlVar%_type = 3
%exp76_tmpControlVar%_text = 画像がない
%exp76_tmpControlVar%_img = %exp76_files1%

exp76_tmpOption = %exp76_tmpIconOption% X%exp76_tmpPosX% Y%exp76_tmpPosY% w%exp76_width% h%exp76_height% v%exp76_tmpControlVar% gG_subroutine76
F_GuiAddPictureFileExist(76, exp76_tmpIconPath, exp76_tmpOption)
; F_GuiAddPictureNoExtFile(76, exp76_tmpIconPath, exp76_tmpOption)

%exp76_tmpControlVar%_script = %exp76_files1%

exp76_tmpIconOption =
myClickGui76_getIconAddGui76.trr
; exp76_tmpIconPath の拡張子が、txt、画像ファイル、lnk なら、
; exp76_tmpIconPath に SHELL32.dll のファイルを。exp76_tmpIconOption に アイコン番号を代入する
exp76_tmpFileType := FileExist( exp76_tmpIconPath )
if( exp76_tmpFileType == "" ) {
    F_errorOutput( "このファイルパスのアイコンのが判別できない。`n" . exp76_tmpIconPath )
    return
}
IfInString, exp76_tmpFileType, D
{
    exp76_tmpIconPath = %exp76_SHELL32DLL%
    exp76_tmpIconOption := exp76_folderIconNumber
    return
}
; 拡張子がほしいので、SplitPath を使う
SplitPath, exp76_tmpIconPath , exp76_OutFileName, exp76_OutDir, exp76_tmpSuffix
StringLower, exp76_tmpSuffix, exp76_tmpSuffix

; exp76_tmpSuffix が画像ファイルの拡張子なら、exp76_tmpImgFlag に True を代入するアイテム
myClickGui76_suffixIsImgGui76

if( exp76_tmpImgFlag ){
    exp76_tmpIconPath = %exp76_SHELL32DLL%
    exp76_tmpIconOption := exp76_imgIconNumber
    return
}
if( exp76_tmpSuffix == "exe" ) {
    ; 何もしない
} else if( exp76_tmpSuffix == "txt" ) {
    exp76_tmpIconPath = %exp76_SHELL32DLL%
    exp76_tmpIconOption := exp76_txtIconNumber
} else if( exp76_tmpSuffix == "lnk" ) {
    ; ショートカットの場合でも、特に工夫はせず
    exp76_tmpIconPath = %exp76_SHELL32DLL%
    exp76_tmpIconOption := exp76_lnkIconNumber
} else {
    exp76_tmpIconPath = %exp76_SHELL32DLL%
    exp76_tmpIconOption := exp76_otherIconNumber
}
myClickGui76_suffixIsImgGui76.trr
if( exp76_tmpSuffix == "jpg" ) {
    exp76_tmpImgFlag := True
} else if( exp76_tmpSuffix == "jpeg" ) {
    exp76_tmpImgFlag := True
} else if( exp76_tmpSuffix == "gif" ) {
    exp76_tmpImgFlag := True
} else if( exp76_tmpSuffix == "png" ) {
    exp76_tmpImgFlag := True
} else {
    exp76_tmpImgFlag := False
}
76GuiContextMenu.trr
if(A_GuiControl != ""){
    exp76_rightClickControl = %A_GuiControl%
    if(%A_GuiControl%_script != ""){
        Menu, menu76, Show, %A_GuiX%, %A_GuiY%
    }
}
G_subroutine76.trr
; コントロールが取得出来てなかったら、
; 右クリックのメニューから実行と判断する
if( A_GuiControl == "" ){
    if( exp76_rightClickControl == "" ){
        F_tmpOutput( "右クリックの内容が取得できていない" )
        return
    }

    if(A_ThisMenuItem == "削除する(&D)"){
        %exp76_rightClickControl%_script =
        %exp76_rightClickControl%_type =
        %exp76_rightClickControl%_text =
        %exp76_rightClickControl%_img =
        ; セーブ時にファイルを削除しているからいらない
        ; IniDelete, %exp76_iniFile%, %exp76_rightClickControl%
        GuiControl, 76:+Hidden, %exp76_rightClickControl%
        exp76_rightClickControl =
        return
    }

    if(A_ThisMenuItem == "内容(&N)"){
        F_tmpOutput( %exp76_rightClickControl%_script )
    }
    exp76_rightClickControl =
}

exp76_tmpExeScript := %A_GuiControl%_script
if( exp76_tmpExeScript == "" ){
    ; F_tmpOutput( "まだ、ファイルパスを登録していない。" )
    return
}
F_textExe( exp76_tmpExeScript )
; 初期化する
exp76_tmpExeScript =