Title: | "OSF/Motif" is a trademark |
Notice: | MOTIF kit note in 7.* |
Moderator: | GOOEY::GRASS |
Created: | Mon Aug 07 1989 |
Last Modified: | Thu Jun 05 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 5973 |
Total number of notes: | 24620 |
A customer has a trouble about XmForm on Motif V1.2. When this program is activated, 4 widgets (pb_manage,pb_unmanage,fm_test and px_exit) appear on fm_main. 2 label widgets (lb_test1 and lb_test2) are children of fm_test. He wants to remove lb_test2 from fm_test by clicking 'pb_unmanage' button and change the size of fm_test. When 'pb_unmanage' is clicked, Lb_test2 is unmanaged and the label 'TEST-02' disappers successfully, but the height of fm_test will never shrink. My questions are: 1. Is this a Motif bug or something is wrong in his program ? 2. On Motif V1.2-4, this program seems to work O.K. What is the difference between these versions ? Any information are welcome. Regards, Junshi [ V1.2 ] ------------------------------------------------------ OpenVMS VAX V6.1 DECwindows ident is DW T1.2-931116 DECwindows server ident is DW V6.1-940212 DECwindows transport ident is DW V6.1-940212 DECwindows xlib ident is DW T1.2-931116 DECwindows motif toolkit ident is DW T1.2-931116 DECwindows apps ident is DW T1.2-931116 DECwindows programming ident is DW T1.2-931116 ------------------------------------------------------ [ V1.2-4 ] ------------------------------------------------------ OpenVMS Alpha V6.2 DECwindows ident is DW V1.2-4960312 DECwindows server ident is DW T6.2-950505 DECwindows transport ident is DW T6.2-950505 DECwindows xlib ident is DW V1.2-4960312 DECwindows motif toolkit ident is DW V1.2-940307 DECwindows apps ident is DW V1.2-4960312 DECwindows programming ident is DW V1.2-940307 ------------------------------------------------------
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
5932.1 | test2.c | TKTV20::HASHIMOTO | Mon Mar 03 1997 05:20 | 65 | |
#include <stdio.h> #include <stdlib.h> #include <unixlib.h> #include <Mrm/MrmAppl.h> #include <Mrm/MrmPublic.h> #include <X11/StringDefs.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <Xm/Xm.h> #include <Xm/Text.h> #include <locale.h> static Widget eWidget[10] ; void create_proc(Widget w ,int *tag ){ eWidget[*tag] = w ; } void manageCB(Widget w , int *tag) { XtManageChild(eWidget[*tag]) ; } void unmanageCB(Widget w , int *tag) { XtUnmanageChild(eWidget[*tag]) ; } void exitCB(void) { exit(1) ; } static MRMRegisterArg reglist[] = { {"create_proc" ,(XtPointer)create_proc}, {"manageCB" ,(XtPointer)manageCB} , {"exitCB" ,(XtPointer)exitCB} , {"unmanageCB" ,(XtPointer)unmanageCB} }; static int reglist_num = sizeof(reglist) / sizeof(MRMRegisterArg) ; static char *filename_list[]= {"test2.uid" }; static int fnum = sizeof(filename_list)/sizeof(char *) ; int main ( int argc, char **argv) { XtAppContext app_context; MrmHierarchy hierarchy; MrmCode class; Widget toplevel ; Widget fm; MrmInitialize(); XtSetLanguageProc(NULL,NULL,NULL) ; toplevel =XtAppInitialize(&app_context,"jbxdtp",NULL,0,&argc,argv,NULL,NULL,0) ; if ( MrmOpenHierarchy ( fnum,filename_list,NULL, &hierarchy ) != MrmSUCCESS ){ printf("%s: can't open mrm hierarchy, exiting...\n", argv[0]); exit (-1); } if ( MrmRegisterNames ( reglist, reglist_num ) != MrmSUCCESS ) { printf("%s: can't register mrm names, exiting...\n", argv[0]); exit (-1); } MrmFetchWidget ( hierarchy, "fm_main", toplevel, &fm, &class ); XtManageChild(fm) ; XtRealizeWidget (toplevel); XtAppMainLoop (app_context); } | |||||
5932.2 | test2.uil | TKTV20::HASHIMOTO | Mon Mar 03 1997 05:20 | 132 | |
module XApplication version = 'v1.0' names = case_sensitive procedure create_proc (integer); manageCB(integer) ; unmanageCB(integer) ; exitCB; include file "XmAppl.uil"; object fm_main : XmForm { controls{ XmPushButton pb_manage; XmPushButton pb_unmanage; XmForm fm_test ; XmPushButton pb_exit ; }; arguments { XmNautoUnmanage = false; XmNnoResize = true ; XmNresizePolicy = XmRESIZE_ANY ; }; callbacks { MrmNcreateCallback = procedure create_proc(0) ; } ; }; object pb_manage : XmPushButton { arguments { XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10 ; }; callbacks { XmNactivateCallback = procedure manageCB(2); } ; }; object pb_unmanage : XmPushButton { arguments { XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = XmPushButton pb_manage ; XmNleftOffset = 10 ; XmNrightAttachment = XmATTACH_FORM; XmNrightOffset = 10 ; }; callbacks { XmNactivateCallback = procedure unmanageCB(2); } ; }; object fm_test : XmForm { controls{ XmLabel lb_test1 ; XmLabel lb_test2 ; }; arguments { XmNtopAttachment = XmATTACH_WIDGET ; XmNtopWidget = XmPushButton pb_manage ; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10 ; XmNrightAttachment = XmATTACH_FORM; XmNrightOffset = 10 ; XmNshadowThickness = 2 ; XmNshadowType = XmSHADOW_IN ; }; callbacks { MrmNcreateCallback = procedure create_proc(1) ; } ; }; object lb_test1 : XmLabel { arguments { XmNlabelString = " TEST - 01 " ; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10 ; XmNrightAttachment = XmATTACH_FORM; }; callbacks { } ; }; object lb_test2 : XmLabel { arguments { XmNlabelString = " TEST - 02 " ; XmNtopAttachment = XmATTACH_WIDGET ; XmNtopWidget = XmLabel lb_test1 ; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10 ; XmNrightAttachment = XmATTACH_FORM; XmNrightOffset = 10 ; XmNbottomAttachment = XmATTACH_FORM; XmNbottomOffset = 10 ; }; callbacks { MrmNcreateCallback = procedure create_proc(2) ; } ; }; object pb_exit : XmPushButton { arguments { XmNlabelString = " exit " ; XmNtopAttachment = XmATTACH_WIDGET ; XmNtopWidget = XmForm fm_test ; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10 ; XmNrightAttachment = XmATTACH_FORM; XmNrightOffset = 10 ; XmNbottomAttachment = XmATTACH_FORM; XmNbottomOffset = 10 ; }; callbacks { XmNactivateCallback = procedure exitCB; } ; }; end module; |