Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4OpenGLXmFourArrowButtons.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // $Id$
28 //
29 //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent
30 
31 #ifdef G4VIS_BUILD_OPENGLXM_DRIVER
32 
36 #include <X11/Intrinsic.h>
37 #include <Xm/Form.h>
38 #include <Xm/ArrowBG.h>
39 
40 #include "globals.hh"
41 
42 G4OpenGLXmFourArrowButtons::G4OpenGLXmFourArrowButtons (XtCallbackRec** c)
43 {
44  callback = c;
45 }
46 
47 G4OpenGLXmFourArrowButtons::~G4OpenGLXmFourArrowButtons ()
48 {}
49 
50 void G4OpenGLXmFourArrowButtons::AddYourselfTo (G4OpenGLXmVWidgetContainer* container)
51 {
52 
53  pView = container->GetView ();
54  ProcesspView ();
55 
56  parent = container->GetPointerToWidget ();
57 
58  arrow_form = XtVaCreateManagedWidget
59  ("arrow_form",
60  xmFormWidgetClass,
61  *parent,
62  XmNfractionBase, 3,
63 
64  XtNvisual, visual,
65  XtNdepth, depth,
66  XtNcolormap, cmap,
67  XtNborderColor, borcol,
68  XtNbackground, bgnd,
69 
70  NULL);
71 
72 
74  arrow = XtVaCreateManagedWidget
75  ("up_arrow",
76  xmArrowButtonGadgetClass,
77  arrow_form,
78 
79  XmNtopAttachment, XmATTACH_POSITION,
80  XmNtopPosition, 0,
81 
82  XmNbottomAttachment, XmATTACH_POSITION,
83  XmNbottomPosition, 1,
84 
85  XmNleftAttachment, XmATTACH_POSITION,
86  XmNleftPosition, 1,
87 
88  XmNrightAttachment, XmATTACH_POSITION,
89  XmNrightPosition, 2,
90 
91  XmNarrowDirection, XmARROW_UP,
92  XmNuserData, True,
93  NULL);
94 
95  XtAddCallbacks (arrow,
96  XmNactivateCallback,
97  callback[0]);
98 
99  XtAddCallbacks (arrow,
100  XmNarmCallback,
101  callback[0]);
102 
103  XtAddCallbacks (arrow,
104  XmNdisarmCallback,
105  callback[0]);
106 
108  arrow = XtVaCreateManagedWidget
109  ("down_arrow",
110  xmArrowButtonGadgetClass,
111  arrow_form,
112 
113  XmNtopAttachment, XmATTACH_POSITION,
114  XmNtopPosition, 2,
115 
116  XmNbottomAttachment, XmATTACH_POSITION,
117  XmNbottomPosition, 3,
118 
119  XmNleftAttachment, XmATTACH_POSITION,
120  XmNleftPosition, 1,
121 
122  XmNrightAttachment, XmATTACH_POSITION,
123  XmNrightPosition, 2,
124 
125  XmNarrowDirection, XmARROW_DOWN,
126  XmNuserData, False,
127  NULL);
128 
129  XtAddCallbacks (arrow,
130  XmNactivateCallback,
131  callback[1]);
132 
133  XtAddCallbacks (arrow,
134  XmNarmCallback,
135  callback[1]);
136 
137  XtAddCallbacks (arrow,
138  XmNdisarmCallback,
139  callback[1]);
140 
142  arrow = XtVaCreateManagedWidget
143  ("left_arrow",
144  xmArrowButtonGadgetClass,
145  arrow_form,
146 
147  XmNtopAttachment, XmATTACH_POSITION,
148  XmNtopPosition, 1,
149 
150  XmNbottomAttachment, XmATTACH_POSITION,
151  XmNbottomPosition, 2,
152 
153  XmNleftAttachment, XmATTACH_POSITION,
154  XmNleftPosition, 0,
155 
156  XmNrightAttachment, XmATTACH_POSITION,
157  XmNrightPosition, 1,
158 
159  XmNarrowDirection, XmARROW_LEFT,
160  XmNuserData, False,
161  NULL);
162 
163  XtAddCallbacks (arrow,
164  XmNactivateCallback,
165  callback[2]);
166 
167  XtAddCallbacks (arrow,
168  XmNarmCallback,
169  callback[2]);
170 
171  XtAddCallbacks (arrow,
172  XmNdisarmCallback,
173  callback[2]);
174 
176  arrow = XtVaCreateManagedWidget
177  ("right_arrow",
178  xmArrowButtonGadgetClass,
179  arrow_form,
180 
181  XmNtopAttachment, XmATTACH_POSITION,
182  XmNtopPosition, 1,
183 
184  XmNbottomAttachment, XmATTACH_POSITION,
185  XmNbottomPosition, 2,
186 
187  XmNleftAttachment, XmATTACH_POSITION,
188  XmNleftPosition, 2,
189 
190  XmNrightAttachment, XmATTACH_POSITION,
191  XmNrightPosition, 3,
192 
193  XmNarrowDirection, XmARROW_RIGHT,
194  XmNuserData, True,
195  NULL);
196 
197  XtAddCallbacks (arrow,
198  XmNactivateCallback,
199  callback[3]);
200 
201  XtAddCallbacks (arrow,
202  XmNarmCallback,
203  callback[3]);
204 
205  XtAddCallbacks (arrow,
206  XmNdisarmCallback,
207  callback[3]);
208 
209 }
210 
211 Widget* G4OpenGLXmFourArrowButtons::GetPointerToParent ()
212 {
213  return parent;
214 }
215 
216 Widget* G4OpenGLXmFourArrowButtons::GetPointerToWidget ()
217 {
218  return &arrow_form;
219 }
220 
221 #endif