From 411acbaa4a1d217e731d3df0b189445117be3b26 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 19 Mar 2019 15:41:08 -0400 Subject: Add in progress UI API headers --- ui/theme.h | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 ui/theme.h (limited to 'ui/theme.h') diff --git a/ui/theme.h b/ui/theme.h new file mode 100644 index 00000000..8cebf40d --- /dev/null +++ b/ui/theme.h @@ -0,0 +1,119 @@ +#pragma once + +#include +#include +#include +#include "binaryninjaapi.h" +#include "uicontext.h" + +class BINARYNINJAUIAPI CustomFusionStyle: public QProxyStyle +{ +public: + CustomFusionStyle(QStyle* parent); + virtual int pixelMetric(PixelMetric metric, const QStyleOption* option, const QWidget* widget) const override; + virtual QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption* option, + const QWidget* widget) const override; + virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption* option, + const QWidget* widget) const override; +}; + +enum ThemeColor +{ + // Hex dump colors + AddressColor, + ModifiedColor, + InsertedColor, + NotPresentColor, + SelectionColor, + OutlineColor, + BackgroundHighlightDarkColor, + BackgroundHighlightLightColor, + BoldBackgroundHighlightDarkColor, + BoldBackgroundHighlightLightColor, + AlphanumericHighlightColor, + PrintableHighlightColor, + + // Graph colors + GraphBackgroundDarkColor, + GraphBackgroundLightColor, + GraphNodeDarkColor, + GraphNodeLightColor, + GraphNodeOutlineColor, + TrueBranchColor, + FalseBranchColor, + UnconditionalBranchColor, + AltTrueBranchColor, + AltFalseBranchColor, + AltUnconditionalBranchColor, + + // Disassembly colors + RegisterColor, + NumberColor, + CodeSymbolColor, + DataSymbolColor, + StackVariableColor, + ImportColor, + InstructionHighlightColor, + TokenHighlightColor, + AnnotationColor, + OpcodeColor, + LinearDisassemblyFunctionHeaderColor, + LinearDisassemblyBlockColor, + LinearDisassemblyNoteColor, + LinearDisassemblySeparatorColor, + StringColor, + TypeNameColor, + FieldNameColor, + KeywordColor, + UncertainColor, + NameSpaceColor, + NameSpaceSeparatorColor, + + // Script console colors + ScriptConsoleOutputColor, + ScriptConsoleErrorColor, + ScriptConsoleEchoColor, + + // Highlighting colors + BlueStandardHighlightColor, + GreenStandardHighlightColor, + CyanStandardHighlightColor, + RedStandardHighlightColor, + MagentaStandardHighlightColor, + YellowStandardHighlightColor, + OrangeStandardHighlightColor, + WhiteStandardHighlightColor, + BlackStandardHighlightColor, + + // MiniGraph + MiniGraphOverlayColor, + + // FeatureMap + FeatureMapBaseColor, + FeatureMapNavLineColor, + FeatureMapNavHighlightColor, + FeatureMapDataVariableColor, + FeatureMapAsciiStringColor, + FeatureMapUnicodeStringColor, + FeatureMapFunctionColor, + FeatureMapImportColor, + FeatureMapExternColor +}; + +void BINARYNINJAUIAPI initThemes(); +void BINARYNINJAUIAPI resetUserThemes(); +void BINARYNINJAUIAPI refreshUserThemes(); +std::vector BINARYNINJAUIAPI getAvailableThemes(); +QString BINARYNINJAUIAPI getActiveTheme(); +void BINARYNINJAUIAPI setActiveTheme(const QString& name, bool saveToSettings = true); + +bool BINARYNINJAUIAPI isColorBlindMode(); +void BINARYNINJAUIAPI setColorBlindMode(bool active); + +QColor BINARYNINJAUIAPI getThemeColor(ThemeColor color); +QColor BINARYNINJAUIAPI getTokenColor(QWidget* widget, BNInstructionTextTokenType token); + +QColor BINARYNINJAUIAPI avgColor(QColor a, QColor b); +QColor BINARYNINJAUIAPI mixColor(QColor a, QColor b, uint8_t mix); + +QColor BINARYNINJAUIAPI getThemeHighlightColor(BNHighlightStandardColor color); -- cgit v1.3.1