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(const hk_string& 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 signals:
00128 void signal_closed(QWidget*);
00129
00130
00131
00132 protected:
00133 hk_kdeformpartwidget( hk_kdeformpart* ,QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
00134 virtual void closeEvent ( QCloseEvent* e);
00135 virtual void mousePressEvent(QMouseEvent*);
00136 protected slots:
00137 void formbutton_clicked(void);
00138 void close_form(void);
00139 void designbutton_clicked(void);
00140 void fieldbutton_clicked(void);
00141 void field_created(void);
00142 void save_form(void);
00143 void saveas_form(void);
00144 void bulkfont_clicked(void);
00145 void bulkforegroundcolour_clicked(void);
00146 void bulkbackgroundcolour_clicked(void);
00147 void grid_partinfocus(hk_kdegridpart*);
00148 void grid_partoutfocus(hk_kdegridpart*);
00149 void slot_focuswidget_changed();
00150 void slot_has_changed();
00151 void clipboard_changed();
00152 private:
00153 KRadioAction* p_designaction;
00154 KRadioAction* p_viewaction;
00155 KAction* p_saveaction;
00156 KAction* p_saveasaction;
00157
00158 KRadioAction* p_pointeraction;
00159 KRadioAction* p_lineeditaction;
00160 KRadioAction* p_labelaction;
00161 KRadioAction* p_multilineeditaction;
00162 KRadioAction* p_booleanaction;
00163 KRadioAction* p_comboboxaction;
00164 KRadioAction* p_gridaction;
00165 KRadioAction* p_selectoraction;
00166 KRadioAction* p_buttonaction;
00167 KRadioAction* p_subformaction;
00168 KAction* p_filterdefinitionaction;
00169 KToggleAction* p_filterexecaction;
00170 KActionMenu* p_bulkaction;
00171 KAction* p_bulkfontaction;
00172 KAction* p_bulkforegroundcolouraction;
00173 KAction* p_bulkbackgroundcolouraction;
00174 KAction* p_deleteaction;
00175 KAction* p_copyaction;
00176 KAction* p_pasteaction;
00177 KAction* p_cutaction;
00178 KAction* p_formpropertyaction;
00179 KActionMenu* p_resizeaction;
00180 KAction* p_minwidthaction;
00181 KAction* p_maxwidthaction;
00182 KAction* p_minheightaction;
00183 KAction* p_maxheightaction;
00184 KAction* p_minsizeaction;
00185 KAction* p_maxsizeaction;
00186 KActionMenu* p_alignaction;
00187 KAction* p_alignleftaction;
00188 KAction* p_alignrightaction;
00189 KAction* p_aligntopaction;
00190 KAction* p_alignbottomaction;
00191 KAction* p_dbdesigneraction;
00192 hk_kdeformpart* p_formpart;
00193
00194 hk_kdetoolbar* toolbar;
00195 hk_kdesimpleform* p_form;
00196 hk_kderowselector* p_rowselector;
00197 QScrollView* p_scrollview;
00198 bool p_nodesignmode;
00199 };
00200 #endif