tags:

views:

75

answers:

2

The question is self-explaining, how to create a tearoff menu using GTKAda? I can't make it work.

Thanks.

+1  A: 

Not sure if this is what you are looking for, but the GtkAda reference manual says:

All the menus in GtkAda can be "Tear off" menus, i.e you can detach them from their parent (either a menu bar or another menu) to keep them visible on the screen at all times).

So it sounds as if you don't have to do anything.

Yes, but they're not tear off menus, a tear off menu is one that can separate itself from the menu bar and remain visible all time.
Carl
But that's exactly what the reference manual says.
Thanks for your comment though, I'll keep looking at it.
Carl
+2  A: 

If you added the code you have to your question it would be more descriptive.

I've written a bit of code to demonstrate the usage of the tear off menu with GTKAda, it's not so difficult, but it may be hard to find documentation about it:

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;

The declare/begin/end structure allows you to declare variables in run time.

The boolean parameter allows you decide if you want it to be a tear off menu when you create it. The function just creates the menu so you'd have to add it to a menu bar (for example) later.

Xandy
It does work! Thanks!
Carl