Source: hk_classes/hk_classes/hk_dsdatavisible.h
|
|
|
|
// ****************************************************************************
// copyright (c) 2000-2004 Horst Knorr
// This file is part of the hk_classes library.
// This file may be distributed and/or modified under the terms of the
// GNU Library Public License version 2 as published by the Free Software
// Foundation and appearing in the file COPYING included in the
// packaging of this file.
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// ****************************************************************************
#ifndef HK_DSDATAVISIBLE
#define HK_DSDATAVISIBLE
#include "hk_dsvisible.h"
using namespace std;
class hk_column;
class hk_form;
class hk_dsdatavisibleprivate;
/**
*
*@short base class for visible widgets with data connection
*@version $Revision: 1.35 $
*@author Horst Knorr (hk_classes@knoda.org)
*This is the base class for visible widgets that provides
* access to a specific column and its data. To use visible
* objects you have to define the datasource and the column.
*/
class hk_dsdatavisible: public hk_dsvisible
{
friend class hk_column;
public:
hk_dsdatavisible(hk_presentation* p=NULL);
virtual ~hk_dsdatavisible();
/**
*column name in the @ref datasource. If there is no column
*with this name the widget will not be enabled
*@param column the wished column
*@param registerchange: If this object will be displayed on a form you can decide whether changing the column name
*should mark the form as changed (then it will be saved when closed). Default is "true".
*/
void set_columnname(const hk_string& c,bool registerchange=true);
void set_columnname(const hk_string& c, bool registerchange, int coloccurance);
/**
*@return NULL if there is no column with the defined name.
*An object of type hk_column if it was found in the datasource
*/
hk_column* column(void);
hk_string columnname(void);
/**
* the datasource
*/
virtual void set_datasource(hk_datasource* d);
hk_datasource* datasource(void);
virtual void savedata(ostream& s );
virtual void loaddata(const hk_string& definition);
/**
*true if the default value will be used while inserting a new row
*/
bool use_defaultvalue(void);
/**
*sets the default value
*@param def the new default value
*@param registerchange if true and this widget is part of a form the new default value
*will be stored when closing the form.
*The following variables are available:
* %NOW% the actual date, time or datetime, depending on the fieldtype. Default ist datetime
* %NOWDATE% the actual date
* %NOWTIME% the actual time
* %TRUE% the driver specific true value.
* %FALSE% the driver specific false value.
*
*/
void set_defaultvalue(const hk_string& def,bool registerchange=true);
/**
* @return the default value as set with @ref set_defaultvalue
*/
hk_string raw_defaultvalue(void);
/**
*@return the default value, but variables are replaced by its values
*/
hk_string defaultvalue(void);
/**
* resets the default value. After that no default value will be used
*/
void reset_default(bool registerchange=true);
void set_numberformat(bool use_numberseparator=false, int commadigits=-1,bool registerchange=true);
void set_numberformat(bool use_numberseparator, int commadigits,bool registerchange,bool force_setting);
bool use_numberseparator(void);
/**
*@deprecated use @ref precision() instead
*/
int commadigits(void);
int precision(void);
static void set_defaultnumberformat(bool use_thousandsseparator,int precision);
static bool defaultuse_numberseparator(void);
static int defaultprecision(void);
/**
*returns the formatted value of the row 'row'
*/
virtual hk_string value_at(unsigned long row);
virtual hk_string value(void);
/**
*sets the display value. If this object has an existing column() the data will be changed
*/
virtual void set_value(const hk_string&);
unsigned int find(unsigned int from,unsigned int to,const hk_string& searchtext,bool wholephrase=false,bool casesensitive=false,bool backwards=false);
unsigned int find(const hk_string& searchtext,bool wholephrase=false,bool casesensitive=false,bool backwards=false);
protected:
virtual bool datasource_disable(void);
virtual bool datasource_enable(void);
virtual void datasource_delete(void);
virtual bool before_columns_deleted(void);
virtual void widget_specific_set_column(void);
virtual void widget_specific_numberformat(void);
virtual void columndata_has_changed(void){}
virtual void before_insert_row(void);
virtual void new_column_pointer_created(void);
hk_column* p_column;
private:
void set_column(void);
bool p_usedefault;
bool p_virginname;//used to find out whether to automatically set defaultvalues
static bool p_defaultthousandsseparator;
static int p_defaultprecision;
hk_dsdatavisibleprivate* p_designdata;
hk_dsdatavisibleprivate* p_viewdata;
}
;
#endif
Generated by: horst on horstnotebook on Tue Mar 30 19:06:43 2004, using kdoc 2.0a54. |