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

kcalc

  • sources
  • kde-4.14
  • 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:423
KCalcDisplay::EventReset
Definition: kcalcdisplay.h:68
KCalcDisplay::setBinaryGrouping
void setBinaryGrouping(int digits)
Definition: kcalcdisplay.cpp:439
QWidget
KCalcDisplay::enterDigit
void enterDigit(int data)
Definition: kcalcdisplay.cpp:136
NUM_STATUS_TEXT
#define NUM_STATUS_TEXT
Definition: kcalcdisplay.h:34
QChar
KCalcDisplay::changeSettings
void changeSettings()
Definition: kcalcdisplay.cpp:77
KCalcDisplay::deleteLastDigit
void deleteLastDigit()
Definition: kcalcdisplay.cpp:830
KCalcDisplay::Event
Event
Definition: kcalcdisplay.h:67
KCalcDisplay::getAmount
const KNumber & getAmount() const
Definition: kcalcdisplay.cpp:463
KCalcDisplay::sendEvent
bool sendEvent(Event event)
Definition: kcalcdisplay.cpp:201
QMouseEvent
KCalcDisplay::setHexadecimalGrouping
void setHexadecimalGrouping(int digits)
Definition: kcalcdisplay.cpp:455
KCalcDisplay::slotPaste
void slotPaste(bool bClipboard=true)
Definition: kcalcdisplay.cpp:273
KCalcDisplay::setStatusText
void setStatusText(int i, const QString &text)
Definition: kcalcdisplay.cpp:633
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:415
KCalcDisplay::slotCut
void slotCut()
Definition: kcalcdisplay.cpp:234
QTimer
KCalcDisplay::changedText
void changedText(const QString &)
KCalcDisplay::updateDisplay
void updateDisplay()
Definition: kcalcdisplay.cpp:646
KCalcDisplay::~KCalcDisplay
~KCalcDisplay()
Definition: kcalcdisplay.cpp:70
KCalcDisplay::setTwosComplement
void setTwosComplement(bool flag)
Definition: kcalcdisplay.cpp:431
KCalcDisplay::setAmount
bool setAmount(const KNumber &new_amount)
Definition: kcalcdisplay.cpp:471
KCalcDisplay::setPrecision
void setPrecision(int precision)
Definition: kcalcdisplay.cpp:393
KCalcDisplay::sizeHint
virtual QSize sizeHint() const
Definition: kcalcdisplay.cpp:952
NB_DECIMAL
Definition: kcalcdisplay.h:55
KCalcDisplay::EventError
Definition: kcalcdisplay.h:70
NB_HEX
Definition: kcalcdisplay.h:56
QString
KCalcDisplay::changedAmount
void changedAmount(const KNumber &)
KCalcDisplay::clicked
void clicked()
KNumber
Definition: knumber.h:30
QSize
KCalcDisplay::setFixedPrecision
void setFixedPrecision(int precision)
Definition: kcalcdisplay.cpp:402
QFrame
KCalcDisplay::setOctalGrouping
void setOctalGrouping(int digits)
Definition: kcalcdisplay.cpp:447
KCalcDisplay::setText
void setText(const QString &string)
Definition: kcalcdisplay.cpp:516
QVector< KNumber >
KCalcDisplay::setBase
int setBase(NumBase new_base)
Definition: kcalcdisplay.cpp:602
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:714
KCalcDisplay::EventChangeSign
Definition: kcalcdisplay.h:71
QPaintEvent
CalcEngine
Definition: kcalc_core.h:29
KCalcDisplay
Definition: kcalcdisplay.h:60
KCalcDisplay::groupDigits
QString groupDigits(const QString &displayString, int numDigits)
Definition: kcalcdisplay.cpp:571
QObject::parent
QObject * parent() const
KCalcDisplay::slotCopy
void slotCopy()
Definition: kcalcdisplay.cpp:244
KCalcDisplay::updateFromCore
void updateFromCore(const CalcEngine &core, bool store_result_in_history=false)
Definition: kcalcdisplay.cpp:108
QStyleOptionFrame
QFrame::event
virtual bool event(QEvent *e)
KCalcDisplay::text
QString text() const
Definition: kcalcdisplay.cpp:591
KCalcDisplay::mousePressEvent
void mousePressEvent(QMouseEvent *)
Definition: kcalcdisplay.cpp:377
knumber.h
KCalcDisplay::paintEvent
virtual void paintEvent(QPaintEvent *p)
Definition: kcalcdisplay.cpp:916
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:42:28 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
  • ktimer
  • kwallet
  • 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