commit f87f01361818800444cf7045d7c8c30d0372e5e9 Author: su-fang Date: Wed Oct 26 16:06:26 2022 +0800 Import Upstream version 1.9.1 diff --git a/.codedocs b/.codedocs new file mode 100644 index 0000000..699b915 --- /dev/null +++ b/.codedocs @@ -0,0 +1,3 @@ +EXCLUDE = addon cmake doc examples jquery templates testing winbuild src/logos.cpp src/lodepng.cpp +FILE_PATTERNS = *.h *.cpp *.md +USE_MDFILE_AS_MAINPAGE = src/doxygen.md diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ddc5adf --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +# See https://editorconfig.org/ for more information. + +[*] +indent_style = space +indent_size = 2 diff --git a/.github/ISSUE_TEMPLATE/report-a-bug-or-issue.md b/.github/ISSUE_TEMPLATE/report-a-bug-or-issue.md new file mode 100644 index 0000000..d328fe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/report-a-bug-or-issue.md @@ -0,0 +1,30 @@ +--- +name: Report a bug or issue +about: Create a report to help us improve doxygen +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +Describe what you see that (you think) is wrong. + +**Expected behavior** +Describe what you would have expected or think is correct. + +**Screenshots** +If useful, add screenshots to help explain your problem. + +**To Reproduce** +Attach a self contained example that allows us to reproduce the problem. +Such an example typically exist of some source code (can be dummy code) and a doxygen configuration file used (you can strip it using `doxygen -s -u`). After you verified the example demonstrates the problem, put it in a zip (or tarball) and attach it to the bug report. Try to avoid linking to external sources, since they might disappear in the future. + +**Version** +Mention the version of doxygen used (output of `doxygen --version`) and the platform on which you run doxygen (e.g. Windows 10, 64 bit). If you run doxygen under Linux please also mention the name and version of the distribution used (output of `lsb_release -a`) and mention if you compiled doxygen yourself or that you use a binary that comes with the distribution or from the doxygen website. + +**Stack trace** +If you encounter a crash and can build doxygen from sources yourself with debug info (`-DCMAKE_BUILD_TYPE=Debug`), a stack trace can be very helpful (especially if it is not possible to capture the problem in a small example that can be shared). + +**Additional context** +Add any other context about the problem here. diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml new file mode 100644 index 0000000..555319e --- /dev/null +++ b/.github/workflows/build_cmake.yml @@ -0,0 +1,360 @@ +name: CMake Build for Doxygen + +on: [push, pull_request] + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - { + name: "Ubuntu Latest GCC Release", + os: ubuntu-18.04, + build_type: "Release", cc: "gcc", cxx: "g++", + build_gen: "Unix Makefiles", + cmake_extra_opts: "-Dbuild_search=YES -Dbuild_app=YES -Dbuild_parse=YES -Dbuild_xmlparser=YES" + } + - { + name: "Ubuntu Latest GCC Debug", + os: ubuntu-18.04, + build_type: "Debug", cc: "gcc", cxx: "g++", + build_gen: "Unix Makefiles", + cmake_extra_opts: "-Dbuild_search=YES -Dbuild_app=YES -Dbuild_parse=YES -Dbuild_xmlparser=YES" + } + - { + name: "Ubuntu Latest Clang Release", + os: ubuntu-20.04, + build_type: "Release", cc: "clang", cxx: "clang++", + build_gen: "Unix Makefiles", + cmake_extra_opts: "-Duse_libclang=YES -Dstatic_libclang=YES -Duse_libc++=NO" + } + - { + name: "Ubuntu Latest Clang Debug", + os: ubuntu-20.04, + build_type: "Debug", cc: "clang", cxx: "clang++", + build_gen: "Unix Makefiles", + cmake_extra_opts: "-Duse_libclang=YES -Dstatic_libclang=YES -Duse_libc++=NO" + } + - { + name: "macOS Latest Release", + os: macos-latest, + build_type: "Release", cc: "clang", cxx: "clang++", + build_gen: "Unix Makefiles" + } + - { + name: "macOS Latest Debug", + os: macos-latest, + build_type: "Debug", cc: "clang", cxx: "clang++", + build_gen: "Unix Makefiles" + } + - { + name: "Windows Latest MSVC Debug", + os: windows-latest, + build_type: "Debug", cc: "cl", cxx: "cl", + build_gen: "NMake Makefiles" + } + - { + name: "Windows Latest MSVC Release", + os: windows-latest, + build_type: "Release", cc: "cl", cxx: "cl", + build_gen: "NMake Makefiles" + } + steps: + - uses: actions/checkout@v1 + + - name: Download MikTex (Windows) + run: | + $wc = New-Object System.Net.WebClient; + $maxAttempts=5; + $attemptCount=0; + Do { + $attemptCount++; + Try { + $wc.DownloadFile("https://ctan.math.illinois.edu/systems/win32/miktex/setup/windows-x64/miktexsetup-4.0-x64.zip","miktexsetup-4.0-x64.zip") + } Catch [Exception] { + Write-Host $_.Exception | format-list -force + } + } while (((Test-Path "miktexsetup-x64.zip") -eq $false) -and ($attemptCount -le $maxAttempts)) + shell: pwsh + if: matrix.config.os == 'windows-latest' + + - uses: suisei-cn/actions-download-file@v1 + with: + url: "https://github.com/pffang/libiconv-for-Windows/releases/download/v1.16/libiconv-for-Windows_1.16.7z" + target: . + if: matrix.config.os == 'windows-latest' + + - name: Install LaTeX (Linux) + run: sudo apt-get install texlive texlive-latex-recommended texlive-extra-utils texlive-latex-extra texlive-font-utils + if: startsWith(matrix.config.os,'ubuntu-') + + - name: Install LaTeX (MacOS) + run: | + brew install --cask mactex; + echo "/Library/TeX/texbin/" >> $GITHUB_PATH + if: matrix.config.os == 'macos-latest' + + - name: Install libclang (Ubuntu 20.04) + run: | + sudo apt remove llvm-8 clang-8 libclang-common-8-dev clang-format-8 libllvm8 + #sudo apt remove llvm-10 llvm-10-dev llvm-10-tools llvm-10-runtime clang-10 clang-format-10 libclang-common-10-dev libclang-cpp10 libclang1-10 libllvm10 + sudo apt-get autoremove + sudo apt-get clean + #sudo apt install libclang-9-dev libclang-common-9-dev + sudo apt install libclang-10-dev libclang-common-10-dev + apt list --installed | egrep '(clang|llvm)' + ls -d /usr/lib/llvm-*/include/ + clang++ -v + if: matrix.config.os == 'ubuntu-20.04' + + - name: Install libxapian (Ubuntu 18.04) + run: | + sudo apt install libxapian-dev + if: matrix.config.os == 'ubuntu-18.04' + + - name: Extract MikTex zip (Windows) + shell: bash + run: | + unzip miktexsetup-4.0-x64.zip + if: matrix.config.os == 'windows-latest' + + - name: Download MikTex packages (Windows) + shell: bash + run: | + ./miktexsetup --verbose \ + --local-package-repository=C:/miktex-repository \ + --remote-package-repository="https://ctan.math.illinois.edu/systems/win32/miktex/tm/packages/" \ + --package-set=essential \ + download + if: matrix.config.os == 'windows-latest' + + - name: Install MikTex packages (Windows) + shell: bash + run: | + ./miktexsetup --local-package-repository=C:/miktex-repository \ + --package-set=essential \ + --shared \ + install + if: matrix.config.os == 'windows-latest' + + - name: Setting MikTex paths (Windows) + shell: bash + run: | + echo "C:/Program Files/MiKTeX/miktex/bin/x64/" >> $GITHUB_PATH + export PATH="/c/Program Files/MiKTeX/miktex/bin/x64/:$PATH" + + echo "Configuring MiKTeX to install missing packages on the fly" + initexmf --admin --verbose --set-config-value='[MPM]AutoInstall=1' + if: matrix.config.os == 'windows-latest' + + - name: Install Ghostscript (Linux) + run: sudo apt-get install ghostscript + if: startsWith(matrix.config.os,'ubuntu-') + + - name: Install Ghostscript (Windows) + run: + choco install ghostscript + if: matrix.config.os == 'windows-latest' + + - name: Setting Ghostscript paths (Windows) + shell: bash + run: | + echo "C:/Program Files (x86)/gs/gs9.53.3/bin/" >> $GITHUB_PATH + echo "C:/Program Files/gs/gs9.53.3/bin/" >> $GITHUB_PATH + export PATH="/c/Program Files (x86)/gs/gs9.53.3/bin/:$PATH" + export PATH="/c/Program Files/gs/gs9.53.3/bin/:$PATH" + if: matrix.config.os == 'windows-latest' + + - name: Install xmllint (Linux) + run: sudo apt-get install libxml2-utils + if: startsWith(matrix.config.os,'ubuntu-') + + - name: Install xmllint (MacOS) + run: brew install libxml2 + if: matrix.config.os == 'macos-latest' + + - name: Install bison (MacOS) + run: | + brew install bison; + echo "/usr/local/opt/bison/bin" >> $GITHUB_PATH + if: matrix.config.os == 'macos-latest' + + - name: Install bison/flex (Windows) + run: + choco install winflexbison + if: matrix.config.os == 'windows-latest' + + - name: Install Graphviz (Linux) + run: sudo apt-get install graphviz + if: startsWith(matrix.config.os,'ubuntu-') + + - name: Install Graphviz (MacOS) + run: brew install graphviz + if: matrix.config.os == 'macos-latest' + + - name: Install Graphviz (Windows) + run: + choco install graphviz.portable + if: matrix.config.os == 'windows-latest' + +# - name: Install Perl (Windows) +# run: +# choco install activeperl +# if: matrix.config.os == 'windows-latest' + + - name: Setup VS Environment (Windows) + uses: seanmiddleditch/gha-setup-vsdevenv@master + if: matrix.config.os == 'windows-latest' + + - name: Refresh Env (Windows) + run: + refreshenv + if: matrix.config.os == 'windows-latest' + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + - name: Check tool versions (Linux / MacOS) + shell: bash + run: | + echo "=== perl ==="; + perl --version; + echo "=== python ==="; + python --version; + echo "=== cmake ==="; + cmake --version; + echo "=== latex ==="; + latex --version; + echo "=== bibtex ==="; + bibtex --version + echo "=== dvips ==="; + dvips --version + echo "=== bison ==="; + bison --version; + echo "=== flex ==="; + flex --version; + echo "=== dot ==="; + dot -V; + echo "=== ghostscript ==="; + gs --version; + if: matrix.config.os != 'windows-latest' + + - name: Check tool versions (Windows) + shell: bash + run: | + echo "=== perl ==="; + perl --version; + echo "=== python ==="; + python --version; + echo "=== cmake ==="; + cmake --version; + echo "=== latex ==="; + latex --version; + echo "=== bibtex ==="; + bibtex --version + echo "=== dvips ==="; + dvips --version + echo "=== bison ==="; + win_bison --version; + echo "=== flex ==="; + win_flex --version; + echo "=== dot ==="; + dot -V; + echo "=== ghostscript ==="; + gswin64c --version; + if: matrix.config.os == 'windows-latest' + + - name: Configure + shell: cmake -P {0} + run: | + set(ENV{CC} ${{ matrix.config.cc }}) + set(ENV{CXX} ${{ matrix.config.cxx }}) + + execute_process( + COMMAND cmake + -S . + -B build + -D CMAKE_BUILD_TYPE=${{ matrix.config.build_type }} + -G "${{ matrix.config.build_gen }}" + -Dbuild_doc=YES + -Dbuild_wizard=YES + ${{ matrix.config.cmake_extra_opts }} + RESULT_VARIABLE result + ) + if (NOT result EQUAL 0) + message(FATAL_ERROR "Bad exit status") + endif() + + - name: Build + shell: cmake -P {0} + run: | + include(ProcessorCount) + ProcessorCount(N) + execute_process( + COMMAND cmake --build build --parallel ${N} + RESULT_VARIABLE result + OUTPUT_VARIABLE output + ERROR_VARIABLE output + ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE + ) + if (NOT result EQUAL 0) + string(REGEX MATCH "FAILED:.*$" error_message "${output}") + string(REPLACE "\n" "%0A" error_message "${error_message}") + message("::error::${error_message}") + message(FATAL_ERROR "Build failed") + endif() + + - name: Archive build artifacts + uses: actions/upload-artifact@v2 + with: + name: "${{ matrix.config.name }} build artifacts" + path: build/bin/ + + - name: Run tests (Linux / MacOS) + shell: cmake -P {0} + run: | + include(ProcessorCount) + ProcessorCount(N) + + set(ENV{CTEST_OUTPUT_ON_FAILURE} "ON") + + execute_process( + COMMAND cmake --build build --target tests TEST_FLAGS="--xml --xmlxsd --xhtml --docbook --rtf" + RESULT_VARIABLE result + ) + if (NOT result EQUAL 0) + message(FATAL_ERROR "Running tests failed!") + endif() + if: matrix.config.os != 'windows-latest' + + - name: Run tests (Windows) + shell: cmake -P {0} + run: | + include(ProcessorCount) + ProcessorCount(N) + + set(ENV{CTEST_OUTPUT_ON_FAILURE} "ON") + + execute_process( + COMMAND cmake --build build --target tests TEST_FLAGS="--xml --xmlxsd" + RESULT_VARIABLE result + ) + if (NOT result EQUAL 0) + message(FATAL_ERROR "Running tests failed!") + endif() + if: matrix.config.os == 'windows-latest' + + - name: Generate documentation + shell: cmake -P {0} + run: | + execute_process( + COMMAND cmake --build build --target docs + RESULT_VARIABLE result + ) + if (NOT result EQUAL 0) + message(FATAL_ERROR "Building documentation failed") + endif() + if: matrix.config.os != 'windows-latest' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b599b7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +*~ +.*sw? +\#* +.DS_Store + +*.rej +*.orig + +*.pro +/packages/rpm/doxygen.spec +*.idb +*.pdb + +/doxygen_docs +/doxygen.tag +/build* + +tags + +.idea diff --git a/.pc/.quilt_patches b/.pc/.quilt_patches new file mode 100644 index 0000000..6857a8d --- /dev/null +++ b/.pc/.quilt_patches @@ -0,0 +1 @@ +debian/patches diff --git a/.pc/.quilt_series b/.pc/.quilt_series new file mode 100644 index 0000000..c206706 --- /dev/null +++ b/.pc/.quilt_series @@ -0,0 +1 @@ +series diff --git a/.pc/.version b/.pc/.version new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/.pc/.version @@ -0,0 +1 @@ +2 diff --git a/.pc/applied-patches b/.pc/applied-patches new file mode 100644 index 0000000..e2cf668 --- /dev/null +++ b/.pc/applied-patches @@ -0,0 +1,10 @@ +manpages.diff +dot-config.diff +no-timestamps.diff +avoid-compass.diff +fix-pdflatex-invocation.diff +faketime_pdflatex.diff +libatomic.diff +reproducible_changelog.diff +reproducible_manpages.diff +sass_fix.diff diff --git a/.pc/avoid-compass.diff/jquery/Makefile b/.pc/avoid-compass.diff/jquery/Makefile new file mode 100644 index 0000000..4da7f94 --- /dev/null +++ b/.pc/avoid-compass.diff/jquery/Makefile @@ -0,0 +1,38 @@ +JQUERY_VERSION = 3.4.1 +JQUERY_UI_VERSION = 1.12.1 +SCROLL_VERSION = 2.1.2 +POWERTIP_VERSION = 1.3.1 +TOUCHPUNCH_VERSION = 0.2.3 +SMARTMENUS_VERSION = 1.1.0 + +MINIFIER ?= /usr/local/bin/yuicompressor-2.4.7 +SCRIPTS = jquery-$(JQUERY_VERSION).min.js \ + jquery.ui-$(JQUERY_UI_VERSION).min.js \ + jquery.scrollTo-$(SCROLL_VERSION).min.js \ + jquery.powertip-$(POWERTIP_VERSION).mod.min.js \ + jquery.ui.touch-punch-$(TOUCHPUNCH_VERSION).min.js \ + jquery.smartmenus-$(SMARTMENUS_VERSION).min.js +RESULTS = jquery.js doxmenu-min.css + +all: $(RESULTS) + +install: $(RESULTS) + cp jquery.js ../templates/html/jquery.js + cp doxmenu-min.css ../templates/html/tabs.css + +jquery.js: $(SCRIPTS) + cat $(SCRIPTS) > jquery.js + +doxmenu-min.css: sm-core-css.css \ + sass/sm-dox.scss \ + sass/_round-corners-last-item.scss \ + sass/_sm-dox.scss \ + sass/_sub-items-indentation.scss + compass compile --css-dir . --force sass/sm-dox.scss + cat sm-core-css.css sm-dox.css > doxmenu.css + java -jar $(MINIFIER).jar doxmenu.css > doxmenu-min.css + rm -f sm-dox.css doxmenu.css + +clean: + rm -rf $(RESULTS) doxmenu.css .sass-cache + diff --git a/.pc/avoid-compass.diff/jquery/sass/_round-corners-last-item.scss b/.pc/avoid-compass.diff/jquery/sass/_round-corners-last-item.scss new file mode 100644 index 0000000..70a8391 --- /dev/null +++ b/.pc/avoid-compass.diff/jquery/sass/_round-corners-last-item.scss @@ -0,0 +1,23 @@ +// Generate rules to round the corners of the last collapsible item + +@mixin sm-dox__round-corners-last-item($amount, $chainable: 'ul > li:last-child > ', $level: 4, $chain_prefix: '> li:last-child > ', $chain: '', $selector: '') { + $chain: $chain_prefix; + $selector: $chain + 'a, ' + $chain + '*:not(ul) a, ' + $chain + 'ul'; + @for $i from 1 through $level { + $chain: $chain + $chainable; + $selector: $selector + ', ' + $chain + ' a, ' + $chain + '*:not(ul) a, ' + $chain + ' ul'; + } + #{$selector} { + @include border-radius(0 0 $amount $amount); + } + // highlighted items, don't need rounding since their sub is open + $chain: $chain_prefix; + $selector: $chain + 'a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; + @for $i from 1 through $level { + $chain: $chain + $chainable; + $selector: $selector + ', ' + $chain + ' a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; + } + #{$selector} { + @include border-radius(0); + } +} diff --git a/.pc/avoid-compass.diff/jquery/sass/_sm-dox.scss b/.pc/avoid-compass.diff/jquery/sass/_sm-dox.scss new file mode 100644 index 0000000..81a4e74 --- /dev/null +++ b/.pc/avoid-compass.diff/jquery/sass/_sm-dox.scss @@ -0,0 +1,594 @@ +@import 'compass'; + +// This file is best viewed with Tab size 4 code indentation + + +// ----------------------------------------------------------------------------------------------------------------- +// 1. Theme Quick Settings (Variables) +// (for further control, you will need to dig into the actual CSS in 2.) +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 1.1. Colors +// ---------------------------------------------------------- + +$sm-dox__white: #fff !default; +$sm-dox__gray: darken($sm-dox__white, 6.5%) !default; +$sm-dox__gray-dark: darken($sm-dox__white, 26.5%) !default; +$sm-dox__gray-darker: darken($sm-dox__white, 66.5%) !default; +$sm-dox__red: #D23600 !default; + +$sm-dox__box-shadow: rgba(0, 0, 0, 0.2) !default; + + +// ---------------------------------------------------------- +// :: 1.2. Breakpoints +// ---------------------------------------------------------- + +$sm-dox__desktop-vp: 768px !default; // switch from collapsible to desktop + + +// ---------------------------------------------------------- +// :: 1.3. Typography +// ---------------------------------------------------------- + +$sm-dox__font-family: "Lucida Grande", "Geneva", "Helvetica", Arial, sans-serif !default; +$sm-dox__font-size-base: 13px !default; +$sm-dox__font-size-small: 12px !default; +$sm-dox__line-height: 15px !default; + + +// ---------------------------------------------------------- +// :: 1.4. Borders +// ---------------------------------------------------------- + +$sm-dox__border-width: 1px !default; +$sm-dox__border-radius: 5px !default; + + +// ---------------------------------------------------------- +// :: 1.5. Collapsible main menu +// ---------------------------------------------------------- + +// Menu box +//$sm-dox__collapsible-bg: $sm-dox__gray !default; +$sm-dox__collapsible-bg: url('tab_b.png') !default; +$sm-dox__collapsible-border-radius: $sm-dox__border-radius !default; + +// Items +$sm-dox__collapsible-item-color: $sm-dox__gray-darker !default; +$sm-dox__collapsible-item-current-color: $sm-dox__red !default; +$sm-dox__collapsible-item-disabled-color: darken($sm-dox__gray, 20%) !default; +$sm-dox__collapsible-item-padding-vertical: 0px !default; +$sm-dox__collapsible-item-padding-horizontal: 12px !default; + +// Items separators +$sm-dox__collapsible-separators-color: rgba(0, 0, 0, 0.05) !default; + +// Toggle button (sub menu indicators) +$sm-dox__collapsible-toggle-bg: rgba(255, 255, 255, 0.5) !default; + + +// ---------------------------------------------------------- +// :: 1.6. Collapsible sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-dox__collapsible-sub-bg: rgba(darken($sm-dox__gray, 30%), 0.1) !default; + +// Items text indentation for deeper levels +$sm-dox__collapsible-sub-item-indentation: 8px !default; + + +// ---------------------------------------------------------- +// :: 1.7. Desktop main menu +// ---------------------------------------------------------- + +// Menu box +//$sm-dox__desktop-bg: $sm-dox__gray !default; +$sm-dox__desktop-bg: url('tab_b.png') !default; +//$sm-dox__desktop-border-radius: 100px !default; +$sm-dox__desktop-padding-horizontal: 10px !default; + +// Items +$sm-dox__desktop-item-color: $sm-dox__gray_darker !default; +$sm-dox__desktop-item-hover-color: $sm-dox__red !default; +$sm-dox__desktop-item-current-color: $sm-dox__red !default; +$sm-dox__desktop-item-disabled-color: darken($sm-dox__gray, 20%) !default; +$sm-dox__desktop-item-padding-vertical: 0px !default; +$sm-dox__desktop-item-padding-horizontal: 12px !default; + +// Sub menu indicators +$sm-dox__desktop-arrow-size: 4px !default; // border-width +$sm-dox__desktop-arrow-color: $sm-dox__gray-darker !default; +$sm-dox__desktop-arrow-spacing: 4px !default; + +// Vertical menu box +$sm-dox__desktop-vertical-border-radius: $sm-dox__border-radius !default; +$sm-dox__desktop-vertical-padding-vertical: 10px !default; + +// Vertical items +$sm-dox__desktop-vertical-item-hover-bg: $sm-dox__white !default; +$sm-dox__desktop-vertical-item-padding-vertical: 10px !default; +$sm-dox__desktop-vertical-item-padding-horizontal: 20px !default; + +$sm-dox__main-text-color: #283A5D !default; +$sm-dox__main-highlight-color: white !default; + +// ---------------------------------------------------------- +// :: 1.8. Desktop sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-dox__desktop-sub-bg: $sm-dox__white !default; +$sm-dox__desktop-sub-border-color: $sm-dox__gray-dark !default; +$sm-dox__desktop-sub-border-radius: $sm-dox__border-radius !default; +$sm-dox__desktop-sub-box-shadow: 0 5px 9px $sm-dox__box-shadow !default; +$sm-dox__desktop-sub-padding-vertical: 5px !default; +$sm-dox__desktop-sub-padding-horizontal: 0 !default; + +// Items +$sm-dox__desktop-sub-item-color: $sm-dox__gray_darker !default; +$sm-dox__desktop-sub-item-hover-color: $sm-dox__red !default; +$sm-dox__desktop-sub-item-hover-bg: $sm-dox__gray !default; +$sm-dox__desktop-sub-item-current-color: $sm-dox__red !default; +$sm-dox__desktop-sub-item-disabled-color: darken($sm-dox__white, 20%) !default; +$sm-dox__desktop-sub-item-padding-vertical: 10px !default; +$sm-dox__desktop-sub-item-padding-horizontal: 20px !default; + +// Sub menu indicators +$sm-dox__desktop-sub-arrow-size: 5px !default; // border-width + +// Sub menu carets +$sm-dox__desktop-sub-caret-size: 8px !default; // border-width +$sm-dox__desktop-sub-caret-left: 30px !default; + +$sm-dox__main-row-height: 36px !default; + +// ----------------------------------------------------------------------------------------------------------------- +// 2. Theme CSS +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 2.1. Collapsible mode (mobile first) +// ---------------------------------------------------------- + +// calc item height and sub menus toggle button size +$sm-dox__item-height: $sm-dox__line-height + $sm-dox__collapsible-item-padding-vertical * 2; +// set toggle button size to 80% of item height +$sm-dox__toggle-size: floor($sm-dox__main-row-height * 0.8); +$sm-dox__toggle-spacing: floor($sm-dox__main-row-height * 0.1); + +// Main menu box +.sm-dox { + background-image: $sm-dox__collapsible-bg; + //@include border-radius($sm-dox__collapsible-border-radius); + + // Main menu items + a { + &, + &:focus, + &:hover, + &:active { + padding: $sm-dox__collapsible-item-padding-vertical $sm-dox__collapsible-item-padding-horizontal; + /* make room for the toggle button (sub indicator) */ + padding-right: $sm-dox__collapsible-item-padding-horizontal + $sm-dox__toggle-size + $sm-dox__toggle-spacing; + /* color: $sm-dox__collapsible-item-color; */ + font-family: $sm-dox__font-family; + font-size: $sm-dox__font-size-base; + font-weight: bold; + line-height: 36px; //$sm-dox__line-height; + text-decoration: none; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + color: $sm-dox__main-text-color; + outline: none; + } + + &:hover { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: $sm-dox__main-highlight-color; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + } + + &.current { + color: $sm-dox__collapsible-item-current-color; + } + + &.disabled { + color: $sm-dox__collapsible-item-disabled-color; + } + + // Toggle buttons (sub menu indicators) + span.sub-arrow { + position: absolute; + top: 50%; + margin-top: -(ceil($sm-dox__toggle-size / 2)); + left: auto; + right: $sm-dox__toggle-spacing; + width: $sm-dox__toggle-size; + height: $sm-dox__toggle-size; + overflow: hidden; + font: bold #{$sm-dox__font-size-small}/#{$sm-dox__toggle-size} monospace !important; + text-align: center; + text-shadow: none; + background: $sm-dox__collapsible-toggle-bg; + @include border-radius($sm-dox__border-radius); + } + // Change + to - on sub menu expand + &.highlighted span.sub-arrow:before { + display: block; + content: '-'; + } + } + + // round the corners of the first item + > li:first-child > a, > li:first-child > :not(ul) a { + @include border-radius($sm-dox__collapsible-border-radius $sm-dox__collapsible-border-radius 0 0); + } + // round the corners of the last item + @include sm-dox__round-corners-last-item($sm-dox__collapsible-border-radius); + + // Main menu items separators + //li { + // /*border-top: 1px solid $sm-dox__collapsible-separators-color;*/ + // border-top: 0; + //} + //> li:first-child { + // border-top: 0; + //} + + // Sub menus box + ul { + background: $sm-dox__collapsible-sub-bg; + + // Sub menus items + a { + &, + &:focus, + &:hover, + &:active { + font-size: $sm-dox__font-size-small; + // add indentation for sub menus text + border-left: $sm-dox__collapsible-sub-item-indentation solid transparent; + //line-height: $sm-dox__line-height; + line-height: $sm-dox__main-row-height; + text-shadow: none; + background-color: white; + background-image: none; + } + + &:hover { + // color: $sm-dox__collapsible-item-current-color; + // background-color: $sm-dox__gray; + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: $sm-dox__main-highlight-color; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + } + + } + + // Add indentation for sub menus text for deeper levels + @include sm-dox__sub-items-indentation($sm-dox__collapsible-sub-item-indentation); + } +} + + +// ---------------------------------------------------------- +// :: 2.2. Desktop mode +// ---------------------------------------------------------- + +@media (min-width: $sm-dox__desktop-vp) { + + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-dox ul{position:absolute;width:12em;} + .sm-dox li{float:left;} + .sm-dox.sm-rtl li{float:right;} + .sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none;} + .sm-dox a{white-space:nowrap;} + .sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal;} + .sm-dox .sm-nowrap > li > a,.sm-dox .sm-nowrap > li > :not(ul) a{white-space:nowrap;} + /* ...end */ + + // Main menu box + .sm-dox { + padding: 0 $sm-dox__desktop-padding-horizontal; + background-image: $sm-dox__desktop-bg; + line-height: 36px; + //@include border-radius($sm-dox__desktop-border-radius); + + // Main menu items + a { + // Sub menu indicators + span.sub-arrow { + top: 50%; + margin-top: -(ceil($sm-dox__desktop-arrow-size / 2)); + right: $sm-dox__desktop-item-padding-horizontal; + width: 0; + height: 0; + border-width: $sm-dox__desktop-arrow-size; + border-style: solid dashed dashed dashed; + border-color: $sm-dox__main-text-color transparent transparent transparent; + background: transparent; + @include border-radius(0); + } + + &, + &:focus, + &:active, + &:hover, + &.highlighted { + padding: $sm-dox__desktop-item-padding-vertical $sm-dox__desktop-item-padding-horizontal; + /*color: $sm-dox__desktop-item-color;*/ + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + @include border-radius(0 !important); + } + &:hover { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: $sm-dox__main-highlight-color; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + span.sub-arrow { + border-color: $sm-dox__main-highlight-color transparent transparent transparent; + } + } + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-dox__desktop-item-padding-horizontal + $sm-dox__desktop-arrow-size * 2 + $sm-dox__desktop-arrow-spacing; + } + } + + // No main menu items separators + li { + border-top: 0; + } + + // First sub level carets + > li > ul:before, + > li > ul:after { + content: ''; + position: absolute; + top: -($sm-dox__desktop-sub-caret-size * 2 + $sm-dox__border-width * 2); + left: $sm-dox__desktop-sub-caret-left; + width: 0; + height: 0; + overflow: hidden; + border-width: ($sm-dox__desktop-sub-caret-size + $sm-dox__border-width); + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-dox__gray-dark transparent; + } + > li > ul:after { + top: -($sm-dox__desktop-sub-caret-size * 2); + left: ($sm-dox__desktop-sub-caret-left + $sm-dox__border-width); + border-width: $sm-dox__desktop-sub-caret-size; + border-color: transparent transparent $sm-dox__desktop-sub-bg transparent; + } + + // Sub menus box + ul { + border: $sm-dox__border-width solid $sm-dox__gray-dark; + padding: $sm-dox__desktop-sub-padding-vertical $sm-dox__desktop-sub-padding-horizontal; + background: $sm-dox__desktop-sub-bg; + @include border-radius($sm-dox__desktop-sub-border-radius !important); + @include box-shadow($sm-dox__desktop-sub-box-shadow); + + // Sub menus items + a { + span.sub-arrow { + right: 8px; + top: 50%; + margin-top: -$sm-dox__desktop-sub-arrow-size; + border-width: $sm-dox__desktop-sub-arrow-size; + border-color: transparent transparent transparent $sm-dox__desktop-sub-item-color; + border-style: dashed dashed dashed solid; + } + + &, + &:hover, + &:focus, + &:active, + &.highlighted { + color: $sm-dox__desktop-sub-item-color; + background-image:none; + border: 0 !important; + color: $sm-dox__desktop-sub-item-color; + background-image:none; + } + + &:hover { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: $sm-dox__main-highlight-color; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + span.sub-arrow { + border-color: transparent transparent transparent $sm-dox__main-highlight-color; + } + } + } + } + + // Scrolling arrows containers for tall sub menus - test sub menu: "Sub test" -> "more..." in the default download package + span.scroll-up, + span.scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: $sm-dox__desktop-sub-bg; + height: 36px; + // width and position will be set automatically by the script + + &:hover { + background: $sm-dox__desktop-sub-item-hover-bg; + } + } + span.scroll-up:hover span.scroll-up-arrow { + border-color: transparent transparent $sm-dox__desktop-sub-item-hover-color transparent; + } + span.scroll-down:hover span.scroll-down-arrow { + border-color: $sm-dox__desktop-sub-item-hover-color transparent transparent transparent; + } + span.scroll-up-arrow { + position: absolute; + top: 0; + left: 50%; + margin-left: -6px; + // we will use one-side border to create a triangle so that we don't use a real background image, of course, you can use a real image if you like too + width: 0; + height: 0; + overflow: hidden; + border-width: 6px; // tweak size of the arrow + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-dox__desktop-sub-item-color transparent; + } + span.scroll-down-arrow { + @extend span.scroll-up-arrow; + top: 8px; + border-style: solid dashed dashed dashed; + border-color: $sm-dox__desktop-sub-item-color transparent transparent transparent; + } + + + // Rigth-to-left + + // Main menu box + &.sm-rtl { + + // Main menu items + a { + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-dox__desktop-item-padding-horizontal; + padding-left: $sm-dox__desktop-item-padding-horizontal + $sm-dox__desktop-arrow-size * 2 + $sm-dox__desktop-arrow-spacing; + } + + // Sub menu indicators + span.sub-arrow { + right: auto; + left: $sm-dox__desktop-item-padding-horizontal; + } + } + + // Vertical main menu items + &.sm-vertical { + a { + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-dox__desktop-vertical-item-padding-vertical $sm-dox__desktop-vertical-item-padding-horizontal; + } + + // Sub menu indicators + span.sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-dox__desktop-arrow-color transparent transparent; + } + } + } + + // First sub level carets + > li > ul:before { + left: auto; + right: $sm-dox__desktop-sub-caret-left; + } + > li > ul:after { + left: auto; + right: ($sm-dox__desktop-sub-caret-left + $sm-dox__border-width); + } + + // Sub menus box + ul { + a { + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-dox__desktop-sub-item-padding-vertical $sm-dox__desktop-sub-item-padding-horizontal !important; + } + + // Sub menu indicators + span.sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-dox__desktop-arrow-color transparent transparent; + } + } + } + } + + + // Vertical main menu + + // Main menu box + &.sm-vertical { + padding: $sm-dox__desktop-vertical-padding-vertical 0; + @include border-radius($sm-dox__desktop-vertical-border-radius); + + // Main menu items + a { + padding: $sm-dox__desktop-vertical-item-padding-vertical $sm-dox__desktop-vertical-item-padding-horizontal; + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-dox__desktop-vertical-item-hover-bg; + } + + &.disabled { + background-image: $sm-dox__desktop-bg; + } + + // Sub menu indicators + span.sub-arrow { + right: 8px; + top: 50%; + margin-top: -$sm-dox__desktop-sub-arrow-size; + border-width: $sm-dox__desktop-sub-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-dox__desktop-arrow-color; + } + } + + // No sub level carets + > li > ul:before, + > li > ul:after { + display: none; + } + + // Sub menus box + ul { + + // Sub menus items + a { + padding: $sm-dox__desktop-sub-item-padding-vertical $sm-dox__desktop-sub-item-padding-horizontal; + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-dox__desktop-sub-item-hover-bg; + } + + &.disabled { + background: $sm-dox__desktop-sub-bg; + } + } + } + } + } +} diff --git a/.pc/dot-config.diff/src/config.xml b/.pc/dot-config.diff/src/config.xml new file mode 100644 index 0000000..c0b846a --- /dev/null +++ b/.pc/dot-config.diff/src/config.xml @@ -0,0 +1,3744 @@ + +
+ + =) and one or more values. If the same tag +is assigned more than once, the last assignment overwrites any earlier +assignment. For tags that take a list as their argument, +the += operator can be used instead of = to append +new values to the list. Values are sequences of non-blanks. If the value should +contain one or more blanks it must be surrounded by quotes ("..."). +Multiple lines can be concatenated by inserting a backslash (\c \\) +as the last character of a line. Environment variables can be expanded +using the pattern \$(ENV_VARIABLE_NAME). + +You can also include part of a configuration file from another configuration +file using a \@INCLUDE tag as follows: +\verbatim +@INCLUDE = config_file_name +\endverbatim +The include file is searched in the current working directory. You can +also specify a list of directories that should be searched before looking +in the current working directory. Do this by putting a \@INCLUDE_PATH tag +with these paths before the \@INCLUDE tag, e.g.: +\verbatim +@INCLUDE_PATH = my_config_dir +\endverbatim + +The configuration options can be divided into several categories. +Below is an alphabetical index of the tags that are recognized +followed by the descriptions of the tags grouped by category. +]]> + + + +All text after a double hash (##) is considered a comment and is placed +in front of the TAG it is preceding.
+All text after a single hash (#) is considered a comment and will be ignored. +The format is: +\verbatim + TAG = value [value, ...] +\endverbatim +For lists, items can also be appended using: +\verbatim + TAG += value [value, ...] +\endverbatim +Values that contain spaces should be placed between quotes (\" \"). +]]> +
+
+
+ + /usr/bin, a more realistic configuration file would be: +\verbatim +PROJECT_NAME = Example +INPUT = example.cc example.h +WARNINGS = YES +TAGFILES = qt.tag +SEARCHENGINE = NO +\endverbatim + +To generate the documentation for the +QdbtTabular package +I have used the following configuration file: +\verbatim +PROJECT_NAME = QdbtTabular +OUTPUT_DIRECTORY = html +WARNINGS = YES +INPUT = examples/examples.doc src +FILE_PATTERNS = *.cc *.h +INCLUDE_PATH = examples +TAGFILES = qt.tag +SEARCHENGINE = YES +\endverbatim + +To regenerate the Qt-1.44 documentation from the sources, you could use the +following configuration file: +\verbatim +PROJECT_NAME = Qt +OUTPUT_DIRECTORY = qt_docs +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +SEARCH_INCLUDES = YES +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = $(QTDIR)/ +PREDEFINED = USE_TEMPLATECLASS Q_EXPORT= \ + QArrayT:=QArray \ + QListT:=QList \ + QDictT:=QDict \ + QQueueT:=QQueue \ + QVectorT:=QVector \ + QPtrDictT:=QPtrDict \ + QIntDictT:=QIntDict \ + QStackT:=QStack \ + QDictIteratorT:=QDictIterator \ + QListIteratorT:=QListIterator \ + QCacheT:=QCache \ + QCacheIteratorT:=QCacheIterator \ + QIntCacheT:=QIntCache \ + QIntCacheIteratorT:=QIntCacheIterator \ + QIntDictIteratorT:=QIntDictIterator \ + QPtrDictIteratorT:=QPtrDictIterator +INPUT = $(QTDIR)/doc \ + $(QTDIR)/src/widgets \ + $(QTDIR)/src/kernel \ + $(QTDIR)/src/dialogs \ + $(QTDIR)/src/tools +FILE_PATTERNS = *.cpp *.h q*.doc +INCLUDE_PATH = $(QTDIR)/include +RECURSIVE = YES +\endverbatim + +For the Qt-2.1 sources I recommend to use the following settings: +\verbatim +PROJECT_NAME = Qt +PROJECT_NUMBER = 2.1 +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +SOURCE_BROWSER = YES +INPUT = $(QTDIR)/src +FILE_PATTERNS = *.cpp *.h q*.doc +RECURSIVE = YES +EXCLUDE_PATTERNS = *codec.cpp moc_* */compat/* */3rdparty/* +ALPHABETICAL_INDEX = YES +IGNORE_PREFIX = Q +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +INCLUDE_PATH = $(QTDIR)/include +PREDEFINED = Q_PROPERTY(x)= \ + Q_OVERRIDE(x)= \ + Q_EXPORT= \ + Q_ENUMS(x)= \ + "QT_STATIC_CONST=static const " \ + _WS_X11_ \ + INCLUDE_MENUITEM_DEF +EXPAND_ONLY_PREDEF = YES +EXPAND_AS_DEFINED = Q_OBJECT_FAKE Q_OBJECT ACTIVATE_SIGNAL_WITH_PARAM \ + Q_VARIANT_AS +\endverbatim + +Here doxygen's preprocessor is used to substitute some +macro names that are normally substituted by the C preprocessor, +but without doing full macro expansion. + + +\htmlonly +Go to the next section or return to the + index. +\endhtmlonly + +*/ +]]> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +