ソースを参照

Prettify doxygen documentation

Alexey Edelev 5 年 前
コミット
f9fd1a3349
5 ファイル変更1802 行追加3 行削除
  1. 4 1
      CMakeLists.txt
  2. 2 2
      doxygen/Doxyfile.in
  3. 1718 0
      doxygen/customdoxygen.css
  4. 21 0
      doxygen/footer.html
  5. 57 0
      doxygen/header.html

+ 4 - 1
CMakeLists.txt

@@ -86,7 +86,10 @@ if(NOT DOXYGEN_FOUND)
 endif()
 if(DEFINED DOXYGEN_EXECUTABLE)
     message(STATUS "-- Using doxygen to generate documenation: ${DOXYGEN_EXECUTABLE}")
-    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen/customdoxygen.css ${CMAKE_CURRENT_BINARY_DIR}/customdoxygen.css COPYONLY)
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen/header.html ${CMAKE_CURRENT_BINARY_DIR}/header.html COPYONLY)
+
     add_custom_target(doc
         ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}

+ 2 - 2
Doxyfile.in → doxygen/Doxyfile.in

@@ -1157,7 +1157,7 @@ HTML_FILE_EXTENSION    = .html
 # of the possible markers and block names see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_HEADER            =
+HTML_HEADER            = header.html
 
 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
 # generated HTML page. If the tag is left blank doxygen will generate a standard
@@ -1179,7 +1179,7 @@ HTML_FOOTER            =
 # obsolete.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_STYLESHEET        =
+HTML_STYLESHEET        = customdoxygen.css
 
 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
 # cascading style sheets that are included after the standard style sheets

+ 1718 - 0
doxygen/customdoxygen.css

@@ -0,0 +1,1718 @@
+body, table, div, p, dl {
+	font: 400 16px/22px 'Titillium Web',sans-serif;
+    color: #404244;
+}
+
+.sm-dox ul a {
+    font: 400 16px/22px 'Titillium Web',sans-serif;
+    text-shadow: none;
+    color: #17a81a;
+    font-size: 110%;
+    background-image: none;
+    background-color: #fff;
+}
+
+.sm-dox ul {
+    border-radius: 0px;
+}
+
+.sm-dox ul a:hover {
+    font: 400 16px/22px 'Titillium Web',sans-serif;
+    text-shadow: none;
+    color: #fff;
+    font-size: 110%;
+    background-image: none;
+    background-color: #17a81a;
+}
+
+.sm-dox a {
+    font: 400 16px/22px 'Titillium Web',sans-serif;
+    text-shadow: none;
+    color: #17a81a;
+    font-size: 110%;
+    background-image: none;
+    background-color: #fff;
+}
+
+.sm-dox a:hover {
+    font: 400 16px/22px 'Titillium Web',sans-serif;
+    text-shadow: none;
+    color: #fff;
+    font-size: 110%;
+    background-image: none;
+    background-color: #17a81a;
+}
+
+
+p.reference, p.definition {
+	font: 400 16px/22px 'Titillium Web',sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+    color: #404244;
+    font-size: 1.75em;
+}
+
+.title {
+	font: 400 2.25em 'Titillium Web',sans-serif;
+	margin: 10px 2px;
+    color: #404244;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #eee;
+    color: #404244;
+    font-size: 1.75em;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	margin-right: 15px;
+}
+
+dt {
+	font-weight: bold;
+}
+
+ul.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+	column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	border: 1px solid #eee;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #17a81a;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #17a81a;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #FFFFFF;
+	border: 1px solid #eee;
+}
+
+.contents a.qindexHL:visited {
+        color: #FFFFFF;
+}
+
+a.el {
+	font-weight: bold;
+    color: #17a81a;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #17a81a; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #17a81a; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+ul {
+  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+}
+
+#side-nav ul {
+  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+  text-align: left;
+  direction: ltr;
+  background-color: #3a4055;
+  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+  overflow-y: hidden;
+}
+
+pre.fragment {
+    border: 1px solid #eee;
+    background-color: #FFFFFF;
+    color: #404244;
+    padding: 4px 6px;
+    margin: 4px 8px 4px 2px;
+    overflow: auto;
+    word-wrap: break-word;
+    font-size:  9pt;
+    line-height: 125%;
+    font-family: monospace, fixed;
+    font-size: 105%;
+}
+
+div.fragment {
+    padding: 10px;
+    margin: 4px 8px 4px 2px;
+    background-color: #3a4055;
+    color: #fff;
+    border: 1px solid #eee;
+}
+
+div.line {
+    font-family: monospace, fixed;
+    font-size: 13px;
+    min-height: 13px;
+    line-height: 1.4;
+    text-wrap: unrestricted;
+    white-space: -moz-pre-wrap; /* Moz */
+    white-space: -pre-wrap;     /* Opera 4-6 */
+    white-space: -o-pre-wrap;   /* Opera 7 */
+    white-space: pre-wrap;      /* CSS3  */
+    word-wrap: break-word;      /* IE 5.5+ */
+    text-indent: -53px;
+    padding-left: 53px;
+    padding-bottom: 0px;
+    margin: 0px;
+    color: #fff;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+    color: #fff;
+}
+
+div.line.glow {
+    background-color: cyan;
+}
+
+
+span.lineno {
+    padding-right: 4px;
+    text-align: right;
+    border-right: 1px solid #eee;
+    background-color: #f9f9f9;
+    white-space: pre;
+    color: #404244;
+}
+
+.lineno {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+div.ah, span.ah {
+    font-weight: bold;
+    color: #FFFFFF;
+    margin-bottom: 3px;
+    margin-top: 3px;
+    padding: 0.2em;
+    border: solid #eee;
+    background-color: #fff
+}
+
+div.classindex ul {
+    list-style: none;
+    padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+    margin-left: 16px;
+    margin-top: 12px;
+    font-weight: bold;
+}
+
+div.groupText {
+    margin-left: 16px;
+    font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: white;
+	font-weight: bold;
+	border: 1px solid #eee;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: white;
+	border: 1px solid #eee;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl, img.inline {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #ffff55
+}
+
+span.keywordtype {
+	color: #21be2b
+}
+
+span.keywordflow {
+	color: #ffff55
+}
+
+span.comment {
+	color: #55ffff
+}
+
+span.preprocessor {
+	color: #fff
+}
+
+span.stringliteral {
+	color: #aaaaaa
+}
+
+span.charliteral {
+	color: #aaaaaa
+}
+
+span.vhdldigit { 
+	color: #ff55ff 
+}
+
+span.vhdlchar { 
+	color: #ff55ff 
+}
+
+span.vhdlkeyword { 
+	color: #21be2b 
+}
+
+span.vhdllogic { 
+	color: #ffff55 
+}
+
+blockquote {
+    background-color: #f9f9f9;
+    border-left: 1px solid #eee;
+    margin: 0 24px 0 4px;
+    padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+   border-left: 0;
+   border-right: 2px solid #9CAFD4;
+   margin: 0 4px 0 24px;
+   padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+
+#MSearchField {
+    color: #003399;
+    font: 400 100% 'Titillium Web',sans-serif;
+    background-color: #fff;
+    background-image: none;
+}
+
+#MSearchSelect {
+    background-color: #fff;
+    background-image: none;
+}
+
+#MSearchBox .left {
+    background-color: #fff;
+    background-image: none;
+}
+
+#MSearchBox .right {
+    background-color: #fff;
+    background-image: none;
+}
+
+#MSearchBox {
+    border: 1px solid #eee;
+}
+
+#MSearchResultsWindow {
+    background-color: #fff;
+    border-left: 1px solid #eee;
+}
+
+.SRSymbol {
+    font: 400 100% 'Titillium Web',sans-serif;
+}
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #eee;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+    border-spacing: 0px;
+    padding: 0px;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+    background-color: cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+    background-color: #fff;
+    border: none;
+    margin: 4px;
+    padding: 1px 0 0 8px;
+}
+
+.mdescLeft {
+    font-size: 110%;
+    font-family: 'Titillium Web',sans-serif;
+    font-weight: 400;
+    padding: 0px 8px 4px 8px;
+    color: #555;
+}
+
+.mdescRight {
+    font-size: 110%;
+    font-family: 'Titillium Web',sans-serif;
+    font-weight: 400;
+    padding: 0px 8px 4px 8px;
+    color: #555;
+}
+
+.memSeparator {
+    border-bottom: 1px solid #DEE4F0;
+    line-height: 1px;
+    margin: 0px;
+    padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+    white-space: nowrap;
+}
+
+.memItemRight {
+    width: 100%;
+    font-size: 110%;
+    font-family: 'Titillium Web',sans-serif;
+    font-weight: 400;
+}
+
+.memTemplParams {
+    color: #404244;
+    white-space: nowrap;
+    font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+    padding: 8px;
+    border-top: 1px solid #eee;
+    border-left: 1px solid #eee;
+    border-right: 1px solid #eee;
+    margin-bottom: -1px;
+    background-color: #fff;
+    line-height: 1.25;
+    font-weight: 300;
+    float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #404244;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+    padding: 0;
+    margin-bottom: 10px;
+    margin-right: 5px;
+    display: table !important;
+    width: 100%;
+}
+
+.memname {
+    font-size: 110%;
+    font-weight: 400;
+    margin-left: 6px;
+}
+
+.memname td {
+    vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+    border-top: 1px solid #eee;
+    border-left: 1px solid #eee;
+    border-right: 1px solid #eee;
+    padding: 6px 0px 6px 0px;
+    color: #404244;
+    font-weight: bold;
+    background-color: #fff;
+}
+
+.overload {
+    font-family: "courier new",courier,monospace;
+    font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+    border-bottom: 1px solid #eee;      
+    border-left: 1px solid #eee;      
+    border-right: 1px solid #eee; 
+    padding: 6px 10px 2px 10px;
+    border-top-width: 0;
+    background-color: #FFFFFF;
+}
+
+dl.reflist dt {
+    padding: 5px;
+}
+
+dl.reflist dd {
+    margin: 0px 0px 10px 0px;
+    padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #404244;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+    line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+    margin-left: 0px;
+    padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+    font-weight: bold;
+    vertical-align: top;
+}
+        
+.params .paramtype, .tparams .paramtype {
+    font-style: italic;
+    vertical-align: top;
+}       
+        
+.params .paramdir, .tparams .paramdir {
+    font-family: "courier new",courier,monospace;
+    vertical-align: top;
+}
+
+table.mlabels {
+    border-spacing: 0px;
+    font-size: 100%;
+}
+
+td.mlabels-left {
+    width: 100%;
+    padding: 0px;
+}
+
+td.mlabels-right {
+    vertical-align: top;
+    padding: 0px;
+    white-space: nowrap;
+}
+
+span.mlabels {
+    margin-left: 8px;
+}
+
+span.mlabel {
+    text-shadow: none;
+    color: #404244;
+    margin-right: 4px;
+    padding: 2px 3px;
+    font-size: 100%;
+    white-space: nowrap;
+    vertical-align: middle;
+}
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+    margin: 10px 0px;
+    width: 100%;
+}
+
+.directory table {
+    border: 1px solid #eee;
+    border-collapse: collapse;
+}
+
+.directory td {
+    margin: 0px;
+    padding: 0px;
+    vertical-align: top;
+    border: 1px solid #eee;
+}
+
+.directory td.entry {
+    white-space: nowrap;
+    padding-right: 6px;
+    padding-top: 3px;
+    font-size: 110%;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+    width: 100%;
+    padding-left: 6px;
+    padding-right: 6px;
+    padding-top: 3px;
+    border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+    white-space: nowrap;
+    width: 100%;
+    text-align: right;
+    font-size: 9pt;
+}
+
+.directory .levels span {
+    cursor: pointer;
+    padding-left: 2px;
+    padding-right: 2px;
+    color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: 'Titillium Web',sans-serif;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px 'Titillium Web',sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #17a81a;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+    /*width: 100%;*/
+    margin-bottom: 10px;
+    border: 1px solid #eee;
+    border-spacing: 0px;
+}
+
+.fieldtable td, .fieldtable th {
+    padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+    white-space: nowrap;
+    border-right: 1px solid #eee;
+    border-bottom: 1px solid #eee;
+    vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+    padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+    border-bottom: 1px solid #eee;
+    /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+    margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+    margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+    border-bottom: none;
+}
+
+.fieldtable th {
+    background-color: #ffff;
+    font-size: 90%;
+    color: #404244;
+    padding-bottom: 4px;
+    padding-top: 5px;
+    text-align:left;
+    font-weight: 400;
+    border-bottom: 1px solid #eee;
+}
+
+.tabsearch {
+    top: 0px;
+    left: 10px;
+    height: 36px;
+    z-index: 101;
+    overflow: hidden;
+    font-size: 13px;
+}
+
+.navpath ul
+{
+    font-size: 80%;
+    height: 30px;
+    line-height: 30px;
+    color: #404244;
+    border: solid 1px #eee;
+    overflow: hidden;
+    margin: 0px;
+    padding: 0px;
+}
+
+.navpath li
+{
+    list-style-type: none;
+    float: left;
+    padding-left: 10px;
+    padding-right: 15px;
+    color: #404244;
+}
+
+.navpath li.navelem a
+{
+    height:32px;
+    display:block;
+    text-decoration: none;
+    outline: none;
+    color: #404244;
+    font-family: 'Titillium Web',sans-serif;
+    text-shadow: none;
+    text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#17a81a;
+}
+
+.navpath li.footer
+{
+    list-style-type: none;
+    float: right;
+    padding-left: 10px;
+    padding-right: 15px;
+    color: #364D7C;
+    font-size: 8pt;
+}
+
+
+div.summary
+{
+    float: right;
+    font-size: 100%;
+    padding-right: 5px;
+    width: 50%;
+    text-align: right;
+}       
+
+div.summary a
+{
+    white-space: nowrap;
+}
+
+table.classindex
+{
+    margin: 10px;
+    white-space: nowrap;
+    margin-left: 3%;
+    margin-right: 3%;
+    width: 94%;
+    border: 0;
+    border-spacing: 0; 
+    padding: 0;
+}
+
+div.ingroups
+{
+    font-size: 50%;
+    width: 50%;
+    text-align: left;
+}
+
+div.ingroups a
+{
+    white-space: nowrap;
+    text-decoration: none;
+}
+
+div.ingroups a:hover
+{
+    white-space: nowrap;
+    text-decoration: none;
+}
+
+div.header
+{
+    background-color: #fff;
+    margin:  0px;
+    border-bottom: 1px solid #eee;
+}
+
+div.headertitle
+{
+    padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+    text-align: right;
+    direction: rtl;
+}
+
+dl {
+    padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+    margin-left: 0px;
+    padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+    margin-right: 0px;
+    padding-right: 0px;
+}
+
+dl.note {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.note.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.warning, dl.attention {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.pre, dl.post, dl.invariant {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.deprecated {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.deprecated.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.todo {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.todo.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.test {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.test.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.bug {
+    margin-left: -7px;
+    padding-left: 3px;
+    border-left: 4px solid;
+    border-color: #eee;
+}
+
+dl.bug.DocNodeRTL {
+    margin-left: 0;
+    padding-left: 0;
+    border-left: 0;
+    margin-right: -7px;
+    padding-right: 3px;
+    border-right: 4px solid;
+    border-color: #eee;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% 'Titillium Web',sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% 'Titillium Web',sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% 'Titillium Web',sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #eee;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+    margin-bottom:50px;
+}
+
+dl.citelist dt {
+    color:#334975;
+    float:left;
+    font-weight:bold;
+    margin-right:10px;
+    padding:5px;
+}
+
+dl.citelist dd {
+    margin:2px 0;
+    padding:5px 0;
+}
+
+div.toc {
+    padding: 14px 25px;
+    background-color: #fff;
+    border: 1px solid #eee;
+    float: right;
+    height: auto;
+    margin: 0 5px 5px 5px;
+    width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+  float: left !important;
+  text-align: right;
+}
+
+div.toc li {
+    font: 10px/1.2 'Titillium Web',sans-serif;
+    margin-top: 5px;
+    padding-left: 10px;
+    padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+  background-position-x: right !important;
+  padding-left: 0 !important;
+  padding-right: 10px;
+}
+
+div.toc h3 {
+    font: bold 12px/1.2 'Titillium Web',sans-serif;
+    color: #404244;
+    border-bottom: 0 none;
+    margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+  margin-left: 0 !important;
+  margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+    margin-left: 0 !important;
+    margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+    margin-left: 0 !important;
+    margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+    margin-left: 0 !important;
+    margin-right: 45px;
+}
+
+.inherit_header {
+    font-weight: bold;
+    color: gray;
+    cursor: pointer;
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+.inherit_header td {
+    padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+    display: none;
+}
+
+tr.heading h2 {
+    color: #404244;
+    font-size: 1.75em;
+    margin-top: 12px;
+    margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+    position: absolute;
+    display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+/*
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTableHead tr {
+}
+
+table.markdownTableBodyLeft td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+	background-color: #17a81a;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter {
+	text-align: center
+}
+*/
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+    background-color: #FFFFFF;
+    color: #404244;
+    font-size: 110%;
+    padding-bottom: 4px;
+    padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+    text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+    text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+.DocNodeRTL {
+  text-align: right;
+  direction: rtl;
+}
+
+.DocNodeLTR {
+  text-align: left;
+  direction: ltr;
+}
+
+table.DocNodeRTL {
+   width: auto;
+   margin-right: 0;
+   margin-left: auto;
+}
+
+table.DocNodeLTR {
+   width: auto;
+   margin-right: auto;
+   margin-left: 0;
+}
+
+tt, code, kbd, samp
+{
+  display: inline-block;
+  direction:ltr; 
+}
+/* @end */
+
+u {
+    text-decoration: underline;
+}
+
+ul.sm-dox {
+    background-color: #fff;
+    color: #17a81a;
+    background-image: none;
+} 

+ 21 - 0
doxygen/footer.html

@@ -0,0 +1,21 @@
+<!-- HTML footer for doxygen 1.8.16-->
+<!-- start footer part -->
+<!--BEGIN GENERATE_TREEVIEW-->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    $navpath
+    <li class="footer">$generatedby
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="$relpath^doxygen.png" alt="doxygen"/></a> $doxygenversion </li>
+  </ul>
+</div>
+<!--END GENERATE_TREEVIEW-->
+<!--BEGIN !GENERATE_TREEVIEW-->
+<hr class="footer"/><address class="footer"><small>
+$generatedby &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="$relpath^doxygen.png" alt="doxygen"/>
+</a> $doxygenversion
+</small></address>
+<!--END !GENERATE_TREEVIEW-->
+</body>
+</html>

+ 57 - 0
doxygen/header.html

@@ -0,0 +1,57 @@
+<!-- HTML header for doxygen 1.8.16-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen $doxygenversion"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<link href="https://fonts.googleapis.com/css?family=Titillium+Web&display=swap" rel="stylesheet"> 
+<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="$relpath^jquery.js"></script>
+<script type="text/javascript" src="$relpath^dynsections.js"></script>
+$treeview
+$search
+$mathjax
+<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
+$extrastylesheet
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+
+<!--BEGIN TITLEAREA-->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <!--BEGIN PROJECT_LOGO-->
+  <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
+  <!--END PROJECT_LOGO-->
+  <!--BEGIN PROJECT_NAME-->
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname"><a href="https://github.com/semlanik/qtprotobuf" style="color:#404244; text-decoration: none;">$projectname</a>
+   <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
+   </div>
+   <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
+  </td>
+  <!--END PROJECT_NAME-->
+  <!--BEGIN !PROJECT_NAME-->
+   <!--BEGIN PROJECT_BRIEF-->
+    <td style="padding-left: 0.5em;">
+    <div id="projectbrief">$projectbrief</div>
+    </td>
+   <!--END PROJECT_BRIEF-->
+  <!--END !PROJECT_NAME-->
+  <!--BEGIN DISABLE_INDEX-->
+   <!--BEGIN SEARCHENGINE-->
+   <td>$searchbox</td>
+   <!--END SEARCHENGINE-->
+  <!--END DISABLE_INDEX-->
+ </tr>
+ </tbody>
+</table>
+</div>
+<!--END TITLEAREA-->
+<!-- end header part -->