00001 // **************************************************************************** 00002 // copyright (c) 2000-2005 Horst Knorr <hk_classes@knoda.org> 00003 // This file is part of the hk_kdeclasses library. 00004 // This file may be distributed and/or modified under the terms of the 00005 // GNU Library Public License version 2 as published by the Free Software 00006 // Foundation and appearing in the file LGPL included in the 00007 // packaging of this file. 00008 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00009 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00010 // **************************************************************************** 00011 00012 #ifndef HK_KDECOMBOBOX 00013 #define HK_KDECOMBOBOX 00014 #include <hk_dscombobox.h> 00015 #include <qcombobox.h> 00029 class hk_kdecomboboxprivate; 00030 00031 class hk_kdecombobox :public QComboBox,public hk_dscombobox 00032 { 00033 Q_OBJECT 00034 friend class qlineedit; 00035 public: 00036 hk_kdecombobox(QWidget* wid,hk_form* form=NULL); 00037 virtual ~hk_kdecombobox(void); 00038 virtual void set_value(const hk_string&); 00039 virtual hk_string value(void); 00040 virtual void show_widget(void); 00041 virtual void hide_widget(void); 00042 virtual bool close_widget(void); 00043 00044 protected: 00045 virtual void focusInEvent ( QFocusEvent * ); 00046 virtual void focusOutEvent ( QFocusEvent * ); 00047 virtual void widget_specific_tooltip_changed(void); 00048 virtual bool datasource_enable(void); 00049 virtual bool datasource_disable(void); 00050 virtual void widget_specific_enable_disable(); 00051 virtual bool widget_specific_row_change(void); 00052 virtual bool widget_specific_coordinates(unsigned int px,unsigned int py,unsigned int pwidth,unsigned int pheight); 00053 virtual void widget_specific_insert_mode(void); 00054 virtual void widget_specific_row_deleted(void); 00055 virtual void widget_specific_row_added(void); 00056 virtual void widget_specific_enabled_changed(void); 00057 virtual void widget_specific_mode_change(void); 00058 virtual void after_store_changed_data(void); 00059 virtual void widget_specific_font_changed(void); 00060 virtual bool presentationmode_changed(void); 00061 00062 virtual void resizeEvent (QResizeEvent *); 00063 virtual void keyPressEvent(QKeyEvent *); 00064 virtual void mousePressEvent(QMouseEvent*); 00065 virtual void moveEvent ( QMoveEvent * ) ; 00066 virtual void load_listitems(void); 00067 virtual void widget_specific_backgroundcolour_changed(const hk_colour&); 00068 virtual void widget_specific_foregroundcolour_changed(const hk_colour&); 00069 virtual void mouseDoubleClickEvent(QMouseEvent*); 00070 00071 protected slots: 00072 void slot_data_changed(int); 00073 void slot_text_changed(void); 00074 00075 private: 00076 void load_listitems_from_column(); 00077 void load_listitems_from_textlist(); 00078 void selector_row_changed(int index); 00079 void reposition(void); 00080 bool p_widget_specific_row_change; 00081 bool p_whiledatachange; 00082 void set_currentlistitem(void); 00083 void set_selecteditemdata(int); 00084 int find_edittextitem(void); 00085 hk_kdecomboboxprivate* p_private; 00086 00087 }; 00088 #endif