GTKAda を使用してティアオフ メニューを作成する方法を教えてください。私はそれを機能させることはできません。
ありがとう。
質問にコードを追加すると、より説明的になります。
GTKAda でティアオフ メニューを使用する方法を示すコードを少し書きました。それほど難しくはありませんが、それに関するドキュメントを見つけるのは難しいかもしれません。
function CreateFileMenu(tearOff : boolean) return Gtk_Menu is
fileMenu : Gtk_Menu;
newFile, loadFile, saveFile, saveAs, close : Gtk_Menu_Item;
begin
-- Create the menu:
Gtk_New(fileMenu);
-- Add the tear off item to the menu if required:
if tearOff then
declare
tear : Gtk_Tearoff_Menu_Item;
begin
Gtk_New(tear);
Append fileMenu, tear);
Show(tear);
end;
end if;
-- Create the rest of the menu items:
Gtk_New_With_Mnemonic(newFile, "_New");
Gtk_New_With_Mnemonic(loadFile, "_Load");
Gtk_New_With_Mnemonic(saveFile, "_Save");
Gtk_New_With_Mnemonic(saveAs, "Save _as...");
Gtk_New_With_Mnemonic(close, "_Close");
-- Add the items to the menu:
Add(fileMenu, newFile);
Add(fileMenu, loadFile);
Add(fileMenu, saveFile);
Add(fileMenu, saveAs);
Add(fileMenu, close);
return fileMenu;
end CreateFileMenu;
このdeclare/begin/end
構造により、実行時に変数を宣言できます。
パラメータを使用すると、boolean
作成時にティアオフ メニューにするかどうかを決定できます。この関数はメニューを作成するだけなので、(たとえば) 後でメニュー バーに追加する必要があります。
これがあなたが探しているものかどうかはわかりませんが、GtkAda のリファレンス マニュアルには次のように書かれています。
GtkAda のすべてのメニューは「ティアオフ」メニューにすることができます。つまり、それらを親 (メニューバーまたは別のメニュー) から切り離して、常に画面に表示しておくことができます)。
そのため、何もする必要がないかのように聞こえます。