New changed ByteItem state, with styles
This commit is contained in:
@@ -48,6 +48,14 @@ namespace Bloom::Widgets
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->changed) {
|
||||||
|
painter->drawPixmap(
|
||||||
|
boundingRect,
|
||||||
|
ByteItem::changedMemoryAsciiPixmapsByValue[value]
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this->stackMemory && hexViewerState->settings.groupStackMemory) {
|
if (this->stackMemory && hexViewerState->settings.groupStackMemory) {
|
||||||
painter->drawPixmap(
|
painter->drawPixmap(
|
||||||
boundingRect,
|
boundingRect,
|
||||||
@@ -84,6 +92,14 @@ namespace Bloom::Widgets
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->changed) {
|
||||||
|
painter->drawPixmap(
|
||||||
|
boundingRect,
|
||||||
|
ByteItem::changedMemoryPixmapsByValue[value]
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this->stackMemory && hexViewerState->settings.groupStackMemory) {
|
if (this->stackMemory && hexViewerState->settings.groupStackMemory) {
|
||||||
painter->drawPixmap(
|
painter->drawPixmap(
|
||||||
boundingRect,
|
boundingRect,
|
||||||
@@ -127,6 +143,8 @@ namespace Bloom::Widgets
|
|||||||
static constexpr auto groupedBackgroundColor = QColor(0x44, 0x44, 0x41, 255);
|
static constexpr auto groupedBackgroundColor = QColor(0x44, 0x44, 0x41, 255);
|
||||||
static constexpr auto stackMemoryBackgroundColor = QColor(0x44, 0x44, 0x41, 200);
|
static constexpr auto stackMemoryBackgroundColor = QColor(0x44, 0x44, 0x41, 200);
|
||||||
static constexpr auto stackMemoryBarColor = QColor(0x67, 0x57, 0x20, 255);
|
static constexpr auto stackMemoryBarColor = QColor(0x67, 0x57, 0x20, 255);
|
||||||
|
static constexpr auto changedMemoryBackgroundColor = QColor(0x5C, 0x49, 0x5D, 200);
|
||||||
|
static constexpr auto changedMemoryFadedBackgroundColor = QColor(0x5C, 0x49, 0x5D, 125);
|
||||||
|
|
||||||
static const auto hoveredStackMemoryBackgroundColor = QColor(
|
static const auto hoveredStackMemoryBackgroundColor = QColor(
|
||||||
stackMemoryBackgroundColor.red(),
|
stackMemoryBackgroundColor.red(),
|
||||||
@@ -140,6 +158,7 @@ namespace Bloom::Widgets
|
|||||||
static constexpr auto standardFontColor = QColor(0xAF, 0xB1, 0xB3);
|
static constexpr auto standardFontColor = QColor(0xAF, 0xB1, 0xB3);
|
||||||
static constexpr auto fadedFontColor = QColor(0xAF, 0xB1, 0xB3, 100);
|
static constexpr auto fadedFontColor = QColor(0xAF, 0xB1, 0xB3, 100);
|
||||||
static constexpr auto asciiFontColor = QColor(0xA7, 0x77, 0x26);
|
static constexpr auto asciiFontColor = QColor(0xA7, 0x77, 0x26);
|
||||||
|
static constexpr auto changedMemoryAsciiFontColor = QColor(0xB7, 0x7F, 0x21);
|
||||||
|
|
||||||
const auto byteItemRect = QRect(0, 0, ByteItem::WIDTH, ByteItem::HEIGHT);
|
const auto byteItemRect = QRect(0, 0, ByteItem::WIDTH, ByteItem::HEIGHT);
|
||||||
const auto byteItemSize = byteItemRect.size();
|
const auto byteItemSize = byteItemRect.size();
|
||||||
@@ -166,6 +185,12 @@ namespace Bloom::Widgets
|
|||||||
painter.drawRect(0, byteItemSize.height() - 3, byteItemSize.width(), 3);
|
painter.drawRect(0, byteItemSize.height() - 3, byteItemSize.width(), 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto changedMemoryTemplatePixmap = QPixmap(byteItemSize);
|
||||||
|
changedMemoryTemplatePixmap.fill(changedMemoryBackgroundColor);
|
||||||
|
|
||||||
|
auto changedMemoryFadedTemplatePixmap = QPixmap(byteItemSize);
|
||||||
|
changedMemoryFadedTemplatePixmap.fill(changedMemoryFadedBackgroundColor);
|
||||||
|
|
||||||
auto hoveredStackMemoryTemplatePixmap = QPixmap(byteItemSize);
|
auto hoveredStackMemoryTemplatePixmap = QPixmap(byteItemSize);
|
||||||
hoveredStackMemoryTemplatePixmap.fill(hoveredStackMemoryBackgroundColor);
|
hoveredStackMemoryTemplatePixmap.fill(hoveredStackMemoryBackgroundColor);
|
||||||
|
|
||||||
@@ -220,6 +245,16 @@ namespace Bloom::Widgets
|
|||||||
ByteItem::stackMemoryPixmapsByValue.emplace_back(std::move(stackMemoryPixmap));
|
ByteItem::stackMemoryPixmapsByValue.emplace_back(std::move(stackMemoryPixmap));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto changedMemoryPixmap = changedMemoryTemplatePixmap;
|
||||||
|
auto painter = QPainter(&changedMemoryPixmap);
|
||||||
|
painter.setFont(font);
|
||||||
|
painter.setPen(standardFontColor);
|
||||||
|
painter.drawText(byteItemRect, Qt::AlignCenter, hexValue);
|
||||||
|
|
||||||
|
ByteItem::changedMemoryPixmapsByValue.emplace_back(std::move(changedMemoryPixmap));
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto hoveredPrimaryPixmap = hoveredPrimaryTemplatePixmap;
|
auto hoveredPrimaryPixmap = hoveredPrimaryTemplatePixmap;
|
||||||
auto painter = QPainter(&hoveredPrimaryPixmap);
|
auto painter = QPainter(&hoveredPrimaryPixmap);
|
||||||
@@ -270,6 +305,19 @@ namespace Bloom::Widgets
|
|||||||
ByteItem::stackMemoryAsciiPixmapsByValue.emplace_back(std::move(stackMemoryAsciiPixmap));
|
ByteItem::stackMemoryAsciiPixmapsByValue.emplace_back(std::move(stackMemoryAsciiPixmap));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto changedMemoryAsciiPixmap = asciiValue.has_value()
|
||||||
|
? changedMemoryTemplatePixmap
|
||||||
|
: changedMemoryFadedTemplatePixmap;
|
||||||
|
|
||||||
|
auto painter = QPainter(&changedMemoryAsciiPixmap);
|
||||||
|
painter.setFont(font);
|
||||||
|
painter.setPen(asciiValue.has_value() ? changedMemoryAsciiFontColor : fadedFontColor);
|
||||||
|
painter.drawText(byteItemRect, Qt::AlignCenter, asciiValue.value_or(hexValue));
|
||||||
|
|
||||||
|
ByteItem::changedMemoryAsciiPixmapsByValue.emplace_back(std::move(changedMemoryAsciiPixmap));
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto hoveredPrimaryAsciiPixmap = hoveredPrimaryTemplatePixmap;
|
auto hoveredPrimaryAsciiPixmap = hoveredPrimaryTemplatePixmap;
|
||||||
auto painter = QPainter(&hoveredPrimaryAsciiPixmap);
|
auto painter = QPainter(&hoveredPrimaryAsciiPixmap);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ namespace Bloom::Widgets
|
|||||||
bool excluded = false;
|
bool excluded = false;
|
||||||
bool grouped = false;
|
bool grouped = false;
|
||||||
bool stackMemory = false;
|
bool stackMemory = false;
|
||||||
|
bool changed = false;
|
||||||
|
|
||||||
explicit ByteItem(Targets::TargetMemoryAddress address);
|
explicit ByteItem(Targets::TargetMemoryAddress address);
|
||||||
|
|
||||||
@@ -45,10 +46,12 @@ namespace Bloom::Widgets
|
|||||||
static inline std::vector<QPixmap> selectedPixmapsByValue = {};
|
static inline std::vector<QPixmap> selectedPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> groupedPixmapsByValue = {};
|
static inline std::vector<QPixmap> groupedPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> stackMemoryPixmapsByValue = {};
|
static inline std::vector<QPixmap> stackMemoryPixmapsByValue = {};
|
||||||
|
static inline std::vector<QPixmap> changedMemoryPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> standardAsciiPixmapsByValue = {};
|
static inline std::vector<QPixmap> standardAsciiPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> selectedAsciiPixmapsByValue = {};
|
static inline std::vector<QPixmap> selectedAsciiPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> groupedAsciiPixmapsByValue = {};
|
static inline std::vector<QPixmap> groupedAsciiPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> stackMemoryAsciiPixmapsByValue = {};
|
static inline std::vector<QPixmap> stackMemoryAsciiPixmapsByValue = {};
|
||||||
|
static inline std::vector<QPixmap> changedMemoryAsciiPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> hoveredPrimaryPixmapsByValue = {};
|
static inline std::vector<QPixmap> hoveredPrimaryPixmapsByValue = {};
|
||||||
static inline std::vector<QPixmap> hoveredPrimaryAsciiPixmapsByValue = {};
|
static inline std::vector<QPixmap> hoveredPrimaryAsciiPixmapsByValue = {};
|
||||||
static inline std::optional<QPixmap> missingDataPixmap = {};
|
static inline std::optional<QPixmap> missingDataPixmap = {};
|
||||||
|
|||||||
Reference in New Issue
Block a user