• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeutils API Reference
  • KDE Home
  • Contact Us
 

kcalc

  • sources
  • kde-4.12
  • kdeutils
  • kcalc
kcalcdisplay.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2001 - 2013 Evan Teran
3  evan.teran@gmail.com
4 
5 Copyright (C) 1996 - 2000 Bernd Johannes Wuebben
6  wuebben@kde.org
7 
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2 of
11 the License, or (at your option) any later version.
12 
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
22 #ifndef KCALCDISPLAY_H_
23 #define KCALCDISPLAY_H_
24 
25 #include <QFrame>
26 #include <QVector>
27 #include "knumber.h"
28 
29 class CalcEngine;
30 class KAction;
31 class QTimer;
32 class QStyleOptionFrame;
33 
34 #define NUM_STATUS_TEXT 4
35 
36 /*
37  This class provides a pocket calculator display. The display has
38  implicitely two major modes: One is for editing and one is purely
39  for displaying.
40 
41  When one uses "setAmount", the given amount is displayed, and the
42  amount which was possibly typed in before is lost. At the same time
43  this new value can not be modified.
44 
45  On the other hand, "addNewChar" adds a new digit to the amount that
46  is being typed in. If "setAmount" was used before, the display is
47  cleared and a new input starts.
48 
49  TODO: Check overflows, number of digits and such...
50 */
51 
52 enum NumBase {
53  NB_BINARY = 2,
54  NB_OCTAL = 8,
55  NB_DECIMAL = 10,
56  NB_HEX = 16
57 };
58 
59 
60 class KCalcDisplay : public QFrame {
61  Q_OBJECT
62 
63 public:
64  explicit KCalcDisplay(QWidget *parent = 0);
65  ~KCalcDisplay();
66 
67  enum Event {
68  EventReset, // resets display
69  EventClear, // if no error reset display
70  EventError,
71  EventChangeSign
72  };
73 
74  bool sendEvent(Event event);
75  void deleteLastDigit();
76  const KNumber &getAmount() const;
77  void newCharacter(const QChar new_char);
78  bool setAmount(const KNumber &new_amount);
79  int setBase(NumBase new_base);
80  void setBeep(bool flag);
81  void setGroupDigits(bool flag);
82  void setTwosComplement(bool flag);
83  void setBinaryGrouping(int digits);
84  void setOctalGrouping(int digits);
85  void setHexadecimalGrouping(int digits);
86  void setFixedPrecision(int precision);
87  void setPrecision(int precision);
88  void setText(const QString &string);
89  QString groupDigits(const QString &displayString, int numDigits);
90  QString text() const;
91  void updateDisplay();
92  void setStatusText(int i, const QString &text);
93  virtual QSize sizeHint() const;
94 
95  void changeSettings();
96  void enterDigit(int data);
97  void updateFromCore(const CalcEngine &core,
98  bool store_result_in_history = false);
99 
100 public slots:
101  void slotCut();
102  void slotCopy();
103  void slotPaste(bool bClipboard = true);
104 
105 signals:
106  void clicked();
107  void changedText(const QString &);
108  void changedAmount(const KNumber &);
109 
110 protected:
111  void mousePressEvent(QMouseEvent *);
112  virtual void paintEvent(QPaintEvent *p);
113 
114 private:
115  bool changeSign();
116  void invertColors();
117  void initStyleOption(QStyleOptionFrame *option) const;
118 
119 private slots:
120  void slotSelectionTimedOut();
121  void slotDisplaySelected();
122  void slotHistoryBack();
123  void slotHistoryForward();
124 
125 private:
126  QString text_;
127  bool beep_;
128  bool groupdigits_;
129  bool twoscomplement_;
130  int binaryGrouping_;
131  int octalGrouping_;
132  int hexadecimalGrouping_;
133  int button_;
134  bool lit_;
135  NumBase num_base_;
136 
137  int precision_;
138  int fixed_precision_; // "-1" = no fixed_precision
139 
140  KNumber display_amount_;
141 
142  QVector<KNumber> history_list_;
143  int history_index_;
144 
145  // only used for input of new numbers
146  bool eestate_;
147  bool period_;
148  bool neg_sign_;
149  QString str_int_;
150  QString str_int_exp_;
151  QString str_status_[NUM_STATUS_TEXT];
152 
153  QTimer* selection_timer_;
154 };
155 
156 #endif
KCalcDisplay::setGroupDigits
void setGroupDigits(bool flag)
Definition: kcalcdisplay.cpp:415
KCalcDisplay::EventReset
Definition: kcalcdisplay.h:68
KCalcDisplay::setBinaryGrouping
void setBinaryGrouping(int digits)
Definition: kcalcdisplay.cpp:431
KCalcDisplay::enterDigit
void enterDigit(int data)
Definition: kcalcdisplay.cpp:128
NUM_STATUS_TEXT
#define NUM_STATUS_TEXT
Definition: kcalcdisplay.h:34
QWidget
KCalcDisplay::changeSettings
void changeSettings()
Definition: kcalcdisplay.cpp:77
KCalcDisplay::deleteLastDigit
void deleteLastDigit()
Definition: kcalcdisplay.cpp:822
KCalcDisplay::Event
Event
Definition: kcalcdisplay.h:67
KCalcDisplay::getAmount
const KNumber & getAmount() const
Definition: kcalcdisplay.cpp:455
KCalcDisplay::sendEvent
bool sendEvent(Event event)
Definition: kcalcdisplay.cpp:193
KCalcDisplay::setHexadecimalGrouping
void setHexadecimalGrouping(int digits)
Definition: kcalcdisplay.cpp:447
KCalcDisplay::slotPaste
void slotPaste(bool bClipboard=true)
Definition: kcalcdisplay.cpp:265
KCalcDisplay::setStatusText
void setStatusText(int i, const QString &text)
Definition: kcalcdisplay.cpp:625
NB_OCTAL
Definition: kcalcdisplay.h:54
NB_BINARY
Definition: kcalcdisplay.h:53
NumBase
NumBase
Definition: kcalcdisplay.h:52
KCalcDisplay::setBeep
void setBeep(bool flag)
Definition: kcalcdisplay.cpp:407
KCalcDisplay::slotCut
void slotCut()
Definition: kcalcdisplay.cpp:226
KCalcDisplay::changedText
void changedText(const QString &)
KCalcDisplay::updateDisplay
void updateDisplay()
Definition: kcalcdisplay.cpp:638
KCalcDisplay::~KCalcDisplay
~KCalcDisplay()
Definition: kcalcdisplay.cpp:70
KCalcDisplay::setTwosComplement
void setTwosComplement(bool flag)
Definition: kcalcdisplay.cpp:423
KCalcDisplay::setAmount
bool setAmount(const KNumber &new_amount)
Definition: kcalcdisplay.cpp:463
KCalcDisplay::setPrecision
void setPrecision(int precision)
Definition: kcalcdisplay.cpp:385
KCalcDisplay::sizeHint
virtual QSize sizeHint() const
Definition: kcalcdisplay.cpp:944
NB_DECIMAL
Definition: kcalcdisplay.h:55
KCalcDisplay::EventError
Definition: kcalcdisplay.h:70
NB_HEX
Definition: kcalcdisplay.h:56
KCalcDisplay::changedAmount
void changedAmount(const KNumber &)
KCalcDisplay::clicked
void clicked()
KNumber
Definition: knumber.h:31
KCalcDisplay::setFixedPrecision
void setFixedPrecision(int precision)
Definition: kcalcdisplay.cpp:394
KCalcDisplay::setOctalGrouping
void setOctalGrouping(int digits)
Definition: kcalcdisplay.cpp:439
KCalcDisplay::setText
void setText(const QString &string)
Definition: kcalcdisplay.cpp:508
KCalcDisplay::setBase
int setBase(NumBase new_base)
Definition: kcalcdisplay.cpp:594
KCalcDisplay::EventClear
Definition: kcalcdisplay.h:69
KCalcDisplay::KCalcDisplay
KCalcDisplay(QWidget *parent=0)
Definition: kcalcdisplay.cpp:44
KCalcDisplay::newCharacter
void newCharacter(const QChar new_char)
Definition: kcalcdisplay.cpp:706
KCalcDisplay::EventChangeSign
Definition: kcalcdisplay.h:71
CalcEngine
Definition: kcalc_core.h:29
KCalcDisplay
Definition: kcalcdisplay.h:60
KCalcDisplay::groupDigits
QString groupDigits(const QString &displayString, int numDigits)
Definition: kcalcdisplay.cpp:563
KCalcDisplay::slotCopy
void slotCopy()
Definition: kcalcdisplay.cpp:236
KCalcDisplay::updateFromCore
void updateFromCore(const CalcEngine &core, bool store_result_in_history=false)
Definition: kcalcdisplay.cpp:108
QFrame
KCalcDisplay::text
QString text() const
Definition: kcalcdisplay.cpp:583
KCalcDisplay::mousePressEvent
void mousePressEvent(QMouseEvent *)
Definition: kcalcdisplay.cpp:369
knumber.h
KCalcDisplay::paintEvent
virtual void paintEvent(QPaintEvent *p)
Definition: kcalcdisplay.cpp:908
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:08:05 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kcalc

Skip menu "kcalc"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • kremotecontrol
  • ktimer
  • kwallet
  • superkaramba
  • sweeper

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal