【ご質問】
カスタマイズされたコンテキストメニューに
標準で右クリック時に表示されるコンテキストメニューの「印刷」と同等処理を行う
メニューを作成することは可能でしょうか?
また、特定コントロールのみを印刷するといった制御は可能でしょうか?
【回答】
print-graphicプロシージャを使用することで実現可能です。
★同等処理を行うには
print-graphicプロシージャに印刷対象として、
画面に表示されている全てのコンテンツを含むコンテナ(FrameやVBoxなど) を指定し、
「hstretch? = true」及び「ne-title = {get-base-url}」の2つのプロパティの設定を行います。
これにより、デフォルトの「印刷…」とほぼ同等の印刷を行うことができます。
{MenuAction ||デフォルトの「印刷…」ボタンと同じスタイルで印刷する為に |
★印刷対象の制御をするには
print-graphicプロシージャの印刷対象として、印刷したいコントロールを指定することによって、
特定のコントロールのみ印刷することが可能となります。
また、context-popupプロシージャの設定をする際に、
menu-pane-procのキーワード引数に対して、下記のように記述することにより、
コンテキストメニューを呼び出したコントロールの印刷を行うという設定もできます。
menu-pane-proc = |
この設定は、例えば、画面に表示されている全てのコントロールに対して、
そのコントロールのみの印刷を行うというコンテキストメニューを追加する場合などに使用できます。
(例えば、全てのコントロールを含むVBoxのchild-arrayを呼び、for文を使い、
その1つ1つのchildに対して、add-event-handlerで上記設定を行った
context-popupプロシージャを追加するという方法が考えられます。)