|
|
|
/***************************************************************************
|
|
|
|
kmymoneylineedit.h - description
|
|
|
|
-------------------
|
|
|
|
begin : Wed May 9 2001
|
|
|
|
copyright : (C) 2001 by Michael Edwardes
|
|
|
|
2006 by Thomas Baumgart
|
|
|
|
email : mte@users.sourceforge.net
|
|
|
|
Javier Campos Morales <javi_c@ctv.es>
|
|
|
|
Felix Rodriguez <frodriguez@mail.wesleyan.edu>
|
|
|
|
Thomas Baumgart <ipwizard@users.sourceforge.net>
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#ifndef KMYMONEYLINEEDIT_H
|
|
|
|
#define KMYMONEYLINEEDIT_H
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// QT Includes
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// KDE Includes
|
|
|
|
|
|
|
|
#include <klineedit.h>
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Project Includes
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This class represents a special verson of a KLineEdit object that
|
|
|
|
* supports the display of a hint if the display area is empty. It also
|
|
|
|
* overrides the comma key on the numeric keypad with the currently
|
|
|
|
* selected monetaryDecimalSymbol if selected during creation of the object.
|
|
|
|
*
|
|
|
|
* @author Michael Edwardes
|
|
|
|
* @author Thomas Baumgart
|
|
|
|
*/
|
|
|
|
class kMyMoneyLineEdit : public KLineEdit
|
|
|
|
{
|
|
|
|
TQ_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* @param w pointer to parent
|
|
|
|
* @param name pointer to name of object
|
|
|
|
* @param forceMonetaryDecimalSymbol if @a true, the numeric keypad comma key will have a fixed
|
|
|
|
* value and does not follow the keyboard layout (default: @p false)
|
|
|
|
* @param alignment Controls the alignment of the text. Default is TQt::AlignLeft | TQt::AlignVCenter.
|
|
|
|
* See TQt::AlignmentFlags for other possible values.
|
|
|
|
*/
|
|
|
|
kMyMoneyLineEdit(TQWidget *w = 0, const char* name = 0, bool forceMonetaryDecimalSymbol = false, int alignment = (AlignLeft | AlignVCenter));
|
|
|
|
~kMyMoneyLineEdit();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This method is used to set the value of the widget back to
|
|
|
|
* the one passed using loadText().
|
|
|
|
*/
|
|
|
|
void resetText(void);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This method is used to turn on/off the hint display
|
|
|
|
*/
|
|
|
|
void setHint(const TQString& hint) { m_hint = hint; };
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
void loadText(const TQString& text);
|
|
|
|
|
|
|
|
signals:
|
|
|
|
/**
|
|
|
|
* This signal is emitted when the focus leaves the object and the text
|
|
|
|
* has been changed. The new text is passed as @a str.
|
|
|
|
*/
|
|
|
|
void lineChanged(const TQString& str);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void focusOutEvent(TQFocusEvent *ev);
|
|
|
|
|
|
|
|
/** reimplemented to support the hint display */
|
|
|
|
void drawContents( TQPainter *);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Overridden so that the period key on the numeric keypad always sends
|
|
|
|
* out the currently selected monetary decimal symbol instead of the
|
|
|
|
* key defined by the keymap.
|
|
|
|
*
|
|
|
|
* Example: If you have set the keymap (keyboard layout) as English, then
|
|
|
|
* the numeric keypad will send a period but if you have set the keymap to
|
|
|
|
* be German, the same key will send a comma.
|
|
|
|
*
|
|
|
|
* @param ev pointer to current TQKeyEvent
|
|
|
|
*/
|
|
|
|
void keyPressEvent(TQKeyEvent* ev);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Overridden so that the period key on the numeric keypad always sends
|
|
|
|
* out the currently selected monetary decimal symbol instead of the
|
|
|
|
* key defined by the keymap.
|
|
|
|
*
|
|
|
|
* Example: If you have set the keymap (keyboard layout) as English, then
|
|
|
|
* the numeric keypad will send a period but if you have set the keymap to
|
|
|
|
* be German, the same key will send a comma.
|
|
|
|
*
|
|
|
|
* @param ev pointer to current TQKeyEvent
|
|
|
|
*/
|
|
|
|
void keyReleaseEvent(TQKeyEvent* ev);
|
|
|
|
|
|
|
|
private:
|
|
|
|
/**
|
|
|
|
* This member keeps the initial value. It is used during
|
|
|
|
* resetText() to set the widgets text back to this initial value
|
|
|
|
* and as comparison during focusOutEvent() to emit the lineChanged
|
|
|
|
* signal if the current text is different.
|
|
|
|
*/
|
|
|
|
TQString m_text;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This member tells what to display as hint as long as the field is empty
|
|
|
|
*/
|
|
|
|
TQString m_hint;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This member keeps the status if overriding the numeric keypad comma key
|
|
|
|
* is requested or not.
|
|
|
|
*/
|
|
|
|
bool m_forceMonetaryDecimalSymbol;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|