Doc: Add qdoc macro for tabbed content
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ö <topi.reinio@qt.io>
This commit is contained in:
parent
27efadec22
commit
98a94cd6da
60
doc/global/htmltabs.qdocconf
Normal file
60
doc/global/htmltabs.qdocconf
Normal file
@ -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 = "<input type=\"radio\" name=\"tabs_\1\" id=\"\2\" \4/><label for=\"\2\">\3</label><style>#\2:checked ~ .\2{display: block;}</style>"
|
||||||
|
macro.tabcontent.HTML = "<div class=\"tabcontent \1\">"
|
||||||
|
macro.endtabcontent.HTML = "</div>"
|
||||||
|
|
||||||
|
HTML.extraimages += template/style/htmltabs.css
|
||||||
|
|
||||||
|
HTML.headerstyle += \
|
||||||
|
" <link rel=\"stylesheet\" type=\"text/css\" href=\"images/htmltabs.css\" />\n"
|
||||||
|
|
||||||
|
HTML.headerscripts += \
|
||||||
|
" <script type=\"text/javascript\">\n" \
|
||||||
|
" \$(document).ready(function(){\n" \
|
||||||
|
" \$(\"input[type=radio]\").on(\"click\", function() {\n" \
|
||||||
|
" var lbl = \$(this).next().text();\n" \
|
||||||
|
" \$(\"input[type=radio]:not(checked)\").filter(function() {\n" \
|
||||||
|
" if (\$(this).next().text() == lbl)\n" \
|
||||||
|
" \$(this).prop(\"checked\", true);\n" \
|
||||||
|
" });\n" \
|
||||||
|
" });\n" \
|
||||||
|
" });\n" \
|
||||||
|
" </script>\n"
|
@ -2,3 +2,5 @@ macro.youtube.HTML = "<div class=\"video\">\n<span class=\"vspan\"></span>\n" \
|
|||||||
"<iframe src=\"https://www.youtube.com/embed/\1\"" \
|
"<iframe src=\"https://www.youtube.com/embed/\1\"" \
|
||||||
"frameborder=\"0\" allowfullscreen>\n" \
|
"frameborder=\"0\" allowfullscreen>\n" \
|
||||||
"</iframe></div>\n"
|
"</iframe></div>\n"
|
||||||
|
|
||||||
|
include(htmltabs.qdocconf)
|
||||||
|
55
doc/global/template/style/htmltabs.css
Normal file
55
doc/global/template/style/htmltabs.css
Normal file
@ -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;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user