From 156fd4dcc6248a695d368a81385bf5c92cfa885f Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Mon, 9 Feb 2015 18:06:35 +0000
Subject: [PATCH] Doxygen: Updated scripts and css files to process OpenFOAM
 header files more robustly and generate cleaner HTML files. Thanks to Bruno
 Santos for various fixes and improvements. Resolves bug reports:    
 http://www.openfoam.org/mantisbt/view.php?id=1516    
 http://www.openfoam.org/mantisbt/view.php?id=1016    
 http://www.openfoam.org/mantisbt/view.php?id=1512

---
 bin/tools/doxyFilter                 |  17 ++-
 bin/tools/doxyFilter.sed             |   8 +-
 doc/Doxygen/Allwmake                 |  33 +++++
 doc/Doxygen/_Header                  |   2 +
 doc/Doxygen/css/cfdLayout.css        |   7 +-
 doc/Doxygen/css/cfdNav.css           |   6 +-
 doc/Doxygen/css/doxygen.css          | 199 ++++++++++++++++++++++++++-
 doc/Doxygen/css/img/OpenFOAMlogo.png | Bin 6630 -> 6140 bytes
 8 files changed, 252 insertions(+), 20 deletions(-)

diff --git a/bin/tools/doxyFilter b/bin/tools/doxyFilter
index 2e370383e5d..061c72e526a 100755
--- a/bin/tools/doxyFilter
+++ b/bin/tools/doxyFilter
@@ -1,11 +1,11 @@
-#!/bin/sh
+#!/bin/bash
 #------------------------------------------------------------------------------
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
@@ -38,7 +38,15 @@
 
 if [ "$#" -gt 0 ]
 then
-    filePath=$(echo $1 | sed -e s@^$WM_PROJECT_DIR@../../..@ )
+
+    realFilePath=$(echo $1 | sed -e s@^$WM_PROJECT_DIR@../../..@ )
+    if [ -n "$FOAM_ONLINE_REPO" ]
+    then
+        filePath=$(echo $1 | sed -e s@^$WM_PROJECT_DIR@$FOAM_ONLINE_REPO@ )
+    else
+        filePath=$realFilePath
+    fi
+
     # dirName=$(echo "$filePath" | sed -e 's@/[^/]*$@@' )
     dirName=${filePath%/[^/]*}
     fileName=${filePath##*/}
@@ -57,6 +65,7 @@ then
     awk -f $WM_PROJECT_DIR/bin/tools/doxyFilter-table.awk $1 | \
     awk -f $awkScript  | \
     sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter.sed \
+        -e s@%realFilePath%@$realFilePath@g \
         -e s@%filePath%@$filePath@g \
         -e s@%fileName%@$fileName@g \
         -e s@%dirName%@$dirName@g
diff --git a/bin/tools/doxyFilter.sed b/bin/tools/doxyFilter.sed
index 084049a4a27..e2aecb8b8d4 100644
--- a/bin/tools/doxyFilter.sed
+++ b/bin/tools/doxyFilter.sed
@@ -11,7 +11,7 @@
 /^License/,/\*\//{
 /^License/,\%http://www.gnu.org/licenses%{
 s?^License.*?\*\/\
-\/\*! \\file %filePath%\
+\/\*! \\file %realFilePath%\
 <b>Original source file</b> <a href="%filePath%">%fileName%</a>\
 \
 \
@@ -64,12 +64,14 @@ s/^    /\\relates /
 # =>
 # \\class Foam::namespaceName::className
 #
-/^Class *$/,/^[^ ]/{
+/^Class *$/{
 N
+:loop
 /.*:: *$/{
 N
-s/Class *\n *\(.*\) *\n *\(.*\) */\\class \1\2/
+s/^ *\(.*\) *\n *\(.*\) */\1\2/
 }
+t loop
 s/Class *\n *\(.*\) */\\class \1/
 }
 
diff --git a/doc/Doxygen/Allwmake b/doc/Doxygen/Allwmake
index a349ee4fc17..227bd01b727 100755
--- a/doc/Doxygen/Allwmake
+++ b/doc/Doxygen/Allwmake
@@ -8,6 +8,39 @@ cd ${0%/*} || exit 1    # Run from this directory
     exit 1
 }
 
+usage() {
+    exec 1>&2
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    cat<<USAGE
+
+usage: ${0##*/} [OPTION]
+options:
+  -online    use the links to the Github repositories instead of the local source code
+  -help
+
+USAGE
+    exit 1
+}
+
+# parse options
+while [ "$#" -gt 0 ]
+do
+    case "$1" in
+    -h | -help)
+        usage
+        ;;
+    -online)
+        export FOAM_ONLINE_REPO="https://github.com/$WM_PROJECT/$WM_PROJECT-$WM_PROJECT_VERSION/tree/master"
+        shift
+        ;;
+    *)
+        usage "unknown option/argument: '$*'"
+        ;;
+    esac
+done
+
+#------------------------------------------------------------------------------
+
 set -x
 
 rm -rf latex man
diff --git a/doc/Doxygen/_Header b/doc/Doxygen/_Header
index 2b4b441decc..985c43d52c3 100644
--- a/doc/Doxygen/_Header
+++ b/doc/Doxygen/_Header
@@ -9,6 +9,8 @@
 <link href="search/search.css" rel="stylesheet" type="text/css" />
 <link href="../css/openfoam.css" rel="stylesheet" type="text/css" />
 <script type="text/javaScript" src="search/search.js"></script>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
 
 <!-- meta info -->
 <meta
diff --git a/doc/Doxygen/css/cfdLayout.css b/doc/Doxygen/css/cfdLayout.css
index f803ce8802b..b00bd68da4d 100644
--- a/doc/Doxygen/css/cfdLayout.css
+++ b/doc/Doxygen/css/cfdLayout.css
@@ -71,7 +71,7 @@ p:after {
     border:3px solid rgb(175,175,175);
     border-bottom-width: 0;
     margin-top:10px;
-    background:#d5e1f0;
+    background:#e1f0e1;
     overflow:visible !important /*Firefox*/;
     overflow:hidden /*IE6*/;
 }
@@ -265,12 +265,12 @@ p:after {
 }
 
 div.contents a {
-    color:rgb(70,122,167);
+    color:rgb(85,144,112);
     font-weight:bold;
     text-decoration:none;
 }
 div.contents a:hover {
-    color:rgb(42,90,138);
+    color:rgb(56,94,73);
     text-decoration:underline;
 }
 /*
@@ -342,4 +342,3 @@ div.crosslinks {
 }
 
 } /* end media print */
-
diff --git a/doc/Doxygen/css/cfdNav.css b/doc/Doxygen/css/cfdNav.css
index 9c590e8695c..662442034fc 100644
--- a/doc/Doxygen/css/cfdNav.css
+++ b/doc/Doxygen/css/cfdNav.css
@@ -271,7 +271,7 @@ nav3-bullet
     padding:0 0 0 10px;
     background:url(img/bg_bullet_full_1.gif) no-repeat 0px 50%;
     text-decoration:none;
-    color:rgb(70,122,167);
+    color:rgb(56,94,73);
     font-weight:bold;
     font-size:120%;
 }
@@ -282,7 +282,7 @@ nav3-bullet
     padding:0 0 0 10px;
     background:url(img/bg_bullet_half_1.gif) no-repeat 0px 50%;
     text-decoration:none;
-    color:rgb(70,122,167);
+    color:rgb(56,94,73);
     font-weight:normal;
     font-size:120%;
 }
@@ -570,5 +570,3 @@ div.navpath, div.summary
 {
     background-color:#d5e1f0 !important;
 }
-
-
diff --git a/doc/Doxygen/css/doxygen.css b/doc/Doxygen/css/doxygen.css
index 18537810378..4958570ce30 100644
--- a/doc/Doxygen/css/doxygen.css
+++ b/doc/Doxygen/css/doxygen.css
@@ -86,13 +86,13 @@ div.navtab {
 /* @group Link Styling */
 
 a {
-	color: #153788;
+	color: rgb(85,144,112);
 	font-weight: normal;
 	text-decoration: none;
 }
 
 .contents a:visited {
-	color: #1b77c5;
+	color: rgb(85,144,112);
 }
 
 a:hover {
@@ -398,12 +398,12 @@ hr.footer {
         background-color: #d5e1e8;
         font-weight: bold;
         /* firefox specific markup */
-        background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
+        background-image: -moz-linear-gradient(rgba(225, 244, 238, 1.0) 0%, rgba(191, 223, 191, 1.0) 100%);
         -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
         -moz-border-radius-topright: 8px;
         -moz-border-radius-topleft: 8px;
         /* webkit specific markup */
-        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
+        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(225, 244, 238, 1.0)), to(rgba(191, 223, 191, 1.0)));
         -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
         -webkit-border-top-right-radius: 8px;
         -webkit-border-top-left-radius: 8px;
@@ -546,7 +546,7 @@ table.doxtable {
 }
 
 table.doxtable td, table.doxtable th {
-	border: 1px solid #153788;
+	border: 1px solid rgb(85,144,112);
 	padding: 3px 7px 2px;
 }
 
@@ -559,3 +559,192 @@ table.doxtable th {
 	text-align:left;
 }
 
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+  cursor: default;
+  white-space: nowrap;
+  background-color: white;
+  border: 1px solid gray;
+  border-radius: 4px 4px 4px 4px;
+  box-shadow: 1px 1px 7px 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;
+  }
+}
diff --git a/doc/Doxygen/css/img/OpenFOAMlogo.png b/doc/Doxygen/css/img/OpenFOAMlogo.png
index aae8387f5ea2b443ea550f52e8bab62c4f19883e..6d9e2f698b4052636fad0c08cb0fbcb539fd2202 100644
GIT binary patch
delta 6081
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

delta 6573
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

-- 
GitLab