Modify registers widget to simplify configuration.

Now specify number of registers and register bits, and the widget figures out the rest.
This commit is contained in:
Jared Boone 2017-05-31 11:12:56 -07:00
parent b3ee884f16
commit 5da64ab069
2 changed files with 28 additions and 18 deletions

View file

@ -131,20 +131,30 @@ private:
struct RegistersWidgetConfig {
int registers_count;
int legend_length;
int value_length;
int registers_per_row;
int register_bits;
constexpr int legend_length() const {
return (registers_count >= 0x10) ? 2 : 1;
}
constexpr int legend_width() const {
return legend_length * 8;
return legend_length() * 8;
}
constexpr int value_length() const {
return (register_bits + 3) / 4;
}
constexpr int value_width() const {
return value_length * 8;
return value_length() * 8;
}
constexpr int registers_per_row() const {
return (value_length() >= 3) ? 4 : 8;
}
constexpr int registers_row_length() const {
return (registers_per_row * (value_length + 1)) - 1;
return (registers_per_row() * (value_length() + 1)) - 1;
}
constexpr int registers_row_width() const {
@ -156,7 +166,7 @@ struct RegistersWidgetConfig {
}
constexpr int rows() const {
return registers_count / registers_per_row;
return registers_count / registers_per_row();
}
};