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 #include <strstream.h>
45 #include <Dt/SpinBox.h>
48 int DtTtMsgWidgetKey = (int)DtTtMessageWidget;
49 int DtTtMsgUpdateCBKey = DtTtMsgWidgetKey + 1;
50 int DtTtMsgInfoKey = DtTtMsgWidgetKey + 2;
58 DtTtMessageUpdateCallback cb = (DtTtMessageUpdateCallback)
59 tt_message_user( msg, DtTtMsgUpdateCBKey );
60 Tt_status status = tt_ptr_error( cb );
61 if (tt_is_err( status ) || (cb == 0)) {
62 return TT_CALLBACK_CONTINUE;
64 Widget widget = DtTtMessageWidget( msg );
65 status = tt_ptr_error( widget );
66 if (tt_is_err( status ) || (widget == 0)) {
67 return TT_CALLBACK_CONTINUE;
69 // XXX Just guessing. Store oldState with tt_message_user_set()
70 Tt_state oldState = TT_SENT;
71 if (tt_message_state( msg ) == TT_SENT) {
72 oldState = TT_CREATED;
74 (*cb)( widget, msg, oldState, TT_OK, True );
75 return TT_CALLBACK_CONTINUE;
83 // Function address is cast to int and used as clientdata key
84 return (Widget)tt_message_user( msg, DtTtMsgWidgetKey );
89 DtbMessagePropsMessagePropsInfo instance
93 XtVaGetValues( instance->messageProps_shellform,
94 XmNuserData, &msg, 0 );
103 void *updating = tt_message_user( msg, (int)_DtTtMessageUpdating );
104 if (tt_is_err( tt_ptr_error( updating ))) {
107 return updating == (void *)True;
111 _DtTtMessageSetUpdating(
116 tt_message_user_set( msg, (int)_DtTtMessageUpdating,
122 _DtTtMessageArgAdded,
123 _DtTtMessageFullUpdate
124 } _DtTtMessageUpdateLevel;
127 _DtTtMessageWidgetUpdate(
128 DtbMessagePropsMessagePropsInfo instance,
130 _DtTtMessageUpdateLevel level
133 char *printout = tt_message_print( msg ); // XXX when to free?
134 Tt_status status = tt_ptr_error( printout );
135 if (tt_is_err( status )) {
136 printout = tt_status_message( status );
138 XtVaSetValues( instance->messageText, XmNvalue, printout, 0 );
139 if (level == _DtTtMessageRePrint) {
143 int numArgs = tt_message_args_count( msg );
144 #define SetArgMenuItemSensitive(n) \
145 XtSetSensitive( instance->setArgButton_setArgButton_menu_items. \
146 Arg_##n##_item, numArgs > n );
147 SetArgMenuItemSensitive(0);
148 SetArgMenuItemSensitive(1);
149 SetArgMenuItemSensitive(2);
150 SetArgMenuItemSensitive(3);
151 SetArgMenuItemSensitive(4);
152 SetArgMenuItemSensitive(5);
153 SetArgMenuItemSensitive(6);
154 SetArgMenuItemSensitive(7);
155 SetArgMenuItemSensitive(8);
156 SetArgMenuItemSensitive(9);
157 SetArgMenuItemSensitive(10);
158 SetArgMenuItemSensitive(11);
159 SetArgMenuItemSensitive(12);
160 SetArgMenuItemSensitive(13);
161 SetArgMenuItemSensitive(14);
162 SetArgMenuItemSensitive(15);
163 #undef SetArgMenuItemSensitive
164 XtSetSensitive( instance->setArgButton_setArgButton_menu_items.
165 Arg_15_item2, numArgs > 16 );
167 if (level == _DtTtMessageArgAdded) {
171 _DtTtMessageSetUpdating( msg, True );
173 char *op = tt_message_op( msg );
174 status = tt_ptr_error( op );
175 if (! tt_is_err( status )) {
176 XmTextFieldSetString( instance->opText, op );
180 char *handler = tt_message_handler( msg );
181 status = tt_ptr_error( handler );
182 if (! tt_is_err( status )) {
183 XmTextFieldSetString( instance->handlerText, handler );
187 char *file = tt_message_file( msg );
188 status = tt_ptr_error( file );
189 if (! tt_is_err( status )) {
190 XmTextFieldSetString( instance->fileText, file );
194 char *session = tt_message_session( msg );
195 status = tt_ptr_error( session );
196 if (! tt_is_err( status )) {
197 XmTextFieldSetString( instance->sessionText, session );
201 int val = tt_message_status( msg );
202 XtVaSetValues( instance->statusBox, DtNposition, val, 0 );
203 char *status_string = tt_status_string( (Tt_status)val );
204 DtTtSetLabel( instance->statusLabel, status_string );
205 tt_free( status_string );
208 switch (tt_message_class( msg )) {
209 case TT_CLASS_UNDEFINED:
211 choice = instance->classChoice_items.UNDEFINED_item;
214 choice = instance->classChoice_items.NOTICE_item;
217 choice = instance->classChoice_items.REQUEST_item;
220 choice = instance->classChoice_items.OFFER_item;
223 XtVaSetValues( instance->classChoice, XmNmenuHistory, choice, 0 );
225 switch (tt_message_address( msg )) {
227 choice = instance->addressChoice_items.PROCEDURE_item;
230 choice = instance->addressChoice_items.OBJECT_item;
233 choice = instance->addressChoice_items.HANDLER_item;
236 choice = instance->addressChoice_items.OTYPE_item;
238 case TT_ADDRESS_LAST:
240 choice = instance->addressChoice_items.ADDRESS_LAST_item;
243 XtVaSetValues( instance->addressChoice, XmNmenuHistory, choice, 0 );
245 switch (tt_message_scope( msg )) {
248 choice = instance->scopeChoice_items.SCOPE_NONE_item;
251 choice = instance->scopeChoice_items.SESSION_item;
254 choice = instance->scopeChoice_items.FILE_item;
257 choice = instance->scopeChoice_items.BOTH_item;
259 case TT_FILE_IN_SESSION:
260 choice = instance->scopeChoice_items.FILE_IN_SESSION_item;
263 XtVaSetValues( instance->scopeChoice, XmNmenuHistory, choice, 0 );
265 switch (tt_message_disposition( msg )) {
268 choice = instance->dispositionChoice_items.DISCARD_item;
271 choice = instance->dispositionChoice_items.QUEUE_item;
274 choice = instance->dispositionChoice_items.START_item;
276 case TT_QUEUE+TT_START:
277 choice = instance->dispositionChoice_items.QUEUE_START_item;
280 XtVaSetValues( instance->dispositionChoice, XmNmenuHistory, choice, 0);
282 _DtTtMessageSetUpdating( msg, False );
286 DtTtMessageWidgetUpdate(
290 Tt_status lastOperation,
294 void *v = tt_message_user( msg, DtTtMsgInfoKey );
295 Tt_status status = tt_ptr_error( v );
296 if (tt_is_err( status ) || (v == 0)) {
299 DtbMessagePropsMessagePropsInfo instance =
300 (DtbMessagePropsMessagePropsInfo)v;
301 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
307 _DtStringChooserAction choice,
311 DtbMessagePropsMessagePropsInfo instance;
312 instance = (DtbMessagePropsMessagePropsInfo)
313 tt_message_user( msg, DtTtMsgInfoKey );
314 Tt_status status = tt_ptr_error( instance );
315 if (tt_is_err( status ) || (instance == 0)) {
320 case _DtStringChooseMessageOtype:
321 status = tt_message_otype_set( msg, val );
322 func = "tt_message_otype_set()";
324 case _DtStringChooseMessageObject:
325 status = tt_message_object_set( msg, val );
326 func = "tt_message_object_set()";
328 case _DtStringChooseMessageHandlerPtype:
329 status = tt_message_handler_ptype_set( msg, val );
330 func = "tt_message_handler_ptype_set()";
332 case _DtStringChooseMessageSenderPtype:
333 status = tt_message_sender_ptype_set( msg, val );
334 func = "tt_message_sender_ptype_set()";
336 case _DtStringChooseMessageStatusString:
337 status = tt_message_status_string_set( msg, val );
338 func = "tt_message_status_string_set()";
340 case _DtStringChooseMessageArgValSet: {
344 int arg = atoi( val );
345 if ((arg <= 15) || (arg+1 > tt_message_args_count( msg ))) {
348 Tt_mode mode = tt_message_arg_mode( msg, arg );
349 char *vtype = tt_message_arg_type( msg, arg );
350 if (tt_is_err( tt_ptr_error( vtype ))) {
355 Boolean noValue = False;
356 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
357 if (status == TT_ERR_NUM) {
358 val = tt_message_arg_val( msg, arg );
359 if (tt_is_err( tt_ptr_error( val ))) {
366 _DtArgChooserSet( _DtArgChooseMessageArgSet, msg, arg,
367 mode, noValue, vtype, val, ival );
372 DtTtSetLabel( instance->messageFooterLabel, func, status );
373 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
380 _DtSessionChooserAction choice,
384 DtbMessagePropsMessagePropsInfo instance;
385 instance = (DtbMessagePropsMessagePropsInfo)
386 tt_message_user( msg, DtTtMsgInfoKey );
387 Tt_status status = tt_ptr_error( instance );
388 if (tt_is_err( status ) || (instance == 0)) {
393 case _DtSessionChooseMessage:
394 status = tt_message_session_set( msg, session );
395 func = "tt_message_session_set()";
396 session = tt_message_session( msg );
397 if (! tt_is_err( tt_ptr_error( session ))) {
398 _DtTtMessageSetUpdating( msg, True );
399 XmTextFieldSetString( instance->sessionText, session );
400 _DtTtMessageSetUpdating( msg, False );
407 DtTtSetLabel( instance->messageFooterLabel, func, status );
408 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
415 _DtFileChooserAction choice,
419 DtbMessagePropsMessagePropsInfo instance;
420 instance = (DtbMessagePropsMessagePropsInfo)
421 tt_message_user( msg, DtTtMsgInfoKey );
422 Tt_status status = tt_ptr_error( instance );
423 if (tt_is_err( status ) || (instance == 0)) {
428 case _DtFileChooseMessageSet:
429 status = tt_message_file_set( msg, file );
430 func = "tt_message_file_set()";
431 file = tt_message_file( msg );
432 if (! tt_is_err( tt_ptr_error( file ))) {
433 _DtTtMessageSetUpdating( msg, True );
434 XmTextFieldSetString( instance->fileText, file );
435 _DtTtMessageSetUpdating( msg, False );
442 DtTtSetLabel( instance->messageFooterLabel, func, status );
443 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
450 _DtTtChooserAction choice,
454 DtbMessagePropsMessagePropsInfo instance;
455 instance = (DtbMessagePropsMessagePropsInfo)
456 tt_message_user( msg, DtTtMsgInfoKey );
457 Tt_status status = tt_ptr_error( instance );
458 if (tt_is_err( status ) || (instance == 0)) {
463 case _DtTtChooserMessageOpSet:
464 status = tt_message_op_set( msg, string );
465 func = "tt_message_op_set()";
466 string = tt_message_op( msg );
467 if (! tt_is_err( tt_ptr_error( string ))) {
468 _DtTtMessageSetUpdating( msg, True );
469 XmTextFieldSetString( instance->opText, string );
470 _DtTtMessageSetUpdating( msg, False );
474 case _DtTtChooserMessageHandlerSet:
475 status = tt_message_handler_set( msg, string );
476 func = "tt_message_handler_set()";
477 string = tt_message_handler( msg );
478 if (! tt_is_err( tt_ptr_error( string ))) {
479 _DtTtMessageSetUpdating( msg, True );
480 XmTextFieldSetString( instance->handlerText, string );
481 _DtTtMessageSetUpdating( msg, False );
488 DtTtSetLabel( instance->messageFooterLabel, func, status );
489 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
496 _DtArgChooserAction choice,
504 DtbMessagePropsMessagePropsInfo instance;
505 instance = (DtbMessagePropsMessagePropsInfo)
506 tt_message_user( msg, DtTtMsgInfoKey );
507 Tt_status status = tt_ptr_error( instance );
508 if (tt_is_err( status ) || (instance == 0)) {
513 case _DtArgChooseMessageArgAdd:
514 status = tt_message_arg_add( msg, mode, vtype, val );
515 func = "tt_message_arg_add()";
517 case _DtArgChooseMessageIArgAdd:
518 status = tt_message_iarg_add( msg, mode, vtype, ival );
519 func = "tt_message_iarg_add()";
521 case _DtArgChooseMessageArgSet:
522 status = tt_message_arg_val_set( msg, nth, val );
523 func = "tt_message_arg_val_set()";
525 case _DtArgChooseMessageIArgSet:
526 status = tt_message_arg_ival_set( msg, nth, ival );
527 func = "tt_message_arg_ival_set()";
529 case _DtArgChooseMessageContextSet:
530 status = tt_message_context_set( msg, vtype, val );
531 func = "tt_message_context_set()";
533 case _DtArgChooseMessageIContextSet:
534 status = tt_message_icontext_set( msg, vtype, ival );
535 func = "tt_message_icontext_set()";
540 DtTtSetLabel( instance->messageFooterLabel, func, status );
541 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageArgAdded );
548 Tt_message_callback cb
551 DtbMessagePropsMessagePropsInfo instance;
552 instance = (DtbMessagePropsMessagePropsInfo)
553 tt_message_user( msg, DtTtMsgInfoKey );
554 Tt_status status = tt_ptr_error( instance );
555 if (tt_is_err( status ) || (instance == 0)) {
558 status = tt_message_callback_add( msg, cb );
559 DtTtSetLabel( instance->messageFooterLabel,
560 "tt_message_callback_add()", status );
565 DtTtMessageWidgetCreate(
568 DtTtMessageUpdateCallback notifyProc
571 DtbMessagePropsMessagePropsInfoRec *instance;
572 Widget widget = DtTtMessageWidget( msg );
573 Tt_status status = tt_ptr_error( widget );
574 if (tt_is_err( status ) || (widget != 0)) {
575 instance = (DtbMessagePropsMessagePropsInfoRec *)
576 tt_message_user( msg, DtTtMsgInfoKey );
577 status = tt_ptr_error( instance );
578 if (tt_is_err( status ) || (instance != 0)) {
579 XtManageChild( instance->messageProps_shellform );
583 instance = new DtbMessagePropsMessagePropsInfoRec;
585 return (Widget)tt_error_pointer( TT_ERR_NOMEM );
587 // XXX delete instance in widget destroy proc
588 status = tt_message_user_set( msg, DtTtMsgInfoKey, instance );
589 if (tt_is_err( status )) {
591 return (Widget)tt_error_pointer( status );
593 dtbMessagePropsMessagePropsInfo_clear( instance );
594 dtb_message_props_message_props_initialize( instance, parent );
595 widget = instance->messageProps;
597 XtVaSetValues( instance->messageProps_shellform, XmNuserData, msg, 0 );
598 status = tt_message_user_set( msg, DtTtMsgWidgetKey, widget );
599 if (tt_is_err( status )) {
600 XtDestroyWidget( widget );
602 return (Widget)tt_error_pointer( status );
604 if (notifyProc != 0) {
605 status = tt_message_user_set( msg, DtTtMsgUpdateCBKey,
607 if (tt_is_err( status )) {
608 XtDestroyWidget( widget );
609 return (Widget)tt_error_pointer( status );
611 status = tt_message_callback_add( msg, _DtMsgUpdateMarshall );
612 if (tt_is_err( status )) {
613 XtDestroyWidget( widget );
614 return (Widget)tt_error_pointer( status );
618 ostrstream labelStream;
619 labelStream << "Tt_message " << (void *)msg;
620 XtVaSetValues( instance->messageProps,
621 XmNtitle, labelStream.str(),
623 delete labelStream.str();
625 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
627 XtManageChild( instance->messageProps_shellform );
632 _DtTtMessageDispositionSet(
633 DtbMessagePropsMessagePropsInfo instance,
634 Tt_disposition disposition
637 Tt_message msg = messageProps2Msg( instance );
641 Tt_status status = tt_message_disposition_set( msg, disposition );
642 DtTtSetLabel( instance->messageFooterLabel,
643 "tt_message_disposition_set()", status );
644 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
647 /*** DTB_USER_CODE_END
649 *** End of user code section
651 **************************************************************************/
656 messageProps_msgCloseButton_CB1(
658 XtPointer clientData,
662 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
663 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
665 DtbMessagePropsMessagePropsInfo instance = (DtbMessagePropsMessagePropsInfo)clientData;
667 if (!(instance->initialized))
669 dtb_message_props_message_props_initialize(instance, dtb_ttsnoop_ttsnoop_win.ttsnoopWin);
671 XtUnmanageChild(instance->messageProps_shellform);
673 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
674 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
681 XtPointer clientData,
685 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
686 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
688 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
689 DtbMessagePropsMessagePropsInfo instance =
690 (DtbMessagePropsMessagePropsInfo)clientData;
691 Tt_message msg = messageProps2Msg( instance );
695 Tt_status status = tt_message_class_set( msg, TT_CLASS_UNDEFINED );
696 DtTtSetLabel( instance->messageFooterLabel,
697 "tt_message_class_set()", status );
698 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
699 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
706 XtPointer clientData,
710 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
711 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
713 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
714 DtbMessagePropsMessagePropsInfo instance =
715 (DtbMessagePropsMessagePropsInfo)clientData;
716 Tt_message msg = messageProps2Msg( instance );
720 Tt_status status = tt_message_class_set( msg, TT_NOTICE );
721 DtTtSetLabel( instance->messageFooterLabel,
722 "tt_message_class_set()", status );
723 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
724 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
731 XtPointer clientData,
735 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
736 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
738 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
739 DtbMessagePropsMessagePropsInfo instance =
740 (DtbMessagePropsMessagePropsInfo)clientData;
741 Tt_message msg = messageProps2Msg( instance );
745 Tt_status status = tt_message_class_set( msg, TT_REQUEST );
746 DtTtSetLabel( instance->messageFooterLabel,
747 "tt_message_class_set()", status );
748 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
749 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
756 XtPointer clientData,
760 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
761 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
763 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
764 DtbMessagePropsMessagePropsInfo instance =
765 (DtbMessagePropsMessagePropsInfo)clientData;
766 Tt_message msg = messageProps2Msg( instance );
770 Tt_status status = tt_message_class_set( msg, TT_OFFER );
771 DtTtSetLabel( instance->messageFooterLabel,
772 "tt_message_class_set()", status );
773 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
774 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
781 XtPointer clientData,
785 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
786 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
788 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
789 DtbMessagePropsMessagePropsInfo instance =
790 (DtbMessagePropsMessagePropsInfo)clientData;
791 Tt_message msg = messageProps2Msg( instance );
795 Tt_status status = tt_message_address_set( msg, TT_ADDRESS_LAST );
796 DtTtSetLabel( instance->messageFooterLabel,
797 "tt_message_address_set()", status );
798 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
799 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
806 XtPointer clientData,
810 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
811 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
813 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
814 DtbMessagePropsMessagePropsInfo instance =
815 (DtbMessagePropsMessagePropsInfo)clientData;
816 Tt_message msg = messageProps2Msg( instance );
820 Tt_status status = tt_message_address_set( msg, TT_PROCEDURE );
821 DtTtSetLabel( instance->messageFooterLabel,
822 "tt_message_address_set()", status );
823 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
824 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
831 XtPointer clientData,
835 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
836 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
838 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
839 DtbMessagePropsMessagePropsInfo instance =
840 (DtbMessagePropsMessagePropsInfo)clientData;
841 Tt_message msg = messageProps2Msg( instance );
845 Tt_status status = tt_message_address_set( msg, TT_OBJECT );
846 DtTtSetLabel( instance->messageFooterLabel,
847 "tt_message_address_set()", status );
848 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
849 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
856 XtPointer clientData,
860 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
861 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
863 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
864 DtbMessagePropsMessagePropsInfo instance =
865 (DtbMessagePropsMessagePropsInfo)clientData;
866 Tt_message msg = messageProps2Msg( instance );
870 Tt_status status = tt_message_address_set( msg, TT_HANDLER );
871 DtTtSetLabel( instance->messageFooterLabel,
872 "tt_message_address_set()", status );
873 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
874 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
881 XtPointer clientData,
885 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
886 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
888 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
889 DtbMessagePropsMessagePropsInfo instance =
890 (DtbMessagePropsMessagePropsInfo)clientData;
891 Tt_message msg = messageProps2Msg( instance );
895 Tt_status status = tt_message_address_set( msg, TT_OTYPE );
896 DtTtSetLabel( instance->messageFooterLabel,
897 "tt_message_address_set()", status );
898 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
899 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
906 XtPointer clientData,
910 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
911 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
913 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
914 DtbMessagePropsMessagePropsInfo instance =
915 (DtbMessagePropsMessagePropsInfo)clientData;
916 Tt_message msg = messageProps2Msg( instance );
920 Tt_status status = tt_message_scope_set( msg, TT_SCOPE_NONE );
921 DtTtSetLabel( instance->messageFooterLabel,
922 "tt_message_scope_set()", status );
923 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
924 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
931 XtPointer clientData,
935 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
936 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
938 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
939 DtbMessagePropsMessagePropsInfo instance =
940 (DtbMessagePropsMessagePropsInfo)clientData;
941 Tt_message msg = messageProps2Msg( instance );
945 Tt_status status = tt_message_scope_set( msg, TT_SESSION );
946 DtTtSetLabel( instance->messageFooterLabel,
947 "tt_message_scope_set()", status );
948 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
949 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
956 XtPointer clientData,
960 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
961 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
963 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
964 DtbMessagePropsMessagePropsInfo instance =
965 (DtbMessagePropsMessagePropsInfo)clientData;
966 Tt_message msg = messageProps2Msg( instance );
970 Tt_status status = tt_message_scope_set( msg, TT_FILE );
971 DtTtSetLabel( instance->messageFooterLabel,
972 "tt_message_scope_set()", status );
973 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
974 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
981 XtPointer clientData,
985 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
986 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
988 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
989 DtbMessagePropsMessagePropsInfo instance =
990 (DtbMessagePropsMessagePropsInfo)clientData;
991 Tt_message msg = messageProps2Msg( instance );
995 Tt_status status = tt_message_scope_set( msg, TT_BOTH );
996 DtTtSetLabel( instance->messageFooterLabel,
997 "tt_message_scope_set()", status );
998 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
999 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1004 setScopeFileInSession(
1006 XtPointer clientData,
1010 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1011 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1013 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1014 DtbMessagePropsMessagePropsInfo instance =
1015 (DtbMessagePropsMessagePropsInfo)clientData;
1016 Tt_message msg = messageProps2Msg( instance );
1020 Tt_status status = tt_message_scope_set( msg, TT_FILE_IN_SESSION );
1021 DtTtSetLabel( instance->messageFooterLabel,
1022 "tt_message_scope_set()", status );
1023 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1024 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1031 XtPointer clientData,
1035 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1036 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1038 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1039 DtbMessagePropsMessagePropsInfo instance =
1040 (DtbMessagePropsMessagePropsInfo)clientData;
1041 Tt_message msg = messageProps2Msg( instance );
1042 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1045 char *op = XmTextFieldGetString( instance->opText );
1046 if ((op != 0) && (op[0] == '\0')) {
1050 Tt_status status = tt_message_op_set( msg, op );
1054 DtTtSetLabel( instance->messageFooterLabel,
1055 "tt_message_op_set()", status );
1056 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1057 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1064 XtPointer clientData,
1068 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1069 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1071 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1072 DtbMessagePropsMessagePropsInfo instance =
1073 (DtbMessagePropsMessagePropsInfo)clientData;
1074 Tt_message msg = messageProps2Msg( instance );
1078 Tt_status status = tt_message_send( msg );
1079 DtTtSetLabel( instance->messageFooterLabel,
1080 "tt_message_send()", status );
1081 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1082 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1089 XtPointer clientData,
1093 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1094 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1096 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1097 DtbMessagePropsMessagePropsInfo instance =
1098 (DtbMessagePropsMessagePropsInfo)clientData;
1099 Tt_message msg = messageProps2Msg( instance );
1103 Tt_status status = tt_message_send_on_exit( msg );
1104 DtTtSetLabel( instance->messageFooterLabel,
1105 "tt_message_send_on_exit()", status );
1106 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1107 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1114 XtPointer clientData,
1118 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1119 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1121 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1122 DtbMessagePropsMessagePropsInfo instance =
1123 (DtbMessagePropsMessagePropsInfo)clientData;
1124 Tt_message msg = messageProps2Msg( instance );
1128 Tt_status status = tt_message_accept( msg );
1129 DtTtSetLabel( instance->messageFooterLabel,
1130 "tt_message_accept()", status );
1131 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1132 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1139 XtPointer clientData,
1143 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1144 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1146 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1147 DtbMessagePropsMessagePropsInfo instance =
1148 (DtbMessagePropsMessagePropsInfo)clientData;
1149 Tt_message msg = messageProps2Msg( instance );
1153 Tt_status status = tt_message_send_on_exit( msg );
1154 DtTtSetLabel( instance->messageFooterLabel,
1155 "tt_message_send_on_exit()", status );
1156 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1157 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1164 XtPointer clientData,
1168 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1169 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1171 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1172 DtbMessagePropsMessagePropsInfo instance =
1173 (DtbMessagePropsMessagePropsInfo)clientData;
1174 Tt_message msg = messageProps2Msg( instance );
1178 Tt_status status = tt_message_reply( msg );
1179 DtTtSetLabel( instance->messageFooterLabel,
1180 "tt_message_reply()", status );
1181 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1182 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1189 XtPointer clientData,
1193 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1194 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1196 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1197 DtbMessagePropsMessagePropsInfo instance =
1198 (DtbMessagePropsMessagePropsInfo)clientData;
1199 Tt_message msg = messageProps2Msg( instance );
1203 Tt_status status = tt_message_fail( msg );
1204 DtTtSetLabel( instance->messageFooterLabel,
1205 "tt_message_fail()", status );
1206 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1207 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1214 XtPointer clientData,
1218 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1219 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1221 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1222 DtbMessagePropsMessagePropsInfo instance =
1223 (DtbMessagePropsMessagePropsInfo)clientData;
1224 Tt_message msg = messageProps2Msg( instance );
1228 Tt_status status = tttk_message_destroy( msg );
1229 DtTtSetLabel( instance->messageFooterLabel,
1230 "tttk_message_destroy()", status );
1233 DtTtDestroyed( DTTT_MESSAGE, msg );
1234 XtDestroyWidget( instance->messageProps );
1238 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1241 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1248 XtPointer clientData,
1252 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1253 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1255 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1256 DtbMessagePropsMessagePropsInfo instance =
1257 (DtbMessagePropsMessagePropsInfo)clientData;
1258 Tt_message msg = messageProps2Msg( instance );
1262 Tt_pattern *pats = ttdt_message_accept( msg, 0, 0, instance->messageProps,
1264 Tt_status status = tt_ptr_error( pats );
1265 DtTtSetLabel( instance->messageFooterLabel,
1266 "ttdt_message_accept()", status );
1267 if ((status == TT_OK) && (pats != 0)) {
1268 while (*pats != 0) {
1269 DtTtCreated( DTTT_PATTERN, *pats );
1273 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1274 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1279 msgSubcontractManage(
1281 XtPointer clientData,
1285 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1286 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1288 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1289 DtbMessagePropsMessagePropsInfo instance =
1290 (DtbMessagePropsMessagePropsInfo)clientData;
1291 Tt_message msg = messageProps2Msg( instance );
1295 Tt_pattern *pats = ttdt_subcontract_manage( msg, 0,
1296 instance->messageProps, 0 );
1297 Tt_status status = tt_ptr_error( pats );
1298 DtTtSetLabel( instance->messageFooterLabel,
1299 "ttdt_subcontract_manage()", status );
1300 if (status == TT_OK) {
1301 while (*pats != 0) {
1302 DtTtCreated( DTTT_PATTERN, *pats );
1306 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageFullUpdate );
1307 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1314 XtPointer clientData,
1318 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1319 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1321 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1322 DtbMessagePropsMessagePropsInfo instance =
1323 (DtbMessagePropsMessagePropsInfo)clientData;
1324 Tt_message msg = messageProps2Msg( instance );
1328 msg = tt_message_copy( msg );
1329 Tt_status status = DtTtSetLabel( instance->messageProps_footer,
1330 "tt_message_copy()", msg );
1331 if (tt_is_err( status )) {
1334 DtTtCreated( DTTT_MESSAGE, msg );
1335 Widget newWidget = DtTtMessageWidgetCreate(
1336 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, msg,
1337 DtTtMessageWidgetUpdate );
1338 status = tt_ptr_error( newWidget );
1339 if (tt_is_err( status )) {
1342 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1343 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1350 XtPointer clientData,
1354 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1355 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1357 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1358 DtbMessagePropsMessagePropsInfo instance =
1359 (DtbMessagePropsMessagePropsInfo)clientData;
1360 Tt_message msg = messageProps2Msg( instance );
1364 char *sender = tt_message_sender( msg );
1365 Tt_message msg2 = tttk_message_create( msg, TT_NOTICE,
1366 tt_message_scope( msg ), sender, "Status", 0 );
1368 Tt_status status = DtTtSetLabel( instance->messageProps_footer,
1369 "tttk_message_create()", msg2 );
1370 if (tt_is_err( status )) {
1374 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1375 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1376 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1377 tt_message_arg_add( msg2, TT_IN, Tttk_string, 0 );
1378 char *commission = tt_message_id( msg );
1379 tt_message_arg_add( msg2, TT_IN, Tttk_message_id, commission );
1380 tt_free( commission );
1382 DtTtCreated( DTTT_MESSAGE, msg2 );
1383 Widget newWidget = DtTtMessageWidgetCreate(
1384 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, msg2,
1385 DtTtMessageWidgetUpdate );
1386 status = tt_ptr_error( newWidget );
1387 if (tt_is_err( status )) {
1390 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1391 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1398 XtPointer clientData,
1402 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1403 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1405 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1406 ostrstream action; // XXX when to delete .str()?
1407 DtbMessagePropsMessagePropsInfo instance =
1408 (DtbMessagePropsMessagePropsInfo)clientData;
1409 Tt_message msg = messageProps2Msg( instance );
1413 char *op = tt_message_op( msg );
1414 action << "ACTION Send_" << op << "\n{\n\tLABEL\tSend_" << op << "\n";
1415 action << "\tTYPE\tTT_MSG\n";
1416 action << "\tTT_CLASS\t" << tt_message_class( msg ) << "\n";
1417 action << "\tTT_SCOPE\t" << tt_message_scope( msg ) << "\n";
1418 action << "\tTT_OPERATION\t" << op << "\n";
1420 char *file = tt_message_file( msg );
1421 Tt_status status = tt_ptr_error( file );
1422 if ((! tt_is_err( status )) && (file != 0)) {
1423 action << "\tTT_FILE\t" << file << "\n";
1426 int args = tt_message_args_count( msg );
1427 for (int arg = 0; arg < args; arg++) {
1428 action << "\tTT_ARG" << arg << "_MODE\t";
1429 action << tt_message_arg_mode( msg, arg ) << "\n";
1430 char *vtype = tt_message_arg_type( msg, arg );
1431 action << "\tTT_ARG" << arg << "_VTYPE\t" << vtype << "\n";
1433 status = tt_message_arg_ival( msg, arg, &ival );
1437 action << "\tTT_ARG" << arg << "_REP_TYPE\t"
1439 action << "\tTT_ARG" << arg << "_VALUE\t" << ival << "\n";
1442 val = tt_message_arg_val( msg, arg );
1443 status = tt_ptr_error( val );
1444 if (tt_is_err( status ) || (val == 0)) {
1447 action << "\tTT_ARG" << arg << "_VALUE\t" << val << "\n";
1452 // XXX emit commented warnings for e.g. TT_OFFER, TT_HANDLER
1454 // XtVaSetValues( instance->messageText, XmNvalue, action.str(), 0 );
1455 _DtOpen( instance->messageFooterLabel, (void *)action.str(),
1456 action.pcount(), "actio" );
1457 delete action.str();
1458 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1465 XtPointer clientData,
1469 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1470 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1472 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1473 ostrstream code; // XXX when to delete .str()?
1474 DtbMessagePropsMessagePropsInfo instance =
1475 (DtbMessagePropsMessagePropsInfo)clientData;
1476 Tt_message msg = messageProps2Msg( instance );
1480 code << "#include <Tt/tt_c.h>\n";
1481 code << "#include <Tt/tttk.h>\n";
1482 char *op = tt_message_op( msg );
1483 if (tt_message_class( msg ) != TT_NOTICE) {
1484 code << "\nTt_callback_action\nprocess_" << op << "_reply(";
1485 code << " Tt_message msg, Tt_message pat );\n";
1487 code << "\nTt_message\n";
1488 code << "create_" << op << "(\n";
1489 code << "\tTt_message context\n)\n{\n";
1490 code << "\tTt_message msg;\n";
1491 code << "\tmsg = tttk_message_create( context";
1492 code << ", " << tt_message_class( msg );
1493 code << ", " << tt_message_scope( msg ) << ",\n\t\t\t";
1494 Tt_address address = tt_message_address( msg );
1502 handler = tt_message_handler( msg );
1503 code << "\"" << handler << "\",\n";
1508 code << "(char *)0";
1510 code << "\"" << op << "\"";
1513 if (tt_message_class( msg ) == TT_NOTICE) {
1516 code << "\n\t\t\tprocess_" << op << "_reply ";
1521 code << "\ttt_message_address_set( msg, " << address << " );\n";
1525 // set properly by tttk_message_create();
1528 int args = tt_message_args_count( msg );
1529 if (tt_is_err( tt_int_error( args ))) {
1532 for (int arg = 0; arg < args; arg++) {
1533 Tt_mode mode = tt_message_arg_mode( msg, arg );
1534 char *vtype = tt_message_arg_type( msg, arg );
1536 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
1540 code << "\ttt_message_iarg_add( msg, " << mode << ", ";
1541 code << '"' << vtype << "\", " << ival << " );\n";
1544 val = tt_message_arg_val( msg, arg );
1545 code << "\ttt_message_arg_add( msg, " << mode << ", ";
1546 code << '"' << vtype << "\", ";
1548 code << "(char *)0";
1550 code << "\"" << val << "\"";
1558 int stat = tt_message_status( msg );
1560 code << "\ttt_message_status_set( msg, " << stat << " );\n";
1562 code << "\treturn msg;\n";
1564 if (tt_message_class( msg ) != TT_NOTICE) {
1565 code << "\nstatic Tt_callback_action\n";
1566 code << "process_" << op << "_reply(\n";
1567 code << "\tTt_message msg,\n";
1568 code << "\tTt_message pat\n";
1570 code << "\tswitch (tt_message_state(msg)) {\n";
1571 code << "\t\tcase TT_SENT:\t/* handler is in this process */\n";
1572 code << "\t\tcase TT_STARTED:/* intermediate state */\n";
1573 code << "\t\tcase TT_QUEUED:\t/* intermediate state */\n";
1574 code << "\t\tdefault:\t/* unknown state */\n";
1575 code << "\t\t\treturn TT_CALLBACK_CONTINUE;\n";
1576 if (tt_message_class(msg) == TT_REQUEST) {
1577 code << "\t\tcase TT_HANDLED:\n";
1578 code << "\t\t\t/* ... */\n";
1579 code << "\t\t\tbreak;\n";
1580 code << "\t\tcase TT_FAILED: {\n";
1581 code << "\t\t\tint status;\n";
1582 code << "\t\t\tchar *string;\n";
1583 code << "\t\t\tstatus = tt_message_status( msg );\n";
1584 code << "\t\t\tstring = "
1585 "tt_message_status_string( msg );\n";
1586 code << "\t\t\t/* ... */\n";
1587 code << "\t\t\t} break;\n";
1589 code << "\t\tcase TT_RETURNED:\n";
1590 code << "\t\t\t/* ... */\n";
1591 code << "\t\t\tbreak;\n";
1594 code << "\ttt_message_destroy( msg );\n";
1595 code << "\treturn TT_CALLBACK_PROCESSED;\n";
1599 // XtVaSetValues( instance->messageText, XmNvalue, code.str(), 0 );
1600 _DtOpen( instance->messageFooterLabel, (void *)code.str(),
1601 code.pcount(), "msgC" );
1603 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1610 XtPointer clientData,
1614 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1615 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1617 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1618 DtbMessagePropsMessagePropsInfo instance =
1619 (DtbMessagePropsMessagePropsInfo)clientData;
1620 Tt_message msg = messageProps2Msg( instance );
1621 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1624 char *handler = XmTextFieldGetString( instance->handlerText );
1625 if ((handler != 0) && (handler[0] == '\0')) {
1629 Tt_status status = tt_message_handler_set( msg, handler );
1633 DtTtSetLabel( instance->messageFooterLabel,
1634 "tt_message_handler_set()", status );
1635 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1636 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1643 XtPointer clientData,
1647 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1648 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1650 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1651 DtbMessagePropsMessagePropsInfo instance =
1652 (DtbMessagePropsMessagePropsInfo)clientData;
1653 Tt_message msg = messageProps2Msg( instance );
1654 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1657 char *session = XmTextFieldGetString( instance->sessionText );
1658 if ((session != 0) && (session[0] == '\0')) {
1662 Tt_status status = tt_message_session_set( msg, session );
1666 DtTtSetLabel( instance->messageFooterLabel,
1667 "tt_message_session_set()", status );
1668 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1669 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1676 XtPointer clientData,
1680 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1681 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1683 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1684 DtbMessagePropsMessagePropsInfo instance =
1685 (DtbMessagePropsMessagePropsInfo)clientData;
1686 Tt_message msg = messageProps2Msg( instance );
1687 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1690 char *file = XmTextFieldGetString( instance->fileText );
1691 if ((file != 0) && (file[0] == '\0')) {
1695 Tt_status status = tt_message_file_set( msg, file );
1699 DtTtSetLabel( instance->messageFooterLabel,
1700 "tt_message_file_set()", status );
1701 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1702 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1709 XtPointer clientData,
1713 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1714 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1716 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1717 DtbMessagePropsMessagePropsInfo instance =
1718 (DtbMessagePropsMessagePropsInfo)clientData;
1719 Tt_message msg = messageProps2Msg( instance );
1720 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1724 XtVaGetValues( instance->statusBox, DtNposition, &val, 0 );
1725 XmString statusName = DtTtStatusString( (Tt_status)val );
1726 XtVaSetValues( instance->statusLabel, XmNlabelString, statusName, 0 );
1727 XmStringFree( statusName );
1728 Tt_status status = tt_message_status_set( msg, val );
1729 DtTtSetLabel( instance->messageFooterLabel,
1730 "tt_message_status_set()", status );
1731 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1732 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1739 XtPointer clientData,
1743 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1744 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1746 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1747 dtb_do_onitem_help();
1748 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1755 XtPointer clientData,
1759 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1760 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1762 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1763 DtbMessagePropsMessagePropsInfo instance =
1764 (DtbMessagePropsMessagePropsInfo)clientData;
1765 Tt_message msg = messageProps2Msg( instance );
1769 Tt_pattern pat = tt_message_pattern( msg );
1770 Tt_status status = DtTtSetLabel( instance->messageFooterLabel,
1771 "tt_message_pattern()", pat );
1772 if (tt_is_err( status ) || (pat == 0)) {
1775 Widget newWidget = DtTtPatternWidgetCreate(
1776 dtb_ttsnoop_ttsnoop_win.ttsnoopWin,
1778 status = tt_ptr_error( newWidget );
1779 if (tt_is_err( status )) {
1782 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1783 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1790 XtPointer clientData,
1794 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1795 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1797 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1798 DtbMessagePropsMessagePropsInfo instance =
1799 (DtbMessagePropsMessagePropsInfo)clientData;
1800 Tt_message msg = messageProps2Msg( instance );
1804 _DtTtMessageWidgetUpdate( instance, msg, _DtTtMessageRePrint );
1805 DtTtSetLabel( instance->messageFooterLabel,
1806 "tt_message_print()", TT_OK );
1807 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1814 XtPointer clientData,
1818 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1819 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1821 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1822 DtbMessagePropsMessagePropsInfo instance =
1823 (DtbMessagePropsMessagePropsInfo)clientData;
1824 Tt_message msg = messageProps2Msg( instance );
1828 Tt_pattern pat = tt_pattern_create();
1829 tt_pattern_category_set( pat, TT_OBSERVE );
1830 tt_pattern_class_add( pat, tt_message_class( msg ));
1831 tt_pattern_scope_add( pat, tt_message_scope( msg ));
1832 tt_pattern_address_add( pat, tt_message_address( msg ));
1833 char *op = tt_message_op( msg );
1834 if ((! tt_is_err( tt_ptr_error( op ))) && (op != 0)) {
1835 tt_pattern_op_add( pat, op );
1838 // skip file, sender, sender_ptype, otype, object, opnum, contexts
1839 char *session = tt_message_session( msg );
1840 if ((! tt_is_err( tt_ptr_error( session ))) && (session != 0)) {
1841 tt_pattern_session_add( pat, session );
1844 int args = tt_message_args_count( msg );
1845 if (tt_int_error( args ) == TT_OK) {
1846 for (int arg = 0; arg < args; arg++) {
1847 Tt_mode mode = tt_message_arg_mode( msg, arg );
1848 char *vtype = tt_message_arg_type( msg, arg );
1850 tt_pattern_arg_add( pat, mode, vtype, 0 );
1854 DtTtCreated( DTTT_PATTERN, pat );
1855 Widget newWidget = DtTtPatternWidgetCreate(
1856 dtb_ttsnoop_ttsnoop_win.ttsnoopWin, pat, 0 );
1857 if (tt_is_err( tt_ptr_error( newWidget ))) {
1860 XRaiseWindow( XtDisplay( newWidget ), XtWindow( newWidget ));
1861 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1868 XtPointer clientData,
1872 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1873 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1875 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1876 ostrstream ptype; // XXX when to delete .str()?
1877 DtbMessagePropsMessagePropsInfo instance =
1878 (DtbMessagePropsMessagePropsInfo)clientData;
1879 Tt_message msg = messageProps2Msg( instance );
1883 ptype << "ptype Acme_Calc {\n\tstart \"acalc\";\n";
1885 ptype << "\thandle_push:\n";
1886 ptype << "\thandle_rotate:\n";
1887 switch (tt_message_class(msg)) {
1889 ptype << "\tobserve:\n";
1891 ptype << "\thandle:\n";
1896 ptype << "\thandle:\n";
1898 ptype << "\tobserve:\n";
1902 switch (tt_message_scope(msg)) {
1906 case TT_FILE_IN_SESSION:
1910 ptype << "session ";
1913 char *op = tt_message_op( msg );
1914 ptype << op << "(\n";
1916 int args = tt_message_args_count( msg );
1917 if (tt_is_err( tt_int_error( args ))) {
1920 for (int arg = 0; arg < args; arg++) {
1921 ptype << "\t\t\t\t";
1922 switch (tt_message_arg_mode( msg, arg )) {
1923 case TT_IN: ptype << "in "; break;
1924 case TT_OUT: ptype << "out "; break;
1926 case TT_INOUT: ptype << "inout"; break;
1928 char *vtype = tt_message_arg_type( msg, arg );
1929 ptype << " " << vtype << "\targ" << arg;
1930 if (arg < args - 1) {
1935 ptype << "\t\t\t) => start opnum=1;\n";
1938 // XtVaSetValues( instance->messageText, XmNvalue, ptype.str(), 0 );
1939 _DtOpen( instance->messageFooterLabel, (void *)ptype.str(),
1940 ptype.pcount(), "ptype" );
1942 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1949 XtPointer clientData,
1953 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1954 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1956 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1957 DtbMessagePropsMessagePropsInfo instance =
1958 (DtbMessagePropsMessagePropsInfo)clientData;
1959 Tt_message msg = messageProps2Msg( instance );
1960 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1963 _DtSessionChooserSet( _DtSessionChooseMessage, msg );
1964 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1971 XtPointer clientData,
1975 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1976 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
1978 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1979 DtbMessagePropsMessagePropsInfo instance =
1980 (DtbMessagePropsMessagePropsInfo)clientData;
1981 Tt_message msg = messageProps2Msg( instance );
1982 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
1985 _DtFileChooserSet( _DtFileChooseMessageSet, msg );
1986 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
1993 XtPointer clientData,
1997 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1998 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2000 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2001 DtbMessagePropsMessagePropsInfo instance =
2002 (DtbMessagePropsMessagePropsInfo)clientData;
2003 Tt_message msg = messageProps2Msg( instance );
2004 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2007 _DtArgChooserSet( _DtArgChooseMessageArgAdd, msg );
2008 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2015 XtPointer clientData,
2019 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2020 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2022 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2023 DtbMessagePropsMessagePropsInfo instance =
2024 (DtbMessagePropsMessagePropsInfo)clientData;
2025 Tt_message msg = messageProps2Msg( instance );
2026 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2029 _DtArgChooserSet( _DtArgChooseMessageContextSet, msg );
2030 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2037 XtPointer clientData,
2041 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2042 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2044 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2045 DtbMessagePropsMessagePropsInfo instance =
2046 (DtbMessagePropsMessagePropsInfo)clientData;
2047 Tt_message msg = messageProps2Msg( instance );
2048 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2052 MessagePropsSetArgButtonMenuItems items =
2053 &instance->setArgButton_setArgButton_menu_items;
2054 if (widget == items->Arg_0_item) {
2056 } else if (widget == items->Arg_1_item) {
2058 } else if (widget == items->Arg_2_item) {
2060 } else if (widget == items->Arg_3_item) {
2062 } else if (widget == items->Arg_4_item) {
2064 } else if (widget == items->Arg_5_item) {
2066 } else if (widget == items->Arg_6_item) {
2068 } else if (widget == items->Arg_7_item) {
2070 } else if (widget == items->Arg_8_item) {
2072 } else if (widget == items->Arg_9_item) {
2074 } else if (widget == items->Arg_10_item) {
2076 } else if (widget == items->Arg_11_item) {
2078 } else if (widget == items->Arg_12_item) {
2080 } else if (widget == items->Arg_13_item) {
2082 } else if (widget == items->Arg_14_item) {
2084 } else if (widget == items->Arg_15_item) {
2086 } else if (widget == items->Arg_15_item2) {
2087 _DtStringChooserSet( _DtStringChooseMessageArgValSet, msg,
2093 Tt_mode mode = tt_message_arg_mode( msg, arg );
2094 char *vtype = tt_message_arg_type( msg, arg );
2095 if (tt_is_err( tt_ptr_error( vtype ))) {
2100 Boolean noValue = False;
2101 Tt_status status = tt_message_arg_ival( msg, arg, &ival );
2102 if (status == TT_ERR_NUM) {
2103 val = tt_message_arg_val( msg, arg );
2104 if (tt_is_err( tt_ptr_error( val ))) {
2111 _DtArgChooserSet( _DtArgChooseMessageArgSet, msg, arg, mode, noValue,
2113 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2120 XtPointer clientData,
2124 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2125 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2127 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2128 DtbMessagePropsMessagePropsInfo instance =
2129 (DtbMessagePropsMessagePropsInfo)clientData;
2130 _DtTtMessageDispositionSet( instance, TT_DISCARD );
2131 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2138 XtPointer clientData,
2142 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2143 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2145 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2146 DtbMessagePropsMessagePropsInfo instance =
2147 (DtbMessagePropsMessagePropsInfo)clientData;
2148 _DtTtMessageDispositionSet( instance, TT_QUEUE );
2149 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2156 XtPointer clientData,
2160 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2161 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2163 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2164 DtbMessagePropsMessagePropsInfo instance =
2165 (DtbMessagePropsMessagePropsInfo)clientData;
2166 _DtTtMessageDispositionSet( instance, TT_START );
2167 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2174 XtPointer clientData,
2178 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2179 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2181 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2182 DtbMessagePropsMessagePropsInfo instance =
2183 (DtbMessagePropsMessagePropsInfo)clientData;
2184 _DtTtMessageDispositionSet( instance, (Tt_disposition)(TT_QUEUE+TT_START));
2185 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2192 XtPointer clientData,
2196 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2197 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2199 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2200 DtbMessagePropsMessagePropsInfo instance =
2201 (DtbMessagePropsMessagePropsInfo)clientData;
2202 Tt_message msg = messageProps2Msg( instance );
2203 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2206 _DtStringChooserSet( _DtStringChooseMessageObject, msg,
2207 tt_message_object( msg ));
2208 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2215 XtPointer clientData,
2219 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2220 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2222 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2223 DtbMessagePropsMessagePropsInfo instance =
2224 (DtbMessagePropsMessagePropsInfo)clientData;
2225 Tt_message msg = messageProps2Msg( instance );
2226 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2229 _DtStringChooserSet( _DtStringChooseMessageOtype, msg,
2230 tt_message_otype( msg ));
2231 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2238 XtPointer clientData,
2242 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2243 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2245 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2246 DtbMessagePropsMessagePropsInfo instance =
2247 (DtbMessagePropsMessagePropsInfo)clientData;
2248 Tt_message msg = messageProps2Msg( instance );
2249 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2252 _DtStringChooserSet( _DtStringChooseMessageHandlerPtype, msg,
2253 tt_message_handler_ptype( msg ));
2254 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2261 XtPointer clientData,
2265 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2266 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2268 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2269 DtbMessagePropsMessagePropsInfo instance =
2270 (DtbMessagePropsMessagePropsInfo)clientData;
2271 Tt_message msg = messageProps2Msg( instance );
2272 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2275 _DtStringChooserSet( _DtStringChooseMessageSenderPtype, msg,
2276 tt_message_sender_ptype( msg ));
2277 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2284 XtPointer clientData,
2288 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2289 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2291 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2292 DtbMessagePropsMessagePropsInfo instance =
2293 (DtbMessagePropsMessagePropsInfo)clientData;
2294 Tt_message msg = messageProps2Msg( instance );
2295 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2298 _DtTtChooserSet( _DtTtChooserMessageOpSet, msg );
2299 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2306 XtPointer clientData,
2310 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2311 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2313 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2314 DtbMessagePropsMessagePropsInfo instance =
2315 (DtbMessagePropsMessagePropsInfo)clientData;
2316 Tt_message msg = messageProps2Msg( instance );
2317 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2320 _DtTtMsgCbChooserSet( msg );
2321 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2328 XtPointer clientData,
2332 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2333 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2335 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2336 DtbMessagePropsMessagePropsInfo instance =
2337 (DtbMessagePropsMessagePropsInfo)clientData;
2338 Tt_message msg = messageProps2Msg( instance );
2339 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2342 _DtStringChooserSet( _DtStringChooseMessageStatusString, msg,
2343 tt_message_status_string( msg ));
2344 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2351 XtPointer clientData,
2355 /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
2356 /*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
2358 /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
2359 DtbMessagePropsMessagePropsInfo instance =
2360 (DtbMessagePropsMessagePropsInfo)clientData;
2361 Tt_message msg = messageProps2Msg( instance );
2362 if ((msg == 0) || _DtTtMessageUpdating( msg )) {
2365 _DtStringChooserSet( _DtStringChooseMessageStatusString, msg,
2366 tt_message_object( msg ));
2367 /*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
2372 /**************************************************************************
2373 *** DTB_USER_CODE_START
2375 *** All automatically-generated data and functions have been defined.
2377 *** Add new functions here, or at the top of the file.
2380 /*** DTB_USER_CODE_END
2382 *** End of user code section
2384 **************************************************************************/