00001 #ifndef _FL_COMBO_BOX_H_
00002 #define _FL_COMBO_BOX_H_
00003
00004 #include "Fl_Group.h"
00005 #include "Fl_ListView.h"
00006
00007 enum Fl_Combo_Box_Buttons {
00008 FL_CBB_BROWSE = 1,
00009 FL_CBB_INSERT = 2,
00010 FL_CBB_EDIT = 4,
00011 FL_CBB_DELETE = 8,
00012 FL_CBB_REFRESH = 16
00013 };
00014
00015 class Fl_Combo_Box_Panel;
00016 class Fl_Popup_ListView;
00017 class Fl_Button;
00018
00019 class Fl_Combo_Box : public Fl_Group {
00020 Fl_Combo_Box_Panel *m_panel;
00021 Fl_Popup_ListView *m_popup;
00022 Fl_Button *m_buttons[5];
00023
00024 void ctor_init();
00025 protected:
00026 static void Fl_Combo_Box::cb_browse(Fl_Widget *w, void *data);
00027 static void Fl_Combo_Box::cb_button(Fl_Widget *w, void *data);
00028 public:
00029 static Fl_Named_Style* default_style;
00030
00032 Fl_Combo_Box(int x,int y,int w,int h,const char *label=0);
00033
00035 Fl_Combo_Box(const char* l = 0,int layout_size=30,Fl_Align layout_al=FL_ALIGN_TOP,int label_w=100);
00036
00037 Fl_ListView *listview() const;
00038
00040 virtual void begin() { listview()->begin(); }
00041 virtual void end() { Fl_Group::end(); }
00042
00043 void buttons(int buttons_set=FL_CBB_BROWSE);
00044
00046 virtual bool load_data(Fl_Data_Source *ds);
00047 virtual bool save_data(Fl_Data_Source *ds);
00048 void fill(Fl_Data_Source& ds,Fl_String user_data_column="");
00049
00050
00051 int value() const;
00052 void value(int) const;
00053
00054 virtual void preferred_size(int& w,int &h) const;
00055 virtual void reset() { value(-1); }
00056
00057
00058 Fl_String text(int column) const;
00059 };
00060
00061 #endif