form problem - Motif

This is a discussion on form problem - Motif ; I'm having a problem achieving an effect in my GUI and would like to ask for help. Attached is an example of the problem. When you run this program, there are 2 panes. The top pane illustrates the issue. The ...

+ Reply to Thread
Results 1 to 6 of 6

Thread: form problem

  1. form problem

    I'm having a problem achieving an effect in my GUI and would like to ask for
    help.

    Attached is an example of the problem. When you run this program, there are 2
    panes. The top pane illustrates the issue. The top pane has 3 parts: top title,
    lines of scrollable text, bottom title. As the top pane is resized with the
    sash, I want the top and bottom title to remain constant in height, while the
    number of text lines increase/decrease. The example program achieves this
    effect.

    Now, I always want the top title to be displayed so a user does not lose track
    of the available panes (there are 6 panes in the real GUI). To accomplish this
    effect, I have set the minimum height of the pane to be the height of the top
    title. However, if you slide the sash up to this minimum position, you can see
    the form widget is overlapping the bottom and top titles, which is not what I
    want to happen; I want only the top title to be displayed. My mental-model of
    the form widget does not explain what the form is doing in this case, but it is
    not what I want. Is there a way to prevent the form widget from overlapping the
    titles, and hence, only showing the top title at the minimum sash height, while
    still maintaining the criteria of having the top/bottom title be a constant
    height and the text lines increase/decrease at other pane sizes?

    I have one other question. Why is it necessary to set the minimum pane size for
    the form widget *AFTER* realization? If I set the minimum pane size at any
    other point, the form widget is always the minimum pane size. Again, my
    mental-model of how motif works does not explain this behaviour.

    ================================================== ============================

    This program runs on Solaris-8 SPARC. Compiled with g++ 3.4.3.

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    #include
    #include

    void closeCB( Widget, void *, XmAnyCallbackStruct * ) {
    exit( 0 );
    }

    int main( int argc, char *argv[] ) {
    char helpString[256];
    XtAppContext app;

    Widget shell = XtVaAppInitialize( &app, "test", NULL, 0, // create shell
    &argc, argv, NULL,
    NULL );
    Atom wm_delete_window = XmInternAtom( XtDisplay(shell), "WM_DELETE_WINDOW", False ); // activate WM button to close application
    XmAddWMProtocolCallback( shell, wm_delete_window, (XtCallbackProc)closeCB, NULL );

    Widget mainWindow = XtVaCreateWidget( "main", xmMainWindowWidgetClass, shell,
    XmNwidth, 400,
    XmNheight, 300,
    NULL );

    // create menu-bar
    Widget menuBar = XmCreateMenuBar( mainWindow, "menuBar", NULL, 0 );

    // close button in menu bar
    Widget close = XtVaCreateManagedWidget( "Close", xmCascadeButtonGadgetClass, menuBar,
    XmNmnemonic, 'C',
    XmNaccelerator, "AltC",
    XmNborderWidth, 0,
    NULL );
    XtAddCallback( close, XmNactivateCallback, (XtCallbackProc)closeCB, NULL );

    // create work area
    Widget panes = XtVaCreateWidget( "pane", xmPanedWindowWidgetClass, mainWindow,
    NULL );

    Widget form = XtVaCreateWidget( "form", xmFormWidgetClass, panes,
    NULL );

    Widget topTitle = XtVaCreateManagedWidget( "TOP TITLE", xmLabelGadgetClass, form,
    XmNtopAttachment, XmATTACH_FORM,
    XmNleftAttachment, XmATTACH_FORM,
    XmNrightAttachment, XmATTACH_FORM,
    NULL );
    Dimension height;
    XtVaGetValues( topTitle, XmNheight, &height, NULL );

    Widget scroller = XtVaCreateWidget( "scroller", xmScrolledWindowWidgetClass, form,
    XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, topTitle,
    XmNleftAttachment, XmATTACH_FORM,
    XmNrightAttachment, XmATTACH_FORM,
    XmNscrollingPolicy, XmAPPLICATION_DEFINED,
    XmNspacing, 0,
    NULL );

    Widget text = XtVaCreateManagedWidget( "cycleText", xmTextWidgetClass, scroller,
    XmNeditable, False,
    XmNeditMode, XmMULTI_LINE_EDIT,
    XmNcursorPositionVisible, False,
    XmNwordWrap, False,
    XmNhighlightThickness, 0,
    XmNrows, 10,
    NULL );

    for ( int i = 0; i < 10; i += 1 ) {
    sprintf( helpString, "line %d:\n", i);
    XmTextInsert( text, XmTextGetLastPosition( text ), helpString );
    } // for
    XmTextSetCursorPosition( text, 0 ); // position to start

    Widget bottomTitle = XtVaCreateManagedWidget( "BOTTOM TITLE", xmLabelGadgetClass, form,
    XmNleftAttachment, XmATTACH_FORM,
    XmNrightAttachment, XmATTACH_FORM,
    XmNbottomAttachment, XmATTACH_FORM,
    NULL );
    XtVaSetValues( scroller, XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, bottomTitle, NULL );

    XtVaCreateManagedWidget( "NEXT PANE OF STUFF", xmLabelGadgetClass, panes,
    XmNpaneMinimum, 20,
    NULL );

    XmMainWindowSetAreas( mainWindow, menuBar, (Widget)NULL, (Widget)NULL, (Widget)NULL, panes );
    XtManageChild( scroller );
    XtManageChild( form );
    XtManageChild( panes );
    XtManageChild( menuBar );
    XtManageChild( mainWindow );
    XtRealizeWidget( shell ); // realize shell

    XtVaSetValues( form, XmNpaneMinimum, height, NULL );

    XtAppMainLoop( app );
    }


    // Local variables: //
    // compile-command: "g++ test14.cc -L/opt/SUNWmotif/lib -lXm -lX11 -lXt" //
    // End: //

  2. Re: form problem


    "Peter A. Buhr" wrote in message
    news:f15cjk$c3a$1@rumours.uwaterloo.ca...
    > I'm having a problem achieving an effect in my GUI and would like to ask
    > for
    > help.
    >
    > Attached is an example of the problem. When you run this program, there
    > are 2
    > panes. The top pane illustrates the issue. The top pane has 3 parts: top
    > title,
    > lines of scrollable text, bottom title. As the top pane is resized with
    > the
    > sash, I want the top and bottom title to remain constant in height, while
    > the
    > number of text lines increase/decrease. The example program achieves this
    > effect.
    >
    > Now, I always want the top title to be displayed so a user does not lose
    > track
    > of the available panes (there are 6 panes in the real GUI). To accomplish
    > this
    > effect, I have set the minimum height of the pane to be the height of the
    > top
    > title. However, if you slide the sash up to this minimum position, you can
    > see
    > the form widget is overlapping the bottom and top titles, which is not
    > what I
    > want to happen; I want only the top title to be displayed. My mental-model
    > of
    > the form widget does not explain what the form is doing in this case, but
    > it is
    > not what I want. Is there a way to prevent the form widget from
    > overlapping the
    > titles, and hence, only showing the top title at the minimum sash height,
    > while
    > still maintaining the criteria of having the top/bottom title be a
    > constant
    > height and the text lines increase/decrease at other pane sizes?


    The titles are children of the form. They are always inside the form. I
    don't
    understand what you mean by saying the form overlaps the titles.
    It always *underlaps* the titles; that is, the tieles are always inside the
    form.
    Perhaps you mean the scrolled text overlaps the titles. ( I did not
    compile the program).

    The scrolled text is the stretchable item - that is , it is both top- and
    bottom -attached. When you shrink the form so small that all of its
    children cannot be displayed, bad things start to happen. The form gives
    up and tries to draw the threee children the best it can, but you have given
    it no room. Since the top title is attached to the top, it draws it at the
    top.
    The bottom title is attached to the bottom, so it draws it attached to the
    bottom. If there is not enough room for both to fit, they will overlap.
    It is arbitrary which one will be visible.

    >
    > I have one other question. Why is it necessary to set the minimum pane
    > size for
    > the form widget *AFTER* realization? If I set the minimum pane size at any
    > other point, the form widget is always the minimum pane size. Again, my
    > mental-model of how motif works does not explain this behaviour.
    >
    > ================================================== ============================
    >
    > This program runs on Solaris-8 SPARC. Compiled with g++ 3.4.3.
    >
    > #include
    > #include
    > #include
    > #include
    > #include
    > #include
    > #include
    > #include
    > #include
    > #include
    >
    > #include
    > #include
    >
    > void closeCB( Widget, void *, XmAnyCallbackStruct * ) {
    > exit( 0 );
    > }
    >
    > int main( int argc, char *argv[] ) {
    > char helpString[256];
    > XtAppContext app;
    >
    > Widget shell = XtVaAppInitialize( &app, "test", NULL, 0, // create
    > shell
    > &argc, argv, NULL,
    > NULL );
    > Atom wm_delete_window = XmInternAtom( XtDisplay(shell),
    > "WM_DELETE_WINDOW", False ); // activate WM button to close application
    > XmAddWMProtocolCallback( shell, wm_delete_window,
    > (XtCallbackProc)closeCB, NULL );
    >
    > Widget mainWindow = XtVaCreateWidget( "main", xmMainWindowWidgetClass,
    > shell,
    > XmNwidth, 400,
    > XmNheight, 300,
    > NULL );
    >
    > // create menu-bar
    > Widget menuBar = XmCreateMenuBar( mainWindow, "menuBar", NULL, 0 );
    >
    > // close button in menu bar
    > Widget close = XtVaCreateManagedWidget( "Close",
    > xmCascadeButtonGadgetClass, menuBar,
    > XmNmnemonic, 'C',
    > XmNaccelerator, "AltC",
    > XmNborderWidth, 0,
    > NULL );
    > XtAddCallback( close, XmNactivateCallback, (XtCallbackProc)closeCB,
    > NULL );
    >
    > // create work area
    > Widget panes = XtVaCreateWidget( "pane", xmPanedWindowWidgetClass,
    > mainWindow,
    > NULL );
    >
    > Widget form = XtVaCreateWidget( "form", xmFormWidgetClass, panes,
    > NULL );
    >
    > Widget topTitle = XtVaCreateManagedWidget( "TOP TITLE",
    > xmLabelGadgetClass, form,
    > XmNtopAttachment, XmATTACH_FORM,
    > XmNleftAttachment, XmATTACH_FORM,
    > XmNrightAttachment, XmATTACH_FORM,
    > NULL );
    > Dimension height;
    > XtVaGetValues( topTitle, XmNheight, &height, NULL );
    >
    > Widget scroller = XtVaCreateWidget( "scroller",
    > xmScrolledWindowWidgetClass, form,
    > XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, topTitle,
    > XmNleftAttachment, XmATTACH_FORM,
    > XmNrightAttachment, XmATTACH_FORM,
    > XmNscrollingPolicy, XmAPPLICATION_DEFINED,
    > XmNspacing, 0,
    > NULL );
    >
    > Widget text = XtVaCreateManagedWidget( "cycleText", xmTextWidgetClass,
    > scroller,
    > XmNeditable, False,
    > XmNeditMode, XmMULTI_LINE_EDIT,
    > XmNcursorPositionVisible, False,
    > XmNwordWrap, False,
    > XmNhighlightThickness, 0,
    > XmNrows, 10,
    > NULL );
    >
    > for ( int i = 0; i < 10; i += 1 ) {
    > sprintf( helpString, "line %d:\n", i);
    > XmTextInsert( text, XmTextGetLastPosition( text ), helpString );
    > } // for
    > XmTextSetCursorPosition( text, 0 ); // position to start
    >
    > Widget bottomTitle = XtVaCreateManagedWidget( "BOTTOM TITLE",
    > xmLabelGadgetClass, form,
    > XmNleftAttachment, XmATTACH_FORM,
    > XmNrightAttachment, XmATTACH_FORM,
    > XmNbottomAttachment, XmATTACH_FORM,
    > NULL );
    > XtVaSetValues( scroller, XmNbottomAttachment, XmATTACH_WIDGET,
    > XmNbottomWidget, bottomTitle, NULL );
    >
    > XtVaCreateManagedWidget( "NEXT PANE OF STUFF", xmLabelGadgetClass,
    > panes,
    > XmNpaneMinimum, 20,
    > NULL );
    >
    > XmMainWindowSetAreas( mainWindow, menuBar, (Widget)NULL, (Widget)NULL,
    > (Widget)NULL, panes );
    > XtManageChild( scroller );
    > XtManageChild( form );
    > XtManageChild( panes );
    > XtManageChild( menuBar );
    > XtManageChild( mainWindow );
    > XtRealizeWidget( shell ); // realize shell
    >
    > XtVaSetValues( form, XmNpaneMinimum, height, NULL );
    >
    > XtAppMainLoop( app );
    > }
    >
    >
    > // Local variables: //
    > // compile-command: "g++ test14.cc -L/opt/SUNWmotif/lib -lXm -lX11 -lXt"
    > //
    > // End: //

    --
    Fred L. Kleinschmidt
    Boeing Associate Technical Fellow
    Aero Stability and Controls Computing



  3. Re: form problem

    In article ,
    Fred Kleinschmidt wrote:

    >The titles are children of the form. They are always inside the form. I don't
    >understand what you mean by saying the form overlaps the titles.


    Sorry, my explanation was ambiguous. What I meant is that as the form size is
    reduced using the sash for the pane that contains it, the form eventually
    shrinks the scroller widget to zero and then begins to overlap the top and
    bottom titles so the text of the two titles is on top of one another making it
    impossible to read. (Yes, it really, really does this.)

    >The scrolled text is the stretchable item - that is , it is both top- and
    >bottom -attached. When you shrink the form so small that all of its children
    >cannot be displayed, bad things start to happen. ... If there is not enough
    >room for both to fit, they will overlap. It is arbitrary which one will be
    >visible.


    As mentioned above, it is not arbitrary which one is visible; they are BOTH
    visible because the text widgets overlap. I now see why this happens because
    there is no connection between the top and bottom title once the scroller
    height shrinks to zero so the form pushes the bottom title widget over the top
    title widget. Below is a modification to my initial example program that
    attempts to solve this problem. I attached a resize callback to the form. In
    the callback, the size of the form is checked to effectively see if the
    scroller has shrunk to zero (by checking the title heights). At that point, I
    unmanaged the scroller and disconnect it from the form, and directly connect
    the top and bottom titles. This approach seems to produce the desired effect
    of leaving only the top title visible as the form size is reduced to the
    minimum and produces a smooth transition of dissolving the bottom title after
    the scroller has disappeared. Any comments on the "goodness" of this approach
    or alternate approaches are welcome.

    Finally, no one answered this question, and I am still very interested in the
    answer.

    >> I have one other question. Why is it necessary to set the minimum pane size
    >> for the form widget *AFTER* realization? If I set the minimum pane size at
    >> any other point, the form widget is always the minimum pane size. Again, my
    >> mental-model of how motif works does not explain this behaviour.


    ================================================== ============================

    This program runs on Solaris-8 SPARC. Compiled with g++ 3.4.3.

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    #include
    #include

    void closeCB( Widget, void *, XmAnyCallbackStruct * ) {
    exit( 0 );
    }

    Widget topTitle, scroller, bottomTitle;

    void resizeCB( Widget widget, unsigned int titleHeight, XEvent &event, Boolean * ) {
    Dimension height;
    XtVaGetValues( widget, XmNheight, &height, NULL ); // form height
    fprintf( stderr, "%d %d\n", titleHeight, height );
    if ( height <= titleHeight ) {
    XtUnmanageChild( scroller );
    XtVaSetValues( scroller, XmNbottomAttachment, XmATTACH_NONE, NULL );
    XtVaSetValues( bottomTitle, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, topTitle, NULL );
    } else {
    XtVaSetValues( bottomTitle, XmNtopAttachment, XmATTACH_NONE, NULL );
    XtVaSetValues( scroller, XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, bottomTitle, NULL );
    XtManageChild( scroller );
    } // if
    }

    int main( int argc, char *argv[] ) {
    char helpString[256];
    XtAppContext app;

    Widget shell = XtVaAppInitialize( &app, "test", NULL, 0, // create shell
    &argc, argv, NULL,
    NULL );
    Atom wm_delete_window = XmInternAtom( XtDisplay(shell), "WM_DELETE_WINDOW", False ); // activate WM button to close application
    XmAddWMProtocolCallback( shell, wm_delete_window, (XtCallbackProc)closeCB, NULL );

    Widget mainWindow = XtVaCreateWidget( "main", xmMainWindowWidgetClass, shell,
    XmNwidth, 400,
    XmNheight, 300,
    NULL );

    // create menu-bar
    Widget menuBar = XmCreateMenuBar( mainWindow, "menuBar", NULL, 0 );

    // close button in menu bar
    Widget close = XtVaCreateManagedWidget( "Close", xmCascadeButtonGadgetClass, menuBar,
    XmNmnemonic, 'C',
    XmNaccelerator, "AltC",
    XmNborderWidth, 0,
    NULL );
    XtAddCallback( close, XmNactivateCallback, (XtCallbackProc)closeCB, NULL );

    // create work area
    Widget panes = XtVaCreateWidget( "pane", xmPanedWindowWidgetClass, mainWindow,
    NULL );

    Widget form = XtVaCreateWidget( "form", xmFormWidgetClass, panes,
    NULL );

    topTitle = XtVaCreateManagedWidget( "TOP TITLE", xmLabelGadgetClass, form,
    XmNtopAttachment, XmATTACH_FORM,
    XmNleftAttachment, XmATTACH_FORM,
    XmNrightAttachment, XmATTACH_FORM,
    NULL );
    Dimension topHeight, bottomHeight;
    XtVaGetValues( topTitle, XmNheight, &topHeight, NULL );

    scroller = XtVaCreateWidget( "scroller", xmScrolledWindowWidgetClass, form,
    XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, topTitle,
    XmNleftAttachment, XmATTACH_FORM,
    XmNrightAttachment, XmATTACH_FORM,
    XmNscrollingPolicy, XmAPPLICATION_DEFINED,
    XmNspacing, 0,
    NULL );

    Widget text = XtVaCreateManagedWidget( "cycleText", xmTextWidgetClass, scroller,
    XmNeditable, False,
    XmNeditMode, XmMULTI_LINE_EDIT,
    XmNcursorPositionVisible, False,
    XmNwordWrap, False,
    XmNhighlightThickness, 0,
    XmNrows, 10,
    NULL );

    for ( int i = 0; i < 10; i += 1 ) {
    int posn = sprintf( helpString, "line %d:", i );
    if ( i < 9 ) sprintf( helpString + posn, "\n" );
    XmTextInsert( text, XmTextGetLastPosition( text ), helpString );
    } // for
    XmTextSetCursorPosition( text, 0 ); // position to start

    bottomTitle = XtVaCreateManagedWidget( "BOTTOM TITLE", xmLabelGadgetClass, form,
    XmNleftAttachment, XmATTACH_FORM,
    XmNrightAttachment, XmATTACH_FORM,
    XmNbottomAttachment, XmATTACH_FORM,
    NULL );
    XtVaGetValues( bottomTitle, XmNheight, &bottomHeight, NULL );
    XtVaSetValues( scroller, XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, bottomTitle, NULL );
    XtAddEventHandler( form, StructureNotifyMask, False, (XtEventHandler)resizeCB, (void *)(topHeight + bottomHeight) );

    XtVaCreateManagedWidget( "NEXT PANE OF STUFF", xmLabelGadgetClass, panes,
    XmNpaneMinimum, 20,
    NULL );

    XmMainWindowSetAreas( mainWindow, menuBar, (Widget)NULL, (Widget)NULL, (Widget)NULL, panes );
    XtManageChild( scroller );
    XtManageChild( form );
    XtManageChild( panes );
    XtManageChild( menuBar );
    XtManageChild( mainWindow );
    XtRealizeWidget( shell ); // realize shell

    XtVaSetValues( form, XmNpaneMinimum, topHeight, NULL );

    XtAppMainLoop( app );
    }


    // Local variables: //
    // compile-command: "g++ test14.cc -L/opt/SUNWmotif/lib -lXm -lX11 -lXt" //
    // End: //

  4. Re: form problem

    Peter A. Buhr wrote:
    > In article ,
    > Fred Kleinschmidt wrote:
    >
    >
    >>The titles are children of the form. They are always inside the form. I don't
    >>understand what you mean by saying the form overlaps the titles.

    >
    >
    > Sorry, my explanation was ambiguous. What I meant is that as the form size is
    > reduced using the sash for the pane that contains it, the form eventually
    > shrinks the scroller widget to zero and then begins to overlap the top and
    > bottom titles so the text of the two titles is on top of one another making it
    > impossible to read. (Yes, it really, really does this.)
    >


    It does; I compiled it and you're right.

    >
    >>The scrolled text is the stretchable item - that is , it is both top- and
    >>bottom -attached. When you shrink the form so small that all of its children
    >>cannot be displayed, bad things start to happen. ... If there is not enough
    >>room for both to fit, they will overlap. It is arbitrary which one will be
    >>visible.

    >
    >
    > As mentioned above, it is not arbitrary which one is visible; they are BOTH
    > visible because the text widgets overlap.


    XmForm inherits XmNallowOverlap from XmBulletinBoard, by default it's
    True, so you might want to try setting it to False and see if that
    does what you want...

    > I now see why this happens because
    > there is no connection between the top and bottom title once the scroller
    > height shrinks to zero so the form pushes the bottom title widget over the top
    > title widget. Below is a modification to my initial example program that
    > attempts to solve this problem. I attached a resize callback to the form. In
    > the callback, the size of the form is checked to effectively see if the
    > scroller has shrunk to zero (by checking the title heights). At that point, I
    > unmanaged the scroller and disconnect it from the form, and directly connect
    > the top and bottom titles. This approach seems to produce the desired effect
    > of leaving only the top title visible as the form size is reduced to the
    > minimum and produces a smooth transition of dissolving the bottom title after
    > the scroller has disappeared. Any comments on the "goodness" of this approach
    > or alternate approaches are welcome.
    >


    I compiled it and you're right it stops the overlap, it looks like a
    good fix...

    > Finally, no one answered this question, and I am still very interested in the
    > answer.
    >
    >
    >>>I have one other question. Why is it necessary to set the minimum pane size
    >>>for the form widget *AFTER* realization? If I set the minimum pane size at
    >>>any other point, the form widget is always the minimum pane size. Again, my
    >>>mental-model of how motif works does not explain this behaviour.

    >
    >
    > XtVaSetValues( form, XmNpaneMinimum, topHeight, NULL );
    >


    I'm a bit mystified about this as XmNpaneMinimum is not an XmForm
    resource. However it does compile and run without complaint. What
    version of Motif are you using?

  5. Re: form problem

    In article <133qngv1rjht481@corp.supernews.com>,
    Chris Sorenson wrote:
    >XmForm inherits XmNallowOverlap from XmBulletinBoard, by default it's
    >True, so you might want to try setting it to False and see if that
    >does what you want...


    In my example code, I commented out the line that installs the resize callback
    for the form-widget, and set XmNallowOverlap to False for the form-widget, but
    it did not work. 8-( When I read over the definition of XmNallowOverlap in
    XmButtetinBoard:

    Controls the policy for overlapping child widgets. If this resource is
    True, BulletinBoard allows geometry requests that result in overlapping
    children.

    it suggests it should prevent the label widgets from overlapping.


    >>>>I have one other question. Why is it necessary to set the minimum pane size
    >>>>for the form widget *AFTER* realization? If I set the minimum pane size at
    >>>>any other point, the form widget is always the minimum pane size. Again, my
    >>>>mental-model of how motif works does not explain this behaviour.

    >>
    >> XtVaSetValues( form, XmNpaneMinimum, topHeight, NULL );
    >>

    >I'm a bit mystified about this as XmNpaneMinimum is not an XmForm
    >resource. However it does compile and run without complaint. What
    >version of Motif are you using?


    While XmNpaneMinimum is not a direct resource of XmForm, it is an XmPaneWindow
    constraint resource that can be associated with contained widgets. It is
    similar to setting XmNtopAttachment for a xmScrolledWindowWidgetClass, when
    XmNtopAttachment is not a resource of that widget.

    So in my example program, move the line:

    XtVaSetValues( form, XmNpaneMinimum, topHeight, NULL );

    before the XtRealizeWidget( shell ) and the height of the form-widget is
    topheight. I just don't understand why this should occur.

  6. Re: form problem

    >
    > So in my example program, move the line:
    >
    > XtVaSetValues( form, XmNpaneMinimum, topHeight, NULL );
    >
    > before the XtRealizeWidget( shell ) and the height of the form-widget is
    > topheight. I just don't understand why this should occur.


    Yup, I'm seeing the exact same thing on Solaris 10 sparc with the
    forte 6.2 C++ compiler...


+ Reply to Thread