From 98a94cd6da08e03cda5f6eee5f4b3f0fc1f48833 Mon Sep 17 00:00:00 2001 From: Venugopal Shivashankar Date: Fri, 1 Apr 2022 18:21:22 +0200 Subject: Doc: Add qdoc macro for tabbed content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The macro enables tabbed content in the online style only. It's usage must be gaurded with a conditional block as shown in the following example to handle the offline style usecase: \if(onlinedocs) \tab {build-qt-app}{tab-cmake}{CMake}{selected} \tab {build-qt-app}{tab-qmake}{qmake}{} \tabcontent {tab-cmake} \else \section1 Using CMake \endif CMake-specific instructions go here \if(onlinedocs) \endtabcontent \tabcontent {tab-qmake} \else \section1 Using qmake \endif qmake-specific instructions go here \if(onlinedocs) \endtabcontent \endif Pick-to: 6.2 6.3 Change-Id: I02d50c057280a9ffea913642284e67ddcda7aa94 Reviewed-by: Topi Reiniƶ --- doc/global/htmltabs.qdocconf | 60 ++++++++++++++++++++++++++++++++++ doc/global/macros-online.qdocconf | 2 ++ doc/global/template/style/htmltabs.css | 55 +++++++++++++++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 doc/global/htmltabs.qdocconf create mode 100644 doc/global/template/style/htmltabs.css (limited to 'doc/global') diff --git a/doc/global/htmltabs.qdocconf b/doc/global/htmltabs.qdocconf new file mode 100644 index 0000000000..41aa43dca5 --- /dev/null +++ b/doc/global/htmltabs.qdocconf @@ -0,0 +1,60 @@ +#Macros for HTML tabs +#Usage: +#\tab {name}{tab-id}{title}{checked} +#\tabcontent {tab-id} +# content +#\endtabcontent + +# Ensure that the {name} is unique for the group. +# i.e A group of tabs can have the same name, whereas +# {tab-id} should be unique. In addition, the argument +# for \tabcontent macro should match the {tab-id} for the +# corresponding \tab. + +# The {checked} argument ensures that the tab is selected +# by default when the HTML page is loaded. For the other +# tabs that are not selected, pass and empty argument {}. +# +# Note that these macros work with the online template only. +# +# Example: +# \if(onlinedocs) +# \tab {build-qt-app}{tab-cmake}{CMake}{selected} +# \tab {build-qt-app}{tab-qmake}{qmake}{} +# \tabcontent {tab-cmake} +# \else +# \section1 Using CMake +# \endif +# CMake-specific instructions go here +# \if(onlinedocs) +# \endtabcontent +# \tabcontent {tab-qmake} +# \else +# \section1 Using qmake +# \endif +# qmake-specific instructions go here +# \if(onlinedocs) +# \endtabcontent +# \endif + +macro.tab.HTML = "" +macro.tabcontent.HTML = "
" +macro.endtabcontent.HTML = "
" + +HTML.extraimages += template/style/htmltabs.css + +HTML.headerstyle += \ + " \n" + +HTML.headerscripts += \ + " \n" diff --git a/doc/global/macros-online.qdocconf b/doc/global/macros-online.qdocconf index c6f370a7d7..bfc2f98a12 100644 --- a/doc/global/macros-online.qdocconf +++ b/doc/global/macros-online.qdocconf @@ -2,3 +2,5 @@ macro.youtube.HTML = "
\n\n" \ "
\n" + +include(htmltabs.qdocconf) diff --git a/doc/global/template/style/htmltabs.css b/doc/global/template/style/htmltabs.css new file mode 100644 index 0000000000..f09ec9f8c8 --- /dev/null +++ b/doc/global/template/style/htmltabs.css @@ -0,0 +1,55 @@ +/* +----------- +HTML Tabs +----------- +*/ + +.blankline { + height: 1em; + display: block; +} + +input[type="radio"], +input[type="radio"] ~ .tabcontent { + display: none; + margin: 0; + padding: 0; +} + +input[type="radio"] + label { + display: inline-block; +} + +input[type="radio"] + label { + margin-left: 0; + padding: 10px 10px 8px; + background-image: linear-gradient(to right, #09102b, #53586b); + color: #ccc; + position: relative; + clip-path: polygon(10px 0%, 100% 0%, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0% 100%, 0% calc(100% - 10px), 0% 10px); + margin-right: 2px; + min-width: 50px; + cursor: pointer; +} + +input[type="radio"]:hover + label, +input[type="radio"]:checked + label { + opacity: 0.75; + transition: all ease 0.3s; +} + +input[type="radio"]:checked + label { + color: #41cd52; +} + +/* Some styling for the content */ +div.tabcontent { + padding-left: 10px; + padding-top: 2px; + border-left: 3px solid #ccc; + border-top: 1px solid #ccc; +} + +div.tabcontent pre { + margin-top: 0; +} -- cgit v1.2.3