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! **
26 #include "dtb_utils.h"
27 #include "messageProps_ui.h"
30 * Header files for cross-module connections
32 #include "ttsnoop_ui.h"
35 /**************************************************************************
36 *** DTB_USER_CODE_START
38 *** All necessary header files have been included.
40 *** Add include files, types, macros, externs, and user functions here.
43 #if defined(linux) || defined(CSRG_BASED)
46 #include <strstream.h>
50 #include <Dt/SpinBox.h>
53 int DtTtMsgWidgetKey = (int) (long) DtTtMessageWidget;
54 int DtTtMsgUpdateCBKey = DtTtMsgWidgetKey + 1;
55 int DtTtMsgInfoKey = DtTtMsgWidgetKey + 2;
63 DtTtMessageUpdateCallback cb = (DtTtMessageUpdateCallback)
64 tt_message_user( msg, DtTtMsgUpdateCBKey );
65 Tt_status status = tt_ptr_error( cb );
66 if (tt_is_err( status ) || (cb == 0)) {
67 return TT_CALLBACK_CONTINUE;
69 Widget widget = DtTtMessageWidget( msg );
70 status = tt_ptr_error( widget );
71 if (tt_is_err( status ) || (widget == 0)) {
72 return TT_CALLBACK_CONTINUE;
74 // XXX Just guessing. Store oldState with tt_message_user_set()
75 Tt_state oldState = TT_SENT;
76 if (tt_message_state( msg ) == TT_SENT) {
77 oldState = TT_CREATED;
79 (*cb)( widget, msg, oldState, TT_OK, True );
80 return TT_CALLBACK_CONTINUE;
88 // Function address is cast to int and used as clientdata key
89 return (Widget)tt_message_user( msg, DtTtMsgWidgetKey );
94 DtbMessagePropsMessagePropsInfo instance
98 XtVaGetValues( instance->messageProps_shellform,
99 XmNuserData, &msg, NULL );
104 _DtTtMessageUpdating(
108 void *updating = tt_message_user( msg, (int) (long) _DtTtMessageUpdating );
109 if (tt_is_err( tt_ptr_error( updating ))) {
112 return updating == (void *)True;
116 _DtTtMessageSetUpdating(
121 tt_message_user_set( msg, (int) (long) _DtTtMessageUpdating,
127 _DtTtMessageArgAdded,
128 _DtTtMessageFullUpdate
129 } _DtTtMessageUpdateLevel;
132 _DtTtMessageWidgetUpdate(
133 DtbMessagePropsMessagePropsInfo instance,
135 _DtTtMessageUpdateLevel level
138 char *printout = tt_message_print( msg ); // XXX when to free?
139 Tt_status status = tt_ptr_error( printout );
140 if (tt_is_err( status )) {
141 printout = tt_status_message( status );
143 XtVaSetValues( instance->messageText, XmNvalue, printout, NULL );
144 if (level == _DtTtMessageRePrint) {
148 int numArgs = tt_message_args_count( msg );
149 #define SetArgMenuItemSensitive(n) \
150 XtSetSensitive( instance->setArgButton_setArgButton_menu_items. \
151 Arg_##n##_item, numArgs > n );
152 SetArgMenuItemSensitive(0);
153 SetArgMenuItemSensitive(1);
154 SetArgMenuItemSensitive(2);
155 SetArgMenuItemSensitive(3);
156 SetArgMenuItemSensitive(4);
157 SetArgMenuItemSensitive(5);
158 SetArgMenuItemSensitive(6);
159 SetArgMenuItemSensitive(7);
160 SetArgMenuItemSensitive(8);
161 SetArgMenuItemSensitive(9);
162 SetArgMenuItemSensitive(10);
163 SetArgMenuItemSensitive(11);
164 SetArgMenuItemSensitive(12);
165 SetArgMenuItemSensitive(13);
166 SetArgMenuItemSensitive(14);
167 SetArgMenuItemSensitive(15);
168 #undef SetArgMenuItemSensitive
169 XtSetSensitive( instance->setArgButton_setArgButton_menu_items.
170 Arg_15_item2, numArgs > 16 );
172 if (level == _DtTtMessageArgAdded) {
176 _DtTtMessageSetUpdating( msg, True );
178 char *op = tt_message_op( msg );
179 status = tt_ptr_error( op );
180 if (! tt_is_err( status )) {
181 XmTextFieldSetString( instance->opText, op );
185 char *handler = tt_message_handler( msg );
186 status = tt_ptr_error( handler );
187 if (! tt_is_err( status )) {
188 XmTextFieldSetString( instance->handlerText, handler );
192 char *file = tt_message_file( msg );
193 status = tt_ptr_error( file );
194 if (! tt_is_err( status )) {
195 XmTextFieldSetString( instance->fileText, file );
199 char *session = tt_message_session( msg );
200 status = tt_ptr_error( session );
201 if (! tt_is_err( status )) {
202 XmTextFieldSetString( instance->sessionText, session );
206 int val = tt_message_status( msg );
207 XtVaSetValues( instance->statusBox, DtNposition, val, NULL );
208 char *status_string = tt_status_string( (Tt_status)val );
209 DtTtSetLabel( instance->statusLabel, status_string );
210 tt_free( status_string );
213 switch (tt_message_class( msg )) {
214 case TT_CLASS_UNDEFINED:
216 choice = instance->classChoice_items.UNDEFINED_item;
219 choice = instance->classChoice_items.NOTICE_item;
222 choice = instance->classChoice_items.REQUEST_item;
225 choice = instance->classChoice_items.OFFER_item;
228 XtVaSetValues( instance->classChoice, XmNmenuHistory, choice, NULL );
230 switch (tt_message_address( msg )) {
232 choice = instance->addressChoice_items.PROCEDURE_item;
235 choice = instance->addressChoice_items.OBJECT_item;
238 choice = instance->addressChoice_items.HANDLER_item;
241 choice = instance->addressChoice_items.OTYPE_item;
243 case TT_ADDRESS_LAST:
245 choice = instance->addressChoice_items.ADDRESS_LAST_item;
248 XtVaSetValues( instance->addressChoice, XmNmenuHistory, choice, NULL );
250 switch (tt_message_scope( msg )) {
253 choice = instance->scopeChoice_items.SCOPE_NONE_item;
256 choice = instance->scopeChoice_items.SESSION_item;
259 choice = instance->scopeChoice_items.FILE_item;
262 choice = instance->scopeChoice_items.BOTH_item;
264 case TT_FILE_IN_SESSION:
265 choice = instance->scopeChoice_items.FILE_IN_SESSION_item;
268 XtVaSetValues( instance->scopeChoice, XmNmenuHistory, choice, NULL );
270 switch (tt_message_disposition( msg )) {
273 choice = instance->dispositionChoice_items.DISCARD_item;
276 choice = instance->dispositionChoice_items.QUEUE_item;
279 choice = instance->dispositionChoice_items.START_item;
281 case TT_QUEUE+TT_START:
282 choice = instance->dispositionChoice_items.QUEUE_START_item;
285 XtVaSetValues( instance->dispositionChoice, XmNmenuHistory, choice, NULL);
287 _DtTtMessageSetUpdating( msg, False );
291 DtTtMessageWidgetUpdate(
295 Tt_status lastOperation,
299 void *v = tt_message_user( msg, DtTtMsgInfoKey );
300 Tt_status status = tt_ptr_error( v );
301 if (tt_is_err( status ) || (v == 0)) {
304 DtbMessagePropsMessagePropsInfo instance =
305 (DtbMessagePropsMessagePropsInfo)v;
306 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
312 _DtStringChooserAction choice,
316 DtbMessagePropsMessagePropsInfo instance;
317 instance = (DtbMessagePropsMessagePropsInfo)
318 tt_message_user( msg, DtTtMsgInfoKey );
319 Tt_status status = tt_ptr_error( instance );
320 if (tt_is_err( status ) || (instance == 0)) {
325 case _DtStringChooseMessageOtype:
326 status = tt_message_otype_set( msg, val );
327 func = "tt_message_otype_set()";
329 case _DtStringChooseMessageObject:
330 status = tt_message_object_set( msg, val );
331 func = "tt_message_object_set()";
333 case _DtStringChooseMessageHandlerPtype:
334 status = tt_message_handler_ptype_set( msg, val );
335 func = "tt_message_handler_ptype_set()";
337 case _DtStringChooseMessageSenderPtype:
338 status = tt_message_sender_ptype_set( msg, val );
339 func = "tt_message_sender_ptype_set()";
341 case _DtStringChooseMessageStatusString:
342 status = tt_message_status_string_set( msg, val );
343 func = "tt_message_status_string_set()";
345 case _DtStringChooseMessageArgValSet: {
349 int arg = atoi( val );
350 if ((arg <= 15) || (arg+1 > tt_message_args_count( msg ))) {
353 Tt_mode mode = tt_message_arg_mode( msg, arg );
354 char *vtype = tt_message_arg_type( msg, arg );
355 if (tt_is_err( tt_ptr_error( vtype ))) {
360 Boolean noValue = False;
361 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
362 if (status == TT_ERR_NUM) {
363 val = tt_message_arg_val( msg, arg );
364 if (tt_is_err( tt_ptr_error( val ))) {
371 _DtArgChooserSet( _DtArgChooseMessageArgSet, msg, arg,
372 mode, noValue, vtype, val, ival );
377 DtTtSetLabel( instance->messageFooterLabel, func, status );
378 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
385 _DtSessionChooserAction choice,
389 DtbMessagePropsMessagePropsInfo instance;
390 instance = (DtbMessagePropsMessagePropsInfo)
391 tt_message_user( msg, DtTtMsgInfoKey );
392 Tt_status status = tt_ptr_error( instance );
393 if (tt_is_err( status ) || (instance == 0)) {
398 case _DtSessionChooseMessage:
399 status = tt_message_session_set( msg, session );
400 func = "tt_message_session_set()";
401 session = tt_message_session( msg );
402 if (! tt_is_err( tt_ptr_error( session ))) {
403 _DtTtMessageSetUpdating( msg, True );
404 XmTextFieldSetString( instance->sessionText, session );
405 _DtTtMessageSetUpdating( msg, False );
412 DtTtSetLabel( instance->messageFooterLabel, func, status );
413 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
420 _DtFileChooserAction choice,
424 DtbMessagePropsMessagePropsInfo instance;
425 instance = (DtbMessagePropsMessagePropsInfo)
426 tt_message_user( msg, DtTtMsgInfoKey );
427 Tt_status status = tt_ptr_error( instance );
428 if (tt_is_err( status ) || (instance == 0)) {
433 case _DtFileChooseMessageSet:
434 status = tt_message_file_set( msg, file );
435 func = "tt_message_file_set()";
436 file = tt_message_file( msg );
437 if (! tt_is_err( tt_ptr_error( file ))) {
438 _DtTtMessageSetUpdating( msg, True );
439 XmTextFieldSetString( instance->fileText, file );
440 _DtTtMessageSetUpdating( msg, False );
447 DtTtSetLabel( instance->messageFooterLabel, func, status );
448 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
455 _DtTtChooserAction choice,
459 DtbMessagePropsMessagePropsInfo instance;
460 instance = (DtbMessagePropsMessagePropsInfo)
461 tt_message_user( msg, DtTtMsgInfoKey );
462 Tt_status status = tt_ptr_error( instance );
463 if (tt_is_err( status ) || (instance == 0)) {
468 case _DtTtChooserMessageOpSet:
469 status = tt_message_op_set( msg, string );
470 func = "tt_message_op_set()";
471 string = tt_message_op( msg );
472 if (! tt_is_err( tt_ptr_error( string ))) {
473 _DtTtMessageSetUpdating( msg, True );
474 XmTextFieldSetString( instance->opText, string );
475 _DtTtMessageSetUpdating( msg, False );
479 case _DtTtChooserMessageHandlerSet:
480 status = tt_message_handler_set( msg, string );
481 func = "tt_message_handler_set()";
482 string = tt_message_handler( msg );
483 if (! tt_is_err( tt_ptr_error( string ))) {
484 _DtTtMessageSetUpdating( msg, True );
485 XmTextFieldSetString( instance->handlerText, string );
486 _DtTtMessageSetUpdating( msg, False );
493 DtTtSetLabel( instance->messageFooterLabel, func, status );
494 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
501 _DtArgChooserAction choice,
509 DtbMessagePropsMessagePropsInfo instance;
510 instance = (DtbMessagePropsMessagePropsInfo)
511 tt_message_user( msg, DtTtMsgInfoKey );
512 Tt_status status = tt_ptr_error( instance );
513 if (tt_is_err( status ) || (instance == 0)) {
518 case _DtArgChooseMessageArgAdd:
519 status = tt_message_arg_add( msg, mode, vtype, val );
520 func = "tt_message_arg_add()";
522 case _DtArgChooseMessageIArgAdd:
523 status = tt_message_iarg_add( msg, mode, vtype, ival );
524 func = "tt_message_iarg_add()";
526 case _DtArgChooseMessageArgSet:
527 status = tt_message_arg_val_set( msg, nth, val );
528 func = "tt_message_arg_val_set()";
530 case _DtArgChooseMessageIArgSet:
531 status = tt_message_arg_ival_set( msg, nth, ival );
532 func = "tt_message_arg_ival_set()";
534 case _DtArgChooseMessageContextSet:
535 status = tt_message_context_set( msg, vtype, val );
536 func = "tt_message_context_set()";
538 case _DtArgChooseMessageIContextSet:
539 status = tt_message_icontext_set( msg, vtype, ival );
540 func = "tt_message_icontext_set()";
545 DtTtSetLabel( instance->messageFooterLabel, func, status );
546 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageArgAdded );
553 Tt_message_callback cb
556 DtbMessagePropsMessagePropsInfo instance;
557 instance = (DtbMessagePropsMessagePropsInfo)
558 tt_message_user( msg, DtTtMsgInfoKey );
559 Tt_status status = tt_ptr_error( instance );
560 if (tt_is_err( status ) || (instance == 0)) {
563 status = tt_message_callback_add( msg, cb );
564 DtTtSetLabel( instance->messageFooterLabel,
565 "tt_message_callback_add()", status );
570 DtTtMessageWidgetCreate(
573 DtTtMessageUpdateCallback notifyProc
576 DtbMessagePropsMessagePropsInfoRec *instance;
577 Widget widget = DtTtMessageWidget( msg );
578 Tt_status status = tt_ptr_error( widget );
579 if (tt_is_err( status ) || (widget != 0)) {
580 instance = (DtbMessagePropsMessagePropsInfoRec *)
581 tt_message_user( msg, DtTtMsgInfoKey );
582 status = tt_ptr_error( instance );
583 if (tt_is_err( status ) || (instance != 0)) {
584 XtManageChild( instance->messageProps_shellform );
588 instance = new DtbMessagePropsMessagePropsInfoRec;
590 return (Widget)tt_error_pointer( TT_ERR_NOMEM );
592 // XXX delete instance in widget destroy proc
593 status = tt_message_user_set( msg, DtTtMsgInfoKey, instance );
594 if (tt_is_err( status )) {
596 return (Widget)tt_error_pointer( status );
598 dtbMessagePropsMessagePropsInfo_clear( instance );
599 dtb_message_props_message_props_initialize( instance, parent );
600 widget = instance->messageProps;
602 XtVaSetValues( instance->messageProps_shellform, XmNuserData, msg, NULL );
603 status = tt_message_user_set( msg, DtTtMsgWidgetKey, widget );
604 if (tt_is_err( status )) {
605 XtDestroyWidget( widget );
607 return (Widget)tt_error_pointer( status );
609 if (notifyProc != 0) {
610 status = tt_message_user_set( msg, DtTtMsgUpdateCBKey,
611 (void *) notifyProc );
612 if (tt_is_err( status )) {
613 XtDestroyWidget( widget );
614 return (Widget)tt_error_pointer( status );
616 status = tt_message_callback_add( msg, _DtMsgUpdateMarshall );
617 if (tt_is_err( status )) {
618 XtDestroyWidget( widget );
619 return (Widget)tt_error_pointer( status );
623 std::ostrstream labelStream;
624 labelStream << "Tt_message " << (void *)msg;
625 XtVaSetValues( instance->messageProps,
626 XmNtitle, labelStream.str(),
628 delete labelStream.str();
630 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
632 XtManageChild( instance->messageProps_shellform );
637 _DtTtMessageDispositionSet(
638 DtbMessagePropsMessagePropsInfo instance,
639 Tt_disposition disposition
642 Tt_message msg = messageProps2Msg( instance );
646 Tt_status status = tt_message_disposition_set( msg, disposition );
647 DtTtSetLabel( instance->messageFooterLabel,
648 "tt_message_disposition_set()", status );
649 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
652 /*** DTB_USER_CODE_END
654 *** End of user code section
656 **************************************************************************/
661 messageProps_msgCloseButton_CB1(
663 XtPointer clientData,
667 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
668 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
670 DtbMessagePropsMessagePropsInfo instance = (DtbMessagePropsMessagePropsInfo)clientData;
672 if (!(instance->initialized))
674 dtb_message_props_message_props_initialize(instance, dtb_ttsnoop_ttsnoop_win.ttsnoopWin);
676 XtUnmanageChild(instance->messageProps_shellform);
678 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
679 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
686 XtPointer clientData,
690 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
691 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
693 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
694 DtbMessagePropsMessagePropsInfo instance =
695 (DtbMessagePropsMessagePropsInfo)clientData;
696 Tt_message msg = messageProps2Msg( instance );
700 Tt_status status = tt_message_class_set( msg, TT_CLASS_UNDEFINED );
701 DtTtSetLabel( instance->messageFooterLabel,
702 "tt_message_class_set()", status );
703 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
704 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
711 XtPointer clientData,
715 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
716 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
718 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
719 DtbMessagePropsMessagePropsInfo instance =
720 (DtbMessagePropsMessagePropsInfo)clientData;
721 Tt_message msg = messageProps2Msg( instance );
725 Tt_status status = tt_message_class_set( msg, TT_NOTICE );
726 DtTtSetLabel( instance->messageFooterLabel,
727 "tt_message_class_set()", status );
728 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
729 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
736 XtPointer clientData,
740 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
741 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
743 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
744 DtbMessagePropsMessagePropsInfo instance =
745 (DtbMessagePropsMessagePropsInfo)clientData;
746 Tt_message msg = messageProps2Msg( instance );
750 Tt_status status = tt_message_class_set( msg, TT_REQUEST );
751 DtTtSetLabel( instance->messageFooterLabel,
752 "tt_message_class_set()", status );
753 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
754 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
761 XtPointer clientData,
765 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
766 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
768 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
769 DtbMessagePropsMessagePropsInfo instance =
770 (DtbMessagePropsMessagePropsInfo)clientData;
771 Tt_message msg = messageProps2Msg( instance );
775 Tt_status status = tt_message_class_set( msg, TT_OFFER );
776 DtTtSetLabel( instance->messageFooterLabel,
777 "tt_message_class_set()", status );
778 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
779 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
786 XtPointer clientData,
790 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
791 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
793 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
794 DtbMessagePropsMessagePropsInfo instance =
795 (DtbMessagePropsMessagePropsInfo)clientData;
796 Tt_message msg = messageProps2Msg( instance );
800 Tt_status status = tt_message_address_set( msg, TT_ADDRESS_LAST );
801 DtTtSetLabel( instance->messageFooterLabel,
802 "tt_message_address_set()", status );
803 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
804 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
811 XtPointer clientData,
815 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
816 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
818 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
819 DtbMessagePropsMessagePropsInfo instance =
820 (DtbMessagePropsMessagePropsInfo)clientData;
821 Tt_message msg = messageProps2Msg( instance );
825 Tt_status status = tt_message_address_set( msg, TT_PROCEDURE );
826 DtTtSetLabel( instance->messageFooterLabel,
827 "tt_message_address_set()", status );
828 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
829 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
836 XtPointer clientData,
840 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
841 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
843 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
844 DtbMessagePropsMessagePropsInfo instance =
845 (DtbMessagePropsMessagePropsInfo)clientData;
846 Tt_message msg = messageProps2Msg( instance );
850 Tt_status status = tt_message_address_set( msg, TT_OBJECT );
851 DtTtSetLabel( instance->messageFooterLabel,
852 "tt_message_address_set()", status );
853 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
854 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
861 XtPointer clientData,
865 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
866 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
868 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
869 DtbMessagePropsMessagePropsInfo instance =
870 (DtbMessagePropsMessagePropsInfo)clientData;
871 Tt_message msg = messageProps2Msg( instance );
875 Tt_status status = tt_message_address_set( msg, TT_HANDLER );
876 DtTtSetLabel( instance->messageFooterLabel,
877 "tt_message_address_set()", status );
878 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
879 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
886 XtPointer clientData,
890 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
891 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
893 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
894 DtbMessagePropsMessagePropsInfo instance =
895 (DtbMessagePropsMessagePropsInfo)clientData;
896 Tt_message msg = messageProps2Msg( instance );
900 Tt_status status = tt_message_address_set( msg, TT_OTYPE );
901 DtTtSetLabel( instance->messageFooterLabel,
902 "tt_message_address_set()", status );
903 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
904 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
911 XtPointer clientData,
915 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
916 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
918 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
919 DtbMessagePropsMessagePropsInfo instance =
920 (DtbMessagePropsMessagePropsInfo)clientData;
921 Tt_message msg = messageProps2Msg( instance );
925 Tt_status status = tt_message_scope_set( msg, TT_SCOPE_NONE );
926 DtTtSetLabel( instance->messageFooterLabel,
927 "tt_message_scope_set()", status );
928 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
929 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
936 XtPointer clientData,
940 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
941 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
943 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
944 DtbMessagePropsMessagePropsInfo instance =
945 (DtbMessagePropsMessagePropsInfo)clientData;
946 Tt_message msg = messageProps2Msg( instance );
950 Tt_status status = tt_message_scope_set( msg, TT_SESSION );
951 DtTtSetLabel( instance->messageFooterLabel,
952 "tt_message_scope_set()", status );
953 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
954 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
961 XtPointer clientData,
965 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
966 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
968 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
969 DtbMessagePropsMessagePropsInfo instance =
970 (DtbMessagePropsMessagePropsInfo)clientData;
971 Tt_message msg = messageProps2Msg( instance );
975 Tt_status status = tt_message_scope_set( msg, TT_FILE );
976 DtTtSetLabel( instance->messageFooterLabel,
977 "tt_message_scope_set()", status );
978 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
979 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
986 XtPointer clientData,
990 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
991 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
993 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
994 DtbMessagePropsMessagePropsInfo instance =
995 (DtbMessagePropsMessagePropsInfo)clientData;
996 Tt_message msg = messageProps2Msg( instance );
1000 Tt_status status = tt_message_scope_set( msg, TT_BOTH );
1001 DtTtSetLabel( instance->messageFooterLabel,
1002 "tt_message_scope_set()", status );
1003 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1004 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1009 setScopeFileInSession(
1011 XtPointer clientData,
1015 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1016 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1018 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1019 DtbMessagePropsMessagePropsInfo instance =
1020 (DtbMessagePropsMessagePropsInfo)clientData;
1021 Tt_message msg = messageProps2Msg( instance );
1025 Tt_status status = tt_message_scope_set( msg, TT_FILE_IN_SESSION );
1026 DtTtSetLabel( instance->messageFooterLabel,
1027 "tt_message_scope_set()", status );
1028 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1029 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1036 XtPointer clientData,
1040 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1041 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1043 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1044 DtbMessagePropsMessagePropsInfo instance =
1045 (DtbMessagePropsMessagePropsInfo)clientData;
1046 Tt_message msg = messageProps2Msg( instance );
1047 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1050 char *op = XmTextFieldGetString( instance->opText );
1051 if ((op != 0) && (op[0] == '\0')) {
1055 Tt_status status = tt_message_op_set( msg, op );
1059 DtTtSetLabel( instance->messageFooterLabel,
1060 "tt_message_op_set()", status );
1061 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1062 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1069 XtPointer clientData,
1073 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1074 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1076 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1077 DtbMessagePropsMessagePropsInfo instance =
1078 (DtbMessagePropsMessagePropsInfo)clientData;
1079 Tt_message msg = messageProps2Msg( instance );
1083 Tt_status status = tt_message_send( msg );
1084 DtTtSetLabel( instance->messageFooterLabel,
1085 "tt_message_send()", status );
1086 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1087 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1094 XtPointer clientData,
1098 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1099 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1101 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1102 DtbMessagePropsMessagePropsInfo instance =
1103 (DtbMessagePropsMessagePropsInfo)clientData;
1104 Tt_message msg = messageProps2Msg( instance );
1108 Tt_status status = tt_message_send_on_exit( msg );
1109 DtTtSetLabel( instance->messageFooterLabel,
1110 "tt_message_send_on_exit()", status );
1111 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1112 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1119 XtPointer clientData,
1123 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1124 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1126 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1127 DtbMessagePropsMessagePropsInfo instance =
1128 (DtbMessagePropsMessagePropsInfo)clientData;
1129 Tt_message msg = messageProps2Msg( instance );
1133 Tt_status status = tt_message_accept( msg );
1134 DtTtSetLabel( instance->messageFooterLabel,
1135 "tt_message_accept()", status );
1136 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1137 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1144 XtPointer clientData,
1148 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1149 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1151 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1152 DtbMessagePropsMessagePropsInfo instance =
1153 (DtbMessagePropsMessagePropsInfo)clientData;
1154 Tt_message msg = messageProps2Msg( instance );
1158 Tt_status status = tt_message_send_on_exit( msg );
1159 DtTtSetLabel( instance->messageFooterLabel,
1160 "tt_message_send_on_exit()", status );
1161 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1162 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1169 XtPointer clientData,
1173 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1174 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1176 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1177 DtbMessagePropsMessagePropsInfo instance =
1178 (DtbMessagePropsMessagePropsInfo)clientData;
1179 Tt_message msg = messageProps2Msg( instance );
1183 Tt_status status = tt_message_reply( msg );
1184 DtTtSetLabel( instance->messageFooterLabel,
1185 "tt_message_reply()", status );
1186 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1187 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1194 XtPointer clientData,
1198 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1199 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1201 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1202 DtbMessagePropsMessagePropsInfo instance =
1203 (DtbMessagePropsMessagePropsInfo)clientData;
1204 Tt_message msg = messageProps2Msg( instance );
1208 Tt_status status = tt_message_fail( msg );
1209 DtTtSetLabel( instance->messageFooterLabel,
1210 "tt_message_fail()", status );
1211 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1212 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1219 XtPointer clientData,
1223 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1224 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1226 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1227 DtbMessagePropsMessagePropsInfo instance =
1228 (DtbMessagePropsMessagePropsInfo)clientData;
1229 Tt_message msg = messageProps2Msg( instance );
1233 Tt_status status = tttk_message_destroy( msg );
1234 DtTtSetLabel( instance->messageFooterLabel,
1235 "tttk_message_destroy()", status );
1238 DtTtDestroyed( DTTT_MESSAGE, msg );
1239 XtDestroyWidget( instance->messageProps );
1243 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1246 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1253 XtPointer clientData,
1257 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1258 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1260 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1261 DtbMessagePropsMessagePropsInfo instance =
1262 (DtbMessagePropsMessagePropsInfo)clientData;
1263 Tt_message msg = messageProps2Msg( instance );
1267 Tt_pattern *pats = ttdt_message_accept( msg, 0, 0, instance->messageProps,
1269 Tt_status status = tt_ptr_error( pats );
1270 DtTtSetLabel( instance->messageFooterLabel,
1271 "ttdt_message_accept()", status );
1272 if ((status == TT_OK) && (pats != 0)) {
1273 while (*pats != 0) {
1274 DtTtCreated( DTTT_PATTERN, *pats );
1278 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1279 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1284 msgSubcontractManage(
1286 XtPointer clientData,
1290 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1291 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1293 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1294 DtbMessagePropsMessagePropsInfo instance =
1295 (DtbMessagePropsMessagePropsInfo)clientData;
1296 Tt_message msg = messageProps2Msg( instance );
1300 Tt_pattern *pats = ttdt_subcontract_manage( msg, 0,
1301 instance->messageProps, 0 );
1302 Tt_status status = tt_ptr_error( pats );
1303 DtTtSetLabel( instance->messageFooterLabel,
1304 "ttdt_subcontract_manage()", status );
1305 if (status == TT_OK) {
1306 while (*pats != 0) {
1307 DtTtCreated( DTTT_PATTERN, *pats );
1311 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1312 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1319 XtPointer clientData,
1323 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1324 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1326 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1327 DtbMessagePropsMessagePropsInfo instance =
1328 (DtbMessagePropsMessagePropsInfo)clientData;
1329 Tt_message msg = messageProps2Msg( instance );
1333 msg = tt_message_copy( msg );
1334 Tt_status status = DtTtSetLabel( instance->messageProps_footer,
1335 "tt_message_copy()", msg );
1336 if (tt_is_err( status )) {
1339 DtTtCreated( DTTT_MESSAGE, msg );
1340 Widget newWidget = DtTtMessageWidgetCreate(
1341 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, msg,
1342 DtTtMessageWidgetUpdate );
1343 status = tt_ptr_error( newWidget );
1344 if (tt_is_err( status )) {
1347 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1348 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1355 XtPointer clientData,
1359 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1360 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1362 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1363 DtbMessagePropsMessagePropsInfo instance =
1364 (DtbMessagePropsMessagePropsInfo)clientData;
1365 Tt_message msg = messageProps2Msg( instance );
1369 char *sender = tt_message_sender( msg );
1370 Tt_message msg2 = tttk_message_create( msg, TT_NOTICE,
1371 tt_message_scope( msg ), sender, "Status", 0 );
1373 Tt_status status = DtTtSetLabel( instance->messageProps_footer,
1374 "tttk_message_create()", msg2 );
1375 if (tt_is_err( status )) {
1379 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
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 char *commission = tt_message_id( msg );
1384 tt_message_arg_add( msg2, TT_IN, Tttk_message_id, commission );
1385 tt_free( commission );
1387 DtTtCreated( DTTT_MESSAGE, msg2 );
1388 Widget newWidget = DtTtMessageWidgetCreate(
1389 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, msg2,
1390 DtTtMessageWidgetUpdate );
1391 status = tt_ptr_error( newWidget );
1392 if (tt_is_err( status )) {
1395 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1396 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1403 XtPointer clientData,
1407 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1408 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1410 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1411 std::ostrstream action; // XXX when to delete .str()?
1412 DtbMessagePropsMessagePropsInfo instance =
1413 (DtbMessagePropsMessagePropsInfo)clientData;
1414 Tt_message msg = messageProps2Msg( instance );
1418 char *op = tt_message_op( msg );
1419 action << "ACTION Send_" << op << "\n{\n\tLABEL\tSend_" << op << "\n";
1420 action << "\tTYPE\tTT_MSG\n";
1421 action << "\tTT_CLASS\t" << tt_message_class( msg ) << "\n";
1422 action << "\tTT_SCOPE\t" << tt_message_scope( msg ) << "\n";
1423 action << "\tTT_OPERATION\t" << op << "\n";
1425 char *file = tt_message_file( msg );
1426 Tt_status status = tt_ptr_error( file );
1427 if ((! tt_is_err( status )) && (file != 0)) {
1428 action << "\tTT_FILE\t" << file << "\n";
1431 int args = tt_message_args_count( msg );
1432 for (int arg = 0; arg < args; arg++) {
1433 action << "\tTT_ARG" << arg << "_MODE\t";
1434 action << tt_message_arg_mode( msg, arg ) << "\n";
1435 char *vtype = tt_message_arg_type( msg, arg );
1436 action << "\tTT_ARG" << arg << "_VTYPE\t" << vtype << "\n";
1438 status = tt_message_arg_ival( msg, arg, &ival );
1442 action << "\tTT_ARG" << arg << "_REP_TYPE\t"
1444 action << "\tTT_ARG" << arg << "_VALUE\t" << ival << "\n";
1447 val = tt_message_arg_val( msg, arg );
1448 status = tt_ptr_error( val );
1449 if (tt_is_err( status ) || (val == 0)) {
1452 action << "\tTT_ARG" << arg << "_VALUE\t" << val << "\n";
1457 // XXX emit commented warnings for e.g. TT_OFFER, TT_HANDLER
1459 // XtVaSetValues( instance->messageText, XmNvalue, action.str(), 0 );
1460 _DtOpen( instance->messageFooterLabel, (void *)action.str(),
1461 action.pcount(), "actio" );
1462 delete action.str();
1463 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1470 XtPointer clientData,
1474 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1475 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1477 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1478 std::ostrstream code; // XXX when to delete .str()?
1479 DtbMessagePropsMessagePropsInfo instance =
1480 (DtbMessagePropsMessagePropsInfo)clientData;
1481 Tt_message msg = messageProps2Msg( instance );
1485 code << "#include <Tt/tt_c.h>\n";
1486 code << "#include <Tt/tttk.h>\n";
1487 char *op = tt_message_op( msg );
1488 if (tt_message_class( msg ) != TT_NOTICE) {
1489 code << "\nTt_callback_action\nprocess_" << op << "_reply(";
1490 code << " Tt_message msg, Tt_message pat );\n";
1492 code << "\nTt_message\n";
1493 code << "create_" << op << "(\n";
1494 code << "\tTt_message context\n)\n{\n";
1495 code << "\tTt_message msg;\n";
1496 code << "\tmsg = tttk_message_create( context";
1497 code << ", " << tt_message_class( msg );
1498 code << ", " << tt_message_scope( msg ) << ",\n\t\t\t";
1499 Tt_address address = tt_message_address( msg );
1507 handler = tt_message_handler( msg );
1508 code << "\"" << handler << "\",\n";
1513 code << "(char *)0";
1515 code << "\"" << op << "\"";
1518 if (tt_message_class( msg ) == TT_NOTICE) {
1521 code << "\n\t\t\tprocess_" << op << "_reply ";
1526 code << "\ttt_message_address_set( msg, " << address << " );\n";
1530 // set properly by tttk_message_create();
1533 int args = tt_message_args_count( msg );
1534 if (tt_is_err( tt_int_error( args ))) {
1537 for (int arg = 0; arg < args; arg++) {
1538 Tt_mode mode = tt_message_arg_mode( msg, arg );
1539 char *vtype = tt_message_arg_type( msg, arg );
1541 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
1545 code << "\ttt_message_iarg_add( msg, " << mode << ", ";
1546 code << '"' << vtype << "\", " << ival << " );\n";
1549 val = tt_message_arg_val( msg, arg );
1550 code << "\ttt_message_arg_add( msg, " << mode << ", ";
1551 code << '"' << vtype << "\", ";
1553 code << "(char *)0";
1555 code << "\"" << val << "\"";
1563 int stat = tt_message_status( msg );
1565 code << "\ttt_message_status_set( msg, " << stat << " );\n";
1567 code << "\treturn msg;\n";
1569 if (tt_message_class( msg ) != TT_NOTICE) {
1570 code << "\nstatic Tt_callback_action\n";
1571 code << "process_" << op << "_reply(\n";
1572 code << "\tTt_message msg,\n";
1573 code << "\tTt_message pat\n";
1575 code << "\tswitch (tt_message_state(msg)) {\n";
1576 code << "\t\tcase TT_SENT:\t/* handler is in this process */\n";
1577 code << "\t\tcase TT_STARTED:/* intermediate state */\n";
1578 code << "\t\tcase TT_QUEUED:\t/* intermediate state */\n";
1579 code << "\t\tdefault:\t/* unknown state */\n";
1580 code << "\t\t\treturn TT_CALLBACK_CONTINUE;\n";
1581 if (tt_message_class(msg) == TT_REQUEST) {
1582 code << "\t\tcase TT_HANDLED:\n";
1583 code << "\t\t\t/* ... */\n";
1584 code << "\t\t\tbreak;\n";
1585 code << "\t\tcase TT_FAILED: {\n";
1586 code << "\t\t\tint status;\n";
1587 code << "\t\t\tchar *string;\n";
1588 code << "\t\t\tstatus = tt_message_status( msg );\n";
1589 code << "\t\t\tstring = "
1590 "tt_message_status_string( msg );\n";
1591 code << "\t\t\t/* ... */\n";
1592 code << "\t\t\t} break;\n";
1594 code << "\t\tcase TT_RETURNED:\n";
1595 code << "\t\t\t/* ... */\n";
1596 code << "\t\t\tbreak;\n";
1599 code << "\ttt_message_destroy( msg );\n";
1600 code << "\treturn TT_CALLBACK_PROCESSED;\n";
1604 // XtVaSetValues( instance->messageText, XmNvalue, code.str(), 0 );
1605 _DtOpen( instance->messageFooterLabel, (void *)code.str(),
1606 code.pcount(), "msgC" );
1608 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1615 XtPointer clientData,
1619 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1620 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1622 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1623 DtbMessagePropsMessagePropsInfo instance =
1624 (DtbMessagePropsMessagePropsInfo)clientData;
1625 Tt_message msg = messageProps2Msg( instance );
1626 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1629 char *handler = XmTextFieldGetString( instance->handlerText );
1630 if ((handler != 0) && (handler[0] == '\0')) {
1634 Tt_status status = tt_message_handler_set( msg, handler );
1638 DtTtSetLabel( instance->messageFooterLabel,
1639 "tt_message_handler_set()", status );
1640 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1641 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1648 XtPointer clientData,
1652 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1653 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1655 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1656 DtbMessagePropsMessagePropsInfo instance =
1657 (DtbMessagePropsMessagePropsInfo)clientData;
1658 Tt_message msg = messageProps2Msg( instance );
1659 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1662 char *session = XmTextFieldGetString( instance->sessionText );
1663 if ((session != 0) && (session[0] == '\0')) {
1667 Tt_status status = tt_message_session_set( msg, session );
1671 DtTtSetLabel( instance->messageFooterLabel,
1672 "tt_message_session_set()", status );
1673 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1674 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1681 XtPointer clientData,
1685 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1686 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1688 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1689 DtbMessagePropsMessagePropsInfo instance =
1690 (DtbMessagePropsMessagePropsInfo)clientData;
1691 Tt_message msg = messageProps2Msg( instance );
1692 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1695 char *file = XmTextFieldGetString( instance->fileText );
1696 if ((file != 0) && (file[0] == '\0')) {
1700 Tt_status status = tt_message_file_set( msg, file );
1704 DtTtSetLabel( instance->messageFooterLabel,
1705 "tt_message_file_set()", status );
1706 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1707 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1714 XtPointer clientData,
1718 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1719 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1721 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1722 DtbMessagePropsMessagePropsInfo instance =
1723 (DtbMessagePropsMessagePropsInfo)clientData;
1724 Tt_message msg = messageProps2Msg( instance );
1725 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1729 XtVaGetValues( instance->statusBox, DtNposition, &val, NULL );
1730 XmString statusName = DtTtStatusString( (Tt_status)val );
1731 XtVaSetValues( instance->statusLabel, XmNlabelString, statusName, NULL );
1732 XmStringFree( statusName );
1733 Tt_status status = tt_message_status_set( msg, val );
1734 DtTtSetLabel( instance->messageFooterLabel,
1735 "tt_message_status_set()", status );
1736 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1737 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1744 XtPointer clientData,
1748 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1749 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1751 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1752 dtb_do_onitem_help();
1753 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1760 XtPointer clientData,
1764 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1765 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1767 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1768 DtbMessagePropsMessagePropsInfo instance =
1769 (DtbMessagePropsMessagePropsInfo)clientData;
1770 Tt_message msg = messageProps2Msg( instance );
1774 Tt_pattern pat = tt_message_pattern( msg );
1775 Tt_status status = DtTtSetLabel( instance->messageFooterLabel,
1776 "tt_message_pattern()", pat );
1777 if (tt_is_err( status ) || (pat == 0)) {
1780 Widget newWidget = DtTtPatternWidgetCreate(
1781 dtb_ttsnoop_ttsnoop_win.ttsnoopWin,
1783 status = tt_ptr_error( newWidget );
1784 if (tt_is_err( status )) {
1787 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1788 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1795 XtPointer clientData,
1799 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1800 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1802 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1803 DtbMessagePropsMessagePropsInfo instance =
1804 (DtbMessagePropsMessagePropsInfo)clientData;
1805 Tt_message msg = messageProps2Msg( instance );
1809 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1810 DtTtSetLabel( instance->messageFooterLabel,
1811 "tt_message_print()", TT_OK );
1812 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1819 XtPointer clientData,
1823 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1824 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1826 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1827 DtbMessagePropsMessagePropsInfo instance =
1828 (DtbMessagePropsMessagePropsInfo)clientData;
1829 Tt_message msg = messageProps2Msg( instance );
1833 Tt_pattern pat = tt_pattern_create();
1834 tt_pattern_category_set( pat, TT_OBSERVE );
1835 tt_pattern_class_add( pat, tt_message_class( msg ));
1836 tt_pattern_scope_add( pat, tt_message_scope( msg ));
1837 tt_pattern_address_add( pat, tt_message_address( msg ));
1838 char *op = tt_message_op( msg );
1839 if ((! tt_is_err( tt_ptr_error( op ))) && (op != 0)) {
1840 tt_pattern_op_add( pat, op );
1843 // skip file, sender, sender_ptype, otype, object, opnum, contexts
1844 char *session = tt_message_session( msg );
1845 if ((! tt_is_err( tt_ptr_error( session ))) && (session != 0)) {
1846 tt_pattern_session_add( pat, session );
1849 int args = tt_message_args_count( msg );
1850 if (tt_int_error( args ) == TT_OK) {
1851 for (int arg = 0; arg < args; arg++) {
1852 Tt_mode mode = tt_message_arg_mode( msg, arg );
1853 char *vtype = tt_message_arg_type( msg, arg );
1855 tt_pattern_arg_add( pat, mode, vtype, 0 );
1859 DtTtCreated( DTTT_PATTERN, pat );
1860 Widget newWidget = DtTtPatternWidgetCreate(
1861 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, pat, 0 );
1862 if (tt_is_err( tt_ptr_error( newWidget ))) {
1865 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1866 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1873 XtPointer clientData,
1877 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1878 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1880 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1881 std::ostrstream ptype; // XXX when to delete .str()?
1882 DtbMessagePropsMessagePropsInfo instance =
1883 (DtbMessagePropsMessagePropsInfo)clientData;
1884 Tt_message msg = messageProps2Msg( instance );
1888 ptype << "ptype Acme_Calc {\n\tstart \"acalc\";\n";
1890 ptype << "\thandle_push:\n";
1891 ptype << "\thandle_rotate:\n";
1892 switch (tt_message_class(msg)) {
1894 ptype << "\tobserve:\n";
1896 ptype << "\thandle:\n";
1901 ptype << "\thandle:\n";
1903 ptype << "\tobserve:\n";
1907 switch (tt_message_scope(msg)) {
1911 case TT_FILE_IN_SESSION:
1915 ptype << "session ";
1918 char *op = tt_message_op( msg );
1919 ptype << op << "(\n";
1921 int args = tt_message_args_count( msg );
1922 if (tt_is_err( tt_int_error( args ))) {
1925 for (int arg = 0; arg < args; arg++) {
1926 ptype << "\t\t\t\t";
1927 switch (tt_message_arg_mode( msg, arg )) {
1928 case TT_IN: ptype << "in "; break;
1929 case TT_OUT: ptype << "out "; break;
1931 case TT_INOUT: ptype << "inout"; break;
1933 char *vtype = tt_message_arg_type( msg, arg );
1934 ptype << " " << vtype << "\targ" << arg;
1935 if (arg < args - 1) {
1940 ptype << "\t\t\t) => start opnum=1;\n";
1943 // XtVaSetValues( instance->messageText, XmNvalue, ptype.str(), 0 );
1944 _DtOpen( instance->messageFooterLabel, (void *)ptype.str(),
1945 ptype.pcount(), "ptype" );
1947 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1954 XtPointer clientData,
1958 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1959 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1961 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1962 DtbMessagePropsMessagePropsInfo instance =
1963 (DtbMessagePropsMessagePropsInfo)clientData;
1964 Tt_message msg = messageProps2Msg( instance );
1965 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1968 _DtSessionChooserSet( _DtSessionChooseMessage, msg );
1969 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1976 XtPointer clientData,
1980 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1981 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1983 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1984 DtbMessagePropsMessagePropsInfo instance =
1985 (DtbMessagePropsMessagePropsInfo)clientData;
1986 Tt_message msg = messageProps2Msg( instance );
1987 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1990 _DtFileChooserSet( _DtFileChooseMessageSet, msg );
1991 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1998 XtPointer clientData,
2002 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2003 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2005 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2006 DtbMessagePropsMessagePropsInfo instance =
2007 (DtbMessagePropsMessagePropsInfo)clientData;
2008 Tt_message msg = messageProps2Msg( instance );
2009 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2012 _DtArgChooserSet( _DtArgChooseMessageArgAdd, msg );
2013 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2020 XtPointer clientData,
2024 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2025 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2027 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2028 DtbMessagePropsMessagePropsInfo instance =
2029 (DtbMessagePropsMessagePropsInfo)clientData;
2030 Tt_message msg = messageProps2Msg( instance );
2031 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2034 _DtArgChooserSet( _DtArgChooseMessageContextSet, msg );
2035 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2042 XtPointer clientData,
2046 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2047 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2049 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2050 DtbMessagePropsMessagePropsInfo instance =
2051 (DtbMessagePropsMessagePropsInfo)clientData;
2052 Tt_message msg = messageProps2Msg( instance );
2053 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2057 MessagePropsSetArgButtonMenuItems items =
2058 &instance->setArgButton_setArgButton_menu_items;
2059 if (widget == items->Arg_0_item) {
2061 } else if (widget == items->Arg_1_item) {
2063 } else if (widget == items->Arg_2_item) {
2065 } else if (widget == items->Arg_3_item) {
2067 } else if (widget == items->Arg_4_item) {
2069 } else if (widget == items->Arg_5_item) {
2071 } else if (widget == items->Arg_6_item) {
2073 } else if (widget == items->Arg_7_item) {
2075 } else if (widget == items->Arg_8_item) {
2077 } else if (widget == items->Arg_9_item) {
2079 } else if (widget == items->Arg_10_item) {
2081 } else if (widget == items->Arg_11_item) {
2083 } else if (widget == items->Arg_12_item) {
2085 } else if (widget == items->Arg_13_item) {
2087 } else if (widget == items->Arg_14_item) {
2089 } else if (widget == items->Arg_15_item) {
2091 } else if (widget == items->Arg_15_item2) {
2092 _DtStringChooserSet( _DtStringChooseMessageArgValSet, msg,
2098 Tt_mode mode = tt_message_arg_mode( msg, arg );
2099 char *vtype = tt_message_arg_type( msg, arg );
2100 if (tt_is_err( tt_ptr_error( vtype ))) {
2105 Boolean noValue = False;
2106 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
2107 if (status == TT_ERR_NUM) {
2108 val = tt_message_arg_val( msg, arg );
2109 if (tt_is_err( tt_ptr_error( val ))) {
2116 _DtArgChooserSet( _DtArgChooseMessageArgSet, msg, arg, mode, noValue,
2118 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2125 XtPointer clientData,
2129 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2130 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2132 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2133 DtbMessagePropsMessagePropsInfo instance =
2134 (DtbMessagePropsMessagePropsInfo)clientData;
2135 _DtTtMessageDispositionSet( instance, TT_DISCARD );
2136 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2143 XtPointer clientData,
2147 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2148 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2150 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2151 DtbMessagePropsMessagePropsInfo instance =
2152 (DtbMessagePropsMessagePropsInfo)clientData;
2153 _DtTtMessageDispositionSet( instance, TT_QUEUE );
2154 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2161 XtPointer clientData,
2165 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2166 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2168 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2169 DtbMessagePropsMessagePropsInfo instance =
2170 (DtbMessagePropsMessagePropsInfo)clientData;
2171 _DtTtMessageDispositionSet( instance, TT_START );
2172 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2179 XtPointer clientData,
2183 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2184 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2186 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2187 DtbMessagePropsMessagePropsInfo instance =
2188 (DtbMessagePropsMessagePropsInfo)clientData;
2189 _DtTtMessageDispositionSet( instance, (Tt_disposition)(TT_QUEUE+TT_START));
2190 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2197 XtPointer clientData,
2201 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2202 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2204 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2205 DtbMessagePropsMessagePropsInfo instance =
2206 (DtbMessagePropsMessagePropsInfo)clientData;
2207 Tt_message msg = messageProps2Msg( instance );
2208 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2211 _DtStringChooserSet( _DtStringChooseMessageObject, msg,
2212 tt_message_object( msg ));
2213 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2220 XtPointer clientData,
2224 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2225 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2227 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2228 DtbMessagePropsMessagePropsInfo instance =
2229 (DtbMessagePropsMessagePropsInfo)clientData;
2230 Tt_message msg = messageProps2Msg( instance );
2231 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2234 _DtStringChooserSet( _DtStringChooseMessageOtype, msg,
2235 tt_message_otype( msg ));
2236 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2243 XtPointer clientData,
2247 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2248 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2250 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2251 DtbMessagePropsMessagePropsInfo instance =
2252 (DtbMessagePropsMessagePropsInfo)clientData;
2253 Tt_message msg = messageProps2Msg( instance );
2254 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2257 _DtStringChooserSet( _DtStringChooseMessageHandlerPtype, msg,
2258 tt_message_handler_ptype( msg ));
2259 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2266 XtPointer clientData,
2270 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2271 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2273 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2274 DtbMessagePropsMessagePropsInfo instance =
2275 (DtbMessagePropsMessagePropsInfo)clientData;
2276 Tt_message msg = messageProps2Msg( instance );
2277 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2280 _DtStringChooserSet( _DtStringChooseMessageSenderPtype, msg,
2281 tt_message_sender_ptype( msg ));
2282 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2289 XtPointer clientData,
2293 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2294 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2296 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2297 DtbMessagePropsMessagePropsInfo instance =
2298 (DtbMessagePropsMessagePropsInfo)clientData;
2299 Tt_message msg = messageProps2Msg( instance );
2300 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2303 _DtTtChooserSet( _DtTtChooserMessageOpSet, msg );
2304 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2311 XtPointer clientData,
2315 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2316 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2318 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2319 DtbMessagePropsMessagePropsInfo instance =
2320 (DtbMessagePropsMessagePropsInfo)clientData;
2321 Tt_message msg = messageProps2Msg( instance );
2322 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2325 _DtTtMsgCbChooserSet( msg );
2326 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2333 XtPointer clientData,
2337 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2338 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2340 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2341 DtbMessagePropsMessagePropsInfo instance =
2342 (DtbMessagePropsMessagePropsInfo)clientData;
2343 Tt_message msg = messageProps2Msg( instance );
2344 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2347 _DtStringChooserSet( _DtStringChooseMessageStatusString, msg,
2348 tt_message_status_string( msg ));
2349 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2356 XtPointer clientData,
2360 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2361 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2363 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2364 DtbMessagePropsMessagePropsInfo instance =
2365 (DtbMessagePropsMessagePropsInfo)clientData;
2366 Tt_message msg = messageProps2Msg( instance );
2367 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2370 _DtStringChooserSet( _DtStringChooseMessageStatusString, msg,
2371 tt_message_object( msg ));
2372 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2377 /**************************************************************************
2378 *** DTB_USER_CODE_START
2380 *** All automatically-generated data and functions have been defined.
2382 *** Add new functions here, or at the top of the file.
2385 /*** DTB_USER_CODE_END
2387 *** End of user code section
2389 **************************************************************************/