00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef HK_KDEFORMPARTWIDGET_H
00013 #define HK_KDEFORMPARTWIDGET_H
00014 #include <hk_form.h>
00015 #include <qvariant.h>
00016 #include <qwidget.h>
00017 #include <hk_presentation.h>
00018
00019 #include <hk_class.h>
00020 #include <kdockwidget.h>
00021 #include <kaction.h>
00022
00023 class QVBoxLayout;
00024 class QHBoxLayout;
00025 class QGridLayout;
00026 class QLabel;
00027 class QScrollView;
00028 class hk_kdesimpleform;
00029 class QToolButton;
00030 class QButtonGroup;
00031 class hk_kderowselector;
00032 class hk_kdetoolbar;
00033 class hk_kdeproperty;
00034 class hk_kdegridpart;
00035 class hk_kdeformpart;
00036
00048 class hk_kdeformpartwidget : public KDockMainWindow,public hk_class
00049 {
00050 Q_OBJECT
00051 friend class hk_kdesimpleform;
00052 friend class hk_kdeformpart;
00053 public:
00054 virtual ~hk_kdeformpartwidget();
00055
00056 hk_presentation::enum_mode mode(void);
00060 void set_mode(hk_presentation::enum_mode s);
00061 void set_viewmode(void);
00062 void set_designmode(void);
00066 hk_dsgrid* new_grid(void);
00070 hk_dslineedit* new_lineedit(void);
00074 hk_dsboolean* new_bool(void);
00078 hk_button* new_button(void);
00082 hk_dsrowselector* new_rowselector(void);
00086 hk_dsmemo* new_memo(void);
00087
00088 hk_subform* new_subform(void);
00092 void set_formsize(unsigned int width, unsigned int height);
00096 void set_database(hk_database* db);
00097 hk_database* database(void);
00098 list<hk_datasource*>* datasources(void);
00099 long new_datasource(const hk_string& name,datasourcetype dt=dt_table);
00100 hk_datasource* get_datasource(long nr);
00104 hk_kdesimpleform* simpleform(void);
00108 bool set_presentationdatasource(long n,bool r=true);
00109 long presentationdatasource(void);
00110 void loaddata(xmlNodePtr definition);
00111 void savedata(ofstream& s);
00112 void load_form(const hk_string& n);
00113 hk_kdeformpart* formpart(void) const{return p_formpart;}
00119 void set_autoclose(bool c);
00123 void set_nodesignmode(bool n);
00124 hk_kdeproperty* propertyeditor(void);
00125 void save_form_when_changed(void);
00126 void set_caption(void);
00127 virtual void show_widget(void);
00128 virtual void hide_widget(void);
00129 virtual bool close_widget(void);
00130 void set_caller_form(const hk_string&);
00131 hk_string caller_form(void) const;
00132
00133 signals:
00134 void signal_closed(QWidget*);
00135 void signal_raise_form(const hk_string&);
00136
00137
00138
00139 protected:
00140 hk_kdeformpartwidget( hk_kdeformpart* ,QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
00141 virtual void closeEvent ( QCloseEvent* e);
00142 virtual void mousePressEvent(QMouseEvent*);
00143 protected slots:
00144 void formbutton_clicked(void);
00145 void close_form(void);
00146 void designbutton_clicked(void);
00147 void fieldbutton_clicked(void);
00148 void field_created(void);
00149 void save_form(void);
00150 void saveas_form(void);
00151 void bulkfont_clicked(void);
00152 void bulkforegroundcolour_clicked(void);
00153 void bulkbackgroundcolour_clicked(void);
00154 void grid_partinfocus(hk_kdegridpart*);
00155 void grid_partoutfocus(hk_kdegridpart*);
00156 void slot_focuswidget_changed();
00157 void slot_has_changed();
00158 void clipboard_changed();
00159 void taborder_clicked();
00160 void withlabelbutton_clicked();
00161 void show_gridcolumndialog();
00162 void filterdefinebutton_clicked();
00163 private:
00164 KRadioAction* p_designaction;
00165 KRadioAction* p_viewaction;
00166 KAction* p_saveaction;
00167 KAction* p_saveasaction;
00168
00169 KRadioAction* p_pointeraction;
00170 KRadioAction* p_lineeditaction;
00171 KRadioAction* p_labelaction;
00172 KRadioAction* p_multilineeditaction;
00173 KRadioAction* p_booleanaction;
00174 KRadioAction* p_comboboxaction;
00175 KRadioAction* p_gridaction;
00176 KRadioAction* p_selectoraction;
00177 KRadioAction* p_buttonaction;
00178 KRadioAction* p_subformaction;
00179 KRadioAction* p_imageaction;
00180 KRadioAction* p_tabwidgetaction;
00181 KRadioAction* p_dateaction;
00182 KToggleAction* p_filterdefinitionaction;
00183 KToggleAction* p_filterexecaction;
00184 KToggleAction* p_withlabelaction;
00185 KActionMenu* p_bulkaction;
00186 KAction* p_bulkfontaction;
00187 KAction* p_bulkforegroundcolouraction;
00188 KAction* p_bulkbackgroundcolouraction;
00189 KAction* p_deleteaction;
00190 KAction* p_copyaction;
00191 KAction* p_pasteaction;
00192 KAction* p_cutaction;
00193 KAction* p_formpropertyaction;
00194 KActionMenu* p_resizeaction;
00195 KAction* p_minwidthaction;
00196 KAction* p_maxwidthaction;
00197 KAction* p_minheightaction;
00198 KAction* p_maxheightaction;
00199 KAction* p_minsizeaction;
00200 KAction* p_maxsizeaction;
00201 KActionMenu* p_alignaction;
00202 KAction* p_alignleftaction;
00203 KAction* p_alignrightaction;
00204 KAction* p_aligntopaction;
00205 KAction* p_alignbottomaction;
00206 KAction* p_dbdesigneraction;
00207 KAction* p_taborderaction;
00208 KAction* p_definegridcolumnaction;
00209 hk_kdeformpart* p_formpart;
00210 hk_string p_callerform;
00211
00212 hk_kdetoolbar* toolbar;
00213 hk_kdesimpleform* p_form;
00214 hk_kderowselector* p_rowselector;
00215 QScrollView* p_scrollview;
00216 bool p_nodesignmode;
00217 bool p_dontclose;
00218 };
00219 #endif