<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/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"><!-- 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 showMotifDialog(); 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 = new 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 "dialog.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>> static void motifDialogCallback( Widget, XtPointer client_data, XtPointer ) { MainWindow *mw = (MainWindow *) client_data; mw->showMotifDialog(); } 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="x2708"></a> mw-><a href="qwidget.html#close">close</a>(); } <a name="f560"></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; item = XtVaCreateManagedWidget( "Motif Dialog...", xmPushButtonGadgetClass, filemenu, XmNmnemonic, 'C', NULL ); XtAddCallback( item, XmNactivateCallback, motifDialogCallback, this ); 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, 300, NULL ); <a href="qwidget.html#setCaption">setCaption</a>( <a href="qobject.html#tr">tr</a>("QMotif Dialog Example") ); } void <a name="f561"></a>MainWindow::showMotifDialog() { <a href="qmotifdialog.html">QMotifDialog</a> dialog( this, "custom dialog", TRUE ); dialog.<a href="qwidget.html#setCaption">setCaption</a>( <a href="qobject.html#tr">tr</a>("Custom <a href="motif-extension.html#Motif">Motif</a> Dialog") ); <a name="x2707"></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 Motif-based dialog using\n" "QMotifDialog with a QWidget-based parent." ); 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 ); <a name="x2706"></a> dialog.<a href="qdialog.html#exec">exec</a>(); } void <a name="f562"></a>MainWindow::showQtDialog() { // custom Qt-based dialog using a Motif-based parent CustomDialog customdialog( <a href="qmotifwidget.html#motifWidget">motifWidget</a>(), "custom dialog", TRUE ); customdialog.<a href="qdialog.html#exec">exec</a>(); } </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 © 2007 <a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a> <td align=right><div align=right>Qt 3.3.8</div> </table></div></address></body> </html>