home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / DocSpace.c < prev    next >
C/C++ Source or Header  |  1998-03-25  |  4KB  |  121 lines

  1. /* $Id: DocSpace.c,v 1.7 1998/03/25 12:43:01 zeller Exp $ */
  2. /* DocSpace-Widget (Implementation) */
  3.  
  4. /*
  5.     Copyright (C) 1995 Technische Universitaet Braunschweig, Germany.
  6.     Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  7.  
  8.     This file is part of DDD.
  9.  
  10.     DDD is free software; you can redistribute it and/or
  11.     modify it under the terms of the GNU General Public
  12.     License as published by the Free Software Foundation; either
  13.     version 2 of the License, or (at your option) any later version.
  14.  
  15.     DDD is distributed in the hope that it will be useful,
  16.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18.     See the GNU General Public License for more details.
  19.  
  20.     You should have received a copy of the GNU General Public
  21.     License along with DDD -- see the file COPYING.
  22.     If not, write to the Free Software Foundation, Inc.,
  23.     59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  24.  
  25.     DDD is the data display debugger.
  26.     For details, see the DDD World-Wide-Web page, 
  27.     `http://www.cs.tu-bs.de/softech/ddd/',
  28.     or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  29. */
  30.  
  31. char DocSpace_rcsid[] = 
  32.     "$Id: DocSpace.c,v 1.7 1998/03/25 12:43:01 zeller Exp $";
  33.  
  34. #include <X11/IntrinsicP.h>
  35. #include <X11/StringDefs.h>
  36. #include "DocSpaceP.h"
  37.  
  38. static XtResource resources[] = {
  39. #define offset(field) XtOffset(DocSpaceWidget, docSpace.field)
  40.     /* {name, class, type, size, offset, default_type, default_addr}, */
  41.     { XtNexposeCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList),
  42.     offset(expose_callback), XtRCallback, NULL },
  43.     { XtNcallback, XtCCallback, XtRCallback, sizeof(XtCallbackList),
  44.     offset(input_callback), XtRCallback, NULL },
  45.     { XtNquitCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList),
  46.     offset(quit_callback), XtRCallback, NULL }
  47. #undef offset
  48. };
  49.  
  50. static void InputAction(Widget w, XEvent *event, 
  51.             String params[], Cardinal *num_params)
  52. {
  53.     XtCallCallbacks(w, XtNcallback, (caddr_t) event);
  54. }
  55.  
  56. static void Redisplay(Widget w, XEvent *event, Region region)
  57. {
  58.     XtCallCallbacks(w, XtNexposeCallback, (caddr_t) event);
  59. }
  60.  
  61. static void QuitAction(Widget w, XEvent *event, 
  62.                String params[], Cardinal *num_params)
  63. {
  64.     XtCallCallbacks(w, XtNquitCallback, (caddr_t) event);
  65. }
  66.  
  67. static XtActionsRec actions[] =
  68. {
  69.   /* {name, procedure}, */
  70.     {"input",   InputAction},
  71.     {"quit",    QuitAction},
  72. };
  73.  
  74. static char translations[] =
  75. "<BtnDown>:     input() \n\
  76.  <Key>q:        quit() \n\
  77.  <Key>Escape:   quit() \n\
  78. ";
  79.  
  80. DocSpaceClassRec docSpaceClassRec = {
  81.   { /* core fields */
  82.     /* superclass           */  (WidgetClass) &widgetClassRec,
  83.     /* class_name           */  "DocSpace",
  84.     /* widget_size          */  sizeof(DocSpaceRec),
  85.     /* class_initialize     */  NULL,
  86.     /* class_part_initialize*/  NULL,
  87.     /* class_inited         */  FALSE,
  88.     /* initialize           */  NULL,
  89.     /* initialize_hook      */  NULL,
  90.     /* realize              */  XtInheritRealize,
  91.     /* actions              */  actions,
  92.     /* num_actions          */  XtNumber(actions),
  93.     /* resources            */  resources,
  94.     /* num_resources        */  XtNumber(resources),
  95.     /* xrm_class            */  NULLQUARK,
  96.     /* compress_motion      */  TRUE,
  97.     /* compress_exposure    */  TRUE,
  98.     /* compress_enterleave  */  TRUE,
  99.     /* visible_interest     */  FALSE,
  100.     /* destroy              */  NULL,
  101.     /* resize               */  NULL,
  102.     /* expose               */  Redisplay,
  103.     /* set_values           */  NULL,
  104.     /* set_values_hook      */  NULL,
  105.     /* set_values_almost    */  XtInheritSetValuesAlmost,
  106.     /* get_values_hook      */  NULL,
  107.     /* accept_focus         */  NULL,
  108.     /* version              */  XtVersion,
  109.     /* callback_private     */  NULL,
  110.     /* tm_table             */  translations,
  111.     /* query_geometry       */  XtInheritQueryGeometry,
  112.     /* display_accelerator  */  XtInheritDisplayAccelerator,
  113.     /* extension            */  NULL
  114.   },
  115.   { /* docSpace fields */
  116.     /* empty                */  0
  117.   }
  118. };
  119.  
  120. WidgetClass docSpaceWidgetClass = (WidgetClass)&docSpaceClassRec;
  121.