00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef BITGTKBUFFERLIST_H
00020 #define BITGTKBUFFERLIST_H
00021
00022 #include <gtkmm.h>
00023 #include <map>
00024
00025 #include <bit/recordbuffer.h>
00026
00027 namespace bitGtk {
00028
00032 class BufferList : public Gtk::EventBox
00033 {
00034 public:
00035 BufferList();
00036
00037 ~BufferList();
00038
00039 void set_buffer(bit::RecordBuffer& buffer);
00040
00041 void enable_tooltips(bool b=true);
00042
00043 protected:
00044 bit::RecordBuffer* m_buffer;
00045 Gtk::Table* m_table;
00046 std::map< bit::FieldBase::pointer, Gtk::Label*> m_value_label;
00047 unsigned int m_value_label_left;
00048 Gtk::Tooltips m_tooltips;
00049
00050 void on_record_changed();
00051 void on_field_value_changed( bit::FieldBuffer fieldbuffer );
00052 void set_field_value( bit::FieldBase::pointer field );
00053 void load_all_field_values();
00054 void load_all_field_values( bit::FieldBase::pointer );
00055
00056 void create_table();
00057 void setup_table();
00058 unsigned int add_field_label(bit::FieldBase::pointer fb, unsigned int row=0, unsigned int depth=0);
00059 unsigned int add_field_value_label(bit::FieldBase::pointer fb, unsigned int row=0);
00060
00061 };
00062
00063 }
00064
00065 #endif