1 /*** DTB_USER_CODE_START vvv Add file header below vvv ***/
2 //%% (c) Copyright 1993, 1994 Hewlett-Packard Company
3 //%% (c) Copyright 1993, 1994 International Business Machines Corp.
4 //%% (c) Copyright 1993, 1994 Sun Microsystems, Inc.
5 //%% (c) Copyright 1993, 1994 Novell, Inc.
6 //%% $XConsortium: messageProps_stubs.C.src /main/4 1996/03/18 15:04:37 barstow $
7 /*** DTB_USER_CODE_END ^^^ Add file header above ^^^ ***/
10 * File: messageProps_stubs.c
11 * Contains: Module callbacks and connection functions
13 * This file was generated by dtcodegen, from module messageProps
15 * Any text may be added between the DTB_USER_CODE_START and
16 * DTB_USER_CODE_END comments (even non-C code). Descriptive comments
17 * are provided only as an aid.
19 * ** EDIT ONLY WITHIN SECTIONS MARKED WITH DTB_USER_CODE COMMENTS. **
20 * ** ALL OTHER MODIFICATIONS WILL BE OVERWRITTEN. DO NOT MODIFY OR **
21 * ** DELETE THE GENERATED COMMENTS! **
27 #include "dtb_utils.h"
28 #include "messageProps_ui.h"
31 * Header files for cross-module connections
33 #include "ttsnoop_ui.h"
36 /**************************************************************************
37 *** DTB_USER_CODE_START
39 *** All necessary header files have been included.
41 *** Add include files, types, macros, externs, and user functions here.
44 #if defined(linux) || defined(CSRG_BASED) || defined(sun)
47 #include <strstream.h>
51 #include <Dt/SpinBox.h>
54 int DtTtMsgWidgetKey = (int) (long) DtTtMessageWidget;
55 int DtTtMsgUpdateCBKey = DtTtMsgWidgetKey + 1;
56 int DtTtMsgInfoKey = DtTtMsgWidgetKey + 2;
64 DtTtMessageUpdateCallback cb = (DtTtMessageUpdateCallback)
65 tt_message_user( msg, DtTtMsgUpdateCBKey );
66 Tt_status status = tt_ptr_error( cb );
67 if (tt_is_err( status ) || (cb == 0)) {
68 return TT_CALLBACK_CONTINUE;
70 Widget widget = DtTtMessageWidget( msg );
71 status = tt_ptr_error( widget );
72 if (tt_is_err( status ) || (widget == 0)) {
73 return TT_CALLBACK_CONTINUE;
75 // XXX Just guessing. Store oldState with tt_message_user_set()
76 Tt_state oldState = TT_SENT;
77 if (tt_message_state( msg ) == TT_SENT) {
78 oldState = TT_CREATED;
80 (*cb)( widget, msg, oldState, TT_OK, True );
81 return TT_CALLBACK_CONTINUE;
89 // Function address is cast to int and used as clientdata key
90 return (Widget)tt_message_user( msg, DtTtMsgWidgetKey );
95 DtbMessagePropsMessagePropsInfo instance
99 XtVaGetValues( instance->messageProps_shellform,
100 XmNuserData, &msg, NULL );
105 _DtTtMessageUpdating(
109 void *updating = tt_message_user( msg, (int) (long) _DtTtMessageUpdating );
110 if (tt_is_err( tt_ptr_error( updating ))) {
113 return updating == (void *)True;
117 _DtTtMessageSetUpdating(
122 tt_message_user_set( msg, (int) (long) _DtTtMessageUpdating,
123 (void *) (intptr_t)updating );
128 _DtTtMessageArgAdded,
129 _DtTtMessageFullUpdate
130 } _DtTtMessageUpdateLevel;
133 _DtTtMessageWidgetUpdate(
134 DtbMessagePropsMessagePropsInfo instance,
136 _DtTtMessageUpdateLevel level
139 char *printout = tt_message_print( msg ); // XXX when to free?
140 Tt_status status = tt_ptr_error( printout );
141 if (tt_is_err( status )) {
142 printout = tt_status_message( status );
144 XtVaSetValues( instance->messageText, XmNvalue, printout, NULL );
145 if (level == _DtTtMessageRePrint) {
149 int numArgs = tt_message_args_count( msg );
150 #define SetArgMenuItemSensitive(n) \
151 XtSetSensitive( instance->setArgButton_setArgButton_menu_items. \
152 Arg_##n##_item, numArgs > n );
153 SetArgMenuItemSensitive(0);
154 SetArgMenuItemSensitive(1);
155 SetArgMenuItemSensitive(2);
156 SetArgMenuItemSensitive(3);
157 SetArgMenuItemSensitive(4);
158 SetArgMenuItemSensitive(5);
159 SetArgMenuItemSensitive(6);
160 SetArgMenuItemSensitive(7);
161 SetArgMenuItemSensitive(8);
162 SetArgMenuItemSensitive(9);
163 SetArgMenuItemSensitive(10);
164 SetArgMenuItemSensitive(11);
165 SetArgMenuItemSensitive(12);
166 SetArgMenuItemSensitive(13);
167 SetArgMenuItemSensitive(14);
168 SetArgMenuItemSensitive(15);
169 #undef SetArgMenuItemSensitive
170 XtSetSensitive( instance->setArgButton_setArgButton_menu_items.
171 Arg_15_item2, numArgs > 16 );
173 if (level == _DtTtMessageArgAdded) {
177 _DtTtMessageSetUpdating( msg, True );
179 char *op = tt_message_op( msg );
180 status = tt_ptr_error( op );
181 if (! tt_is_err( status )) {
182 XmTextFieldSetString( instance->opText, op );
186 char *handler = tt_message_handler( msg );
187 status = tt_ptr_error( handler );
188 if (! tt_is_err( status )) {
189 XmTextFieldSetString( instance->handlerText, handler );
193 char *file = tt_message_file( msg );
194 status = tt_ptr_error( file );
195 if (! tt_is_err( status )) {
196 XmTextFieldSetString( instance->fileText, file );
200 char *session = tt_message_session( msg );
201 status = tt_ptr_error( session );
202 if (! tt_is_err( status )) {
203 XmTextFieldSetString( instance->sessionText, session );
207 int val = tt_message_status( msg );
208 XtVaSetValues( instance->statusBox, DtNposition, val, NULL );
209 char *status_string = tt_status_string( (Tt_status)val );
210 DtTtSetLabel( instance->statusLabel, status_string );
211 tt_free( status_string );
214 switch (tt_message_class( msg )) {
215 case TT_CLASS_UNDEFINED:
217 choice = instance->classChoice_items.UNDEFINED_item;
220 choice = instance->classChoice_items.NOTICE_item;
223 choice = instance->classChoice_items.REQUEST_item;
226 choice = instance->classChoice_items.OFFER_item;
229 XtVaSetValues( instance->classChoice, XmNmenuHistory, choice, NULL );
231 switch (tt_message_address( msg )) {
233 choice = instance->addressChoice_items.PROCEDURE_item;
236 choice = instance->addressChoice_items.OBJECT_item;
239 choice = instance->addressChoice_items.HANDLER_item;
242 choice = instance->addressChoice_items.OTYPE_item;
244 case TT_ADDRESS_LAST:
246 choice = instance->addressChoice_items.ADDRESS_LAST_item;
249 XtVaSetValues( instance->addressChoice, XmNmenuHistory, choice, NULL );
251 switch (tt_message_scope( msg )) {
254 choice = instance->scopeChoice_items.SCOPE_NONE_item;
257 choice = instance->scopeChoice_items.SESSION_item;
260 choice = instance->scopeChoice_items.FILE_item;
263 choice = instance->scopeChoice_items.BOTH_item;
265 case TT_FILE_IN_SESSION:
266 choice = instance->scopeChoice_items.FILE_IN_SESSION_item;
269 XtVaSetValues( instance->scopeChoice, XmNmenuHistory, choice, NULL );
271 switch (tt_message_disposition( msg )) {
274 choice = instance->dispositionChoice_items.DISCARD_item;
277 choice = instance->dispositionChoice_items.QUEUE_item;
280 choice = instance->dispositionChoice_items.START_item;
282 case TT_QUEUE+TT_START:
283 choice = instance->dispositionChoice_items.QUEUE_START_item;
286 XtVaSetValues( instance->dispositionChoice, XmNmenuHistory, choice, NULL);
288 _DtTtMessageSetUpdating( msg, False );
292 DtTtMessageWidgetUpdate(
296 Tt_status lastOperation,
300 void *v = tt_message_user( msg, DtTtMsgInfoKey );
301 Tt_status status = tt_ptr_error( v );
302 if (tt_is_err( status ) || (v == 0)) {
305 DtbMessagePropsMessagePropsInfo instance =
306 (DtbMessagePropsMessagePropsInfo)v;
307 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
313 _DtStringChooserAction choice,
317 DtbMessagePropsMessagePropsInfo instance;
318 instance = (DtbMessagePropsMessagePropsInfo)
319 tt_message_user( msg, DtTtMsgInfoKey );
320 Tt_status status = tt_ptr_error( instance );
321 if (tt_is_err( status ) || (instance == 0)) {
326 case _DtStringChooseMessageOtype:
327 status = tt_message_otype_set( msg, val );
328 func = "tt_message_otype_set()";
330 case _DtStringChooseMessageObject:
331 status = tt_message_object_set( msg, val );
332 func = "tt_message_object_set()";
334 case _DtStringChooseMessageHandlerPtype:
335 status = tt_message_handler_ptype_set( msg, val );
336 func = "tt_message_handler_ptype_set()";
338 case _DtStringChooseMessageSenderPtype:
339 status = tt_message_sender_ptype_set( msg, val );
340 func = "tt_message_sender_ptype_set()";
342 case _DtStringChooseMessageStatusString:
343 status = tt_message_status_string_set( msg, val );
344 func = "tt_message_status_string_set()";
346 case _DtStringChooseMessageArgValSet: {
350 int arg = atoi( val );
351 if ((arg <= 15) || (arg+1 > tt_message_args_count( msg ))) {
354 Tt_mode mode = tt_message_arg_mode( msg, arg );
355 char *vtype = tt_message_arg_type( msg, arg );
356 if (tt_is_err( tt_ptr_error( vtype ))) {
361 Boolean noValue = False;
362 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
363 if (status == TT_ERR_NUM) {
364 val = tt_message_arg_val( msg, arg );
365 if (tt_is_err( tt_ptr_error( val ))) {
372 _DtArgChooserSet( _DtArgChooseMessageArgSet, msg, arg,
373 mode, noValue, vtype, val, ival );
378 DtTtSetLabel( instance->messageFooterLabel, func, status );
379 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
386 _DtSessionChooserAction choice,
390 DtbMessagePropsMessagePropsInfo instance;
391 instance = (DtbMessagePropsMessagePropsInfo)
392 tt_message_user( msg, DtTtMsgInfoKey );
393 Tt_status status = tt_ptr_error( instance );
394 if (tt_is_err( status ) || (instance == 0)) {
399 case _DtSessionChooseMessage:
400 status = tt_message_session_set( msg, session );
401 func = "tt_message_session_set()";
402 session = tt_message_session( msg );
403 if (! tt_is_err( tt_ptr_error( session ))) {
404 _DtTtMessageSetUpdating( msg, True );
405 XmTextFieldSetString( instance->sessionText, session );
406 _DtTtMessageSetUpdating( msg, False );
413 DtTtSetLabel( instance->messageFooterLabel, func, status );
414 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
421 _DtFileChooserAction choice,
425 DtbMessagePropsMessagePropsInfo instance;
426 instance = (DtbMessagePropsMessagePropsInfo)
427 tt_message_user( msg, DtTtMsgInfoKey );
428 Tt_status status = tt_ptr_error( instance );
429 if (tt_is_err( status ) || (instance == 0)) {
434 case _DtFileChooseMessageSet:
435 status = tt_message_file_set( msg, file );
436 func = "tt_message_file_set()";
437 file = tt_message_file( msg );
438 if (! tt_is_err( tt_ptr_error( file ))) {
439 _DtTtMessageSetUpdating( msg, True );
440 XmTextFieldSetString( instance->fileText, file );
441 _DtTtMessageSetUpdating( msg, False );
448 DtTtSetLabel( instance->messageFooterLabel, func, status );
449 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
456 _DtTtChooserAction choice,
460 DtbMessagePropsMessagePropsInfo instance;
461 instance = (DtbMessagePropsMessagePropsInfo)
462 tt_message_user( msg, DtTtMsgInfoKey );
463 Tt_status status = tt_ptr_error( instance );
464 if (tt_is_err( status ) || (instance == 0)) {
469 case _DtTtChooserMessageOpSet:
470 status = tt_message_op_set( msg, string );
471 func = "tt_message_op_set()";
472 string = tt_message_op( msg );
473 if (! tt_is_err( tt_ptr_error( string ))) {
474 _DtTtMessageSetUpdating( msg, True );
475 XmTextFieldSetString( instance->opText, string );
476 _DtTtMessageSetUpdating( msg, False );
480 case _DtTtChooserMessageHandlerSet:
481 status = tt_message_handler_set( msg, string );
482 func = "tt_message_handler_set()";
483 string = tt_message_handler( msg );
484 if (! tt_is_err( tt_ptr_error( string ))) {
485 _DtTtMessageSetUpdating( msg, True );
486 XmTextFieldSetString( instance->handlerText, string );
487 _DtTtMessageSetUpdating( msg, False );
494 DtTtSetLabel( instance->messageFooterLabel, func, status );
495 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
502 _DtArgChooserAction choice,
510 DtbMessagePropsMessagePropsInfo instance;
511 instance = (DtbMessagePropsMessagePropsInfo)
512 tt_message_user( msg, DtTtMsgInfoKey );
513 Tt_status status = tt_ptr_error( instance );
514 if (tt_is_err( status ) || (instance == 0)) {
519 case _DtArgChooseMessageArgAdd:
520 status = tt_message_arg_add( msg, mode, vtype, val );
521 func = "tt_message_arg_add()";
523 case _DtArgChooseMessageIArgAdd:
524 status = tt_message_iarg_add( msg, mode, vtype, ival );
525 func = "tt_message_iarg_add()";
527 case _DtArgChooseMessageArgSet:
528 status = tt_message_arg_val_set( msg, nth, val );
529 func = "tt_message_arg_val_set()";
531 case _DtArgChooseMessageIArgSet:
532 status = tt_message_arg_ival_set( msg, nth, ival );
533 func = "tt_message_arg_ival_set()";
535 case _DtArgChooseMessageContextSet:
536 status = tt_message_context_set( msg, vtype, val );
537 func = "tt_message_context_set()";
539 case _DtArgChooseMessageIContextSet:
540 status = tt_message_icontext_set( msg, vtype, ival );
541 func = "tt_message_icontext_set()";
546 DtTtSetLabel( instance->messageFooterLabel, func, status );
547 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageArgAdded );
554 Tt_message_callback cb
557 DtbMessagePropsMessagePropsInfo instance;
558 instance = (DtbMessagePropsMessagePropsInfo)
559 tt_message_user( msg, DtTtMsgInfoKey );
560 Tt_status status = tt_ptr_error( instance );
561 if (tt_is_err( status ) || (instance == 0)) {
564 status = tt_message_callback_add( msg, cb );
565 DtTtSetLabel( instance->messageFooterLabel,
566 "tt_message_callback_add()", status );
571 DtTtMessageWidgetCreate(
574 DtTtMessageUpdateCallback notifyProc
577 DtbMessagePropsMessagePropsInfoRec *instance;
578 Widget widget = DtTtMessageWidget( msg );
579 Tt_status status = tt_ptr_error( widget );
580 if (tt_is_err( status ) || (widget != 0)) {
581 instance = (DtbMessagePropsMessagePropsInfoRec *)
582 tt_message_user( msg, DtTtMsgInfoKey );
583 status = tt_ptr_error( instance );
584 if (tt_is_err( status ) || (instance != 0)) {
585 XtManageChild( instance->messageProps_shellform );
589 instance = new DtbMessagePropsMessagePropsInfoRec;
591 return (Widget)tt_error_pointer( TT_ERR_NOMEM );
593 // XXX delete instance in widget destroy proc
594 status = tt_message_user_set( msg, DtTtMsgInfoKey, instance );
595 if (tt_is_err( status )) {
597 return (Widget)tt_error_pointer( status );
599 dtbMessagePropsMessagePropsInfo_clear( instance );
600 dtb_message_props_message_props_initialize( instance, parent );
601 widget = instance->messageProps;
603 XtVaSetValues( instance->messageProps_shellform, XmNuserData, msg, NULL );
604 status = tt_message_user_set( msg, DtTtMsgWidgetKey, widget );
605 if (tt_is_err( status )) {
606 XtDestroyWidget( widget );
608 return (Widget)tt_error_pointer( status );
610 if (notifyProc != 0) {
611 status = tt_message_user_set( msg, DtTtMsgUpdateCBKey,
612 (void *) notifyProc );
613 if (tt_is_err( status )) {
614 XtDestroyWidget( widget );
615 return (Widget)tt_error_pointer( status );
617 status = tt_message_callback_add( msg, _DtMsgUpdateMarshall );
618 if (tt_is_err( status )) {
619 XtDestroyWidget( widget );
620 return (Widget)tt_error_pointer( status );
624 std::ostrstream labelStream;
625 labelStream << "Tt_message " << (void *)msg;
626 XtVaSetValues( instance->messageProps,
627 XmNtitle, labelStream.str(),
629 delete labelStream.str();
631 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
633 XtManageChild( instance->messageProps_shellform );
638 _DtTtMessageDispositionSet(
639 DtbMessagePropsMessagePropsInfo instance,
640 Tt_disposition disposition
643 Tt_message msg = messageProps2Msg( instance );
647 Tt_status status = tt_message_disposition_set( msg, disposition );
648 DtTtSetLabel( instance->messageFooterLabel,
649 "tt_message_disposition_set()", status );
650 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
653 /*** DTB_USER_CODE_END
655 *** End of user code section
657 **************************************************************************/
662 messageProps_msgCloseButton_CB1(
664 XtPointer clientData,
668 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
669 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
671 DtbMessagePropsMessagePropsInfo instance = (DtbMessagePropsMessagePropsInfo)clientData;
673 if (!(instance->initialized))
675 dtb_message_props_message_props_initialize(instance, dtb_ttsnoop_ttsnoop_win.ttsnoopWin);
677 XtUnmanageChild(instance->messageProps_shellform);
679 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
680 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
687 XtPointer clientData,
691 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
692 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
694 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
695 DtbMessagePropsMessagePropsInfo instance =
696 (DtbMessagePropsMessagePropsInfo)clientData;
697 Tt_message msg = messageProps2Msg( instance );
701 Tt_status status = tt_message_class_set( msg, TT_CLASS_UNDEFINED );
702 DtTtSetLabel( instance->messageFooterLabel,
703 "tt_message_class_set()", status );
704 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
705 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
712 XtPointer clientData,
716 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
717 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
719 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
720 DtbMessagePropsMessagePropsInfo instance =
721 (DtbMessagePropsMessagePropsInfo)clientData;
722 Tt_message msg = messageProps2Msg( instance );
726 Tt_status status = tt_message_class_set( msg, TT_NOTICE );
727 DtTtSetLabel( instance->messageFooterLabel,
728 "tt_message_class_set()", status );
729 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
730 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
737 XtPointer clientData,
741 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
742 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
744 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
745 DtbMessagePropsMessagePropsInfo instance =
746 (DtbMessagePropsMessagePropsInfo)clientData;
747 Tt_message msg = messageProps2Msg( instance );
751 Tt_status status = tt_message_class_set( msg, TT_REQUEST );
752 DtTtSetLabel( instance->messageFooterLabel,
753 "tt_message_class_set()", status );
754 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
755 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
762 XtPointer clientData,
766 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
767 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
769 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
770 DtbMessagePropsMessagePropsInfo instance =
771 (DtbMessagePropsMessagePropsInfo)clientData;
772 Tt_message msg = messageProps2Msg( instance );
776 Tt_status status = tt_message_class_set( msg, TT_OFFER );
777 DtTtSetLabel( instance->messageFooterLabel,
778 "tt_message_class_set()", status );
779 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
780 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
787 XtPointer clientData,
791 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
792 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
794 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
795 DtbMessagePropsMessagePropsInfo instance =
796 (DtbMessagePropsMessagePropsInfo)clientData;
797 Tt_message msg = messageProps2Msg( instance );
801 Tt_status status = tt_message_address_set( msg, TT_ADDRESS_LAST );
802 DtTtSetLabel( instance->messageFooterLabel,
803 "tt_message_address_set()", status );
804 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
805 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
812 XtPointer clientData,
816 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
817 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
819 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
820 DtbMessagePropsMessagePropsInfo instance =
821 (DtbMessagePropsMessagePropsInfo)clientData;
822 Tt_message msg = messageProps2Msg( instance );
826 Tt_status status = tt_message_address_set( msg, TT_PROCEDURE );
827 DtTtSetLabel( instance->messageFooterLabel,
828 "tt_message_address_set()", status );
829 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
830 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
837 XtPointer clientData,
841 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
842 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
844 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
845 DtbMessagePropsMessagePropsInfo instance =
846 (DtbMessagePropsMessagePropsInfo)clientData;
847 Tt_message msg = messageProps2Msg( instance );
851 Tt_status status = tt_message_address_set( msg, TT_OBJECT );
852 DtTtSetLabel( instance->messageFooterLabel,
853 "tt_message_address_set()", status );
854 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
855 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
862 XtPointer clientData,
866 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
867 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
869 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
870 DtbMessagePropsMessagePropsInfo instance =
871 (DtbMessagePropsMessagePropsInfo)clientData;
872 Tt_message msg = messageProps2Msg( instance );
876 Tt_status status = tt_message_address_set( msg, TT_HANDLER );
877 DtTtSetLabel( instance->messageFooterLabel,
878 "tt_message_address_set()", status );
879 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
880 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
887 XtPointer clientData,
891 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
892 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
894 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
895 DtbMessagePropsMessagePropsInfo instance =
896 (DtbMessagePropsMessagePropsInfo)clientData;
897 Tt_message msg = messageProps2Msg( instance );
901 Tt_status status = tt_message_address_set( msg, TT_OTYPE );
902 DtTtSetLabel( instance->messageFooterLabel,
903 "tt_message_address_set()", status );
904 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
905 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
912 XtPointer clientData,
916 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
917 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
919 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
920 DtbMessagePropsMessagePropsInfo instance =
921 (DtbMessagePropsMessagePropsInfo)clientData;
922 Tt_message msg = messageProps2Msg( instance );
926 Tt_status status = tt_message_scope_set( msg, TT_SCOPE_NONE );
927 DtTtSetLabel( instance->messageFooterLabel,
928 "tt_message_scope_set()", status );
929 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
930 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
937 XtPointer clientData,
941 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
942 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
944 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
945 DtbMessagePropsMessagePropsInfo instance =
946 (DtbMessagePropsMessagePropsInfo)clientData;
947 Tt_message msg = messageProps2Msg( instance );
951 Tt_status status = tt_message_scope_set( msg, TT_SESSION );
952 DtTtSetLabel( instance->messageFooterLabel,
953 "tt_message_scope_set()", status );
954 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
955 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
962 XtPointer clientData,
966 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
967 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
969 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
970 DtbMessagePropsMessagePropsInfo instance =
971 (DtbMessagePropsMessagePropsInfo)clientData;
972 Tt_message msg = messageProps2Msg( instance );
976 Tt_status status = tt_message_scope_set( msg, TT_FILE );
977 DtTtSetLabel( instance->messageFooterLabel,
978 "tt_message_scope_set()", status );
979 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
980 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
987 XtPointer clientData,
991 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
992 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
994 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
995 DtbMessagePropsMessagePropsInfo instance =
996 (DtbMessagePropsMessagePropsInfo)clientData;
997 Tt_message msg = messageProps2Msg( instance );
1001 Tt_status status = tt_message_scope_set( msg, TT_BOTH );
1002 DtTtSetLabel( instance->messageFooterLabel,
1003 "tt_message_scope_set()", status );
1004 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1005 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1010 setScopeFileInSession(
1012 XtPointer clientData,
1016 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1017 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1019 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1020 DtbMessagePropsMessagePropsInfo instance =
1021 (DtbMessagePropsMessagePropsInfo)clientData;
1022 Tt_message msg = messageProps2Msg( instance );
1026 Tt_status status = tt_message_scope_set( msg, TT_FILE_IN_SESSION );
1027 DtTtSetLabel( instance->messageFooterLabel,
1028 "tt_message_scope_set()", status );
1029 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1030 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1037 XtPointer clientData,
1041 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1042 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1044 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1045 DtbMessagePropsMessagePropsInfo instance =
1046 (DtbMessagePropsMessagePropsInfo)clientData;
1047 Tt_message msg = messageProps2Msg( instance );
1048 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1051 char *op = XmTextFieldGetString( instance->opText );
1052 if ((op != 0) && (op[0] == '\0')) {
1056 Tt_status status = tt_message_op_set( msg, op );
1060 DtTtSetLabel( instance->messageFooterLabel,
1061 "tt_message_op_set()", status );
1062 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1063 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1070 XtPointer clientData,
1074 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1075 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1077 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1078 DtbMessagePropsMessagePropsInfo instance =
1079 (DtbMessagePropsMessagePropsInfo)clientData;
1080 Tt_message msg = messageProps2Msg( instance );
1084 Tt_status status = tt_message_send( msg );
1085 DtTtSetLabel( instance->messageFooterLabel,
1086 "tt_message_send()", status );
1087 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1088 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1095 XtPointer clientData,
1099 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1100 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1102 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1103 DtbMessagePropsMessagePropsInfo instance =
1104 (DtbMessagePropsMessagePropsInfo)clientData;
1105 Tt_message msg = messageProps2Msg( instance );
1109 Tt_status status = tt_message_send_on_exit( msg );
1110 DtTtSetLabel( instance->messageFooterLabel,
1111 "tt_message_send_on_exit()", status );
1112 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1113 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1120 XtPointer clientData,
1124 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1125 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1127 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1128 DtbMessagePropsMessagePropsInfo instance =
1129 (DtbMessagePropsMessagePropsInfo)clientData;
1130 Tt_message msg = messageProps2Msg( instance );
1134 Tt_status status = tt_message_accept( msg );
1135 DtTtSetLabel( instance->messageFooterLabel,
1136 "tt_message_accept()", status );
1137 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1138 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1145 XtPointer clientData,
1149 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1150 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1152 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1153 DtbMessagePropsMessagePropsInfo instance =
1154 (DtbMessagePropsMessagePropsInfo)clientData;
1155 Tt_message msg = messageProps2Msg( instance );
1159 Tt_status status = tt_message_send_on_exit( msg );
1160 DtTtSetLabel( instance->messageFooterLabel,
1161 "tt_message_send_on_exit()", status );
1162 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1163 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1170 XtPointer clientData,
1174 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1175 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1177 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1178 DtbMessagePropsMessagePropsInfo instance =
1179 (DtbMessagePropsMessagePropsInfo)clientData;
1180 Tt_message msg = messageProps2Msg( instance );
1184 Tt_status status = tt_message_reply( msg );
1185 DtTtSetLabel( instance->messageFooterLabel,
1186 "tt_message_reply()", status );
1187 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1188 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1195 XtPointer clientData,
1199 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1200 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1202 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1203 DtbMessagePropsMessagePropsInfo instance =
1204 (DtbMessagePropsMessagePropsInfo)clientData;
1205 Tt_message msg = messageProps2Msg( instance );
1209 Tt_status status = tt_message_fail( msg );
1210 DtTtSetLabel( instance->messageFooterLabel,
1211 "tt_message_fail()", status );
1212 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1213 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1220 XtPointer clientData,
1224 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1225 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1227 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1228 DtbMessagePropsMessagePropsInfo instance =
1229 (DtbMessagePropsMessagePropsInfo)clientData;
1230 Tt_message msg = messageProps2Msg( instance );
1234 Tt_status status = tttk_message_destroy( msg );
1235 DtTtSetLabel( instance->messageFooterLabel,
1236 "tttk_message_destroy()", status );
1239 DtTtDestroyed( DTTT_MESSAGE, msg );
1240 XtDestroyWidget( instance->messageProps );
1244 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1247 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1254 XtPointer clientData,
1258 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1259 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1261 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1262 DtbMessagePropsMessagePropsInfo instance =
1263 (DtbMessagePropsMessagePropsInfo)clientData;
1264 Tt_message msg = messageProps2Msg( instance );
1268 Tt_pattern *pats = ttdt_message_accept( msg, 0, 0, instance->messageProps,
1270 Tt_status status = tt_ptr_error( pats );
1271 DtTtSetLabel( instance->messageFooterLabel,
1272 "ttdt_message_accept()", status );
1273 if ((status == TT_OK) && (pats != 0)) {
1274 while (*pats != 0) {
1275 DtTtCreated( DTTT_PATTERN, *pats );
1279 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1280 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1285 msgSubcontractManage(
1287 XtPointer clientData,
1291 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1292 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1294 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1295 DtbMessagePropsMessagePropsInfo instance =
1296 (DtbMessagePropsMessagePropsInfo)clientData;
1297 Tt_message msg = messageProps2Msg( instance );
1301 Tt_pattern *pats = ttdt_subcontract_manage( msg, 0,
1302 instance->messageProps, 0 );
1303 Tt_status status = tt_ptr_error( pats );
1304 DtTtSetLabel( instance->messageFooterLabel,
1305 "ttdt_subcontract_manage()", status );
1306 if (status == TT_OK) {
1307 while (*pats != 0) {
1308 DtTtCreated( DTTT_PATTERN, *pats );
1312 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1313 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1320 XtPointer clientData,
1324 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1325 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1327 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1328 DtbMessagePropsMessagePropsInfo instance =
1329 (DtbMessagePropsMessagePropsInfo)clientData;
1330 Tt_message msg = messageProps2Msg( instance );
1334 msg = tt_message_copy( msg );
1335 Tt_status status = DtTtSetLabel( instance->messageProps_footer,
1336 "tt_message_copy()", msg );
1337 if (tt_is_err( status )) {
1340 DtTtCreated( DTTT_MESSAGE, msg );
1341 Widget newWidget = DtTtMessageWidgetCreate(
1342 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, msg,
1343 DtTtMessageWidgetUpdate );
1344 status = tt_ptr_error( newWidget );
1345 if (tt_is_err( status )) {
1348 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1349 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1356 XtPointer clientData,
1360 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1361 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1363 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1364 DtbMessagePropsMessagePropsInfo instance =
1365 (DtbMessagePropsMessagePropsInfo)clientData;
1366 Tt_message msg = messageProps2Msg( instance );
1370 char *sender = tt_message_sender( msg );
1371 Tt_message msg2 = tttk_message_create( msg, TT_NOTICE,
1372 tt_message_scope( msg ), sender, "Status", 0 );
1374 Tt_status status = DtTtSetLabel( instance->messageProps_footer,
1375 "tttk_message_create()", msg2 );
1376 if (tt_is_err( status )) {
1380 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1381 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1382 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1383 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1384 char *commission = tt_message_id( msg );
1385 tt_message_arg_add( msg2, TT_IN, Tttk_message_id, commission );
1386 tt_free( commission );
1388 DtTtCreated( DTTT_MESSAGE, msg2 );
1389 Widget newWidget = DtTtMessageWidgetCreate(
1390 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, msg2,
1391 DtTtMessageWidgetUpdate );
1392 status = tt_ptr_error( newWidget );
1393 if (tt_is_err( status )) {
1396 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1397 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1404 XtPointer clientData,
1408 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1409 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1411 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1412 std::ostrstream action; // XXX when to delete .str()?
1413 DtbMessagePropsMessagePropsInfo instance =
1414 (DtbMessagePropsMessagePropsInfo)clientData;
1415 Tt_message msg = messageProps2Msg( instance );
1419 char *op = tt_message_op( msg );
1420 action << "ACTION Send_" << op << "\n{\n\tLABEL\tSend_" << op << "\n";
1421 action << "\tTYPE\tTT_MSG\n";
1422 action << "\tTT_CLASS\t" << tt_message_class( msg ) << "\n";
1423 action << "\tTT_SCOPE\t" << tt_message_scope( msg ) << "\n";
1424 action << "\tTT_OPERATION\t" << op << "\n";
1426 char *file = tt_message_file( msg );
1427 Tt_status status = tt_ptr_error( file );
1428 if ((! tt_is_err( status )) && (file != 0)) {
1429 action << "\tTT_FILE\t" << file << "\n";
1432 int args = tt_message_args_count( msg );
1433 for (int arg = 0; arg < args; arg++) {
1434 action << "\tTT_ARG" << arg << "_MODE\t";
1435 action << tt_message_arg_mode( msg, arg ) << "\n";
1436 char *vtype = tt_message_arg_type( msg, arg );
1437 action << "\tTT_ARG" << arg << "_VTYPE\t" << vtype << "\n";
1439 status = tt_message_arg_ival( msg, arg, &ival );
1443 action << "\tTT_ARG" << arg << "_REP_TYPE\t"
1445 action << "\tTT_ARG" << arg << "_VALUE\t" << ival << "\n";
1448 val = tt_message_arg_val( msg, arg );
1449 status = tt_ptr_error( val );
1450 if (tt_is_err( status ) || (val == 0)) {
1453 action << "\tTT_ARG" << arg << "_VALUE\t" << val << "\n";
1458 // XXX emit commented warnings for e.g. TT_OFFER, TT_HANDLER
1460 // XtVaSetValues( instance->messageText, XmNvalue, action.str(), 0 );
1461 _DtOpen( instance->messageFooterLabel, (void *)action.str(),
1462 action.pcount(), "actio" );
1463 delete action.str();
1464 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1471 XtPointer clientData,
1475 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1476 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1478 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1479 std::ostrstream code; // XXX when to delete .str()?
1480 DtbMessagePropsMessagePropsInfo instance =
1481 (DtbMessagePropsMessagePropsInfo)clientData;
1482 Tt_message msg = messageProps2Msg( instance );
1486 code << "#include <Tt/tt_c.h>\n";
1487 code << "#include <Tt/tttk.h>\n";
1488 char *op = tt_message_op( msg );
1489 if (tt_message_class( msg ) != TT_NOTICE) {
1490 code << "\nTt_callback_action\nprocess_" << op << "_reply(";
1491 code << " Tt_message msg, Tt_message pat );\n";
1493 code << "\nTt_message\n";
1494 code << "create_" << op << "(\n";
1495 code << "\tTt_message context\n)\n{\n";
1496 code << "\tTt_message msg;\n";
1497 code << "\tmsg = tttk_message_create( context";
1498 code << ", " << tt_message_class( msg );
1499 code << ", " << tt_message_scope( msg ) << ",\n\t\t\t";
1500 Tt_address address = tt_message_address( msg );
1508 handler = tt_message_handler( msg );
1509 code << "\"" << handler << "\",\n";
1514 code << "(char *)0";
1516 code << "\"" << op << "\"";
1519 if (tt_message_class( msg ) == TT_NOTICE) {
1522 code << "\n\t\t\tprocess_" << op << "_reply ";
1527 code << "\ttt_message_address_set( msg, " << address << " );\n";
1531 // set properly by tttk_message_create();
1534 int args = tt_message_args_count( msg );
1535 if (tt_is_err( tt_int_error( args ))) {
1538 for (int arg = 0; arg < args; arg++) {
1539 Tt_mode mode = tt_message_arg_mode( msg, arg );
1540 char *vtype = tt_message_arg_type( msg, arg );
1542 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
1546 code << "\ttt_message_iarg_add( msg, " << mode << ", ";
1547 code << '"' << vtype << "\", " << ival << " );\n";
1550 val = tt_message_arg_val( msg, arg );
1551 code << "\ttt_message_arg_add( msg, " << mode << ", ";
1552 code << '"' << vtype << "\", ";
1554 code << "(char *)0";
1556 code << "\"" << val << "\"";
1564 int stat = tt_message_status( msg );
1566 code << "\ttt_message_status_set( msg, " << stat << " );\n";
1568 code << "\treturn msg;\n";
1570 if (tt_message_class( msg ) != TT_NOTICE) {
1571 code << "\nstatic Tt_callback_action\n";
1572 code << "process_" << op << "_reply(\n";
1573 code << "\tTt_message msg,\n";
1574 code << "\tTt_message pat\n";
1576 code << "\tswitch (tt_message_state(msg)) {\n";
1577 code << "\t\tcase TT_SENT:\t/* handler is in this process */\n";
1578 code << "\t\tcase TT_STARTED:/* intermediate state */\n";
1579 code << "\t\tcase TT_QUEUED:\t/* intermediate state */\n";
1580 code << "\t\tdefault:\t/* unknown state */\n";
1581 code << "\t\t\treturn TT_CALLBACK_CONTINUE;\n";
1582 if (tt_message_class(msg) == TT_REQUEST) {
1583 code << "\t\tcase TT_HANDLED:\n";
1584 code << "\t\t\t/* ... */\n";
1585 code << "\t\t\tbreak;\n";
1586 code << "\t\tcase TT_FAILED: {\n";
1587 code << "\t\t\tint status;\n";
1588 code << "\t\t\tchar *string;\n";
1589 code << "\t\t\tstatus = tt_message_status( msg );\n";
1590 code << "\t\t\tstring = "
1591 "tt_message_status_string( msg );\n";
1592 code << "\t\t\t/* ... */\n";
1593 code << "\t\t\t} break;\n";
1595 code << "\t\tcase TT_RETURNED:\n";
1596 code << "\t\t\t/* ... */\n";
1597 code << "\t\t\tbreak;\n";
1600 code << "\ttt_message_destroy( msg );\n";
1601 code << "\treturn TT_CALLBACK_PROCESSED;\n";
1605 // XtVaSetValues( instance->messageText, XmNvalue, code.str(), 0 );
1606 _DtOpen( instance->messageFooterLabel, (void *)code.str(),
1607 code.pcount(), "msgC" );
1609 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1616 XtPointer clientData,
1620 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1621 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1623 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1624 DtbMessagePropsMessagePropsInfo instance =
1625 (DtbMessagePropsMessagePropsInfo)clientData;
1626 Tt_message msg = messageProps2Msg( instance );
1627 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1630 char *handler = XmTextFieldGetString( instance->handlerText );
1631 if ((handler != 0) && (handler[0] == '\0')) {
1635 Tt_status status = tt_message_handler_set( msg, handler );
1639 DtTtSetLabel( instance->messageFooterLabel,
1640 "tt_message_handler_set()", status );
1641 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1642 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1649 XtPointer clientData,
1653 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1654 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1656 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1657 DtbMessagePropsMessagePropsInfo instance =
1658 (DtbMessagePropsMessagePropsInfo)clientData;
1659 Tt_message msg = messageProps2Msg( instance );
1660 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1663 char *session = XmTextFieldGetString( instance->sessionText );
1664 if ((session != 0) && (session[0] == '\0')) {
1668 Tt_status status = tt_message_session_set( msg, session );
1672 DtTtSetLabel( instance->messageFooterLabel,
1673 "tt_message_session_set()", status );
1674 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1675 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1682 XtPointer clientData,
1686 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1687 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1689 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1690 DtbMessagePropsMessagePropsInfo instance =
1691 (DtbMessagePropsMessagePropsInfo)clientData;
1692 Tt_message msg = messageProps2Msg( instance );
1693 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1696 char *file = XmTextFieldGetString( instance->fileText );
1697 if ((file != 0) && (file[0] == '\0')) {
1701 Tt_status status = tt_message_file_set( msg, file );
1705 DtTtSetLabel( instance->messageFooterLabel,
1706 "tt_message_file_set()", status );
1707 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1708 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1715 XtPointer clientData,
1719 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1720 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1722 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1723 DtbMessagePropsMessagePropsInfo instance =
1724 (DtbMessagePropsMessagePropsInfo)clientData;
1725 Tt_message msg = messageProps2Msg( instance );
1726 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1730 XtVaGetValues( instance->statusBox, DtNposition, &val, NULL );
1731 XmString statusName = DtTtStatusString( (Tt_status)val );
1732 XtVaSetValues( instance->statusLabel, XmNlabelString, statusName, NULL );
1733 XmStringFree( statusName );
1734 Tt_status status = tt_message_status_set( msg, val );
1735 DtTtSetLabel( instance->messageFooterLabel,
1736 "tt_message_status_set()", status );
1737 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1738 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1745 XtPointer clientData,
1749 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1750 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1752 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1753 dtb_do_onitem_help();
1754 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1761 XtPointer clientData,
1765 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1766 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1768 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1769 DtbMessagePropsMessagePropsInfo instance =
1770 (DtbMessagePropsMessagePropsInfo)clientData;
1771 Tt_message msg = messageProps2Msg( instance );
1775 Tt_pattern pat = tt_message_pattern( msg );
1776 Tt_status status = DtTtSetLabel( instance->messageFooterLabel,
1777 "tt_message_pattern()", pat );
1778 if (tt_is_err( status ) || (pat == 0)) {
1781 Widget newWidget = DtTtPatternWidgetCreate(
1782 dtb_ttsnoop_ttsnoop_win.ttsnoopWin,
1784 status = tt_ptr_error( newWidget );
1785 if (tt_is_err( status )) {
1788 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1789 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1796 XtPointer clientData,
1800 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1801 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1803 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1804 DtbMessagePropsMessagePropsInfo instance =
1805 (DtbMessagePropsMessagePropsInfo)clientData;
1806 Tt_message msg = messageProps2Msg( instance );
1810 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1811 DtTtSetLabel( instance->messageFooterLabel,
1812 "tt_message_print()", TT_OK );
1813 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1820 XtPointer clientData,
1824 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1825 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1827 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1828 DtbMessagePropsMessagePropsInfo instance =
1829 (DtbMessagePropsMessagePropsInfo)clientData;
1830 Tt_message msg = messageProps2Msg( instance );
1834 Tt_pattern pat = tt_pattern_create();
1835 tt_pattern_category_set( pat, TT_OBSERVE );
1836 tt_pattern_class_add( pat, tt_message_class( msg ));
1837 tt_pattern_scope_add( pat, tt_message_scope( msg ));
1838 tt_pattern_address_add( pat, tt_message_address( msg ));
1839 char *op = tt_message_op( msg );
1840 if ((! tt_is_err( tt_ptr_error( op ))) && (op != 0)) {
1841 tt_pattern_op_add( pat, op );
1844 // skip file, sender, sender_ptype, otype, object, opnum, contexts
1845 char *session = tt_message_session( msg );
1846 if ((! tt_is_err( tt_ptr_error( session ))) && (session != 0)) {
1847 tt_pattern_session_add( pat, session );
1850 int args = tt_message_args_count( msg );
1851 if (tt_int_error( args ) == TT_OK) {
1852 for (int arg = 0; arg < args; arg++) {
1853 Tt_mode mode = tt_message_arg_mode( msg, arg );
1854 char *vtype = tt_message_arg_type( msg, arg );
1856 tt_pattern_arg_add( pat, mode, vtype, 0 );
1860 DtTtCreated( DTTT_PATTERN, pat );
1861 Widget newWidget = DtTtPatternWidgetCreate(
1862 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, pat, 0 );
1863 if (tt_is_err( tt_ptr_error( newWidget ))) {
1866 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1867 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1874 XtPointer clientData,
1878 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1879 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1881 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1882 std::ostrstream ptype; // XXX when to delete .str()?
1883 DtbMessagePropsMessagePropsInfo instance =
1884 (DtbMessagePropsMessagePropsInfo)clientData;
1885 Tt_message msg = messageProps2Msg( instance );
1889 ptype << "ptype Acme_Calc {\n\tstart \"acalc\";\n";
1891 ptype << "\thandle_push:\n";
1892 ptype << "\thandle_rotate:\n";
1893 switch (tt_message_class(msg)) {
1895 ptype << "\tobserve:\n";
1897 ptype << "\thandle:\n";
1902 ptype << "\thandle:\n";
1904 ptype << "\tobserve:\n";
1908 switch (tt_message_scope(msg)) {
1912 case TT_FILE_IN_SESSION:
1916 ptype << "session ";
1919 char *op = tt_message_op( msg );
1920 ptype << op << "(\n";
1922 int args = tt_message_args_count( msg );
1923 if (tt_is_err( tt_int_error( args ))) {
1926 for (int arg = 0; arg < args; arg++) {
1927 ptype << "\t\t\t\t";
1928 switch (tt_message_arg_mode( msg, arg )) {
1929 case TT_IN: ptype << "in "; break;
1930 case TT_OUT: ptype << "out "; break;
1932 case TT_INOUT: ptype << "inout"; break;
1934 char *vtype = tt_message_arg_type( msg, arg );
1935 ptype << " " << vtype << "\targ" << arg;
1936 if (arg < args - 1) {
1941 ptype << "\t\t\t) => start opnum=1;\n";
1944 // XtVaSetValues( instance->messageText, XmNvalue, ptype.str(), 0 );
1945 _DtOpen( instance->messageFooterLabel, (void *)ptype.str(),
1946 ptype.pcount(), "ptype" );
1948 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1955 XtPointer clientData,
1959 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1960 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1962 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1963 DtbMessagePropsMessagePropsInfo instance =
1964 (DtbMessagePropsMessagePropsInfo)clientData;
1965 Tt_message msg = messageProps2Msg( instance );
1966 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1969 _DtSessionChooserSet( _DtSessionChooseMessage, msg );
1970 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1977 XtPointer clientData,
1981 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1982 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1984 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1985 DtbMessagePropsMessagePropsInfo instance =
1986 (DtbMessagePropsMessagePropsInfo)clientData;
1987 Tt_message msg = messageProps2Msg( instance );
1988 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1991 _DtFileChooserSet( _DtFileChooseMessageSet, msg );
1992 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1999 XtPointer clientData,
2003 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2004 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2006 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2007 DtbMessagePropsMessagePropsInfo instance =
2008 (DtbMessagePropsMessagePropsInfo)clientData;
2009 Tt_message msg = messageProps2Msg( instance );
2010 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2013 _DtArgChooserSet( _DtArgChooseMessageArgAdd, msg );
2014 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2021 XtPointer clientData,
2025 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2026 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2028 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2029 DtbMessagePropsMessagePropsInfo instance =
2030 (DtbMessagePropsMessagePropsInfo)clientData;
2031 Tt_message msg = messageProps2Msg( instance );
2032 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2035 _DtArgChooserSet( _DtArgChooseMessageContextSet, msg );
2036 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2043 XtPointer clientData,
2047 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2048 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2050 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2051 DtbMessagePropsMessagePropsInfo instance =
2052 (DtbMessagePropsMessagePropsInfo)clientData;
2053 Tt_message msg = messageProps2Msg( instance );
2054 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2058 MessagePropsSetArgButtonMenuItems items =
2059 &instance->setArgButton_setArgButton_menu_items;
2060 if (widget == items->Arg_0_item) {
2062 } else if (widget == items->Arg_1_item) {
2064 } else if (widget == items->Arg_2_item) {
2066 } else if (widget == items->Arg_3_item) {
2068 } else if (widget == items->Arg_4_item) {
2070 } else if (widget == items->Arg_5_item) {
2072 } else if (widget == items->Arg_6_item) {
2074 } else if (widget == items->Arg_7_item) {
2076 } else if (widget == items->Arg_8_item) {
2078 } else if (widget == items->Arg_9_item) {
2080 } else if (widget == items->Arg_10_item) {
2082 } else if (widget == items->Arg_11_item) {
2084 } else if (widget == items->Arg_12_item) {
2086 } else if (widget == items->Arg_13_item) {
2088 } else if (widget == items->Arg_14_item) {
2090 } else if (widget == items->Arg_15_item) {
2092 } else if (widget == items->Arg_15_item2) {
2093 _DtStringChooserSet( _DtStringChooseMessageArgValSet, msg,
2099 Tt_mode mode = tt_message_arg_mode( msg, arg );
2100 char *vtype = tt_message_arg_type( msg, arg );
2101 if (tt_is_err( tt_ptr_error( vtype ))) {
2106 Boolean noValue = False;
2107 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
2108 if (status == TT_ERR_NUM) {
2109 val = tt_message_arg_val( msg, arg );
2110 if (tt_is_err( tt_ptr_error( val ))) {
2117 _DtArgChooserSet( _DtArgChooseMessageArgSet, msg, arg, mode, noValue,
2119 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2126 XtPointer clientData,
2130 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2131 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2133 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2134 DtbMessagePropsMessagePropsInfo instance =
2135 (DtbMessagePropsMessagePropsInfo)clientData;
2136 _DtTtMessageDispositionSet( instance, TT_DISCARD );
2137 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2144 XtPointer clientData,
2148 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2149 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2151 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2152 DtbMessagePropsMessagePropsInfo instance =
2153 (DtbMessagePropsMessagePropsInfo)clientData;
2154 _DtTtMessageDispositionSet( instance, TT_QUEUE );
2155 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2162 XtPointer clientData,
2166 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2167 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2169 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2170 DtbMessagePropsMessagePropsInfo instance =
2171 (DtbMessagePropsMessagePropsInfo)clientData;
2172 _DtTtMessageDispositionSet( instance, TT_START );
2173 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2180 XtPointer clientData,
2184 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2185 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2187 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2188 DtbMessagePropsMessagePropsInfo instance =
2189 (DtbMessagePropsMessagePropsInfo)clientData;
2190 _DtTtMessageDispositionSet( instance, (Tt_disposition)(TT_QUEUE+TT_START));
2191 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2198 XtPointer clientData,
2202 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2203 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2205 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2206 DtbMessagePropsMessagePropsInfo instance =
2207 (DtbMessagePropsMessagePropsInfo)clientData;
2208 Tt_message msg = messageProps2Msg( instance );
2209 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2212 _DtStringChooserSet( _DtStringChooseMessageObject, msg,
2213 tt_message_object( msg ));
2214 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2221 XtPointer clientData,
2225 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2226 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2228 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2229 DtbMessagePropsMessagePropsInfo instance =
2230 (DtbMessagePropsMessagePropsInfo)clientData;
2231 Tt_message msg = messageProps2Msg( instance );
2232 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2235 _DtStringChooserSet( _DtStringChooseMessageOtype, msg,
2236 tt_message_otype( msg ));
2237 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2244 XtPointer clientData,
2248 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2249 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2251 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2252 DtbMessagePropsMessagePropsInfo instance =
2253 (DtbMessagePropsMessagePropsInfo)clientData;
2254 Tt_message msg = messageProps2Msg( instance );
2255 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2258 _DtStringChooserSet( _DtStringChooseMessageHandlerPtype, msg,
2259 tt_message_handler_ptype( msg ));
2260 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2267 XtPointer clientData,
2271 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2272 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2274 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2275 DtbMessagePropsMessagePropsInfo instance =
2276 (DtbMessagePropsMessagePropsInfo)clientData;
2277 Tt_message msg = messageProps2Msg( instance );
2278 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2281 _DtStringChooserSet( _DtStringChooseMessageSenderPtype, msg,
2282 tt_message_sender_ptype( msg ));
2283 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2290 XtPointer clientData,
2294 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2295 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2297 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2298 DtbMessagePropsMessagePropsInfo instance =
2299 (DtbMessagePropsMessagePropsInfo)clientData;
2300 Tt_message msg = messageProps2Msg( instance );
2301 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2304 _DtTtChooserSet( _DtTtChooserMessageOpSet, msg );
2305 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2312 XtPointer clientData,
2316 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2317 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2319 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2320 DtbMessagePropsMessagePropsInfo instance =
2321 (DtbMessagePropsMessagePropsInfo)clientData;
2322 Tt_message msg = messageProps2Msg( instance );
2323 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2326 _DtTtMsgCbChooserSet( msg );
2327 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2334 XtPointer clientData,
2338 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2339 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2341 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2342 DtbMessagePropsMessagePropsInfo instance =
2343 (DtbMessagePropsMessagePropsInfo)clientData;
2344 Tt_message msg = messageProps2Msg( instance );
2345 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2348 _DtStringChooserSet( _DtStringChooseMessageStatusString, msg,
2349 tt_message_status_string( msg ));
2350 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2357 XtPointer clientData,
2361 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2362 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2364 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2365 DtbMessagePropsMessagePropsInfo instance =
2366 (DtbMessagePropsMessagePropsInfo)clientData;
2367 Tt_message msg = messageProps2Msg( instance );
2368 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2371 _DtStringChooserSet( _DtStringChooseMessageStatusString, msg,
2372 tt_message_object( msg ));
2373 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2378 /**************************************************************************
2379 *** DTB_USER_CODE_START
2381 *** All automatically-generated data and functions have been defined.
2383 *** Add new functions here, or at the top of the file.
2386 /*** DTB_USER_CODE_END
2388 *** End of user code section
2390 **************************************************************************/