home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume34 / imagemagick / part01 / ImageMagick / PreRvIcccm.c < prev    next >
C/C++ Source or Header  |  1992-12-14  |  5KB  |  305 lines

  1. #include "display.h"
  2. #include "image.h"
  3. #include "alien.h"
  4. #include "X.h"
  5.  
  6. #ifdef PRE_R5_ICCCM
  7. /*
  8.   Compatibility routines for pre X11R5 ICCCM.
  9. */
  10. XrmDatabase XrmGetDatabase(display)
  11. Display
  12.   *display;
  13. {
  14.   return(display->db);
  15. }
  16. #endif
  17.  
  18. #ifdef PRE_R4_ICCCM
  19. /*
  20.   Compatibility routines for pre X11R4 ICCCM.
  21. */
  22. XClassHint *XAllocClassHint()
  23. {
  24.   return((XClassHint *) malloc(sizeof(XClassHint)));
  25. }
  26.  
  27. XIconSize *XAllocIconSize()
  28. {
  29.   return((XIconSize *) malloc(sizeof(XIconSize)));
  30. }
  31.  
  32. XSizeHints *XAllocSizeHints()
  33. {
  34.   return((XSizeHints *) malloc(sizeof(XSizeHints)));
  35. }
  36.  
  37. Status XReconfigureWMWindow(display,window,screen_number,value_mask,values)
  38. Display
  39.   *display;
  40.  
  41. Window
  42.   window;
  43.  
  44. int
  45.   screen_number;
  46.  
  47. unsigned int
  48.   value_mask;
  49.  
  50. XWindowChanges
  51.   *values;
  52. {
  53.   return(XConfigureWindow(display,window,value_mask,values));
  54. }
  55.  
  56. XStandardColormap *XAllocStandardColormap()
  57. {
  58.   return((XStandardColormap *) malloc(sizeof(XStandardColormap)));
  59. }
  60.  
  61. XWMHints *XAllocWMHints()
  62. {
  63.   return((XWMHints *) malloc(sizeof(XWMHints)));
  64. }
  65.  
  66. Status XGetRGBColormaps(display,window,colormap,count,property)
  67. Display
  68.   *display;
  69.  
  70. Window
  71.   window;
  72.  
  73. XStandardColormap
  74.   **colormap;
  75.  
  76. int
  77.   *count;
  78.  
  79. Atom
  80.   property;
  81. {
  82.   *count=1;
  83.   return(XGetStandardColormap(display,window,colormap,property));
  84. }
  85.  
  86. Status XGetWMName(display,window,text_property)
  87. Display
  88.   *display;
  89.  
  90. Window
  91.   window;
  92.  
  93. XTextProperty
  94.   *text_property;
  95. {
  96.   char
  97.     *window_name;
  98.  
  99.   if (XFetchName(display,window,&window_name) == 0)
  100.     return(False);
  101.   text_property->value=(unsigned char *) window_name;
  102.   text_property->encoding=XA_STRING;
  103.   text_property->format=8;
  104.   text_property->nitems=strlen(window_name);
  105.   return(True);
  106. }
  107.  
  108. char *XResourceManagerString(display)
  109. Display
  110.   *display;
  111. {
  112.   return display->xdefaults;
  113. }
  114.  
  115. void XrmDestroyDatabase(database)
  116. XrmDatabase
  117.   database;
  118. {
  119. }
  120.  
  121. int XSetWMName(display,window,property)
  122. Display
  123.   *display;
  124.  
  125. Window
  126.   window;
  127.  
  128. XTextProperty
  129.   *property;
  130. {
  131.   XStoreName(display,window,property->value);
  132. }
  133.  
  134. int XStringListToTextProperty(argv,argc,property)
  135. char
  136.   **argv;
  137.  
  138. int
  139.   argc;
  140.  
  141. XTextProperty
  142.   *property;
  143. {
  144.   register int
  145.     i;
  146.  
  147.   register unsigned int
  148.     number_bytes;
  149.  
  150.   XTextProperty
  151.      protocol;
  152.  
  153.   number_bytes=0;
  154.   for (i=0; i < argc; i++)
  155.     number_bytes+=(unsigned int) ((argv[i] ? strlen(argv[i]) : 0)+1);
  156.   protocol.encoding=XA_STRING;
  157.   protocol.format=8;
  158.   protocol.nitems=0;
  159.   if (number_bytes)
  160.     protocol.nitems=number_bytes-1;
  161.   protocol.value=NULL;
  162.   if (number_bytes <= 0)
  163.     {
  164.       protocol.value=(unsigned char *) malloc(sizeof(char));
  165.       if (!protocol.value)
  166.         return(False);
  167.       *protocol.value='\0';
  168.     }
  169.   else
  170.     {
  171.       register char
  172.         *buffer;
  173.  
  174.       buffer=(char *) malloc(number_bytes*sizeof(char));
  175.       if (buffer == (char *) NULL)
  176.         return(False);
  177.       protocol.value=(unsigned char *) buffer;
  178.       for (i=0; i < argc; i++)
  179.       {
  180.         char
  181.           *argument;
  182.  
  183.         argument=argv[i];
  184.         if (!argument)
  185.           *buffer++='\0';
  186.         else
  187.           {
  188.             (void) strcpy(buffer,argument);
  189.             buffer+=(strlen(argument)+1);
  190.           }
  191.       }
  192.     }
  193.   *property=protocol;
  194.   return(True);
  195. }
  196.  
  197. void XSetWMProperties(display,window,window_name,icon_name,argv,argc,
  198.   size_hints,manager_hints,class_hint)
  199. Display
  200.   *display;
  201.  
  202. Window
  203.   window;
  204.  
  205. XTextProperty
  206.   *window_name,
  207.   *icon_name;
  208.  
  209. char
  210.   **argv;
  211.  
  212. int
  213.   argc;
  214.  
  215. XSizeHints
  216.   *size_hints;
  217.  
  218. XWMHints *manager_hints;
  219.  
  220. XClassHint
  221.   *class_hint;
  222. {
  223.   XSetStandardProperties(display,window,window_name->value,icon_name,None,
  224.     argv,argc,size_hints);
  225.   XSetWMHints(display,window,manager_hints);
  226.   XSetClassHint(display,window,class_hint);
  227. }
  228.  
  229. Status XSetWMProtocols(display,window,protocols,count)
  230. Display
  231.   *display;
  232.  
  233. Window
  234.   window;
  235.  
  236. Atom
  237.   *protocols;
  238.  
  239. int
  240.   count;
  241. {
  242.   Atom
  243.     protocols_property;
  244.  
  245.   protocols_property=XInternAtom(display,"WM_PROTOCOLS",False);
  246.   XChangeProperty(display,window,protocols_property,XA_ATOM,32,PropModeReplace,
  247.     (unsigned char *) protocols, count);
  248.   return(True);
  249. }
  250.  
  251. VisualID XVisualIDFromVisual(visual)
  252. Visual
  253.   *visual;
  254. {
  255.   return(visual->visualid);
  256. }
  257.  
  258. Status XWithdrawWindow(display,window,screen)
  259. Display
  260.   *display;
  261.  
  262. Window
  263.   window;
  264.  
  265. int
  266.   screen;
  267. {
  268.   return(XUnmapWindow(display,window));
  269. }
  270.  
  271. int XWMGeometry(display,screen,user_geometry,default_geometry,border_width,
  272.   size_hints,x,y,width,height,gravity)
  273. Display
  274.   *display;
  275.  
  276. int
  277.   screen;
  278.  
  279. char
  280.   *user_geometry,
  281.   *default_geometry;
  282.  
  283. unsigned int
  284.   border_width;
  285.  
  286. XSizeHints
  287.   *size_hints;
  288.  
  289. int
  290.   *x,
  291.   *y,
  292.   *width,
  293.   *height,
  294.   *gravity;
  295. {
  296.   int
  297.     status;
  298.  
  299.   status=XGeometry(display,screen,user_geometry,default_geometry,border_width,
  300.     0,0,0,0,x,y,width,height);
  301.   *gravity=NorthWestGravity;
  302.   return(status);
  303. }
  304. #endif
  305.