XEmacs 21.2.25 "Hephaestus".
[chise/xemacs-chise.git.1] / lwlib / xlwradioP.h
1 /* Radio Widget for XEmacs.
2    Copyright (C) 1999 Edward A. Falk
3
4 This file is part of XEmacs.
5
6 XEmacs is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
9 later version.
10
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 /*
22  * RadioP.h - Private definitions for Radio widget
23  * 
24  * Author: Edward A. Falk
25  *         falk@falconer.vip.best.com
26  *  
27  * Date:   June 30, 1997
28  *
29  */
30
31 #ifndef _XawRadioP_h
32 #define _XawRadioP_h
33
34 #include "xlwradio.h"
35 #include ATHENA_INCLUDE(ToggleP.h)
36
37 /***********************************************************************
38  *
39  * Radio Widget Private Data
40  *
41  ***********************************************************************/
42
43 #define streq(a, b) ( strcmp((a), (b)) == 0 )
44
45 typedef void (*XawDiamondProc) (Widget);
46
47 void RadioSet (Widget   w,
48                XEvent   *event,
49                String   *params,      /* unused */
50                Cardinal *num_params); /* unused */
51
52 void RadioUnset (Widget   w,
53                  XEvent   *event,
54                  String   *params,      /* unused */
55                  Cardinal *num_params); /* unused */
56
57 /************************************
58  *
59  *  Class structure
60  *
61  ***********************************/
62
63    /* New fields for the Radio widget class record */
64 typedef struct _RadioClass  {
65     Dimension   dsize ;         /* diamond size */
66     XawDiamondProc drawDiamond ;
67     /* TODO: 3-d and xaw-xpm features? */
68     XtPointer   extension;
69 } RadioClassPart;
70
71 #define XtInheritDrawDiamond    ((XawDiamondProc)_XtInherit)
72
73    /* Full class record declaration */
74 typedef struct _RadioClassRec {
75     CoreClassPart       core_class;
76     SimpleClassPart     simple_class;
77 #ifdef  _ThreeDP_h
78     ThreeDClassPart     threeD_class;
79 #endif
80     LabelClassPart      label_class;
81     CommandClassPart    command_class;
82     ToggleClassPart     toggle_class;
83     RadioClassPart      radio_class;
84 } RadioClassRec;
85
86 extern RadioClassRec radioClassRec;
87
88 /***************************************
89  *
90  *  Instance (widget) structure 
91  *
92  **************************************/
93
94     /* New fields for the Radio widget record */
95 typedef struct {
96     /* resources */
97     /* TODO: 3-d and xaw-xpm features? */
98
99     /* private data */
100     XtPointer   extension;
101 } RadioPart;
102
103    /* Full widget declaration */
104 typedef struct _RadioRec {
105     CorePart    core;
106     SimplePart  simple;
107 #ifdef  _ThreeDP_h
108     ThreeDPart  threeD;
109 #endif
110     LabelPart   label;
111     CommandPart command;
112     TogglePart  toggle;
113     RadioPart   radio;
114 } RadioRec;
115
116 #endif /* _XawRadioP_h */