Databaseconnectionclasses  0.5.3
hk_form.h
1 // ****************************************************************************
2 // copyright (c) 2000-2005 Horst Knorr <hk_classes@knoda.org>
3 // This file is part of the hk_classes library.
4 // This file may be distributed and/or modified under the terms of the
5 // GNU Library Public License version 2 as published by the Free Software
6 // Foundation and appearing in the file COPYING included in the
7 // packaging of this file.
8 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
9 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
10 // ****************************************************************************
11 #ifndef HK_FORM_H
12 #define HK_FORM_H
13 #include "hk_presentation.h"
14 #include <list>
15 using namespace std;
16 
17 class hk_dslineedit;
18 class hk_dsgrid;
19 class hk_dsboolean;
20 class hk_dsrowselector;
21 class hk_dscombobox;
22 class hk_dsmemo;
23 class hk_button;
24 class hk_label;
25 class hk_dsimage;
26 class hk_dsdate;
27 class hk_tabvisible;
28 class hk_formprivate;
29 class hk_subform;
30 class hk_formmodeprivate;
44 {
45  friend class hk_dsvisible;
46  friend class hk_visible;
47  friend class hk_subform;
48 
49  public:
50 
51  hk_form(void);
52  virtual ~hk_form(void);
58  hk_dsgrid* new_grid(void);
64  hk_dslineedit* new_lineedit(void);
70  hk_dsboolean* new_bool(void);
76  hk_dscombobox* new_combobox(void);
82  hk_button* new_button(void);
88  hk_dsrowselector* new_rowselector(void);
94  hk_dsmemo* new_memo(void);
100  hk_label* new_label(void);
101 
102  hk_subform* new_subform(void);
103  hk_dsdate* new_date(void);
104  hk_dsimage* new_image(void);
105  hk_tabvisible* new_tabvisible(void);
106 
113  bool save_form(const hk_string& name="",bool ask=true);
119  bool load_form(const hk_string& name="");
120  virtual void savedata(ostream& s);
121  virtual void loaddata(xmlNodePtr definition);
122 
128  virtual void set_designsize(unsigned int width, unsigned int height,bool registerchange=true);
129  hk_visible* get_visible(long nr);
130  hk_visible* get_visible(const hk_string& identifier);
131  virtual void bulk_operation(enum_bulkoperation bulkoperation);
132  virtual bool set_mode(enum_mode s);
136  hk_form* masterform(void) const;
140  void clear_visiblelist(void);
141  void set_taborder(list<int> t,bool registerchange=true, bool forcesetting=true);
146  list<int> taborder() const;
147  hk_visible* taborder_previous(hk_visible*);
148  hk_visible* taborder_next(hk_visible*);
149  hk_visible* first_tabobject();
150  hk_visible* last_tabobject();
154 virtual void goto_taborder_next(){}
158 virtual void goto_taborder_previous(){}
162 virtual void goto_taborder_first(){}
166 virtual void goto_taborder_last(){}
170 virtual void set_focus(hk_visible*){}
171 
172  list<hk_visible*>* visibles(void);
173  bool is_subform() const;
174 virtual bool is_subpresentation(void);
175 virtual bool show_asdialog(hk_form* parentform=NULL);
176 
177 virtual int screen_width();
178 virtual int screen_height();
179 bool while_load_form(void) const;
180 virtual bool while_loading(void);
181 
182 enum enum_include {include_data,no_data};
183 hk_string form2html(enum_include i=no_data);
184 
185  protected:
186  bool set_formbasedfilter();
187  void set_masterform(hk_form*);
188  virtual hk_dsgrid* widget_specific_new_grid(void){return NULL;}
189  virtual hk_dsrowselector* widget_specific_new_rowselector(void){return NULL;}
190  virtual hk_dslineedit* widget_specific_new_lineedit(void){return NULL;}
191  virtual hk_dsboolean* widget_specific_new_bool(void){return NULL;}
192  virtual hk_button* widget_specific_new_button(void){return NULL;}
193  virtual hk_dscombobox* widget_specific_new_combobox(void){return NULL;}
194  virtual hk_dsmemo* widget_specific_new_memo(void){return NULL;}
195  virtual hk_label* widget_specific_new_label(void){return NULL;}
196  virtual hk_subform* widget_specific_new_subform(void){return NULL;}
197  virtual hk_dsdate* widget_specific_new_date(void){return NULL;}
198  virtual hk_dsimage* widget_specific_new_image(void){return NULL;}
199  virtual hk_tabvisible* widget_specific_new_tabvisible(void){return NULL;}
200  virtual void widget_specific_fieldresize(hk_visible* v);
201  virtual void widget_specific_after_loadform(void){}
202  void remove_visible(hk_visible* v);
203  hk_visible* new_object(const hk_string& name);
204  void raise_widget(hk_visible*);
205  void lower_widget(hk_visible*);
206  virtual void sizetype_changed(void);
207  void set_subformobject(hk_subform*);
208  hk_subform* subformobject() const;
209  private:
210  void add_visible(hk_visible* v);
211 
212  hk_formprivate* p_private;
213  hk_formmodeprivate* p_designdata;
214  hk_formmodeprivate* p_viewdata;
215 
216 };
217 #endif
base class for widgets which show multi column data in a grid.
Definition: hk_dsgrid.h:26
virtual void loaddata(xmlNodePtr definition)
Definition: hk_subform.cpp:205
base class for a button in a form
Definition: hk_button.h:25
base class for labels in forms
Definition: hk_label.h:25
base class for visible widgets without column data connection
Definition: hk_dsvisible.h:31
virtual void goto_taborder_last()
Definition: hk_form.h:166
virtual void goto_taborder_previous()
Definition: hk_form.h:158
base class for forms
Definition: hk_form.h:43
base class for lineedit fields
Definition: hk_dslineedit.h:24
base class for row selectors
Definition: hk_dsrowselector.h:24
virtual void set_focus(hk_visible *)
Definition: hk_form.h:170
virtual void goto_taborder_next()
Definition: hk_form.h:154
Definition: hk_dsimage.h:20
base class for boolean fields.
Definition: hk_dsboolean.h:25
base class for memofields
Definition: hk_dsmemo.h:24
Definition: hk_form.cpp:38
base class for visible widgets
Definition: hk_visible.h:35
virtual void lower_widget(bool registerchange=true)
Definition: hk_visible.cpp:1056
base class for multidatasource based classes like forms and reports
Definition: hk_presentation.h:40
virtual void goto_taborder_first()
Definition: hk_form.h:162
virtual void raise_widget(bool registerchange=true)
Definition: hk_visible.cpp:1064
Definition: hk_form.cpp:56
base class for combobox fields
Definition: hk_dscombobox.h:32
represents a subform in a form
Definition: hk_subform.h:28
Definition: hk_tabvisible.h:35
Definition: hk_dsdate.h:16