Blame tests/mwm/user/MwmUI5.c

Packit b099d7
/* $XConsortium: MwmUI5.c /main/4 1995/07/15 21:14:21 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
 * HISTORY
Packit b099d7
 */
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
#include <testlib.h>
Packit b099d7
Packit b099d7
typedef struct _test_dialog_rec *test_dialog;
Packit b099d7
typedef struct _test_dialog_rec {
Packit b099d7
    Widget          form_dialog;
Packit b099d7
    Widget          test_button;
Packit b099d7
    Widget          ok_button;
Packit b099d7
    test_dialog     the_test_dialog;
Packit b099d7
} test_dialog_rec;
Packit b099d7
Packit b099d7
Widget              toplevel;
Packit b099d7
test_dialog         the_test_dialog;
Packit b099d7
static int          dialog_id = 0;
Packit b099d7
Packit b099d7
static test_dialog  test_dialog_create ();
Packit b099d7
static void         test_dialog_manage ();
Packit b099d7
static void         test_dialog_unmanage ();
Packit b099d7
Packit b099d7
Packit b099d7
unsigned int main (argc, argv)
Packit b099d7
    unsigned int argc;
Packit b099d7
    char         *argv[];
Packit b099d7
{
Packit b099d7
    Widget       TestShell1;
Packit b099d7
    XmString     label_string;
Packit b099d7
    Arg          args[10];
Packit b099d7
    int          n;
Packit b099d7
Packit b099d7
    CommonTestInit (argc,argv);
Packit b099d7
Packit b099d7
Packit b099d7
    n = 0;
Packit b099d7
    XtSetArg (args[n], XmNallowShellResize, True); n++;
Packit b099d7
    XtSetArg (args[n], XmNwidth, 100); n++;
Packit b099d7
    XtSetArg (args[n], XmNheight, 100); n++;
Packit b099d7
    the_test_dialog = test_dialog_create (Shell1);
Packit b099d7
Packit b099d7
    n=0;
Packit b099d7
    XtSetArg (args[n], XmNwidth, 100); n++;
Packit b099d7
    XtSetArg (args[n], XmNheight, 100); n++;
Packit b099d7
    TestShell1 = XtAppCreateShell ("TestWindow1", "TestWindow1",
Packit b099d7
                                   topLevelShellWidgetClass,
Packit b099d7
                                   display, args, n);
Packit b099d7
Packit b099d7
    XtRealizeWidget (TestShell1);
Packit b099d7
    CommonPause();
Packit b099d7
    CommonPause();
Packit b099d7
    XtAppMainLoop (app_context);
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static void activate_proc (widget, the_dialog)
Packit b099d7
    Widget      widget;
Packit b099d7
    test_dialog the_dialog;
Packit b099d7
{
Packit b099d7
    if (widget == the_dialog->test_button)
Packit b099d7
    {
Packit b099d7
        if (the_dialog->the_test_dialog == NULL)
Packit b099d7
        {
Packit b099d7
            the_dialog->the_test_dialog = test_dialog_create
Packit b099d7
(the_dialog->form_dialog);
Packit b099d7
        }
Packit b099d7
        test_dialog_manage (the_dialog->the_test_dialog);
Packit b099d7
    }
Packit b099d7
    else if (widget == the_dialog->ok_button)
Packit b099d7
    {
Packit b099d7
        test_dialog_unmanage (the_dialog);
Packit b099d7
    }
Packit b099d7
}
Packit b099d7
Packit b099d7
Packit b099d7
static test_dialog test_dialog_create (parent)
Packit b099d7
  Widget parent;
Packit b099d7
{
Packit b099d7
    Arg         args[20];
Packit b099d7
    int         n;
Packit b099d7
    test_dialog the_dialog;
Packit b099d7
    the_dialog = (test_dialog) XtMalloc(sizeof(test_dialog_rec));
Packit b099d7
    the_dialog->the_test_dialog = NULL;
Packit b099d7
    dialog_id++;
Packit b099d7
    {
Packit b099d7
        char     id_string[20];
Packit b099d7
        XmString dialog_title;
Packit b099d7
        sprintf(id_string, "Form%d", dialog_id);
Packit b099d7
        dialog_title = XmStringCreate(id_string, XmSTRING_DEFAULT_CHARSET);
Packit b099d7
        n = 0;
Packit b099d7
        XtSetArg (args[n], XmNautoUnmanage, False); n++;
Packit b099d7
        XtSetArg (args[n], XmNdialogTitle, dialog_title); n++;
Packit b099d7
        the_dialog->form_dialog = (Widget) XmCreateFormDialog (
Packit b099d7
            parent,
Packit b099d7
            id_string,
Packit b099d7
            args, n);
Packit b099d7
        XtManageChild (the_dialog->form_dialog);
Packit b099d7
    }
Packit b099d7
    n = 0;
Packit b099d7
    the_dialog->test_button = XmCreatePushButtonGadget (
Packit b099d7
        the_dialog->form_dialog,
Packit b099d7
        "Make Child",
Packit b099d7
        args, n);
Packit b099d7
    XtManageChild (the_dialog->test_button);
Packit b099d7
    XtAddCallback (the_dialog->test_button, XmNactivateCallback, activate_proc,
Packit b099d7
the_dialog);
Packit b099d7
    n = 0;
Packit b099d7
    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
Packit b099d7
    XtSetArg(args[n], XmNtopWidget, the_dialog->test_button); n++;
Packit b099d7
    the_dialog->ok_button = XmCreatePushButtonGadget (
Packit b099d7
        the_dialog->form_dialog,
Packit b099d7
        "Destroy Me",
Packit b099d7
        args, n);
Packit b099d7
    XtManageChild (the_dialog->ok_button);
Packit b099d7
    XtAddCallback (the_dialog->ok_button, XmNactivateCallback, activate_proc,
Packit b099d7
the_dialog);
Packit b099d7
    return (the_dialog);
Packit b099d7
}
Packit b099d7
static void test_dialog_manage (the_dialog)
Packit b099d7
    test_dialog the_dialog;
Packit b099d7
{
Packit b099d7
    XtManageChild(the_dialog->form_dialog);
Packit b099d7
}
Packit b099d7
static void test_dialog_unmanage (the_dialog)
Packit b099d7
    test_dialog the_dialog;
Packit b099d7
{
Packit b099d7
    /*
Packit b099d7
    **  Now unmanage this form.
Packit b099d7
    */
Packit b099d7
    XtUnmanageChild(the_dialog->form_dialog);
Packit b099d7
}
Packit b099d7
Packit b099d7