<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- /home/reggie/tmp/qt-3.1-reggie-23625/qt-x11-free-3.1.1/extensions/motif/examples/dialog/dialog.doc:1 --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>A Motif Dialog</title> <style type="text/css"><!-- h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; } a:link { color: #004faf; text-decoration: none } a:visited { color: #672967; text-decoration: none } body { background: #ffffff; color: black; } --></style> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr bgcolor="#E5E5E5"> <td valign=center> <a href="index.html"> <font color="#004faf">Home</font></a> | <a href="classes.html"> <font color="#004faf">All Classes</font></a> | <a href="mainclasses.html"> <font color="#004faf">Main Classes</font></a> | <a href="annotated.html"> <font color="#004faf">Annotated</font></a> | <a href="groups.html"> <font color="#004faf">Grouped Classes</font></a> | <a href="functions.html"> <font color="#004faf">Functions</font></a> </td> <td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>A Motif Dialog</h1> <p> <p> <p> <hr> <p> Header <p> <pre>#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <<a href="qmotifwidget-h.html">qmotifwidget.h</a>> class MainWindow : public <a href="qmotifwidget.html">QMotifWidget</a> { public: MainWindow(); void showDialog(); void showCustomDialog(); void showQtDialog(); }; #endif // MAINWINDOW_H </pre> <p> <hr> <p> Implementation: <p> <pre>#include <<a href="qapplication-h.html">qapplication.h</a>> #include <<a href="qmotif-h.html">qmotif.h</a>> #include "mainwindow.h" int main( int argc, char **argv ) { XtSetLanguageProc( NULL, NULL, NULL ); <a href="qmotif.html">QMotif</a> integrator( "dialog" ); <a href="qapplication.html">QApplication</a> app( argc, argv ); MainWindow mainwindow; app.<a href="qapplication.html#setMainWidget">setMainWidget</a>( &mainwindow ); mainwindow.<a href="qwidget.html#show">show</a>(); return app.<a href="qapplication.html#exec">exec</a>(); } </pre> <p> <pre>#include "mainwindow.h" #include <Xm/MainW.h> #include <Xm/RowColumn.h> #include <Xm/CascadeB.h> #include <Xm/PushB.h> #include <Xm/PushBG.h> #include <Xm/SeparatoG.h> #include <Xm/Text.h> #include <Xm/MessageB.h> #include <Xm/Form.h> #include <Xm/LabelG.h> #include <<a href="qapplication-h.html">qapplication.h</a>> #include <<a href="qmessagebox-h.html">qmessagebox.h</a>> #include <<a href="qmotifdialog-h.html">qmotifdialog.h</a>> static void dialogCallback( Widget, XtPointer client_data, XtPointer ) { MainWindow *mw = (MainWindow *) client_data; mw->showDialog(); } static void customDialogCallback( Widget, XtPointer client_data, XtPointer ) { MainWindow *mw = (MainWindow *) client_data; mw->showCustomDialog(); } static void qtDialogCallback( Widget, XtPointer client_data, XtPointer ) { MainWindow *mw = (MainWindow *) client_data; mw->showQtDialog(); } static void quitCallback( Widget, XtPointer client_data, XtPointer ) { MainWindow *mw = (MainWindow *) client_data; <a name="x2703"></a> mw-><a href="qwidget.html#close">close</a>(); } <a name="f634"></a>MainWindow::MainWindow() : <a href="qmotifwidget.html">QMotifWidget</a>( 0, xmMainWindowWidgetClass, NULL, 0, "mainwindow" ) { Widget menubar = XmCreateMenuBar( <a href="qmotifwidget.html#motifWidget">motifWidget</a>(), "menubar", NULL, 0 ); Widget filemenu = XmCreatePulldownMenu( menubar, "filemenu", NULL, 0 ); Widget item; XmString tmp = XmStringCreateLocalized("Ctrl+D"); item = XtVaCreateManagedWidget( "Dialog...", xmPushButtonGadgetClass, filemenu, XmNmnemonic, 'D', XmNaccelerator, "Ctrl<Key>D", XmNacceleratorText, tmp, NULL ); XtAddCallback( item, XmNactivateCallback, dialogCallback, this ); XmStringFree( tmp ); tmp = XmStringCreateLocalized("Ctrl+C"); item = XtVaCreateManagedWidget( "Custom Dialog...", xmPushButtonGadgetClass, filemenu, XmNmnemonic, 'C', XmNaccelerator, "Ctrl<Key>C", XmNacceleratorText, tmp, NULL ); XtAddCallback( item, XmNactivateCallback, customDialogCallback, this ); XmStringFree( tmp ); item = XtVaCreateManagedWidget( "Qt Dialog...", xmPushButtonGadgetClass, filemenu, XmNmnemonic, 'Q', NULL ); XtAddCallback( item, XmNactivateCallback, qtDialogCallback, this ); item = XtVaCreateManagedWidget( "sep", xmSeparatorGadgetClass, filemenu, NULL ); item = XtVaCreateManagedWidget( "Exit", xmPushButtonGadgetClass, filemenu, XmNmnemonic, 'x', NULL ); XtAddCallback( item, XmNactivateCallback, quitCallback, this ); XmString str = XmStringCreateLocalized( "File" ); item = XtVaCreateManagedWidget( "File", xmCascadeButtonWidgetClass, menubar, XmNlabelString, str, XmNmnemonic, 'F', XmNsubMenuId, filemenu, NULL ); XmStringFree( str ); Arg args[2]; XtSetArg( args[0], XmNeditMode, XmMULTI_LINE_EDIT ); Widget texteditor = XmCreateScrolledText( <a href="qmotifwidget.html#motifWidget">motifWidget</a>(), "texteditor", args, 1 ); XtManageChild( menubar ); XtManageChild( texteditor ); // pick a nice default size XtVaSetValues( <a href="qmotifwidget.html#motifWidget">motifWidget</a>(), XmNwidth, 400, XmNheight, 600, NULL ); <a href="qwidget.html#setCaption">setCaption</a>( <a href="qobject.html#tr">tr</a>("QMotif Dialog Example") ); } void <a name="f635"></a>MainWindow::showDialog() { Arg args[1]; XmString message = XmStringCreateLocalized( "This is an Information dialog.\n\n" "It is one of many predefined <a href="motif-extension.html#Motif">Motif</a> dialog types." ); XtSetArg( args[0], XmNmessageString, message ); <a href="qmotifdialog.html">QMotifDialog</a> dialog( QMotifDialog::Information, XtParent( <a href="qmotifwidget.html#motifWidget">motifWidget</a>() ), args, 1, "predefined motif dialog", TRUE ); dialog.<a href="qwidget.html#setCaption">setCaption</a>( <a href="qobject.html#tr">tr</a>("Prefined Motif Dialog") ); <a name="x2701"></a> XtAddCallback( dialog.<a href="qmotifdialog.html#dialog">dialog</a>(), XmNokCallback, (XtCallbackProc) QMotifDialog::acceptCallback, &dialog ); XtAddCallback( dialog.<a href="qmotifdialog.html#dialog">dialog</a>(), XmNcancelCallback, (XtCallbackProc) QMotifDialog::rejectCallback, &dialog ); XtUnmanageChild( XmMessageBoxGetChild( dialog.<a href="qmotifdialog.html#dialog">dialog</a>(), XmDIALOG_CANCEL_BUTTON ) ); XtUnmanageChild( XmMessageBoxGetChild( dialog.<a href="qmotifdialog.html#dialog">dialog</a>(), XmDIALOG_HELP_BUTTON ) ); <a name="x2699"></a> dialog.<a href="qdialog.html#exec">exec</a>(); XmStringFree( message ); } void <a name="f636"></a>MainWindow::showCustomDialog() { <a href="qmotifdialog.html">QMotifDialog</a> dialog( XtParent( <a href="qmotifwidget.html#motifWidget">motifWidget</a>() ), NULL, 0, "custom dialog", TRUE ); dialog.<a href="qwidget.html#setCaption">setCaption</a>( <a href="qobject.html#tr">tr</a>("Custom Motif Dialog") ); <a name="x2702"></a> Widget form = XmCreateForm( dialog.<a href="qmotifdialog.html#shell">shell</a>(), "custom motif dialog", NULL, 0 ); XmString str; Arg args[9]; str = XmStringCreateLocalized( "Close" ); XtSetArg( args[0], XmNlabelString, str ); XtSetArg( args[1], XmNshowAsDefault, True ); XtSetArg( args[2], XmNleftAttachment, XmATTACH_POSITION ); XtSetArg( args[3], XmNleftPosition, 40 ); XtSetArg( args[4], XmNrightAttachment, XmATTACH_POSITION ); XtSetArg( args[5], XmNrightPosition, 60 ); XtSetArg( args[7], XmNbottomAttachment, XmATTACH_FORM ); XtSetArg( args[6], XmNtopOffset, 10 ); XtSetArg( args[8], XmNbottomOffset, 10 ); Widget button = XmCreatePushButton( form, "Close", args, 9 ); XmStringFree( str ); str = XmStringCreateLocalized( "This is a Custom dialog." ); XtSetArg( args[0], XmNlabelString, str ); XtSetArg( args[1], XmNleftAttachment, XmATTACH_FORM ); XtSetArg( args[2], XmNrightAttachment, XmATTACH_FORM ); XtSetArg( args[3], XmNtopAttachment, XmATTACH_FORM ); XtSetArg( args[4], XmNbottomAttachment, XmATTACH_WIDGET ); XtSetArg( args[5], XmNbottomWidget, button ); XtSetArg( args[6], XmNtopOffset, 10 ); XtSetArg( args[7], XmNbottomOffset, 10 ); Widget label = XmCreateLabelGadget( form, "label", args, 8 ); XmStringFree( str ); XtManageChild( button ); XtManageChild( label ); XtManageChild( form ); XtAddCallback( button, XmNactivateCallback, (XtCallbackProc) QMotifDialog::acceptCallback, &dialog ); dialog.<a href="qdialog.html#exec">exec</a>(); } void <a name="f637"></a>MainWindow::showQtDialog() { <a name="x2700"></a> QMessageBox::<a href="qmessagebox.html#aboutQt">aboutQt</a>( this, tr("QMotif Dialog Example") ); } </pre> <p> <p>See also <a href="motif-examples.html">QMotif Support Extension</a>. <!-- eof --> <p><address><hr><div align=center> <table width=100% cellspacing=0 border=0><tr> <td>Copyright © 2002 <a href="http://www.trolltech.com">Trolltech</a><td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a> <td align=right><div align=right>Qt version 3.1.1</div> </table></div></address></body> </html>