ARexxでWorkbenchを制御(メニューを追加)
(2002.09.01)
アイコンを使って操作する場合に
(しない場合のほうが多いですが)
アイコンの位置がばらばらになったり、
アプリケーションがファイルを保存する際に
アイコンの位置を変えてしまったり、
私にとって都合の悪い事があります。
そんな時は、
- その開いているフォルダを選択
- メニュー「Window|Show|All files」を選択
- メニュー「Window|Select contents」を選択
- メニュー「Icons|UnSnapshot」を選択
- メニュー「Window|Update」を選択
という操作をして、アイコンを並べ直しています。
Amiga OS 3.9のWorkbenchでは、
メニューを追加できるので、
これらの操作を追加してみました。
用意したもの一覧
| 項番 | 種類 | 役割 | ファイル名 |
| 1 | ARexxスクリプト | フォルダを操作 | menu_refresh.rexx |
| 2 | ARexxスクリプト | メニューを1個追加 | menu_add.rexx |
| 3 | ARexxスクリプト | メニュー「Refresh」を追加 | menu_items.rexx |
| 4 | アイコン | menu_items.rexxを起動 | SYS:WBStartup/menu_items |
Amigaを起動すると、こんな感じになります。
- Workbenchを起動
- SYS:WBStartup/menu_itemsを起動
- menu_items.rexxを起動
- menu_add.rexxを起動
- メニュー「Refresh」を追加
これで、アイコンを並べ直す時は、
- はじめに、その開いているフォルダを選択します
- つぎに、メニュー「Tools|Refresh」を選択します
- すると、「menu_refresh.rexx」が起動されて、
フォルダが操作されます
簡単でしょ。
ほんと、Amiga使っていて良かったと思います。
《付録》
作成したファイルの内容です。
- ファイル名
- アイコンの設定
- ファイルの内容
の順番で記載しました。
menu_refresh.rexx
Type: Tool
Protection | Script: (check)
Start from: ARexx
Prompt for input: (none)
/*
$VER: window refresh. 1.0, 2002/08/20
*/
OPTIONS RESULTS
ADDRESS workbench
GETATTR OBJECT WINDOWS STEM ga
IF '' ~= ga.ACTIVE & 'root' ~= ga.ACTIVE THEN DO
MENU INVOKE WINDOW.SHOW.ALLFILES
MENU INVOKE WINDOW.SELECTCONTENTS
MENU INVOKE ICONS.UNSNAPSHOT
MENU INVOKE WINDOW.UPDATE
END
menu_add.rexx
Type: Tool
Protection | Script: (check)
Start from: ARexx
Prompt for input: (none)
/*
$VER: add menu for freerefresh. 1.0, 2002/08/20
usage : menu_add.rexx 'name' 'title' 'script'
*/
OPTIONS RESULTS
ADDRESS workbench
/*
args
*/
PARSE ARG menuname menutitle menuscript junk
IF '' == menuname OR '' == menutitle OR '' == menuscript THEN DO
SAY "addmenu : 'name' 'title' 'script'"
EXIT
END
/*
check menu assigned
*/
GETATTR OBJECT MENUCOMMANDS STEM ga
foundit = 0
i = 0
DO WHILE i < ga.COUNT
IF ga.i.NAME = menuname THEN DO
foundit = 1
LEAVE
END
i = i + 1
END
/*
remove same menu item if assigned.
*/
IF foundit THEN DO
MENU NAME menuname REMOVE
END
/*
assign menu item.
*/
'MENU NAME 'menuname' TITLE 'menutitle' ADD CMD 'menuscript
menu_items.rexx
Type: Tool
Protection | Script: (check)
Start from: ARexx
Prompt for input: (none)
/*
$VER: add menu items. 1.0, 2002/08/20
*/
OPTIONS RESULTS
ADDRESS COMMAND
/*
name title script
*/
'menu_add.rexx refresh Refresh projvol:scripts/menu_refresh.rexx'
SYS:WBStartup/menu_items
Type: Project
Default Tool: (menu_items.rexxへのフルパス)
Start from: Shell
Prompt for input: (none)
Wait until finished: (none)
(アイコンだけで、ファイルはありません)