|
Packit |
b099d7 |
/* $XConsortium: interface.c /main/4 1995/07/15 20:39:38 drk $ */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#include <stdio.h>
|
|
Packit |
b099d7 |
#include <stdlib.h>
|
|
Packit |
b099d7 |
#include <Xm/XmAll.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void CreateMenus(Widget);
|
|
Packit |
b099d7 |
void HelpCB(Widget, XtPointer, XtPointer);
|
|
Packit |
b099d7 |
void QuitCB(Widget, XtPointer, XtPointer);
|
|
Packit |
b099d7 |
extern Widget top_level;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/**************************************************************************
|
|
Packit |
b099d7 |
CreateMenus: This function generates the menu bar and the submenus.
|
|
Packit |
b099d7 |
**************************************************************************/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
CreateMenus(Widget parent_of_menu_bar)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmString file, help;
|
|
Packit |
b099d7 |
Widget menubar, FilePullDown, HelpPullDown;
|
|
Packit |
b099d7 |
Widget overview, quit, Help1;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Create the menubar itself. */
|
|
Packit |
b099d7 |
file = XmStringCreateSimple("File");
|
|
Packit |
b099d7 |
help = XmStringCreateSimple("Help");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
menubar = (Widget)XmCreateMenuBar(parent_of_menu_bar, "menubar",
|
|
Packit |
b099d7 |
NULL, 0);
|
|
Packit |
b099d7 |
FilePullDown = (Widget)XmCreatePulldownMenu(menubar, "FilePullDown",
|
|
Packit |
b099d7 |
NULL, 0);
|
|
Packit |
b099d7 |
HelpPullDown = (Widget)XmCreatePulldownMenu(menubar, "HelpPullDown",
|
|
Packit |
b099d7 |
NULL, 0);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************FILE*********************************/
|
|
Packit |
b099d7 |
XtVaCreateManagedWidget("File", xmCascadeButtonWidgetClass, menubar,
|
|
Packit |
b099d7 |
XmNlabelString, file,
|
|
Packit |
b099d7 |
XmNmnemonic, 'F',
|
|
Packit |
b099d7 |
XmNsubMenuId, FilePullDown,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
quit = XtVaCreateManagedWidget("Quit", xmPushButtonGadgetClass,
|
|
Packit |
b099d7 |
FilePullDown, NULL);
|
|
Packit |
b099d7 |
XtAddCallback(quit, XmNactivateCallback, QuitCB, NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************HELP*********************************/
|
|
Packit |
b099d7 |
Help1 = XtVaCreateManagedWidget("Help", xmCascadeButtonWidgetClass,
|
|
Packit |
b099d7 |
menubar,
|
|
Packit |
b099d7 |
XmNlabelString, help,
|
|
Packit |
b099d7 |
XmNmnemonic, 'H',
|
|
Packit |
b099d7 |
XmNsubMenuId, HelpPullDown,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
XtVaSetValues(menubar, XmNmenuHelpWidget, Help1, NULL);
|
|
Packit |
b099d7 |
overview = XtVaCreateManagedWidget("Overview", xmPushButtonGadgetClass,
|
|
Packit |
b099d7 |
HelpPullDown, NULL);
|
|
Packit |
b099d7 |
XtAddCallback(overview, XmNactivateCallback, HelpCB, (XtPointer)1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmStringFree(file);
|
|
Packit |
b099d7 |
XmStringFree(help);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(menubar);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*********************************************************************
|
|
Packit |
b099d7 |
HelpCB: This function is called when the user requests help. This
|
|
Packit |
b099d7 |
function displays a Message DialogBox.
|
|
Packit |
b099d7 |
*********************************************************************/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
HelpCB(Widget w,
|
|
Packit |
b099d7 |
XtPointer cd,
|
|
Packit |
b099d7 |
XtPointer cb
|
|
Packit |
b099d7 |
)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int what_kind_of_help = (int)cd;
|
|
Packit |
b099d7 |
char help_string[400];
|
|
Packit |
b099d7 |
XmString hs_as_cs;
|
|
Packit |
b099d7 |
Widget dialog_general_help;
|
|
Packit |
b099d7 |
Arg arg[3];
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sprintf(help_string,
|
|
Packit |
b099d7 |
"This program demonstrates how to use an XmComboBox in an application.\n\
|
|
Packit |
b099d7 |
You can make a selection by typing it directly into the TextField\n\
|
|
Packit |
b099d7 |
or by selecting the item from the DropDown list. To make the list\n\
|
|
Packit |
b099d7 |
drop down, click on the arrow that appears next to the TextField.");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
hs_as_cs = XmStringCreateLtoR(help_string,
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(arg[0], XmNmessageString, hs_as_cs);
|
|
Packit |
b099d7 |
dialog_general_help = (Widget)XmCreateMessageDialog(top_level,
|
|
Packit |
b099d7 |
"message", arg, 1);
|
|
Packit |
b099d7 |
XmStringFree(hs_as_cs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (what_kind_of_help) {
|
|
Packit |
b099d7 |
case 1: XtManageChild(dialog_general_help);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
default: /* no other help */
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*******************************************************************************
|
|
Packit |
b099d7 |
QuitCB: Exit
|
|
Packit |
b099d7 |
*******************************************************************************/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
QuitCB(Widget w, XtPointer cd, XtPointer cb)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
exit(0);
|
|
Packit |
b099d7 |
}
|