Cómo crear un menú usando tearoff GtkAda?
Pregunta
La pregunta es autoexplicativo, cómo crear un menú usando tearoff GtkAda? No puedo hacer que funcione.
Gracias.
Solución
Si ha añadido el código que tiene a su pregunta sería más descriptivo.
He escrito un poco de código para demostrar el uso de la lágrima de menú con GtkAda, no es tan difícil, pero puede ser difícil de encontrar documentación sobre el tema:
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;
La estructura declare/begin/end
permite declarar las variables en tiempo de ejecución.
El parámetro boolean
le permite decidir si quiere que sea una lágrima de menú cuando se crea. La función simplemente crea el menú, así que habría que añadirlo a una barra de menú (por ejemplo) más adelante.
Otros consejos
No estoy seguro si esto es lo que busca, pero el manual de referencia GtkAda dice:
Todos los menús en GtkAda puede ser "Arranque" menús, es decir que puede separarlos de sus padres (ya sea una barra de menús o otro menú) para mantenerlos visibles en la pantalla en todo momento).
Así que suena como si usted no tiene que hacer nada.