<HTML> <HEAD> <TITLE>Source: hk_classes/hk_classes/hk_visible.h</TITLE> <META NAME="Generator" CONTENT="KDOC "> </HEAD> <BODY bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000099" alink= "#ffffff"> <TABLE WIDTH="100%" BORDER="0"> <TR> <TD> <TABLE BORDER="0"> <TR><TD valign="top" align="left" cellspacing="10"> <h1>Source: hk_classes/hk_classes/hk_visible.h</h1> </TD> <TD valign="top" align="right" colspan="1"></TD></TR> </TABLE> <HR> <TABLE BORDER="0"> </TABLE> </TD> <TD align="right"><TABLE BORDER="0"><TR><TD><small><A HREF="index-long.html">Annotated List</A></small></TD></TR> <TR><TD><small><A HREF="header-list.html">Files</A></small></TD></TR> <TR><TD><small><A HREF="all-globals.html">Globals</A></small></TD></TR> <TR><TD><small><A HREF="hier.html">Hierarchy</A></small></TD></TR> <TR><TD><small><A HREF="index.html">Index</A></small></TD></TR> </TABLE></TD></TR></TABLE> <pre> // **************************************************************************** // copyright (c) 2000-2002 Horst Knorr <hk_classes@knoda.org> // 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_VISIBLE #define HK_VISIBLE #include "hk_definitions.h" #include "hk_class.h" #include "hk_colour.h" #include "hk_font.h" using namespace std; class hk_presentation; class hk_form; class hk_report; class hk_visiblemodeprivate; class hk_visibleprivate; /** * *@short base class for visible widgets *@version $Revision: 1.2 $ *@author Horst Knorr (hk_classes@knoda.org) * *base class for visible widgets. */ class hk_visible:public hk_class { friend class hk_presentation; friend class hk_form; friend class hk_reportdata; public: hk_visible(hk_presentation* p=NULL); virtual ~hk_visible(void); /** * see @ref set_size */ void set_x(unsigned int px, bool registerchange=true); /** * see @ref set_size */ void set_y(unsigned int py, bool registerchange=true); /** * see @ref set_size */ void set_width(unsigned int w, bool registerchange=true); /** * see @ref set_size */ void set_height(unsigned int h, bool registerchange=true); unsigned int x(void) const; unsigned int y(void) const; unsigned int width(void)const; unsigned int height(void) const; /** *sets the size and the position of the object. In forms the coordinates are in a range from 0 to 10000 (100.00%) */ void set_size(unsigned int x, unsigned int y,unsigned int w, unsigned int h, bool registerchange=true); void set_size(unsigned int x, unsigned int y,unsigned int w, unsigned int h, bool registerchange,bool force_setting); void set_size(unsigned int width, unsigned int height, bool registerchange=true); void set_position(unsigned int x, unsigned int y, bool registerchange=true); /** * Every visible object has a (static) label which will be displayed when necessary, i.e. a combobox usually needs * a label */ void set_label(const hk_string& l, bool registerchange=true); void set_label(const hk_string& l, bool registerchange,bool force_setting); hk_string label(void); /** *the identifier is a unique name within a presentation (either a form or a report) with which this object can be identified and *thus located */ bool set_identifier(const hk_string&,bool registerchange=true,enum_interaction=interactive); hk_string identifier(void) const; enum enum_visibletype {textlabel,button,rowselector,boolean,lineedit,memo,combobox,grid,form,report,reportsection,reportdata,other}; enum_visibletype type(void) {return p_visibletype;} /** *sets the font name and size to be used of some reportgenerators */ void set_font(const hk_string& font,int size,bool registerchange=true); void set_font(const hk_string& font,int size,bool registerchange,bool force_setting); void set_font(const hk_font& font,bool registerchange=false); void set_font(const hk_font& font,bool registerchange,bool force_setting); virtual hk_font font(void); /** *sets the foreground colour. This colour will be used for fonts, frames etc */ void set_foregroundcolour(const hk_colour& colour,bool registerchange=true); void set_foregroundcolour(const hk_colour& colour,bool registerchange,bool force_setting); hk_colour foregroundcolour(void); /** *sets the background colour. This colour will be used to fill the whole background */ void set_backgroundcolour(const hk_colour& colour,bool registerchange=true); void set_backgroundcolour(const hk_colour& colour,bool registerchange,bool force_setting); hk_colour backgroundcolour(void); /** * if a hk_visible object is part of a @ref hk_presentation (i.e. a form) and the size or the label * changes the presentation will be informed of this change (and will be stored when closed). * If you set n to true the presentation will not be informed */ void set_neverregisterchange(bool n); void set_neverregisterchange(bool n,bool force_setting); bool neverregisterchange(void); virtual void savedata(ostream& s ); virtual void loaddata(const hk_string& definition); /** * returns the unique identification number when this object is part of a form or a report */ long presentationnumber(void); void set_datetimeformat(const hk_string& datetime,const hk_string& date, const hk_string& time); void set_datetimeformat(const hk_string& datetime,const hk_string& date, const hk_string& time,bool force_setting); hk_string datetimeformat(void); hk_string dateformat(void); hk_string timeformat(void); void set_counts_as(unsigned long int c); virtual void set_counts_as(unsigned long int c,bool force_setting); virtual unsigned long int counts_as(void); virtual hk_string replace(const hk_string& where); hk_presentation* presentation(void); /** * only interesting with @ref loaddata is used to copy a visible object in a form or a report. *@param l if true the presentationnumber will be loaded (default) */ void set_load_presentationnumber(bool l); void set_load_presentationnumber(bool l,bool force_setting); bool load_presentationnumber(void); /** *Defines whether the value should be aligned left, right or center. */ enum alignmenttype{alignleft,alignright,aligncenter,aligndefault}; /** *sets the text alignment */ void set_alignment(alignmenttype a,bool registerchange=true); void set_alignment(alignmenttype a,bool registerchange,bool force_setting); alignmenttype alignment(void); /** *Defines how text (text are all datatypes except the number types) should be aligned. *See also @ref set_defaultnumberalignment */ static void set_defaulttextalignment(alignmenttype a); static alignmenttype defaulttextalignment(void); /** *Defines how numbers should be aligned. See also @ref set_defaulttextalignment. *Numbers are als integer and realtypes and also auto_inc. */ static void set_defaultnumberalignment(alignmenttype a); static alignmenttype defaultnumberalignment(void); /** *defines whether stand alone windows should open maximized or in defined window size */ static void set_open_maximized_windows(bool m); static bool open_maximized_windows(void); /** * if the widget is part of a presentation this widget will be moved into the background */ virtual void lower_widget(bool registerchange=true); /** * if the widget is part of a presentation this widget will be moved into the front */ virtual void raise_widget(bool registerchange=true); /** * sets the script for the on_click action */ void set_on_click_action(const hk_string&,bool registerchange=true); /** * @return the script for the on_click action */ hk_string on_click_action(void); /** * sets the script for the on_doubleclick action */ void set_on_doubleclick_action(const hk_string&,bool registerchange=true); /** * @return the script for the on_doubleclick action */ hk_string on_doubleclick_action(void); /** * sets the script for the on_open action * The on_open action will be executed when the parent form or report will be set into viewmode */ void set_on_open_action(const hk_string&,bool registerchange=true); /** * @return the script for the on_open action */ hk_string on_open_action(void); /** * sets the script for the on_close action * The on_close action will be executed when the parent form or report will be set into designmode */ void set_on_close_action(const hk_string&,bool registerchange=true); /** * @return the script for the on_close action */ hk_string on_close_action(void); protected: virtual void widget_specific_form_resizes(void); virtual void widget_specific_font_changed(void); virtual void widget_specific_label_changed(void); virtual void widget_specific_foregroundcolour_changed(const hk_colour& oldcolour); virtual void widget_specific_backgroundcolour_changed(const hk_colour& oldcolour); virtual bool widget_specific_coordinates(unsigned int px,unsigned int py,unsigned int pwidth,unsigned int pheight); virtual void widget_specific_raise_widget(void); virtual void widget_specific_lower_widget(void); virtual void presentationmode_changed(void); virtual void widget_specific_alignment(void); virtual void sizetype_changed(void); virtual void widget_specific_sizetype_changed(void); // script action called when this visible object is clicked virtual bool action_on_click(void); virtual bool action_on_doubleclick(void); virtual bool action_on_close(void); virtual bool action_on_open(void); bool allow_datachanging(bool force_setting); void has_changed(bool registerchange); hk_presentation* p_presentation; enum_visibletype p_visibletype; bool p_setcoordinates; bool p_setwidgetcoordinates; bool while_init; private: static alignmenttype p_defaulttextalign; static alignmenttype p_defaultnumberalign; static bool p_open_maximized_windows; hk_visiblemodeprivate* p_designdata; hk_visiblemodeprivate* p_viewdata; hk_visibleprivate* p_private; long int p_vupn; //visual unique presentation number }; #endif </pre> <HR> <table> <tr><td><small>Generated by: horst on horstnotebook on Wed Sep 24 10:38:50 2003, using kdoc 2.0a54.</small></td></tr> </table> </BODY> </HTML>