Tabbed Gadget

A tabbed gadget is derive from the frame gadget. It is a frame with tabs.

To create a tabbed control:

    #include <oops/r3tabbed.h>

    char *labels[] = {
        "Foo",
        "Foo 2",
        NULL
    };

    char *tooltips[] = {
        "Foo blaa blaa",
        "Foo even more ... ",
        NULL
    };
        
    frame = R3New(R3CLID_TABBED,
                  R3WGA_Parent, window,
                  R3TABA_Labels, labels,
                  R3TABA_ToolTips, tooltips,
                  R3TAG_END);

You can also create icons based tabs:

    void *class_icons[] = {
        foo_bits,
        foo2_bits,
        NULL
    };

    frame = R3New(R3CLID_TABBED,
                  R3WGA_Parent,      window,
                  R3TABA_IconWidth,  icon_width,
                  R3TABA_IconHeight, icon_height,
                  R3TABA_Depth,      icon_depth,
                  R3TABA_Icons,      icons,
                  R3TAG_END);'

Note that the program doesn't handle the tabs for you. You have to ask the tab to talk to you with R3WGM_MAPCHANGES. When the user plays with the tabbed control, you can see what the current tab is and update the layout accordingly. For more information, study the 'samples/kernel/gadget/tabbed.c' sample.