Coverage Report

Created: 2024-03-18 06:28

/src/wxwidgets/include/wx/versioninfo.h
Line
Count
Source (jump to first uncovered line)
1
///////////////////////////////////////////////////////////////////////////////
2
// Name:        wx/versioninfo.h
3
// Purpose:     declaration of wxVersionInfo class
4
// Author:      Troels K
5
// Created:     2010-11-22
6
// Copyright:   (c) 2010 wxWidgets team
7
// Licence:     wxWindows licence
8
///////////////////////////////////////////////////////////////////////////////
9
10
#ifndef _WX_VERSIONINFO_H_
11
#define _WX_VERSIONINFO_H_
12
13
#include "wx/string.h"
14
15
// ----------------------------------------------------------------------------
16
// wxVersionInfo: represents version information
17
// ----------------------------------------------------------------------------
18
19
class wxVersionInfo
20
{
21
public:
22
    wxVersionInfo(const wxString& name = wxString(),
23
                  int major = 0,
24
                  int minor = 0,
25
                  int micro = 0,
26
                  int revision = 0,
27
                  const wxString& description = wxString(),
28
                  const wxString& copyright = wxString())
29
0
    {
30
0
        Init(name, major, minor, micro, revision, description, copyright);
31
0
    }
32
33
    // This constructor exists for backward compatibility (before the revision
34
    // part was added).
35
    wxVersionInfo(const wxString& name,
36
                  int major, int minor, int micro,
37
                  const wxString& description,
38
                  const wxString& copyright = wxString())
39
0
    {
40
0
        Init(name, major, minor, micro, 0, description, copyright);
41
0
    }
42
43
    // Default copy ctor, assignment operator and dtor are ok.
44
45
46
    // Check if this version is at least equal to the given one.
47
    bool AtLeast(int major, int minor = 0, int micro = 0) const
48
0
    {
49
0
        if ( m_major > major )
50
0
            return true;
51
0
52
0
        if ( m_major < major )
53
0
            return false;
54
0
55
0
        if ( m_minor > minor )
56
0
            return true;
57
0
58
0
        if ( m_minor < minor )
59
0
            return false;
60
0
61
0
        return m_micro >= micro;
62
0
    }
63
64
0
    const wxString& GetName() const { return m_name; }
65
66
0
    int GetMajor() const { return m_major; }
67
0
    int GetMinor() const { return m_minor; }
68
0
    int GetMicro() const { return m_micro; }
69
0
    int GetRevision() const { return m_revision; }
70
71
    wxString ToString() const
72
0
    {
73
0
        return HasDescription() ? GetDescription() : GetVersionString();
74
0
    }
75
76
    wxString GetVersionString() const
77
0
    {
78
0
        wxString str;
79
0
        str << m_name << ' ' << GetMajor() << '.' << GetMinor();
80
0
        if ( GetMicro() || GetRevision() )
81
0
        {
82
0
            str << '.' << GetMicro();
83
0
            if ( GetRevision() )
84
0
                str << '.' << GetRevision();
85
0
        }
86
0
87
0
        return str;
88
0
    }
89
90
0
    bool HasDescription() const { return !m_description.empty(); }
91
0
    const wxString& GetDescription() const { return m_description; }
92
93
0
    bool HasCopyright() const { return !m_copyright.empty(); }
94
0
    const wxString& GetCopyright() const { return m_copyright; }
95
96
private:
97
    void Init(const wxString& name,
98
              int major, int minor, int micro, int revision,
99
              const wxString& description,
100
              const wxString& copyright)
101
0
    {
102
0
        m_name = name;
103
0
        m_description = description;
104
0
        m_copyright = copyright;
105
0
        m_major = major;
106
0
        m_minor = minor;
107
0
        m_micro = micro;
108
0
        m_revision = revision;
109
0
    }
110
111
    wxString m_name,
112
             m_description,
113
             m_copyright;
114
115
    int m_major,
116
        m_minor,
117
        m_micro,
118
        m_revision;
119
};
120
121
#endif // _WX_VERSIONINFO_H_