Title: | DECWINDOWS 26-JAN-89 to 29-NOV-90 |
Notice: | See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit |
Moderator: | STAR::VATNE |
Created: | Mon Oct 30 1989 |
Last Modified: | Mon Dec 31 1990 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 3726 |
Total number of notes: | 19516 |
Hello, I have a customer working with Toolkit and UIL. She is going to use Map/Unmap callback of dialog box widget ( not popup dialog box ). Reading UIL reference manual, there are Map/Unmap callback in dialog box, and UIL compiler does not cause any errors about these callbacks, but my program does not work what I expect. I expect that when XtMapWidget and XtUnmapWidget are called, Map/Unmap callback routines should be activated. Am I misunderstanding about Map/Unmap callback reason og dialog box? Will somebody give me hints ? The programs in the reply .1, and .2 will reproduce the phenomena. Thanks in advance, Kanako Inazu /TSC/CSC/CS/Japan
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
2477.1 | C program | EWBV21::INAZU_K | It's a little bit funny. | Tue Mar 20 1990 05:15 | 110 |
#include <stdio.h> #include <decw$include/DECwDwtApplProg.h> #define MAXARGS 10 int Create(), Map(), UnMap(), Act(); static char *namvec[] = {"TEST.UID"}; static DRMHierarchy hierarchy; static DRMCode class; static DRMRegisterArg regvec[] = { { "Create", (caddr_t)Create }, { "Map", (caddr_t)Map }, { "UnMap", (caddr_t)UnMap }, { "Act", (caddr_t)Act }, }; Widget top_level, mainwindow, dialog; static int flag = 1; #define nFiles(x) ( sizeof(x) / sizeof( char * ) ) #define nRegs(x) ( sizeof(x) / sizeof( DRMRegisterArg ) ) /* * ========================== * * Main Program * * ========================== */ main( argc, argv ) unsigned long argc; char *argv[]; { Arg args[MAXARGS]; long n; DwtInitializeDRM(); top_level = XtInitialize( "Map/UnMap of DialogBox", "Map", NULL, 0, &argc, argv ); n = 0; XtSetArg( args[n], DwtNx, 200 ); n++; XtSetArg( args[n], DwtNy, 200 ); n++; XtSetValues( top_level, args, n ); DwtOpenHierarchy( nFiles( namvec ), namvec, NULL, &hierarchy ); DwtRegisterDRMNames( regvec, nRegs( regvec ) ); DwtFetchWidget( hierarchy, "popmain", top_level, &mainwindow, &class ); XtManageChild( mainwindow ); XtRealizeWidget( top_level ); XtMainLoop(); } /* * ========================== * * CallBacks * * ========================== */ Create( w, tag, r ) Widget w; char *tag; DwtAnyCallbackStruct *r; { if( *tag == 2 ){ dialog = w; } } Map( w, tag, r ) Widget w; char *tag; DwtAnyCallbackStruct *r; { printf("This is Map() callback.\n" ); } UnMap( w, tag, r ) Widget w; char *tag; DwtAnyCallbackStruct *r; { printf("This is UnMap() callback.\n" ); } Act( w, tag, r ) Widget w; char *tag; DwtAnyCallbackStruct *r; { if( *tag == 2 ){ exit(1); } if( *tag == 1 ){ if( flag == 0 ){ XtMapWidget( dialog ); flag = 1; }else{ XtUnmapWidget( dialog ); flag = 0; } } } | |||||
2477.2 | UIl | EWBV21::INAZU_K | It's a little bit funny. | Tue Mar 20 1990 05:16 | 93 |
module text version = 'v1.0' names = case_sensitive include file "DECw$Include:DwtAppl.uil"; procedure Create( integer ); Map( ); UnMap( ); Act( integer ); object popmain : main_window{ arguments{ width = 400; height= 200; }; controls{ dialog_box dialog; dialog_box dialog1; }; callbacks{ create = procedure Create(1); }; }; object dialog1 : dialog_box{ arguments{ units = DwtPixelUnits; width = 200; height = 200; x = 0; y = 0; background_color = color( "White" ); }; controls{ push_button button01; push_button button02; }; }; object dialog : dialog_box{ arguments{ units = DwtPixelUnits; width = 200; height = 200; x = 200; y = 0; background_color = color( "LightBlue" ); }; callbacks{ create = procedure Create(2); map = procedure Map(); unmap = procedure UnMap(); }; }; object button01 : push_button{ arguments{ x = 10; y = 10; label_label = compound_string( "Map/UnMap" ); highlight_color = color( "Magenta" ); foreground_color = color( "Magenta" ); background_color = color( "Pink" ); shadow = false; }; callbacks{ activate = procedure Act(1); }; }; object button02 : push_button{ arguments{ x = 10; y = 60; label_label = compound_string( "Exit" ); highlight_color = color( "Magenta" ); foreground_color = color( "Magenta" ); background_color = color( "Pink" ); shadow = false; }; callbacks{ activate = procedure Act(2); }; }; end module; | |||||
2477.3 | Popup only | LEOVAX::TREGGIARI | Thu Mar 29 1990 09:05 | 3 | |
I think map/unmap callbacks only apply to pop-up dialog boxes. Leo |