Blame docs/tutorial/html/c1499.html

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Menu Widget
Packit Service fb6fa5
>
Packit Service fb6fa5
NAME="GENERATOR"
Packit Service fb6fa5
CONTENT="Modular DocBook HTML Stylesheet Version 1.79">
Packit Service fb6fa5
REL="HOME"
Packit Service fb6fa5
TITLE="GTK+ 2.0 Tutorial"
Packit Service fb6fa5
HREF="book1.html">
Packit Service fb6fa5
REL="PREVIOUS"
Packit Service fb6fa5
TITLE="Notebooks"
Packit Service fb6fa5
HREF="x1450.html">
Packit Service fb6fa5
REL="NEXT"
Packit Service fb6fa5
TITLE="Manual Menu Example"
Packit Service fb6fa5
HREF="x1577.html">
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="CHAPTER"
Packit Service fb6fa5
BGCOLOR="#FFFFFF"
Packit Service fb6fa5
TEXT="#000000"
Packit Service fb6fa5
LINK="#0000FF"
Packit Service fb6fa5
VLINK="#840084"
Packit Service fb6fa5
ALINK="#0000FF"
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="NAVHEADER"
Packit Service fb6fa5
>
Packit Service fb6fa5
SUMMARY="Header navigation table"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
CELLPADDING="0"
Packit Service fb6fa5
CELLSPACING="0"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
COLSPAN="3"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
>GTK+ 2.0 Tutorial
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="10%"
Packit Service fb6fa5
ALIGN="left"
Packit Service fb6fa5
VALIGN="bottom"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="x1450.html"
Packit Service fb6fa5
ACCESSKEY="P"
Packit Service fb6fa5
><<< Previous
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="80%"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
VALIGN="bottom"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="10%"
Packit Service fb6fa5
ALIGN="right"
Packit Service fb6fa5
VALIGN="bottom"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="x1577.html"
Packit Service fb6fa5
ACCESSKEY="N"
Packit Service fb6fa5
>Next >>>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
ALIGN="LEFT"
Packit Service fb6fa5
WIDTH="100%">
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="CHAPTER"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
NAME="CH-MENUWIDGET"
Packit Service fb6fa5
>
Packit Service fb6fa5
>Menu Widget
Packit Service fb6fa5
>
Packit Service fb6fa5
>There are two ways to create menus: there's the easy way, and there's
Packit Service fb6fa5
the hard way. Both have their uses, but you can usually use the
Packit Service fb6fa5
Itemfactory (the easy way). The "hard" way is to create all the menus
Packit Service fb6fa5
using the calls directly. The easy way is to use the gtk_item_factory
Packit Service fb6fa5
calls. This is much simpler, but there are advantages and
Packit Service fb6fa5
disadvantages to each approach.
Packit Service fb6fa5
>
Packit Service fb6fa5
>The Itemfactory is much easier to use, and to add new menus to,
Packit Service fb6fa5
although writing a few wrapper functions to create menus using the
Packit Service fb6fa5
manual method could go a long way towards usability. With the
Packit Service fb6fa5
Itemfactory, it is not possible to add images or the character '/' to
Packit Service fb6fa5
the menus.
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="SECT1"
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="SECT1"
Packit Service fb6fa5
>
Packit Service fb6fa5
NAME="SEC-MANUALMENUCREATION"
Packit Service fb6fa5
>Manual Menu Creation
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>In the true tradition of teaching, we'll show you the hard way
Packit Service fb6fa5
first. 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>:)
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>There are three widgets that go into making a menubar and submenus:
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>a menu item, which is what the user wants to select, e.g.,
Packit Service fb6fa5
"Save"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>a menu, which acts as a container for the menu items, and
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>a menubar, which is a container for each of the individual
Packit Service fb6fa5
menus.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>This is slightly complicated by the fact that menu item widgets are
Packit Service fb6fa5
used for two different things. They are both the widgets that are
Packit Service fb6fa5
packed into the menu, and the widget that is packed into the menubar,
Packit Service fb6fa5
which, when selected, activates the menu.
Packit Service fb6fa5
>
Packit Service fb6fa5
>Let's look at the functions that are used to create menus and
Packit Service fb6fa5
menubars.  This first function is used to create a new menubar.
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>GtkWidget *gtk_menu_bar_new( void );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>This rather self explanatory function creates a new menubar. You use
Packit Service fb6fa5
gtk_container_add() to pack this into a window, or the box_pack
Packit Service fb6fa5
functions to pack it into a box - the same as buttons.
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>GtkWidget *gtk_menu_new( void );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>This function returns a pointer to a new menu; it is never actually
Packit Service fb6fa5
shown (with gtk_widget_show()), it is just a container for the menu
Packit Service fb6fa5
items. I hope this will become more clear when you look at the
Packit Service fb6fa5
example below.
Packit Service fb6fa5
>
Packit Service fb6fa5
>The next three calls are used to create menu items that are packed into
Packit Service fb6fa5
the menu (and menubar).
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>GtkWidget *gtk_menu_item_new( void );
Packit Service fb6fa5
Packit Service fb6fa5
GtkWidget *gtk_menu_item_new_with_label( const char *label );
Packit Service fb6fa5
Packit Service fb6fa5
GtkWidget *gtk_menu_item_new_with_mnemonic( const char *label );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>These calls are used to create the menu items that are to be
Packit Service fb6fa5
displayed.  Remember to differentiate between a "menu" as created with
Packit Service fb6fa5
gtk_menu_new() and a "menu item" as created by the gtk_menu_item_new()
Packit Service fb6fa5
functions. The menu item will be an actual button with an associated
Packit Service fb6fa5
action, whereas a menu will be a container holding menu items.
Packit Service fb6fa5
>
Packit Service fb6fa5
>The gtk_menu_item_new_with_label() and gtk_menu_item_new() functions are just as
Packit Service fb6fa5
you'd expect after reading about the buttons. One creates a new menu
Packit Service fb6fa5
item with a label already packed into it, and the other just creates a
Packit Service fb6fa5
blank menu item.
Packit Service fb6fa5
>
Packit Service fb6fa5
>Once you've created a menu item you have to put it into a menu. This
Packit Service fb6fa5
is done using the function gtk_menu_shelll_append. In order to capture when
Packit Service fb6fa5
the item is selected by the user, we need to connect to the
Packit Service fb6fa5
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>activate
Packit Service fb6fa5
> signal in the usual way. So, if we wanted to create a
Packit Service fb6fa5
standard 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>File
Packit Service fb6fa5
> menu, with the options 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>Open
Packit Service fb6fa5
>, 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>Save
Packit Service fb6fa5
>, and
Packit Service fb6fa5
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>Quit
Packit Service fb6fa5
>, the code would look something like:
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>    file_menu = gtk_menu_new ();    /* Don't need to show menus */
Packit Service fb6fa5
Packit Service fb6fa5
    /* Create the menu items */
Packit Service fb6fa5
    open_item = gtk_menu_item_new_with_label ("Open");
Packit Service fb6fa5
    save_item = gtk_menu_item_new_with_label ("Save");
Packit Service fb6fa5
    quit_item = gtk_menu_item_new_with_label ("Quit");
Packit Service fb6fa5
Packit Service fb6fa5
    /* Add them to the menu */
Packit Service fb6fa5
    gtk_menu_shell_append (GTK_MENU_SHELL (file_menu), open_item);
Packit Service fb6fa5
    gtk_menu_shell_append (GTK_MENU_SHELL (file_menu), save_item);
Packit Service fb6fa5
    gtk_menu_shell_append (GTK_MENU_SHELL (file_menu), quit_item);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Attach the callback functions to the activate signal */
Packit Service fb6fa5
    g_signal_connect_swapped (open_item, "activate",
Packit Service fb6fa5
                              G_CALLBACK (menuitem_response),
Packit Service fb6fa5
                              (gpointer) "file.open");
Packit Service fb6fa5
    g_signal_connect_swapped (save_item, "activate",
Packit Service fb6fa5
                              G_CALLBACK (menuitem_response),
Packit Service fb6fa5
                              (gpointer) "file.save");
Packit Service fb6fa5
Packit Service fb6fa5
    /* We can attach the Quit menu item to our exit function */
Packit Service fb6fa5
    g_signal_connect_swapped (quit_item, "activate",
Packit Service fb6fa5
                              G_CALLBACK (destroy),
Packit Service fb6fa5
                              (gpointer) "file.quit");
Packit Service fb6fa5
Packit Service fb6fa5
    /* We do need to show menu items */
Packit Service fb6fa5
    gtk_widget_show (open_item);
Packit Service fb6fa5
    gtk_widget_show (save_item);
Packit Service fb6fa5
    gtk_widget_show (quit_item);
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>At this point we have our menu. Now we need to create a menubar and a
Packit Service fb6fa5
menu item for the 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>File
Packit Service fb6fa5
> entry, to which we add our menu. The code
Packit Service fb6fa5
looks like this:
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>    menu_bar = gtk_menu_bar_new ();
Packit Service fb6fa5
    gtk_container_add (GTK_CONTAINER (window), menu_bar);
Packit Service fb6fa5
    gtk_widget_show (menu_bar);
Packit Service fb6fa5
Packit Service fb6fa5
    file_item = gtk_menu_item_new_with_label ("File");
Packit Service fb6fa5
    gtk_widget_show (file_item);
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Now we need to associate the menu with 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>file_item
Packit Service fb6fa5
>. This is done
Packit Service fb6fa5
with the function
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>void gtk_menu_item_set_submenu( GtkMenuItem *menu_item,
Packit Service fb6fa5
                                GtkWidget   *submenu );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>So, our example would continue with
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>    gtk_menu_item_set_submenu (GTK_MENU_ITEM (file_item), file_menu);
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>All that is left to do is to add the menu to the menubar, which is
Packit Service fb6fa5
accomplished using the function
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>void gtk_menu_bar_append( GtkMenuBar *menu_bar,
Packit Service fb6fa5
                          GtkWidget  *menu_item );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>which in our case looks like this:
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>    gtk_menu_bar_append (GTK_MENU_BAR (menu_bar), file_item);
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>If we wanted the menu right justified on the menubar, such as help
Packit Service fb6fa5
menus often are, we can use the following function (again on
Packit Service fb6fa5
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>file_item
Packit Service fb6fa5
> in the current example) before attaching it to the
Packit Service fb6fa5
menubar.
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>void gtk_menu_item_right_justify( GtkMenuItem *menu_item );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Here is a summary of the steps needed to create a menu bar with menus
Packit Service fb6fa5
attached:
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
> Create a new menu using gtk_menu_new()
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
> Use multiple calls to gtk_menu_item_new() for each item you
Packit Service fb6fa5
wish to have on your menu. And use gtk_menu_shell_append() to put each of
Packit Service fb6fa5
these new items on to the menu.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
> Create a menu item using gtk_menu_item_new(). This will be the
Packit Service fb6fa5
root of the menu, the text appearing here will be on the menubar
Packit Service fb6fa5
itself.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Use gtk_menu_item_set_submenu() to attach the menu to the root
Packit Service fb6fa5
menu item (the one created in the above step).
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
> Create a new menubar using gtk_menu_bar_new. This step only
Packit Service fb6fa5
needs to be done once when creating a series of menus on one menu bar.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
> Use gtk_menu_bar_append() to put the root menu onto the menubar.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Creating a popup menu is nearly the same. The difference is that the
Packit Service fb6fa5
menu is not posted "automatically" by a menubar, but explicitly by
Packit Service fb6fa5
calling the function gtk_menu_popup() from a button-press event, for
Packit Service fb6fa5
example.  Take these steps:
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Create an event handling function. It needs to have the
Packit Service fb6fa5
prototype
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="90%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>static gboolean handler( GtkWidget *widget,
Packit Service fb6fa5
                         GdkEvent  *event );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>and it will use the event to find out where to pop up the menu.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>In the event handler, if the event is a mouse button press,
Packit Service fb6fa5
treat 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>event
Packit Service fb6fa5
> as a button event (which it is) and use it as
Packit Service fb6fa5
shown in the sample code to pass information to gtk_menu_popup().
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Bind that event handler to a widget with
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="90%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>    g_signal_connect_swapped (widget, "event",
Packit Service fb6fa5
                              G_CALLBACK (handler),
Packit Service fb6fa5
                              menu);
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>where 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>widget
Packit Service fb6fa5
> is the widget you are binding to,
Packit Service fb6fa5
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>handler
Packit Service fb6fa5
> is the handling function, and 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>menu
Packit Service fb6fa5
> is a menu
Packit Service fb6fa5
created with gtk_menu_new(). This can be a menu which is also posted
Packit Service fb6fa5
by a menu bar, as shown in the sample code.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="NAVFOOTER"
Packit Service fb6fa5
>
Packit Service fb6fa5
ALIGN="LEFT"
Packit Service fb6fa5
WIDTH="100%">
Packit Service fb6fa5
SUMMARY="Footer navigation table"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
CELLPADDING="0"
Packit Service fb6fa5
CELLSPACING="0"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="left"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="x1450.html"
Packit Service fb6fa5
ACCESSKEY="P"
Packit Service fb6fa5
><<< Previous
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="34%"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="book1.html"
Packit Service fb6fa5
ACCESSKEY="H"
Packit Service fb6fa5
>Home
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="right"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="x1577.html"
Packit Service fb6fa5
ACCESSKEY="N"
Packit Service fb6fa5
>Next >>>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="left"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>Notebooks
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="34%"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="right"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>Manual Menu Example
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>