~ubuntu-branches/ubuntu/oneiric/kdeplasma-addons/oneiric

« back to all changes in this revision

Viewing changes to libs/conversion/unit.h

Tags: 4:4.4.3-1
* New upstream release:
  - Image providers in picture frame now work correctly. (Closes: #577948)

[ Modestas Vainius ]
* Bump kde-sc-dev-latest build dependency to 4.4.3.
* Release KDE SC 4.4.3 to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 *   Copyright (C) 2007-2009 Petri Damstén <damu@iki.fi>
3
 
 *
4
 
 *   This program is free software; you can redistribute it and/or modify
5
 
 *   it under the terms of the GNU Library General Public License as
6
 
 *   published by the Free Software Foundation; either version 2, or
7
 
 *   (at your option) any later version.
8
 
 *
9
 
 *   This program is distributed in the hope that it will be useful,
10
 
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 
 *   GNU General Public License for more details
13
 
 *
14
 
 *   You should have received a copy of the GNU Library General Public
15
 
 *   License along with this program; if not, write to the
16
 
 *   Free Software Foundation, Inc.,
17
 
 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18
 
 */
19
 
 
20
 
#ifndef CONVERSION_UNIT_H
21
 
#define CONVERSION_UNIT_H
22
 
 
23
 
#include <QString>
24
 
#include <QStringList>
25
 
#include "plasmaconversion_export.h"
26
 
 
27
 
namespace Conversion
28
 
{
29
 
 
30
 
class UnitCategory;
31
 
 
32
 
class PLASMACONVERSION_EXPORT Complex
33
 
{
34
 
public:
35
 
    Complex() {};
36
 
    virtual ~Complex() {};
37
 
    virtual double toDefault(double) const = 0;
38
 
    virtual double fromDefault(double) const = 0;
39
 
};
40
 
 
41
 
class PLASMACONVERSION_EXPORT Unit : public QObject
42
 
{
43
 
public:
44
 
    Unit(QObject* parent = 0);
45
 
    explicit Unit(QObject* parent, const QString& singular, const QString& plural,
46
 
                  const QString& symbol, double multiplier,
47
 
                  const QStringList& synonyms = QStringList());
48
 
    explicit Unit(QObject* parent, const QString& singular, const QString& plural,
49
 
                  const QString& symbol, const Complex* multiplier,
50
 
                  const QStringList& synonyms = QStringList());
51
 
    virtual ~Unit();
52
 
    /**
53
 
     * @return translated name for unit.
54
 
     **/
55
 
    QString singular() const;
56
 
 
57
 
    /**
58
 
     * @return translated name for unit (plural).
59
 
     **/
60
 
    QString plural() const;
61
 
 
62
 
    /**
63
 
     * @return symbol for the unit.
64
 
     **/
65
 
    QString symbol() const;
66
 
 
67
 
    /**
68
 
     * @return singular or plural based on value.
69
 
     **/
70
 
    QString toString(double value) const;
71
 
 
72
 
    /**
73
 
     * @return unit multiplier.
74
 
     **/
75
 
    double multiplier() const;
76
 
 
77
 
    /**
78
 
     * Set unit multiplier.
79
 
     **/
80
 
    void setMultiplier(double multiplier);
81
 
 
82
 
    /**
83
 
     * @return unit category.
84
 
     **/
85
 
    UnitCategory* category() const;
86
 
 
87
 
    /**
88
 
     * @return if unit is valid.
89
 
     **/
90
 
    bool isValid() const;
91
 
 
92
 
protected:
93
 
    double toDefault(double value) const;
94
 
    double fromDefault(double value) const;
95
 
 
96
 
private:
97
 
    friend class UnitCategory;
98
 
    class Private;
99
 
    Private* const d;
100
 
};
101
 
 
102
 
#define U(n, p, s, m, sy) (new Conversion::Unit(this, n, p, s, m, QStringList() sy))
103
 
 
104
 
} // Conversion namespace
105
 
 
106
 
#endif