diff options
| author | Rusty Wagner <rusty@vector35.com> | 2019-03-19 15:41:08 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2019-03-20 13:00:17 -0400 |
| commit | 411acbaa4a1d217e731d3df0b189445117be3b26 (patch) | |
| tree | 49b5c5290058ffb98dd23ec9a7c1a49921254d15 /ui/theme.h | |
| parent | ca1bc587c22928bbd7198813064c9615c3c12771 (diff) | |
Add in progress UI API headers
Diffstat (limited to 'ui/theme.h')
| -rw-r--r-- | ui/theme.h | 119 |
1 files changed, 119 insertions, 0 deletions
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 <QtGui/QPalette> +#include <QtWidgets/QProxyStyle> +#include <vector> +#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<QString> 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); |
