#include <bit-gtkmm/buffertable.h>
Public Member Functions | |
BufferTable () | |
~BufferTable () | |
bit::FieldBase::pointer | record () |
void | set_record (bit::FieldBase::pointer record) |
bit::RecordBuffer & | buffer () |
void | set_buffer (bit::RecordBuffer &buffer) |
void | set_bit_width (size_t w) |
void | enable_tooltips (bool b=true) |
void | enable_highlighter (bool b=true) |
void | set_bg_color (std::string s) |
void | add_color_set (std::string normal_color, std::string highlight_color="yellow") |
void | clear_color_sets () |
Protected Member Functions | |
void | on_record_changed () |
Callback when the record changes; emits the dispatcher signal. | |
void | on_record_changed_dispatcher () |
Updates the field when the record changes from the dispatch signal. | |
void | on_field_value_changed (bit::FieldBuffer) |
void | on_field_value_changed_dispatcher () |
void | set_field_value (bit::FieldBase::pointer field) |
void | load_all_field_values () |
void | load_all_field_values (bit::FieldBase::pointer) |
void | create_table () |
void | setup_table () |
void | create_fieldboxes (bit::FieldBase::pointer fb) |
void | add_fieldbox (bit::FieldBase::pointer, unsigned left, unsigned right, unsigned top, unsigned bottom, Gdk::Color bg, Gdk::Color hl) |
bool | on_enter (GdkEventCrossing *, bit::FieldBase::pointer) |
bool | on_leave (GdkEventCrossing *, bit::FieldBase::pointer) |
Protected Attributes | |
std::map < bit::FieldBase::pointer, FieldBox > | m_fieldbox |
bit::RecordBuffer | m_buffer |
bit::FieldBase::pointer | m_record |
int | m_mode |
std::list< std::pair < Gdk::Color, Gdk::Color > > | m_colors |
Gtk::Tooltips | m_tooltips |
bool | m_highlighter_enabled |
Gdk::Color | m_bg_color |
size_t | m_display_bit_width |
Gtk::Table * | m_table |
Gtk::EventBox | m_tablebox |
Gtk::EventBox | m_tableboxouter |
Glib::Dispatcher | m_record_changed_dispatcher |
Connected to the record changed signal. | |
Glib::Dispatcher | m_field_changed_dispatcher |
Connected to the field changed signal. | |
Glib::StaticMutex | m_record_mutex |
Locked when the record is being updated. | |
Glib::StaticMutex | m_field_queue_mutex |
Locked when the field queue is accessed. | |
std::queue< bit::FieldBuffer > | m_field_queue |
Queue of fields that need to be updated. | |
Classes | |
struct | FieldBox |
bitGtk::BufferTable::BufferTable | ( | ) |
bitGtk::BufferTable::~BufferTable | ( | ) |
bit::FieldBase::pointer bitGtk::BufferTable::record | ( | ) |
References m_record.
void bitGtk::BufferTable::set_record | ( | bit::FieldBase::pointer | record | ) |
References m_buffer, m_record, and setup_table().
bit::RecordBuffer & bitGtk::BufferTable::buffer | ( | ) |
References m_buffer.
void bitGtk::BufferTable::set_buffer | ( | bit::RecordBuffer & | buffer | ) |
References load_all_field_values(), m_buffer, m_record, on_field_value_changed(), on_record_changed(), and setup_table().
void bitGtk::BufferTable::set_bit_width | ( | size_t | w | ) |
References m_display_bit_width, and setup_table().
void bitGtk::BufferTable::enable_tooltips | ( | bool | b = true |
) |
References m_tooltips, and setup_table().
void bitGtk::BufferTable::enable_highlighter | ( | bool | b = true |
) |
References m_highlighter_enabled, and setup_table().
void bitGtk::BufferTable::set_bg_color | ( | std::string | s | ) |
References m_bg_color, and setup_table().
void bitGtk::BufferTable::add_color_set | ( | std::string | normal_color, | |
std::string | highlight_color = "yellow" | |||
) |
void bitGtk::BufferTable::clear_color_sets | ( | ) |
References m_colors.
void bitGtk::BufferTable::on_record_changed | ( | ) | [protected] |
Callback when the record changes; emits the dispatcher signal.
References m_record_changed_dispatcher.
Referenced by set_buffer().
void bitGtk::BufferTable::on_record_changed_dispatcher | ( | ) | [protected] |
Updates the field when the record changes from the dispatch signal.
References load_all_field_values().
Referenced by BufferTable().
void bitGtk::BufferTable::on_field_value_changed | ( | bit::FieldBuffer | fieldbuffer | ) | [protected] |
References m_field_changed_dispatcher, m_field_queue, and m_field_queue_mutex.
Referenced by set_buffer(), and set_field_value().
void bitGtk::BufferTable::on_field_value_changed_dispatcher | ( | ) | [protected] |
void bitGtk::BufferTable::set_field_value | ( | bit::FieldBase::pointer | field | ) | [protected] |
void bitGtk::BufferTable::load_all_field_values | ( | ) | [protected] |
References m_buffer.
Referenced by load_all_field_values(), on_record_changed_dispatcher(), and set_buffer().
void bitGtk::BufferTable::load_all_field_values | ( | bit::FieldBase::pointer | field | ) | [protected] |
References load_all_field_values(), and set_field_value().
void bitGtk::BufferTable::create_table | ( | ) | [protected] |
void bitGtk::BufferTable::setup_table | ( | ) | [protected] |
References create_fieldboxes(), create_table(), m_bg_color, m_colors, m_display_bit_width, m_fieldbox, m_record, m_table, m_tablebox, and m_tableboxouter.
Referenced by enable_highlighter(), enable_tooltips(), set_bg_color(), set_bit_width(), set_buffer(), and set_record().
void bitGtk::BufferTable::create_fieldboxes | ( | bit::FieldBase::pointer | fb | ) | [protected] |
void bitGtk::BufferTable::add_fieldbox | ( | bit::FieldBase::pointer | field, | |
unsigned | left, | |||
unsigned | right, | |||
unsigned | top, | |||
unsigned | bottom, | |||
Gdk::Color | bg, | |||
Gdk::Color | hl | |||
) | [protected] |
References m_fieldbox, m_table, m_tooltips, on_enter(), and on_leave().
Referenced by create_fieldboxes().
bool bitGtk::BufferTable::on_enter | ( | GdkEventCrossing * | , | |
bit::FieldBase::pointer | field | |||
) | [protected] |
bool bitGtk::BufferTable::on_leave | ( | GdkEventCrossing * | , | |
bit::FieldBase::pointer | field | |||
) | [protected] |
std::map<bit::FieldBase::pointer, FieldBox > bitGtk::BufferTable::m_fieldbox [protected] |
Referenced by add_fieldbox(), on_enter(), on_field_value_changed_dispatcher(), on_leave(), and setup_table().
bit::RecordBuffer bitGtk::BufferTable::m_buffer [protected] |
Referenced by buffer(), load_all_field_values(), set_buffer(), set_field_value(), and set_record().
bit::FieldBase::pointer bitGtk::BufferTable::m_record [protected] |
Referenced by record(), set_buffer(), set_record(), and setup_table().
int bitGtk::BufferTable::m_mode [protected] |
Referenced by on_field_value_changed_dispatcher().
std::list<std::pair<Gdk::Color, Gdk::Color> > bitGtk::BufferTable::m_colors [protected] |
Referenced by add_color_set(), clear_color_sets(), create_fieldboxes(), and setup_table().
Gtk::Tooltips bitGtk::BufferTable::m_tooltips [protected] |
Referenced by add_fieldbox(), and enable_tooltips().
bool bitGtk::BufferTable::m_highlighter_enabled [protected] |
Referenced by enable_highlighter(), on_enter(), and on_leave().
Gdk::Color bitGtk::BufferTable::m_bg_color [protected] |
Referenced by BufferTable(), set_bg_color(), and setup_table().
size_t bitGtk::BufferTable::m_display_bit_width [protected] |
Referenced by create_fieldboxes(), set_bit_width(), and setup_table().
Gtk::Table* bitGtk::BufferTable::m_table [protected] |
Referenced by add_fieldbox(), create_table(), and setup_table().
Gtk::EventBox bitGtk::BufferTable::m_tablebox [protected] |
Referenced by BufferTable(), create_table(), and setup_table().
Gtk::EventBox bitGtk::BufferTable::m_tableboxouter [protected] |
Referenced by BufferTable(), and setup_table().
Glib::Dispatcher bitGtk::BufferTable::m_record_changed_dispatcher [protected] |
Glib::Dispatcher bitGtk::BufferTable::m_field_changed_dispatcher [protected] |
Glib::StaticMutex bitGtk::BufferTable::m_record_mutex [protected] |
Locked when the record is being updated.
Glib::StaticMutex bitGtk::BufferTable::m_field_queue_mutex [protected] |
Locked when the field queue is accessed.
Referenced by on_field_value_changed(), and on_field_value_changed_dispatcher().
std::queue<bit::FieldBuffer> bitGtk::BufferTable::m_field_queue [protected] |
Queue of fields that need to be updated.
Referenced by on_field_value_changed(), and on_field_value_changed_dispatcher().