--- gigedit/trunk/src/gigedit/dimensionmanager.h 2008/02/10 08:50:35 1677 +++ gigedit/trunk/src/gigedit/dimensionmanager.h 2014/05/19 18:06:57 2562 @@ -27,8 +27,47 @@ #include #include #include +#include #include +#include + +class DimTypeCellRenderer : public Gtk::CellRendererText { +public: + Glib::PropertyProxy propertyDimType() { + return m_propertyDimType.get_proxy(); + } + + Glib::PropertyProxy propertyUsageCount() { + return m_propertyUsageCount.get_proxy(); + } + + Glib::PropertyProxy propertyTotalRegions() { + return m_propertyTotalRegions.get_proxy(); + } + + DimTypeCellRenderer(); +protected: + void typeChanged(); + void statsChanged(); +private: + Glib::Property m_propertyDimType; + Glib::Property m_propertyUsageCount; + Glib::Property m_propertyTotalRegions; +}; + +class IntSetCellRenderer : public Gtk::CellRendererText { +public: + Glib::PropertyProxy > propertyValue() { + return m_propertyValue.get_proxy(); + } + + IntSetCellRenderer(); +protected: + void valueChanged(); +private: + Glib::Property > m_propertyValue; +}; class DimensionManager : public Gtk::Window { public: @@ -46,22 +85,28 @@ Gtk::TreeView treeView; Gtk::Button addButton; Gtk::Button removeButton; + Gtk::CheckButton allRegionsCheckBox; + + DimTypeCellRenderer m_cellRendererDimType; + IntSetCellRenderer m_cellRendererIntSet; class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { - add(m_dim_type); + add(m_type); add(m_bits); add(m_zones); add(m_description); - add(m_definition); + add(m_usageCount); + add(m_totalRegions); } - Gtk::TreeModelColumn m_dim_type; - Gtk::TreeModelColumn m_bits; - Gtk::TreeModelColumn m_zones; + Gtk::TreeModelColumn m_type; + Gtk::TreeModelColumn > m_bits; + Gtk::TreeModelColumn > m_zones; Gtk::TreeModelColumn m_description; - Gtk::TreeModelColumn m_definition; + Gtk::TreeModelColumn m_usageCount; + Gtk::TreeModelColumn m_totalRegions; } tableModel; class ComboModelColumns : public Gtk::TreeModel::ColumnRecord { @@ -77,9 +122,11 @@ Glib::RefPtr refTableModel; + void onAllRegionsCheckBoxToggled(); void refreshManager(); void addDimension(); void removeDimension(); + bool allRegions() const; }; #endif // GIGEDIT_DIMENSIONMANAGER_H