File: wxplviewer.cpp

package info (click to toggle)
plplot 5.14.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 30,424 kB
  • sloc: ansic: 79,613; xml: 28,583; cpp: 20,037; ada: 19,456; tcl: 12,081; f90: 11,423; ml: 7,276; java: 6,863; python: 6,792; sh: 3,185; perl: 828; lisp: 75; makefile: 48; sed: 33; fortran: 5
file content (82 lines) | stat: -rw-r--r-- 2,690 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Copyright (C) 2015  Phil Rosenberg
//
// This file is part of PLplot.
//
// PLplot is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as published
// by the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// PLplot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with PLplot; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
//

#include "wxplframe.h"
#include <wx/wx.h>
#include <vector>
// Needed for cerr and endl below
#include <iostream>

class wxPlViewerApp : public wxApp
{
public:
    virtual bool OnInit();
};

IMPLEMENT_APP( wxPlViewerApp );

bool wxPlViewerApp::OnInit()
{
    try
    {
        wxInitAllImageHandlers();
        wxString file;
        long     fileSize = 0;
        long     width    = wxDefaultCoord;
        long     height   = wxDefaultCoord;
        if ( argc >= 3 )
        {
            file = argv[1];
            wxString( argv[2] ).ToLong( &fileSize );
        }
        if ( argc == 5 )
        {
            wxString( argv[3] ).ToLong( &width );
            wxString( argv[4] ).ToLong( &height );
        }
#ifdef __WXGTK__
        //This is to deal with the bug described at
        //https://forums.wxwidgets.org/viewtopic.php?t=37151&p=151356
        //Although this bug has been fixed according to
        //http://trac.wxwidgets.org/ticket/16202 and
        //http://trac.wxwidgets.org/changeset/76398/svn-wx
        //I currently don't know which wxWidgets version it is
        //included in so I am applying this to all wxGTK
        //builds
        wxMilliSleep( 100 );
#endif
        wxPlFrame* frame = new wxPlFrame( NULL, wxID_ANY, wxT( "wxPlViewer" ), file,
            PLINT( fileSize ), wxDefaultPosition, wxSize( width, height ) );
        frame->fixAspect( false );
        //frame->SetClientSize( width, height );
        frame->fixAspect( true );
        frame->Show();
    }
    catch ( const char* message )
    {
        std::cerr << "wxPlViewerApp::OnInit: error when creating wxPlFrame instance.  " << "The message was " << message << std::endl;
        return false;
    }
    catch ( ... )
    {
        std::cerr << "wxPlViewerApp::OnInit: unknown error when creating wxPlFrame instance." << std::endl;
        return false;
    }
    return true;
}