diff src/ExternalClient.c @ 412:697ef44129c6 r21-2-14

Import from CVS: tag r21-2-14
author cvs
date Mon, 13 Aug 2007 11:20:41 +0200
parents b8cc9ab3f761
children
line wrap: on
line diff
--- a/src/ExternalClient.c	Mon Aug 13 11:19:22 2007 +0200
+++ b/src/ExternalClient.c	Mon Aug 13 11:20:41 2007 +0200
@@ -46,7 +46,7 @@
 #include "extw-Xt.h"
 
 #ifdef TOOLTALK
-#include TT_C_H_FILE
+#include TT_C_H_PATH
 #endif
 
 /* This is the client widget, used to communicate with an ExternalShell
@@ -77,30 +77,24 @@
 
 static XtResource resources[] = {
 #define offset(field) XtOffset(ExternalClientWidget, externalClient.field)
-  { XtNshellTimeout, XtCShellTimeout,
-    XtRInt, sizeof (int),
-    offset(shell_timeout), XtRImmediate,(XtPointer)DEFAULT_WM_TIMEOUT },
-  { XtNdeadShell, XtCDeadShell,
-    XtRBoolean, sizeof (Boolean),
-    offset(dead_shell), XtRImmediate, (XtPointer)False },
+  { XtNshellTimeout, XtCShellTimeout, XtRInt, sizeof(int),
+      offset(shell_timeout), XtRImmediate,(XtPointer)DEFAULT_WM_TIMEOUT},
+  { XtNdeadShell, XtCDeadShell, XtRBoolean, sizeof(Boolean),
+      offset(dead_shell), XtRImmediate, (XtPointer)False},
 #ifdef EXTW_USES_MOTIF
-  { XmNnavigationType, XmCNavigationType,
-    XmRNavigationType, sizeof (XmNavigationType),
-    XtOffset (ExternalClientWidget, primitive.navigation_type),
-    XtRImmediate, (XtPointer)XmTAB_GROUP },
+  { XmNnavigationType, XmCNavigationType, XmRNavigationType,
+      sizeof(XmNavigationType), XtOffset(ExternalClientWidget,
+      primitive.navigation_type), XtRImmediate,
+      (XtPointer)XmTAB_GROUP},
 #endif
-  { XtNemacsProcID, XtCEmacsProcID,
-    XtRString, sizeof (String),
-    offset(emacs_procid), XtRImmediate, (XtPointer)NULL },
-  { XtNshellReadyCallback, XtCCallback,
-    XtRCallback, sizeof (XtCallbackList),
-    offset(shell_ready_callback), XtRImmediate, (XtPointer)NULL },
-  { XtNshellName, XtCShellName,
-    XtRString, sizeof (String),
-    offset(shell_name), XtRImmediate, (XtPointer)NULL },
-  { XtNuseToolTalk, XtCUseToolTalk,
-    XtRBoolean, sizeof (Boolean),
-    offset(use_tooltalk), XtRImmediate, (XtPointer)False }
+  { XtNemacsProcID, XtCEmacsProcID, XtRString, sizeof(String),
+      offset(emacs_procid), XtRImmediate, (XtPointer)NULL},
+  { XtNshellReadyCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList),
+      offset(shell_ready_callback), XtRImmediate, (XtPointer)NULL},
+  { XtNshellName, XtCShellName, XtRString, sizeof(String),
+      offset(shell_name), XtRImmediate, (XtPointer)NULL},
+  { XtNuseToolTalk, XtCUseToolTalk, XtRBoolean, sizeof(Boolean),
+      offset(use_tooltalk), XtRImmediate, (XtPointer)False}
 };
 
 static XtActionsRec actions[] = {
@@ -120,13 +114,13 @@
     /* superclass	  */	(WidgetClass) &coreClassRec,
 #endif
     /* class_name	  */	"ExternalClient",
-    /* size		  */	sizeof (ExternalClientRec),
+    /* size		  */	sizeof(ExternalClientRec),
     /* Class Initializer  */	NULL,
     /* class_part_initialize*/	NULL, /* XtInheritClassPartInitialize, */
     /* Class init'ed ?	  */	FALSE,
     /* initialize	  */	externalClientInitialize,
     /* initialize_notify  */	NULL,
-    /* realize		  */	externalClientRealize,
+    /* realize		  */	externalClientRealize, 
     /* actions		  */	actions,
     /* num_actions	  */	XtNumber (actions),
     /* resources	  */	resources,
@@ -140,9 +134,9 @@
     /* resize		  */	XtInheritResize,
     /* expose		  */	NULL,
     /* set_values	  */	NULL, /* XtInheritSetValues, */
-    /* set_values_hook	  */	NULL,
-    /* set_values_almost  */	XtInheritSetValuesAlmost,
-    /* get_values_hook	  */	NULL,
+    /* set_values_hook	  */	NULL,			
+    /* set_values_almost  */	XtInheritSetValuesAlmost,  
+    /* get_values_hook	  */	NULL,			
     /* accept_focus	  */	NULL,
     /* intrinsics version */	XtVersion,
     /* callback offsets	  */	NULL,
@@ -192,7 +186,7 @@
      -- BPW
 
   */
-
+    
   XtOverrideTranslations (new,
 			  XtParseTranslationTable ("None<Key>Tab:\n"
 						   "<FocusIn>:focusIn()\n"
@@ -201,7 +195,7 @@
 						   "<Leave>:leave()\n"));
 
 #endif
-
+  
   XtAddEventHandler (new, 0, TRUE, EventHandler, (XtPointer) NULL);
 
   ecw->externalClient.shell_ready = False;
@@ -220,7 +214,7 @@
 tt_callback(Tt_message m, Tt_pattern p)
 {
   ExternalClientWidget ecw = (ExternalClientWidget)tt_message_user (m, 0);
-
+  
   switch (tt_message_state(m))
     {
     case TT_FAILED:
@@ -232,7 +226,7 @@
 			  ecw->externalClient.shell_ready_callback, NULL);
       break;
     }
-
+  
   tt_message_destroy (m);
   return TT_CALLBACK_PROCESSED;
 }
@@ -247,7 +241,7 @@
   tt_message_class_set (m, TT_REQUEST);
   tt_message_arg_add (m, TT_IN, "string", name);
   tt_message_iarg_add (m, TT_IN, "int", win);
-  tt_message_arg_add (m, TT_OUT, "string", NULL);
+  tt_message_arg_add (m, TT_OUT, "string", NULL); 
   tt_message_user_set (m, 0, (void *)ecw);
   tt_message_callback_add (m, tt_callback);
   if (ecw->externalClient.emacs_procid)
@@ -267,8 +261,8 @@
 externalClientRealize (Widget w, XtValueMask *vm, XSetWindowAttributes *attrs)
 {
   ExternalClientWidget ecw = (ExternalClientWidget)w;
-
-#ifdef EXTW_USES_MOTIF
+  
+#ifdef EXTW_USES_MOTIF  
   (*xmPrimitiveWidgetClass->core_class.realize) (w, vm, attrs);
 #else
   (*coreWidgetClass->core_class.realize) (w, vm, attrs);
@@ -284,7 +278,7 @@
       XSync (XtDisplay (w), False);
       send_tooltalk_handshake (ecw, XtWindow (w), XtName (w));
     }
-#endif
+#endif  
 }
 
 
@@ -320,7 +314,7 @@
 {
   struct ww_list *w1, *w2;
   Widget wid = 0;
-
+  
   for (w1=ww_list, w2=w1->next; w2; w1=w2, w2=w2->next)
     if (w2->win == win)
       {
@@ -372,7 +366,7 @@
   XSetWindowAttributes xswa;
   XtValueMask mask;
   Widget wid = (Widget) w;
-
+  
   w->externalClient.shell_ready = False;
   XtRemoveEventHandler (wid, w->externalClient.event_mask,
 			FALSE, MaskableEventHandler, (XtPointer) NULL);
@@ -385,7 +379,7 @@
 my_error_handler (Display *display, XErrorEvent *xev)
 {
   Widget wid;
-
+  
   if (xev->error_code != BadWindow)
     goto call_old;
   wid = remove_ww (xev->resourceid);
@@ -394,7 +388,7 @@
       end_connection ((ExternalClientWidget) wid);
       return 0;
     }
-
+  
  call_old:
   return error_old_handler (display, xev);
 }
@@ -405,7 +399,7 @@
      /* closure and continue_to_dispatch unused */
 {
   ExternalClientWidget w = (ExternalClientWidget) wid;
-
+  
   if (w->externalClient.shell_ready)
     {
       if (event->type == KeyPress || event->type == KeyRelease ||
@@ -427,7 +421,7 @@
       XSync (XtDisplay (wid), 0); /* make sure that any BadWindow errors
 				     (meaning the server died) get handled
 				     before XSendEvent is called again. */
-
+      
     }
 }
 
@@ -437,7 +431,7 @@
      /* closure and continue_to_dispatch unused */
 {
   ExternalClientWidget w = (ExternalClientWidget) wid;
-
+  
   if (w->core.window != event->xany.window)
     {
       XtAppErrorMsg (XtWidgetToApplicationContext (wid),
@@ -446,41 +440,41 @@
 		     (String *)NULL, (Cardinal *)NULL);
       return;
     }
-
+  
   if (event->type == ClientMessage &&
       event->xclient.message_type == a_EXTW_NOTIFY &&
       event->xclient.data.l[0] == extw_shell_send)
     switch (event->xclient.data.l[1])
       {
-
+	
       case extw_notify_qg:
 	/* shell is alive again. */
-
+	
 	w->externalClient.dead_shell = False;
 	break;
-
+	
       case extw_notify_gm:
 	{
 	  XtWidgetGeometry xwg, xwg_return;
 	  XtGeometryResult result;
-
+	  
 	  extw_get_geometry_value (XtDisplay (wid), XtWindow (wid),
 				   a_EXTW_GEOMETRY_MANAGER, &xwg);
 	  result = XtMakeGeometryRequest (wid, &xwg, &xwg_return);
-
+	  
 	  extw_send_geometry_value (XtDisplay (wid), XtWindow (wid),
 				    a_EXTW_GEOMETRY_MANAGER, extw_notify_gm,
 				    result == XtGeometryAlmost ? &xwg_return :
 				    NULL, result);
 	  break;
 	}
-
+	
       case extw_notify_init:
 	w->externalClient.shell_ready = True;
 	w->externalClient.event_window = event->xclient.data.l[2];
 	w->externalClient.event_mask = event->xclient.data.l[3];
 	add_ww (w->externalClient.event_window, (Widget) w);
-
+	
 	XtAddEventHandler (wid, w->externalClient.event_mask,
 			   FALSE, MaskableEventHandler, (XtPointer) NULL);
 #ifdef EXTW_USES_MOTIF
@@ -493,12 +487,12 @@
 		0, 0);
 #endif
 	break;
-
+	
       case extw_notify_end:
 	end_connection (w);
 	remove_ww (w->externalClient.event_window);
 	break;
-
+	
       case extw_notify_set_focus:
 #ifdef EXTW_USES_MOTIF
 	XmProcessTraversal (wid, XmTRAVERSE_CURRENT);
@@ -506,7 +500,7 @@
 	XtSetKeyboardFocus (wid, None);
 #endif
 	break;
-
+	
       }
 }
 
@@ -514,7 +508,7 @@
      Widget wid;
 {
   ExternalClientWidget w = (ExternalClientWidget)wid;
-
+  
   NOTIFY(w, extw_notify_end, 0, 0, 0);
 }
 
@@ -527,14 +521,14 @@
   unsigned long request_num;
   Display *display = XtDisplay(gw);
   XtWidgetGeometry req = *request; /* don't modify caller's structure */
-
+  
   if (!XtIsRealized((Widget)w) || !w->externalClient.shell_ready)
     return XtGeometryYes;
-
+  
   if (w->externalClient.dead_shell == TRUE)
     /* The shell is sick. */
     return XtGeometryNo;
-
+  
   req.sibling = None;
   req.request_mode &= ~CWSibling;
   request_num = NextRequest(display);
@@ -560,7 +554,7 @@
 				Cardinal *num_params)
 {
   ExternalClientWidget ecw = (ExternalClientWidget) w;
-
+  
   if (event->xfocus.send_event && !ecw->externalClient.has_focus) {
     ecw->externalClient.has_focus = True;
     NOTIFY(ecw, extw_notify_focus_in, 0, 0, 0);
@@ -574,7 +568,7 @@
 				 Cardinal *num_params)
 {
   ExternalClientWidget ecw = (ExternalClientWidget) w;
-
+  
   if (event->xfocus.send_event && ecw->externalClient.has_focus) {
     ecw->externalClient.has_focus = False;
     NOTIFY(ecw, extw_notify_focus_out, 0, 0, 0);
@@ -588,7 +582,7 @@
 			      Cardinal *num_params)
 {
   ExternalClientWidget ecw = (ExternalClientWidget) w;
-
+  
   if (
 #ifdef EXTW_USES_MOTIF
       _XmGetFocusPolicy (w) != XmEXPLICIT &&
@@ -607,7 +601,7 @@
 			      Cardinal *num_params)
 {
   ExternalClientWidget ecw = (ExternalClientWidget) w;
-
+  
   if (
 #ifdef EXTW_USES_MOTIF
       _XmGetFocusPolicy (w) != XmEXPLICIT &&