summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkat <katherine@vector35.com>2022-10-23 05:27:30 -0400
committerPeter LaFosse <peter@vector35.com>2022-11-10 16:19:13 -0500
commit2e74d0a19579c8f5dee38c5b8a7660549746146b (patch)
treedb478b838d1d02bfce2d0cdac19150e1f42fccfe
parentef840b45be92f50fc9e708977efd6b2dcc259ba0 (diff)
Several documentation improvements and fixes
- Reduce file count, add minifier script - Group UI and group Core C - Add more items to groups - Add Tranform docs
-rw-r--r--.doxygen.h75
-rw-r--r--api-docs/cppdocs/Doxyfile32
-rw-r--r--api-docs/cppdocs/README.md6
-rw-r--r--api-docs/cppdocs/build_min_docs.py162
-rw-r--r--binaryninjaapi.h134
-rw-r--r--binaryninjacore.h8
-rw-r--r--ui/action.h42
-rw-r--r--ui/addressdialog.h14
-rw-r--r--ui/addressindicator.h25
-rw-r--r--ui/assembledialog.h10
-rw-r--r--ui/clickablelabel.h21
-rw-r--r--ui/commandpalette.h30
-rw-r--r--ui/commands.h10
-rw-r--r--ui/commentdialog.h10
-rw-r--r--ui/compiledialog.h14
-rw-r--r--ui/compileoptions.h4
-rw-r--r--ui/createstructdialog.h4
-rw-r--r--ui/createtypedialog.h4
-rw-r--r--ui/datatypelist.h4
-rw-r--r--ui/dialogtextedit.h4
-rw-r--r--ui/disassemblyview.h27
-rw-r--r--ui/dockhandler.h18
-rw-r--r--ui/expandablegroup.h4
-rw-r--r--ui/featuremap.h10
-rw-r--r--ui/filecontext.h10
-rw-r--r--ui/filter.h18
-rw-r--r--ui/flowgraphwidget.h14
-rw-r--r--ui/fontsettings.h10
-rw-r--r--ui/forminputdialog.h4
-rw-r--r--ui/getsymbolslistthread.h5
-rw-r--r--ui/globalarea.h22
-rw-r--r--ui/hexeditor.h14
-rw-r--r--ui/ilchooser.h14
-rw-r--r--ui/instructionedit.h4
-rw-r--r--ui/linearview.h26
-rw-r--r--ui/logview.h33
-rw-r--r--ui/memorymap.h30
-rw-r--r--ui/menus.h13
-rw-r--r--ui/mergevariablesdialog.h22
-rw-r--r--ui/minigraph.h13
-rw-r--r--ui/options.h10
-rw-r--r--ui/pane.h46
-rw-r--r--ui/platformcursor.h9
-rw-r--r--ui/platformdialog.h10
-rw-r--r--ui/possiblevaluesetdialog.h5
-rw-r--r--ui/preview.h15
-rw-r--r--ui/progressindicator.h1
-rw-r--r--ui/progresstask.h17
-rw-r--r--ui/qfileaccessor.h9
-rw-r--r--ui/render.h24
-rw-r--r--ui/reportcollectionwidget.h9
-rw-r--r--ui/reportwidget.h9
-rw-r--r--ui/scriptingconsole.h21
-rw-r--r--ui/searchresult.h37
-rw-r--r--ui/settingsview.h38
-rw-r--r--ui/sidebar.h36
-rw-r--r--ui/stackview.h35
-rw-r--r--ui/statusbarwidget.h14
-rw-r--r--ui/stringsview.h32
-rw-r--r--ui/symbollist.h17
-rw-r--r--ui/symbolsview.h14
-rw-r--r--ui/syncgroup.h14
-rw-r--r--ui/tabwidget.h46
-rw-r--r--ui/taglist.h24
-rw-r--r--ui/tagtypelist.h24
-rw-r--r--ui/textbrowser.h22
-rw-r--r--ui/textdialog.h10
-rw-r--r--ui/theme.h10
-rw-r--r--ui/tokenizedtextview.h14
-rw-r--r--ui/transformparam.h10
-rw-r--r--ui/typedialog.h20
-rw-r--r--ui/typeview.h46
-rw-r--r--ui/uicomment.h14
-rw-r--r--ui/uicontext.h24
-rw-r--r--ui/uitypes.h10
-rw-r--r--ui/util.h10
-rw-r--r--ui/variablelist.h36
-rw-r--r--ui/viewframe.h33
-rw-r--r--ui/viewlist.h10
-rw-r--r--ui/viewtype.h13
-rw-r--r--ui/xreflist.h82
81 files changed, 1763 insertions, 41 deletions
diff --git a/.doxygen.h b/.doxygen.h
index 41c95928..7321d4bf 100644
--- a/.doxygen.h
+++ b/.doxygen.h
@@ -19,120 +19,191 @@
*/
+
+/*! The Core set of pure C definitions that the C++ API (and rust/python APIs) wrap.
+
+ The **vast** majority of the time, you should use the clases and utilities provided by the C++, Python, or
+ Rust APIs instead.
+
+ \defgroup core Core
+*/
+
+/*! Classes available to C++ Core Plugins.
+
+ \defgroup coreapi C++ Core API
+*/
+
+/*! Classes available to C++ UI Plugins.
+
+ \defgroup uiapi C++ UI API
+*/
+
/*!
Classes related to interacting with, hooking, and implementing Architectures
\defgroup architectures Architectures
+ \ingroup coreapi
*/
-/*
+/*!
Documentation for interacting with basic blocks
\defgroup basicblocks Basic Blocks
+ \ingroup coreapi
*/
/*!
Classes related to interacting with and implementing custom BinaryViews
\defgroup binaryview BinaryView
+ \ingroup coreapi
*/
/*!
-
\defgroup callingconvention CallingConvention
+ \ingroup coreapi
+*/
+/*!
+ \defgroup confidence Confidence
+ \ingroup coreapi
*/
/*!
\defgroup database Database
+ \ingroup coreapi
*/
/*!
\defgroup databuffer DataBuffer
+ \ingroup coreapi
*/
/*!
\defgroup datarenderer DataRenderer
+ \ingroup coreapi
*/
/*!
\defgroup debuginfo DebugInfo
+ \ingroup coreapi
*/
/*!
\defgroup demangle Demangle
+ \ingroup coreapi
*/
/*!
\defgroup downloadprovider DownloadProvider
+ \ingroup coreapi
*/
/*!
\defgroup fileaccessor FileAccessor
+ \ingroup coreapi
*/
/*!
\defgroup filemetadata FileMetadata
+ \ingroup coreapi
*/
/*!
\defgroup flowgraph Flowgraph
+ \ingroup coreapi
*/
/*!
\defgroup function Function
+ \ingroup coreapi
*/
/*!
\defgroup functionrecognizer FunctionRecognizer
+ \ingroup coreapi
*/
/*!
\defgroup highlevelil High Level IL
+ \ingroup coreapi
*/
/*!
\defgroup interaction Interaction
+ \ingroup coreapi
*/
/*!
\defgroup lineardisassembly LinearDisassembly
+ \ingroup coreapi
*/
/*!
\defgroup logging Logging
+ \ingroup coreapi
*/
/*!
\defgroup lowlevelil Low Level IL
+ \ingroup coreapi
*/
/*!
\defgroup mainthread MainThread
+ \ingroup coreapi
*/
/*!
\defgroup mediumlevelil Medium Level IL
+ \ingroup coreapi
*/
/*!
\defgroup metadata Metadata
+ \ingroup coreapi
*/
/*!
\defgroup platform Platform
+ \ingroup coreapi
*/
/*!
\defgroup plugin Plugin
+ \ingroup coreapi
*/
/*!
\defgroup pluginmanager Plugin Manager
+ \ingroup coreapi
+*/
+/*!
+ \defgroup namelist NameList
+ \ingroup coreapi
+*/
+/*!
+ \defgroup refcount RefCount
+ \ingroup coreapi
*/
/*!
\defgroup scriptingprovider Scripting Provider
+ \ingroup coreapi
*/
/*!
\defgroup secretsprovider Secrets Provider
+ \ingroup coreapi
*/
/*!
\defgroup settings Settings
+ \ingroup coreapi
*/
/*!
\defgroup tempfile TempFile
+ \ingroup coreapi
*/
/*!
\defgroup transform Transform
+ \ingroup coreapi
*/
/*!
\defgroup types Types
+ \ingroup coreapi
*/
/*!
\defgroup typeparser TypeParser
+ \ingroup coreapi
*/
/*!
\defgroup typeprinter TypePrinter
+ \ingroup coreapi
*/
/*!
\defgroup update Update
+ \ingroup coreapi
+*/
+/*!
+ \defgroup undo Undo
+ \ingroup coreapi
*/
/*!
\defgroup websocketprovider Websocket Provider
+ \ingroup coreapi
*/
/*!
\defgroup workflow Workflows
+ \ingroup coreapi
*/
#endif \ No newline at end of file
diff --git a/api-docs/cppdocs/Doxyfile b/api-docs/cppdocs/Doxyfile
index 244c3163..9c33604c 100644
--- a/api-docs/cppdocs/Doxyfile
+++ b/api-docs/cppdocs/Doxyfile
@@ -384,7 +384,7 @@ IDL_PROPERTY_SUPPORT = YES
# all members of a group must be documented explicitly.
# The default value is: NO.
-DISTRIBUTE_GROUP_DOC = YES
+DISTRIBUTE_GROUP_DOC = NO
# If one adds a struct or class to a group and this option is enabled, then also
# any nested class or struct is added to the same group. By default this option
@@ -640,7 +640,7 @@ SORT_MEMBERS_CTORS_1ST = NO
# appear in their defined order.
# The default value is: NO.
-SORT_GROUP_NAMES = NO
+SORT_GROUP_NAMES = YES
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
# fully-qualified names, including namespaces. If set to NO, the class list will
@@ -709,14 +709,14 @@ MAX_INITIALIZER_LINES = 30
# list will mention the files that were used to generate the documentation.
# The default value is: YES.
-SHOW_USED_FILES = YES
+SHOW_USED_FILES = NO
# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
# will remove the Files entry from the Quick Index and from the Folder Tree View
# (if specified).
# The default value is: YES.
-SHOW_FILES = YES
+SHOW_FILES = NO
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
# page. This will remove the Namespaces entry from the Quick Index and from the
@@ -904,7 +904,17 @@ EXCLUDE_PATTERNS =
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*
-EXCLUDE_SYMBOLS =
+# These symbols by themselves generate 60MB and 1500 pages of documentation.
+# For shipping with builds this is not reasonable.
+
+EXCLUDE_SYMBOLS = BinaryNinja::LowLevelILInstructionAccessor \
+ BinaryNinja::LowLevelILInstructionAccessor* \
+ BinaryNinja::MediumLevelILInstructionAccessor \
+ BinaryNinja::MediumLevelILInstructionAccessor* \
+ BinaryNinja::HighLevelILInstructionAccessor \
+ BinaryNinja::HighLevelILInstructionAccessor* \
+
+
#EXCLUDE_SYMBOLS = QProgressIndicator #Broke Exhale
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
@@ -1084,7 +1094,7 @@ VERBATIM_HEADERS = NO
# classes, structs, unions or interfaces.
# The default value is: YES.
-ALPHABETICAL_INDEX = YES
+ALPHABETICAL_INDEX = NO
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
@@ -2225,7 +2235,7 @@ EXTERNAL_PAGES = YES
# powerful graphs.
# The default value is: YES.
-CLASS_DIAGRAMS = YES
+CLASS_DIAGRAMS = NO
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
@@ -2298,14 +2308,14 @@ CLASS_GRAPH = NO
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
-COLLABORATION_GRAPH = YES
+COLLABORATION_GRAPH = NO
# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
# groups, showing the direct groups dependencies.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
-GROUP_GRAPHS = YES
+GROUP_GRAPHS = NO
# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
@@ -2383,7 +2393,7 @@ CALLER_GRAPH = NO
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
-GRAPHICAL_HIERARCHY = YES
+GRAPHICAL_HIERARCHY = NO
# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
# dependencies a directory has on other directories in a graphical way. The
@@ -2392,7 +2402,7 @@ GRAPHICAL_HIERARCHY = YES
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
-DIRECTORY_GRAPH = YES
+DIRECTORY_GRAPH = NO
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
diff --git a/api-docs/cppdocs/README.md b/api-docs/cppdocs/README.md
index 56412839..615518ee 100644
--- a/api-docs/cppdocs/README.md
+++ b/api-docs/cppdocs/README.md
@@ -19,6 +19,8 @@ The theme for our documentation works best with doxygen 1.9.0 - 1.9.4
### macOS (Homebrew)
```
-wget https://raw.githubusercontent.com/Homebrew/homebrew-core/41828ee36b96e35b63b2a4c8cfc2df2c3728944a/Formula/doxygen.rb`
-brew install ./doxygen.rb
+$ wget https://raw.githubusercontent.com/Homebrew/homebrew-core/41828ee36b96e35b63b2a4c8cfc2df2c3728944a/Formula/doxygen.rb
+$ shasum -a 256 doxygen.rb
+4d1294c815cf0f76c55b14c5f47c25f523bd860a7cc9b077cce9589d84678396 doxygen.rb
+$ brew install ./doxygen.rb
```
diff --git a/api-docs/cppdocs/build_min_docs.py b/api-docs/cppdocs/build_min_docs.py
new file mode 100644
index 00000000..455c1376
--- /dev/null
+++ b/api-docs/cppdocs/build_min_docs.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python3
+
+# =-=--
+# This script builds the documentation with doxygen and runs minification routines.
+# This allows shipping a few thousand fewer files in updates including C++ documentation.
+#
+# Usage:
+# install doxygen 1.9.4 (or this script will not work. running minification on a different version can cause
+# real issues.)
+# python3 build_min_docs.py
+# =-=--
+
+__DOXYGEN_REQUIRED_VERSION__ = "1.9.4"
+
+import os
+import sys
+import json
+from collections import namedtuple
+from typing import List
+import subprocess
+import shutil
+
+
+def system_with_output(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE):
+ proc = subprocess.Popen("" + cmd,
+ stdout=stdout,
+ stderr=stderr,
+ shell=True,
+ universal_newlines=True)
+ std_out, std_err = proc.communicate()
+ return proc.returncode, std_out, std_err
+
+
+deletion_queue = []
+
+
+NavItemEntry = namedtuple("NavItemEntry", ["dName", "htmlLink", "vName"])
+
+
+# Load the singular variable in a file as a list of navitems
+def pop_var(filename):
+ """
+ Load in the file data and entries within a file.
+
+ File is in the format `var varName = <json valid array>`
+ if <json_valid_array>[n][2] is a list, item[n][2] is a subfile, and we want to
+ load the entry and return it.
+
+ :param filename: Filename to load the entries and data from.
+ :return: Tuple containing a list of NavItemEntrys and the data in the file.
+ """
+ fp = open(filename)
+ file_data = fp.read()
+ fp.close()
+ data_string = file_data.split(' =', 1)[1][:-1]
+ data = json.loads(data_string)
+ items = []
+ for entry in data:
+ if not isinstance(entry[2], list):
+ items.append(NavItemEntry(entry[0], entry[1], entry[2]))
+ return items, file_data
+
+
+def load_items_in_file(filename):
+ """
+ Recursively load in the text of file {filename} and all subfiles referenced by it.
+
+ :param filename: Target root filename. e.g. 'modules.js'
+ :return: Combined text of javascript file tree.
+ """
+ items = []
+ sub_items, file_data = pop_var(filename)
+ items.append(file_data)
+ deletion_queue.append(filename)
+ for item in sub_items:
+ if item.vName is not None:
+ items += load_items_in_file("html/" + item.vName + ".js")
+ return items
+
+
+def minifier():
+
+ # Typically, doxygen's navbar will lazy load the data in all of these variables.
+ # While this has miniscule performance benefits, it generates thousands of js files.
+ # Here, we take all js variables that the navbar will ever be able to load, and
+ # add them to the top of the navbar.js file itself.
+
+ navtree_built_data = ""
+ for mod in load_items_in_file("html/modules.js"):
+ navtree_built_data += mod + "\n"
+ for mod in load_items_in_file("html/namespaces.js"):
+ navtree_built_data += mod + "\n"
+ for mod in load_items_in_file("html/annotated.js"):
+ navtree_built_data += mod + "\n"
+
+ # The navtree indices also need to be loaded in since we're modifying how navbar.js::getScript works.
+ # This also saves another ~60 files.
+ for nav_tree_index_file in os.listdir("html"):
+ if 'navtreeindex' in nav_tree_index_file:
+ with open("html/" + nav_tree_index_file, "r") as fp:
+ navtree_built_data += fp.read() + "\n"
+ deletion_queue.append("html/" + nav_tree_index_file)
+
+ while "\n\n" in navtree_built_data:
+ navtree_built_data = navtree_built_data.replace("\n\n", "\n")
+
+ navtree_built_data = navtree_built_data.replace("\n", "")
+
+ fp = open("html/navtree.js", "r")
+ navtree_orig = fp.read()
+ fp.close()
+
+ # getScript(scriptName,func,show) here originally loads the js file and calls func once that is complete
+ # Here, we just want to skip the whole process and immediately call the callback.
+ nav_tree_fixed_get_script = "function getScript(scriptName,func,show) { func(); }"
+
+ navtree_before_get_script = navtree_orig.split("function getScript(scriptName,func,show)")[0]
+ navtree_after_get_script = navtree_orig.split("function getScript(scriptName,func,show)")[1].split('}', 1)[1]
+
+ nav_tree_fixed = navtree_before_get_script + nav_tree_fixed_get_script + navtree_after_get_script
+ navtree = navtree_built_data + "\n" + nav_tree_fixed
+
+ fp = open("html/navtree.js", "w")
+ fp.write(navtree)
+ fp.close()
+
+
+def build_doxygen():
+ if not os.path.exists('./Doxyfile'):
+ print('No Doxyfile found. Are you in the right directory?')
+ sys.exit(1)
+ _, vers, _ = system_with_output("doxygen -V")
+ if __DOXYGEN_REQUIRED_VERSION__ not in vers.strip():
+ print(f'Please use Doxygen {__DOXYGEN_REQUIRED_VERSION__} to build documentation')
+ sys.exit(1)
+
+ if os.path.exists('./html/'):
+ print('Clearing ./html/')
+ try:
+ shutil.rmtree("./html/")
+ except OSError:
+ # doing it twice works (on macOS) ¯\_(ツ)_/¯
+ shutil.rmtree("./html/")
+ print(f'Building doxygen docs...')
+ stat, out, err = system_with_output("doxygen Doxyfile")
+ print(f"Built Doxygen with status code {stat}")
+ print("Output dir is ./html/")
+
+
+def main():
+ build_doxygen()
+ print("Minifying Output")
+ minifier()
+ for file in deletion_queue:
+ file = "./" + file
+ os.remove(file)
+ print(f'Was able to clear {len(deletion_queue)} "redundant" files')
+ print(f'Done. Output is in ./html/')
+
+
+if __name__ == "__main__":
+ main()
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 1dcdc48a..72b076d6 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -55,6 +55,9 @@
#endif
namespace BinaryNinja {
+ /*!
+ \ingroup refcount
+ */
class RefCountObject
{
public:
@@ -74,6 +77,10 @@ namespace BinaryNinja {
}
};
+
+ /*!
+ \ingroup refcount
+ */
template <class T, T* (*AddObjectReference)(T*), void (*FreeObjectReference)(T*)>
class CoreRefCountObject
{
@@ -138,6 +145,9 @@ namespace BinaryNinja {
}
};
+ /*!
+ \ingroup refcount
+ */
template <class T>
class StaticCoreRefCountObject
{
@@ -171,6 +181,9 @@ namespace BinaryNinja {
void AddRefForRegistration() { AddRefInternal(); }
};
+ /*!
+ \ingroup refcount
+ */
template <class T>
class Ref
{
@@ -297,6 +310,10 @@ namespace BinaryNinja {
T* GetPtr() const { return m_obj; }
};
+
+ /*!
+ \ingroup confidence
+ */
class ConfidenceBase
{
protected:
@@ -321,6 +338,9 @@ namespace BinaryNinja {
bool IsUnknown() const { return m_confidence == 0; }
};
+ /*!
+ \ingroup confidence
+ */
template <class T>
class Confidence : public ConfidenceBase
{
@@ -380,6 +400,9 @@ namespace BinaryNinja {
bool operator!=(const Confidence<T>& a) const { return !(*this == a); }
};
+ /*!
+ \ingroup confidence
+ */
template <class T>
class Confidence<Ref<T>> : public ConfidenceBase
{
@@ -760,6 +783,10 @@ namespace BinaryNinja {
static std::vector<std::string> GetLoggerNames();
};
+ /*!
+ @addtogroup coreapi
+ @{
+ */
std::string EscapeString(const std::string& s);
std::string UnescapeString(const std::string& s);
@@ -815,6 +842,9 @@ namespace BinaryNinja {
void SetCurrentPluginLoadOrder(BNPluginLoadOrder order);
void AddRequiredPluginDependency(const std::string& name);
void AddOptionalPluginDependency(const std::string& name);
+ /*!
+ @}
+ */
class BinaryView;
@@ -1364,6 +1394,10 @@ namespace BinaryNinja {
virtual bool Navigate(const std::string& view, uint64_t offset) = 0;
};
+ /*!
+
+ \ingroup coreapi
+ */
class User : public CoreRefCountObject<BNUser, BNNewUserReference, BNFreeUser>
{
private:
@@ -1467,6 +1501,10 @@ namespace BinaryNinja {
struct UndoEntry;
+ /*!
+
+ \ingroup database
+ */
struct DatabaseException : std::runtime_error
{
DatabaseException(const std::string& desc) : std::runtime_error(desc.c_str()) {}
@@ -1569,6 +1607,10 @@ namespace BinaryNinja {
void WriteAnalysisCache(Ref<KeyValueStore> val);
};
+ /*!
+
+ \ingroup undo
+ */
struct UndoAction
{
BNActionType actionType;
@@ -1579,6 +1621,10 @@ namespace BinaryNinja {
UndoAction(const BNUndoAction& action);
};
+ /*!
+
+ \ingroup undo
+ */
struct UndoEntry
{
Ref<User> user;
@@ -1587,6 +1633,10 @@ namespace BinaryNinja {
uint64_t timestamp;
};
+ /*!
+
+ \ingroup coreapi
+ */
struct MergeResult
{
BNMergeStatus status;
@@ -1873,6 +1923,10 @@ namespace BinaryNinja {
class Segment;
class Component;
+ /*!
+
+ \ingroup binaryview
+ */
class BinaryDataNotification
{
private:
@@ -2200,6 +2254,10 @@ namespace BinaryNinja {
virtual size_t Write(uint64_t offset, const void* src, size_t len) = 0;
};
+ /*!
+
+ \ingroup fileaccessor
+ */
class CoreFileAccessor : public FileAccessor
{
public:
@@ -2213,6 +2271,11 @@ namespace BinaryNinja {
class Function;
class BasicBlock;
+
+ /*!
+
+ \ingroup namelist
+ */
class NameList
{
protected:
@@ -2269,6 +2332,10 @@ namespace BinaryNinja {
static NameList FromAPIObject(BNNameList* name);
};
+ /*!
+
+ \ingroup namelist
+ */
class QualifiedName : public NameList
{
public:
@@ -2288,6 +2355,10 @@ namespace BinaryNinja {
static QualifiedName FromAPIObject(const BNQualifiedName* name);
};
+ /*!
+
+ \ingroup namelist
+ */
class NameSpace : public NameList
{
public:
@@ -2490,6 +2561,9 @@ namespace BinaryNinja {
class DisassemblySettings;
+ /*!
+ \ingroup binaryview
+ */
class AnalysisCompletionEvent :
public CoreRefCountObject<BNAnalysisCompletionEvent, BNNewAnalysisCompletionEventReference,
BNFreeAnalysisCompletionEvent>
@@ -4937,6 +5011,9 @@ namespace BinaryNinja {
static BNPlatform* PlatformRecognizerCallback(void* ctxt, BNBinaryView* view, BNMetadata* metadata);
};
+ /*!
+ \ingroup binaryview
+ */
class CoreBinaryViewType : public BinaryViewType
{
public:
@@ -4948,6 +5025,8 @@ namespace BinaryNinja {
};
/*! Thrown whenever a read is performed out of bounds.
+
+ \ingroup binaryview
*/
class ReadException : public std::exception
{
@@ -5215,6 +5294,8 @@ namespace BinaryNinja {
};
/*! Raised whenever a write is performed out of bounds.
+
+ \ingroup binaryview
*/
class WriteException : public std::exception
{
@@ -5430,7 +5511,31 @@ namespace BinaryNinja {
size_t fixedLength; // Variable length if zero
};
- /*!
+ /*! Allows users to implement custom transformations.
+
+ New transformations may be added at runtime, so an instance of a transform is created like
+
+ \code{.cpp}
+
+ DataBuffer inputData = binaryView->ReadBuffer(0, 32); // Read the first 32 bytes of the file
+ DataBuffer outputDataHash;
+
+ Transform::GetByName("SHA512")->Encode(inputData, outputDataHash); // Writes the SHA512 hash to outputDataHash
+
+ \endcode
+
+ Getting a list of registered transforms:
+
+ <b> From the interactive python console: </b>
+ \code{.py}
+ list(Transform)
+ \endcode
+
+ <b> At Runtime: </b>
+ \code{.cpp}
+ std::vector<Ref<Transform>> registeredTypes = Transform::GetTransformTypes();
+ \endcode
+
\ingroup transform
*/
class Transform : public StaticCoreRefCountObject<BNTransform>
@@ -5472,6 +5577,9 @@ namespace BinaryNinja {
const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>());
};
+ /*!
+ \ingroup transform
+ */
class CoreTransform : public Transform
{
public:
@@ -7323,6 +7431,9 @@ namespace BinaryNinja {
overload(Ts...) -> overload<Ts...>;
#endif
+ /*!
+ \ingroup workflow
+ */
class AnalysisContext :
public CoreRefCountObject<BNAnalysisContext, BNNewAnalysisContextReference, BNFreeAnalysisContext>
{
@@ -11155,6 +11266,9 @@ namespace BinaryNinja {
virtual Variable GetParameterVariableForIncomingVariable(const Variable& var, Function* func);
};
+ /*!
+ \ingroup callingconvention
+ */
class CoreCallingConvention : public CallingConvention
{
public:
@@ -12183,6 +12297,10 @@ namespace BinaryNinja {
static FormInputField DirectoryName(const std::string& prompt, const std::string& defaultName = "");
};
+ /*!
+
+ \ingroup coreapi
+ */
class ReportCollection :
public CoreRefCountObject<BNReportCollection, BNNewReportCollectionReference, BNFreeReportCollection>
{
@@ -12703,6 +12821,10 @@ namespace BinaryNinja {
static void RegisterTypeSpecificDataRenderer(DataRenderer* renderer);
};
+ /*!
+
+ \ingroup coreapi
+ */
class DisassemblyTextRenderer :
public CoreRefCountObject<BNDisassemblyTextRenderer, BNNewDisassemblyTextRendererReference,
BNFreeDisassemblyTextRenderer>
@@ -12866,6 +12988,10 @@ namespace BinaryNinja {
static int Compare(LinearViewCursor* a, LinearViewCursor* b);
};
+ /*!
+
+ \ingroup simplifyname
+ */
class SimplifyName
{
public:
@@ -13070,6 +13196,10 @@ namespace BinaryNinja {
static void Register(SecretsProvider* provider);
};
+ /*!
+
+ \ingroup secretsprovider
+ */
class CoreSecretsProvider : public SecretsProvider
{
public:
@@ -13090,6 +13220,8 @@ namespace BinaryNinja {
Components have a Guid, which persistent across saves and loads of the database, and should be
used for retrieving components when such is required and a reference to the Component cannot be held.
+ \ingroup coreapi
+
*/
class Component : public CoreRefCountObject<BNComponent, BNNewComponentReference, BNFreeComponent>
{
diff --git a/binaryninjacore.h b/binaryninjacore.h
index e9f7bdca..a6c2c308 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -76,6 +76,10 @@
#define PATH_SEP "/"
#endif
+/*!
+ @addtogroup core
+ @{
+*/
#define BN_MAX_INSTRUCTION_LENGTH 256
#define BN_DEFAULT_INSTRUCTION_LENGTH 16
#define BN_DEFAULT_OPCODE_DISPLAY 8
@@ -6371,4 +6375,8 @@ extern "C"
}
#endif
+/*!
+ @}
+*/
+
#endif
diff --git a/ui/action.h b/ui/action.h
index 51d2feff..a81310e6 100644
--- a/ui/action.h
+++ b/ui/action.h
@@ -25,6 +25,15 @@ class View;
class UIContext;
struct LinearViewCursorPosition;
+/*!
+
+ \defgroup action Action
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup action
+*/
struct BINARYNINJAUIAPI HighlightTokenState
{
bool valid;
@@ -45,6 +54,9 @@ struct BINARYNINJAUIAPI HighlightTokenState
};
+/*!
+ \ingroup action
+*/
struct BINARYNINJAUIAPI UIActionContext
{
UIContext* context;
@@ -66,6 +78,9 @@ struct BINARYNINJAUIAPI UIActionContext
operator BinaryNinja::PluginCommandContext() const;
};
+/*!
+ \ingroup action
+*/
struct BINARYNINJAUIAPI UIAction
{
std::function<void(const UIActionContext& context)> activate;
@@ -112,6 +127,9 @@ struct BINARYNINJAUIAPI UIAction
static void writeKeyBindingsFile();
};
+/*!
+ \ingroup action
+*/
struct BINARYNINJAUIAPI UITransformAction
{
std::function<void(const UIActionContext& context, TransformRef xform)> activate;
@@ -131,6 +149,9 @@ struct BINARYNINJAUIAPI UITransformAction
UITransformAction(const UITransformAction& other);
};
+/*!
+ \ingroup action
+*/
struct BINARYNINJAUIAPI UIHighlightColorAction
{
std::function<void(const UIActionContext& context, BNHighlightColor color)> activate;
@@ -150,6 +171,9 @@ struct BINARYNINJAUIAPI UIHighlightColorAction
UIHighlightColorAction(const UIHighlightColorAction& other);
};
+/*!
+ \ingroup action
+*/
struct BINARYNINJAUIAPI UIBookmarkAction
{
std::function<void(const UIActionContext& context, int index)> activate;
@@ -159,6 +183,9 @@ struct BINARYNINJAUIAPI UIBookmarkAction
const std::function<bool(const UIActionContext& context, int index)>& isValid);
};
+/*!
+ \ingroup action
+*/
enum ActionPriority
{
LowActionPriority,
@@ -166,6 +193,9 @@ enum ActionPriority
HighActionPriority
};
+/*!
+ \ingroup action
+*/
class BINARYNINJAUIAPI UIActionHandler
{
std::map<QString, UIAction> m_actions;
@@ -257,6 +287,9 @@ class BINARYNINJAUIAPI UIActionHandler
static void reparentWidget(QWidget* widget);
};
+/*!
+ \ingroup action
+*/
enum MenuItemVisibility
{
DefaultMenuItemVisibility,
@@ -267,6 +300,9 @@ enum MenuItemVisibility
class MenuInstance;
+/*!
+ \ingroup action
+*/
class BINARYNINJAUIAPI Menu
{
std::map<QString, QString> m_actions;
@@ -335,6 +371,9 @@ class BINARYNINJAUIAPI Menu
static std::vector<QString> getMainMenus();
};
+/*!
+ \ingroup action
+*/
class BINARYNINJAUIAPI MenuInstance
{
Menu* m_menu;
@@ -381,6 +420,9 @@ class BINARYNINJAUIAPI MenuInstance
static void updateActionBindings(const QString& name);
};
+/*!
+ \ingroup action
+*/
class BINARYNINJAUIAPI MainMenuInstance
{
QMenuBar* m_instance;
diff --git a/ui/addressdialog.h b/ui/addressdialog.h
index 7ad3e93f..c725ef9c 100644
--- a/ui/addressdialog.h
+++ b/ui/addressdialog.h
@@ -13,7 +13,15 @@
#include "uitypes.h"
#include "getsymbolslistthread.h"
+/*!
+ \defgroup addressdialog AddressDialog
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup addressdialog
+*/
class BINARYNINJAUIAPI AddressDialogWithPreview : public QDialog
{
Q_OBJECT
@@ -55,6 +63,9 @@ class BINARYNINJAUIAPI AddressDialogWithPreview : public QDialog
uint64_t getOffset() const { return m_addr; }
};
+/*!
+ \ingroup addressdialog
+*/
class BINARYNINJAUIAPI FileOffsetDialogWithPreview : public QDialog
{
Q_OBJECT
@@ -92,6 +103,9 @@ class BINARYNINJAUIAPI FileOffsetDialogWithPreview : public QDialog
uint64_t getOffset() const { return m_fileOffset; }
};
+/*!
+ \ingroup addressdialog
+*/
class BINARYNINJAUIAPI AddUserXrefDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/addressindicator.h b/ui/addressindicator.h
index 76d3eefa..fce16a11 100644
--- a/ui/addressindicator.h
+++ b/ui/addressindicator.h
@@ -5,7 +5,16 @@
#include "menus.h"
#include "uicontext.h"
-//! Format for displaying offsets.
+/*!
+
+ \defgroup addressindicator AddressIndicator
+ \ingroup uiapi
+*/
+
+/*! Format for displaying offsets
+
+ \ingroup addressindicator
+*/
enum class OffsetFormat : char
{
VirtualAddress,
@@ -15,7 +24,10 @@ enum class OffsetFormat : char
FunctionStart
};
-//! Format for displaying an address range.
+/*! Format for displaying an address range
+
+ \ingroup addressindicator
+*/
enum class RangeFormat : char
{
StartOnly,
@@ -24,13 +36,20 @@ enum class RangeFormat : char
StartAndEnd
};
-//! Options for displaying an address or address range.
+/*! Options for displaying an address or address range
+
+ \ingroup addressindicator
+*/
struct DisplayOptions
{
OffsetFormat format = OffsetFormat::VirtualAddress;
RangeFormat rangeFormat = RangeFormat::StartAndEnd;
};
+/*!
+
+ \ingroup addressindicator
+*/
class BINARYNINJAUIAPI AddressIndicator : public MenuHelper
{
Q_OBJECT
diff --git a/ui/assembledialog.h b/ui/assembledialog.h
index 62be31ef..5fa13357 100644
--- a/ui/assembledialog.h
+++ b/ui/assembledialog.h
@@ -6,6 +6,16 @@
#include "dialogtextedit.h"
#include "uicontext.h"
+/*!
+
+ \defgroup assembledialog AssembleDialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup assembledialog
+*/
class BINARYNINJAUIAPI AssembleDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/clickablelabel.h b/ui/clickablelabel.h
index 6b7d8744..d9b679d7 100644
--- a/ui/clickablelabel.h
+++ b/ui/clickablelabel.h
@@ -7,7 +7,16 @@
#include <QtWidgets/QLabel>
#include "uicontext.h"
+/*!
+ \defgroup clickablelabel ClickableLabel
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup clickablelabel
+*/
struct BINARYNINJAUIAPI IconImage
{
QImage original;
@@ -18,6 +27,10 @@ struct BINARYNINJAUIAPI IconImage
};
+/*!
+
+ \ingroup clickablelabel
+*/
class BINARYNINJAUIAPI ClickableLabel : public QLabel
{
Q_OBJECT
@@ -44,6 +57,10 @@ class BINARYNINJAUIAPI ClickableLabel : public QLabel
};
+/*!
+
+ \ingroup clickablelabel
+*/
class BINARYNINJAUIAPI ClickableIcon : public QWidget
{
Q_OBJECT
@@ -80,6 +97,10 @@ class BINARYNINJAUIAPI ClickableIcon : public QWidget
};
+/*!
+
+ \ingroup clickablelabel
+*/
class BINARYNINJAUIAPI ClickableStateLabel : public ClickableLabel
{
Q_OBJECT
diff --git a/ui/commandpalette.h b/ui/commandpalette.h
index af773ba9..d697f608 100644
--- a/ui/commandpalette.h
+++ b/ui/commandpalette.h
@@ -9,6 +9,16 @@
#include <vector>
#include "action.h"
+/*!
+
+ \defgroup commandpalette CommandPalette
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup commandpalette
+*/
struct BINARYNINJAUIAPI CommandListItem
{
QString name;
@@ -20,6 +30,10 @@ class CommandPalette;
class CommandListFilter;
+/*!
+
+ \ingroup commandpalette
+*/
class BINARYNINJAUIAPI CommandListDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -32,6 +46,10 @@ class BINARYNINJAUIAPI CommandListDelegate : public QStyledItemDelegate
virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
};
+/*!
+
+ \ingroup commandpalette
+*/
class BINARYNINJAUIAPI CommandListModel : public QAbstractItemModel
{
Q_OBJECT
@@ -61,6 +79,10 @@ class BINARYNINJAUIAPI CommandListModel : public QAbstractItemModel
void addRecentItem(const QString& name);
};
+/*!
+
+ \ingroup commandpalette
+*/
class BINARYNINJAUIAPI CommandList : public QListView
{
Q_OBJECT
@@ -84,6 +106,10 @@ class BINARYNINJAUIAPI CommandList : public QListView
virtual void focusOutEvent(QFocusEvent* event) override;
};
+/*!
+
+ \ingroup commandpalette
+*/
class BINARYNINJAUIAPI CommandListFilter : public QLineEdit
{
Q_OBJECT
@@ -103,6 +129,10 @@ class BINARYNINJAUIAPI CommandListFilter : public QLineEdit
virtual void focusOutEvent(QFocusEvent* event) override;
};
+/*!
+
+ \ingroup commandpalette
+*/
class BINARYNINJAUIAPI CommandPalette : public QFrame
{
Q_OBJECT
diff --git a/ui/commands.h b/ui/commands.h
index 3530e8ad..b0ed34be 100644
--- a/ui/commands.h
+++ b/ui/commands.h
@@ -5,6 +5,12 @@
#include "render.h"
#include "uicontext.h"
+/*!
+ @addtogroup commands
+ \ingroup uiapi
+ @{
+*/
+
bool BINARYNINJAUIAPI undefineNameForAddress(BinaryViewRef data, uint64_t addr);
bool BINARYNINJAUIAPI undefineNameForLocalVariable(
BinaryViewRef data, FunctionRef func, const BinaryNinja::Variable& var);
@@ -46,3 +52,7 @@ std::string BINARYNINJAUIAPI createStructureName(BinaryViewRef data);
std::optional<BinaryNinja::Variable> BINARYNINJAUIAPI getSplitVariableForAssignment(
FunctionRef func, BNFunctionGraphType ilType, uint64_t location, const BinaryNinja::Variable& var);
+
+/*!
+ @}
+*/
diff --git a/ui/commentdialog.h b/ui/commentdialog.h
index 2a70c3eb..f1c40ca5 100644
--- a/ui/commentdialog.h
+++ b/ui/commentdialog.h
@@ -7,6 +7,16 @@
#include "uicontext.h"
#include "uicomment.h"
+/*!
+
+ \defgroup commentdialog CommentDialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup commentdialog
+*/
class BINARYNINJAUIAPI CommentDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/compiledialog.h b/ui/compiledialog.h
index b40bc68d..a0218cca 100644
--- a/ui/compiledialog.h
+++ b/ui/compiledialog.h
@@ -8,12 +8,26 @@
#include "dialogtextedit.h"
#include "uicontext.h"
+/*!
+
+ \defgroup compiledialog CompileDialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup compiledialog
+*/
enum CompileMode
{
CompileStandalone,
CompilePatch
};
+/*!
+
+ \ingroup compiledialog
+*/
class BINARYNINJAUIAPI CompileDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/compileoptions.h b/ui/compileoptions.h
index 58521bd1..2f9031ea 100644
--- a/ui/compileoptions.h
+++ b/ui/compileoptions.h
@@ -7,6 +7,10 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI CompileOptions : public QDialog
{
Q_OBJECT
diff --git a/ui/createstructdialog.h b/ui/createstructdialog.h
index bcb9cd20..7fa534a7 100644
--- a/ui/createstructdialog.h
+++ b/ui/createstructdialog.h
@@ -6,6 +6,10 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI CreateStructDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/createtypedialog.h b/ui/createtypedialog.h
index 3c47e4ab..7b4e8b9e 100644
--- a/ui/createtypedialog.h
+++ b/ui/createtypedialog.h
@@ -6,6 +6,10 @@
#include "dialogtextedit.h"
#include "uicontext.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI CreateTypeDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/datatypelist.h b/ui/datatypelist.h
index c2a96489..7d802b98 100644
--- a/ui/datatypelist.h
+++ b/ui/datatypelist.h
@@ -5,6 +5,10 @@
#include "viewframe.h"
#include "menus.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI DataTypeList : public MenuHelper
{
Q_OBJECT
diff --git a/ui/dialogtextedit.h b/ui/dialogtextedit.h
index 28f025c7..cf0cf228 100644
--- a/ui/dialogtextedit.h
+++ b/ui/dialogtextedit.h
@@ -3,6 +3,10 @@
#include <QtWidgets/QTextEdit>
#include "uicontext.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI DialogTextEdit : public QTextEdit
{
Q_OBJECT
diff --git a/ui/disassemblyview.h b/ui/disassemblyview.h
index ffd963e5..f7cadb2a 100644
--- a/ui/disassemblyview.h
+++ b/ui/disassemblyview.h
@@ -18,6 +18,16 @@
#define FUNCTION_UPDATE_CHECK_INTERVAL 100
+/*!
+
+ \defgroup disassemblyview
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup disassemblyview
+*/
class BINARYNINJAUIAPI DisassemblyHistoryEntry : public FlowGraphHistoryEntry
{
BNFunctionGraphType m_graphType;
@@ -31,7 +41,10 @@ class BINARYNINJAUIAPI DisassemblyHistoryEntry : public FlowGraphHistoryEntry
};
class DisassemblyContainer;
+/*!
+ \ingroup disassemblyview
+*/
class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget
{
Q_OBJECT
@@ -124,7 +137,10 @@ class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget
void cycleILView(bool forward);
};
+/*!
+ \ingroup disassemblyview
+*/
class GraphTypeLabel : public MenuHelper
{
Q_OBJECT
@@ -142,7 +158,10 @@ class GraphTypeLabel : public MenuHelper
void showMenu() override;
};
+/*!
+ \ingroup disassemblyview
+*/
class BINARYNINJAUIAPI DisassemblyFunctionHeader : public QWidget
{
Q_OBJECT
@@ -184,6 +203,10 @@ class BINARYNINJAUIAPI DisassemblyFunctionHeader : public QWidget
virtual QSize sizeHint() const override;
};
+/*!
+
+ \ingroup disassemblyview
+*/
class BINARYNINJAUIAPI DisassemblyContainer : public QWidget, public ViewContainer
{
Q_OBJECT
@@ -216,6 +239,10 @@ class BINARYNINJAUIAPI DisassemblyContainer : public QWidget, public ViewContain
void linkActivatedEvent(const QString& link);
};
+/*!
+
+ \ingroup disassemblyview
+*/
class DisassemblyViewType : public ViewType
{
static DisassemblyViewType* m_instance;
diff --git a/ui/dockhandler.h b/ui/dockhandler.h
index cb150a81..846fb883 100644
--- a/ui/dockhandler.h
+++ b/ui/dockhandler.h
@@ -14,7 +14,16 @@ class ContextMenuManager;
class DockHandler;
class Menu;
+/*!
+ \defgroup dockhandler DockHandler
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup dockhandler
+*/
struct BINARYNINJAUIAPI DockProperties
{
DockProperties() {};
@@ -53,7 +62,10 @@ struct BINARYNINJAUIAPI DockProperties
std::function<void()> actionOnShow;
};
+/*!
+ \ingroup dockhandler
+*/
struct DockSizePrefs
{
DockSizePrefs() {}
@@ -63,7 +75,10 @@ struct DockSizePrefs
bool nonUniformVisibility = false;
};
+/*!
+ \ingroup dockhandler
+*/
class BINARYNINJAUIAPI DockContextHandler
{
protected:
@@ -90,7 +105,10 @@ class BINARYNINJAUIAPI DockContextHandler
};
Q_DECLARE_INTERFACE(DockContextHandler, "binary.ninja.dockcontexthandler/1.0");
+/*!
+ \ingroup dockhandler
+*/
class BINARYNINJAUIAPI DockHandler : public QObject
{
Q_OBJECT
diff --git a/ui/expandablegroup.h b/ui/expandablegroup.h
index 63b1d70a..1591c9a7 100644
--- a/ui/expandablegroup.h
+++ b/ui/expandablegroup.h
@@ -7,6 +7,10 @@
#include <QtWidgets/QScrollArea>
#include <QtCore/QPropertyAnimation>
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI ExpandableGroup : public QWidget
{
Q_OBJECT
diff --git a/ui/featuremap.h b/ui/featuremap.h
index f4b82c03..f67d4443 100644
--- a/ui/featuremap.h
+++ b/ui/featuremap.h
@@ -27,6 +27,16 @@ class Menu;
class View;
class SplitPaneWidget;
+/*!
+
+ \defgroup featuremap FeatureMap
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup featuremap
+*/
class BINARYNINJAUIAPI FeatureMap : public QWidget, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
diff --git a/ui/filecontext.h b/ui/filecontext.h
index e7a79927..e9b37267 100644
--- a/ui/filecontext.h
+++ b/ui/filecontext.h
@@ -22,6 +22,16 @@ class FileContextBase
FileContextBase() {}
};
+/*!
+
+ \defgroup filecontext FileContext
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup filecontext
+*/
class BINARYNINJAUIAPI FileContext : public FileContextBase, public BinaryNinja::NavigationHandler
{
QString m_filename;
diff --git a/ui/filter.h b/ui/filter.h
index ba186a38..006b92de 100644
--- a/ui/filter.h
+++ b/ui/filter.h
@@ -4,6 +4,16 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \defgroup filter Filter
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup filter
+*/
class BINARYNINJAUIAPI FilterTarget
{
public:
@@ -17,6 +27,10 @@ class BINARYNINJAUIAPI FilterTarget
virtual void closeFilter();
};
+/*!
+
+ \ingroup filter
+*/
class BINARYNINJAUIAPI FilterEdit : public QLineEdit
{
Q_OBJECT
@@ -30,6 +44,10 @@ class BINARYNINJAUIAPI FilterEdit : public QLineEdit
virtual void keyPressEvent(QKeyEvent* event) override;
};
+/*!
+
+ \ingroup filter
+*/
class BINARYNINJAUIAPI FilteredView : public QWidget
{
Q_OBJECT
diff --git a/ui/flowgraphwidget.h b/ui/flowgraphwidget.h
index 08c41b7d..9ee41e65 100644
--- a/ui/flowgraphwidget.h
+++ b/ui/flowgraphwidget.h
@@ -10,6 +10,16 @@
#include "commentdialog.h"
#include "instructionedit.h"
+/*!
+
+ \defgroup flowgraphwidget FlowGraphWidget
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup flowgraphwidget
+*/
class BINARYNINJAUIAPI GraphLayoutCompleteEvent : public QEvent
{
FlowGraphRef m_graph;
@@ -19,6 +29,10 @@ class BINARYNINJAUIAPI GraphLayoutCompleteEvent : public QEvent
FlowGraphRef GetGraph() { return m_graph; }
};
+/*!
+
+ \ingroup flowgraphwidget
+*/
class BINARYNINJAUIAPI FlowGraphHistoryEntry : public HistoryEntry
{
PlatformRef m_platform;
diff --git a/ui/fontsettings.h b/ui/fontsettings.h
index 7e54a28f..f32db195 100644
--- a/ui/fontsettings.h
+++ b/ui/fontsettings.h
@@ -4,6 +4,12 @@
#include <QtWidgets/QWidget>
#include "uicontext.h"
+/*!
+ @addtogroup FontSettings
+ \ingroup uiapi
+ @{
+*/
+
enum AntialiasingStyle
{
SubpixelAntialiasing,
@@ -34,3 +40,7 @@ void BINARYNINJAUIAPI setAntialiasingStyle(AntialiasingStyle style);
void BINARYNINJAUIAPI adjustFontForAntialiasingSettings(QFont& font, QWidget* widget);
int BINARYNINJAUIAPI getFontWidthAndAdjustSpacing(QFont& font);
+
+/*!
+ @}
+*/
diff --git a/ui/forminputdialog.h b/ui/forminputdialog.h
index 7c797366..43d3faae 100644
--- a/ui/forminputdialog.h
+++ b/ui/forminputdialog.h
@@ -9,6 +9,10 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI FormInputDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/getsymbolslistthread.h b/ui/getsymbolslistthread.h
index 220c8f84..73c97962 100644
--- a/ui/getsymbolslistthread.h
+++ b/ui/getsymbolslistthread.h
@@ -12,6 +12,11 @@
// QThread has issues working in the bindings on some platforms
class GetSymbolsListThread;
#else
+
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI GetSymbolsListThread : public QThread
{
Q_OBJECT
diff --git a/ui/globalarea.h b/ui/globalarea.h
index cfb28fda..098f209f 100644
--- a/ui/globalarea.h
+++ b/ui/globalarea.h
@@ -5,6 +5,16 @@
#include "viewframe.h"
#include "tabwidget.h"
+/*!
+
+ \defgroup globalarea GlobalArea
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup globalarea
+*/
class BINARYNINJAUIAPI GlobalAreaWidget : public QWidget
{
Q_OBJECT
@@ -28,6 +38,10 @@ class BINARYNINJAUIAPI GlobalAreaWidget : public QWidget
virtual void focus();
};
+/*!
+
+ \ingroup globalarea
+*/
class BINARYNINJAUIAPI GlobalAreaTabStyle : public DockableTabStyle
{
int closeButtonSize(const QWidget* widget) const;
@@ -44,6 +58,10 @@ class BINARYNINJAUIAPI GlobalAreaTabStyle : public DockableTabStyle
virtual DockableTabStyle* duplicate() override;
};
+/*!
+
+ \ingroup globalarea
+*/
class BINARYNINJAUIAPI CloseButton : public QWidget
{
Q_OBJECT
@@ -71,6 +89,10 @@ class BINARYNINJAUIAPI CloseButton : public QWidget
void clicked();
};
+/*!
+
+ \ingroup globalarea
+*/
class BINARYNINJAUIAPI GlobalArea : public QWidget
{
Q_OBJECT
diff --git a/ui/hexeditor.h b/ui/hexeditor.h
index 5769ad47..b971a1cb 100644
--- a/ui/hexeditor.h
+++ b/ui/hexeditor.h
@@ -11,6 +11,16 @@
#define HEX_EDITOR_UPDATE_CHECK_INTERVAL 200
+/*!
+
+ \defgroup hexeditor HexEditor
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup hexeditor
+*/
class BINARYNINJAUIAPI HexEditor :
public QAbstractScrollArea,
public View,
@@ -219,6 +229,10 @@ class BINARYNINJAUIAPI HexEditor :
void updateTimerEvent();
};
+/*!
+
+ \ingroup hexeditor
+*/
class HexEditorViewType : public ViewType
{
static HexEditorViewType* m_instance;
diff --git a/ui/ilchooser.h b/ui/ilchooser.h
index 5779c7b2..e57b82a6 100644
--- a/ui/ilchooser.h
+++ b/ui/ilchooser.h
@@ -3,6 +3,16 @@
#include "pane.h"
#include "menus.h"
+/*!
+
+ \defgroup ilchooser ILChooser
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup ilchooser
+*/
class BINARYNINJAUIAPI ILChooserWidget : public MenuHelper
{
Q_OBJECT
@@ -21,6 +31,10 @@ class BINARYNINJAUIAPI ILChooserWidget : public MenuHelper
virtual void showMenu() override;
};
+/*!
+
+ \ingroup ilchooser
+*/
class BINARYNINJAUIAPI ViewPaneHeaderILChooserWidget : public ViewPaneHeaderSubtypeWidget
{
Q_OBJECT
diff --git a/ui/instructionedit.h b/ui/instructionedit.h
index ea398f34..0f904196 100644
--- a/ui/instructionedit.h
+++ b/ui/instructionedit.h
@@ -4,6 +4,10 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI InstructionEdit : public QLineEdit
{
Q_OBJECT
diff --git a/ui/linearview.h b/ui/linearview.h
index 2e591fdc..3c5ce9eb 100644
--- a/ui/linearview.h
+++ b/ui/linearview.h
@@ -17,6 +17,16 @@
#define LINEAR_VIEW_UPDATE_CHECK_INTERVAL 200
#define MAX_STRING_TYPE_LENGTH 1048576
+/*!
+
+ \defgroup linearview LinearView
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup linearview
+*/
struct BINARYNINJAUIAPI LinearViewLine : public BinaryNinja::LinearDisassemblyLine
{
BinaryNinja::Ref<BinaryNinja::LinearViewCursor> cursor;
@@ -24,6 +34,10 @@ struct BINARYNINJAUIAPI LinearViewLine : public BinaryNinja::LinearDisassemblyLi
size_t lineIndex;
};
+/*!
+
+ \ingroup linearview
+*/
struct BINARYNINJAUIAPI LinearViewCursorPosition
{
FunctionRef function;
@@ -53,6 +67,10 @@ struct BINARYNINJAUIAPI LinearViewCursorPosition
LinearViewCursorPosition AsLine() const;
};
+/*!
+
+ \ingroup linearview
+*/
class BINARYNINJAUIAPI LinearViewHistoryEntry : public HistoryEntry
{
std::vector<BinaryNinja::LinearViewObjectIdentifier> m_topPath;
@@ -93,6 +111,10 @@ public:
virtual bool deserialize(const Json::Value& value) override;
};
+/*!
+
+ \ingroup linearview
+*/
class BINARYNINJAUIAPI LinearView : public QAbstractScrollArea, public View, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -445,6 +467,10 @@ protected:
void splitToNewPaneAndNavigateFromCursorPosition();
};
+/*!
+
+ \ingroup linearview
+*/
class LinearViewType : public ViewType
{
static LinearViewType* m_instance;
diff --git a/ui/logview.h b/ui/logview.h
index f9ece62d..19251df7 100644
--- a/ui/logview.h
+++ b/ui/logview.h
@@ -27,6 +27,16 @@ class LogStatus;
class View;
class ViewFrame;
+/*!
+
+ \defgroup logview LogView
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup logview
+*/
struct BINARYNINJAUIAPI LogListItem
{
size_t sessionId;
@@ -39,6 +49,10 @@ struct BINARYNINJAUIAPI LogListItem
LogListItem(size_t sessionId, BNLogLevel level, std::string text, bool selected = false, const std::string& logger_name = "", size_t tid = 0);
};
+/*!
+
+ \ingroup logview
+*/
enum LoggingScope
{
CurrentTabOnly,
@@ -47,6 +61,10 @@ enum LoggingScope
AllTabs
};
+/*!
+
+ \ingroup logview
+*/
class BINARYNINJAUIAPI LogListFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
@@ -66,7 +84,10 @@ class BINARYNINJAUIAPI LogListFilterProxyModel : public QSortFilterProxyModel
void updateFilter();
};
+/*!
+ \ingroup logview
+*/
class BINARYNINJAUIAPI LogListModel : public QAbstractItemModel, public BinaryNinja::LogListener
{
Q_OBJECT
@@ -131,7 +152,10 @@ class BINARYNINJAUIAPI LogListModel : public QAbstractItemModel, public BinaryNi
void notifySessionChanged(size_t sessionId);
};
+/*!
+ \ingroup logview
+*/
class BINARYNINJAUIAPI LogItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -164,7 +188,10 @@ class BINARYNINJAUIAPI LogItemDelegate : public QStyledItemDelegate
void viewChanged(QWidget* frame);
};
+/*!
+ \ingroup logview
+*/
class BINARYNINJAUIAPI LogViewComboBox : public QComboBox
{
Q_OBJECT
@@ -179,7 +206,10 @@ class BINARYNINJAUIAPI LogViewComboBox : public QComboBox
void itemSelected(QString text);
};
+/*!
+ \ingroup logview
+*/
class BINARYNINJAUIAPI LogView : public GlobalAreaWidget
{
Q_OBJECT
@@ -249,7 +279,10 @@ class BINARYNINJAUIAPI LogView : public GlobalAreaWidget
void showContextMenu();
};
+/*!
+ \ingroup logview
+*/
class BINARYNINJAUIAPI LogStatus : public QWidget
{
Q_OBJECT
diff --git a/ui/memorymap.h b/ui/memorymap.h
index 544cf2a3..7b831c0c 100644
--- a/ui/memorymap.h
+++ b/ui/memorymap.h
@@ -15,7 +15,16 @@
#include "uitypes.h"
#include "fontsettings.h"
+/*!
+ \defgroup memorymap MemoryMap
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI DataComparedTableItem : public QTableWidgetItem
{
public:
@@ -23,7 +32,10 @@ public:
bool operator<(const QTableWidgetItem& other) const;
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI MemoryMapItemDelegate : public QStyledItemDelegate
{
public:
@@ -31,7 +43,10 @@ public:
virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI SegmentDialog : public QDialog
{
@@ -53,7 +68,10 @@ public:
SegmentDialog(QWidget* parent, BinaryViewRef data, SegmentRef segment = nullptr);
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI SectionDialog : public QDialog
{
@@ -72,7 +90,10 @@ public:
SectionDialog(QWidget* parent, BinaryViewRef data, SectionRef section = nullptr);
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI SegmentWidget : public QWidget, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -114,7 +135,10 @@ Q_SIGNALS:
void addressDoubleClicked(uint64_t address);
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI SectionWidget : public QWidget, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -155,7 +179,10 @@ Q_SIGNALS:
void addressDoubleClicked(uint64_t address);
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI MemoryMapSidebarWidget : public SidebarWidget
{
Q_OBJECT
@@ -175,7 +202,10 @@ class BINARYNINJAUIAPI MemoryMapSidebarWidget : public SidebarWidget
QWidget* headerWidget() override { return m_header; }
};
+/*!
+ \ingroup memorymap
+*/
class BINARYNINJAUIAPI MemoryMapSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/menus.h b/ui/menus.h
index ee2e8780..b63a308c 100644
--- a/ui/menus.h
+++ b/ui/menus.h
@@ -11,6 +11,16 @@
#include "action.h"
#include "viewframe.h"
+/*!
+
+ \defgroup menus Menus
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup menus
+*/
class BINARYNINJAUIAPI ContextMenuManager : public QObject
{
Q_OBJECT
@@ -36,7 +46,10 @@ class BINARYNINJAUIAPI ContextMenuManager : public QObject
void onClose();
};
+/*!
+ \ingroup menus
+*/
class BINARYNINJAUIAPI MenuHelper : public QLabel
{
Q_OBJECT
diff --git a/ui/mergevariablesdialog.h b/ui/mergevariablesdialog.h
index b4c81c06..9082b6a4 100644
--- a/ui/mergevariablesdialog.h
+++ b/ui/mergevariablesdialog.h
@@ -11,6 +11,16 @@
#include "uicontext.h"
#include "render.h"
+/*!
+
+ \defgroup mergevariablesdialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup mergevariablesdialog
+*/
class BINARYNINJAUIAPI MergeVariableHeader : public QWidget
{
std::vector<BinaryNinja::InstructionTextToken> m_tokens;
@@ -25,6 +35,10 @@ public:
MergeVariableHeader(const std::vector<BinaryNinja::InstructionTextToken>& tokens, QWidget* parent = nullptr);
};
+/*!
+
+ \ingroup mergevariablesdialog
+*/
class BINARYNINJAUIAPI MergeVariableListItem : public QListWidgetItem
{
QWidget* m_owner;
@@ -46,6 +60,10 @@ public:
const std::string& name);
};
+/*!
+
+ \ingroup mergevariablesdialog
+*/
class BINARYNINJAUIAPI MergeVariableItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -62,6 +80,10 @@ public:
virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& idx) const override;
};
+/*!
+
+ \ingroup mergevariablesdialog
+*/
class BINARYNINJAUIAPI MergeVariablesDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/minigraph.h b/ui/minigraph.h
index a4be4368..2dced4a9 100644
--- a/ui/minigraph.h
+++ b/ui/minigraph.h
@@ -13,6 +13,16 @@ class FlowGraphWidget;
class Menu;
class ViewFrame;
+/*!
+
+ \defgroup minigraph MiniGraph
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup minigraph
+*/
class BINARYNINJAUIAPI MiniGraph : public SidebarWidget, public UIContextNotification
{
Q_OBJECT
@@ -51,7 +61,10 @@ class BINARYNINJAUIAPI MiniGraph : public SidebarWidget, public UIContextNotific
void newPane();
};
+/*!
+ \ingroup minigraph
+*/
class BINARYNINJAUIAPI MiniGraphSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/options.h b/ui/options.h
index 01714117..0bfba08c 100644
--- a/ui/options.h
+++ b/ui/options.h
@@ -15,6 +15,16 @@
#include <tuple>
#include <vector>
+/*!
+
+ \defgroup options Options
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup options
+*/
class BINARYNINJAUIAPI OptionsDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/pane.h b/ui/pane.h
index 94cbc2b6..e9d452aa 100644
--- a/ui/pane.h
+++ b/ui/pane.h
@@ -15,6 +15,16 @@ class CloseButton;
class TabDragIndicator;
class SyncGroup;
+/*!
+
+ \defgroup pane Pane
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI Pane : public QWidget
{
Q_OBJECT
@@ -64,6 +74,10 @@ class BINARYNINJAUIAPI Pane : public QWidget
void newWindowForPaneRequested(QScreen* screen, QPoint pos);
};
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI SplitButton : public ClickableIcon
{
Q_OBJECT
@@ -93,6 +107,10 @@ class BINARYNINJAUIAPI SplitButton : public ClickableIcon
void splitWithDirection(Qt::Orientation orientation);
};
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI PaneHeader : public QWidget
{
Q_OBJECT
@@ -126,6 +144,10 @@ class BINARYNINJAUIAPI PaneHeader : public QWidget
class ViewFrame;
class ViewPaneHeader;
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI ViewPane : public Pane
{
Q_OBJECT
@@ -160,6 +182,10 @@ class DataTypeList;
class ViewList;
class SyncGroupWidget;
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI ViewPaneHeaderSubtypeWidget : public QWidget
{
Q_OBJECT
@@ -169,6 +195,10 @@ class BINARYNINJAUIAPI ViewPaneHeaderSubtypeWidget : public QWidget
virtual void updateStatus() = 0;
};
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI ViewPaneHeader : public PaneHeader
{
Q_OBJECT
@@ -204,6 +234,10 @@ class BINARYNINJAUIAPI ViewPaneHeader : public PaneHeader
void updateViewType(ViewFrame* frame);
};
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI WidgetPane : public Pane
{
Q_OBJECT
@@ -219,6 +253,10 @@ class BINARYNINJAUIAPI WidgetPane : public Pane
void updateWidgetStatus();
};
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI WidgetPaneHeader : public PaneHeader
{
Q_OBJECT
@@ -234,6 +272,10 @@ class BINARYNINJAUIAPI WidgetPaneHeader : public PaneHeader
class SplitPaneWidget;
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI SplitPaneContainer : public QWidget
{
Q_OBJECT
@@ -313,6 +355,10 @@ Q_SIGNALS:
void childViewChanged(ViewFrame* frame);
};
+/*!
+
+ \ingroup pane
+*/
class BINARYNINJAUIAPI SplitPaneWidget : public QWidget
{
Q_OBJECT
diff --git a/ui/platformcursor.h b/ui/platformcursor.h
index 5e19b65f..68ed23db 100644
--- a/ui/platformcursor.h
+++ b/ui/platformcursor.h
@@ -1,4 +1,13 @@
#pragma once
+/*!
+ \addtogroup PlatformCursor
+ \ingroup uiapi
+ @{
+*/
+
void hideCursorUntilMouseMoves();
+
+
+/*! @} */
diff --git a/ui/platformdialog.h b/ui/platformdialog.h
index 071d4f8e..9d8709c2 100644
--- a/ui/platformdialog.h
+++ b/ui/platformdialog.h
@@ -5,6 +5,16 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \defgroup platformdialog PlatformDialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup platformdialog
+*/
class BINARYNINJAUIAPI PlatformDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/possiblevaluesetdialog.h b/ui/possiblevaluesetdialog.h
index 8202fca0..79d56abd 100644
--- a/ui/possiblevaluesetdialog.h
+++ b/ui/possiblevaluesetdialog.h
@@ -7,6 +7,11 @@
#include "uitypes.h"
+
+/*!
+
+ \ingroup uiapi
+*/
class BINARYNINJAUIAPI PossibleValueSetDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/preview.h b/ui/preview.h
index 4ce1e3b2..84f40d79 100644
--- a/ui/preview.h
+++ b/ui/preview.h
@@ -4,6 +4,16 @@
#include <QtWidgets/QWidget>
#include "uitypes.h"
+/*!
+
+ \defgroup preview Preview
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup preview
+*/
class BINARYNINJAUIAPI PreviewScrollHandler
{
public:
@@ -11,6 +21,11 @@ class BINARYNINJAUIAPI PreviewScrollHandler
virtual void sendWheelEvent(QWheelEvent* event) = 0;
};
+
+/*!
+
+ \ingroup preview
+*/
class BINARYNINJAUIAPI PreviewWidget : public QFrame
{
Q_OBJECT
diff --git a/ui/progressindicator.h b/ui/progressindicator.h
index f89f6232..128f49f4 100644
--- a/ui/progressindicator.h
+++ b/ui/progressindicator.h
@@ -29,6 +29,7 @@
\class QProgressIndicator
\brief The QProgressIndicator class lets an application display a progress indicator to show that a lengthy task is
under way.
+ \ingroup uiapi
Progress indicators are indeterminate and do nothing more than spin to show that the application is busy.
\sa QProgressBar
diff --git a/ui/progresstask.h b/ui/progresstask.h
index c46dfbff..6f15da42 100644
--- a/ui/progresstask.h
+++ b/ui/progresstask.h
@@ -17,9 +17,22 @@
#include "binaryninjaapi.h"
#include "uitypes.h"
+/*!
+
+ \defgroup progresstask ProgressTask
+ \ingroup uiapi
+*/
+
+/*!
+
+ \defgroup backgroundthread BackgroundThread
+ \ingroup uiapi
+*/
/*!
Dialog displaying a progress bar and cancel button
+
+ \ingroup progresstask
*/
class BINARYNINJAUIAPI ProgressDialog : public QDialog
{
@@ -85,6 +98,8 @@ class BINARYNINJAUIAPI ProgressDialog : public QDialog
task->wait();
// Task deletes itself later
\endcode
+
+ \ingroup progresstask
*/
class BINARYNINJAUIAPI ProgressTask : public QObject
{
@@ -244,6 +259,8 @@ std::function<QVariant(QVariant)> convertToQVariantFunction(Func&& func);
// Call start to start the thread
->start();
\endcode
+
+ \ingroup backgroundthread
*/
class BINARYNINJAUIAPI BackgroundThread : public QObject
{
diff --git a/ui/qfileaccessor.h b/ui/qfileaccessor.h
index 1686eccc..0211fa1b 100644
--- a/ui/qfileaccessor.h
+++ b/ui/qfileaccessor.h
@@ -4,6 +4,15 @@
#include "binaryninjaapi.h"
#include "action.h"
+/*!
+
+ \defgroup qfileaccessor QFileAccessor
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup qfileaccessor
+*/
class BINARYNINJAUIAPI QFileAccessor : public BinaryNinja::FileAccessor
{
QFile* m_file;
diff --git a/ui/render.h b/ui/render.h
index e8a03774..5d08c278 100644
--- a/ui/render.h
+++ b/ui/render.h
@@ -5,6 +5,15 @@
#include "uicontext.h"
#include "action.h"
+/*!
+
+ \defgroup render Render
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup render
+*/
enum HexEditorHighlightMode
{
NoHighlight,
@@ -12,6 +21,9 @@ enum HexEditorHighlightMode
ByteValueHighlight
};
+/*!
+ \ingroup render
+*/
enum HexEditorColorMode
{
NoColorization,
@@ -19,6 +31,9 @@ enum HexEditorColorMode
ModificationColorization
};
+/*!
+ \ingroup render
+*/
enum HexEditorHighlightContrast
{
NormalContrastHighlight,
@@ -26,6 +41,9 @@ enum HexEditorHighlightContrast
HighContrastHighlight
};
+/*!
+ \ingroup render
+*/
struct BINARYNINJAUIAPI HexEditorHighlightState
{
HexEditorHighlightMode mode;
@@ -36,6 +54,9 @@ struct BINARYNINJAUIAPI HexEditorHighlightState
void saveSettings();
};
+/*!
+ \ingroup render
+*/
class BINARYNINJAUIAPI FontParameters
{
QWidget* m_owner;
@@ -58,6 +79,9 @@ class BINARYNINJAUIAPI FontParameters
int getOffset() const { return m_charOffset; }
};
+/*!
+ \ingroup render
+*/
class BINARYNINJAUIAPI RenderContext
{
QWidget* m_owner;
diff --git a/ui/reportcollectionwidget.h b/ui/reportcollectionwidget.h
index 42d56421..d74bd063 100644
--- a/ui/reportcollectionwidget.h
+++ b/ui/reportcollectionwidget.h
@@ -8,6 +8,15 @@
#include "viewframe.h"
#include "uicontext.h"
+/*!
+
+ \defgroup reportcollectionwidget ReportCollectionWidget
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup reportcollectionwidget
+*/
class BINARYNINJAUIAPI ReportCollectionWidget : public QWidget, public ViewContainer
{
Q_OBJECT
diff --git a/ui/reportwidget.h b/ui/reportwidget.h
index 414fb412..515cb395 100644
--- a/ui/reportwidget.h
+++ b/ui/reportwidget.h
@@ -32,6 +32,15 @@ class WebPage2 : public QWebEnginePage
};
#endif
+/*!
+
+ \defgroup reportwidget
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup reportwidget
+*/
class BINARYNINJAUIAPI ReportWidget : public QScrollArea, public UIActionHandler
{
Q_OBJECT
diff --git a/ui/scriptingconsole.h b/ui/scriptingconsole.h
index acedb0d7..21636be5 100644
--- a/ui/scriptingconsole.h
+++ b/ui/scriptingconsole.h
@@ -25,6 +25,15 @@
class ScriptingConsole;
+/*!
+
+ \defgroup scriptingconsole ScriptingConsole
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup scriptingconsole
+*/
class BINARYNINJAUIAPI ScriptingCompletionModel : public QAbstractListModel
{
Q_OBJECT
@@ -43,6 +52,9 @@ class BINARYNINJAUIAPI ScriptingCompletionModel : public QAbstractListModel
void setModelData(const std::vector<std::string>& completions, bool searching);
};
+/*!
+ \ingroup scriptingconsole
+*/
class BINARYNINJAUIAPI ScriptingCompletionPopup : public QDialog
{
Q_OBJECT
@@ -66,6 +78,9 @@ class BINARYNINJAUIAPI ScriptingCompletionPopup : public QDialog
void complete(QString text);
};
+/*!
+ \ingroup scriptingconsole
+*/
class BINARYNINJAUIAPI ScriptingConsoleEdit : public QTextEdit
{
Q_OBJECT
@@ -101,6 +116,9 @@ class BINARYNINJAUIAPI ScriptingConsoleEdit : public QTextEdit
virtual void keyPressEvent(QKeyEvent* event) override;
};
+/*!
+ \ingroup scriptingconsole
+*/
class BINARYNINJAUIAPI ScriptingConsoleOutput : public QPlainTextEdit
{
Q_OBJECT
@@ -126,6 +144,9 @@ class BINARYNINJAUIAPI ScriptingConsoleOutput : public QPlainTextEdit
class ScriptingConsoleWidget;
+/*!
+ \ingroup scriptingconsole
+*/
class BINARYNINJAUIAPI ScriptingConsole : public GlobalAreaWidget, BinaryNinja::ScriptingOutputListener
{
Q_OBJECT
diff --git a/ui/searchresult.h b/ui/searchresult.h
index 3b648367..954d0142 100644
--- a/ui/searchresult.h
+++ b/ui/searchresult.h
@@ -20,6 +20,15 @@
#define COLUMN_MIN_WIDTH_IN_CHAR 10
#define COLUMN_MAX_WIDTH_IN_CHAR 30
+/*!
+
+ \defgroup searchreult SearchResult
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup searchresult
+*/
class CachedTokens
{
public:
@@ -33,7 +42,9 @@ class CachedTokens
{}
};
-
+/*!
+ \ingroup searchresult
+*/
class SearchResultItem
{
private:
@@ -62,7 +73,9 @@ class SearchResultItem
Q_DECLARE_METATYPE(SearchResultItem);
-
+/*!
+ \ingroup searchresult
+*/
class BINARYNINJAUIAPI SearchResultModel : public QAbstractTableModel
{
Q_OBJECT
@@ -124,7 +137,9 @@ class BINARYNINJAUIAPI SearchResultModel : public QAbstractTableModel
void setUserColumnWidth(size_t column);
};
-
+/*!
+ \ingroup searchresult
+*/
class BINARYNINJAUIAPI SearchResultFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
@@ -136,7 +151,9 @@ class BINARYNINJAUIAPI SearchResultFilterProxyModel : public QSortFilterProxyMod
virtual QVariant data(const QModelIndex& idx, int role) const override;
};
-
+/*!
+ \ingroup searchresult
+*/
class BINARYNINJAUIAPI SearchResultItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -151,6 +168,10 @@ class BINARYNINJAUIAPI SearchResultItemDelegate : public QStyledItemDelegate
};
class SearchResultWidget;
+
+/*!
+ \ingroup searchresult
+*/
class BINARYNINJAUIAPI SearchResultTable : public QTableView
{
Q_OBJECT
@@ -207,6 +228,10 @@ class BINARYNINJAUIAPI SearchResultTable : public QTableView
};
class SearchProgressBar;
+
+/*!
+ \ingroup searchresult
+*/
class BINARYNINJAUIAPI SearchResultWidget : public QWidget
{
Q_OBJECT
@@ -249,7 +274,9 @@ class BINARYNINJAUIAPI SearchResultWidget : public QWidget
void updateTotal();
};
-
+/*!
+ \ingroup searchresult
+*/
class BINARYNINJAUIAPI SearchProgressBar : public QWidget
{
Q_OBJECT
diff --git a/ui/settingsview.h b/ui/settingsview.h
index 5507f182..30a6007f 100644
--- a/ui/settingsview.h
+++ b/ui/settingsview.h
@@ -29,7 +29,15 @@
#include "menus.h"
#include "clickablelabel.h"
+/*!
+ \defgroup settingsview SettingsView
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup settingsview
+*/
struct SettingsEntry
{
SettingsEntry(int p, const QString& h, const QString& g, std::vector<void*>&& j) :
@@ -43,6 +51,9 @@ struct SettingsEntry
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsTreeModel : public QAbstractItemModel
{
Q_OBJECT
@@ -72,6 +83,9 @@ class BINARYNINJAUIAPI SettingsTreeModel : public QAbstractItemModel
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
@@ -103,6 +117,9 @@ class BINARYNINJAUIAPI SettingsFilterProxyModel : public QSortFilterProxyModel
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsOutlineProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
@@ -115,6 +132,9 @@ class BINARYNINJAUIAPI SettingsOutlineProxyModel : public QSortFilterProxyModel
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsEditor : public QWidget
{
Q_OBJECT
@@ -203,6 +223,9 @@ class BINARYNINJAUIAPI SettingsEditor : public QWidget
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -264,6 +287,9 @@ class BINARYNINJAUIAPI SettingsDelegate : public QStyledItemDelegate
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsTreeView : public QTreeView
{
Q_OBJECT
@@ -281,6 +307,9 @@ class BINARYNINJAUIAPI SettingsTreeView : public QTreeView
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI BinaryViewScopeLabel : public MenuHelper
{
Q_OBJECT
@@ -310,6 +339,9 @@ class BINARYNINJAUIAPI BinaryViewScopeLabel : public MenuHelper
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsScopeBar : public QWidget
{
Q_OBJECT
@@ -334,6 +366,9 @@ class BINARYNINJAUIAPI SettingsScopeBar : public QWidget
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SearchFilter : public QLineEdit
{
Q_OBJECT
@@ -360,6 +395,9 @@ class BINARYNINJAUIAPI SearchFilter : public QLineEdit
};
+/*!
+ \ingroup settingsview
+*/
class BINARYNINJAUIAPI SettingsView : public QWidget
{
Q_OBJECT
diff --git a/ui/sidebar.h b/ui/sidebar.h
index ef0b0c0b..79dcb3a8 100644
--- a/ui/sidebar.h
+++ b/ui/sidebar.h
@@ -13,6 +13,15 @@ class MainWindow;
class ContextMenuManager;
class SplitPaneWidget;
+/*!
+
+ \defgroup sidebar Sidebar
+ \ingroup uiapi
+*/
+
+/*!
+ \ingroup sidebar
+*/
struct SidebarIcon
{
QImage original;
@@ -22,6 +31,9 @@ struct SidebarIcon
static SidebarIcon generate(const QImage& src);
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarWidget : public QWidget
{
Q_OBJECT
@@ -47,6 +59,9 @@ class BINARYNINJAUIAPI SidebarWidget : public QWidget
virtual QWidget* headerWidget() { return nullptr; }
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarWidgetAndHeader : public QWidget
{
Q_OBJECT
@@ -65,6 +80,9 @@ class BINARYNINJAUIAPI SidebarWidgetAndHeader : public QWidget
void updateFonts();
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarHeaderTitle : public QLabel
{
Q_OBJECT
@@ -73,6 +91,9 @@ class BINARYNINJAUIAPI SidebarHeaderTitle : public QLabel
SidebarHeaderTitle(const QString& name);
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarHeader : public QWidget
{
Q_OBJECT
@@ -81,6 +102,9 @@ class BINARYNINJAUIAPI SidebarHeader : public QWidget
SidebarHeader(const QString& name, QWidget* rightSide = nullptr);
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarInvalidContextWidget : public SidebarWidget
{
Q_OBJECT
@@ -92,6 +116,9 @@ class BINARYNINJAUIAPI SidebarInvalidContextWidget : public SidebarWidget
void openFile();
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarWidgetType
{
SidebarIcon m_icon;
@@ -114,6 +141,9 @@ class BINARYNINJAUIAPI SidebarWidgetType
class ViewFrame;
+/*!
+ \ingroup sidebar
+*/
struct SidebarWidgetContainerState
{
SidebarWidgetType* contentWidgetType;
@@ -122,6 +152,9 @@ struct SidebarWidgetContainerState
QList<int> parentSplitterSizes;
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI SidebarWidgetContainer : public QWidget
{
Q_OBJECT
@@ -193,6 +226,9 @@ class BINARYNINJAUIAPI SidebarWidgetContainer : public QWidget
void hideContents();
};
+/*!
+ \ingroup sidebar
+*/
class BINARYNINJAUIAPI Sidebar : public QWidget
{
Q_OBJECT
diff --git a/ui/stackview.h b/ui/stackview.h
index 85f6f169..e64b4706 100644
--- a/ui/stackview.h
+++ b/ui/stackview.h
@@ -12,7 +12,16 @@
#define STACK_VIEW_UPDATE_CHECK_INTERVAL 200
-//! Dialog to enable arbitrary stack variable creation.
+/*!
+
+ \defgroup stackview StackView
+ \ingroup uiapi
+*/
+
+/*! Dialog to enable arbitrary stack variable creation.
+
+ \ingroup stackview
+*/
class BINARYNINJAUIAPI CreateStackVariableDialog : public QDialog
{
Q_OBJECT
@@ -34,7 +43,10 @@ class BINARYNINJAUIAPI CreateStackVariableDialog : public QDialog
CreateStackVariableDialog(QWidget* parent, BinaryViewRef data, FunctionRef func, int64_t initialOffset = 0);
};
-//! A single line in the stack view.
+/*! A single line in the stack view.
+
+ \ingroup stackview
+*/
class StackViewLine
{
public:
@@ -142,7 +154,10 @@ class StackViewLine
BinaryNinja::DisassemblyTextLine m_content;
};
-//! Simple direction enum; used for cursor movement functions.
+/*! Simple direction enum; used for cursor movement functions.
+
+ \ingroup stackview
+*/
enum class Direction
{
Up,
@@ -151,7 +166,10 @@ enum class Direction
Right
};
-//! The stack view!
+/*! The Stack View
+
+ \ingroup stackview
+*/
class BINARYNINJAUIAPI StackView : public QAbstractScrollArea, public View
{
Q_OBJECT
@@ -252,7 +270,10 @@ class BINARYNINJAUIAPI StackView : public QAbstractScrollArea, public View
void updateFonts() override;
};
-//! Stack view sidebar widget wrapper.
+/*! Stack view sidebar widget wrapper.
+
+ \ingroup stackview
+*/
class BINARYNINJAUIAPI StackViewSidebarWidget : public SidebarWidget
{
Q_OBJECT
@@ -269,6 +290,10 @@ class BINARYNINJAUIAPI StackViewSidebarWidget : public SidebarWidget
QWidget* headerWidget() override { return m_header; }
};
+/*!
+
+ \ingroup stackview
+*/
class BINARYNINJAUIAPI StackViewSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/statusbarwidget.h b/ui/statusbarwidget.h
index b7ab2537..c2ddb529 100644
--- a/ui/statusbarwidget.h
+++ b/ui/statusbarwidget.h
@@ -4,6 +4,16 @@
#include <QtWidgets/QLabel>
#include "uicontext.h"
+/*!
+
+ \defgroup statusbarwidget StatusBarWidget
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup statusbarwidget
+*/
class BINARYNINJAUIAPI StatusBarWidget : public QWidget
{
Q_OBJECT
@@ -13,6 +23,10 @@ class BINARYNINJAUIAPI StatusBarWidget : public QWidget
virtual void updateStatus();
};
+/*!
+
+ \ingroup statusbarwidget
+*/
class BINARYNINJAUIAPI DisabledOptionsStatusBarWidget : public StatusBarWidget
{
public:
diff --git a/ui/stringsview.h b/ui/stringsview.h
index 64822c44..100a496f 100644
--- a/ui/stringsview.h
+++ b/ui/stringsview.h
@@ -12,6 +12,16 @@
#define STRINGS_LIST_UPDATE_INTERVAL 250
+/*!
+
+ \defgroup stringsview StringsView
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup stringsview
+*/
class BINARYNINJAUIAPI StringsListModel : public QAbstractItemModel, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -81,6 +91,10 @@ class BINARYNINJAUIAPI StringsListModel : public QAbstractItemModel, public Bina
bool getIncludeOnlyFromCurrentFunction() const { return m_includeOnlyFromCurrentFunction; };
};
+/*!
+
+ \ingroup stringsview
+*/
class BINARYNINJAUIAPI StringItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -104,6 +118,10 @@ class BINARYNINJAUIAPI StringItemDelegate : public QStyledItemDelegate
class StringsContainer;
class StringsViewSidebarWidget;
+/*!
+
+ \ingroup stringsview
+*/
class BINARYNINJAUIAPI StringsView : public QListView, public View, public FilterTarget
{
Q_OBJECT
@@ -168,6 +186,10 @@ class BINARYNINJAUIAPI StringsView : public QListView, public View, public Filte
void updateTimerEvent();
};
+/*!
+
+ \ingroup stringsview
+*/
class BINARYNINJAUIAPI StringsContainer : public QWidget, public ViewContainer
{
Q_OBJECT
@@ -192,6 +214,10 @@ class BINARYNINJAUIAPI StringsContainer : public QWidget, public ViewContainer
virtual void focusInEvent(QFocusEvent* event) override;
};
+/*!
+
+ \ingroup stringsview
+*/
class StringsViewType : public ViewType
{
static StringsViewType* m_instance;
@@ -203,7 +229,10 @@ class StringsViewType : public ViewType
static void init();
};
+/*!
+ \ingroup stringsview
+*/
class BINARYNINJAUIAPI StringsViewSidebarWidget : public SidebarWidget
{
Q_OBJECT
@@ -225,7 +254,10 @@ class BINARYNINJAUIAPI StringsViewSidebarWidget : public SidebarWidget
void showContextMenu();
};
+/*!
+ \ingroup stringsview
+*/
class BINARYNINJAUIAPI StringsViewSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/symbollist.h b/ui/symbollist.h
index ffefa3c8..5a7b1c1d 100644
--- a/ui/symbollist.h
+++ b/ui/symbollist.h
@@ -20,6 +20,16 @@
class SymbolsView;
static std::string emptyArch;
+/*!
+
+ \defgroup symbollist SymbolList
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup symbollist
+*/
class BINARYNINJAUIAPI SymbolListDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -32,6 +42,10 @@ class BINARYNINJAUIAPI SymbolListDelegate : public QStyledItemDelegate
virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
};
+/*!
+
+ \ingroup symbollist
+*/
class BINARYNINJAUIAPI SymbolListModel : public QAbstractItemModel, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -282,7 +296,10 @@ class BINARYNINJAUIAPI SymbolListModel : public QAbstractItemModel, public Binar
void beforeListReset();
};
+/*!
+ \ingroup symbollist
+*/
class BINARYNINJAUIAPI SymbolList : public QListView, public FilterTarget
{
Q_OBJECT
diff --git a/ui/symbolsview.h b/ui/symbolsview.h
index 0997285b..8df6b2e7 100644
--- a/ui/symbolsview.h
+++ b/ui/symbolsview.h
@@ -9,6 +9,16 @@
class ViewFrame;
class SymbolList;
+/*!
+
+ \defgroup symbolview SymbolView
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup symbolview
+*/
class BINARYNINJAUIAPI SymbolsView : public SidebarWidget, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -60,6 +70,10 @@ class BINARYNINJAUIAPI SymbolsView : public SidebarWidget, public BinaryNinja::B
void showContextMenu();
};
+/*!
+
+ \ingroup symbolview
+*/
class BINARYNINJAUIAPI SymbolsViewSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/syncgroup.h b/ui/syncgroup.h
index 6600f8ce..187a4151 100644
--- a/ui/syncgroup.h
+++ b/ui/syncgroup.h
@@ -3,6 +3,16 @@
#include "viewframe.h"
#include "clickablelabel.h"
+/*!
+
+ \defgroup syncgroup SyncGroup
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup syncgroup
+*/
class BINARYNINJAUIAPI SyncGroup
{
std::set<ViewFrame*> m_members;
@@ -26,6 +36,10 @@ class BINARYNINJAUIAPI SyncGroup
static void syncToTarget(View* srcView, ViewFrame* targetFrame, const ViewLocation& location);
};
+/*!
+
+ \ingroup syncgroup
+*/
class BINARYNINJAUIAPI SyncGroupWidget : public ClickableIcon
{
Q_OBJECT
diff --git a/ui/tabwidget.h b/ui/tabwidget.h
index 0aefdc17..ba2b6b54 100644
--- a/ui/tabwidget.h
+++ b/ui/tabwidget.h
@@ -15,6 +15,16 @@
class DockableTabWidget;
+/*!
+
+ \defgroup tabwidget TabWidget
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI DockableTabCollection
{
std::set<DockableTabWidget*> m_containers;
@@ -26,6 +36,10 @@ class BINARYNINJAUIAPI DockableTabCollection
const std::set<DockableTabWidget*>& containers() const { return m_containers; }
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI TabDragIndicator : public QWidget
{
Q_OBJECT
@@ -50,6 +64,10 @@ class BINARYNINJAUIAPI TabDragIndicator : public QWidget
virtual void paintEvent(QPaintEvent* event) override;
};
+/*!
+
+ \ingroup tabwidget
+*/
enum DockableTabInteractionState
{
NoTabInteraction,
@@ -59,6 +77,10 @@ enum DockableTabInteractionState
CloseButtonPressInactive
};
+/*!
+
+ \ingroup tabwidget
+*/
struct BINARYNINJAUIAPI DockableTabInfo
{
QString title;
@@ -68,6 +90,10 @@ struct BINARYNINJAUIAPI DockableTabInfo
bool canClose;
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI DockableTabStyle
{
public:
@@ -83,6 +109,10 @@ class BINARYNINJAUIAPI DockableTabStyle
virtual DockableTabStyle* duplicate();
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI DefaultDockableTabStyle : public DockableTabStyle
{
QStyleOptionTab styleForTab(
@@ -103,6 +133,10 @@ class BINARYNINJAUIAPI DefaultDockableTabStyle : public DockableTabStyle
virtual DockableTabStyle* duplicate() override;
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI DockableTabBar : public QAbstractScrollArea
{
Q_OBJECT
@@ -191,6 +225,10 @@ class BINARYNINJAUIAPI DockableTabBar : public QAbstractScrollArea
virtual void wheelEvent(QWheelEvent* event) override;
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI DockableTabBarWithCornerWidget : public QWidget
{
DockableTabBar* m_bar;
@@ -210,6 +248,10 @@ class BINARYNINJAUIAPI DockableTabBarWithCornerWidget : public QWidget
QWidget* cornerWidget() const { return m_cornerWidget; }
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI DockableTabWidget : public QWidget
{
Q_OBJECT
@@ -277,6 +319,10 @@ class BINARYNINJAUIAPI DockableTabWidget : public QWidget
void reparentTab(int oldIdx, DockableTabWidget* target, int newIdx);
};
+/*!
+
+ \ingroup tabwidget
+*/
class BINARYNINJAUIAPI SplitTabWidget : public QWidget
{
Q_OBJECT
diff --git a/ui/taglist.h b/ui/taglist.h
index c5ef0c7d..9b3198d4 100644
--- a/ui/taglist.h
+++ b/ui/taglist.h
@@ -12,7 +12,16 @@
#include "filter.h"
#include "tagtypelist.h"
+/*!
+ \defgroup taglist TagList
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup taglist
+*/
class BINARYNINJAUIAPI TagListModel : public QAbstractItemModel
{
Q_OBJECT
@@ -66,7 +75,10 @@ class BINARYNINJAUIAPI TagListModel : public QAbstractItemModel
QItemSelectionModel* selectionModel, int sortColumn, Qt::SortOrder sortOrder, bool& selectionUpdated);
};
+/*!
+ \ingroup taglist
+*/
class BINARYNINJAUIAPI TagItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -87,7 +99,10 @@ class BINARYNINJAUIAPI TagItemDelegate : public QStyledItemDelegate
virtual void setEditorData(QWidget* editor, const QModelIndex& index) const override;
};
+/*!
+ \ingroup taglist
+*/
class BINARYNINJAUIAPI TagList : public QTreeView, public BinaryNinja::BinaryDataNotification, public FilterTarget
{
Q_OBJECT
@@ -177,7 +192,10 @@ class BINARYNINJAUIAPI TagList : public QTreeView, public BinaryNinja::BinaryDat
void activateFirstItem() override;
};
+/*!
+ \ingroup taglist
+*/
class BINARYNINJAUIAPI TagListWidget : public SidebarWidget
{
Q_OBJECT
@@ -216,7 +234,10 @@ class BINARYNINJAUIAPI TagListWidget : public SidebarWidget
virtual QWidget* headerWidget() override { return m_header; }
};
+/*!
+ \ingroup taglist
+*/
class BINARYNINJAUIAPI TagListDialog : public QDialog
{
Q_OBJECT
@@ -244,7 +265,10 @@ class BINARYNINJAUIAPI TagListDialog : public QDialog
void removeTag();
};
+/*!
+ \ingroup taglist
+*/
class BINARYNINJAUIAPI TagListSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/tagtypelist.h b/ui/tagtypelist.h
index b272113f..284bbfe1 100644
--- a/ui/tagtypelist.h
+++ b/ui/tagtypelist.h
@@ -12,6 +12,16 @@
#define TAGS_UPDATE_CHECK_INTERVAL 200
+/*!
+
+ \defgroup tagtypelist TagTypeList
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup tagtypelist
+*/
class BINARYNINJAUIAPI TagTypeListModel : public QAbstractItemModel, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -48,7 +58,10 @@ class BINARYNINJAUIAPI TagTypeListModel : public QAbstractItemModel, public Bina
void needRepaint();
};
+/*!
+ \ingroup tagtypelist
+*/
class BINARYNINJAUIAPI TagTypeItemDelegate : public QItemDelegate
{
Q_OBJECT
@@ -72,7 +85,10 @@ class BINARYNINJAUIAPI TagTypeItemDelegate : public QItemDelegate
const QModelIndex& index) override;
};
+/*!
+ \ingroup tagtypelist
+*/
class BINARYNINJAUIAPI TagTypeList : public QTableView, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -120,6 +136,10 @@ class BINARYNINJAUIAPI TagTypeList : public QTableView, public BinaryNinja::Bina
bool hasSelection();
};
+/*!
+
+ \ingroup tagtypelist
+*/
class BINARYNINJAUIAPI TagTypeDialogModel : public QAbstractItemModel
{
Q_OBJECT
@@ -142,6 +162,10 @@ class BINARYNINJAUIAPI TagTypeDialogModel : public QAbstractItemModel
virtual QVariant data(const QModelIndex& i, int role) const override;
};
+/*!
+
+ \ingroup tagtypelist
+*/
class BINARYNINJAUIAPI TagTypeSelectDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/textbrowser.h b/ui/textbrowser.h
index d58a0c2f..b62a076b 100644
--- a/ui/textbrowser.h
+++ b/ui/textbrowser.h
@@ -17,6 +17,16 @@
class TextBrowser;
class TextBrowserDownloadThread;
+/*!
+
+ \defgroup textbrowser TextBrowser
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup textbrowser
+*/
class BINARYNINJAUIAPI TextBrowserDownloadCache
{
QMutex m_mutex;
@@ -34,6 +44,10 @@ class BINARYNINJAUIAPI TextBrowserDownloadCache
bool isInProgress(const QUrl& url);
};
+/*!
+
+ \ingroup textbrowser
+*/
class TextBrowserDownloadQueue : public QObject
{
Q_OBJECT
@@ -60,6 +74,10 @@ class TextBrowserDownloadQueue : public QObject
void dataDownloaded(QUrl name, QByteArray contents);
};
+/*!
+
+ \ingroup textbrowser
+*/
class TextBrowserDownloadThread : public QThread
{
Q_OBJECT
@@ -77,6 +95,10 @@ class TextBrowserDownloadThread : public QThread
TextBrowserDownloadThread(TextBrowserDownloadQueue* queue);
};
+/*!
+
+ \ingroup textbrowser
+*/
class BINARYNINJAUIAPI TextBrowser : public QTextBrowser
{
Q_OBJECT
diff --git a/ui/textdialog.h b/ui/textdialog.h
index 81750bf9..74df6315 100644
--- a/ui/textdialog.h
+++ b/ui/textdialog.h
@@ -8,6 +8,16 @@
#include "uitypes.h"
#include "binaryninjaapi.h"
+/*!
+
+ \defgroup textdialog TextDialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup textdialog
+*/
class BINARYNINJAUIAPI TextDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/theme.h b/ui/theme.h
index 51d6491b..9a27429b 100644
--- a/ui/theme.h
+++ b/ui/theme.h
@@ -6,6 +6,12 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+ @addtogroup Theme
+ \ingroup uiapi
+ @{
+*/
+
class BINARYNINJAUIAPI CustomFusionStyle : public QProxyStyle
{
public:
@@ -37,3 +43,7 @@ QColor BINARYNINJAUIAPI avgColor(QColor a, QColor b);
QColor BINARYNINJAUIAPI mixColor(QColor a, QColor b, uint8_t mix);
QColor BINARYNINJAUIAPI getThemeHighlightColor(BNHighlightStandardColor color);
+
+/*!
+ @}
+*/
diff --git a/ui/tokenizedtextview.h b/ui/tokenizedtextview.h
index 3bfd091c..0624564d 100644
--- a/ui/tokenizedtextview.h
+++ b/ui/tokenizedtextview.h
@@ -9,6 +9,16 @@
#include "menus.h"
#include "uicontext.h"
+/*!
+
+ \defgroup tokenizedtextview TokenizedTextView
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup tokenizedtextview
+*/
class BINARYNINJAUIAPI TokenizedTextViewHistoryEntry : public HistoryEntry
{
size_t m_topLine, m_cursorLine;
@@ -27,6 +37,10 @@ class BINARYNINJAUIAPI TokenizedTextViewHistoryEntry : public HistoryEntry
virtual bool deserialize(const Json::Value& value) override;
};
+/*!
+
+ \ingroup tokenizedtextview
+*/
class BINARYNINJAUIAPI TokenizedTextView :
public QAbstractScrollArea,
public View,
diff --git a/ui/transformparam.h b/ui/transformparam.h
index 5c67650a..e0ecf3c5 100644
--- a/ui/transformparam.h
+++ b/ui/transformparam.h
@@ -4,6 +4,16 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \defgroup transformparam TransformParam
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup transformparam
+*/
class BINARYNINJAUIAPI TransformParameterDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/typedialog.h b/ui/typedialog.h
index 7388a83c..c8768559 100644
--- a/ui/typedialog.h
+++ b/ui/typedialog.h
@@ -17,6 +17,17 @@
class GetTypesListThread;
class ParseTypeThread;
#else
+
+/*!
+
+ \defgroup typedialog TypeDialog
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup typedialog
+*/
class BINARYNINJAUIAPI GetTypesListThread : public QThread
{
Q_OBJECT
@@ -39,7 +50,10 @@ class BINARYNINJAUIAPI GetTypesListThread : public QThread
Q_DECLARE_METATYPE(BinaryNinja::QualifiedNameAndType);
-//! QThread subclass for handling type string parsing to avoid UI interruptions.
+/*! QThread subclass for handling type string parsing to avoid UI interruptions.
+
+ \ingroup typedialog
+*/
class ParseTypeThread : public QThread
{
Q_OBJECT
@@ -58,6 +72,10 @@ class ParseTypeThread : public QThread
};
#endif
+/*!
+
+ \ingroup typedialog
+*/
class BINARYNINJAUIAPI TypeDialog : public QDialog
{
Q_OBJECT
diff --git a/ui/typeview.h b/ui/typeview.h
index e47823b3..1aa89cc8 100644
--- a/ui/typeview.h
+++ b/ui/typeview.h
@@ -21,6 +21,16 @@
#define TYPE_VIEW_UPDATE_CHECK_INTERVAL 200
+/*!
+
+ \defgroup typeview TypeView
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup typeview
+*/
enum TypeLinesFilteredReason
{
TypeLinesFilterNotApplied,
@@ -30,14 +40,20 @@ enum TypeLinesFilteredReason
TypeLinesFilteredByBothFilters
};
+/*!
+ \ingroup typeview
+*/
struct BINARYNINJAUIAPI TypeDefinitionLinesAndFilterStatus
{
std::vector<BinaryNinja::TypeDefinitionLine> lines;
TypeLinesFilteredReason reason;
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypeViewHistoryEntry : public HistoryEntry
{
BinaryNinja::QualifiedName m_cursorType;
@@ -78,6 +94,10 @@ class BINARYNINJAUIAPI TypeViewHistoryEntry : public HistoryEntry
class TypesContainer;
+/*!
+
+ \ingroup typeview
+*/
enum ModifyExistingMember
{
DontModify,
@@ -85,6 +105,10 @@ enum ModifyExistingMember
ToggleSign
};
+/*!
+
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypeView : public QAbstractScrollArea, public View, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -294,7 +318,10 @@ class BINARYNINJAUIAPI TypeView : public QAbstractScrollArea, public View, publi
void expandAll();
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI LineNumberArea : public QWidget
{
public:
@@ -309,6 +336,10 @@ class BINARYNINJAUIAPI LineNumberArea : public QWidget
TypeView* m_typeEditor;
};
+/*!
+
+ \ingroup typeview
+*/
class TypeViewType : public ViewType
{
static TypeViewType* m_instance;
@@ -320,7 +351,10 @@ class TypeViewType : public ViewType
static void init();
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypeFilterEdit : public QLineEdit
{
Q_OBJECT
@@ -335,7 +369,10 @@ class BINARYNINJAUIAPI TypeFilterEdit : public QLineEdit
void focusView();
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypeFilter : public QWidget
{
Q_OBJECT
@@ -365,7 +402,10 @@ class BINARYNINJAUIAPI TypeFilter : public QWidget
void clearTextFilter();
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypesContainer : public QWidget, public ViewContainer
{
Q_OBJECT
@@ -387,7 +427,10 @@ class BINARYNINJAUIAPI TypesContainer : public QWidget, public ViewContainer
virtual void focusInEvent(QFocusEvent* event) override;
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypeViewSidebarWidget : public SidebarWidget
{
Q_OBJECT
@@ -408,7 +451,10 @@ class BINARYNINJAUIAPI TypeViewSidebarWidget : public SidebarWidget
void showAddMenu();
};
+/*!
+ \ingroup typeview
+*/
class BINARYNINJAUIAPI TypeViewSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/uicomment.h b/ui/uicomment.h
index d80444ec..2856c3c0 100644
--- a/ui/uicomment.h
+++ b/ui/uicomment.h
@@ -3,7 +3,17 @@
#include "binaryninjaapi.h"
#include "uicontext.h"
+/*!
+
+ \defgroup uicomment UIComment
+ \ingroup uiapi
+*/
+
// these are only intended to be used for the ui
+/*!
+
+ \ingroup uicomment
+*/
typedef enum
{
FunctionComment,
@@ -11,6 +21,10 @@ typedef enum
DataComment
} UICommentType;
+/*!
+
+ \ingroup uicomment
+*/
class UIComment
{
public:
diff --git a/ui/uicontext.h b/ui/uicontext.h
index 424411ab..352a62dd 100644
--- a/ui/uicontext.h
+++ b/ui/uicontext.h
@@ -25,8 +25,16 @@ class Pane;
struct SelectionInfoForXref;
/*!
+
+ \defgroup uicontext UIContext
+ \ingroup uiapi
+*/
+
+/*!
Interface used to receive notifications related to files and contexts. Many notifications include the ability
to modify the behavior of the context.
+
+ \ingroup uicontext
*/
class BINARYNINJAUIAPI UIContextNotification
{
@@ -220,6 +228,10 @@ class BINARYNINJAUIAPI UIContextNotification
}
};
+/*!
+
+ \ingroup uicontext
+*/
class BINARYNINJAUIAPI UIContextHandler
{
public:
@@ -229,6 +241,10 @@ class BINARYNINJAUIAPI UIContextHandler
virtual void registerFileOpenMode(const QString& buttonName, const QString& description, const QString& action);
};
+/*!
+
+ \ingroup uicontext
+*/
class BINARYNINJAUIAPI UIContext
{
static UIContextHandler* m_handler;
@@ -453,6 +469,10 @@ class BINARYNINJAUIAPI UIContext
Q_DECLARE_METATYPE(UIContext*)
+/*!
+ @addtogroup uicontext
+ @{
+*/
void BINARYNINJAUIAPI InitUIViews();
void BINARYNINJAUIAPI InitUIActions();
@@ -460,3 +480,7 @@ void BINARYNINJAUIAPI InitUIPlugins();
void BINARYNINJAUIAPI SetCurrentUIPluginLoadOrder(BNPluginLoadOrder order);
void BINARYNINJAUIAPI AddRequiredUIPluginDependency(const std::string& name);
void BINARYNINJAUIAPI AddOptionalUIPluginDependency(const std::string& name);
+
+/*!
+ @}
+*/
diff --git a/ui/uitypes.h b/ui/uitypes.h
index e0348acd..9c1dadd3 100644
--- a/ui/uitypes.h
+++ b/ui/uitypes.h
@@ -53,6 +53,12 @@
}
#endif
+/*!
+ @addtogroup UITypes
+ \ingroup uiapi
+ @{
+*/
+
// The Python bindings generator does not recognize automatic conversion of API types into their
// Python equivalents if using templates (Ref<*>), so we typedef all API references so that
// the Python bindings can be easily generated for them.
@@ -99,3 +105,7 @@ typedef BinaryNinja::Ref<BinaryNinja::WebsocketProvider> WebsocketProviderRef;
typedef BinaryNinja::Ref<BinaryNinja::RepoPlugin> RepoPluginRef;
typedef BinaryNinja::Ref<BinaryNinja::Repository> RepositoryRef;
typedef BinaryNinja::Ref<BinaryNinja::RepositoryManager> RepositoryManagerRef;
+
+/*!
+ @}
+*/
diff --git a/ui/util.h b/ui/util.h
index 7b2f97d6..bb2a9b50 100644
--- a/ui/util.h
+++ b/ui/util.h
@@ -8,6 +8,12 @@
#include <optional>
+/*!
+ @addtogroup Util
+ \ingroup uiapi
+ @{
+*/
+
std::string BINARYNINJAUIAPI getStringForLocalVariable(ArchitectureRef arch, FunctionRef func, BinaryNinja::Variable localVar);
std::string BINARYNINJAUIAPI getStringForRegisterValue(ArchitectureRef arch, BinaryNinja::RegisterValue value);
std::string BINARYNINJAUIAPI getPossibleValueSetStateName(BNRegisterValueType state);
@@ -24,3 +30,7 @@ bool BINARYNINJAUIAPI showDisassemblyPreview(QWidget* parent, ViewFrame* frame,
void BINARYNINJAUIAPI showTextTooltip(QWidget* parent, const QPoint& previewPos, const QString& text);
bool BINARYNINJAUIAPI isBinaryNinjaDataBase(QFileInfo& info, QFileAccessor& accessor);
+
+/*!
+ @}
+*/
diff --git a/ui/variablelist.h b/ui/variablelist.h
index bbf0a51a..e974f6a3 100644
--- a/ui/variablelist.h
+++ b/ui/variablelist.h
@@ -10,15 +10,27 @@
#include "uitypes.h"
#include "viewframe.h"
-//! A variable list item can represent either a function-local variable, or a
-//! data variable referenced by the current function.
+/*!
+
+ \defgroup variablelist VariableList
+ \ingroup uiapi
+*/
+
+/*! A variable list item can represent either a function-local variable, or a
+ data variable referenced by the current function.
+
+ \ingroup variablelist
+*/
enum class VariableListItemType
{
LocalVariable,
DataVariable
};
-//! An item part of VariableListModel.
+/*! An item part of VariableListModel.
+
+ \ingroup variablelist
+*/
class VariableListItem
{
FunctionRef m_func;
@@ -74,7 +86,10 @@ class VariableListItem
bool isUserDefined() const;
};
-//! The backing model for the variable list widget, holds VariableListItem.
+/*! The backing model for the variable list widget, holds VariableListItem.
+
+ \ingroup variablelist
+*/
class BINARYNINJAUIAPI VariableListModel : public QAbstractListModel
{
Q_OBJECT
@@ -113,6 +128,10 @@ class BINARYNINJAUIAPI VariableListModel : public QAbstractListModel
virtual QVariant headerData(int column, Qt::Orientation orientation, int role) const override;
};
+/*!
+
+ \ingroup variablelist
+*/
class VariableListItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -124,7 +143,10 @@ class VariableListItemDelegate : public QStyledItemDelegate
QSize sizeHint(const QStyleOptionViewItem& opt, const QModelIndex& index) const;
};
-//! The main variable list dock widget.
+/*! The main variable list dock widget.
+
+ \ingroup variablelist
+*/
class BINARYNINJAUIAPI VariableList : public SidebarWidget
{
Q_OBJECT
@@ -178,6 +200,10 @@ class BINARYNINJAUIAPI VariableList : public SidebarWidget
void setSelectedVariableDeadStoreElimination(BNDeadStoreElimination dse);
};
+/*! The main variable list dock widget.
+
+ \ingroup variablelist
+*/
class BINARYNINJAUIAPI VariableListSidebarWidgetType : public SidebarWidgetType
{
public:
diff --git a/ui/viewframe.h b/ui/viewframe.h
index 21cbc6f1..25937dfd 100644
--- a/ui/viewframe.h
+++ b/ui/viewframe.h
@@ -21,7 +21,16 @@
#include "action.h"
#include "sidebar.h"
-// this struct is used to pass selection information for cross references
+/*!
+
+ \defgroup viewframe ViewFrame
+ \ingroup uiapi
+*/
+
+/*! This struct is used to pass selection information for cross references
+
+ \ingroup viewframe
+*/
struct SelectionInfoForXref
{
// Check these booleans before accessing the address/type/variable info,
@@ -60,6 +69,10 @@ struct SelectionInfoForXref
bool isValid() const { return addrValid || typeValid || typeFieldValid || localVarValid; }
};
+/*!
+
+ \ingroup viewframe
+*/
class BINARYNINJAUIAPI HistoryEntry : public BinaryNinja::RefCountObject
{
QString m_viewType;
@@ -96,7 +109,10 @@ class TransformParameterDialog;
class ViewPaneHeaderSubtypeWidget;
// struct BinaryNinjaCore::LinearDisassemblyLine;
+/*!
+ \ingroup viewframe
+*/
class BINARYNINJAUIAPI View
{
protected:
@@ -243,7 +259,10 @@ class BINARYNINJAUIAPI View
static void registerLateActions();
};
+/*!
+ \ingroup viewframe
+*/
class BINARYNINJAUIAPI ViewNavigationMode
{
View* m_view;
@@ -260,7 +279,10 @@ class BINARYNINJAUIAPI ViewNavigationMode
~ViewNavigationMode() { m_view->setNavigationMode(m_mode); }
};
+/*!
+ \ingroup viewframe
+*/
class BINARYNINJAUIAPI ViewLocation
{
bool m_valid = false;
@@ -312,7 +334,10 @@ class BINARYNINJAUIAPI ViewLocation
bool operator!=(const ViewLocation& other) const { return !((*this) == other); }
};
+/*!
+ \ingroup viewframe
+*/
class BINARYNINJAUIAPI ViewContainer
{
public:
@@ -324,7 +349,10 @@ class SymbolsView;
class ViewFrame;
class ViewPane;
+/*!
+ \ingroup viewframe
+*/
class InitialNavigation: public BinaryNinja::BinaryDataNotification
{
ViewFrame* m_frame;
@@ -339,7 +367,10 @@ public:
virtual void OnSymbolAdded(BinaryNinja::BinaryView* view, BinaryNinja::Symbol* symbol) override;
};
+/*!
+ \ingroup viewframe
+*/
class BINARYNINJAUIAPI ViewFrame : public QWidget
{
Q_OBJECT
diff --git a/ui/viewlist.h b/ui/viewlist.h
index e79f76b5..4437b7e7 100644
--- a/ui/viewlist.h
+++ b/ui/viewlist.h
@@ -6,6 +6,16 @@
#include "menus.h"
#include "action.h"
+/*!
+
+ \defgroup viewlist ViewList
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup viewlist
+*/
class BINARYNINJAUIAPI ViewList : public MenuHelper
{
Q_OBJECT
diff --git a/ui/viewtype.h b/ui/viewtype.h
index e68c02e2..56d861cd 100644
--- a/ui/viewtype.h
+++ b/ui/viewtype.h
@@ -8,6 +8,16 @@
class ViewFrame;
+/*!
+
+ \defgroup viewtype ViewType
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup viewtype
+*/
class BINARYNINJAUIAPI ViewType
{
QString m_name, m_longName;
@@ -30,7 +40,10 @@ class BINARYNINJAUIAPI ViewType
static void registerViewType(ViewType* type);
};
+/*!
+ \ingroup viewtype
+*/
class BINARYNINJAUIAPI ViewTypeContainer
{
public:
diff --git a/ui/xreflist.h b/ui/xreflist.h
index 5de15c6b..112573ee 100644
--- a/ui/xreflist.h
+++ b/ui/xreflist.h
@@ -27,6 +27,17 @@
#include "expandablegroup.h"
class XrefHeader;
+
+/*!
+
+ \defgroup xreflist XrefList
+ \ingroup uiapi
+*/
+
+/*!
+
+ \ingroup xreflist
+*/
class XrefItem
{
public:
@@ -96,7 +107,10 @@ class XrefItem
bool operator!=(const XrefItem& other) const;
};
+/*!
+ \ingroup xreflist
+*/
class XrefHeader : public XrefItem
{
protected:
@@ -116,7 +130,10 @@ class XrefHeader : public XrefItem
virtual int childCount() const = 0;
};
+/*!
+ \ingroup xreflist
+*/
class XrefFunctionHeader : public XrefHeader
{
std::deque<XrefItem*> m_refs;
@@ -132,7 +149,10 @@ class XrefFunctionHeader : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefTypeHeader : public XrefHeader
{
std::deque<XrefItem*> m_refs;
@@ -147,7 +167,10 @@ class XrefTypeHeader : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefVariableHeader : public XrefHeader
{
std::deque<XrefItem*> m_refs;
@@ -162,7 +185,10 @@ class XrefVariableHeader : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefCodeReferences : public XrefHeader
{
std::map<FunctionRef, XrefFunctionHeader*> m_refs;
@@ -178,7 +204,10 @@ class XrefCodeReferences : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefDataReferences : public XrefHeader
{
std::deque<XrefItem*> m_refs;
@@ -192,7 +221,10 @@ class XrefDataReferences : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefTypeReferences : public XrefHeader
{
std::map<BinaryNinja::QualifiedName, XrefTypeHeader*> m_refs;
@@ -208,7 +240,10 @@ class XrefTypeReferences : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefVariableReferences : public XrefHeader
{
std::map<BinaryNinja::Variable, XrefVariableHeader*> m_refs;
@@ -224,7 +259,10 @@ class XrefVariableReferences : public XrefHeader
virtual XrefItem* child(int i) const override;
};
+/*!
+ \ingroup xreflist
+*/
class XrefRoot : public XrefHeader
{
std::map<XrefItem::XrefType, XrefHeader*> m_refs;
@@ -240,6 +278,10 @@ class XrefRoot : public XrefHeader
virtual XrefHeader* child(int i) const override;
};
+/*!
+
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceTreeModel : public QAbstractItemModel
{
Q_OBJECT
@@ -285,7 +327,10 @@ class BINARYNINJAUIAPI CrossReferenceTreeModel : public QAbstractItemModel
};
+/*!
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceTableModel : public QAbstractTableModel
{
Q_OBJECT
@@ -345,7 +390,10 @@ class BINARYNINJAUIAPI CrossReferenceTableModel : public QAbstractTableModel
void startUpdateTimer(FunctionRef func);
};
+/*!
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -369,7 +417,10 @@ class BINARYNINJAUIAPI CrossReferenceItemDelegate : public QStyledItemDelegate
size_t getMaxUIItems() const { return m_maxUIItems; }
};
+/*!
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
@@ -401,6 +452,11 @@ class BINARYNINJAUIAPI CrossReferenceFilterProxyModel : public QSortFilterProxyM
};
class CrossReferenceWidget;
+
+/*!
+
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceContainer
{
protected:
@@ -426,7 +482,10 @@ class BINARYNINJAUIAPI CrossReferenceContainer
virtual void updateMaxUIItems(size_t value) = 0;
};
+/*!
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceTree : public QTreeView, public CrossReferenceContainer, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -470,7 +529,10 @@ class BINARYNINJAUIAPI CrossReferenceTree : public QTreeView, public CrossRefere
void doRepaint();
};
+/*!
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceTable : public QTableView, public CrossReferenceContainer, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -514,6 +576,11 @@ class BINARYNINJAUIAPI CrossReferenceTable : public QTableView, public CrossRefe
class ExpandableGroup;
class QCheckboxCombo;
+
+/*!
+
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceWidget : public SidebarWidget, public UIContextNotification
{
Q_OBJECT
@@ -595,7 +662,10 @@ class BINARYNINJAUIAPI CrossReferenceWidget : public SidebarWidget, public UICon
void directionChanged(int change, bool checked);
};
+/*!
+ \ingroup xreflist
+*/
class BINARYNINJAUIAPI CrossReferenceSidebarWidgetType : public SidebarWidgetType
{
public:
@@ -606,11 +676,13 @@ class BINARYNINJAUIAPI CrossReferenceSidebarWidgetType : public SidebarWidgetTyp
// https://github.com/CuriousCrow/QCheckboxCombo
-/*
- * QCheckboxCombo is a combobox widget that contains items with checkboxes
- * User can select proper items by checking corresponding checkboxes.
- * Resulting text will contain list of selected items separated by delimiter (", " by default)
- */
+/*! QCheckboxCombo is a combobox widget that contains items with checkboxes.
+
+ User can select proper items by checking corresponding checkboxes.
+ Resulting text will contain list of selected items separated by delimiter (", " by default)
+
+ \ingroup xreflists
+*/
class BINARYNINJAUIAPI QCheckboxCombo : public QComboBox
{
Q_OBJECT