From c0a6c04f08527ee46ae77e17dbe2e96acfa64b47 Mon Sep 17 00:00:00 2001 From: Stefan Hoffmann Date: Sat, 7 Jun 2014 23:31:51 +0200 Subject: [PATCH] update theme to match neovim.org --- Doxyfile | 4 +- contrib/doxygen/customdoxygen.css | 1473 ++++++++--------------------- contrib/doxygen/extra.css | 777 +++++++++++++++ contrib/doxygen/footer.html | 12 +- contrib/doxygen/header.html | 45 +- contrib/doxygen/logo-devdoc.png | Bin 0 -> 27382 bytes 6 files changed, 1197 insertions(+), 1114 deletions(-) create mode 100644 contrib/doxygen/extra.css create mode 100644 contrib/doxygen/logo-devdoc.png diff --git a/Doxyfile b/Doxyfile index 4bb2990aae..de31c8355f 100644 --- a/Doxyfile +++ b/Doxyfile @@ -47,7 +47,7 @@ PROJECT_BRIEF = # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. -PROJECT_LOGO = +PROJECT_LOGO = contrib/doxygen/logo-devdoc.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. @@ -917,7 +917,7 @@ HTML_STYLESHEET = contrib/doxygen/customdoxygen.css # robust against future updates. Doxygen will copy the style sheet file to # the output directory. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = contrib/doxygen/extra.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note diff --git a/contrib/doxygen/customdoxygen.css b/contrib/doxygen/customdoxygen.css index f0f36f89f5..800df62fb6 100644 --- a/contrib/doxygen/customdoxygen.css +++ b/contrib/doxygen/customdoxygen.css @@ -1,48 +1,12 @@ -/* The standard CSS for doxygen 1.8.6 */ -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} +/* + * Title, should be H1 + */ .title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - 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 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + font-family: 'Lato', sans-serif; + font-size: 2em; + margin: 0.67em 0 0; } dt { @@ -56,270 +20,34 @@ div.multicol { -webkit-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; -} - -/* @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{ +div.qindex, div.navtab { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - 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: 4px 6px; - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - 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; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; + font-family: monospace, fixed; + min-height: 13px; + line-height: 1.0; + 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; } -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -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: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - 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; + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + white-space: pre; } /* @group Code Colorization */ @@ -352,828 +80,100 @@ span.charliteral { color: #008080 } -span.vhdldigit { - color: #ff00ff +span.vhdldigit { + color: #ff00ff } -span.vhdlchar { - color: #000000 +span.vhdlchar { + color: #000000 } -span.vhdlkeyword { - color: #700070 +span.vhdlkeyword { + color: #700070 } -span.vhdllogic { - color: #ff0000 +span.vhdllogic { + color: #ff0000 } blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; } /* @end */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -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 #4A6AAA; + display: none; } -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - 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%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - 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; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -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: #602020; - 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 { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view when not used as main index */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.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 tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.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; -} - -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 { - 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: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*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-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -dl -{ - padding: 0 0 0 10px; +dl { + padding: 0 0 0 10px; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ +dl.section { margin-left: 0px; padding-left: 0px; } -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; +dl.note { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; } -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; +dl.warning, dl.attention { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; } -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; +dl.pre, dl.post, dl.invariant { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; } -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; +dl.deprecated { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; } -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; +dl.todo { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; } -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; +dl.test { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; } -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; +dl.bug { + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; } dl.section dd { margin-bottom: 6px; } - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - 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: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 20px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - 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; -} - -.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 { - margin-top: 12px; - margin-bottom: 4px; -} - /* tooltip related style info */ .ttc { @@ -1345,6 +345,329 @@ tr.heading h2 { margin-top: -11px; } +/* + * Centered container for all content + */ + +div.contents, +div.header > *, +ul.tablist, +.navpath ul { + margin:0 15px; +} +@media (min-width: 568px) { + div.contents, + div.header > *, + ul.tablist, + .navpath ul { + margin: 0 auto; + width: 90%; + max-width: 1200px; + } +} + +/* + * padding inside content + */ + +div.contents > * { + padding-top: 8px; + padding-bottom: 8px; +} + +@media (min-width: 568px) { + div.contents > h2, + div.contents > div.textblock, + div.contents > div.memitem, + div.contents > table.memberdecls h2, + div.contents > p { + padding-top: 30px; + } +} + +div.contents h2 { + margin-top: 0px; +} + +div.summary { + display: none; +} + +/* + * Tabs + * + * Based on doxygen tabs.css + */ + +.tabs, .tabs2, .tabs3 { + width: 100%; + background-color: #f4f4f4; + border-top: solid 1px #ececec; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 30px 0 0; +} + +.tabs3 .tablist a { + padding: 0 20px 0 0; +} + +.tablist li.current a { + color: #54a23d; +} + +/* + * Navpath + */ + +.navpath ul +{ + padding:20px 0px; +} + +.navpath li +{ + list-style-type:none; + padding-right: 10px; + float:left; +} + +.navpath li.navelem a +{ + padding-left: 10px; +} + +.navpath li.navelem:before { + content: "/"; + color: #777; +} + +/* + * Member + * + * Styles for detailed member documentation + */ + +.memitem { + border-top: solid 1px #c9c9c9; +} + +.memname { + font-weight: bold; + font-family: monospace; +} + +td.memname { + color: #54a23d; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + font-weight: bold; +} + +.memdoc, dl.reflist dd { +} + +/* + * Parameters + */ + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #aa0e0e; + white-space: nowrap; +} + +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params td { + padding-right: 1em; + padding-bottom: 0.5em; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +/* + * Inline Label etc. + */ + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +/* + * Member Descriptions + */ + +table.memberdecls { + font-family: monospace; + border-spacing: 0px; + padding: 0px; +} + +.memSeparator { + line-height: 1px; + margin: 0px; + padding: 0 0 0.2em 0; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* + * Fieldtable (Enums) + */ + +.fieldtable td, .fieldtable th { + padding: 0 1em 0.2em 0; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + vertical-align: top; +} + +/* + * Directory + */ + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.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; +} + +.directory tr.even { + padding-left: 6px; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3c92d1; +} + +/* + * Data Structure Index + * + * Hardcoded style attribute + */ + +.contents > table[style] { + margin: 20px auto !important; +} + +/* + * Search Box + */ + +#MSearchBox { + right: 4%; +} + @media print { #top { display: none; } diff --git a/contrib/doxygen/extra.css b/contrib/doxygen/extra.css new file mode 100644 index 0000000000..feb6d2d237 --- /dev/null +++ b/contrib/doxygen/extra.css @@ -0,0 +1,777 @@ +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9. + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8+, and Opera + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +/* neovim.org/css/main.css */ + +* { + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 15px; + line-height: 1.4; + color: #444; + background-color: #fbfbfb; +} +@media (min-width: 568px) { + body { + font-size: 17px; + } +} + +a { + color: #3c92d1; + text-decoration: none; +} + +h1, +h2, +h3 { + font-family: 'Lato', sans-serif; +} + +h2 { + font-size: 24px; + font-weight: 400; + color: #54a23d; + margin-bottom: 0; +} +@media (min-width: 568px) { + h2 { + font-size: 30px; + } +} +h3 { + /* color: #54a23d; */ +} + +blockquote { + border-left: 5px solid #eeeeee; + margin-left: 0; + padding-left: 15px; +} + +/* + * Content container + * + * Centered container for all content + */ + +.container { + margin: 0 15px; +} +@media (min-width: 568px) { + .container { + margin: 0 auto; + width: 90%; + max-width: 1200px; + } +} + +/* + * Navbar + * + * Logo and navigation at the top of the page + */ + +.navbar { + padding: 12px 0; +} +@media (min-width: 568px) { + .navbar { + padding-top: 30px; + padding-bottom: 30px; + } +} + +.logo { + width: 120px; + position: relative; + top: 4px; +} +@media (min-width: 568px) { + .logo { + width: 180px; + } +} + +.site-nav { + display: none; +} +@media (min-width: 568px) { + .site-nav { + display: block; + float: right; + } + .site-nav ul { + list-style: none; + } + .site-nav li { + display: inline-block; + margin-top: 5px; + margin-left: 20px; + font-size: 18px; + font-family: 'Lato', sans-serif; + } +} + +/* + * Masthead + * + * Big intro billboard + */ + +.masthead { + border-top: solid 1px #ececec; + border-bottom: solid 1px #ececec; + text-align: center; + padding: 20px 12px; +} +@media (min-width: 568px) { + .masthead { + padding-top: 40px; + padding-bottom: 40px; + } +} + +.masthead .container { +} +@media (min-width: 568px) { + .masthead .container { + width: 568px; + margin: 0 auto; + } +} + +.masthead h1 { + font-size: 20px; + font-weight: 400; +} +@media (min-width: 568px) { + .masthead h1 { + font-size: 40px; + margin-bottom: 50px; + } +} + +.masthead .lead { + font-weight: 900; + color: #54a23d; + font-family: 'Lato', sans-serif; + font-size: 16px; + font-weight: 900; +} +@media (min-width: 568px) { + .masthead .lead { + font-size: 26px; + } +} + +/* + * Columns + * + * Two columns utilizing the golden ratio + */ + +.col-wide, +.col-narrow { + display: block; +} +@media (min-width: 568px) { + .col-wide { + display: table-cell; + width: 61.8%; + vertical-align: top; + } + .col-narrow { + display: table-cell; + width: 38.2%; + padding-left: 6%; + vertical-align: top; + } +} + +/* + * Front page + * + * Big section blocks for the front page + */ + +.front-section { + padding: 8px 0; +} +@media (min-width: 568px) { + .front-section { + padding-top: 30px; + padding-bottom: 30px; + display: table; + width: 100%; + } + .front-section h2:first-child { + margin-top: 0; + } +} + +.front-section.shaded { + background-color: #f4f4f4; +} + +/* + * FAQs + * + * Formatted as a definition list + */ + +.faqs dt { + font-weight: 700; +} + +.faqs dd { + color: #777; + font-size: 15px; + margin-left: 0; + margin-bottom: 20px; +} + +/* + * Buttons + * + * Fun to click + */ + +.btn { + display: inline-block; + text-align: center; + vertical-align: middle; + background-color: #3c92d1; + color: #fff; + font-family: 'Lato', sans-serif; + border-radius: 4px; + padding: 15px 30px; +} + +.btn:hover { + background-color: #3889c4; +} + +.btn.full-width { + width: 100%; +} + +/* + * Sponsors + * + * Callout-style box + */ +.sponsors { + background-color: #f5f5f5; + padding: 5px 20px; + border-radius: 4px; + margin-top: 10px; +} + +.sponsors h3 { + color: #54a23d; +} + +.first-level-sponsor { + margin-bottom: 20px; +} + +.first-level-sponsor img { + max-width: 100%; +} + +.second-level-sponsors { + width: 100%; +} + +.second-level-sponsors td { + width: 50%; + padding: 12px 0; + text-align: center; + vertical-align: middle; +} + +.second-level-sponsors img { + width: 80%; +} +@media (min-width: 568px) { + .second-level-sponsor img { + width: auto; + } +} + +/* + * Footer + * + * Links, legalese, etc. + */ + +footer .container { + border-top: solid 1px #ececec; + padding: 20px 0 50px; + font-size: 12px; + color: #777; +} +@media (min-width: 568px) { + footer .container { + font-size: 14px; + display: table; + } +} + +footer a { + color: #444; +} + + +/* + * Misc + * + * Odds 'n ends + */ + +.light { + color: #777; +} + +.light a { + color: #444; +} + +.small { + font-size: 70%; +} + +/* + * Newsletter CSS + */ + +.newsletter h1 { + margin-bottom: 0px; +} + diff --git a/contrib/doxygen/footer.html b/contrib/doxygen/footer.html index e9a2ed7d93..a6d8bb1ee4 100644 --- a/contrib/doxygen/footer.html +++ b/contrib/doxygen/footer.html @@ -11,11 +11,13 @@ - + diff --git a/contrib/doxygen/header.html b/contrib/doxygen/header.html index 7a0adcb09d..e1afe71aee 100644 --- a/contrib/doxygen/header.html +++ b/contrib/doxygen/header.html @@ -7,7 +7,6 @@ $projectname: $title $title - $treeview @@ -15,41 +14,23 @@ $search $mathjax $extrastylesheet +
-
- - - - - - - - - - - - - - - - - - - - - -
-
$projectname -  $projectnumber -
-
$projectbrief
-
-
$projectbrief
-
$searchbox
-
+ diff --git a/contrib/doxygen/logo-devdoc.png b/contrib/doxygen/logo-devdoc.png new file mode 100644 index 0000000000000000000000000000000000000000..a25ef2b9d77edbcc3cb86ba8d4bb3d18489fd6dc GIT binary patch literal 27382 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 a{^xgAJl^y?<@g!UWdfeAelF{r5}E*Rx!fB7 literal 0 HcmV?d00001