ttsnoop: resolve some compiler warnings
[oweals/cde.git] / cde / programs / ttsnoop / patternProps_stubs.C.src
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: patternProps_stubs.C.src /main/4 1996/03/18 15:04:49 barstow $
7 /*** DTB_USER_CODE_END   ^^^ Add file header above ^^^ ***/
8
9 /*
10  * File: patternProps_stubs.c
11  * Contains: Module callbacks and connection functions
12  *
13  * This file was generated by dtcodegen, from module patternProps
14  *
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.
18  *
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!                                 **
22  */
23
24 #include <stdint.h>
25 #include <stdio.h>
26 #include <Xm/Xm.h>
27 #include "dtb_utils.h"
28 #include "patternProps_ui.h"
29
30 /*
31  * Header files for cross-module connections
32  */
33 #include "ttsnoop_ui.h"
34
35
36 /**************************************************************************
37  *** DTB_USER_CODE_START
38  ***
39  *** All necessary header files have been included.
40  ***
41  *** Add include files, types, macros, externs, and user functions here.
42  ***/
43
44 #if defined(linux) || defined(CSRG_BASED) || defined(sun)
45 #include <strstream>
46 #else
47 #include <strstream.h>
48 #endif
49
50 #include <Tt/tttk.h>
51 #include "DtTt.h"
52
53 int             DtTtPatWidgetKey        = (int) (long) DtTtPatternWidget;
54 int             DtTtPatInfoKey          = DtTtPatWidgetKey + 1;
55
56 Tt_pattern
57 patternProps2Pat(
58         DtbPatternPropsPatternPropsInfo instance
59 )
60 {
61         Tt_pattern pat;
62         XtVaGetValues( instance->patternProps_shellform,
63                        XmNuserData, &pat, NULL );
64         return pat;
65 }
66
67 static Boolean
68 _DtTtPatternUpdating(
69         Tt_pattern pat
70 )
71 {
72         void *updating = tt_pattern_user( pat, (int) (long) _DtTtPatternUpdating );
73         if (tt_is_err( tt_ptr_error( updating ))) {
74                 return False;
75         }
76         return updating == (void *)True;
77 }
78
79 static void
80 _DtTtPatternSetUpdating(
81         Tt_pattern                      pat,
82         Boolean                         updating
83 )
84 {
85         tt_pattern_user_set( pat, (int) (long) _DtTtPatternUpdating,
86                              (void *) (intptr_t) updating );
87 }
88
89 void
90 _DtTtPatternWidgetUpdate(
91         DtbPatternPropsPatternPropsInfo instance,
92         Tt_pattern                      pat
93 )
94 {
95         char *printout = tt_pattern_print( pat ); // XXX when to free?
96         Tt_status status = tt_ptr_error( printout );
97         if (tt_is_err( status )) {
98                 printout = tt_status_message( status );
99         }
100         XtVaSetValues( instance->patternText, XmNvalue, printout, NULL );
101
102         _DtTtPatternSetUpdating( pat, True );
103
104         Widget choice;
105         switch (tt_pattern_category( pat )) {
106             case TT_CATEGORY_UNDEFINED:
107             default:
108                 choice = instance->categoryChoice_items.UNDEFINED_item;
109                 break;
110             case TT_OBSERVE:
111                 choice = instance->categoryChoice_items.OBSERVE_item;
112                 break;
113             case TT_HANDLE:
114                 choice = instance->categoryChoice_items.HANDLE_item;
115                 break;
116             case TT_HANDLE_PUSH:
117                 choice = instance->categoryChoice_items.HANDLE_PUSH_item;
118                 break;
119             case TT_HANDLE_ROTATE:
120                 choice = instance->categoryChoice_items.HANDLE_ROTATE_item;
121                 break;
122         }
123         XtVaSetValues( instance->categoryChoice, XmNmenuHistory, choice, NULL );
124
125         _DtTtPatternSetUpdating( pat, False );
126 }
127
128 void
129 _DtTtPatternUpdate(
130         Tt_pattern                      pat,
131         _DtStringChooserAction          choice,
132         char *                          string
133 )
134 {
135         DtbPatternPropsPatternPropsInfo instance;
136         instance = (DtbPatternPropsPatternPropsInfo)
137                 tt_pattern_user( pat, DtTtPatInfoKey );
138         Tt_status status = tt_ptr_error( instance );
139         if (tt_is_err( status ) || (instance == 0)) {
140                 return;
141         }
142         char *func;
143         switch (choice) {
144             case _DtStringChoosePatternOp:
145                 status = tt_pattern_op_add( pat, string );
146                 func = "tt_pattern_op_add()";
147                 break;
148             case _DtStringChoosePatternOtype:
149                 status = tt_pattern_otype_add( pat, string );
150                 func = "tt_pattern_otype_add()";
151                 break;
152             case _DtStringChoosePatternObject:
153                 status = tt_pattern_object_add( pat, string );
154                 func = "tt_pattern_object_add()";
155                 break;
156             case _DtStringChoosePatternSenderPtype:
157                 status = tt_pattern_sender_ptype_add( pat, string );
158                 func = "tt_pattern_sender_ptype_add()";
159                 break;
160             default:
161                 return;
162         }
163         DtTtSetLabel( instance->patternProps_label, func, status );
164         _DtTtPatternWidgetUpdate( instance, pat );
165         return;
166 }
167
168 void
169 _DtTtPatternUpdate(
170         Tt_pattern                      pat,
171         _DtSessionChooserAction         choice,
172         char *                          session
173 )
174 {
175         DtbPatternPropsPatternPropsInfo instance;
176         instance = (DtbPatternPropsPatternPropsInfo)
177                 tt_pattern_user( pat, DtTtPatInfoKey );
178         Tt_status status = tt_ptr_error( instance );
179         if (tt_is_err( status ) || (instance == 0)) {
180                 return;
181         }
182         char *func;
183         switch (choice) {
184             case _DtSessionChoosePattern:
185                 status = tt_pattern_session_add( pat, session );
186                 func = "tt_pattern_session_add()";
187                 break;
188             default:
189                 return;
190         }
191         DtTtSetLabel( instance->patternProps_label, func, status );
192         _DtTtPatternWidgetUpdate( instance, pat );
193         return;
194 }
195
196 void
197 _DtTtPatternUpdate(
198         Tt_pattern                      pat,
199         _DtFileChooserAction            choice,
200         char *                          file
201 )
202 {
203         DtbPatternPropsPatternPropsInfo instance;
204         instance = (DtbPatternPropsPatternPropsInfo)
205                 tt_pattern_user( pat, DtTtPatInfoKey );
206         Tt_status status = tt_ptr_error( instance );
207         if (tt_is_err( status ) || (instance == 0)) {
208                 return;
209         }
210         char *func;
211         switch (choice) {
212             case _DtFileChoosePatternAdd:
213                 status = tt_pattern_file_add( pat, file );
214                 func = "tt_pattern_file_add()";
215                 break;
216             default:
217                 return;
218         }
219         DtTtSetLabel( instance->patternProps_label, func, status );
220         _DtTtPatternWidgetUpdate( instance, pat );
221         return;
222 }
223
224 void
225 _DtTtPatternUpdate(
226         Tt_pattern                      pat,
227         _DtTtChooserAction              choice,
228         char *                          string
229 )
230 {
231         DtbPatternPropsPatternPropsInfo instance;
232         instance = (DtbPatternPropsPatternPropsInfo)
233                 tt_pattern_user( pat, DtTtPatInfoKey );
234         Tt_status status = tt_ptr_error( instance );
235         if (tt_is_err( status ) || (instance == 0)) {
236                 return;
237         }
238         char *func;
239         switch (choice) {
240             case _DtTtChooserPatternOpAdd:
241                 status = tt_pattern_op_add( pat, string );
242                 func = "tt_pattern_op_add()";
243                 break;
244             case _DtTtChooserPatternSenderAdd:
245                 status = tt_pattern_sender_add( pat, string );
246                 func = "tt_pattern_sender_add()";
247                 break;
248             default:
249                 return;
250         }
251         DtTtSetLabel( instance->patternProps_label, func, status );
252         _DtTtPatternWidgetUpdate( instance, pat );
253         return;
254 }
255
256 void
257 _DtTtPatternUpdate(
258         Tt_pattern              pat,
259         _DtArgChooserAction     choice,
260         Tt_mode                 mode,
261         char *                  vtype,
262         char *                  val,
263         int                     ival
264 )
265 {
266         DtbPatternPropsPatternPropsInfo instance;
267         instance = (DtbPatternPropsPatternPropsInfo)
268                 tt_pattern_user( pat, DtTtPatInfoKey );
269         Tt_status status = tt_ptr_error( instance );
270         if (tt_is_err( status ) || (instance == 0)) {
271                 return;
272         }
273         char *func;
274         switch (choice) {
275             case _DtArgChoosePatternArgAdd:
276                 status = tt_pattern_arg_add( pat, mode, vtype, val );
277                 func = "tt_pattern_arg_add()";
278                 break;
279             case _DtArgChoosePatternIArgAdd:
280                 status = tt_pattern_iarg_add( pat, mode, vtype, ival );
281                 func = "tt_pattern_iarg_add()";
282                 break;
283             case _DtArgChoosePatternContextAdd:
284                 status = tt_pattern_context_add( pat, vtype, val );
285                 func = "tt_pattern_context_set()";
286                 break;
287             case _DtArgChoosePatternIContextAdd:
288                 status = tt_pattern_icontext_add( pat, vtype, ival );
289                 func = "tt_pattern_icontext_add()";
290                 break;
291             default:
292                 return;
293         }
294         DtTtSetLabel( instance->patternProps_label, func, status );
295         _DtTtPatternWidgetUpdate( instance, pat );
296         return;
297 }
298
299 void
300 _DtTtPatternUpdate(
301         Tt_pattern                      pat,
302         Tt_message_callback             cb
303 )
304 {
305         DtbPatternPropsPatternPropsInfo instance;
306         instance = (DtbPatternPropsPatternPropsInfo)
307                 tt_pattern_user( pat, DtTtPatInfoKey );
308         Tt_status status = tt_ptr_error( instance );
309         if (tt_is_err( status ) || (instance == 0)) {
310                 return;
311         }
312         status = tt_pattern_callback_add( pat, cb );
313         DtTtSetLabel( instance->patternProps_label,
314                       "tt_pattern_callback_add()", status );
315         return;
316 }
317
318 Widget
319 DtTtPatternWidget(
320         Tt_pattern pat
321 )
322 {
323         // Function address is cast to int and used as clientdata key
324         return (Widget)tt_pattern_user( pat, DtTtPatWidgetKey );
325 }
326
327 Widget
328 DtTtPatternWidgetCreate(
329         Widget                          parent,
330         Tt_pattern                      pat,
331         Tt_message_callback             callback
332 )
333 {
334         DtbPatternPropsPatternPropsInfoRec *instance;
335         Widget widget = DtTtPatternWidget( pat );
336         Tt_status status = tt_ptr_error( widget );
337         if (tt_is_err( status ) || (widget != 0)) {
338                 instance = (DtbPatternPropsPatternPropsInfoRec *)
339                         tt_pattern_user( pat, DtTtPatInfoKey );
340                 status = tt_ptr_error( instance );
341                 if (tt_is_err( status ) || (instance != 0)) {
342                         XtManageChild( instance->patternProps_shellform );
343                 }
344                 return widget;
345         }
346         instance = new DtbPatternPropsPatternPropsInfoRec;
347         if (instance == 0) {
348                 return (Widget)tt_error_pointer( TT_ERR_NOMEM );
349         }
350         // XXX delete instance in widget destroy proc
351         status = tt_pattern_user_set( pat, DtTtPatInfoKey, instance );
352         if (tt_is_err( status )) {
353                 delete instance;
354                 return (Widget)tt_error_pointer( status );
355         }
356         dtbPatternPropsPatternPropsInfo_clear( instance );
357         dtb_pattern_props_pattern_props_initialize( instance, parent );
358         widget = instance->patternProps;
359
360         XtVaSetValues( instance->patternProps_shellform, XmNuserData, pat, NULL );
361         status = tt_pattern_user_set( pat, DtTtPatWidgetKey, widget );
362         if (tt_is_err( status )) {
363                 XtDestroyWidget( widget );
364                 delete instance;
365                 return (Widget)tt_error_pointer( status );
366         }
367         if (callback != 0) {
368                 status = tt_pattern_callback_add( pat, callback );
369                 if (tt_is_err( status )) {
370                         XtDestroyWidget( widget );
371                         return (Widget)tt_error_pointer( status );
372                 }
373         }
374
375         std::ostrstream labelStream;
376         labelStream << "Tt_pattern " << (void *)pat << ends;
377         XtVaSetValues( instance->patternProps,
378                        XmNtitle, labelStream.str(),
379                        NULL );
380         delete labelStream.str();
381
382         _DtTtPatternWidgetUpdate( instance, pat );
383
384         XtManageChild( instance->patternProps_shellform );
385         return widget;
386 }
387
388 static void
389 _DtTtPatternCategorySet(
390         DtbPatternPropsPatternPropsInfo instance,
391         Tt_category category
392 )
393 {
394     Tt_pattern pat = patternProps2Pat( instance );
395     if ((pat == 0) || _DtTtPatternUpdating( pat )) {
396             return;
397     }
398     Tt_status status = tt_pattern_category_set( pat, category );
399     DtTtSetLabel( instance->patternProps_label, 
400                   "tt_pattern_category_set()", status );
401     _DtTtPatternWidgetUpdate( instance, pat );
402 }
403
404 static void
405 _DtTtPatternScopeAdd(
406         DtbPatternPropsPatternPropsInfo instance,
407         Tt_scope scope
408 )
409 {
410     Tt_pattern pat = patternProps2Pat( instance );
411     if (pat == 0) {
412             return;
413     }
414     Tt_status status = tt_pattern_scope_add( pat, scope );
415     DtTtSetLabel( instance->patternProps_label,
416                   "tt_pattern_scope_add()", status );
417     _DtTtPatternWidgetUpdate( instance, pat );
418 }
419
420 static void
421 _DtTtPatternAddressAdd(
422         DtbPatternPropsPatternPropsInfo instance,
423         Tt_address address
424 )
425 {
426     Tt_pattern pat = patternProps2Pat( instance );
427     if (pat == 0) {
428             return;
429     }
430     Tt_status status = tt_pattern_address_add( pat, address );
431     DtTtSetLabel( instance->patternProps_label, 
432                   "tt_pattern_address_add()", status );
433     _DtTtPatternWidgetUpdate( instance, pat );
434 }
435
436 static void
437 _DtTtPatternStateAdd(
438         DtbPatternPropsPatternPropsInfo instance,
439         Tt_state state
440 )
441 {
442     Tt_pattern pat = patternProps2Pat( instance );
443     if (pat == 0) {
444             return;
445     }
446     Tt_status status = tt_pattern_state_add( pat, state );
447     DtTtSetLabel( instance->patternProps_label, 
448                   "tt_pattern_state_add()", status );
449     _DtTtPatternWidgetUpdate( instance, pat );
450 }
451
452 static void
453 _DtTtPatternClassAdd(
454         DtbPatternPropsPatternPropsInfo instance,
455         Tt_class theClass
456 )
457 {
458     Tt_pattern pat = patternProps2Pat( instance );
459     if (pat == 0) {
460             return;
461     }
462     Tt_status status = tt_pattern_class_add( pat, theClass );
463     DtTtSetLabel( instance->patternProps_label, 
464                   "tt_pattern_class_add()", status );
465     _DtTtPatternWidgetUpdate( instance, pat );
466 }
467
468 static void
469 _DtTtPatternDispositionAdd(
470         DtbPatternPropsPatternPropsInfo instance,
471         Tt_disposition disposition
472 )
473 {
474     Tt_pattern pat = patternProps2Pat( instance );
475     if (pat == 0) {
476             return;
477     }
478     Tt_status status = tt_pattern_disposition_add( pat, disposition );
479     DtTtSetLabel( instance->patternProps_label, 
480                   "tt_pattern_disposition_add()", status );
481     _DtTtPatternWidgetUpdate( instance, pat );
482 }
483
484 /*** DTB_USER_CODE_END
485  ***
486  *** End of user code section
487  ***
488  **************************************************************************/
489
490
491
492 void 
493 patternProps_patternCloseButton_CB1(
494     Widget widget,
495     XtPointer clientData,
496     XtPointer callData
497 )
498 {
499     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
500     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
501     
502     DtbPatternPropsPatternPropsInfo     instance = (DtbPatternPropsPatternPropsInfo)clientData;
503     
504     if (!(instance->initialized))
505     {
506         dtb_pattern_props_pattern_props_initialize(instance, dtb_ttsnoop_ttsnoop_win.ttsnoopWin);
507     }
508     XtUnmanageChild(instance->patternProps_shellform);
509     
510     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
511     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
512 }
513
514
515 void 
516 patOpAdd(
517     Widget widget,
518     XtPointer clientData,
519     XtPointer callData
520 )
521 {
522     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
523     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
524     
525     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
526     DtbPatternPropsPatternPropsInfo instance =
527             (DtbPatternPropsPatternPropsInfo)clientData;
528     Tt_pattern pat = patternProps2Pat( instance );
529     if (pat == 0) {
530             return;
531     }
532     _DtTtChooserSet( _DtTtChooserPatternOpAdd, pat );
533     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
534 }
535
536
537 void 
538 patRegister(
539     Widget widget,
540     XtPointer clientData,
541     XtPointer callData
542 )
543 {
544     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
545     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
546     
547     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
548     DtbPatternPropsPatternPropsInfo instance =
549             (DtbPatternPropsPatternPropsInfo)clientData;
550     Tt_pattern pat = patternProps2Pat( instance );
551     if (pat == 0) {
552             return;
553     }
554     Tt_status status = tt_pattern_register( pat );
555     DtTtSetLabel( instance->patternProps_label, 
556                   "tt_pattern_register()", status );
557     _DtTtPatternWidgetUpdate( instance, pat );
558     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
559 }
560
561
562 void 
563 patUnRegister(
564     Widget widget,
565     XtPointer clientData,
566     XtPointer callData
567 )
568 {
569     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
570     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
571     
572     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
573     DtbPatternPropsPatternPropsInfo instance =
574             (DtbPatternPropsPatternPropsInfo)clientData;
575     Tt_pattern pat = patternProps2Pat( instance );
576     if (pat == 0) {
577             return;
578     }
579     Tt_status status = tt_pattern_unregister( pat );
580     DtTtSetLabel( instance->patternProps_label, 
581                   "tt_pattern_unregister()", status );
582     _DtTtPatternWidgetUpdate( instance, pat );
583     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
584 }
585
586
587 void 
588 patDestroy(
589     Widget widget,
590     XtPointer clientData,
591     XtPointer callData
592 )
593 {
594     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
595     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
596     
597     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
598     DtbPatternPropsPatternPropsInfo instance =
599             (DtbPatternPropsPatternPropsInfo)clientData;
600     Tt_pattern pat = patternProps2Pat( instance );
601     if (pat == 0) {
602             return;
603     }
604     Tt_status status = tt_pattern_destroy( pat );
605     DtTtSetLabel( instance->patternProps_label, 
606                   "tt_pattern_destroy()", status );
607     switch (status) {
608         case TT_OK:
609             DtTtDestroyed( DTTT_PATTERN, pat );
610             XtDestroyWidget( instance->patternProps );
611             delete instance;
612             break;
613         default:
614             _DtTtPatternWidgetUpdate( instance, pat );
615             break;
616     }
617     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
618 }
619
620
621 void 
622 patHelp(
623     Widget widget,
624     XtPointer clientData,
625     XtPointer callData
626 )
627 {
628     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
629     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
630     
631     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
632     dtb_do_onitem_help();
633     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
634 }
635
636
637 void 
638 addScopeSession(
639     Widget widget,
640     XtPointer clientData,
641     XtPointer callData
642 )
643 {
644     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
645     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
646     
647     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
648     _DtTtPatternScopeAdd( (DtbPatternPropsPatternPropsInfo)clientData,
649                           TT_SESSION );
650     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
651 }
652
653
654 void 
655 addScopeFile(
656     Widget widget,
657     XtPointer clientData,
658     XtPointer callData
659 )
660 {
661     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
662     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
663     
664     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
665     _DtTtPatternScopeAdd( (DtbPatternPropsPatternPropsInfo)clientData,
666                           TT_FILE );
667     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
668 }
669
670
671 void 
672 addScopeBoth(
673     Widget widget,
674     XtPointer clientData,
675     XtPointer callData
676 )
677 {
678     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
679     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
680     
681     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
682     _DtTtPatternScopeAdd( (DtbPatternPropsPatternPropsInfo)clientData,
683                           TT_BOTH );
684     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
685 }
686
687
688 void 
689 addScopeFileInSession(
690     Widget widget,
691     XtPointer clientData,
692     XtPointer callData
693 )
694 {
695     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
696     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
697     
698     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
699     _DtTtPatternScopeAdd( (DtbPatternPropsPatternPropsInfo)clientData,
700                           TT_FILE_IN_SESSION );
701     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
702 }
703
704
705 void 
706 addAddressPROCEDURE(
707     Widget widget,
708     XtPointer clientData,
709     XtPointer callData
710 )
711 {
712     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
713     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
714     
715     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
716     _DtTtPatternAddressAdd( (DtbPatternPropsPatternPropsInfo)clientData,
717                             TT_PROCEDURE );
718     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
719 }
720
721
722 void 
723 addAddressOBJECT(
724     Widget widget,
725     XtPointer clientData,
726     XtPointer callData
727 )
728 {
729     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
730     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
731     
732     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
733     _DtTtPatternAddressAdd( (DtbPatternPropsPatternPropsInfo)clientData,
734                             TT_OBJECT );
735     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
736 }
737
738
739 void 
740 addAddressHANDLER(
741     Widget widget,
742     XtPointer clientData,
743     XtPointer callData
744 )
745 {
746     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
747     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
748     
749     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
750     _DtTtPatternAddressAdd( (DtbPatternPropsPatternPropsInfo)clientData,
751                             TT_HANDLER );
752     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
753 }
754
755
756 void 
757 addAddressOTYPE(
758     Widget widget,
759     XtPointer clientData,
760     XtPointer callData
761 )
762 {
763     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
764     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
765     
766     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
767     _DtTtPatternAddressAdd( (DtbPatternPropsPatternPropsInfo)clientData,
768                             TT_OTYPE );
769     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
770 }
771
772
773 void 
774 addStateCREATED(
775     Widget widget,
776     XtPointer clientData,
777     XtPointer callData
778 )
779 {
780     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
781     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
782     
783     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
784     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
785                           TT_CREATED );
786     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
787 }
788
789
790 void 
791 addStateSENT(
792     Widget widget,
793     XtPointer clientData,
794     XtPointer callData
795 )
796 {
797     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
798     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
799     
800     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
801     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
802                           TT_SENT );
803     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
804 }
805
806
807 void 
808 addStateHANDLED(
809     Widget widget,
810     XtPointer clientData,
811     XtPointer callData
812 )
813 {
814     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
815     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
816     
817     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
818     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
819                           TT_HANDLED );
820     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
821 }
822
823
824 void 
825 addStateFAILED(
826     Widget widget,
827     XtPointer clientData,
828     XtPointer callData
829 )
830 {
831     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
832     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
833     
834     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
835     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
836                           TT_FAILED );
837     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
838 }
839
840
841 void 
842 addStateQUEUED(
843     Widget widget,
844     XtPointer clientData,
845     XtPointer callData
846 )
847 {
848     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
849     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
850     
851     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
852     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
853                           TT_QUEUED );
854     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
855 }
856
857
858 void 
859 addStateSTARTED(
860     Widget widget,
861     XtPointer clientData,
862     XtPointer callData
863 )
864 {
865     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
866     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
867     
868     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
869     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
870                           TT_STARTED );
871     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
872 }
873
874
875 void 
876 addStateREJECTED(
877     Widget widget,
878     XtPointer clientData,
879     XtPointer callData
880 )
881 {
882     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
883     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
884     
885     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
886     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
887                           TT_REJECTED );
888     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
889 }
890
891
892 void 
893 addStateRETURNED(
894     Widget widget,
895     XtPointer clientData,
896     XtPointer callData
897 )
898 {
899     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
900     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
901     
902     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
903     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
904                           TT_RETURNED );
905     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
906 }
907
908
909 void 
910 addStateACCEPTED(
911     Widget widget,
912     XtPointer clientData,
913     XtPointer callData
914 )
915 {
916     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
917     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
918     
919     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
920     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
921                           TT_ACCEPTED );
922     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
923 }
924
925
926 void 
927 addStateABSTAINED(
928     Widget widget,
929     XtPointer clientData,
930     XtPointer callData
931 )
932 {
933     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
934     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
935     
936     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
937     _DtTtPatternStateAdd( (DtbPatternPropsPatternPropsInfo)clientData,
938                           TT_ABSTAINED );
939     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
940 }
941
942
943 void 
944 addClassNOTICE(
945     Widget widget,
946     XtPointer clientData,
947     XtPointer callData
948 )
949 {
950     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
951     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
952     
953     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
954     _DtTtPatternClassAdd( (DtbPatternPropsPatternPropsInfo)clientData,
955                           TT_NOTICE );
956     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
957 }
958
959
960 void 
961 addClassREQUEST(
962     Widget widget,
963     XtPointer clientData,
964     XtPointer callData
965 )
966 {
967     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
968     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
969     
970     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
971     _DtTtPatternClassAdd( (DtbPatternPropsPatternPropsInfo)clientData,
972                           TT_REQUEST );
973     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
974 }
975
976
977 void 
978 addClassOFFER(
979     Widget widget,
980     XtPointer clientData,
981     XtPointer callData
982 )
983 {
984     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
985     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
986     
987     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
988     _DtTtPatternClassAdd( (DtbPatternPropsPatternPropsInfo)clientData,
989                           TT_OFFER );
990     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
991 }
992
993
994 void 
995 addDispositionDISCARD(
996     Widget widget,
997     XtPointer clientData,
998     XtPointer callData
999 )
1000 {
1001     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1002     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1003     
1004     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1005     _DtTtPatternDispositionAdd( (DtbPatternPropsPatternPropsInfo)clientData,
1006                                 TT_DISCARD );
1007     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1008 }
1009
1010
1011 void 
1012 addDispositionQUEUE(
1013     Widget widget,
1014     XtPointer clientData,
1015     XtPointer callData
1016 )
1017 {
1018     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1019     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1020     
1021     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1022     _DtTtPatternDispositionAdd( (DtbPatternPropsPatternPropsInfo)clientData,
1023                                 TT_QUEUE );
1024     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1025 }
1026
1027
1028 void 
1029 addDispositionSTART(
1030     Widget widget,
1031     XtPointer clientData,
1032     XtPointer callData
1033 )
1034 {
1035     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1036     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1037     
1038     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1039     _DtTtPatternDispositionAdd( (DtbPatternPropsPatternPropsInfo)clientData,
1040                                 TT_START );
1041     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1042 }
1043
1044
1045 void 
1046 setCategoryUNDEFINED(
1047     Widget widget,
1048     XtPointer clientData,
1049     XtPointer callData
1050 )
1051 {
1052     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1053     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1054     
1055     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1056     _DtTtPatternCategorySet( (DtbPatternPropsPatternPropsInfo)clientData,
1057                              TT_CATEGORY_UNDEFINED );
1058     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1059 }
1060
1061
1062 void 
1063 setCategoryOBSERVE(
1064     Widget widget,
1065     XtPointer clientData,
1066     XtPointer callData
1067 )
1068 {
1069     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1070     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1071     
1072     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1073     _DtTtPatternCategorySet( (DtbPatternPropsPatternPropsInfo)clientData,
1074                              TT_OBSERVE );
1075     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1076 }
1077
1078
1079 void 
1080 setCategoryHANDLE(
1081     Widget widget,
1082     XtPointer clientData,
1083     XtPointer callData
1084 )
1085 {
1086     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1087     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1088     
1089     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1090     _DtTtPatternCategorySet( (DtbPatternPropsPatternPropsInfo)clientData,
1091                              TT_HANDLE );
1092     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1093 }
1094
1095
1096 void 
1097 setCategoryHANDLE_PUSH(
1098     Widget widget,
1099     XtPointer clientData,
1100     XtPointer callData
1101 )
1102 {
1103     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1104     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1105     
1106     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1107     _DtTtPatternCategorySet( (DtbPatternPropsPatternPropsInfo)clientData,
1108                              TT_HANDLE_PUSH );
1109     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1110 }
1111
1112
1113 void 
1114 setCategoryHANDLE_ROTATE(
1115     Widget widget,
1116     XtPointer clientData,
1117     XtPointer callData
1118 )
1119 {
1120     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1121     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1122     
1123     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1124     _DtTtPatternCategorySet( (DtbPatternPropsPatternPropsInfo)clientData,
1125                              TT_HANDLE_ROTATE );
1126     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1127 }
1128
1129
1130 void 
1131 addContext(
1132     Widget widget,
1133     XtPointer clientData,
1134     XtPointer callData
1135 )
1136 {
1137     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1138     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1139     
1140     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1141     DtbPatternPropsPatternPropsInfo instance =
1142             (DtbPatternPropsPatternPropsInfo)clientData;
1143     Tt_pattern pat = patternProps2Pat( instance );
1144     if (pat == 0) {
1145             return;
1146     }
1147     _DtArgChooserSet( _DtArgChoosePatternContextAdd, pat );
1148     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1149 }
1150
1151
1152 void 
1153 addOtype(
1154     Widget widget,
1155     XtPointer clientData,
1156     XtPointer callData
1157 )
1158 {
1159     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1160     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1161     
1162     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1163     DtbPatternPropsPatternPropsInfo instance =
1164             (DtbPatternPropsPatternPropsInfo)clientData;
1165     Tt_pattern pat = patternProps2Pat( instance );
1166     if (pat == 0) {
1167             return;
1168     }
1169     _DtStringChooserSet( _DtStringChoosePatternOtype, pat );
1170     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1171 }
1172
1173
1174 void 
1175 addObject(
1176     Widget widget,
1177     XtPointer clientData,
1178     XtPointer callData
1179 )
1180 {
1181     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1182     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1183     
1184     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1185     DtbPatternPropsPatternPropsInfo instance =
1186             (DtbPatternPropsPatternPropsInfo)clientData;
1187     Tt_pattern pat = patternProps2Pat( instance );
1188     if (pat == 0) {
1189             return;
1190     }
1191     _DtStringChooserSet( _DtStringChoosePatternObject, pat );
1192     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1193 }
1194
1195
1196 void 
1197 addSenderPtype(
1198     Widget widget,
1199     XtPointer clientData,
1200     XtPointer callData
1201 )
1202 {
1203     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1204     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1205     
1206     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1207     DtbPatternPropsPatternPropsInfo instance =
1208             (DtbPatternPropsPatternPropsInfo)clientData;
1209     Tt_pattern pat = patternProps2Pat( instance );
1210     if (pat == 0) {
1211             return;
1212     }
1213     _DtStringChooserSet( _DtStringChoosePatternSenderPtype, pat );
1214     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1215 }
1216
1217
1218 void 
1219 addSender(
1220     Widget widget,
1221     XtPointer clientData,
1222     XtPointer callData
1223 )
1224 {
1225     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1226     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1227     
1228     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1229     DtbPatternPropsPatternPropsInfo instance =
1230             (DtbPatternPropsPatternPropsInfo)clientData;
1231     Tt_pattern pat = patternProps2Pat( instance );
1232     if (pat == 0) {
1233             return;
1234     }
1235     _DtTtChooserSet( _DtTtChooserPatternSenderAdd, pat );
1236     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1237 }
1238
1239
1240 void 
1241 sessionAdd(
1242     Widget widget,
1243     XtPointer clientData,
1244     XtPointer callData
1245 )
1246 {
1247     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1248     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1249     
1250     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1251     DtbPatternPropsPatternPropsInfo instance =
1252             (DtbPatternPropsPatternPropsInfo)clientData;
1253     Tt_pattern pat = patternProps2Pat( instance );
1254     if (pat == 0) {
1255             return;
1256     }
1257     _DtSessionChooserSet( _DtSessionChoosePattern, pat );
1258     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1259 }
1260
1261
1262 void 
1263 addFile(
1264     Widget widget,
1265     XtPointer clientData,
1266     XtPointer callData
1267 )
1268 {
1269     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1270     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1271     
1272     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1273     DtbPatternPropsPatternPropsInfo instance =
1274             (DtbPatternPropsPatternPropsInfo)clientData;
1275     Tt_pattern pat = patternProps2Pat( instance );
1276     if (pat == 0) {
1277             return;
1278     }
1279     _DtFileChooserSet( _DtFileChoosePatternAdd, pat );
1280     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1281 }
1282
1283
1284 void 
1285 addArg(
1286     Widget widget,
1287     XtPointer clientData,
1288     XtPointer callData
1289 )
1290 {
1291     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1292     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1293     
1294     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1295     DtbPatternPropsPatternPropsInfo instance =
1296             (DtbPatternPropsPatternPropsInfo)clientData;
1297     Tt_pattern pat = patternProps2Pat( instance );
1298     if (pat == 0) {
1299             return;
1300     }
1301     _DtArgChooserSet( _DtArgChoosePatternArgAdd, pat );
1302     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1303 }
1304
1305
1306 void 
1307 callbackAdd(
1308     Widget widget,
1309     XtPointer clientData,
1310     XtPointer callData
1311 )
1312 {
1313     /*** DTB_USER_CODE_START vvv Add C variables and code below vvv ***/
1314     /*** DTB_USER_CODE_END   ^^^ Add C variables and code above ^^^ ***/
1315     
1316     /*** DTB_USER_CODE_START vvv Add C code below vvv ***/
1317     DtbPatternPropsPatternPropsInfo instance =
1318             (DtbPatternPropsPatternPropsInfo)clientData;
1319     Tt_pattern pat = patternProps2Pat( instance );
1320     if (pat == 0) {
1321             return;
1322     }
1323     _DtTtMsgCbChooserSet( pat );
1324     /*** DTB_USER_CODE_END   ^^^ Add C code above ^^^ ***/
1325 }
1326
1327
1328
1329 /**************************************************************************
1330  *** DTB_USER_CODE_START
1331  ***
1332  *** All automatically-generated data and functions have been defined.
1333  ***
1334  *** Add new functions here, or at the top of the file.
1335  ***/
1336
1337 /*** DTB_USER_CODE_END
1338  ***
1339  *** End of user code section
1340  ***
1341  **************************************************************************/
1342
1343