diff --git a/.gitignore b/.gitignore index f147edf..4fe1a75 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ *.dll *.dylib +docs + # Qt-es object_script.*.Release object_script.*.Debug diff --git a/Patronum/src/controller.cpp b/Patronum/src/controller.cpp index c7f7874..9a287f8 100644 --- a/Patronum/src/controller.cpp +++ b/Patronum/src/controller.cpp @@ -1,5 +1,5 @@ #include "controller.h" -#include "serviceprivate.h" +#include "controllerprivate.h" #include #include #include @@ -8,7 +8,7 @@ namespace Patronum { Controller::Controller(const QString &name): QtServiceController(name) { - d_ptr = new ServicePrivate(name, this); + d_ptr = new ControllerPrivate(name, this); } bool Controller::send(int argc, char **argv) { diff --git a/Patronum/src/controller.h b/Patronum/src/controller.h index e388ba1..0ce2a00 100644 --- a/Patronum/src/controller.h +++ b/Patronum/src/controller.h @@ -6,7 +6,7 @@ namespace Patronum { -class ServicePrivate; +class ControllerPrivate; /** * @brief The Controller class provide control functionality for your service @@ -56,7 +56,7 @@ protected: void handleResponce(const QVariantMap &feature); private: - ServicePrivate *d_ptr = nullptr; + ControllerPrivate *d_ptr = nullptr; QList _features; bool _responce = false; diff --git a/Patronum/src/controllerprivate.cpp b/Patronum/src/controllerprivate.cpp new file mode 100644 index 0000000..ccb62c3 --- /dev/null +++ b/Patronum/src/controllerprivate.cpp @@ -0,0 +1,103 @@ +#include "controllerprivate.h" +#include "icontroller.h" +#include "localsocket.h" +#include +#include "package.h" + +namespace Patronum { + +ControllerPrivate::ControllerPrivate(const QString &name, IController *controller, QObject *parent): + QObject(parent) { + _socket = new LocalSocket(name); + _controller = controller; + + QObject::connect(_socket, &LocalSocket::sigReceve, + this, &ControllerPrivate::handleReceve); + +} + +bool ControllerPrivate::sendFeaturesRequest() { + if (!_socket->isValid()) { + QuasarAppUtils::Params::log("scoket is closed!", + QuasarAppUtils::Error); + return false; + } + + QByteArray responce; + QDataStream stream(&responce, QIODevice::WriteOnly); + + stream << Command::FeaturesRequest; + + return _socket->send(responce); +} + +bool ControllerPrivate::sendCmd(const QList &result) { + if (!_socket->isValid()) { + QuasarAppUtils::Params::log("scoket is closed!", + QuasarAppUtils::Error); + return false; + } + + QByteArray responce; + QDataStream stream(&responce, QIODevice::WriteOnly); + + stream << Command::Feature << result; + + return _socket->send(responce); +} + +void ControllerPrivate::handleReceve(QByteArray data) { + + if (data.size() < 2) { + return; + } + + const Package *package = reinterpret_cast( data.data()); + + switch (package->cmd) { + + case Command::Features: { + + if (!_controller) { + QuasarAppUtils::Params::log("System error, controller is not inited!", + QuasarAppUtils::Error); + break; + } + + QDataStream stream(package->data); + + QList features; + stream >> features; + + _controller->handleFeatures(features); + + break; + + } + + case Command::FeatureResponce: { + if (!_controller) { + QuasarAppUtils::Params::log("System error, controller is not inited!", + QuasarAppUtils::Error); + break; + } + + QDataStream stream(package->data); + + QVariantMap feature; + stream >> feature; + _controller->handleResponce(feature); + + break; + + } + default: { + QuasarAppUtils::Params::log("Wrong command!", + QuasarAppUtils::Error); + break; + } + + } + +} +} diff --git a/Patronum/src/controllerprivate.h b/Patronum/src/controllerprivate.h new file mode 100644 index 0000000..28cb78a --- /dev/null +++ b/Patronum/src/controllerprivate.h @@ -0,0 +1,30 @@ +#ifndef CONTROLLERPRIVATE_H +#define CONTROLLERPRIVATE_H +#include + +namespace Patronum { + +class IController; +class LocalSocket; + +class ControllerPrivate: public QObject +{ + Q_OBJECT +public: + ControllerPrivate(const QString& name, IController* controller = nullptr, QObject *parent = nullptr); + bool sendFeaturesRequest(); + bool sendCmd(const QList& result); + +signals: + void sigListFeatures(QList); + +private: + LocalSocket *_socket = nullptr; + IController *_controller = nullptr; + +private slots: + void handleReceve(QByteArray data); +}; + +} +#endif // CONTROLLERPRIVATE_H diff --git a/Patronum/src/serviceprivate.cpp b/Patronum/src/serviceprivate.cpp index 709d3bf..73041c4 100644 --- a/Patronum/src/serviceprivate.cpp +++ b/Patronum/src/serviceprivate.cpp @@ -1,18 +1,16 @@ #include "serviceprivate.h" #include "iservice.h" -#include "icontroller.h" #include "localsocket.h" #include "package.h" #include namespace Patronum { -Patronum::ServicePrivate::ServicePrivate(const QString &name, IController *controller, IService *service, QObject *parent): +Patronum::ServicePrivate::ServicePrivate(const QString &name, IService *service, QObject *parent): QObject(parent) { _socket = new LocalSocket(name); _service = service; - _controller = controller; QObject::connect(_socket, &LocalSocket::sigReceve, this, &ServicePrivate::handleReceve); @@ -35,36 +33,6 @@ bool ServicePrivate::sendCmdResult(const QVariantMap &result) { return _socket->send(responce); } -bool ServicePrivate::sendFeaturesRequest() { - if (!_socket->isValid()) { - QuasarAppUtils::Params::log("scoket is closed!", - QuasarAppUtils::Error); - return false; - } - - QByteArray responce; - QDataStream stream(&responce, QIODevice::WriteOnly); - - stream << Command::FeaturesRequest; - - return _socket->send(responce); -} - -bool ServicePrivate::sendCmd(const QList &result) { - if (!_socket->isValid()) { - QuasarAppUtils::Params::log("scoket is closed!", - QuasarAppUtils::Error); - return false; - } - - QByteArray responce; - QDataStream stream(&responce, QIODevice::WriteOnly); - - stream << Command::Feature << result; - - return _socket->send(responce); -} - void ServicePrivate::handleReceve(QByteArray data) { if (data.size() < 2) { @@ -102,24 +70,7 @@ void ServicePrivate::handleReceve(QByteArray data) { break; } - case Command::Features: { - if (!_controller) { - QuasarAppUtils::Params::log("System error, controller is not inited!", - QuasarAppUtils::Error); - break; - } - - QDataStream stream(package->data); - - QList features; - stream >> features; - - _controller->handleFeatures(features); - - break; - - } case Command::Feature: { if (!_service) { QuasarAppUtils::Params::log("System error, service is not inited!", @@ -137,22 +88,6 @@ void ServicePrivate::handleReceve(QByteArray data) { } - case Command::FeatureResponce: { - if (!_controller) { - QuasarAppUtils::Params::log("System error, controller is not inited!", - QuasarAppUtils::Error); - break; - } - - QDataStream stream(package->data); - - QVariantMap feature; - stream >> feature; - _controller->handleResponce(feature); - - break; - - } default: { QuasarAppUtils::Params::log("Wrong command!", QuasarAppUtils::Error); diff --git a/Patronum/src/serviceprivate.h b/Patronum/src/serviceprivate.h index 0b31b08..f6f8ce0 100644 --- a/Patronum/src/serviceprivate.h +++ b/Patronum/src/serviceprivate.h @@ -7,26 +7,19 @@ namespace Patronum { class LocalSocket; class IService; -class IController; class ServicePrivate: public QObject { Q_OBJECT public: - ServicePrivate(const QString& name, IController* controller = nullptr, + ServicePrivate(const QString& name, IService* service = nullptr, QObject *parent = nullptr); bool sendCmdResult(const QVariantMap& result); - bool sendFeaturesRequest(); - bool sendCmd(const QList& result); - -signals: - void sigListFeatures(QList); private: LocalSocket *_socket = nullptr; IService *_service = nullptr; - IController *_controller = nullptr; private slots: void handleReceve(QByteArray data); diff --git a/doxygen.conf b/doxygen.conf index 0783f8b..1c76a23 100644 --- a/doxygen.conf +++ b/doxygen.conf @@ -703,7 +703,7 @@ FILE_VERSION_FILTER = # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. -LAYOUT_FILE = +LAYOUT_FILE = /res/styles/DoxygenLayout.xml # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib @@ -1193,7 +1193,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = res/styles/doxygenStyles.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 @@ -1214,7 +1214,7 @@ HTML_EXTRA_FILES = # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_HUE = 18 +HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A @@ -1222,7 +1222,7 @@ HTML_COLORSTYLE_HUE = 18 # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_SAT = 104 +HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 @@ -1233,7 +1233,7 @@ HTML_COLORSTYLE_SAT = 104 # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_GAMMA = 70 +HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this @@ -1451,7 +1451,7 @@ GENERATE_ECLIPSEHELP = NO # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. -ECLIPSE_DOC_ID = org.doxygen.Project +ECLIPSE_DOC_ID = QuasarApp.Patronum # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The @@ -1479,7 +1479,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = YES +GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. diff --git a/res/styles/DoxygenLayout.xml b/res/styles/DoxygenLayout.xml new file mode 100755 index 0000000..8c86dae --- /dev/null +++ b/res/styles/DoxygenLayout.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/styles/doxygenStyles.css b/res/styles/doxygenStyles.css new file mode 100755 index 0000000..bae8cba --- /dev/null +++ b/res/styles/doxygenStyles.css @@ -0,0 +1,1137 @@ + /* The standard CSS for doxygen 1.8.4 */ +@import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,200,200italic,400italic); +@import url(http://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic,900,900italic&subset=latin,greek-ext,greek,latin-ext); +body{ + background-color: #fff; + margin: 0; + font-size: 12pt; +} +body, table, div, p, dl, +table.directory, #nav-tree,#nav-tree .label { +font-family: "Segoe UI", "Lucida Sans Unicode", Helvetica, Arial, Verdana, 'Roboto', sans-serif; +color: #111; +font-size: 1rem; +} +.arrow, +.navpath li.navelem a, +#navrow4 a,.icon, span.mlabel, +tt, code, kbd, samp, a.el, +pre.fragment, div.line, +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams, +.memname, +.params .paramdir { + font-family: Consolas, 'Courier New', courier, Courier, monospace; +} +.title, +.fieldtable th{ + font-family: "Cambria", serif; +} +#projectname,#projectbrief, +h1, h2, h3 { + font-family: "Segoe UI Light", 'Source Sans Pro', sans-serif; + margin: 1.75em 0 .2em 0; + font-weight: 200; +} +#projectname{color:#00aff0;font-weight:300;} +#projectbrief{color:#16499a;} +h1,h2,h3{color: #000;} +/* @group Heading Levels */ +.title { + color: #333; + letter-spacing: 0.00em; + font-size: 2rem; + line-height: 2.1rem; + font-weight: 500; + margin: 10px 2px; +} +h1, h1.groupheader { + font-weight: 200; + color: #000000; + letter-spacing: 0.00em; + font-size: 3.5rem; + line-height: 3.7rem; +} +h2, h2.groupheader { + font-weight: 200; + color: #000000; + letter-spacing: 0.00em; + font-size: 2.2rem; + line-height: 2.3rem; + letter-spacing: 0.01em; + border-bottom: none; + margin: 1.75em 0 .2em 0; + padding: 0px; + width: 100%; +} +h3.groupheader { + font-weight: 200; + font-size: 2.0rem; + line-height: 2.1rem; + color: #000; +} +h1, h2, h3, h4, h5, h6 { + /*-webkit-transition: text-shadow:none;// 0.5s linear; + -moz-transition: text-shadow:none;// 0.5s linear; + -ms-transition: text-shadow:none;// 0.5s linear; + -o-transition: text-shadow:none;// 0.5s linear; + transition: text-shadow:none;// 0.5s linear; + //margin-right: 15px; + //margin: 42px 0px 20px 0px;*/ +} +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow:none;//: 0 0 15px cyan; +} +dt { + font-weight: bold; +} +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} +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{ + background-color: #00aff0;/*blue*/ + border: 1px solid #00aff0;/*blue*/ + text-align: center; +} +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} +div.navtab { + margin-right: 15px; +} +/* @group Link Styling */ +a { + color: #16499a;/*darkBlue*/ + font-weight: normal; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +.contents a, .contents a:visited { + color: #16499a;/*darkBlue*/ +} +a.qindex, a.qindex:visited { + color: #fff; + font-weight: normal; +} +a.qindexHL { + font-weight: normal; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} +.contents a.qindexHL:visited { + color: #ffffff; +} +a.el{ + font-weight: normal; +} +a.elRef { +} +a.code, a.code:visited { + color: #16499a;/*darkBlue*/ +} +a.codeRef, a.codeRef:visited { + color: #16499a;/*darkBlue*/ +} +/* @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: 10pt; + line-height: 125%; +} +div.fragment { + padding: 6px 10px; + margin: 15px 0px; + border: solid 1px rgb(221, 221, 221); + border-radius: 3px; + background-color: rgb(248, 248, 248); +} +div.line { + min-height: 11pt; + 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; +} +div.line.glow { + background-color: blue; + box-shadow: 0 0 10px blue; +} +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: #16499a;/*darkBlue*/ + font-weight: lighter; + color: #fff;/*white*/ + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: none; + border-radius: 0.0em; + -webkit-border-radius: .0em; + -moz-border-radius: .0em; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + background-image: none; +} +div.groupHeader { + margin-left: 0px; + margin-top: 9px; + margin-bottom: 4.7px; + font-size: 19px; + font-weight: normal; +} +div.groupText { + margin-left: 16px; + font-style: italic; +} +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; + width:3.5rem; +} +/* @group Code colorization */ +span.keyword { + color: #008000 +} +span.keywordtype { + color: #604020 +} +span.keywordflow { + color: #e08000 +} +span.comment { + color: #800000 +} +span.preprocessor { + color: #806020 +} +span.stringliteral { + color: #002080 +} +span.charliteral { + color: #008080 +} +span.vhdldigit { + color: #ff00ff +} +span.vhdlchar { + color: #000000 +} +span.vhdlkeyword { + color: #700070 +} +span.vhdllogic { + color: #ff0000 +} +blockquote { + 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 #aaa; +} +hr.footer { + height: 0px; + border-top: 3px solid #aaa; +} +/* @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: blue; + box-shadow: 0 0 15px blue; +} +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #f0f4f8; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; + font-style: italic; + font-size: .9rem; +} +.memSeparator { + border-bottom: 1px solid #fff; + line-height: 1px; + margin: 0px; + padding: 0px; +} +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} +.memItemLeft{padding-top:6px;} +.memItemRight, .memTemplItemRight { + padding-top:6px; + width: 100%; +} +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} +/* @end */ +/* @group Member Details */ +/* Styles for detailed member documentation */ +.memtemplate { + font-size: .8rem; + color: #666; + font-weight: normal; + margin-left: 2px; +} +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.mempage { + width: 100%; +} +.memitem { + border: 1px solid #ccc; + 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 blue; +} +.memname { + font-weight: normal; + margin-left: 0px; +} +.memname a.el{ +font-weight: normal; +} +.memname td { + vertical-align: bottom; +} +.memproto, dl.reflist dt { + margin-top: 1.5em; + border: none; + border-radius: 0; + padding: 6px; + color: #00aff0; + font-weight: normal; + text-shadow:none; + background-image:none; + background-color: #f0f4f8; + /* opera specific markup */ + box-shadow: none; + /* firefox specific markup */ +} +.memdoc, dl.reflist dd { + border: none; + padding: 6px; + border-top-width: 0; + background-image: none; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + box-shadow: none; + /* firefox specific markup */ + -moz-border-radius-bottomleft: 0px; + -moz-border-radius-bottomright: 0px; + -moz-box-shadow: none; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 0px; + -webkit-border-bottom-right-radius: 0px; + -webkit-box-shadow: none; +} +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: italic; + font-weight: normal; +} +.paramname code { + line-height: 14px; +} +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} +.params .paramname, .retval .paramname { + font-family: Consolas, "Courier New", courier, Courier, monospace; + font-size:105%; + font-style: italic; + font-weight: normal; + text-shadow:none; + background-color: #f8f8f8; + display: inline; + margin: 0 16px 0 0; +} +.params .paramtype { + font-style: italic; + vertical-align: top; +} +.params .paramdir { + vertical-align: top; +} +table.mlabels { + border-spacing: 0px; +} +td.mlabels-left { + width: 100%; + padding: 0px; +} +td.mlabels-right { + vertical-align: middle; + padding: 0px; + white-space: nowrap; +} +span.mlabels { + margin-left: 8px; +} +span.mlabel { + background-color:#f8f8f8; /*grey*/ + border:1px solid #ccc; + text-shadow:none; + color: #00aff0;/*blue*/ + margin-right: 4px; + padding: 2px 3px; + border-radius: 0px; + font-size: .7rem; + 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 #eee; + border-spacing: 0px; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + vertical-align: top; +} +.fieldtable td.fieldname { + padding-top: 3px; +} +.fieldtable td.fielddoc { + border-bottom: 1px solid #ccc; + /*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:none; + background-repeat:repeat-x; + background-color:#eee; + font-size: 1.05rem; + font-weight:normal; + color: #00aff0; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius:0; + -webkit-border-radius:0px; + border-radius: 0px; + border-bottom: 1px solid #eee; +} +.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:#fff; +} +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #fff; + font-size:.8rem; + text-shadow:none; + 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:#ccc; + 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: none; + background-color: #f8f8f8; + margin: 0px; + border: none; +} +div.headertitle +{ + padding: 5px 5px 5px 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 +{ + margin-left: 0px; + padding-left: 0px; +} +dl.note +{ + margin-left: 0px; + padding: 6px 0px 3px 8px; + border-left: 6px solid; + border-color: #D0C000; + background-color: #fff799 +} +dl.warning, dl.attention +{ + margin-left: 0px; + padding: 6px 0px 3px 8px; + border-left: 6px solid; + border-color: #FF0000; +} +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} +dl.deprecated +{ + margin-left: 0px; + padding: 6px 0px 3px 8px; + border-left: 6px solid; + border-color: #505050; +} +dl.deprecated dt a.el +{ + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} +dl.todo +{ + margin-left: 0px; + padding: 6px 0px 3px 8px; + border-left:4px solid; + border-color: #00C0E0; +} +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.section dd { + margin-bottom: 6px; +} +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} +#projectlogo img +{ + border: 0px none; + width: 4.5rem; + float:left; +} +#projectname +{ + font-size: 3rem; + margin: 0px; + padding: 2px 0px; + float:left; +} +#projectbrief +{ + font-size: 1.2rem; + margin: 0px; + padding: 2.5rem 0 0 .25rem; + float:left; + font-style: italic; +} +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; + backround-color: gainsboro; +} +.image +{ + text-align: center; +} +.dotgraph +{ + text-align: center; +} +.mscgraph +{ + 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: 42px; + margin-bottom: 20px; +} +@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; + } +} +.tabs, .tabs2, .tabs3 { + background-image: none; + background-color: #16499a; /*darkBlue*/ + color: white; +} +.tablist li.current a{ + text-shadow: none; +} +.tabs2 { + background-color: #00aff0; /*blue*/ + font-size:11pt; +} +#navrow3{background-color: #ddd;} +#navrow3 a{color: #16499a;} +#navrow4{background-color:#eee; } +#navrow4 li{border: 1px solid #e8e8e8;} +#navrow4 a{color:#00aff0;font-weight: normal;} +.tablist li { + background-image: none; + font-size:0.8rem; + line-height:1.65rem; +} +.tablist a { + background-image: none; + color: white; + text-shadow:none; +} +.tablist a:hover { + background-image: none; + text-shadow:none; +} +.tablist li.current a { + background-image: none; + color: #fff; + text-shadow:none; +} +.tabs li.current { + background-color: #00aff0; /*blue*/ + color: #fff; +} +.tabs2 li.current { + background-color: lightskyblue;/* #f0a30a;amber*/ +} +.navpath { + border: none; +} +.navpath ul { + background-image: none; + background-color: #16499a; /*darkblue*/ + border: none; +} +.navpath li { + background-image: none; +} +.navpath li.navelem a { + background-image: none; + color: white; + text-shadow:none;/*: none;*/ +} +.navpath li.navelem a:hover { + background-image: none; + color: white; + text-shadow:none;/*: none;*/ +} +.icona { +width: 1.5rem; +height: 1.45rem; +display: inline-block; +} +.icon { +font-weight: bold; +font-size: .8rem; +height: 1rem; +width: 1rem; +display: inline-block; +background-color: #87794e;/*taupe*/ +color: white; +text-align: center; +border-radius: 0px; +margin-left: 2px; +margin-right: 2px; +} +/* navtree */ +#nav-tree { +background-color: #fdfdfd; +background-image: none; +font-size: 1rem; +} +#nav-tree .selected { +background-image: none; + background-color:lightskyblue;/*#f0a30a;/amber*/ + text-shadow:none; +} +#nav-tree .label{ + font-size: .9rem; +} +.ui-resizable-e{ + background-image: none; + background-color: #c4c8ca; +}