source: tags/arb_5.5/PGT/analyze_window.cxx

Last change on this file was 3978, checked in by baderk, 18 years ago

Various changes from my own testing-repository are hereby transfered to the
main ARB repository. The sole purpose of this version is an increased
stability and less memory leaks, additional features will follow soon.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.6 KB
Line 
1// Copyright (c) 2004 - 2005 Kai Bader <baderk@in.tum.de>
2//
3// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
6// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
7// AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
8// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9
10// CVS REVISION TAG  --  $Revision: 3978 $
11
12
13#include "analyze_window.hxx"
14
15
16/****************************************************************************
17*  ANALYZE WINDOW - CONSTRUCTOR
18****************************************************************************/
19analyzeWindow::analyzeWindow(MDialog *d)
20    : MDialog(d)
21{
22    // CREATE WINDOW SHELL
23    createShell("");
24
25    // SET A NEW WIDTH AND HEIGHT OF THE SHELL
26    XtVaSetValues(m_shell,
27        XmNwidth, 800,
28        XmNheight, 600,
29        NULL);
30
31    // CREATE MAIN WINDOW WIDGETS
32    createWindow();
33
34    // REALIZE SHELL & WIDGETS
35    realizeShell();
36
37    // SET WINDOW LABEL
38    setDialogTitle("PGT - Data Analyzer");
39
40    // DEBUG...
41
42    m_myplot= new Plot(XtDisplay(m_plotArea), XtWindow(m_plotArea));
43
44    // m_myplot->demo();
45
46    XtAddCallback(m_plotArea, XmNresizeCallback, staticResizeGnuplot, this);
47
48    resizeGnuplot();
49
50    // ...DEBUG
51}
52
53
54/****************************************************************************
55*  ANALYZE WINDOW - DESTRUCTOR
56****************************************************************************/
57analyzeWindow::~analyzeWindow()
58{
59
60}
61
62
63/****************************************************************************
64*  ANALYZE WINDOW - CREATE WINDOW
65****************************************************************************/
66void analyzeWindow::createWindow()
67{
68    // CREATE THIS WINDOWS TOP LEVEL WIDGET
69    m_top= XtVaCreateManagedWidget("top",
70        xmFormWidgetClass, m_shell,
71        XmNmarginHeight, 0,
72        XmNmarginWidth, 0,
73        NULL);
74
75    // CREATE TOP TOOLBAR WIDGET
76    m_topToolbar= XtVaCreateManagedWidget("topToolbar",
77        xmFormWidgetClass, m_top,
78        XmNmarginHeight, 0,
79        XmNmarginWidth, 0,
80        XmNheight, 30, // DEBUG
81        XmNtopAttachment, XmATTACH_FORM,
82        XmNleftAttachment, XmATTACH_FORM,
83        XmNrightAttachment, XmATTACH_FORM,
84        NULL);
85
86    // CREATE TOP TOOLBAR WIDGET
87    m_leftToolbar= XtVaCreateManagedWidget("topToolbar",
88        xmRowColumnWidgetClass, m_top,
89        XmNorientation, XmVERTICAL,
90        XmNmarginHeight, 0,
91        XmNmarginWidth, 0,
92        XmNwidth, 30, // DEBUG
93        XmNtopAttachment, XmATTACH_WIDGET,
94        XmNtopWidget, m_topToolbar,
95        XmNleftAttachment, XmATTACH_FORM,
96        XmNbottomAttachment, XmATTACH_FORM,
97        NULL);
98
99    m_plotManager= XtVaCreateManagedWidget("plotManager",
100        xmFormWidgetClass, m_top,
101        XmNtopAttachment, XmATTACH_WIDGET,
102        XmNtopWidget, m_topToolbar,
103        XmNleftAttachment, XmATTACH_WIDGET,
104        XmNleftWidget, m_leftToolbar,
105        XmNbottomAttachment, XmATTACH_FORM,
106        XmNrightAttachment, XmATTACH_FORM,
107        NULL);
108
109    m_plotArea= XtVaCreateManagedWidget("area",
110        xmDrawingAreaWidgetClass, m_plotManager,
111        XmNtopAttachment, XmATTACH_FORM,
112        XmNleftAttachment, XmATTACH_FORM,
113        XmNbottomAttachment, XmATTACH_FORM,
114        XmNrightAttachment, XmATTACH_FORM,
115        NULL);
116
117//     m_plotArea= XtVaCreateManagedWidget("area",
118//         xmFormWidgetClass, m_plotManager,
119//         XmNtopAttachment, XmATTACH_FORM,
120//         XmNleftAttachment, XmATTACH_FORM,
121//         XmNbottomAttachment, XmATTACH_FORM,
122//         XmNrightAttachment, XmATTACH_FORM,
123//         NULL);
124
125    // FILL TOOLBARS WITH WIDGETS
126    createTopToolbar();
127    createLeftToolbar();
128}
129
130
131/****************************************************************************
132*  ANALYZE WINDOW - CREATE TOP TOOLBAR
133****************************************************************************/
134void analyzeWindow::createTopToolbar()
135{
136    // DEBUG LABEL (PLACE HOLDER)
137    XtVaCreateManagedWidget("label",
138        xmLabelWidgetClass, m_topToolbar,
139        XmNlabelString, CreateDlgString("TOP"),
140        NULL);
141}
142
143
144/****************************************************************************
145*  ANALYZE WINDOW - CREATE LEFT TOOLBAR
146****************************************************************************/
147void analyzeWindow::createLeftToolbar()
148{
149    // DEBUG LABEL (PLACE HOLDER)
150    XtVaCreateManagedWidget("label",
151        xmLabelWidgetClass, m_leftToolbar,
152        XmNlabelString, CreateDlgString("LEFT"),
153        NULL);
154}
155
156
157
158/****************************************************************************
159*  ANALYZE WINDOW - RESIZE THE GNUPLOT WINDOW
160****************************************************************************/
161void analyzeWindow::resizeGnuplot()
162{
163    Dimension w, h;
164    // unsigned int w, h;
165
166    // GET DIMENSIONS
167    XtVaGetValues(m_plotArea,
168        XmNwidth, &w,
169        XmNheight, &h,
170        NULL);
171
172    // SET PLOT WINDOW DIMENSIONS
173    if(m_myplot) m_myplot->resizeWindow(0, 0, (int)w, (int)h);
174}
175
176
177/****************************************************************************
178*  ANALYZE WINDOW - RESIZE THE GNUPLOT WINDOW
179*  !!! CAUTION: THIS IS A WRAPPER FUNCTION !!!
180****************************************************************************/
181void staticResizeGnuplot(Widget, XtPointer clientData, XtPointer)
182{
183    // GET POINTER OF THE ORIGINAL CALLER
184    analyzeWindow *aW= (analyzeWindow *)clientData;
185
186    // CALL CLASS MEMBER FUNCTION
187    aW->resizeGnuplot();
188}
189
Note: See TracBrowser for help on using the repository browser.