/***************************************************************************
    copyright     : (C) 1999 by Edwin Glaser
    email         : edwin@pannenleiter.de
    version       : $Id: dblineedit.h,v 1.1.1.1 2000/02/07 21:41:59 ege Exp $
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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 DBLINEEDIT_H
#define DBLINEEDIT_H

#include <qwidget.h>
#include <qmultilinedit.h>

#include "dbdatasource.h"
#include "dbpainter.h"

/**
  * A data-aware lineedit
  * 
  *@author Edwin Glaser
  */
  
class DBLineEdit : public QMultiLineEdit, public DBPainter
{
   Q_OBJECT

protected:
   DBDataSource *data;
   int column;
   bool userEnabled;
   bool dbSlot;
   bool textSlot;
   bool sFocus;
   QString orgString;

   enum mark {xx};

public: 
	DBLineEdit(DBDataSource *d, int col, QWidget *parent=0, const char *name=0);
	DBLineEdit(DBDataSource *d, int col, bool showFocus, QWidget *parent=0, const char *name=0);
	virtual ~DBLineEdit();
	virtual void paint (QPainter *p, int width, int height, int align = 0, const char *format = 0);

	DBDataSource *getDataSource() { return data; };
	int getColumn() { return column; };

protected:
	DBLineEdit(QWidget *parent, const char *name, mark);
	virtual void focusInEvent ( QFocusEvent * );  
	virtual void focusOutEvent ( QFocusEvent * );
	virtual void keyPressEvent ( QKeyEvent *);
	virtual void setTextAt (const char *text, int pos=0);
	void init(DBDataSource *d, int col, bool single, bool showFocus);
	virtual void beep();
	
protected slots:

	virtual void myTextChanged();
	virtual void checkEnabled();
	virtual void stateChanged();
	virtual void dbTextChanged();
	virtual void dbTextChanged(int column);

public slots:
  virtual void setEnabled ( bool );
};

class DBLineEditFactory : public DBWidgetFactory
{
protected:
  static DBLineEditFactory *instance;
	DBLineEditFactory() {};
	
public:
	static DBWidgetFactory *getFactory();
	virtual QWidget *makeEditor(DBDataSource *d, int col, QWidget *parent);
	virtual DBPainter *makePainter (QWidget *editor);
};


#endif





































Documentation generated by eg@wonko on Sam Feb 19 00:09:53 MET 2000