~ubuntu-branches/ubuntu/raring/codeblocks/raring-proposed

« back to all changes in this revision

Viewing changes to src/plugins/contrib/wxSmithContribItems/wxchart/wxchart-1.0/src/chart.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Cosme Domínguez Díaz
  • Date: 2010-08-09 04:38:38 UTC
  • mfrom: (1.1.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20100809043838-a59ygguym4eg0jgw
Tags: 10.05-0ubuntu1
* New upstream release. Closes (LP: #322350)
 - Switch to dpkg-source 3.0 (quilt) format
 - Remove unneeded README.source
 - Add debian/get-source-orig script that removes all
   Windows prebuilt binaries
* Bump Standards-Version to 3.9.1
 - Stop shipping *.la files
* debian/control
 - Add cdbs package as Build-Depend
 - Add libbz2-dev and zlib1g-dev packages as
   Build-Depends (needed by libhelp_plugin.so)
 - Remove dpatch package of Build-Depends
 - Add codeblocks-contrib-debug package
 - Split architecture-independent files of codeblocks
   package in codeblocks-common package
* debian/rules
 - Switch to CDBS rules system
 - Add parallel build support
 - Add a call to debian/get-source-orig script
 - Use lzma compression (saves 23,5 MB of free space)
* debian/patches
 - Refresh 01_codeblocks_plugin_path
 - Add 02_no_Makefiles_in_debian_dir to remove any link
   in codeblocks build system to deleted Makefiles of debian directory
 - Drop 02_ftbfs_gcc44 and 03_ftbfs_glib221 (merged in upstream)
* debian/watch
 - Update to use the new host (berlios.de)

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
// Modified by:
6
6
// Created:
7
7
// Copyright:   (C) 2006, Paolo Gava
8
 
// RCS-ID:      $Id: chart.cpp 4016 2007-05-30 23:08:39Z byo $
 
8
// RCS-ID:      $Id: chart.cpp 5961 2009-12-08 06:24:32Z mortenmacfly $
9
9
// Licence:     wxWindows licence
10
10
/////////////////////////////////////////////////////////////////////////////
11
11
 
13
13
// Headers
14
14
//----------------------------------------------------------------------------
15
15
// wx
 
16
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 
17
#pragma implementation "chart.h"
 
18
#endif
16
19
 
17
20
// For compilers that support precompilation, includes "wx.h".
18
21
#include <wx/wxprec.h>
22
25
#endif
23
26
 
24
27
#include "wx/chart.h"
 
28
#include "wx/chartsizes.h"
25
29
 
26
30
//----------------------------------------------------------------------------
27
31
// Define Array/List of Points
31
35
 
32
36
//+++-S-cf-------------------------------------------------------------------
33
37
//      NAME:           ctor
34
 
//      DESC:
 
38
//      DESC:           
35
39
//      PARAMETERS:     None
36
40
//      RETURN:         None
37
41
//----------------------------------------------------------------------E-+++
41
45
 
42
46
//+++-S-cf-------------------------------------------------------------------
43
47
//      NAME:           dtor
44
 
//      DESC:
 
48
//      DESC:           
45
49
//      PARAMETERS:     None
46
50
//      RETURN:         None
47
51
//----------------------------------------------------------------------E-+++
48
 
wxChart::~wxChart()
 
52
wxChart::~wxChart() 
49
53
{
50
54
        wxChartPoints* cptmp;
51
55
 
52
56
    size_t num = m_LCP.GetCount();
53
 
 
54
 
    for ( size_t loop = 0;
55
 
          loop < num;
56
 
          loop++ )
 
57
    
 
58
    for ( size_t loop = 0; 
 
59
          loop < num; 
 
60
          loop++ ) 
57
61
    {
58
62
        cptmp = m_LCP.Item(loop);
59
63
        delete cptmp;
64
68
 
65
69
//+++-S-cf-------------------------------------------------------------------
66
70
//      NAME:           Add()
67
 
//      DESC:
 
71
//      DESC:           
68
72
//      PARAMETERS:     CChartPoints* cp
69
73
//      RETURN:         None
70
74
//----------------------------------------------------------------------E-+++
71
75
void wxChart::Add(
72
76
        wxChartPoints* cp
73
 
)
 
77
74
78
{
75
 
        m_LCP.Add(cp);
 
79
        m_LCP.Add(cp); 
76
80
}
77
81
 
78
82
//+++-S-cf-------------------------------------------------------------------
79
83
//      NAME:           Clear()
80
 
//      DESC:
 
84
//      DESC:           
81
85
//      PARAMETERS:     None
82
86
//      RETURN:         None
83
87
//----------------------------------------------------------------------E-+++
84
 
void wxChart::Clear()
85
 
{
 
88
void wxChart::Clear() 
 
89
86
90
        m_LCP.Clear();
87
91
}
88
92
 
97
101
        ChartValue valTmp, valRes = 0;
98
102
 
99
103
    size_t num = m_LCP.GetCount();
100
 
 
101
 
    for ( size_t loop = 0;
102
 
          loop < num;
103
 
          loop++ )
 
104
    
 
105
    for ( size_t loop = 0; 
 
106
          loop < num; 
 
107
          loop++ ) 
104
108
    {
105
109
        valTmp = (m_LCP.Item(loop))->GetMaxX();
106
110
        if ( valTmp > valRes )
108
112
    }
109
113
 
110
114
    //-----------------------------------------------------------------------
111
 
    // if MaxX is 0 could be a Pie chart that doesn't have points like
112
 
    // Bar chart so force this to be something != from 0, otherwise
 
115
    // if MaxX is 0 could be a Pie chart that doesn't have points like 
 
116
    // Bar chart so force this to be something != from 0, otherwise 
113
117
    // wont be draw
114
118
    //-----------------------------------------------------------------------
115
119
    if ( valRes == 0 )
116
120
        valRes = 10;
117
 
 
 
121
    
118
122
        return ( valRes );
119
123
}
120
124
 
129
133
        ChartValue valTmp, valRes = 0;
130
134
 
131
135
    size_t num = m_LCP.GetCount();
132
 
 
133
 
    for ( size_t loop = 0;
134
 
          loop < num;
135
 
          loop++ )
136
 
    {
 
136
    
 
137
    for ( size_t loop = 0; 
 
138
          loop < num; 
 
139
          loop++ ) 
 
140
    {            
137
141
        valTmp = (m_LCP.Item(loop))->GetMinX();
138
142
        if ( loop == 0 )
139
143
            valRes = valTmp;
156
160
        ChartValue valTmp, valRes = 0;
157
161
 
158
162
    size_t num = m_LCP.GetCount();
159
 
 
160
 
    for ( size_t loop = 0;
161
 
          loop < num;
162
 
          loop++ )
163
 
    {
 
163
    
 
164
    for ( size_t loop = 0; 
 
165
          loop < num; 
 
166
          loop++ ) 
 
167
    {                    
164
168
        valTmp = (m_LCP.Item(loop))->GetMaxY();
165
169
        if ( valTmp > valRes )
166
170
            valRes = valTmp;
167
171
    }
168
172
 
169
173
    //-----------------------------------------------------------------------
170
 
    // if MaxY is 0 could be a Pie chart that doesn't have points like
171
 
    // Bar chart so force this to be something != from 0, otherwise
 
174
    // if MaxY is 0 could be a Pie chart that doesn't have points like 
 
175
    // Bar chart so force this to be something != from 0, otherwise 
172
176
    // wont be draw
173
177
    //-----------------------------------------------------------------------
174
178
    if ( valRes == 0 )
175
179
        valRes = 10;
176
 
 
 
180
    
177
181
    return ( valRes );
178
182
}
179
183
 
188
192
        ChartValue valTmp, valRes = 0;
189
193
 
190
194
    size_t num = m_LCP.GetCount();
191
 
 
192
 
    for ( size_t loop = 0;
193
 
          loop < num;
194
 
          loop++ )
195
 
    {
 
195
    
 
196
    for ( size_t loop = 0; 
 
197
          loop < num; 
 
198
          loop++ ) 
 
199
    {                        
196
200
        valTmp = (m_LCP.Item(loop))->GetMinY();
197
201
        if ( loop == 0 )
198
202
            valRes = valTmp;
200
204
            if ( valTmp < valRes )
201
205
                valRes = valTmp;
202
206
    }
203
 
 
 
207
        
204
208
        return ( valRes );
205
209
}
206
210
 
214
218
int wxChart::GetNumBarPoints() const
215
219
{
216
220
        int valRes = 0;
217
 
 
 
221
        
218
222
    size_t num = m_LCP.GetCount();
219
 
 
220
 
    for ( size_t loop = 0;
221
 
          loop < num;
222
 
          loop++ )
223
 
    {
 
223
    
 
224
    for ( size_t loop = 0; 
 
225
          loop < num; 
 
226
          loop++ ) 
 
227
    {                            
224
228
        if ( *(m_LCP.Item(loop)) == wxChartPointsTypes::Bar() )
225
229
            valRes += 1;
226
230
    }
227
 
 
 
231
   
228
232
        return ( valRes );
229
233
}
230
234
 
240
244
        int valRes = 0;
241
245
 
242
246
    size_t num = m_LCP.GetCount();
243
 
 
244
 
    for ( size_t loop = 0;
245
 
          loop < num;
246
 
          loop++ )
247
 
    {
 
247
    
 
248
    for ( size_t loop = 0; 
 
249
          loop < num; 
 
250
          loop++ ) 
 
251
    {                            
248
252
        if ( *(m_LCP.Item(loop)) == wxChartPointsTypes::Bar3D() )
249
253
            valRes += 1;
250
254
    }
263
267
)
264
268
{
265
269
    size_t num = m_LCP.GetCount();
266
 
 
267
 
    for ( size_t loop = 0;
268
 
          loop < num;
269
 
          loop++ )
 
270
    
 
271
    for ( size_t loop = 0; 
 
272
          loop < num; 
 
273
          loop++ ) 
270
274
    {
271
275
        (m_LCP.Item(loop))->SetZoom( z );
272
276
    }
281
285
double wxChart::GetZoom() const
282
286
{
283
287
    size_t num = m_LCP.GetCount();
284
 
 
285
 
    for ( size_t loop = 0;
286
 
          loop < num;
287
 
        )
 
288
    
 
289
    for ( size_t loop = 0; 
 
290
          loop < num; 
 
291
        ) 
288
292
    {
289
293
        return (m_LCP.Item(loop))->GetZoom();
290
294
    }
291
 
 
 
295
    
292
296
    return 1; // default Zoom set to 1
293
297
}
294
298
 
299
303
//      RETURN:         None
300
304
//----------------------------------------------------------------------E-+++
301
305
void wxChart::SetSizes(
302
 
        ChartSizes sizes
 
306
        wxChartSizes *sizes
303
307
)
304
308
{
305
309
    size_t num = m_LCP.GetCount();
306
 
 
307
 
    for ( size_t loop = 0;
308
 
          loop < num;
309
 
          loop++ )
 
310
    
 
311
    for ( size_t loop = 0; 
 
312
          loop < num; 
 
313
          loop++ ) 
310
314
    {
311
315
        (m_LCP.Item(loop))->SetSizes( sizes );
312
316
    }
318
322
//  PARAMETERS: None
319
323
//  RETURN:     ChartSizes sizes
320
324
//----------------------------------------------------------------------E-+++
321
 
ChartSizes wxChart::GetSizes() const
 
325
wxChartSizes* wxChart::GetSizes() const
322
326
{
323
327
    size_t num = m_LCP.GetCount();
324
 
 
325
 
    for ( size_t loop = 0;
326
 
          loop < num;
327
 
        )
 
328
    
 
329
    for ( size_t loop = 0; 
 
330
          loop < num; 
 
331
          loop++ ) 
328
332
    {
329
 
        return (m_LCP.Item(loop))->GetSizes();
 
333
        return (m_LCP.Item(loop))->GetSizes( );
330
334
    }
331
335
 
332
 
    return ChartSizes();
 
336
    return 0;
333
337
}
334
338
 
335
339
//+++-S-cf-------------------------------------------------------------------
336
340
//      NAME:           Draw()
337
 
//      DESC:
338
 
//      PARAMETERS:     CHART_HPAINT hp,
 
341
//      DESC:           
 
342
//      PARAMETERS:     CHART_HPAINT hp, 
339
343
//                              CHART_HRECT hr
340
344
//      RETURN:         None
341
345
//----------------------------------------------------------------------E-+++
342
346
void wxChart::Draw(
343
 
        CHART_HPAINT hp,
 
347
        CHART_HPAINT hp, 
344
348
        CHART_HRECT hr
345
 
)
346
 
{
 
349
 
350
347
351
        int iBarCounter = 0;
348
352
        int iBar3DCounter = 0;
349
353
        int xTmp = hr->x;
350
354
 
351
355
    size_t num = m_LCP.GetCount();
352
 
    for ( size_t loop = 0;
353
 
          loop < num;
354
 
          loop++ )
 
356
    for ( size_t loop = 0; 
 
357
          loop < num; 
 
358
          loop++ ) 
355
359
        {
356
360
                //-------------------------------------------------------------------
357
361
                // Count the number of Bar-Bar3d charts so when more than one bar is
358
 
                // present the first one is draw at position x, the second one at
 
362
                // present the first one is draw at position x, the second one at 
359
363
                // position x+1*bar_width so just next to the previous one
360
364
                //-------------------------------------------------------------------
361
 
 
362
 
        ChartSizes sizes = m_LCP.Item(loop)->GetSizes();
363
 
        hr->x += (
364
 
            iBarCounter *
365
 
                static_cast<int>(sizes.wbar * m_LCP.Item(loop)->GetZoom()) +
366
 
            iBar3DCounter *
367
 
                static_cast<int>(sizes.wbar3d * m_LCP.Item(loop)->GetZoom())
 
365
        
 
366
        wxChartSizes *sizes = m_LCP.Item(loop)->GetSizes();
 
367
        hr->x += ( 
 
368
            iBarCounter * 
 
369
                static_cast<int>(sizes->GetWidthBar() * 
 
370
                    m_LCP.Item(loop)->GetZoom()) +
 
371
            iBar3DCounter * 
 
372
                static_cast<int>(sizes->GetWidthBar3d() * 
 
373
                    m_LCP.Item(loop)->GetZoom())
368
374
        );
369
 
 
 
375
        
370
376
                if ( *(m_LCP.Item(loop)) == wxChartPointsTypes::Bar() )
371
 
                {
 
377
                {                       
372
378
                        iBarCounter += 1;
373
379
                }
374
380
                else if ( *m_LCP.Item(loop) == wxChartPointsTypes::Bar3D() )
380
386
                // draw all
381
387
                //-------------------------------------------------------------------
382
388
                m_LCP.Item(loop)->Draw( hp, hr );
383
 
 
 
389
                
384
390
                hr->x = xTmp;
385
391
        }
386
392
}