Home>Monologue> Part of Script factory. scriptfactory@mac.com .

Advanced Popup Menus

Contents

Introduction

Dialog Dumperを使って、かなりいろんなtype、及び動作をするPopup menuを作ることができます。そのすべての解説を試みます。

まずは、Basic Dialog ItemsPopup Menuのところを理解していらっしゃることを前提とします。

基本的に、CNTL resouceのProcIDとRefConの設定をどうするかということに尽きます。

以下の解説には、Basic Dialog ItemsPopup Menuで使用したresourceを流用して、その差分の部分だけを説明します。

Popup Menu with Text field

popup menuと連動して内容が変わるtext fieldつきpopup menuを作ることができます。

Popup with Text Field

まず、DITL resourceですが、popup menuだけではだめで、popup menuとして連動して動くtext fieldも作る必要があります。ちなみにここで定義したtext fieldの値がtext file及びpopup menuの初期値になります。text field付きpopup menuの場合、text fieldのvalueに完全に初期値が支配され、popup menuのCNTL resourceにおけるvalueは意味がないようです。

Popup with Text Field DITL

text filed付きpopup menuのCNTL resouceは以下の条件を見たさなれればなりません。

以上の条件を満たせば、Dialog DumperはそのCNTL resourceをtext field付きpopup menuであると認識してくれます。

さらにtext filed付きpopup menuのCNTL resourceの注意点としては、

次のように設定してみました。

Popup with Text Field CNTL

Dialog Dumperので掃き出されるcodeは以下のような感じになります。

-- PopupWithTextField 
set |dNormalPopup| to {size:[224, 141], style:standard window, closeable:true, name:"Simple Dialog", contents:[¬ 
    {class:text field, bounds:[37, 42, 112, 58], value:"Second"}, ¬ 
    {class:pop up, bounds:[115, 40, 137, 60], text field:1, contents:["First", "Second", "Third"]} ¬ 
        ] ¬ 
    } 
 
dd auto dialog |dNormalPopup| with grayscale

sample resource fileのdownload

Apple Menu

なんと、Popup Menuにアップルメニューの内容をもってくることができます。まあ、できて何がうれしいかはすさまじく疑問なのですが。

Apple Menu Popup

アップルメニューをその内容にするpopup menuは、CNTL resourceのProcIDを「1012」、RefConに「1146246738」を設定します。このRefConに設定する妙な番号は「DRVR」の文字コードを10進数で表現するとこうなるようです。そして、「DRVR」という文字列が、アップルメニューを意味するということのようです。

Apple Menu Popup CNTL

Dialog Dumper で変換すると以下のような AppleScript の code が生成されるはずです。

set |dNormalPopup| to {size:[224, 141], style:standard window, closeable:true, name:"Simple Dialog", contents:[¬ 
    {class:pop up, bounds:[33, 42, 183, 62], name:"Apple Menu", name width:80, contents:"DRVR"} ¬ 
        ] ¬ 
    } 
 
dd auto dialog |dNormalPopup| with grayscale

まあ、なんの役に立つのかわかりませぬが、面白いんで紹介しました。

sample resouce fileのdownload

Font Menu

フォンとメニューのpopup menuもアップルメニューと同じ要領で結構簡単に作れます。

Font Menu Popup

CNTL rexourceのRefConの値を「1179602516」とします。これは「FONT」という文字列のcodeを十進数で表記したもののようです。

CNTL resouceは以下のようになるでしょうか。

FontMenu Popup CNTL

Dialog Dumperによって生成されるcodeは以下のようになります。

-- FontMenu popup 
set |dNormalPopup| to {size:[224, 141], style:standard window, closeable:true, name:"Simple Dialog", contents:[¬ 
    {class:pop up, bounds:[33, 42, 183, 62], name:"Font:", name width:40, contents:"FONT"} ¬ 
        ] ¬ 
    } 
 
dd auto dialog |dNormalPopup| with grayscale

sample resource fileのdownload

Summary

以上で Dialog Director 及び、Dialog Dumper の popup menu に関する機能はすべて網羅したと思います。基本的に CNTL resouce の各種値を設定することによりいろんな popup menu に化けるわけですが、その対応表を以下のようにまとめてみました。

ProcID Title RefCon popup menu
1008 設定する title付きpopup menu。MENU resourceを参照する。
空欄 0 titleもtext fieldも付かないpopup menu。 MENU resourceを参照する。
text fieldのitem number text fieldつきpop up
1012 0 だいたいProcIDが1008の場合と同じように振る舞うが、text field付きpopup menuはできない。
1146246738 アップルメニュー
1179602516 フォントメニュー

This page was last built on Wed, Feb 17, 2016 ; 10:00:14 AM . Thanks for checking it out!