You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmymoney/kmymoney2/widgets/kmymoneylineedit.h

137 lines
4.8 KiB

/***************************************************************************
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