├── .gitattributes
├── .github
└── workflows
│ └── release.yml
├── .gitignore
├── Binary Archive
├── UI++2.11.0.3.zip
├── UI++2.11.1.0.zip
├── UI++2.11.1.1.zip
├── UI++2.11.1.2.zip
├── UI++3.0.0.0.zip
├── UI++3.0.1.0.zip
├── UI++3.0.2.0.zip
└── UI++3.0.3.0.zip
├── Docs
└── website
│ ├── .gitignore
│ ├── 404.html
│ ├── Gemfile
│ ├── Gemfile.lock
│ ├── _config.yml
│ ├── _data
│ ├── authors.yml
│ ├── licenses.yml
│ ├── locale.yml
│ ├── navigation.yml
│ └── variables.yml
│ ├── _includes
│ ├── analytics-providers
│ │ ├── custom.html
│ │ └── google.html
│ ├── analytics.html
│ ├── article-footer.html
│ ├── article-header.html
│ ├── article-info.html
│ ├── article-list.html
│ ├── article-section-navigator.html
│ ├── article
│ │ ├── footer
│ │ │ ├── author-profile.html
│ │ │ ├── custom.html
│ │ │ ├── license.html
│ │ │ └── subscribe.html
│ │ └── top
│ │ │ └── custom.html
│ ├── aside
│ │ └── toc.html
│ ├── author-links.html
│ ├── comments-providers
│ │ ├── custom.html
│ │ ├── disqus.html
│ │ ├── gitalk.html
│ │ └── valine.html
│ ├── comments.html
│ ├── extensions
│ │ ├── bilibili.html
│ │ ├── codepen.html
│ │ ├── netease-cloud-music.html
│ │ ├── slideshare.html
│ │ ├── soundcloud.html
│ │ ├── ted.html
│ │ └── youtube.html
│ ├── footer.html
│ ├── head.html
│ ├── head
│ │ ├── custom.html
│ │ └── favicon.html
│ ├── header.html
│ ├── main
│ │ ├── bottom
│ │ │ └── custom.html
│ │ └── top
│ │ │ └── custom.html
│ ├── markdown-enhancements.html
│ ├── markdown-enhancements
│ │ ├── chart.html
│ │ ├── mathjax.html
│ │ └── mermaid.html
│ ├── pageview-providers
│ │ ├── custom
│ │ │ ├── home.html
│ │ │ └── post.html
│ │ └── leancloud
│ │ │ ├── home.html
│ │ │ ├── leancloud.js
│ │ │ └── post.html
│ ├── pageview.html
│ ├── paginator.html
│ ├── scripts
│ │ ├── archieve.js
│ │ ├── article.js
│ │ ├── aside
│ │ │ ├── affix.js
│ │ │ └── toc.js
│ │ ├── common.js
│ │ ├── components
│ │ │ ├── lightbox.js
│ │ │ ├── search.js
│ │ │ └── sidebar.js
│ │ ├── home.js
│ │ ├── lib
│ │ │ ├── affix.js
│ │ │ ├── gallery.js
│ │ │ ├── lazyload.js
│ │ │ ├── modal.js
│ │ │ ├── scroll-to.js
│ │ │ ├── swiper.js
│ │ │ ├── throttle.js
│ │ │ └── toc.js
│ │ ├── page.js
│ │ ├── utils
│ │ │ ├── imagesLoad.js
│ │ │ └── utils.js
│ │ └── variables.html
│ ├── search-providers
│ │ ├── custom
│ │ │ └── search.html
│ │ ├── default
│ │ │ ├── search-data.js
│ │ │ ├── search.html
│ │ │ └── search.js
│ │ └── google-custom-search-engine
│ │ │ ├── search.html
│ │ │ └── search.js
│ ├── search.html
│ ├── sharing-providers
│ │ ├── addthis.html
│ │ ├── addtoany.html
│ │ └── custom.html
│ ├── sharing.html
│ ├── sidebar
│ │ └── toc.html
│ ├── snippets
│ │ ├── assign.html
│ │ ├── get-article-title.html
│ │ ├── get-lang.html
│ │ ├── get-locale-string.html
│ │ ├── get-nav-url.html
│ │ ├── get-sources.html
│ │ ├── get-string-from-locale-config.html
│ │ ├── is_collection.html
│ │ ├── page-url.html
│ │ ├── prepend-baseurl.html
│ │ └── prepend-path.html
│ ├── svg
│ │ ├── icon
│ │ │ └── social
│ │ │ │ ├── behance.svg
│ │ │ │ ├── douban.svg
│ │ │ │ ├── facebook.svg
│ │ │ │ ├── flicker.svg
│ │ │ │ ├── github.svg
│ │ │ │ ├── googleplus.svg
│ │ │ │ ├── linkedin.svg
│ │ │ │ ├── mail.svg
│ │ │ │ ├── medium.svg
│ │ │ │ ├── npm.svg
│ │ │ │ ├── pinterest.svg
│ │ │ │ ├── qq.svg
│ │ │ │ ├── telegram.svg
│ │ │ │ ├── twitter.svg
│ │ │ │ ├── weibo.svg
│ │ │ │ ├── weixin.svg
│ │ │ │ └── zhihu.svg
│ │ └── logo.svg
│ └── tags.html
│ ├── _layouts
│ ├── 404.html
│ ├── archive.html
│ ├── article.html
│ ├── articles.html
│ ├── base.html
│ ├── home.html
│ ├── landing.html
│ ├── none.html
│ └── page.html
│ ├── _sass
│ ├── additional
│ │ ├── _alert.scss
│ │ ├── _photo-frame.scss
│ │ └── _tag.scss
│ ├── animate
│ │ ├── _fade-in-down.scss
│ │ ├── _fade-in-up.scss
│ │ └── _fade-in.scss
│ ├── common
│ │ ├── _classes.scss
│ │ ├── _function.scss
│ │ ├── _print.scss
│ │ ├── _reset.scss
│ │ ├── _variables.scss
│ │ ├── classes
│ │ │ ├── _animation.scss
│ │ │ ├── _clearfix.scss
│ │ │ ├── _clickable.scss
│ │ │ ├── _display.scss
│ │ │ ├── _flex.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _horizontal-rules.scss
│ │ │ ├── _link.scss
│ │ │ ├── _media.scss
│ │ │ ├── _overflow.scss
│ │ │ ├── _pseudo.scss
│ │ │ ├── _shadow.scss
│ │ │ ├── _spacing.scss
│ │ │ ├── _split-line.scss
│ │ │ ├── _text.scss
│ │ │ ├── _transform.scss
│ │ │ ├── _transition.scss
│ │ │ └── _user-select.scss
│ │ └── components
│ │ │ ├── _button.scss
│ │ │ ├── _card.scss
│ │ │ ├── _gallery.scss
│ │ │ ├── _hero.scss
│ │ │ ├── _image.scss
│ │ │ ├── _item.scss
│ │ │ ├── _menu.scss
│ │ │ ├── _modal.scss
│ │ │ ├── _swiper.scss
│ │ │ └── _toc.scss
│ ├── components
│ │ ├── _article-content.scss
│ │ ├── _article-footer.scss
│ │ ├── _article-header.scss
│ │ ├── _article-info.scss
│ │ ├── _article-list.scss
│ │ ├── _author-links.scss
│ │ ├── _author-profile.scss
│ │ ├── _extensions.scss
│ │ ├── _footer.scss
│ │ ├── _header.scss
│ │ ├── _lightbox.scss
│ │ ├── _main.scss
│ │ ├── _search.scss
│ │ └── _tags.scss
│ ├── custom.scss
│ ├── layout
│ │ ├── _404.scss
│ │ ├── _archive.scss
│ │ ├── _article.scss
│ │ ├── _articles.scss
│ │ ├── _base.scss
│ │ ├── _home.scss
│ │ ├── _landing.scss
│ │ └── _page.scss
│ └── skins
│ │ ├── _chocolate.scss
│ │ ├── _dark.scss
│ │ ├── _default.scss
│ │ ├── _forest.scss
│ │ ├── _ocean.scss
│ │ ├── _orange.scss
│ │ └── highlight
│ │ ├── _default.scss
│ │ ├── _tomorrow-night-blue.scss
│ │ ├── _tomorrow-night-bright.scss
│ │ ├── _tomorrow-night-eighties.scss
│ │ ├── _tomorrow-night.scss
│ │ ├── _tomorrow.scss
│ │ └── tomorrow
│ │ ├── _default.scss
│ │ ├── _highlight.scss
│ │ ├── _night-blue.scss
│ │ ├── _night-bright.scss
│ │ ├── _night-eighties.scss
│ │ └── _night.scss
│ ├── assets
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ ├── apple-touch-icon.png
│ ├── browserconfig.xml
│ ├── css
│ │ └── main.scss
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ ├── images
│ │ ├── UI++Icon.png
│ │ ├── logo
│ │ │ └── logo.svg
│ │ └── screenshots
│ │ │ ├── bootimage-prestart.png
│ │ │ ├── bootmedia-prestart.png
│ │ │ ├── dialog-apptree.png
│ │ │ ├── dialog-errorinfo-2.png
│ │ │ ├── dialog-errorinfo.png
│ │ │ ├── dialog-info-timeout.png
│ │ │ ├── dialog-info.png
│ │ │ ├── dialog-infofullscreen.png
│ │ │ ├── dialog-infofullscreen2.png
│ │ │ ├── dialog-input-inputcheckbox-2.png
│ │ │ ├── dialog-input-inputcheckbox-3.png
│ │ │ ├── dialog-input-inputcheckbox.png
│ │ │ ├── dialog-input-inputchoice-2.png
│ │ │ ├── dialog-input-inputchoice-3.png
│ │ │ ├── dialog-input-inputchoice.png
│ │ │ ├── dialog-input-inputtext-2.png
│ │ │ ├── dialog-input-inputtext.png
│ │ │ ├── dialog-optional.png
│ │ │ ├── dialog-preflight-2.png
│ │ │ ├── dialog-preflight-3.png
│ │ │ ├── dialog-preflight-4.png
│ │ │ ├── dialog-preflight-5.png
│ │ │ ├── dialog-preflight.png
│ │ │ ├── dialog-standard.png
│ │ │ ├── dialog-userauth-2.png
│ │ │ ├── dialog-userauth-3.png
│ │ │ ├── dialog-userauth.png
│ │ │ ├── tasksequence-installapplication.png
│ │ │ ├── tasksequence-installpackage.png
│ │ │ ├── tasksequence-run.png
│ │ │ ├── variableeditor-editable.png
│ │ │ ├── variableeditor-readonly.png
│ │ │ └── welcome.png
│ ├── mstile-144x144.png
│ ├── mstile-150x150.png
│ ├── mstile-310x150.png
│ ├── mstile-310x310.png
│ ├── mstile-70x70.png
│ ├── safari-pinned-tab.svg
│ ├── search.js
│ └── site.webmanifest
│ ├── docs
│ ├── actionconfig
│ │ ├── apptree.md
│ │ ├── defaultvalues.md
│ │ ├── errorinfo.md
│ │ ├── externalcall.md
│ │ ├── fileread.md
│ │ ├── info.md
│ │ ├── infofullscreen.md
│ │ ├── input.md
│ │ ├── preflight.md
│ │ ├── randomstring.md
│ │ ├── registry.md
│ │ ├── saveitems.md
│ │ ├── softwarediscovery.md
│ │ ├── switch.md
│ │ ├── tsvarlist.md
│ │ ├── userauth.md
│ │ ├── variables.md
│ │ ├── variablesaveload.md
│ │ └── wmi.md
│ ├── actions
│ │ ├── interactiveactions.md
│ │ ├── introduction.md
│ │ └── noninteractiveactions.md
│ ├── changelog.md
│ ├── configuration
│ │ ├── actiongroups.md
│ │ ├── activedirectorychecks.md
│ │ ├── backbutton.md
│ │ ├── conditions.md
│ │ ├── configurationfile.md
│ │ ├── statusmessages.md
│ │ └── valuesandvariables.md
│ ├── download.md
│ ├── intro
│ │ ├── features.md
│ │ ├── overview.md
│ │ └── prerequisites.md
│ ├── reference
│ │ ├── actionelements.md
│ │ ├── allelements.md
│ │ ├── defaultvalues.md
│ │ └── textformatting.md
│ ├── running
│ │ ├── commandline.md
│ │ ├── commonusage.md
│ │ └── logfile.md
│ ├── samples.md
│ └── terms.md
│ ├── index.md
│ └── jekyll-text-theme.gemspec
├── FTWCMLog
├── FTWCMLog.cpp
├── FTWCMLog.h
├── FTWCMLog.rc
├── FTWCMLog.rc2
├── FTWCMLog.vcxproj
├── FTWCMLog.vcxproj.filters
├── FTWCMLog.vcxproj.user
├── dllmain.cpp
├── resource.h
├── stdafx.cpp
├── stdafx.h
├── targetver.h
└── version.h
├── FTWldap
├── CLdap.cpp
├── CLdap.h
├── FTWldap.rc
├── FTWldap.rc2
├── FTWldap.vcxproj
├── FTWldap.vcxproj.filters
├── FTWldap.vcxproj.user
├── dllmain.cpp
├── resource.h
├── stdafx.cpp
├── stdafx.h
├── targetver.h
└── version.h
├── LICENSE
├── README.md
├── UI++.sln
├── UI++
├── Actions
│ ├── ActionDefaultValues.cpp
│ ├── ActionDefaultValues.h
│ ├── ActionExternalCall.cpp
│ ├── ActionHelper.cpp
│ ├── ActionHelper.h
│ ├── ActionUserInput.cpp
│ ├── Actions.cpp
│ ├── Actions.h
│ ├── DefaultValsAction - Copy.cpp
│ ├── IAction.cpp
│ ├── IAction.h
│ └── InteractiveActions.cpp
├── CodeProject
│ ├── CmdLine
│ │ ├── CmdLine.cpp
│ │ └── CmdLine.h
│ ├── ComboCompletion
│ │ ├── ComboCompletion.cpp
│ │ └── ComboCompletion.h
│ ├── FilterEdit
│ │ ├── BaseEdit.cpp
│ │ ├── BaseEdit.h
│ │ ├── UIntEdit.h
│ │ └── UIntRangeEdit.h
│ ├── GridListCtrlEx
│ │ ├── CGridColumnTrait.h
│ │ ├── CGridColumnTraitCombo.cpp
│ │ ├── CGridColumnTraitCombo.h
│ │ ├── CGridColumnTraitDateTime.cpp
│ │ ├── CGridColumnTraitDateTime.h
│ │ ├── CGridColumnTraitEdit.cpp
│ │ ├── CGridColumnTraitEdit.h
│ │ ├── CGridColumnTraitHyperLink.cpp
│ │ ├── CGridColumnTraitHyperLink.h
│ │ ├── CGridColumnTraitImage.cpp
│ │ ├── CGridColumnTraitImage.h
│ │ ├── CGridColumnTraitMultilineEdit.cpp
│ │ ├── CGridColumnTraitMultilineEdit.h
│ │ ├── CGridColumnTraitText.cpp
│ │ ├── CGridColumnTraitText.h
│ │ ├── CGridColumnTraitVisitor.h
│ │ ├── CGridListCtrlEx.cpp
│ │ ├── CGridListCtrlEx.h
│ │ ├── CGridListCtrlGroups.cpp
│ │ ├── CGridListCtrlGroups.h
│ │ ├── CGridRowTrait.h
│ │ ├── CGridRowTraitText.cpp
│ │ ├── CGridRowTraitText.h
│ │ ├── CGridRowTraitVisitor.h
│ │ ├── CGridRowTraitXP.cpp
│ │ ├── CGridRowTraitXP.h
│ │ ├── ViewConfigSection.cpp
│ │ └── ViewConfigSection.h
│ ├── KCSideBannerWnd
│ │ ├── KCSideBannerWnd.cpp
│ │ ├── KCSideBannerWnd.h
│ │ └── WndUtil.h
│ ├── WndResizer
│ │ ├── WndResizer.cpp
│ │ └── WndResizer.h
│ └── regkey.h
├── ConfigMgrFTW.png
├── Constants.h
├── Dialogs
│ ├── DlgAppTree.cpp
│ ├── DlgAppTree.h
│ ├── DlgBase.cpp
│ ├── DlgBase.h
│ ├── DlgData.h
│ ├── DlgPreflight.cpp
│ ├── DlgPreflight.h
│ ├── DlgProgress.cpp
│ ├── DlgProgress.h
│ ├── DlgTSVar.cpp
│ ├── DlgTSVar.h
│ ├── DlgUserAuth.cpp
│ ├── DlgUserAuth.h
│ ├── DlgUserInfo.cpp
│ ├── DlgUserInfo.h
│ ├── DlgUserInfoFullScreen.cpp
│ ├── DlgUserInfoFullScreen.h
│ ├── DlgUserInput.cpp
│ ├── DlgUserInput.h
│ ├── UserAuthDlg - Copy.cpp
│ └── UserAuthDlg - Copy.h
├── FTW
│ ├── CMLog.cpp
│ ├── CMLog.h
│ ├── ComInit.h
│ ├── FTWBrowseEdit.cpp
│ ├── FTWBrowseEdit.h
│ ├── FTWControl.cpp
│ ├── FTWControl.h
│ ├── FTWError.h
│ ├── FTWHTTP.cpp
│ ├── FTWHTTP.h
│ ├── FTWTreeCtrl.cpp
│ ├── FTWTreeCtrl.h
│ ├── FTWVersion.h
│ ├── InternetConn.h
│ ├── ObjectFactory.h
│ ├── TSCore.dll
│ ├── TSProgress.cpp
│ ├── TSProgress.h
│ ├── Utils.cpp
│ ├── Utils.h
│ ├── Utils_old.cpp
│ ├── Utils_old.h
│ ├── WMIAccess.cpp
│ ├── WMIAccess.h
│ ├── WMIAccess.old.cpp
│ └── tsprogressui.exe
├── HansDietrich
│ ├── CXDC.h
│ ├── CXPoint.h
│ ├── CXRect.h
│ ├── CXWaitCursor.h
│ ├── CreateGrayscaleIcon.h
│ ├── FontSize.cpp
│ ├── FontSize.h
│ ├── OddButton.cpp
│ ├── OddButton.h
│ ├── VisualStylesXP.cpp
│ ├── VisualStylesXP.h
│ ├── XArray.h
│ ├── XBalloonMsg.cpp
│ ├── XBalloonMsg.h
│ ├── XButtonXP.cpp
│ ├── XButtonXP.h
│ ├── XColorStatic.cpp
│ ├── XColorStatic.h
│ ├── XDisplayImage.cpp
│ ├── XDisplayImage.h
│ ├── XHTMLCtrl.cpp
│ ├── XHTMLCtrl.h
│ ├── XHtmlDraw.cpp
│ ├── XHtmlDraw.h
│ ├── XHtmlDrawLink.cpp
│ ├── XHtmlDrawLink.h
│ ├── XHyperLink.cpp
│ ├── XHyperLink.h
│ ├── XNamedColors.cpp
│ ├── XNamedColors.h
│ ├── XStack.h
│ ├── XString.cpp
│ ├── XString.h
│ ├── XThemeHelper.cpp
│ ├── XThemeHelper.h
│ ├── XTrace.h
│ ├── cxtooltipctrl.h
│ ├── ensure.h
│ └── wtlstring.h
├── IntEdit.h
├── RCa10892
├── ReadMe.txt
├── RegExEdit.cpp
├── RegExEdit.h
├── ScriptHost.cpp
├── ScriptHost.h
├── Software.cpp
├── Software.h
├── TSVar.cpp
├── TSVar.h
├── TooltipStatic.cpp
├── TooltipStatic.h
├── UI++ (Logical Disks Snippet).xml
├── UI++.1.xml
├── UI++.A.xml
├── UI++.APS
├── UI++.cpp
├── UI++.h
├── UI++.rc
├── UI++.rc.bak.rc
├── UI++.vcxproj
├── UI++.vcxproj.filters
├── UI++.vcxproj.user
├── UI++.xml
├── UI++2.ico
├── UI++2.xml
├── UI++3.xml
├── UI++5.xml
├── UI++6.xml
├── UserInfoCheck.cpp
├── UserInfoCheck.h
├── UserInputBase.cpp
├── UserInputBase.h
├── UserInputCheckbox.cpp
├── UserInputCheckbox.h
├── UserInputChoice.cpp
├── UserInputChoice.h
├── UserInputChoiceOptions.h
├── UserInputInfo.cpp
├── UserInputInfo.h
├── UserInputText.cpp
├── UserInputText.h
├── approved.png
├── curl
│ └── include
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README
│ │ └── curl
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── curl.h
│ │ ├── curlbuild.h
│ │ ├── curlbuild.h.cmake
│ │ ├── curlbuild.h.in
│ │ ├── curlrules.h
│ │ ├── curlver.h
│ │ ├── easy.h
│ │ ├── mprintf.h
│ │ ├── multi.h
│ │ ├── stdcheaders.h
│ │ └── typecheck-gcc.h
├── fnv1a.hpp
├── pugi.old
│ ├── pugiconfig.hpp
│ ├── pugixml.cpp
│ └── pugixml.hpp
├── pugi
│ ├── pugiconfig.hpp
│ ├── pugixml.cpp
│ └── pugixml.hpp
├── qr-liverpool.png
├── qr-manutd.png
├── res
│ ├── ButtonBack-Grey.ico
│ ├── ButtonBack.ico
│ ├── ButtonCancel-Grey.ico
│ ├── ButtonCancel.ico
│ ├── ButtonOK-Grey.ico
│ ├── ButtonOK.ico
│ ├── ButtonRefresh-Grey.ico
│ ├── ButtonRefresh.ico
│ ├── ButtonRestart.ico
│ ├── DlgAppTree.ico
│ ├── DlgAuth.ico
│ ├── DlgInfo.ico
│ ├── DlgInput.ico
│ ├── DlgPreflight.ico
│ ├── DlgStop.ico
│ ├── InfoTip.ico
│ ├── InputAttention.ico
│ ├── StatusFailed.ico
│ ├── StatusPassed.ico
│ ├── StatusWarning.ico
│ ├── UI++ Tree Checkboxes.bmp
│ ├── UI++ Tree.bmp
│ ├── UI++.ico
│ ├── UI++2.ico
│ ├── UI.rc2
│ └── icon1.ico
├── resource.h
├── resource.hm
├── resources
│ ├── Test.jpg
│ ├── UI++.3.xml
│ ├── UI++2.ico
│ ├── UI++2.xml
│ ├── UI++3.xml
│ ├── UI++4.xml
│ ├── UI++6.xml
│ ├── UI++7.xml
│ └── ball.ico
├── stdafx.cpp
├── stdafx.h
├── targetver.h
└── version.h
├── UI++AWS
├── ReadMe.txt
├── Resource.h
├── UI++AWS.cpp
├── UI++AWS.def
├── UI++AWS.h
├── UI++AWS.rc
├── UI++AWS.vcxproj
├── UI++AWS.vcxproj.filters
├── res
│ └── UI++AWS.rc2
├── stdafx.cpp
├── stdafx.h
└── targetver.h
├── UI++REST
├── ReadMe.txt
├── Resource.h
├── RestConstants.h
├── UI++REST.cpp
├── UI++REST.def
├── UI++REST.h
├── UI++REST.rc
├── UI++REST.vcxproj
├── UI++REST.vcxproj.filters
├── Utils.cpp
├── Utils.h
├── res
│ └── UI++REST.rc2
├── stdafx.cpp
├── stdafx.h
└── targetver.h
└── vcpkg.json
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 |
3 | on:
4 | push:
5 |
6 | jobs:
7 | release:
8 | runs-on: windows-latest
9 |
10 | strategy:
11 | matrix:
12 | platform: [x64, Win32]
13 |
14 | env:
15 | VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
16 |
17 | steps:
18 | - uses: actions/checkout@v2
19 | - uses: microsoft/setup-msbuild@v2
20 |
21 | - name: Setup cache environment variables
22 | uses: actions/github-script@v7
23 | with:
24 | script: |
25 | core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
26 | core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
27 |
28 | - name: Build solution
29 | run: |
30 | vcpkg integrate install
31 | msbuild /p:Configuration=Release /p:Platform=${{ matrix.platform }}
32 |
33 | - uses: actions/upload-artifact@v4
34 | with:
35 | name: release-${{ matrix.platform }}
36 | path: Build\Release\${{ matrix.platform }}
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | UI++.VC.db
2 | Build
3 | Intermediate
4 | vcpkg_installed
5 |
--------------------------------------------------------------------------------
/Binary Archive/UI++2.11.0.3.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++2.11.0.3.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++2.11.1.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++2.11.1.0.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++2.11.1.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++2.11.1.1.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++2.11.1.2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++2.11.1.2.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++3.0.0.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++3.0.0.0.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++3.0.1.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++3.0.1.0.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++3.0.2.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++3.0.2.0.zip
--------------------------------------------------------------------------------
/Binary Archive/UI++3.0.3.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Binary Archive/UI++3.0.3.0.zip
--------------------------------------------------------------------------------
/Docs/website/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | .sass-cache
3 | .jekyll-cache
4 | .jekyll-metadata
5 | vendor
6 |
--------------------------------------------------------------------------------
/Docs/website/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: 404
3 | ---
--------------------------------------------------------------------------------
/Docs/website/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 | # Hello! This is where you manage which Jekyll version is used to run.
3 | # When you want to use a different version, change it below, save the
4 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
5 | #
6 | # bundle exec jekyll serve
7 | #
8 | # This will help ensure the proper Jekyll version is running.
9 | # Happy Jekylling!
10 | gem "jekyll", "~> 4.2.0"
11 | # This is the default theme for new Jekyll sites. You may change this to anything you like.
12 | gem "minima", "~> 2.5"
13 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
14 | # uncomment the line below. To upgrade, run `bundle update github-pages`.
15 | # gem "github-pages", group: :jekyll_plugins
16 | # If you have any plugins, put them here!
17 | group :jekyll_plugins do
18 | # gem "jekyll-feed", "> 0.12"
19 | # gem "jekyll-paginate"
20 | gem "jekyll-sitemap"
21 | gem "jemoji"
22 | gem "jekyll-figure"
23 | gem "jekyll-last-modified-at"
24 | gem "webrick"
25 | end
26 |
27 | # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
28 | # and associated library.
29 | #platforms :mingw, :x64_mingw, :mswin, :jruby do
30 | gem "tzinfo"
31 | gem "tzinfo-data"
32 | #end
33 |
34 | # Performance-booster for watching directories on Windows
35 | gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
36 |
37 |
--------------------------------------------------------------------------------
/Docs/website/_data/authors.yml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/_data/authors.yml
--------------------------------------------------------------------------------
/Docs/website/_data/licenses.yml:
--------------------------------------------------------------------------------
1 | CC-BY-4.0:
2 | name: Attribution 4.0 International
3 | url: https://creativecommons.org/licenses/by/4.0/
4 | image: https://i.creativecommons.org/l/by/4.0/88x31.png
5 | CC-BY-SA-4.0:
6 | name: Attribution-ShareAlike 4.0 International
7 | url: https://creativecommons.org/licenses/by-sa/4.0/
8 | image: https://i.creativecommons.org/l/by-sa/4.0/88x31.png
9 | CC-BY-NC-4.0:
10 | name: Attribution-NonCommercial 4.0 International
11 | url: https://creativecommons.org/licenses/by-nc/4.0/
12 | image: https://i.creativecommons.org/l/by-nc/4.0/88x31.png
13 | CC-BY-ND-4.0:
14 | name: Attribution-NoDerivatives 4.0 International
15 | url: https://creativecommons.org/licenses/by-nd/4.0/
16 | image: https://i.creativecommons.org/l/by-nd/4.0/88x31.png
17 |
--------------------------------------------------------------------------------
/Docs/website/_includes/analytics-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/analytics-providers/google.html:
--------------------------------------------------------------------------------
1 | {%- if site.analytics.google.tracking_id -%}
2 |
3 |
4 |
14 | {%- endif -%}
15 |
--------------------------------------------------------------------------------
/Docs/website/_includes/analytics.html:
--------------------------------------------------------------------------------
1 | {%- if jekyll.environment != 'development' -%}
2 | {%- if site.analytics.provider == 'google' -%}
3 | {%- include analytics-providers/google.html -%}
4 | {%- elsif site.analytics.provider == 'custom' -%}
5 | {%- include analytics-providers/custom.html -%}
6 | {%- endif -%}
7 | {%- endif -%}
8 |
--------------------------------------------------------------------------------
/Docs/website/_includes/article/footer/author-profile.html:
--------------------------------------------------------------------------------
1 | {%- assign _author = include.author -%}
2 |
3 | {%- if _author.type == 'organization' -%}
4 | {%- assign _author_itemtype = 'http://schema.org/Organization' -%}
5 | {%- else -%}
6 | {%- assign _author_itemtype = 'http://schema.org/Person' -%}
7 | {%- endif -%}
8 |
9 |
48 |
--------------------------------------------------------------------------------
/Docs/website/_includes/article/footer/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/article/footer/license.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-locale-string.html key='LICENSE_ANNOUNCE' -%}
2 | {%- assign _license_announce = __return -%}
3 |
4 | {%- if include.license -%}
5 |
6 | {%-assign _license_name = '[NAME]' | replace: "[URL]", include.license.url | replace: "[NAME]", include.license.name -%}
7 |
8 |
{{ _license_announce | replace: "[LICENSE]", _license_name }}
9 |
10 |
11 |
12 |
13 |
14 | {%- endif -%}
15 |
--------------------------------------------------------------------------------
/Docs/website/_includes/article/footer/subscribe.html:
--------------------------------------------------------------------------------
1 | {%- assign _paths_rss = site.paths.rss | default: site.data.variables.default.paths.rss -%}
2 | {%- include snippets/get-nav-url.html path=_paths_rss -%}
3 | {%- assign _paths_rss = __return -%}
4 | {%- include snippets/get-locale-string.html key='SUBSCRIBE' -%}
5 | {%- assign _locale_nav_subscribe = __return -%}
6 |
7 |
--------------------------------------------------------------------------------
/Docs/website/_includes/article/top/custom.html:
--------------------------------------------------------------------------------
1 |
2 | Last Updated: {% last_modified_at %}
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/aside/toc.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Docs/website/_includes/comments-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/comments-providers/disqus.html:
--------------------------------------------------------------------------------
1 | {%- if page.key and
2 | site.comments.disqus.shortname -%}
3 |
4 |
5 |
20 |
21 |
22 | {%- endif -%}
23 |
--------------------------------------------------------------------------------
/Docs/website/_includes/comments-providers/gitalk.html:
--------------------------------------------------------------------------------
1 | {%- if page.key and
2 | site.comments.gitalk.clientID and
3 | site.comments.gitalk.clientSecret and
4 | site.comments.gitalk.repository and
5 | site.comments.gitalk.owner and
6 | site.comments.gitalk.admin -%}
7 |
8 |
9 |
14 |
15 | {%- include snippets/get-sources.html -%}
16 | {%- assign _sources = __return -%}
17 |
18 | {%- assign _admin = '' -%}
19 | {%- for _admin_id in site.comments.gitalk.admin -%}
20 | {%- assign _admin = _admin | append: ", '" | append: _admin_id | append: "'" -%}
21 | {%- endfor -%}
22 | {%- assign _last = _admin | size | minus: 1 -%}
23 | {%- assign _admin = _admin | slice: 2, _last -%}
24 |
38 |
39 | {%- endif -%}
40 |
--------------------------------------------------------------------------------
/Docs/website/_includes/comments-providers/valine.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
4 | {%- assign _VALINE_APP_ID = site.comments.valine.app_id -%}
5 | {%- assign _VALINE_APP_KEY = site.comments.valine.app_key -%}
6 | {%- assign _VALINE_PLACEHOLDER = site.comments.valine.placeholder -%}
7 | {%- assign _VALINE_VISITOR = site.comments.valine.visitor -%}
8 | {%- assign _VALINE_META = site.comments.valine.meta -%}
9 |
10 |
11 | {%- if _VALINE_APP_ID and
12 | _VALINE_APP_KEY -%}
13 |
14 |
15 |
16 | {%- if _VALINE_VISITOR -%}
17 |
18 |
19 | {%- endif -%}
20 |
21 |
45 |
46 | {%- endif -%}
--------------------------------------------------------------------------------
/Docs/website/_includes/comments.html:
--------------------------------------------------------------------------------
1 | {%- if jekyll.environment != 'development' -%}
2 | {%- if site.comments.provider == 'disqus' -%}
3 | {%- include comments-providers/disqus.html -%}
4 | {%- elsif site.comments.provider == 'gitalk' -%}
5 | {%- include comments-providers/gitalk.html -%}
6 | {%- elsif site.comments.provider == 'valine' -%}
7 | {%- include comments-providers/valine.html -%}
8 | {%- elsif site.comments.provider == 'custom' -%}
9 | {%- include comments-providers/custom.html -%}
10 | {%- endif -%}
11 | {%- endif -%}
12 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/bilibili.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/codepen.html:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/netease-cloud-music.html:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/slideshare.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/soundcloud.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/ted.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/Docs/website/_includes/extensions/youtube.html:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/Docs/website/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {%- include snippets/get-article-title.html article=page -%}
6 | {%- if __return -%}{{ __return }} - {{ site.title }}{%- else -%}{{ site.title }}{%- endif -%}
7 |
8 |
9 |
10 |
11 | {%- assign _paths_rss = site.paths.rss | default: site.data.variables.default.paths.rss -%}
12 | {%- include snippets/get-nav-url.html path=_paths_rss -%}
13 |
14 |
15 | {%- include head/favicon.html -%}
16 |
17 | {%- include snippets/prepend-baseurl.html path='/assets/css/main.css' -%}
18 |
19 |
20 | {%- include snippets/get-sources.html -%}
21 | {%- assign _sources = __return -%}
22 |
23 |
24 | {%- include head/custom.html -%}
25 |
--------------------------------------------------------------------------------
/Docs/website/_includes/head/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/head/favicon.html:
--------------------------------------------------------------------------------
1 |
2 | {%- include snippets/prepend-baseurl.html path='/assets/apple-touch-icon.png' -%}
3 |
4 |
5 | {%- include snippets/prepend-baseurl.html path='/assets/favicon-32x32.png' -%}
6 |
7 |
8 | {%- include snippets/prepend-baseurl.html path='/assets/favicon-16x16.png' -%}
9 |
10 |
11 | {%- include snippets/prepend-baseurl.html path='/assets/site.webmanifest' -%}
12 |
13 |
14 | {%- include snippets/prepend-baseurl.html path='/assets/safari-pinned-tab.svg' -%}
15 |
16 |
17 | {%- include snippets/prepend-baseurl.html path='/assets/favicon.ico' -%}
18 |
19 |
20 |
21 |
22 | {%- include snippets/prepend-baseurl.html path='/assets/browserconfig.xml' -%}
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Docs/website/_includes/main/bottom/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/main/top/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/markdown-enhancements.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/assign.html target=site.data.variables.default.chart
2 | source0=site.chart source1=page.chart -%}
3 | {%- if __return == true -%}
4 | {%- include markdown-enhancements/chart.html -%}
5 | {%- endif -%}
6 |
7 | {%- include snippets/assign.html target=site.data.variables.default.mathjax
8 | source0=site.mathjax source1=page.mathjax -%}
9 | {%- if __return == true -%}
10 | {%- include markdown-enhancements/mathjax.html -%}
11 | {%- endif -%}
12 |
13 | {%- include snippets/assign.html target=site.data.variables.default.mermaid
14 | source0=site.mermaid source1=page.mermaid -%}
15 | {%- if __return == true -%}
16 | {%- include markdown-enhancements/mermaid.html -%}
17 | {%- endif -%}
18 |
--------------------------------------------------------------------------------
/Docs/website/_includes/markdown-enhancements/chart.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
16 |
--------------------------------------------------------------------------------
/Docs/website/_includes/markdown-enhancements/mathjax.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
4 | {%- include snippets/assign.html target=site.data.variables.default.mathjax_autoNumber
5 | source0=site.mathjax_autoNumber source1=page.mathjax_autoNumber -%}
6 | {%- assign _mathjax_autoNumber = __return -%}
7 |
8 |
17 |
18 |
--------------------------------------------------------------------------------
/Docs/website/_includes/markdown-enhancements/mermaid.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
11 |
--------------------------------------------------------------------------------
/Docs/website/_includes/pageview-providers/custom/home.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/pageview-providers/custom/post.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Docs/website/_includes/pageview-providers/leancloud/home.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
4 | {%- assign _LEANCLOUD_APP_ID = site.pageview.leancloud.app_id -%}
5 | {%- assign _LEANCLOUD_APP_KEY = site.pageview.leancloud.app_key -%}
6 | {%- assign _LEANCLOUD_APP_CLASS = site.pageview.leancloud.app_class -%}
7 |
8 | {%- if _LEANCLOUD_APP_ID and
9 | _LEANCLOUD_APP_KEY and
10 | _LEANCLOUD_APP_CLASS -%}
11 |
12 |
15 |
31 |
32 | {%- endif -%}
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Docs/website/_includes/pageview-providers/leancloud/post.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
4 | {%- assign _LEANCLOUD_APP_ID = site.pageview.leancloud.app_id -%}
5 | {%- assign _LEANCLOUD_APP_KEY = site.pageview.leancloud.app_key -%}
6 | {%- assign _LEANCLOUD_APP_CLASS = site.pageview.leancloud.app_class -%}
7 |
8 | {%- if page.key and
9 | _LEANCLOUD_APP_ID and
10 | _LEANCLOUD_APP_KEY and
11 | _LEANCLOUD_APP_CLASS -%}
12 |
13 |
16 |
30 |
31 | {%- endif -%}
--------------------------------------------------------------------------------
/Docs/website/_includes/pageview.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/assign.html target=site.data.variables.default.pageview source0=page.pageview -%}
2 | {%- assign _pageview = __return -%}
3 |
4 |
5 | {%- if page.layout == "home" -%}
6 |
7 | {%- if jekyll.environment != "development" -%}
8 | {%- if site.pageview.provider == 'leancloud' -%}
9 | {%- include pageview-providers/leancloud/home.html -%}
10 | {%- elsif site.pageview.provider == 'custom' -%}
11 | {%- include pageview-providers/custom/home.html -%}
12 | {%- endif -%}
13 | {%- endif -%}
14 |
15 |
16 | {%- elsif page.layout == "article" -%}
17 | {%- if _pageview -%}
18 |
19 | {%- if jekyll.environment != "development" and
20 | jekyll.environment != "beta" -%}
21 | {%- if site.pageview.provider == 'leancloud' -%}
22 | {%- include pageview-providers/leancloud/post.html -%}
23 | {%- elsif site.pageview.provider == 'custom' -%}
24 | {%- include pageview-providers/custom/post.html -%}
25 | {%- endif -%}
26 | {%- endif -%}
27 |
28 | {%- endif -%}
29 | {%- endif -%}
30 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/article.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var SOURCES = window.TEXT_VARIABLES.sources;
3 | window.Lazyload.js(SOURCES.jquery, function() {
4 | $(function() {
5 | var $this ,$scroll;
6 | var $articleContent = $('.js-article-content');
7 | var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar');
8 | var scroll = hasSidebar ? '.js-page-main' : 'html, body';
9 | $scroll = $(scroll);
10 |
11 | $articleContent.find('.highlight').each(function() {
12 | $this = $(this);
13 | $this.attr('data-lang', $this.find('code').attr('data-lang'));
14 | });
15 | $articleContent.find('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]').each(function() {
16 | $this = $(this);
17 | $this.append($('').html(''));
18 | });
19 | $articleContent.on('click', '.anchor', function() {
20 | $scroll.scrollToAnchor('#' + $(this).parent().attr('id'), 400);
21 | });
22 | });
23 | });
24 | })();
25 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/aside/affix.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var SOURCES = window.TEXT_VARIABLES.sources;
3 | window.Lazyload.js(SOURCES.jquery, function() {
4 | var $window = $(window), $pageFooter = $('.js-page-footer');
5 | var $pageAside = $('.js-page-aside');
6 | var affix;
7 | var tocDisabled = false;
8 | var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar');
9 |
10 | affix = $pageAside.affix({
11 | offsetBottom: $pageFooter.outerHeight(),
12 | scrollTarget: hasSidebar ? '.js-page-main' : null,
13 | scroller: hasSidebar ? '.js-page-main' : null,
14 | scroll: hasSidebar ? $('.js-page-main').children() : null,
15 | disabled: tocDisabled
16 | });
17 |
18 | $window.on('resize', window.throttle(function() {
19 | affix && affix.setOptions({
20 | disabled: tocDisabled
21 | });
22 | }, 100));
23 |
24 | window.pageAsideAffix = affix;
25 | });
26 | })();
27 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/aside/toc.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var SOURCES = window.TEXT_VARIABLES.sources;
3 | var TOC_SELECTOR = window.TEXT_VARIABLES.site.toc.selectors;
4 | window.Lazyload.js(SOURCES.jquery, function() {
5 | var $window = $(window);
6 | var $articleContent = $('.js-article-content');
7 | var $tocRoot = $('.js-toc-root'), $col2 = $('.js-col-aside');
8 | var toc;
9 | var tocDisabled = false;
10 | var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar');
11 | var hasToc = $articleContent.find(TOC_SELECTOR).length > 0;
12 |
13 | function disabled() {
14 | return $col2.css('display') === 'none' || !hasToc;
15 | }
16 |
17 | tocDisabled = disabled();
18 |
19 | toc = $tocRoot.toc({
20 | selectors: TOC_SELECTOR,
21 | container: $articleContent,
22 | scrollTarget: hasSidebar ? '.js-page-main' : null,
23 | scroller: hasSidebar ? '.js-page-main' : null,
24 | disabled: tocDisabled
25 | });
26 |
27 | $window.on('resize', window.throttle(function() {
28 | tocDisabled = disabled();
29 | toc && toc.setOptions({
30 | disabled: tocDisabled
31 | });
32 | }, 100));
33 |
34 | });
35 | })();
36 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/common.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | var $root = document.getElementsByClassName('root')[0];
3 | if (window.hasEvent('touchstart')) {
4 | $root.dataset.isTouch = true;
5 | document.addEventListener('touchstart', function(){}, false);
6 | }
7 | })();
8 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/components/sidebar.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var SOURCES = window.TEXT_VARIABLES.sources;
3 |
4 | window.Lazyload.js(SOURCES.jquery, function() {
5 | var $pageMask = $('.js-page-mask');
6 | var $pageRoot = $('.js-page-root');
7 | var $sidebarShow = $('.js-sidebar-show');
8 | var $sidebarHide = $('.js-sidebar-hide');
9 |
10 | function freeze(e) {
11 | if (e.target === $pageMask[0]) {
12 | e.preventDefault();
13 | }
14 | }
15 | function stopBodyScrolling(bool) {
16 | if (bool === true) {
17 | window.addEventListener('touchmove', freeze, { passive: false });
18 | } else {
19 | window.removeEventListener('touchmove', freeze, { passive: false });
20 | }
21 | }
22 |
23 | $sidebarShow.on('click', function() {
24 | stopBodyScrolling(true); $pageRoot.addClass('show-sidebar');
25 | });
26 | $sidebarHide.on('click', function() {
27 | stopBodyScrolling(false); $pageRoot.removeClass('show-sidebar');
28 | });
29 | });
30 | })();
31 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/home.js:
--------------------------------------------------------------------------------
1 | /*(function () {
2 |
3 | })();*/
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/lib/scroll-to.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var SOURCES = window.TEXT_VARIABLES.sources;
3 | window.Lazyload.js(SOURCES.jquery, function() {
4 | function scrollToAnchor(anchor, duration, callback) {
5 | var $root = this;
6 | $root.animate({ scrollTop: $(anchor).position().top }, duration, function() {
7 | window.history.replaceState(null, '', window.location.href.split('#')[0] + anchor);
8 | callback && callback();
9 | });
10 | }
11 | $.fn.scrollToAnchor = scrollToAnchor;
12 | });
13 | })();
14 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/lib/throttle.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | window.throttle = function(func, wait) {
3 | var args, result, thisArg, timeoutId, lastCalled = 0;
4 |
5 | function trailingCall() {
6 | lastCalled = new Date;
7 | timeoutId = null;
8 | result = func.apply(thisArg, args);
9 | }
10 | return function() {
11 | var now = new Date,
12 | remaining = wait - (now - lastCalled);
13 |
14 | args = arguments;
15 | thisArg = this;
16 |
17 | if (remaining <= 0) {
18 | clearTimeout(timeoutId);
19 | timeoutId = null;
20 | lastCalled = now;
21 | result = func.apply(thisArg, args);
22 | } else if (!timeoutId) {
23 | timeoutId = setTimeout(trailingCall, remaining);
24 | }
25 | return result;
26 | };
27 | };
28 | })();
29 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/page.js:
--------------------------------------------------------------------------------
1 | /*(function () {
2 |
3 | })();*/
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/utils/imagesLoad.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | window.imagesLoad = function(images) {
3 | images = images || document.getElementsByTagName('img');
4 | var imagesCount = images.length, loadedCount = 0, image;
5 | var i, j, loaded = false, cbs = [];
6 | imagesCount < 1 && (loaded = true);
7 | for (i = 0; i < imagesCount; i++) {
8 | image = images[i];
9 | image.complete ? handleImageLoad() : image.addEventListener('load', handleImageLoad);
10 | }
11 | function handleImageLoad() {
12 | loadedCount++;
13 | if (loadedCount === imagesCount) {
14 | loaded = true;
15 | if (cbs.length > 0) {
16 | for (j = 0; j < cbs.length; j++) {
17 | cbs[j]();
18 | }
19 | }
20 | }
21 | }
22 | return {
23 | then: function(cb) {
24 | cb && (loaded ? cb() : (cbs.push(cb)));
25 | }
26 | };
27 | };
28 | })();
29 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/utils/utils.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | window.isArray = function(val) {
3 | return Object.prototype.toString.call(val) === '[object Array]';
4 | };
5 | window.isString = function(val) {
6 | return typeof val === 'string';
7 | };
8 |
9 | window.hasEvent = function(event) {
10 | return 'on'.concat(event) in window.document;
11 | };
12 |
13 | window.isOverallScroller = function(node) {
14 | return node === document.documentElement || node === document.body || node === window;
15 | };
16 |
17 | window.isFormElement = function(node) {
18 | var tagName = node.tagName;
19 | return tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA';
20 | };
21 |
22 | window.pageLoad = (function () {
23 | var loaded = false, cbs = [];
24 | window.addEventListener('load', function () {
25 | var i;
26 | loaded = true;
27 | if (cbs.length > 0) {
28 | for (i = 0; i < cbs.length; i++) {
29 | cbs[i]();
30 | }
31 | }
32 | });
33 | return {
34 | then: function(cb) {
35 | cb && (loaded ? cb() : (cbs.push(cb)));
36 | }
37 | };
38 | })();
39 | })();
40 |
--------------------------------------------------------------------------------
/Docs/website/_includes/scripts/variables.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-sources.html -%}
2 | {%- assign _sources = __return -%}
3 |
4 | {%- include snippets/get-nav-url.html path="/assets/search.js" -%}
5 | {%- assign _paths_search_js = __return -%}
6 |
7 |
36 |
--------------------------------------------------------------------------------
/Docs/website/_includes/search-providers/custom/search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/search-providers/default/search-data.js:
--------------------------------------------------------------------------------
1 | window.TEXT_SEARCH_DATA={
2 | {%- for _collection in site.collections -%}
3 | {%- unless forloop.first -%},{%- endunless -%}
4 | '{{ _collection.label }}':[
5 | {%- for _article in _collection.docs -%}
6 | {%- unless forloop.first -%},{%- endunless -%}
7 | {'title':{{ _article.title | jsonify }},
8 | {%- include snippets/prepend-baseurl.html path=_article.url -%}
9 | {%- assign _url = __return -%}
10 | 'url':{{ _url | jsonify }}}
11 | {%- endfor -%}
12 | ]
13 | {%- endfor -%}
14 | };
15 |
--------------------------------------------------------------------------------
/Docs/website/_includes/search-providers/default/search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Docs/website/_includes/search-providers/google-custom-search-engine/search.html:
--------------------------------------------------------------------------------
1 | {%- if site.search.google.custom_search_engine_id -%}
2 |
10 |
20 |
21 | {%- endif -%}
22 |
--------------------------------------------------------------------------------
/Docs/website/_includes/search-providers/google-custom-search-engine/search.js:
--------------------------------------------------------------------------------
1 | var SOURCES = window.TEXT_VARIABLES.sources;
2 | window.Lazyload.js(SOURCES.jquery, function() {
3 | /* global google */
4 | var search = (window.search || (window.search = {}));
5 | var searchBox, searchInput, clearIcon, searchModal;
6 |
7 | search.clear = function() {
8 | searchBox && searchBox.clearAllResults();
9 | };
10 | search.onShow = function() {
11 | searchInput && searchInput.focus();
12 | };
13 | search.onHide = function() {
14 | searchInput && searchInput.blur();
15 | };
16 |
17 | window.__gcse = {
18 | callback: function() {
19 | searchBox = google.search.cse.element.getElement('search-box');
20 | searchInput = document.getElementById('gsc-i-id1');
21 | clearIcon = document.getElementById('gs_cb50');
22 | searchModal = search.searchModal;
23 | searchModal && searchModal.$el && searchModal.$el.on('click', function(e) {
24 | (e.target === this || e.target === clearIcon || e.target.className === 'gs-title') && searchModal.hide();
25 | });
26 | }
27 | };
28 | var cx = '{{ site.search.google.custom_search_engine_id }}'; // Insert your own Custom Search Engine ID here
29 | var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
30 | gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
31 | '//cse.google.com/cse.js?cx=' + cx;
32 | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
33 | });
34 |
--------------------------------------------------------------------------------
/Docs/website/_includes/search.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-locale-string.html key='CANCEL' -%}
2 | {%- assign _locale_cancel = __return -%}
3 | {%- include snippets/get-locale-string.html key='SEARCH' -%}
4 | {%- assign _locale_search = __return -%}
5 |
6 | {%- if site.search.provider == 'google' -%}
7 |
8 | {%- endif -%}
9 |
10 | {%- if site.search.provider -%}
11 |
12 | {%- endif -%}
13 |
14 | {%- if site.search.provider == 'default' -%}
15 | {%- include search-providers/default/search.html -%}
16 | {%- elsif site.search.provider == 'google' -%}
17 | {%- include search-providers/google-custom-search-engine/search.html -%}
18 | {%- elsif site.search.provider == 'custom' -%}
19 | {%- include search-providers/custom/search.html -%}
20 | {%- endif -%}
21 |
--------------------------------------------------------------------------------
/Docs/website/_includes/sharing-providers/addthis.html:
--------------------------------------------------------------------------------
1 |
2 | {%- assign _SHARING_ADDTHIS_ID = site.sharing.addthis.id -%}
3 |
4 | {%- if _SHARING_ADDTHIS_ID -%}
5 |
7 |
8 | {%- endif -%}
9 |
10 |
--------------------------------------------------------------------------------
/Docs/website/_includes/sharing-providers/addtoany.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Docs/website/_includes/sharing-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/sharing.html:
--------------------------------------------------------------------------------
1 | {%- if site.sharing.provider == 'addtoany' -%}
2 | {%- include sharing-providers/addtoany.html -%}
3 | {%- elsif site.sharing.provider == 'addthis' -%}
4 | {%- include sharing-providers/addthis.html -%}
5 | {%- elsif site.sharing.provider == 'custom' -%}
6 | {%- include sharing-providers/custom.html -%}
7 | {%- endif -%}
8 |
--------------------------------------------------------------------------------
/Docs/website/_includes/sidebar/toc.html:
--------------------------------------------------------------------------------
1 | {%- if page.sidebar.nav -%}
2 |
25 | {%- endif -%}
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/assign.html:
--------------------------------------------------------------------------------
1 | {%- if include.source1 == nil -%}
2 | {%- if include.source0 == nil -%}
3 | {%- assign __return = include.target -%}
4 | {%- else -%}
5 | {%- assign __return = include.source0 -%}
6 | {%- endif -%}
7 | {%- else -%}
8 | {%- assign __return = include.source1 -%}
9 | {%- endif -%}
10 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/get-article-title.html:
--------------------------------------------------------------------------------
1 | {%- assign _title = include.article.title | default: layout.title -%}
2 | {%- assign _titles = include.article.titles | default: layout.titles -%}
3 |
4 | {%- if _title -%}
5 | {%- assign __return = _title -%}
6 | {%- elsif _titles -%}
7 | {%- include snippets/get-string-from-locale-config.html locale=_titles -%}
8 | {%- assign __return = __return -%}
9 | {%- else -%}
10 | {%- assign __return = nil -%}
11 | {%- endif -%}
12 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/get-lang.html:
--------------------------------------------------------------------------------
1 | {%- assign __return = site.data.variables.default.lang -%}
2 | {%- if page.lang -%}
3 | {%- assign __return = page.lang -%}
4 | {%- elsif site.lang -%}
5 | {%- assign __return = site.lang -%}
6 | {%- endif -%}
7 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/get-locale-string.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-lang.html -%}
2 | {%- assign _lang = __return -%}
3 | {%- assign _local_lang = site.data.locale[_lang] -%}
4 | {%- assign _local_lang_en = site.data.locale.en -%}
5 | {%- if _local_lang == nil -%}
6 | {%- assign _local_lang = _local_lang_en -%}
7 | {%- endif -%}
8 | {%- if _local_lang[include.key] -%}
9 | {%- assign __return = _local_lang[include.key] -%}
10 | {%- else -%}
11 | {%- assign __return = _local_lang_en[include.key] -%}
12 | {%- endif -%}
13 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/get-nav-url.html:
--------------------------------------------------------------------------------
1 | {%- assign _pre7 = include.path | slice: 0, 7 -%}
2 | {%- assign _pre8 = include.path | slice: 0, 8 -%}
3 | {%- if _pre7 == 'http://' or _pre8 == 'https://' -%}
4 | {%- assign __return = include.path -%}
5 | {%- else -%}
6 | {%- include snippets/prepend-baseurl.html path=include.path -%}
7 | {%- assign __return = __return -%}
8 | {%- endif -%}
9 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/get-sources.html:
--------------------------------------------------------------------------------
1 | {%- assign _sources = site.sources | default: site.data.variables.default.sources -%}
2 | {%- assign __return = site.data.variables.sources[_sources] -%}
3 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/get-string-from-locale-config.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/get-lang.html -%}
2 | {%- assign _lang = __return -%}
3 | {%- if include.locale[_lang] -%}
4 | {%- assign __return = include.locale[_lang] -%}
5 | {%- else -%}
6 | {%- assign __return = include.locale.en -%}
7 | {%- endif -%}
8 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/is_collection.html:
--------------------------------------------------------------------------------
1 | {%- assign _page_path_first_char = include.page.path | slice: 0, 1 -%}
2 | {%- if _page_path_first_char == '_' -%}
3 | {%- assign __return = true -%}
4 | {%- else -%}
5 | {%- assign __return = false -%}
6 | {%- endif -%}
7 |
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/page-url.html:
--------------------------------------------------------------------------------
1 | {%- include snippets/prepend-baseurl.html path=page.url -%}
2 | {{ __return | prepend: site.url }}
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/prepend-baseurl.html:
--------------------------------------------------------------------------------
1 | {%- assign _include_path_replace_index = include.path | replace: 'index.html', '' -%}
2 | {%- include snippets/prepend-path.html
3 | path=_include_path_replace_index
4 | prepend_path=site.baseurl -%}
--------------------------------------------------------------------------------
/Docs/website/_includes/snippets/prepend-path.html:
--------------------------------------------------------------------------------
1 | {%- assign __return = include.path | prepend: '/' | prepend: include.prepend_path | replace:'///','/' | replace:'//','/' -%}
2 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/behance.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/douban.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/facebook.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/flicker.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/github.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/linkedin.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/mail.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/medium.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/npm.svg:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/qq.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/twitter.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_includes/svg/icon/social/zhihu.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Docs/website/_layouts/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: 404
4 | show_title: false
5 | ---
6 |
7 |
8 |
404
9 |
Page not found :(
10 |
11 |
12 |
13 | {{ content }}
14 |
--------------------------------------------------------------------------------
/Docs/website/_layouts/archive.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | titles:
4 | # @start locale config
5 | en : &EN Archive
6 | en-GB : *EN
7 | en-US : *EN
8 | en-CA : *EN
9 | en-AU : *EN
10 | zh-Hans : &ZH_HANS 归档
11 | zh : *ZH_HANS
12 | zh-CN : *ZH_HANS
13 | zh-SG : *ZH_HANS
14 | zh-Hant : &ZH_HANT 歸檔
15 | zh-TW : *ZH_HANT
16 | zh-HK : *ZH_HANT
17 | ko : &KO 아카이브
18 | ko-KR : *KO
19 | fr : &FR Archives
20 | fr-BE : *FR
21 | fr-CA : *FR
22 | fr-CH : *FR
23 | fr-FR : *FR
24 | fr-LU : *FR
25 | # @end locale config
26 | ---
27 |
28 |
29 | {%- include tags.html -%}
30 |
31 | {%- include article-list.html articles=site.posts type='brief' show_info=true reverse=true group_by='year' -%}
32 |
33 |
34 |
35 |
38 |
39 | {{ content }}
40 |
--------------------------------------------------------------------------------
/Docs/website/_layouts/article.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | type: article
4 | ---
5 |
6 | {%- include snippets/assign.html
7 | target = site.data.variables.default.page.sharing
8 | source0=layout.sharing source1=page.sharing -%}
9 | {%- assign _sharing = __return -%}
10 |
11 |
12 | {%- include article/top/custom.html -%}
13 |
14 |
{{ content }}
15 |
16 | {%- if _sharing -%}
17 |
{%- include sharing.html -%}
18 | {%- endif -%}
19 |
20 |
21 | {%- include article-footer.html -%}
22 | {%- include article-section-navigator.html -%}
23 |
24 |
25 |
26 |
27 |
30 |
--------------------------------------------------------------------------------
/Docs/website/_layouts/base.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: none
3 | ---
4 |
5 | {%- include snippets/get-lang.html -%}
6 |
7 |
8 | {%- include analytics.html -%}
9 | {%- include head.html -%}
10 |
15 | {%- include scripts/variables.html -%}
16 |
17 |
18 |
19 | {{ content }}
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Docs/website/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: articles
3 | titles:
4 | # @start locale config
5 | en : &EN Home
6 | en-GB : *EN
7 | en-US : *EN
8 | en-CA : *EN
9 | en-AU : *EN
10 | zh-Hans : &ZH_HANS 主页
11 | zh : *ZH_HANS
12 | zh-CN : *ZH_HANS
13 | zh-SG : *ZH_HANS
14 | zh-Hant : &ZH_HANT 主頁
15 | zh-TW : *ZH_HANT
16 | zh-HK : *ZH_HANT
17 | ko : &KO 홈
18 | ko-KR : *KO
19 | fr : &FR Accueil
20 | fr-BE : *FR
21 | fr-CA : *FR
22 | fr-CH : *FR
23 | fr-FR : *FR
24 | fr-LU : *FR
25 | # @end locale config
26 | show_title: false
27 | articles:
28 | data_source: paginator.posts
29 | article_type: BlogPosting
30 | show_cover: false
31 | show_excerpt: true
32 | show_readmore: true
33 | show_info: true
34 | ---
35 |
36 | {%- include paginator.html -%}
37 |
38 |
41 |
42 | {{ content }}
43 |
--------------------------------------------------------------------------------
/Docs/website/_layouts/none.html:
--------------------------------------------------------------------------------
1 | {{ content }}
2 |
--------------------------------------------------------------------------------
/Docs/website/_sass/additional/_alert.scss:
--------------------------------------------------------------------------------
1 | .article__content {
2 | p.success {
3 | padding: map-get($spacers, 2) map-get($spacers, 3);
4 | background-color: rgba($green, .1);
5 | border: 1px solid $green;
6 | border-radius: map-get($base, border-radius);
7 | }
8 |
9 | p.info {
10 | padding: map-get($spacers, 2) map-get($spacers, 3);
11 | background-color: rgba($blue, .1);
12 | border: 1px solid $blue;
13 | border-radius: map-get($base, border-radius);
14 | }
15 |
16 | p.warning {
17 | padding: map-get($spacers, 2) map-get($spacers, 3);
18 | background-color: rgba($yellow, .1);
19 | border: 1px solid $yellow;
20 | border-radius: map-get($base, border-radius);
21 | }
22 |
23 | p.error {
24 | padding: map-get($spacers, 2) map-get($spacers, 3);
25 | background-color: rgba($red, .1);
26 | border: 1px solid $red;
27 | border-radius: map-get($base, border-radius);
28 | }
29 |
30 | p.note {
31 | padding: map-get($spacers, 2) map-get($spacers, 3);
32 | background-color: rgba($grey, .1);
33 | border: 1px solid $grey;
34 | border-radius: map-get($base, border-radius);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Docs/website/_sass/additional/_photo-frame.scss:
--------------------------------------------------------------------------------
1 | .article__content {
2 | img.shadow, .shadow > img {
3 | @include box-shadow();
4 | }
5 |
6 | img.border, .border > img {
7 | border: 1px solid $border-color-l;
8 | }
9 |
10 | img.rounded, .rounded > img {
11 | border-radius: map-get($base, border-radius);
12 | }
13 |
14 | img.circle, .circle > img {
15 | border-radius: 50%;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Docs/website/_sass/additional/_tag.scss:
--------------------------------------------------------------------------------
1 | .article__content {
2 | code.success {
3 | color: $text-color-function;
4 | background-color: $green;
5 | }
6 |
7 | code.info {
8 | color: $text-color-function;
9 | background-color: $blue;
10 | }
11 |
12 | code.warning {
13 | color: $text-color-function;
14 | background-color: $yellow;
15 | }
16 |
17 | code.error {
18 | color: $text-color-function;
19 | background-color: $red;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Docs/website/_sass/animate/_fade-in-down.scss:
--------------------------------------------------------------------------------
1 | @include keyframes(fade-in-down) {
2 | from {
3 | opacity: 0;
4 | @include transform(translateY(-2rem));
5 | }
6 | to {
7 | opacity: 1;
8 | @include transform(translateY(0));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Docs/website/_sass/animate/_fade-in-up.scss:
--------------------------------------------------------------------------------
1 | @include keyframes(fade-in-up) {
2 | from {
3 | opacity: 0;
4 | @include transform(translateY(2rem));
5 | }
6 | to {
7 | opacity: 1;
8 | @include transform(translateY(0));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Docs/website/_sass/animate/_fade-in.scss:
--------------------------------------------------------------------------------
1 | @include keyframes(fade-in) {
2 | from {
3 | opacity: 0;
4 | }
5 | to {
6 | opacity: 1;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/_classes.scss:
--------------------------------------------------------------------------------
1 | /* stylelint-disable at-rule-name-space-after, at-rule-semicolon-space-before */
2 | @charset "utf-8";
3 | @import
4 | "common/classes/animation",
5 | "common/classes/transform",
6 | "common/classes/transition",
7 | "common/classes/user-select",
8 |
9 | "common/classes/clearfix",
10 | "common/classes/media",
11 | "common/classes/clickable",
12 | "common/classes/display",
13 | "common/classes/flex",
14 | "common/classes/horizontal-rules",
15 | "common/classes/pseudo",
16 | "common/classes/link",
17 | "common/classes/text",
18 | "common/classes/overflow",
19 | "common/classes/shadow",
20 | "common/classes/spacing",
21 | "common/classes/split-line",
22 | "common/classes/grid"
23 | ;
24 | /* stylelint-enable */
25 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/_function.scss:
--------------------------------------------------------------------------------
1 | @function get-color-theme($color) {
2 | @if lightness($color) < 15% {
3 | @return "dark";
4 | } @else {
5 | @return "light";
6 | }
7 | }
8 |
9 | @function breakpoint-infix($name, $breakpoints: default) {
10 | @if $breakpoints == default {
11 | $breakpoints: $responsive;
12 | }
13 | $min: map-get($breakpoints, $name);
14 | @return if($min != 0, "#{$name}-", "");
15 | }
16 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/_print.scss:
--------------------------------------------------------------------------------
1 | @media print {
2 | a {
3 | @include plain() {
4 | text-decoration: underline;
5 | }
6 | @include hover() {
7 | text-decoration: underline;
8 | }
9 | @include active() {
10 | text-decoration: underline;
11 | }
12 | }
13 |
14 | img,
15 | tr,
16 | pre,
17 | blockquote {
18 | page-break-inside: avoid;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_animation.scss:
--------------------------------------------------------------------------------
1 | @mixin animation($value) {
2 | -webkit-animation: $value;
3 | animation: $value;
4 | }
5 |
6 | @mixin keyframes($name) {
7 | @-webkit-keyframes #{$name} {
8 | @content;
9 | }
10 | @keyframes #{$name} {
11 | @content;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_clearfix.scss:
--------------------------------------------------------------------------------
1 | @mixin clearfix() {
2 | &::after {
3 | display: table;
4 | clear: both;
5 | content: "";
6 | }
7 | }
8 |
9 | .clearfix {
10 | @include clearfix();
11 | }
12 |
13 | .left {
14 | float: left;
15 | }
16 |
17 | .right {
18 | float: right;
19 | }
20 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_display.scss:
--------------------------------------------------------------------------------
1 | @each $breakpoint in map-keys($responsive) {
2 | @include media-breakpoint-up($breakpoint) {
3 | .d-#{breakpoint-infix($breakpoint)}none {
4 | display: none !important;
5 | }
6 | }
7 | }
8 |
9 | .d-print-none {
10 | @media print {
11 | display: none !important;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_horizontal-rules.scss:
--------------------------------------------------------------------------------
1 | @mixin horizontal-rules() {
2 | &::before {
3 | display: block;
4 | font-size: map-get($base, font-size-h2);
5 | color: $text-color-l;
6 | text-align: center;
7 | letter-spacing: map-get($spacers, 4);
8 | content: "...";
9 | }
10 | }
11 |
12 | .horizontal-rules {
13 | @include horizontal-rules();
14 | }
15 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_link.scss:
--------------------------------------------------------------------------------
1 | @mixin link-colors($clr, $hover-clr: default, $active-clr: default, $focus-clr: null, $theme: default, $ignore-path: false) {
2 | @include plain() {
3 | text-decoration: none;
4 | }
5 | @include hover() {
6 | text-decoration: underline;
7 | }
8 | @include active() {
9 | text-decoration: none;
10 | }
11 | @include clickable($clr, null, $hover-clr, null, $active-clr, null, $focus-clr, null, $theme, $ignore-path);
12 | }
13 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_media.scss:
--------------------------------------------------------------------------------
1 | @mixin media-breakpoint-down($name, $breakpoints: default) {
2 | @if $breakpoints == default {
3 | $breakpoints: $responsive;
4 | }
5 | @media (max-width: map-get($breakpoints, $name) - 1) {
6 | @content;
7 | }
8 | }
9 |
10 | @mixin media-breakpoint-up($name, $breakpoints: default) {
11 | @if $breakpoints == default {
12 | $breakpoints: $responsive;
13 | }
14 | @media (min-width: map-get($breakpoints, $name)) {
15 | @content;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_overflow.scss:
--------------------------------------------------------------------------------
1 | @mixin overflow($overflow: auto, $direction: default) {
2 | @if $direction == default {
3 | overflow: $overflow;
4 | } @else if $direction == "x" {
5 | @if $overflow == auto {
6 | overflow: hidden;
7 | }
8 | overflow-x: $overflow;
9 | } @else if $direction == "y" {
10 | @if $overflow == auto {
11 | overflow: hidden;
12 | }
13 | overflow-y: $overflow;
14 | }
15 | @if $overflow == auto {
16 | -webkit-overflow-scrolling: touch;
17 | }
18 | }
19 |
20 | .of-auto {
21 | @include overflow(auto);
22 | }
23 |
24 | .of-hidden {
25 | @include overflow(hidden);
26 | }
27 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_pseudo.scss:
--------------------------------------------------------------------------------
1 | @mixin plain() {
2 | &,
3 | &:link,
4 | &:visited {
5 | @content;
6 | }
7 | }
8 |
9 | @mixin hover() {
10 | .root[data-is-touch="false"] &:hover {
11 | @content;
12 | }
13 | }
14 |
15 | @mixin active() {
16 | .root[data-is-touch] &.active,
17 | .root[data-is-touch] &:active {
18 | @content;
19 | }
20 | }
21 |
22 | @mixin focus() {
23 | .root[data-is-touch] &.focus {
24 | @content;
25 | }
26 | }
27 |
28 | @mixin disabled() {
29 | &.disabled,
30 | &:disabled {
31 | @content;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_shadow.scss:
--------------------------------------------------------------------------------
1 | @mixin box-shadow($level: default, $color: default) {
2 | @if $color == default {
3 | $color: #000;
4 | }
5 | @if $level == 0 {
6 | box-shadow: none;
7 | }
8 | @if $level == 1 or $level == default {
9 | box-shadow: 0 4px 8px rgba($color, .23), 0 1px 3px rgba($color, .08), 0 6px 12px rgba($color, .02);
10 | }
11 | @if $level == 2 {
12 | box-shadow: 0 8px 16px rgba($color, .23), 0 2px 6px rgba($color, .08), 0 12px 24px rgba($color, .02);
13 | }
14 | }
15 |
16 | .box-shadow-1 {
17 | @include box-shadow();
18 | }
19 |
20 | .box-shadow-2 {
21 | @include box-shadow(2);
22 | }
23 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_split-line.scss:
--------------------------------------------------------------------------------
1 | @mixin split-line($direction: default, $width: default, $color: default) {
2 | @if $direction == default {
3 | $direction: top;
4 | }
5 | @if $color == default {
6 | $color: $border-color-l;
7 | }
8 | @if $width == default {
9 | $width: 1px;
10 | }
11 | border: 0 solid $color;
12 | @if $direction == top {
13 | border-top-width: $width;
14 | }
15 | @if $direction == right {
16 | border-right-width: $width;
17 | }
18 | @if $direction == bottom {
19 | border-bottom-width: $width;
20 | }
21 | @if $direction == left {
22 | border-left-width: $width;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_text.scss:
--------------------------------------------------------------------------------
1 | @mixin text-light {
2 | color: $text-color-theme-light;
3 | h1, h2, h3 {
4 | color: $text-color-theme-light-d;
5 | }
6 | h4, h5 {
7 | color: $text-color-theme-light;
8 | }
9 | h6 {
10 | color: $text-color-theme-light-l;
11 | }
12 | a:not(.button) {
13 | @include link-colors($text-color-theme-light, $main-color-1);
14 | }
15 | }
16 | @mixin text-dark {
17 | color: $text-color-theme-dark;
18 | h1, h2, h3 {
19 | color: $text-color-theme-dark-d;
20 | }
21 | h4, h5 {
22 | color: $text-color-theme-dark;
23 | }
24 | h6 {
25 | color: $text-color-theme-dark-l;
26 | }
27 | a:not(.button) {
28 | @include link-colors($text-color-theme-dark, $main-color-1);
29 | }
30 | }
31 |
32 | .text--light {
33 | @include text-light();
34 | }
35 | .text--dark {
36 | @include text-dark();
37 | }
38 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_transform.scss:
--------------------------------------------------------------------------------
1 | @mixin transform($value) {
2 | -webkit-transform: $value;
3 | transform: $value;
4 | }
5 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_transition.scss:
--------------------------------------------------------------------------------
1 | @mixin transition($value) {
2 | -webkit-transition: $value;
3 | transition: $value;
4 | }
5 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/classes/_user-select.scss:
--------------------------------------------------------------------------------
1 | @mixin user-select($value) {
2 | -webkit-user-select: $value;
3 | -moz-user-select: $value;
4 | -ms-user-select: $value;
5 | user-select: $value;
6 | }
7 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/components/_gallery.scss:
--------------------------------------------------------------------------------
1 | .gallery {
2 | height: 100%;
3 | @include flexbox();
4 | @include flex-direction(column);
5 | }
6 |
7 | .gallery__swiper {
8 | @include flex(1);
9 | }
10 |
11 | .gallery-item {
12 | @include flexbox();
13 | @include align-items(center);
14 | @include justify-content(center);
15 | height: 100%;
16 | overflow: hidden;
17 | }
18 |
19 | .gallery-item__main {
20 | display: block;
21 | }
22 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/components/_image.scss:
--------------------------------------------------------------------------------
1 | .image {
2 | max-width: 100%;
3 | @extend .image--md;
4 | }
5 | .image--md {
6 | width: map-get($image, width);
7 | }
8 | .image--xl {
9 | width: map-get($image, width-xl);
10 | }
11 | .image--lg {
12 | width: map-get($image, width-lg);
13 | }
14 | .image--sm {
15 | width: map-get($image, width-sm);
16 | }
17 | .image--xs {
18 | width: map-get($image, width-xs);
19 | }
20 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/components/_modal.scss:
--------------------------------------------------------------------------------
1 | @mixin modal($z-index: default, $color: default, $background-color: default) {
2 | @if $z-index == default {
3 | $z-index: map-get($z-indexes, modal);
4 | }
5 | @if $color == default {
6 | $color: $text-color-theme-dark;
7 | }
8 | @if $background-color == default {
9 | $background-color: $mask-color;
10 | }
11 | position: fixed;
12 | top: 0;
13 | left: 0;
14 | z-index: $z-index;
15 | width: 100%;
16 | height: 100%;
17 | color: $color;
18 | touch-action: none;
19 | background-color: $background-color;
20 | opacity: 0;
21 | @include transform(translate(100%, 0));
22 | @include transition(#{opacity map-get($animation, duration) map-get($animation, timing-function),
23 | transform 0s map-get($animation, duration) map-get($animation, timing-function)});
24 | }
25 | @mixin modal--show() {
26 | opacity: 1;
27 | @include transform(translate(0, 0));
28 | @include transition(#{opacity map-get($animation, duration) map-get($animation, timing-function)});
29 | }
30 |
31 | .modal {
32 | @include modal();
33 | }
34 | .modal--show {
35 | @include modal--show();
36 | }
37 | .modal--overflow {
38 | @include overflow(auto);
39 | }
40 |
--------------------------------------------------------------------------------
/Docs/website/_sass/common/components/_swiper.scss:
--------------------------------------------------------------------------------
1 | .swiper {
2 | position: relative;
3 | @include overflow(hidden);
4 | }
5 |
6 | .swiper__wrapper, .swiper__slide {
7 | width: 100%;
8 | height: 100%;
9 | }
10 |
11 | .swiper__wrapper {
12 | @include flexbox();
13 | }
14 |
15 | .swiper__wrapper--animation {
16 | @include transition(transform map-get($animation, duration) map-get($animation, timing-function));
17 | }
18 |
19 | .swiper__slide {
20 | @include flex-shrink(0);
21 | & > img {
22 | max-width: 100%;
23 | }
24 | }
25 |
26 | .swiper__button {
27 | position: absolute;
28 | top: 50%;
29 | @extend .button, .button--circle;
30 | @include transform(translate(0, -50%));
31 | @include clickable($text-color-d, rgba($main-color-3, .4));
32 | }
33 |
34 | .swiper--light .swiper__button {
35 | @include clickable($text-color-theme-light, rgba($main-color-theme-dark, .4));
36 | }
37 |
38 | .swiper--dark .swiper__button {
39 | @include clickable($text-color-theme-dark, rgba($main-color-theme-light, .4));
40 | }
41 |
42 | .swiper__button--prev {
43 | left: 10px;
44 | }
45 |
46 | .swiper__button--next {
47 | right: 10px;
48 | }
49 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_article-footer.scss:
--------------------------------------------------------------------------------
1 | .article__footer {
2 | margin: map-get($spacers, 4) 0;
3 | font-size: map-get($base, font-size-sm);
4 | }
5 |
6 | .article__license, .article__subscribe {
7 | a {
8 | @include link-colors($text-color, $main-color-1);
9 | }
10 | }
11 |
12 | .article__license {
13 | color: $text-color-l;
14 | img {
15 | height: map-get($base, font-size) * 1.6;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_article-header.scss:
--------------------------------------------------------------------------------
1 | .article__header {
2 | margin-top: map-get($spacers, 5);
3 | //margin-bottom: map-get($spacers, 4);
4 | @include media-breakpoint-down(md) {
5 | margin-top: map-get($spacers, 4);
6 | }
7 | header, h1 {
8 | display: inline;
9 | }
10 | h1 {
11 | word-wrap: break-word;
12 | }
13 | .split-space {
14 | @include user-select(none);
15 | }
16 | .edit-on-github {
17 | text-decoration: none !important;
18 | }
19 | }
20 |
21 | .article__header--overlay {
22 | .overlay {
23 | min-height: 36rem;
24 | padding-top: map-get($spacers, 5) * 2;
25 | padding-bottom: map-get($spacers, 5) * 2;
26 | @include media-breakpoint-down(md) {
27 | min-height: 29rem;
28 | padding-top: map-get($spacers, 5);
29 | padding-bottom: map-get($spacers, 5);
30 | }
31 | }
32 | .overlay__excerpt {
33 | font-size: map-get($base, font-size-h3-xl);
34 | @include media-breakpoint-down(lg) {
35 | font-size: map-get($base, font-size-h3-lg);
36 | }
37 | @include media-breakpoint-down(md) {
38 | font-size: map-get($base, font-size-h3-sm);
39 | }
40 | font-weight: map-get($base, font-weight-bold);
41 | }
42 |
43 | .article__header {
44 | margin-top: 0;
45 | }
46 | }
47 |
48 | .article__header--cover {
49 | width: 100%;
50 | }
51 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_article-info.scss:
--------------------------------------------------------------------------------
1 | .article__info {
2 | font-size: map-get($base, font-size-sm);
3 | color: $text-color-l;
4 | .left-col {
5 | float: left;
6 | @include media-breakpoint-down(md) {
7 | float: none;
8 | }
9 | }
10 | .right-col {
11 | float: right;
12 | margin-left: map-get($button, padding-x-sm);
13 | @include media-breakpoint-down(md) {
14 | float: none;
15 | }
16 | & > li {
17 | &:not(:last-child) {
18 | @include split-line(right, default, $text-color-l);
19 | padding-right: map-get($spacers, 2);
20 | margin-right: map-get($spacers, 2);
21 | line-height: map-get($base, line-height-xs);
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_article-list.scss:
--------------------------------------------------------------------------------
1 | .article-list {
2 | .item__meta {
3 | padding: 0 map-get($spacers, 3) 0 0;
4 | font-family: map-get($base, font-family-code);
5 | font-size: map-get($base, font-size-sm);
6 | white-space: nowrap;
7 | }
8 | &.grid--sm {
9 | .card__header {
10 | overflow: hidden;
11 | text-overflow: ellipsis;
12 | white-space: nowrap;
13 | }
14 | }
15 | }
16 | .article-list__group-header {
17 | margin-top: map-get($spacers, 3);
18 | }
19 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_author-links.scss:
--------------------------------------------------------------------------------
1 | .author-links {
2 | & > ul {
3 | margin: 0;
4 | & > li > {
5 | .mail-button {
6 | @include clickable($text-color-1, $mail-color);
7 | }
8 | .facebook-button {
9 | @include clickable($text-color-1, $facebook-color);
10 | }
11 | .twitter-button {
12 | @include clickable($text-color-1, $twitter-color);
13 | }
14 | .weibo-button {
15 | @include clickable($text-color-1, $weibo-color);
16 | }
17 | .googlepluse-button {
18 | @include clickable($text-color-1, $google-plus-color);
19 | }
20 | .telegram-button {
21 | @include clickable($text-color-1, $telegram-color);
22 | }
23 | .medium-button {
24 | @include clickable($text-color-1, $medium-color);
25 | }
26 | .zhihu-button {
27 | @include clickable($text-color-1, $zhihu-color);
28 | }
29 | .douban-button {
30 | @include clickable($text-color-1, $douban-color);
31 | }
32 | .linkedin-button {
33 | @include clickable($text-color-1, $linkedin-color);
34 | }
35 | .github-button {
36 | @include clickable($text-color-1, $github-color);
37 | }
38 | .npm-button {
39 | @include clickable($text-color-1, $npm-color);
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_author-profile.scss:
--------------------------------------------------------------------------------
1 | .author-profile {
2 | max-width: 25rem;
3 | padding: map-get($spacers, 2) map-get($spacers, 3);
4 | margin: map-get($spacers, 4) 0;
5 | font-size: map-get($base, font-size-sm);
6 | background-color: $text-background-color;
7 | @include media-breakpoint-down(md) {
8 | text-align: center;
9 | }
10 | }
11 | .author-profile__avatar {
12 | width: 5rem;
13 | height: 5rem;
14 | margin-top: map-get($spacers, 2);
15 | border-radius: 50%;
16 | }
17 | .author-profile__name {
18 | font-size: map-get($base, font-size-lg);
19 | font-weight: map-get($base, font-weight-bold);
20 | a {
21 | @include link-colors($text-color, $main-color-1);
22 | }
23 | }
24 | .author-profile__links {
25 | @include overflow(auto);
26 | }
27 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_extensions.scss:
--------------------------------------------------------------------------------
1 | .extensions {
2 | margin: map-get($spacers, 3) 0;
3 | @extend .d-print-none;
4 | }
5 |
6 | .extensions--video, .extensions--slide, .extensions--demo {
7 | position: relative;
8 | width: 100%;
9 | padding: 0;
10 | & > iframe {
11 | position: absolute;
12 | top: 0;
13 | left: 0;
14 | width: 100%;
15 | height: 100%;
16 | }
17 | }
18 |
19 | .extensions--video {
20 | padding-top: percentage(315 / 560);
21 | }
22 |
23 | .extensions--slide {
24 | padding-top: percentage(487 / 599);
25 | }
26 |
27 | .extensions--demo {
28 | min-height: 340px;
29 | padding-top: percentage(315 / 560);
30 | }
31 |
32 | .extensions--audio {
33 | display: block;
34 | max-width: 100% !important;
35 | }
36 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_footer.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Site Info
3 | */
4 |
5 | .footer {
6 | @include flexbox();
7 | @include align-items(center);
8 | color: $footer-text-color;
9 | background: $footer-background;
10 | a {
11 | @include link-colors ($footer-text-color, $main-color-1);
12 | }
13 | .site-info {
14 | font-size: map-get($base, font-size-xs);
15 | text-align: center;
16 | .menu {
17 | line-height: map-get($base, line-height-xs);
18 | & > * {
19 | &:not(:last-child) {
20 | @include split-line(right, default, $footer-text-color);
21 | padding-right: map-get($spacers, 1);
22 | margin-right: map-get($spacers, 1);
23 | }
24 | }
25 | }
26 | }
27 | }
28 | .footer__author-links {
29 | @include overflow(auto);
30 | .author-links {
31 | text-align: center;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_lightbox.scss:
--------------------------------------------------------------------------------
1 | .popup-image {
2 | cursor: pointer;
3 | @include hover() {
4 | @include box-shadow(2);
5 | }
6 | @include transition(map-get($clickable, transition));
7 | }
8 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_main.scss:
--------------------------------------------------------------------------------
1 | .main {
2 | width: 100%;
3 | max-width: map-get($layout, content-max-width);
4 | padding: 0 map-get($spacers, 5);
5 | margin: 0 auto;
6 | @include media-breakpoint-down(lg) {
7 | padding: 0 map-get($spacers, 4);
8 | }
9 | @include media-breakpoint-down(md) {
10 | padding: 0 map-get($spacers, 3);
11 | }
12 | }
13 |
14 | .has-aside {
15 | .main {
16 | max-width: map-get($layout, content-max-width) + map-get($layout, aside-width);
17 | @include media-breakpoint-down(lg) {
18 | max-width: map-get($layout, content-max-width);
19 | }
20 | }
21 | }
22 |
23 | .full-width {
24 | .main {
25 | width: 100%;
26 | max-width: 100%;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Docs/website/_sass/components/_tags.scss:
--------------------------------------------------------------------------------
1 | .site-tags {
2 | .tag-button {
3 | @include clickable($text-color-3, $main-color-3, default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2);
4 | & > .tag-button__count {
5 | display: inline-block;
6 | margin-left: map-get($spacers, 1);
7 | font-size: map-get($base, font-size-xs);
8 | line-height: 1;
9 | vertical-align: top;
10 | }
11 | }
12 | .tag-button-1 {
13 | @include clickable($text-color-1, rgba($main-color-1, .4), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2);
14 | }
15 | .tag-button-2 {
16 | @include clickable($text-color-1, rgba($main-color-1, .55), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2);
17 | }
18 | .tag-button-3 {
19 | @include clickable($text-color-1, rgba($main-color-1, .7), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2);
20 | }
21 | .tag-button-4 {
22 | @include clickable($text-color-1, rgba($main-color-1, .9), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Docs/website/_sass/custom.scss:
--------------------------------------------------------------------------------
1 | /* start custom scss snippet */
2 |
3 | .image--center {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | width: 50%;
8 | }
9 |
10 | .image--floatleft {
11 | float: left;
12 | margin: 15px;
13 | width: 50%;
14 | }
15 |
16 | .image--floatright {
17 | float: right;
18 | margin: 15px;
19 | width: 50%;
20 | }
21 |
22 | .figure--floatright {
23 | float: right;
24 | margin: 15px;
25 | width: 50%;
26 | }
27 |
28 | #screenshot {
29 | margin: 15px;
30 | }
31 |
32 | .figure--floatright p {
33 | margin: 0px;
34 | }
35 |
36 | .figure--floatright figcaption {
37 | margin: 0px 15px;
38 | }
39 |
40 | .text--datemodified {
41 | color: grey;
42 | font-size: small;
43 | font-style: italic;
44 | }
45 |
46 | li li{
47 | list-style-type: lower-alpha;
48 | }
49 |
50 | li li li{
51 | list-style-type: lower-roman;
52 | }
53 |
54 | /*.figure--floatright {
55 | float: right;
56 | margin: 15px;
57 | padding: 15px;
58 | width: 50%;
59 | border: thin silver solid;
60 | }
61 |
62 | #screenshot {
63 | margin: 15px;
64 | }
65 |
66 | .figure--floatright p {
67 | margin: 0px;
68 | }*/
69 |
70 | /* end custom scss snippet */
71 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_404.scss:
--------------------------------------------------------------------------------
1 | .layout--404 {
2 | .sign {
3 | display: table;
4 | margin: map-get($spacers, 4) auto;
5 | margin-top: map-get($spacers, 5);
6 | h1 {
7 | font-size: map-get($base, font-size-xl) * 4;
8 | line-height: 1;
9 | }
10 | p {
11 | font-size: map-get($base, font-size-xl) * 1.2;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_archive.scss:
--------------------------------------------------------------------------------
1 | .layout--archive {
2 | & > .layout--archive__result {
3 | margin: map-get($spacers, 4) 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_article.scss:
--------------------------------------------------------------------------------
1 | .article__sharing {
2 | margin: map-get($spacers, 4) 0;
3 | }
4 | .article__section-navigator {
5 | padding-top: map-get($spacers, 3);
6 | margin: map-get($spacers, 4) 0 map-get($spacers, 3) 0;
7 | word-wrap: break-word;
8 | @include split-line(top, 4px);
9 | & > .previous, & > .next {
10 | width: 50%;
11 | & > span {
12 | font-weight: map-get($base, font-weight-bold);
13 | color: $text-color-l;
14 | }
15 | & > a {
16 | display: block;
17 | @include link-colors($text-color, $main-color-1);
18 | }
19 | }
20 | & > .previous {
21 | float: left;
22 | padding-right: map-get($spacers, 2);
23 | }
24 | & > .next {
25 | float: right;
26 | padding-left: map-get($spacers, 2);
27 | text-align: right;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_articles.scss:
--------------------------------------------------------------------------------
1 | .layout--articles {
2 | margin: map-get($spacers, 4) 0;
3 | margin-top: map-get($spacers, 5);
4 | @include media-breakpoint-down(md) {
5 | margin-top: map-get($spacers, 4);
6 | }
7 | .card__header {
8 | font-size: map-get($base, font-size);
9 | }
10 | .card__image {
11 | & > .overlay {
12 | &, .card__header {
13 | font-size: map-get($base, font-size-sm);
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_base.scss:
--------------------------------------------------------------------------------
1 | .icon {
2 | display: block;
3 | > svg {
4 | display: block;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_home.scss:
--------------------------------------------------------------------------------
1 | .layout--home {
2 | .pagination {
3 | margin: map-get($spacers, 4) 0;
4 | }
5 | .pagination__menu {
6 | max-width: 100%;
7 | @include overflow(auto);
8 | }
9 | .pagination__omit {
10 | color: $text-color-l;
11 | }
12 | .items {
13 | margin-top: map-get($spacers, 4) * 1.5;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Docs/website/_sass/layout/_landing.scss:
--------------------------------------------------------------------------------
1 | .layout--landing {
2 | .heros {
3 | max-width: map-get($layout, content-max-width) * 2;
4 | margin-right: auto;
5 | margin-left: auto;
6 | }
7 | .hero {
8 | img {
9 | display: block;
10 | width: 100%;
11 | margin: 0 auto;
12 | }
13 | }
14 | .hero__content {
15 | margin-bottom: 0;
16 | }
17 | .hero__cover {
18 | max-width: map-get($layout, content-max-width);
19 | }
20 | .hero__cover--full-width {
21 | max-width: none;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/_default.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/_sass/skins/highlight/_default.scss
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/_tomorrow-night-blue.scss:
--------------------------------------------------------------------------------
1 | @import "./tomorrow/night-blue";
2 | @import "./tomorrow/highlight";
3 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/_tomorrow-night-bright.scss:
--------------------------------------------------------------------------------
1 | @import "./tomorrow/night-bright";
2 | @import "./tomorrow/highlight";
3 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/_tomorrow-night-eighties.scss:
--------------------------------------------------------------------------------
1 | @import "./tomorrow/night-eighties";
2 | @import "./tomorrow/highlight";
3 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/_tomorrow-night.scss:
--------------------------------------------------------------------------------
1 | @import "./tomorrow/night";
2 | @import "./tomorrow/highlight";
3 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/_tomorrow.scss:
--------------------------------------------------------------------------------
1 | @import "./tomorrow/default";
2 | @import "./tomorrow/highlight";
3 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/tomorrow/_default.scss:
--------------------------------------------------------------------------------
1 | $highlight-background : #f7f7f7;
2 | $highlight-foreground : #4d4d4c;
3 | $highlight-comment : #8e908c;
4 | $highlight-red : #c82829;
5 | $highlight-orange : #f5871f;
6 | $highlight-yellow : #eab700;
7 | $highlight-green : #718c00;
8 | $highlight-aqua : #3e999f;
9 | $highlight-blue : #4271ae;
10 | $highlight-purple : #8959a8;
11 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/tomorrow/_night-blue.scss:
--------------------------------------------------------------------------------
1 | $highlight-background :#002451;
2 | $highlight-foreground :#fff;
3 | $highlight-comment :#7285b7;
4 | $highlight-red :#ff9da4;
5 | $highlight-orange :#ffc58f;
6 | $highlight-yellow :#ffeead;
7 | $highlight-green :#d1f1a9;
8 | $highlight-aqua :#9ff;
9 | $highlight-blue :#bbdaff;
10 | $highlight-purple :#ebbbff;
11 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/tomorrow/_night-bright.scss:
--------------------------------------------------------------------------------
1 | $highlight-background :#000;
2 | $highlight-foreground :#eaeaea;
3 | $highlight-comment :#969896;
4 | $highlight-red :#d54e53;
5 | $highlight-orange :#e78c45;
6 | $highlight-yellow :#e7c547;
7 | $highlight-green :#b9ca4a;
8 | $highlight-aqua :#70c0b1;
9 | $highlight-blue :#7aa6da;
10 | $highlight-purple :#c397d8;
11 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/tomorrow/_night-eighties.scss:
--------------------------------------------------------------------------------
1 | $highlight-background :#2d2d2d;
2 | $highlight-foreground :#ccc;
3 | $highlight-comment :#999;
4 | $highlight-red :#f2777a;
5 | $highlight-orange :#f99157;
6 | $highlight-yellow :#fc6;
7 | $highlight-green :#9c9;
8 | $highlight-aqua :#6cc;
9 | $highlight-blue :#69c;
10 | $highlight-purple :#c9c;
11 |
--------------------------------------------------------------------------------
/Docs/website/_sass/skins/highlight/tomorrow/_night.scss:
--------------------------------------------------------------------------------
1 | $highlight-background : #1d1f21;
2 | $highlight-foreground : #c5c8c6;
3 | $highlight-comment : #969896;
4 | $highlight-red : #c66;
5 | $highlight-orange : #de935f;
6 | $highlight-yellow : #f0c674;
7 | $highlight-green : #b5bd68;
8 | $highlight-aqua : #8abeb7;
9 | $highlight-blue : #81a2be;
10 | $highlight-purple : #b294bb;
11 |
--------------------------------------------------------------------------------
/Docs/website/assets/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/android-chrome-192x192.png
--------------------------------------------------------------------------------
/Docs/website/assets/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/android-chrome-512x512.png
--------------------------------------------------------------------------------
/Docs/website/assets/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/apple-touch-icon.png
--------------------------------------------------------------------------------
/Docs/website/assets/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #00274c
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Docs/website/assets/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/favicon-16x16.png
--------------------------------------------------------------------------------
/Docs/website/assets/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/favicon-32x32.png
--------------------------------------------------------------------------------
/Docs/website/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/favicon.ico
--------------------------------------------------------------------------------
/Docs/website/assets/images/UI++Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/UI++Icon.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/bootimage-prestart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/bootimage-prestart.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/bootmedia-prestart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/bootmedia-prestart.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-apptree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-apptree.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-errorinfo-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-errorinfo-2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-errorinfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-errorinfo.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-info-timeout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-info-timeout.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-info.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-infofullscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-infofullscreen.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-infofullscreen2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-infofullscreen2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputcheckbox-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputcheckbox-2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputcheckbox-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputcheckbox-3.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputcheckbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputcheckbox.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputchoice-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputchoice-2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputchoice-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputchoice-3.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputchoice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputchoice.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputtext-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputtext-2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-input-inputtext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-input-inputtext.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-optional.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-optional.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-preflight-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-preflight-2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-preflight-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-preflight-3.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-preflight-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-preflight-4.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-preflight-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-preflight-5.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-preflight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-preflight.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-standard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-standard.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-userauth-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-userauth-2.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-userauth-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-userauth-3.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/dialog-userauth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/dialog-userauth.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/tasksequence-installapplication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/tasksequence-installapplication.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/tasksequence-installpackage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/tasksequence-installpackage.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/tasksequence-run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/tasksequence-run.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/variableeditor-editable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/variableeditor-editable.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/variableeditor-readonly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/variableeditor-readonly.png
--------------------------------------------------------------------------------
/Docs/website/assets/images/screenshots/welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/images/screenshots/welcome.png
--------------------------------------------------------------------------------
/Docs/website/assets/mstile-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/mstile-144x144.png
--------------------------------------------------------------------------------
/Docs/website/assets/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/mstile-150x150.png
--------------------------------------------------------------------------------
/Docs/website/assets/mstile-310x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/mstile-310x150.png
--------------------------------------------------------------------------------
/Docs/website/assets/mstile-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/mstile-310x310.png
--------------------------------------------------------------------------------
/Docs/website/assets/mstile-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/Docs/website/assets/mstile-70x70.png
--------------------------------------------------------------------------------
/Docs/website/assets/search.js:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 | {%- include search-providers/default/search-data.js -%}
4 |
--------------------------------------------------------------------------------
/Docs/website/assets/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "UI++",
3 | "short_name": "UI++",
4 | "icons": [
5 | {
6 | "src": "android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "theme_color": "#00274c",
17 | "background_color": "#00274c",
18 | "display": "standalone"
19 | }
20 |
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/errorinfo.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Error Info
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | {% figure caption:"An ErrorInfo action dialog" %}
11 | 
12 | {% endfigure %}
13 | {: .figure--floatright }
14 | {: #screenshot }
15 |
16 | The [ErrorInfo]({% link docs/reference/actionelements.md %}#errorinfo) interactive action displays a final error message to the user. Configuration of the action is nearly identical to that of the Info interactive action. The action always shows a cancel button, a back button is optional, and it automatically adds line breaks to wrap longer lines based upon the following:
17 |
18 | * Spaces
19 | * Periods
20 | * Commas
21 | * Forward slashes
22 | * Backslashes
23 |
24 | The following snippet creates an error dialog box to inform the user of a fatal error or issue; it includes some minor text formatting. For a complete list of supported text formatting tags, see the [Text Formatting]({% link docs/reference/textformatting.md %}) section.
25 |
26 | ~~~ xml
27 |
28 |
Have a nice day.]]>
29 |
30 | ~~~
31 |
32 | Note the use of tags to enclose the informational text. These instruct the XML parser to ignore the contained content which is key when using any embedded HTML tags as these disrupt the XML parser.
33 | {:.note}
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/externalcall.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: External Call
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | This action initiates the command line specified. What this command line explicitly does or calls is up to you. The location of the files or scripts that the action references are up to you but they are best placed in the same package as UI++, in the boot image with UI++ (if using UI++ as a pre-start command), or in a separate package downloaded to the target system using the **Download Package Content** action.
11 |
12 | The following example calls the VBScript named QueryAD.vbs.
13 |
14 | ~~~ xml
15 | cscript.exe //NOLOGO //B QueryAD.vbs
16 | ~~~
17 |
18 | Using an [ExternalCall]({% link docs/reference/actionelements.md %}#externalcall) action enables you to leverage existing scripts or other tools to perform a specific action that UI++ cannot directly perform. Possible activities for these external commands include calling a web service (which is much easier to do in PowerShell or VBScript), calling a driver installation routine, or initiating a reboot. Many more possibilities exist, as well.
19 |
20 | If calling PowerShell from within WinPE, make sure that you include PowerShell in the WinPE boot image that you are using.
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/fileread.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: File Read
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | This action does one simple thing: reads the first line from a text file and places the value of that line in a specified variable. It will also optionally delete that line from the text file. This is very useful for generating unique system names during OSD from a list of names, prefixes, or suffixes listed in that text file.
11 |
12 | The below snippet does the following:
13 | 1. Reads the first line from the file named **TextFile1.txt** located in the root of the P drive
14 | 2. Places the value of that line in the **MyValue** variable
15 | 3. Deletes the line from the file
16 |
17 | The P drive, of course, needs to be accessible and the context in which UI++ runs must have read and write access to the file. You can easily do this using a [Connect to Network Folder](https://docs.microsoft.com/en-us/sccm/osd/understand/task-sequence-steps#BKMK_ConnectToNetworkFolder) step in the task sequence before it executes UI++.
18 |
19 | ~~~ xml
20 |
21 | ~~~
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/infofullscreen.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Info (Full-Screen)
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | The **InfoFullScreen** dialog action is currently a preview feature that works but may not be complete and is subject to change.
11 | {:.note}
12 |
13 | The [InfoFullScreen]({% link docs/reference/actionelements.md %}#infofullscreen) action displays information to the end-user using a full-screen window instead of a standard UI++ dialog. This full-screen window displays an optional image, a single line of text, and an infinite progress bar.
14 |
15 | {% figure caption:"An InfoFullScreen action full-screen window" %}
16 | 
17 | {% endfigure %}
18 | {: .figure--floatright }
19 | {: #screenshot }
20 |
21 | To dismiss the full-screen window, press **Ctrl** + **Alt** + **F10**. This is not currently configurable.
22 |
23 | The following snippet creates an [InfoFullScreen]({% link docs/reference/actionelements.md %}#infofullscreen) action full-screen dialog.
24 |
25 | ~~~ xml
26 | Glorious things are happening in the background.
27 | ~~~
28 |
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/randomstring.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Random String
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | This action sets the value of a variable to a random string of characters. You can configure the length of this random string as well as define the characters allowed in the string. You can use this variable and its value in the same way as all other [variables]({% link docs/configuration/valuesandvariables.md %}) within UI++ or a task sequence.
11 |
12 | The following snippet generates a string of length 6 and populates the variable named *RandomName* with this string.
13 |
14 | ~~~ xml
15 |
16 | ~~~
17 |
18 | The following snippet generates a string of length 12 using only numbers and populates the variable named *RandomName* with this string.
19 |
20 | ~~~ xml
21 |
22 | ~~~
23 |
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/registry.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: RegRead and RegWrite
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | These actions read data from the registry, storing the value in a variable or write data to the registry.
11 |
12 | The following snippet reads the **CurrentVersion** value from the key **SOFTWARE\Microsoft\Windows NT\CurrentVersion** in the **HKLM** hive.
13 |
14 | ~~~ xml
15 |
16 | ~~~
17 |
18 | The following snippet writes a string value named **DefaultVal** to the **SOFTWARE\ConfigMgrFTW** key in the **HKLM** hive.
19 |
20 | ~~~ xml
21 | Nicky Romero
22 | ~~~
23 |
--------------------------------------------------------------------------------
/Docs/website/docs/actionconfig/variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Variables
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | This action creates new variables with the specified name and value. You use it to create or populate variables from static values or to set variable values dynamically. The action uses the value of the element to set the variable's value and not the value of an attribute.
11 |
12 | The following snippet puts the static value "Finance" into the BusinessUnit variable.
13 |
14 | ~~~ xml
15 | Finance
16 | ~~~
17 |
18 | You can also use the full power of VBScript to set the value of the variable.
19 |
20 | ~~~ xml
21 | Left("Amsterdam",5)
22 | ~~~
23 |
24 | The value specified is initially treated as a VBScript expression. If VBScript cannot evaluate the value, then the simple text of the value is placed in the variable; however, if the value is a valid VBScript expression, VBScript evaluates it. Seemingly simple text like **abc-def** is actually valid VBScript (because the "-" is a minus sign) and the VBScript evaluation results in the variable's value set to zero. To avoid this, enclose the value in double-quotes (") or set the **DontEval** attribute to **True**.
25 |
26 | ~~~ xml
27 | "Finance-123"
28 | ~~~
--------------------------------------------------------------------------------
/Docs/website/docs/changelog.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Change Log
4 | aside:
5 | toc: true
6 | permalink: /changelog/
7 | ---
8 |
9 | yadda yadda yadda 2
--------------------------------------------------------------------------------
/Docs/website/docs/configuration/actiongroups.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Action Groups
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | ActionGroups enable the grouping of other action elements into a single unit. There are two main reasons to group actions: organization and conditional execution of grouped actions.
11 |
12 | You should specify a name for each ActionGroup using the **Name** attribute for organization and identification purposes.
13 |
14 | ActionGroups may or may not have a [Condition]({% link docs/configuration/conditions.md %}#apptree) attribute that UI++ evaluates. If an ActionGroup does have a condition specified and this condition evaluates to false, UI++ skips sub-actions.
15 |
16 | An action group can have any number of sub-actions, and all Action element types may be part of an ActionGroup.
17 |
18 | ~~~ xml
19 |
20 | …
21 |
22 | ~~~
--------------------------------------------------------------------------------
/Docs/website/docs/configuration/configurationfile.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Configuration File
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | You configure UI++ by creating an XML file. This XML file contains a series of [Action]({% link docs/actions/introduction.md %}) elements that define the exact UI++ behavior which is almost completely open-ended. By default, UI++ loads its configuration from a file named **ui++.xml**, but you can specify an alternate file using the [/config]({% link docs/running/commandline.md %}#config) parameter at the command-line.
11 |
12 | UI++ does not check the configuration file against an XSD schema so ignores extraneous or out of place elements. This is not guaranteed though, so definitely test your configuration file outside of OSD and before you use it production. Also, keep in mind that XML is case-sensitive.
--------------------------------------------------------------------------------
/Docs/website/docs/intro/features.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Features
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | Notable major features in UI++ include the following.
11 |
12 | * Customizable look and feel.
13 | * Information displayed using HTML formatting.
14 | * User input in drop-down list boxes, checkboxes, and text boxes validated using regular expressions.
15 | * Automatic variables and system information collection including model, hardware type, TPM, CPU, hypervisor, and more.
16 | * Read from and write to the following:
17 | * WMI
18 | * The Windows registry
19 | * Task sequence variables
20 | * A task sequence variable browser and editor.
21 | * Conditional execution of every element using VBScript expressions.
22 | * Inline variable replacement for any value using task sequence variables.
23 | * Active Directory authentication and authorization.
24 | * Customizable preflight checks and warnings.
25 | * An AppTree that displays and enables selection of both Applications and Packages.
26 | * Software discovery and mapping to ConfigMgr Applications or Packages.
27 | * State save and load to and from a data file.
--------------------------------------------------------------------------------
/Docs/website/docs/running/logfile.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Log File
4 | aside:
5 | toc: true
6 | sidebar:
7 | nav: docs
8 | ---
9 |
10 | UI++ generates or appends to a log file named **UI++.log** every time it runs. This log records all relvant information including all significant activity that UI++ performs including XML parsing issues. If you launch UI++ and nothing happens, check this log file for details. Outside of what's in the configuration file, UI++ does not present error messages or other run-time issues to the interactive user.
11 |
12 | The log file is in the standard ConfigMgr log file format and is best viewed using CMTrace (or the newer OneTrace included with Support Center).
13 |
14 | The following table lists the locations where UI++ creates its log file.
15 |
16 | | Environment | Log Location |
17 | |:---------------|:--------------|
18 | | Within a task sequence, before the **Setup Windows and ConfigMgr** task | X:\Windows\Temp\SMSTSLog |
19 | | Within a task sequence, after the **Setup Windows and ConfigMgr** task | %windir%\ccm\logs\SMSTSLog |
20 | | Prestart command | X:\Windows\Temp\ |
21 | | Outside of a task sequence | %TEMP% |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Docs/website/docs/samples.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article
3 | title: Samples
4 | aside:
5 | toc: true
6 | permalink: /samples/
7 | ---
8 |
9 | yadda yadda yadda 2
--------------------------------------------------------------------------------
/Docs/website/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | ---
4 |
5 | {: .image--floatright }
6 |
7 | **UI++** is a dynamic, user interface (UI) generation tool. **UI++** displays information to the interactive user, solicits input from the interactive user, and then performs actions based on that user's input and selections including populating task sequence variables during System Center Configuration Manager (ConfigMgr) Operating System Deployment (OSD). **UI++** also works outside of task sequences because, at its heart, **UI++** is simply a generic UI framework. It’s still great during task sequences, but its certainly not limited to them.
8 |
9 | Nearly every aspect of **UI++** is customizable including, the number of dialogs, colors, icons, and the exact text to display — everything shown is up to you. Examples of information commonly requested from users include the system name, business unit, primary user, time zone, OU, and application selection.
10 |
11 | ***
--------------------------------------------------------------------------------
/Docs/website/jekyll-text-theme.gemspec:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | Gem::Specification.new do |spec|
4 | spec.name = "jekyll-text-theme"
5 | spec.version = "2.2.6"
6 | spec.authors = ["Tian Qi"]
7 | spec.email = ["kitian616@outlook.com"]
8 |
9 | spec.summary = %q{A super customizable Jekyll theme for personal site, team site, blog, project, documentation, etc.}
10 | spec.homepage = "https://github.com/kitian616/jekyll-TeXt-theme"
11 | spec.license = "MIT"
12 |
13 | spec.metadata["plugin_type"] = "theme"
14 |
15 | spec.files = `git ls-files -z`.split("\x0").select do |f|
16 | f.match(%r{^((_data|_includes|_layouts|_sass|assets)/|(LICENSE|README|CHANGELOG)((\.(txt|md|markdown)|$)))}i)
17 | end
18 |
19 | spec.add_runtime_dependency "jekyll", ">= 3.6", "< 5.0"
20 | spec.add_runtime_dependency "jekyll-paginate", "~> 1.1"
21 | spec.add_runtime_dependency "jekyll-sitemap", "~> 1.0"
22 | spec.add_runtime_dependency "jekyll-feed", "~> 0.1"
23 | spec.add_runtime_dependency "jemoji", "~> 0.8"
24 |
25 | spec.add_development_dependency "bundler"
26 | spec.add_development_dependency "rake", "~> 10.0"
27 | end
28 |
--------------------------------------------------------------------------------
/FTWCMLog/FTWCMLog.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/FTWCMLog/FTWCMLog.rc
--------------------------------------------------------------------------------
/FTWCMLog/FTWCMLog.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/FTWCMLog/dllmain.cpp:
--------------------------------------------------------------------------------
1 | // dllmain.cpp : Defines the entry point for the DLL application.
2 | #include "stdafx.h"
3 |
4 | BOOL APIENTRY DllMain( HMODULE hModule,
5 | DWORD ul_reason_for_call,
6 | LPVOID lpReserved
7 | )
8 | {
9 | switch (ul_reason_for_call)
10 | {
11 | case DLL_PROCESS_ATTACH:
12 | case DLL_THREAD_ATTACH:
13 | case DLL_THREAD_DETACH:
14 | case DLL_PROCESS_DETACH:
15 | break;
16 | }
17 | return TRUE;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/FTWCMLog/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by FTWCMLog.rc
4 |
5 | // Next default values for new objects
6 | //
7 | #ifdef APSTUDIO_INVOKED
8 | #ifndef APSTUDIO_READONLY_SYMBOLS
9 | #define _APS_NEXT_RESOURCE_VALUE 101
10 | #define _APS_NEXT_COMMAND_VALUE 40001
11 | #define _APS_NEXT_CONTROL_VALUE 1001
12 | #define _APS_NEXT_SYMED_VALUE 101
13 | #endif
14 | #endif
15 |
--------------------------------------------------------------------------------
/FTWCMLog/stdafx.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
--------------------------------------------------------------------------------
/FTWCMLog/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 | //
5 |
6 | #pragma once
7 |
8 | #include "targetver.h"
9 |
10 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
11 | // Windows Header Files
12 | #include
13 |
14 |
15 |
16 | // reference additional headers your program requires here
17 |
--------------------------------------------------------------------------------
/FTWCMLog/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/FTWCMLog/version.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define FILEVER 1,2,1,0
4 | #define PRODUCTVER 1,2,1,0
5 | #define STRFILEVER "1.2.1.0\0"
6 | #define STRPRODUCTVER "1.2.1.0\0"
7 |
--------------------------------------------------------------------------------
/FTWldap/FTWldap.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/FTWldap/FTWldap.rc
--------------------------------------------------------------------------------
/FTWldap/FTWldap.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/FTWldap/dllmain.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/FTWldap/dllmain.cpp
--------------------------------------------------------------------------------
/FTWldap/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by FTWldap.rc
4 | //
5 | #define IDS_LOGMSG_LOOKINGFORDOMAINCONTROLLER 20001
6 | #define IDS_LOGMSG_FOUNDDOMAINCONTROLLER 20002
7 | #define IDS_LOGMSG_USINGDOMAINCONTROLLER 20003
8 |
9 | #define IDS_LOGERROR_DIDNOTFINDDOMAINCONTROLLER 21001
10 | #define IDS_LOGERROR_CANNOTUSEDDOMAINCONTROLLER 21002
11 |
12 | // Next default values for new objects
13 | //
14 | #ifdef APSTUDIO_INVOKED
15 | #ifndef APSTUDIO_READONLY_SYMBOLS
16 | #define _APS_NEXT_RESOURCE_VALUE 102
17 | #define _APS_NEXT_COMMAND_VALUE 40001
18 | #define _APS_NEXT_CONTROL_VALUE 1001
19 | #define _APS_NEXT_SYMED_VALUE 101
20 | #endif
21 | #endif
22 |
--------------------------------------------------------------------------------
/FTWldap/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/FTWldap/stdafx.cpp
--------------------------------------------------------------------------------
/FTWldap/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/FTWldap/stdafx.h
--------------------------------------------------------------------------------
/FTWldap/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/FTWldap/targetver.h
--------------------------------------------------------------------------------
/FTWldap/version.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define FILEVER 1,3,2,0
4 | #define PRODUCTVER 1,3,2,0
5 | #define STRFILEVER "1.3.2.0\0"
6 | #define STRPRODUCTVER "1.3.2.0\0"
7 |
--------------------------------------------------------------------------------
/UI++/Actions/ActionHelper.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "FTWCMLog.h"
4 | #include "FTW\WMIAccess.h"
5 | #include "ScriptHost.h"
6 |
7 | namespace UIpp
8 | {
9 | class CActionHelper
10 | {
11 | public:
12 | static bool GetWMIPropertyFromFirstInstance(FTWCMLOG::ICMLogPtr pLog, FTW::CWMIAccess& wmi, PCTSTR wmiClassName, PCTSTR wmiKey, PCTSTR wmiPropertyName, CString& value);
13 | static bool GetWMIPropertyFromAllInstances(FTWCMLOG::ICMLogPtr pLog, FTW::CWMIAccess& wmi, PCTSTR wmiClassName, PCTSTR wmiPropertyName, CString& value);
14 | static bool QueryWMI(FTWCMLOG::ICMLogPtr pLog, FTW::CWMIAccess& wmi, PCTSTR wmiPropertyName, PCTSTR pQuery, CString& value);
15 | //bool GetWMIProperty(FTW::CWMIAccess& wmi, PCTSTR wmiClassName, PCTSTR wmiKey, PCTSTR wmiPropertyName, long& value);
16 |
17 | static bool EvalCondition(FTWCMLOG::ICMLogPtr pLog, PCTSTR pCondition, FTW::CScriptHost* const scriptHost, PCTSTR pType, PCTSTR pName);
18 |
19 | static void UICopyFiles(FTWCMLOG::ICMLogPtr pLog, PCTSTR sourceFilePattern, PCTSTR sourcePath, PCTSTR destPath);
20 |
21 | private:
22 | static bool _GetWMIProperty(FTWCMLOG::ICMLogPtr pLog, FTW::CWMIAccess& wmi, PCTSTR wmiClassName, PCTSTR wmiPropertyName, CString& value, PCTSTR wmiKey = nullptr, bool returnAllValues = false);
23 |
24 | };
25 | }
--------------------------------------------------------------------------------
/UI++/CodeProject/CmdLine/CmdLine.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace CodeProject {
4 |
5 | class CCmdLine
6 | : public CMapStringToString
7 | {
8 | DECLARE_DYNAMIC(CCmdLine)
9 | public:
10 | CCmdLine(LPCTSTR sCmdLine = NULL, BOOL bCaseSensitive = FALSE);
11 | virtual ~CCmdLine(void);
12 | void Parse(LPCTSTR pszCmdLine);
13 | inline const CString& GetCmdLine(void) const { return m_strCmdLine; }
14 | inline void SetCaseSensitive(BOOL bSensitive) { m_bCaseSensitive = bSensitive; }
15 | inline BOOL GetCaseSensitive(void) const { return m_bCaseSensitive; }
16 | inline BOOL HasKey(LPCTSTR pszKey) const { CString strValue; return CMapStringToString::Lookup(pszKey, strValue); }
17 | private:
18 | CString m_strCmdLine;
19 | BOOL m_bCaseSensitive;
20 | static const TCHAR m_pszDelimeters[];
21 | static const TCHAR m_pszValueSep[];
22 | static const TCHAR m_pszQuotes[];
23 | };
24 | }
25 |
26 |
27 |
--------------------------------------------------------------------------------
/UI++/CodeProject/FilterEdit/UIntEdit.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "BaseEdit.h"
3 |
4 | namespace FilterEdit
5 | {
6 | class CUIntEdit : public CBaseEdit
7 | {
8 | public:
9 | CUIntEdit ();
10 | virtual ~CUIntEdit ();
11 | unsigned int GetValue () const;
12 |
13 | private:
14 | static bool m_bInitialised;
15 | static std::tr1::wregex m_RegEx;
16 | };
17 | }
18 |
--------------------------------------------------------------------------------
/UI++/CodeProject/FilterEdit/UIntRangeEdit.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "UIntEdit.h"
3 |
4 | namespace FilterEdit
5 | {
6 | class CUIntRangeEdit : public CUIntEdit
7 | {
8 | public:
9 | CUIntRangeEdit ();
10 | CUIntRangeEdit (const unsigned int uiLower, const unsigned int uiHigher);
11 | virtual ~CUIntRangeEdit ();
12 | void SetRange (const unsigned int uiLower, const unsigned int uiHigher);
13 | void SetIncrement (const unsigned int uiInc);
14 | virtual void Increment (const int iInc);
15 |
16 | protected:
17 | virtual bool SemanticCheck (const CString &strText,
18 | CString *pstrErrorMsg = 0);
19 |
20 | private:
21 | unsigned int m_uiLower;
22 | unsigned int m_uiHigher;
23 | unsigned int m_uiInc;
24 | };
25 | }
26 |
--------------------------------------------------------------------------------
/UI++/CodeProject/GridListCtrlEx/CGridColumnTraitText.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/CodeProject/GridListCtrlEx/CGridColumnTraitText.cpp
--------------------------------------------------------------------------------
/UI++/CodeProject/GridListCtrlEx/CGridColumnTraitVisitor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //------------------------------------------------------------------------
4 | // Author: Rolf Kristensen
5 | // Source: http://www.codeproject.com/KB/list/CGridListCtrlEx.aspx
6 | // License: Free to use for all (New BSD License)
7 | //------------------------------------------------------------------------
8 |
9 | namespace CodeProject {
10 |
11 | class CGridColumnTrait;
12 | class CGridColumnTraitImage;
13 | class CGridColumnTraitCombo;
14 | class CGridColumnTraitDateTime;
15 | class CGridColumnTraitEdit;
16 | class CGridColumnTraitText;
17 |
18 | //------------------------------------------------------------------------
19 | //! CGridColumnTraitVisitor enables the use of the visitor-pattern to
20 | //! add extra behavior to the CGridColumnTrait classes
21 | //------------------------------------------------------------------------
22 | class CGridColumnTraitVisitor
23 | {
24 | public:
25 | void Visit(CGridColumnTrait&) {}
26 | void Visit(CGridColumnTraitImage&) {}
27 | void Visit(CGridColumnTraitCombo&) {}
28 | void Visit(CGridColumnTraitDateTime&) {}
29 | void Visit(CGridColumnTraitEdit&) {}
30 | void Visit(CGridColumnTraitText&) {}
31 | };
32 | }
--------------------------------------------------------------------------------
/UI++/CodeProject/GridListCtrlEx/CGridListCtrlEx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/CodeProject/GridListCtrlEx/CGridListCtrlEx.cpp
--------------------------------------------------------------------------------
/UI++/CodeProject/GridListCtrlEx/CGridRowTrait.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //------------------------------------------------------------------------
4 | // Author: Rolf Kristensen
5 | // Source: http://www.codeproject.com/KB/list/CGridListCtrlEx.aspx
6 | // License: Free to use for all (New BSD License)
7 | //------------------------------------------------------------------------
8 |
9 | namespace CodeProject {
10 |
11 | class CGridRowTraitVisitor;
12 | class CGridListCtrlEx;
13 |
14 | #pragma warning(push)
15 | #pragma warning(disable:4100) // unreferenced formal parameter
16 |
17 | //------------------------------------------------------------------------
18 | //! CGridRowTrait specifies an interface for handling custom drawing at
19 | //! row-level
20 | //------------------------------------------------------------------------
21 | class CGridRowTrait
22 | {
23 | public:
24 | virtual ~CGridRowTrait() {}
25 |
26 | //! Override OnCustomDraw() to provide your own special row-drawing
27 | virtual void OnCustomDraw(CGridListCtrlEx& owner, NMLVCUSTOMDRAW* pLVCD, LRESULT* pResult) {}
28 |
29 | //! Override Accept() and update CGridColumnTraitVisitor for new column-trait classes
30 | //! - Will enable the use of the visitor-pattern ex. for serialization of column-traits
31 | virtual void Accept(CGridRowTraitVisitor& visitor) {}
32 | };
33 | }
34 | #pragma warning(pop)
--------------------------------------------------------------------------------
/UI++/CodeProject/GridListCtrlEx/CGridRowTraitVisitor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //------------------------------------------------------------------------
4 | // Author: Rolf Kristensen
5 | // Source: http://www.codeproject.com/KB/list/CGridListCtrlEx.aspx
6 | // License: Free to use for all (New BSD License)
7 | //------------------------------------------------------------------------
8 |
9 | namespace CodeProject {
10 |
11 | class CGridRowTrait;
12 | class CGridRowTraitText;
13 | class CGridRowTraitXP;
14 |
15 | //------------------------------------------------------------------------
16 | //! CGridRowTraitVisitor enables the use of the visitor-pattern to
17 | //! add extra behavior to the CGridRowTrait classes
18 | //------------------------------------------------------------------------
19 | class CGridRowTraitVisitor
20 | {
21 | public:
22 | void Visit(CGridRowTrait&) {}
23 | void Visit(CGridRowTraitText&) {}
24 | void Visit(CGridRowTraitXP&) {}
25 | };
26 | }
--------------------------------------------------------------------------------
/UI++/CodeProject/GridListCtrlEx/CGridRowTraitXP.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //------------------------------------------------------------------------
4 | // Author: Rolf Kristensen
5 | // Source: http://www.codeproject.com/KB/list/CGridListCtrlEx.aspx
6 | // License: Free to use for all (New BSD License)
7 | //------------------------------------------------------------------------
8 |
9 | #include "CGridRowTraitText.h"
10 |
11 | namespace CodeProject {
12 |
13 | //------------------------------------------------------------------------
14 | //! CGridRowTraitXP fixes drawing of rows when the application is using
15 | //! classic- or XP-style.
16 | //------------------------------------------------------------------------
17 | class CGridRowTraitXP : public CGridRowTraitText
18 | {
19 | public:
20 | virtual void OnCustomDraw(CGridListCtrlEx& owner, NMLVCUSTOMDRAW* pLVCD, LRESULT* pResult);
21 |
22 | protected:
23 | virtual void Accept(CGridRowTraitVisitor& visitor);
24 | };
25 | }
--------------------------------------------------------------------------------
/UI++/ConfigMgrFTW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/ConfigMgrFTW.png
--------------------------------------------------------------------------------
/UI++/Dialogs/DlgAppTree.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "DlgBase.h"
4 | #include "afxcmn.h"
5 | #include "Software.h"
6 | #include "FTW\FTWTreeCtrl.h"
7 |
8 | // CAppTreeDlg dialog
9 |
10 | class CDlgAppTree : public CDlgBase
11 | {
12 | DECLARE_DYNAMIC(CDlgAppTree)
13 |
14 | public:
15 | // CDlgAppTree(FTWCMLOG::ICMLogPtr pLog, CWnd* pParent = NULL); // standard constructor
16 | CDlgAppTree(PCTSTR dlgTitle,
17 | const DialogVisibilityFlags flags,
18 | const UIpp::ActionData& data,
19 | FTW::FTWTreeItemList* pItems,
20 | CDlgBase::DlgSize size,
21 | bool expanded = false,
22 | CWnd* pParent = NULL); // standard constructor
23 | virtual ~CDlgAppTree();
24 |
25 | // Dialog Data
26 | enum { IDD = IDD_APPTREEDLG };
27 | enum { IDDTALL = IDD_APPTREEDLGTALL };
28 | enum { IDDEXTRATALL = IDD_APPTREEDLGEXTRATALL };
29 |
30 | protected:
31 | void Dummy(void) {};
32 |
33 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
34 |
35 | afx_msg void OnBnClickedNextaction();
36 | afx_msg void OnCheckNotify(NMHDR* pNMHDR, LRESULT* pResult);
37 |
38 | DECLARE_MESSAGE_MAP()
39 |
40 | public:
41 | virtual BOOL OnInitDialog();
42 |
43 | protected:
44 | FTW::CFTWTreeCtrl m_appTree;
45 | FTW::FTWTreeItemList* m_pAppTreeItems;
46 |
47 | int m_initialized;
48 | bool m_treeExpandedByDefault;
49 |
50 | void ConvertIDStringList(CString idList, FTW::FTWTreeItemSet* pItemList);
51 |
52 | };
53 |
--------------------------------------------------------------------------------
/UI++/Dialogs/DlgBase.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/Dialogs/DlgBase.cpp
--------------------------------------------------------------------------------
/UI++/Dialogs/DlgPreflight.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "DlgUserInput.h"
4 | #include "winldap.h"
5 |
6 | // CUserAuthDlg dialog
7 |
8 | class CDlgPreflight : public CDlgUserInput
9 | {
10 | DECLARE_DYNAMIC(CDlgPreflight)
11 |
12 | public:
13 | //CDlgPreflight(short flags, int maxRetries = 0, CWnd* pParent = NULL); // standard constructor
14 | CDlgPreflight(PCTSTR dlgTitle,
15 | const DialogVisibilityFlags flags,
16 | const UIpp::ActionData& data,
17 | CDlgBase::DlgSize size,
18 | int maxRetries = 0,
19 | CWnd* pParent = NULL); // standard constructor
20 |
21 | virtual ~CDlgPreflight();
22 |
23 | // Dialog Data
24 | enum { IDD = IDD_INPUTDLG };
25 | enum { IDDTALL = IDD_INPUTDLGTALL};
26 |
27 | virtual BOOL OnInitDialog();
28 |
29 | void ChecksWithWarnings(bool warnings) { m_checkWarnings = warnings; };
30 | bool AddCheck(PCTSTR infoText, PCTSTR fontFace, UIpp::CUserInputBase::StatusType chkStat, PCTSTR descriptionText = nullptr, PCTSTR statusTooltipText = nullptr);
31 | void ShowRefreshButton(bool show) { if (show) m_visibilityFlags |= SHOW_REFRESH; else m_visibilityFlags = m_visibilityFlags & ~SHOW_REFRESH; };
32 |
33 | protected:
34 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
35 | afx_msg void OnBnClickedRetryaction();
36 | afx_msg void OnBnClickedNextaction();
37 |
38 | DECLARE_MESSAGE_MAP()
39 |
40 | void Dummy(void) {};
41 |
42 | void MoveButtons();
43 |
44 | HansDietrich::CXButtonXP m_refresh;
45 | int m_refreshButtonPos = -1;
46 | //bool m_allChecksPassed;
47 | bool m_moveButtons = false;
48 | bool m_checkWarnings;
49 | };
50 |
--------------------------------------------------------------------------------
/UI++/Dialogs/DlgProgress.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "afxcmn.h"
3 | #include "afxwin.h"
4 | #include "Constants.h"
5 |
6 | #include "HansDietrich\XColorStatic.h"
7 |
8 | typedef UINT(*ProgressFunction)(LPVOID);
9 |
10 | #define WM_UPDATEPROGRESSBAR (WM_USER + 100)
11 | #define WM_CLOSEPROGRESSBAR (WM_USER + 101)
12 |
13 | // CUIProgressDlg dialog
14 |
15 | class CDlgUIProgress : public CDialog
16 | {
17 | DECLARE_DYNAMIC(CDlgUIProgress)
18 |
19 | public:
20 | CDlgUIProgress(int maxRange = 100, PCTSTR title = 0, PCTSTR fontFace = DEFAULT_FONTFACE, CWnd* pParent = NULL); // standard constructor
21 | virtual ~CDlgUIProgress();
22 |
23 | // Dialog Data
24 | #ifdef AFX_DESIGN_TIME
25 | enum { IDD = IDD_UIPROGRESSDLG };
26 | #endif
27 |
28 | protected:
29 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
30 |
31 | DECLARE_MESSAGE_MAP()
32 | CProgressCtrl m_progress;
33 | HansDietrich::CXColorStatic m_progressMessage;
34 | HansDietrich::CXColorStatic m_progressTitle;
35 | CString m_titleText;
36 | CString m_fontFaceName;
37 | CBrush m_brush;
38 |
39 | int m_maxRange;
40 |
41 | //afx_msg BOOL OnEraseBkgnd(CDC* pDC);
42 | virtual BOOL OnInitDialog();
43 |
44 | afx_msg LRESULT OnCloseProgressBar(WPARAM, LPARAM);
45 | afx_msg LRESULT OnUpdateProgressBar(WPARAM wParam, LPARAM lParam);
46 | public:
47 | //virtual INT_PTR DoModal();
48 | afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
49 | afx_msg void OnIdcancel();
50 | };
51 |
--------------------------------------------------------------------------------
/UI++/Dialogs/DlgUserInfo.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "HansDietrich\XHTMLCtrl.h"
4 |
5 | //#include "afxwin.h"
6 | //#include "afxbutton.h"
7 | #include "DlgBase.h"
8 |
9 | // CInfoDlg dialog
10 |
11 | class CDlgUserInfo : public CDlgBase
12 | {
13 | DECLARE_DYNAMIC(CDlgUserInfo)
14 |
15 | public:
16 |
17 | ////CInfoDlg(bool showCancel = false, CWnd* pParent = NULL); // standard constructor
18 | //CDlgUserInfo(DialogVisibilityFlags flags, FTWCMLOG::ICMLogPtr pLog, PCTSTR brandingImagePath = nullptr
19 | // , PCTSTR infoImagePath = nullptr, CWnd* pParent = NULL); // standard constructor
20 |
21 | CDlgUserInfo(PCTSTR dlgTitle,
22 | const DialogVisibilityFlags flags,
23 | const UIpp::ActionData& data,
24 | PCTSTR infoText = _T(""),
25 | PCTSTR brandingImagePath = nullptr,
26 | PCTSTR infoImagePath = nullptr,
27 | CWnd* pParent = NULL);
28 |
29 | virtual ~CDlgUserInfo();
30 |
31 | // Dialog Data
32 | enum { IDD = IDD_INFODLG };
33 | enum { IDD_BANNER = IDD_INFOBANNERDLG };
34 |
35 | virtual BOOL OnInitDialog();
36 |
37 | protected:
38 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
39 |
40 | DECLARE_MESSAGE_MAP()
41 |
42 | CString m_dlgInfoText;
43 |
44 | void Dummy(void) {};
45 |
46 | HansDietrich::CXHTMLCtrl m_dlgInfo;
47 | CStatic m_dlgBrandingBanner;
48 | CImage m_brandingImage;
49 | CString m_brandingImagePath;
50 | CStatic m_dlgInfoBanner;
51 | CImage m_infoImage;
52 | CString m_infoImagePath;
53 |
54 | bool m_brandingImageLoaded;
55 | };
56 |
--------------------------------------------------------------------------------
/UI++/Dialogs/DlgUserInfoFullScreen.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/Dialogs/DlgUserInfoFullScreen.cpp
--------------------------------------------------------------------------------
/UI++/FTW/ComInit.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | namespace FTW
3 | {
4 |
5 | class ComInit
6 | {
7 | public:
8 | ComInit(bool init = true) : m_hrInit(CO_E_NOTINITIALIZED) { if (init) Init(); }
9 | ~ComInit()
10 | {
11 | if (m_hrInit == S_OK || m_hrInit == S_FALSE)
12 | {
13 | ::CoUninitialize();
14 | TRACE("INFO: COM uninitizalized\n");
15 | }
16 | }
17 |
18 | static HRESULT InitSecurity(void) { return ::CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL); }
19 |
20 | static ComInit& Instance()
21 | {
22 | static ComInit _COM;
23 | return _COM;
24 | }
25 |
26 | HRESULT InitStatus(void) { return m_hrInit; }
27 | HRESULT Init(void)
28 | {
29 | if (m_hrInit == CO_E_NOTINITIALIZED)
30 | m_hrInit = ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
31 |
32 | if (m_hrInit == S_OK)
33 | TRACE("INFO: COM initizalized\n");
34 |
35 | return m_hrInit;
36 | }
37 |
38 | private:
39 | HRESULT m_hrInit;
40 |
41 | };
42 | }
--------------------------------------------------------------------------------
/UI++/FTW/FTWBrowseEdit.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/FTW/FTWBrowseEdit.cpp
--------------------------------------------------------------------------------
/UI++/FTW/FTWBrowseEdit.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/FTW/FTWBrowseEdit.h
--------------------------------------------------------------------------------
/UI++/FTW/FTWControl.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | class CFTWControl
4 | {
5 | public:
6 | CFTWControl(CEdit* pEdit, bool emptyAllowed = false);
7 | ~CFTWControl();
8 |
9 | bool IsInputValid(void) const { return m_validInput; }
10 | bool ValidateInput(void);
11 |
12 | static UINT UWM_VALUE_CHANGED;
13 |
14 | protected:
15 | bool m_validInput;
16 | bool m_emptyAllowed;
17 | bool m_hasFocus;
18 | bool m_initialFocus;
19 |
20 | CBrush m_focusBrush;
21 | CBrush m_noFocusBrush;
22 | CBrush m_background;
23 | CBrush m_noFocusErrorBrush;
24 |
25 | CEdit* m_pEdit;
26 |
27 | //CFont* m_pFont;
28 |
29 | //CToolTipCtrl m_ToolTip;
30 | //CString m_toolTipText;
31 | //CString m_toolTipTitle;
32 |
33 | void DrawEditFrame();
34 | void DrawEditFrame(bool hasFocus);
35 |
36 | afx_msg void OnEnKillfocus();
37 | afx_msg void OnEnSetfocus();
38 | afx_msg void OnEnChange();
39 | afx_msg HBRUSH CtlColor(CDC* pDC, UINT /*nCtlColor*/);
40 | };
41 |
42 |
--------------------------------------------------------------------------------
/UI++/FTW/TSCore.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/FTW/TSCore.dll
--------------------------------------------------------------------------------
/UI++/FTW/TSProgress.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "TSProgress.h"
3 |
4 |
5 | CTSProgress::CTSProgress(void)
6 | : m_pTSProgress(0)
7 | {
8 |
9 | try
10 | {
11 | //Try to retrieve an instance of the Microsoft.SMS.TSEnvironment class
12 | HRESULT hr = m_pTSProgress.CreateInstance (ProgressUILib::CLSID_ProgressUI);
13 |
14 | if (hr == S_OK)
15 | {
16 |
17 | TRACE("INFO: Created Microsoft.SMS.TsProgressUI\n");
18 |
19 | }
20 | else
21 | {
22 | TRACE("INFO: Unable to create Microsoft.SMS.TsProgressUI\n");
23 | m_pTSProgress = 0;
24 | }
25 |
26 | }
27 | catch (_com_error ce)
28 | {
29 | TRACE("INFO: Unable to create Microsoft.SMS.TsProgressUI\n");
30 | m_pTSProgress = 0;
31 | }
32 |
33 | }
34 |
35 |
36 | CTSProgress::~CTSProgress(void)
37 | {
38 | }
39 |
--------------------------------------------------------------------------------
/UI++/FTW/TSProgress.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #import "TSProgressUI.exe" named_guids
4 |
5 | class CTSProgress
6 | {
7 | public:
8 | CTSProgress(void);
9 | ~CTSProgress(void);
10 |
11 | inline static CTSProgress& Instance()
12 | {
13 | static CTSProgress _TSProgress;
14 | return _TSProgress;
15 | }
16 |
17 | void Close(void)
18 | {
19 | if(m_pTSProgress)
20 | m_pTSProgress->CloseProgressDialog();
21 | }
22 |
23 | private:
24 | CTSProgress operator=(CTSProgress const&);
25 | CTSProgress (CTSProgress const&);
26 |
27 | ProgressUILib::IProgressUIPtr m_pTSProgress;
28 | };
29 |
30 |
--------------------------------------------------------------------------------
/UI++/FTW/Utils_old.h:
--------------------------------------------------------------------------------
1 | // Utils.h
2 | //
3 | // Copyright (c) Jason Sandys, 2009
4 | //
5 | // License: This code is released according to the
6 | // Microsoft Public License (Ms-PL) as documented at
7 | // http://UIappchooser.codeplex.com/license
8 | //
9 | // Some code in this file is based on a series of articles by David
10 | // Sackstein: http://blogs.microsoft.co.il/blogs/davids/archive/2008/12/20/msxml-in-c-but-as-elegant-as-c.aspx
11 | //
12 | //////////////////////////////////////////////////////////////////////
13 |
14 | #pragma once
15 |
16 | #define MAX_STRING_LENGTH 1024
17 |
18 | namespace FTW
19 | {
20 |
21 | inline bool CheckForFlag(const short flags, const short flag) {
22 | return ((flags & flag) == flag);
23 | };
24 |
25 | PCTSTR BoolString(bool value);
26 |
27 | PCTSTR BoolString(VARIANT_BOOL value);
28 |
29 | PCTSTR BoolString(BOOL value);
30 |
31 | CString FormatHRString(HRESULT hr);
32 | CString FormatResourceString(DWORD dwStrID, ...);
33 | CString FormatResourceString(DWORD dwStrID, va_list* args);
34 |
35 | //DWORD DownloadFileFromURL(CString& destinationPathandName, PCTSTR pURL, PCTSTR pDestination = nullptr, bool binary = false);
36 |
37 | COLORREF HexToCOLORREF(PCTSTR hexColor, const COLORREF defaultColor = RGB(0, 0, 0));
38 |
39 | BOOL Is64BitOS();
40 |
41 | bool IsTrue(PCTSTR value);
42 |
43 | bool FileExists(PCTSTR filename);
44 |
45 | CString JoinPath(PCTSTR part1, PCTSTR part2);
46 |
47 | CString FormatSeconds(int totalSeconds);
48 | }
49 |
50 | #define WIDEN2(x) L ## x
51 | #define WIDEN(x) WIDEN2(x)
52 | #define __WFILE__ WIDEN(__FILE__)
53 | //wchar_t *pwsz = __WFILE__;
54 |
55 | #ifdef _UNICODE
56 | #define __TFILE__ __WFILE__
57 | #else
58 | #define __TFILE__ __FILE__
59 | #endif
--------------------------------------------------------------------------------
/UI++/FTW/tsprogressui.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/FTW/tsprogressui.exe
--------------------------------------------------------------------------------
/UI++/HansDietrich/CXDC.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/CXDC.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/CXPoint.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/CXPoint.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/CXRect.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/CXRect.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/CXWaitCursor.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/CXWaitCursor.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/FontSize.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/FontSize.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/FontSize.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/FontSize.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/XBalloonMsg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XBalloonMsg.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/XBalloonMsg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XBalloonMsg.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/XColorStatic.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XColorStatic.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/XColorStatic.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XColorStatic.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/XDisplayImage.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XDisplayImage.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/XDisplayImage.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XDisplayImage.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/XHTMLCtrl.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XHTMLCtrl.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/XHTMLCtrl.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XHTMLCtrl.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/XHtmlDrawLink.h:
--------------------------------------------------------------------------------
1 | // XHtmlDrawLink.h Version 1.2 - article available at www.codeproject.com
2 | //
3 | // Author: Hans Dietrich
4 | // hdietrich@gmail.com
5 | //
6 | // License:
7 | // This software is released into the public domain. You are free to use
8 | // it in any way you like, except that you may not sell this source code.
9 | //
10 | // This software is provided "as is" with no expressed or implied warranty.
11 | // I accept no liability for any damage or loss of business that this
12 | // software may cause.
13 | //
14 | ///////////////////////////////////////////////////////////////////////////////
15 |
16 | #ifndef XHTMLDRAWLINK_H
17 | #define XHTMLDRAWLINK_H
18 |
19 | #include "XHtmlDraw.h"
20 |
21 | namespace HansDietrich {
22 | class CXHtmlDrawLink
23 | {
24 | // ctor
25 | public:
26 | CXHtmlDrawLink();
27 | virtual ~CXHtmlDrawLink();
28 |
29 | // Operations
30 | public:
31 | BOOL GotoURL(LPCTSTR url, int showcmd, LPARAM lParam);
32 | BOOL ProcessAppCommand(LPCTSTR lpszCommand, LPARAM lParam);
33 | void SetAppCommands(CXHtmlDraw::XHTMLDRAW_APP_COMMAND * paAppCommands,
34 | int nAppCommands);
35 | BOOL SetLinkCursor();
36 |
37 | // Implementation
38 | protected:
39 | HCURSOR m_hLinkCursor; // cursor for links
40 | int m_nAppCommands;
41 | CXHtmlDraw::XHTMLDRAW_APP_COMMAND * m_paAppCommands;
42 |
43 | LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR lpData);
44 | void SetDefaultCursor();
45 | };
46 | }
47 | #endif //XHTMLDRAWLINK_H
48 |
--------------------------------------------------------------------------------
/UI++/HansDietrich/XHyperLink.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XHyperLink.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/XNamedColors.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XNamedColors.cpp
--------------------------------------------------------------------------------
/UI++/HansDietrich/XNamedColors.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/XNamedColors.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/XString.h:
--------------------------------------------------------------------------------
1 | // XString.h Version 1.1 - article available at www.codeproject.com
2 | //
3 | // Author: Hans Dietrich
4 | // hdietrich@gmail.com
5 | //
6 | // License:
7 | // This software is released into the public domain. You are free to use
8 | // it in any way you like, except that you may not sell this source code.
9 | //
10 | // This software is provided "as is" with no expressed or implied warranty.
11 | // I accept no liability for any damage or loss of business that this
12 | // software may cause.
13 | //
14 | ///////////////////////////////////////////////////////////////////////////////
15 |
16 | #ifndef XSTRING_H
17 | #define XSTRING_H
18 |
19 | // find
20 | TCHAR * _tcsistr(const TCHAR * str, const TCHAR * substr);
21 | int _tcsccnt(const TCHAR *str, TCHAR ch);
22 |
23 | // removal
24 | TCHAR * _tcscrem(TCHAR *str, TCHAR ch);
25 | TCHAR * _tcsicrem(TCHAR *str, TCHAR ch);
26 | TCHAR * _tcsstrrem(TCHAR *str, const TCHAR *substr);
27 | TCHAR * _tcsistrrem(TCHAR *str, const TCHAR *substr);
28 |
29 | // replace
30 | TCHAR * _tcscrep(TCHAR *str, TCHAR chOld, TCHAR chNew);
31 | TCHAR * _tcsicrep(TCHAR *str, TCHAR chOld, TCHAR chNew);
32 | int _tcsistrrep(const TCHAR * lpszStr,
33 | const TCHAR * lpszOld,
34 | const TCHAR * lpszNew,
35 | TCHAR * lpszResult);
36 |
37 | // trim
38 | TCHAR *_tcsltrim(TCHAR *str, const TCHAR *targets);
39 | TCHAR *_tcsrtrim(TCHAR *str, const TCHAR *targets);
40 | TCHAR *_tcstrim(TCHAR *str, const TCHAR *targets);
41 |
42 | // copy
43 | TCHAR *_tcsnzdup(const TCHAR *str, size_t count);
44 | TCHAR *_tcszdup(const TCHAR * str);
45 |
46 | #endif //XSTRING_H
47 |
--------------------------------------------------------------------------------
/UI++/HansDietrich/cxtooltipctrl.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/HansDietrich/cxtooltipctrl.h
--------------------------------------------------------------------------------
/UI++/HansDietrich/ensure.h:
--------------------------------------------------------------------------------
1 | // ensure.h - throw const char* error on failed assertion
2 | // Copyright (c) 2005 Keith A. Lewis mailto:kal@kalx.net
3 | #pragma once
4 | #ifndef ENSURE_H
5 | #define ENSURE_H
6 |
7 | namespace CodeProject {
8 |
9 | #ifndef WIN32
10 | #define _T(x) x
11 | #endif
12 |
13 | #define ENSURE_HASH(x) #x
14 | #define ENSURE_STRING(x) ENSURE_HASH(x)
15 | #pragma warning(disable: 4297)
16 | // like assert, but throws const char*
17 | #define ensure(e) { if (!(e)) throw _T(__FILE__) \
18 | _T("(") _T(ENSURE_STRING(__LINE__)) _T(") : ensure: \"") \
19 | _T(#e) _T("\" failed"); }
20 |
21 | }
22 |
23 | #endif // ENSURE_H
--------------------------------------------------------------------------------
/UI++/IntEdit.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "BaseEdit.h"
3 |
4 | namespace FilterEdit
5 | {
6 | class CIntEdit : public CBaseEdit
7 | {
8 | public:
9 | CIntEdit ();
10 | virtual ~CIntEdit ();
11 | int GetValue () const;
12 |
13 | private:
14 | static bool m_bInitialised;
15 | static std::wregex m_RegEx;
16 | };
17 | }
18 |
--------------------------------------------------------------------------------
/UI++/Software.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "Software.h"
3 |
4 |
--------------------------------------------------------------------------------
/UI++/TooltipStatic.cpp:
--------------------------------------------------------------------------------
1 | // TooltipStatic.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "UI++.h"
6 | #include "TooltipStatic.h"
7 |
8 |
9 | // CTooltipStatic
10 | namespace FTW
11 | {
12 | IMPLEMENT_DYNAMIC(CTooltipStatic, CStatic)
13 |
14 | CTooltipStatic::CTooltipStatic()
15 | {
16 |
17 | }
18 |
19 | CTooltipStatic::~CTooltipStatic()
20 | {
21 | }
22 |
23 |
24 | BEGIN_MESSAGE_MAP(CTooltipStatic, CStatic)
25 | END_MESSAGE_MAP()
26 |
27 |
28 |
29 | // CTooltipStatic message handlers
30 |
31 |
32 |
33 |
34 | void CTooltipStatic::PreSubclassWindow()
35 | {
36 | DWORD dwStyle = GetStyle();
37 | SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);
38 |
39 | CStatic::PreSubclassWindow();
40 | }
41 |
42 | void CTooltipStatic::CreateTooltip(PCTSTR text)
43 | {
44 | if (text != nullptr && _tcslen(text) > 0)
45 | {
46 | m_tooltip.Create(this, TTS_ALWAYSTIP | TTS_BALLOON | TTS_NOPREFIX);
47 | CRect oRect;
48 | GetClientRect(&oRect);
49 | m_tooltip.AddTool(this, text, oRect, 1001);
50 | m_tooltip.ShowWindow(SW_HIDE);
51 | m_tooltipCreated = true;
52 | }
53 | }
54 |
55 |
56 | BOOL CTooltipStatic::PreTranslateMessage(MSG* pMsg)
57 | {
58 | if(m_tooltipCreated)
59 | m_tooltip.RelayEvent(pMsg);
60 |
61 | return CStatic::PreTranslateMessage(pMsg);
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/UI++/TooltipStatic.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 | // CTooltipStatic
5 | namespace FTW
6 | {
7 | class CTooltipStatic : public CStatic
8 | {
9 | DECLARE_DYNAMIC(CTooltipStatic)
10 |
11 | public:
12 | CTooltipStatic();
13 | virtual ~CTooltipStatic();
14 |
15 | void CreateTooltip(PCTSTR text);
16 |
17 | protected:
18 | DECLARE_MESSAGE_MAP()
19 | virtual void PreSubclassWindow();
20 | virtual BOOL PreTranslateMessage(MSG* pMsg);
21 |
22 | CToolTipCtrl m_tooltip;
23 |
24 | bool m_tooltipCreated = false;
25 |
26 | };
27 | }
28 |
29 |
30 |
--------------------------------------------------------------------------------
/UI++/UI++ (Logical Disks Snippet).xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | cscript.exe //NOLOGO //B Get-LogicalDisks.vbs
5 |
6 |
7 |
8 |
9 |
10 | "%VolumeChoice%"
11 |
12 |
13 |
--------------------------------------------------------------------------------
/UI++/UI++.APS:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/UI++.APS
--------------------------------------------------------------------------------
/UI++/UI++.h:
--------------------------------------------------------------------------------
1 |
2 | // UI++.h : main header file for the PROJECT_NAME application
3 | //
4 |
5 | #pragma once
6 |
7 | #ifndef __AFXWIN_H__
8 | #error "include 'stdafx.h' before including this file for PCH"
9 | #endif
10 |
11 | #include "resource.h" // main symbols
12 | #include "pugi\pugixml.hpp"
13 | #include "Software.h"
14 | #include "FTWCMLog.h"
15 |
16 | #include
17 |
18 | typedef std::vector DLLVector;
19 | typedef std::vector::iterator DLLVectorIterator;
20 |
21 |
22 | // CUIppApp:
23 | // See UI++.cpp for the implementation of this class
24 | //
25 |
26 | class CUIppApp : public CWinApp
27 | {
28 | public:
29 | CUIppApp();
30 | ~CUIppApp();
31 |
32 | // Overrides
33 | public:
34 | virtual BOOL InitInstance();
35 |
36 | // Implementation
37 |
38 | DECLARE_MESSAGE_MAP()
39 | protected:
40 | //std::ofstream dbgFile;
41 |
42 | void Process(FTWCMLOG::ICMLogPtr pLog, bool isInTaskSequence, bool isInWinPE);
43 | void ProcessCommandLine(FTWCMLOG::ICMLogPtr pLog, CString& configFilename, CString& configFilenameFallback, int& downloadRetry, bool& disableVarEditor);
44 | void LoadActionLibraries(FTWCMLOG::ICMLogPtr pLog, pugi::xml_node& libraryNode);
45 | bool LoadConfig(FTWCMLOG::ICMLogPtr pLog, pugi::xml_document& configDoc, PCTSTR pFilename, int retry = 0, PCTSTR pAltFilename = nullptr);
46 | void GetSoftware(FTWCMLOG::ICMLogPtr pLog, pugi::xml_node& softwareNode, UIpp::SoftwareMap& software);
47 | //FTW::ComInit m_com;
48 |
49 | INT_PTR m_returnCode;
50 | DLLVector m_loadedDlls;
51 |
52 | public:
53 | virtual int ExitInstance();
54 | };
55 |
56 | extern CUIppApp theApp;
57 |
--------------------------------------------------------------------------------
/UI++/UI++.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/UI++.rc
--------------------------------------------------------------------------------
/UI++/UI++.rc.bak.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/UI++.rc.bak.rc
--------------------------------------------------------------------------------
/UI++/UI++.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/UI++/UI++2.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/UI++2.ico
--------------------------------------------------------------------------------
/UI++/UserInfoCheck.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "UserInfoCheck.h"
3 |
4 | namespace UIpp {
5 | bool CUserInfoCheck::Create(CRect rect, CWnd* pParentWnd, UINT& uID, LONG lineHeight, LONG spacing, CFont* pFont)
6 | {
7 | ASSERT(pParentWnd);
8 |
9 | CUserInputBase::Create(rect, pParentWnd, uID, lineHeight, spacing, pFont);
10 |
11 | SetStatus(m_status);
12 | m_statusIndicator.CreateTooltip(m_statusTooltipText);
13 |
14 | return true;
15 | }
16 | }
--------------------------------------------------------------------------------
/UI++/UserInfoCheck.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "UserInputInfo.h"
4 |
5 | namespace UIpp {
6 | class CUserInfoCheck :
7 | public CUserInputInfo
8 | {
9 | public:
10 |
11 | CUserInfoCheck(PCTSTR text, PCTSTR fontFace, CUserInputBase::StatusType stat = CUserInputBase::StatusType::Failed, PCTSTR descriptionText = nullptr, PCTSTR statusTootipText = nullptr)
12 | : CUserInputInfo(text, fontFace), m_descriptionText(descriptionText), m_statusTooltipText(statusTootipText)
13 | {
14 | m_status = stat;
15 | };
16 |
17 | ~CUserInfoCheck(void)
18 | {
19 |
20 | }
21 |
22 | bool Create(CRect rect, CWnd* pParentWnd, UINT& uID, LONG lineHeight, LONG spacing = 0, CFont* pFont = 0);
23 |
24 | void ShowInput(bool show = true)
25 | {
26 | m_inputVisible = show;
27 | CUserInputBase::ShowInput(show);
28 | }
29 |
30 | int MoveItem(int y, int h)
31 | {
32 | y = CUserInputBase::MoveInput(y, h);
33 | return y;
34 | }
35 |
36 | virtual bool IsInputValid()
37 | {
38 | return m_status != CUserInputBase::StatusType::Failed;
39 | }
40 |
41 | virtual bool IsInputStatusWarning()
42 | {
43 | return m_status == CUserInputBase::StatusType::Warning;
44 | }
45 |
46 | InputType GetType(void) { return CUserInputBase::InputType::CheckInfo; };
47 |
48 | protected:
49 | CString m_descriptionText;
50 | CString m_statusTooltipText;
51 | };
52 | }
--------------------------------------------------------------------------------
/UI++/UserInputCheckbox.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "UserInputCheckbox.h"
3 |
4 | namespace UIpp {
5 |
6 | bool CUserInputCheckbox::Create(CRect rect, CWnd* pParentWnd, UINT& uID, LONG lineHeight, LONG spacing, CFont* pFont)
7 | {
8 | ASSERT(pParentWnd);
9 |
10 | m_lineHeight = lineHeight;
11 | rect.bottom += m_lineHeight;
12 |
13 | DWORD style = /*WS_VISIBLE |*/ WS_CHILD | WS_TABSTOP | BS_AUTOCHECKBOX;
14 | m_pFontx = pFont;
15 |
16 | CRect checkboxRect(rect);
17 | checkboxRect.right = checkboxRect.left + 13;
18 | checkboxRect.top = checkboxRect.top + 5;
19 | checkboxRect.bottom = checkboxRect.bottom - 6;
20 |
21 | m_pCheckBox = new CButton();
22 | m_pCheckBox->Create(_T(""), style, checkboxRect, pParentWnd, ++uID);
23 |
24 | if (m_defaultValue == m_checkedValue)
25 | m_pCheckBox->SetCheck(BST_CHECKED);
26 |
27 | rect.left += 25;
28 |
29 | CreateTextControl(rect, pParentWnd);
30 |
31 | return true;
32 | }
33 |
34 | PCTSTR CUserInputCheckbox::GetValue(bool alternate)
35 | {
36 | if (m_pCheckBox)
37 | {
38 | if (m_pCheckBox->GetCheck() == BST_CHECKED)
39 | return (PCTSTR)m_checkedValue;
40 | else if (m_pCheckBox->GetCheck() == BST_UNCHECKED)
41 | return (PCTSTR)m_uncheckedValue;
42 | }
43 |
44 | return _T("");
45 | }
46 |
47 | }
--------------------------------------------------------------------------------
/UI++/UserInputCheckbox.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "UserInputBase.h"
4 |
5 | namespace UIpp {
6 |
7 | class CUserInputCheckbox :
8 | public CUserInputBase
9 | {
10 | public:
11 | CUserInputCheckbox(PCTSTR question, PCTSTR valueName, PCTSTR fontFace, PCTSTR checkedVal, PCTSTR uncheckVal, PCTSTR defaultVal)
12 | : CUserInputBase(question, valueName, fontFace, nullptr, 1),
13 | m_checkedValue(checkedVal),
14 | m_uncheckedValue(uncheckVal),
15 | m_defaultValue(defaultVal),
16 | m_pCheckBox(nullptr)
17 | {};
18 |
19 | ~CUserInputCheckbox(void)
20 | {
21 | if (m_pCheckBox != nullptr)
22 | delete m_pCheckBox;
23 | }
24 |
25 | bool Create(CRect rect, CWnd* pParentWnd, UINT& uID, LONG lineHeight, LONG spacing = 0, CFont* pFont = 0);
26 |
27 | void ShowInput(bool show = true)
28 | {
29 | CUserInputBase::ShowInput(show);
30 | m_pCheckBox->ShowWindow(show ? SW_SHOW : SW_HIDE);
31 | }
32 |
33 | int MoveItem(int y, int h)
34 | {
35 | y = CUserInputBase::MoveInput(y, h);
36 | return y;
37 | }
38 |
39 | void Disable(bool disable)
40 | {
41 | if (m_pCheckBox != nullptr)
42 | m_pCheckBox->EnableWindow(!disable);
43 | }
44 |
45 | bool IsInputValid()
46 | {
47 | return true;
48 | }
49 |
50 | PCTSTR GetValue(bool alternate);
51 |
52 | void ClearInput(void)
53 | {
54 | //m_pEdit->SetWindowText(L"");
55 | };
56 |
57 | InputType GetType(void) { return CUserInputBase::InputType::CheckboxInput; };
58 |
59 | protected:
60 | CString m_checkedValue;
61 | CString m_uncheckedValue;
62 | CString m_defaultValue;
63 |
64 | CString m_value;
65 |
66 | CButton* m_pCheckBox;
67 | };
68 |
69 | }
--------------------------------------------------------------------------------
/UI++/UserInputInfo.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "UserInputInfo.h"
3 |
4 | namespace UIpp {
5 | bool CUserInputInfo::Create(CRect rect, CWnd* pParentWnd, UINT& uID, LONG lineHeight, LONG spacing, CFont* pFont)
6 | {
7 | ASSERT(pParentWnd);
8 |
9 | m_lineHeight = lineHeight;
10 | rect.bottom += (m_lineHeight * m_numberofTextLines);
11 |
12 | m_pFontx = pFont;
13 | CreateTextControl(rect, pParentWnd);
14 |
15 | return true;
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/UI++/UserInputInfo.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "UserInputBase.h"
4 |
5 | namespace UIpp {
6 |
7 | class CUserInputInfo :
8 | public CUserInputBase
9 | {
10 | public:
11 | CUserInputInfo(PCTSTR text, PCTSTR fontFace, int numLines = 1, COLORREF textColor = RGB(0, 0, 0))
12 | : CUserInputBase(text, fontFace, numLines)
13 | {
14 | m_textColor = textColor;
15 | };
16 |
17 | ~CUserInputInfo(void)
18 | {
19 |
20 | }
21 |
22 | bool Create(CRect rect, CWnd* pParentWnd, UINT& uID, LONG lineHeight, LONG spacing, CFont* pFont = 0);
23 |
24 | void ShowInput(bool show = true)
25 | {
26 | CUserInputBase::ShowInput(show);
27 | }
28 |
29 | int MoveItem(int y, int h)
30 | {
31 | y = CUserInputBase::MoveInput(y, h);
32 | return y;
33 | }
34 |
35 | virtual bool IsInputValid()
36 | {
37 | return true;
38 | }
39 |
40 | InputType GetType(void) { return CUserInputBase::InputType::InputInfo; };
41 |
42 | const int GetInputHeight(void) {
43 | return m_lineHeight * m_numberofTextLines;
44 | };
45 | };
46 | }
--------------------------------------------------------------------------------
/UI++/approved.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/approved.png
--------------------------------------------------------------------------------
/UI++/curl/include/Makefile.am:
--------------------------------------------------------------------------------
1 | SUBDIRS = curl
2 |
3 | EXTRA_DIST = README
4 |
5 | AUTOMAKE_OPTIONS = foreign no-dependencies
6 |
--------------------------------------------------------------------------------
/UI++/curl/include/curl/stdcheaders.h:
--------------------------------------------------------------------------------
1 | #ifndef __STDC_HEADERS_H
2 | #define __STDC_HEADERS_H
3 | /***************************************************************************
4 | * _ _ ____ _
5 | * Project ___| | | | _ \| |
6 | * / __| | | | |_) | |
7 | * | (__| |_| | _ <| |___
8 | * \___|\___/|_| \_\_____|
9 | *
10 | * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al.
11 | *
12 | * This software is licensed as described in the file COPYING, which
13 | * you should have received as part of this distribution. The terms
14 | * are also available at https://curl.haxx.se/docs/copyright.html.
15 | *
16 | * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17 | * copies of the Software, and permit persons to whom the Software is
18 | * furnished to do so, under the terms of the COPYING file.
19 | *
20 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21 | * KIND, either express or implied.
22 | *
23 | ***************************************************************************/
24 |
25 | #include
26 |
27 | size_t fread(void *, size_t, size_t, FILE *);
28 | size_t fwrite(const void *, size_t, size_t, FILE *);
29 |
30 | int strcasecmp(const char *, const char *);
31 | int strncasecmp(const char *, const char *, size_t);
32 |
33 | #endif /* __STDC_HEADERS_H */
34 |
--------------------------------------------------------------------------------
/UI++/qr-liverpool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/qr-liverpool.png
--------------------------------------------------------------------------------
/UI++/qr-manutd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/qr-manutd.png
--------------------------------------------------------------------------------
/UI++/res/ButtonBack-Grey.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonBack-Grey.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonBack.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonBack.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonCancel-Grey.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonCancel-Grey.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonCancel.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonCancel.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonOK-Grey.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonOK-Grey.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonOK.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonOK.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonRefresh-Grey.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonRefresh-Grey.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonRefresh.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonRefresh.ico
--------------------------------------------------------------------------------
/UI++/res/ButtonRestart.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/ButtonRestart.ico
--------------------------------------------------------------------------------
/UI++/res/DlgAppTree.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/DlgAppTree.ico
--------------------------------------------------------------------------------
/UI++/res/DlgAuth.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/DlgAuth.ico
--------------------------------------------------------------------------------
/UI++/res/DlgInfo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/DlgInfo.ico
--------------------------------------------------------------------------------
/UI++/res/DlgInput.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/DlgInput.ico
--------------------------------------------------------------------------------
/UI++/res/DlgPreflight.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/DlgPreflight.ico
--------------------------------------------------------------------------------
/UI++/res/DlgStop.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/DlgStop.ico
--------------------------------------------------------------------------------
/UI++/res/InfoTip.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/InfoTip.ico
--------------------------------------------------------------------------------
/UI++/res/InputAttention.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/InputAttention.ico
--------------------------------------------------------------------------------
/UI++/res/StatusFailed.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/StatusFailed.ico
--------------------------------------------------------------------------------
/UI++/res/StatusPassed.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/StatusPassed.ico
--------------------------------------------------------------------------------
/UI++/res/StatusWarning.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/StatusWarning.ico
--------------------------------------------------------------------------------
/UI++/res/UI++ Tree Checkboxes.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/UI++ Tree Checkboxes.bmp
--------------------------------------------------------------------------------
/UI++/res/UI++ Tree.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/UI++ Tree.bmp
--------------------------------------------------------------------------------
/UI++/res/UI++.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/UI++.ico
--------------------------------------------------------------------------------
/UI++/res/UI++2.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/UI++2.ico
--------------------------------------------------------------------------------
/UI++/res/UI.rc2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/UI.rc2
--------------------------------------------------------------------------------
/UI++/res/icon1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/res/icon1.ico
--------------------------------------------------------------------------------
/UI++/resource.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/resource.h
--------------------------------------------------------------------------------
/UI++/resource.hm:
--------------------------------------------------------------------------------
1 | / / M i c r o s o f t V i s u a l C + + g e n e r a t e d H e l p I D i n c l u d e f i l e .
2 | / / U s e d b y U I + + . r c
3 | / /
4 | # d e f i n e H I D C _ T I T L E 0 x 2 0 / / I D D _ A P P T R E E D L G
5 |
--------------------------------------------------------------------------------
/UI++/resources/Test.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/resources/Test.jpg
--------------------------------------------------------------------------------
/UI++/resources/UI++.3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/UI++/resources/UI++2.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/resources/UI++2.ico
--------------------------------------------------------------------------------
/UI++/resources/ball.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jason4tw/UIPlusPlus/cc68bf730dd97db67e7891d85e8f9a7ed2177627/UI++/resources/ball.ico
--------------------------------------------------------------------------------
/UI++/stdafx.cpp:
--------------------------------------------------------------------------------
1 |
2 | // stdafx.cpp : source file that includes just the standard includes
3 | // UI++.pch will be the pre-compiled header
4 | // stdafx.obj will contain the pre-compiled type information
5 |
6 | #include "stdafx.h"
7 |
8 |
9 |
--------------------------------------------------------------------------------
/UI++/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/UI++/version.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define FILEVER 3,0,3,0
4 | #define PRODUCTVER 3,0,3,0
5 | #define STRFILEVER "3.0.3.0\0"
6 | #define STRPRODUCTVER "3.0.3.0\0"
7 |
--------------------------------------------------------------------------------
/UI++AWS/Resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by UI++AWS.rc
4 | //
5 |
6 | #define IDS_LOGMSG_ACTIONREGISTERED 20001
7 |
8 | // Next default values for new objects
9 | //
10 | #ifdef APSTUDIO_INVOKED
11 | #ifndef APSTUDIO_READONLY_SYMBOLS
12 |
13 | #define _APS_NEXT_RESOURCE_VALUE 1000
14 | #define _APS_NEXT_CONTROL_VALUE 1000
15 | #define _APS_NEXT_SYMED_VALUE 1000
16 | #define _APS_NEXT_COMMAND_VALUE 32771
17 | #endif
18 | #endif
19 |
--------------------------------------------------------------------------------
/UI++AWS/UI++AWS.def:
--------------------------------------------------------------------------------
1 | ; UI++AWS.def : Declares the module parameters for the DLL.
2 |
3 | LIBRARY
4 |
5 | EXPORTS
6 | ; Explicit exports can go here
7 | RegisterAction @1
8 |
--------------------------------------------------------------------------------
/UI++AWS/UI++AWS.h:
--------------------------------------------------------------------------------
1 | // UI++AWS.h : main header file for the UI++AWS DLL
2 | //
3 |
4 | #pragma once
5 |
6 | #ifndef __AFXWIN_H__
7 | #error "include 'stdafx.h' before including this file for PCH"
8 | #endif
9 |
10 | class CImage;
11 | #include "resource.h" // main symbols
12 | #include "Actions\Action.h"
13 |
14 | // CUIAWSApp
15 | // See UI++AWS.cpp for the implementation of this class
16 | //
17 |
18 | //class CUIAWSApp : public CWinApp
19 | //{
20 | //public:
21 | // CUIAWSApp();
22 | //
23 | //// Overrides
24 | //public:
25 | // virtual BOOL InitInstance();
26 | //
27 | // DECLARE_MESSAGE_MAP()
28 | //};
29 |
30 | const _TCHAR* const XML_ACTION_TYPE_AWSUPLOADINFO = (_T("AWS"));
31 |
32 | class CAWSUploadAction : public UIpp::CAction
33 | {
34 | public:
35 | CAWSUploadAction(const UIpp::ActionData& data) : CAction(data) { m_actionTypeName = XML_ACTION_TYPE_AWSUPLOADINFO; };
36 | ~CAWSUploadAction(void) {};
37 |
38 | INT_PTR Go(void);
39 | bool IsGUIAction(void) { return false; };
40 |
41 | };
42 |
--------------------------------------------------------------------------------
/UI++AWS/res/UI++AWS.rc2:
--------------------------------------------------------------------------------
1 | //
2 | // UI++AWS.RC2 - resources Microsoft Visual C++ does not edit directly
3 | //
4 |
5 | #ifdef APSTUDIO_INVOKED
6 | #error this file is not editable by Microsoft Visual C++
7 | #endif //APSTUDIO_INVOKED
8 |
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // Add manually edited resources here...
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 |
--------------------------------------------------------------------------------
/UI++AWS/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // UI++AWS.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 |
8 |
--------------------------------------------------------------------------------
/UI++AWS/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 |
5 | #pragma once
6 |
7 | #ifndef VC_EXTRALEAN
8 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
9 | #endif
10 |
11 | #include "targetver.h"
12 |
13 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
14 |
15 | #include // MFC core and standard components
16 | #include // MFC extensions
17 |
18 | #ifndef _AFX_NO_OLE_SUPPORT
19 | #include // MFC OLE classes
20 | #include // MFC OLE dialog classes
21 | #include // MFC Automation classes
22 | #endif // _AFX_NO_OLE_SUPPORT
23 |
24 | #ifndef _AFX_NO_DB_SUPPORT
25 | #include // MFC ODBC database classes
26 | #endif // _AFX_NO_DB_SUPPORT
27 |
28 | #ifndef _AFX_NO_DAO_SUPPORT
29 | #include // MFC DAO database classes
30 | #endif // _AFX_NO_DAO_SUPPORT
31 |
32 | #ifndef _AFX_NO_OLE_SUPPORT
33 | #include // MFC support for Internet Explorer 4 Common Controls
34 | #endif
35 | #ifndef _AFX_NO_AFXCMN_SUPPORT
36 | #include // MFC support for Windows Common Controls
37 | #endif // _AFX_NO_AFXCMN_SUPPORT
38 |
39 |
40 |
--------------------------------------------------------------------------------
/UI++AWS/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/UI++REST/Resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by UI++REST.rc
4 | //
5 |
6 | #define IDS_LOGMSG_SETTSVARIABLE 11012
7 | #define IDS_LOGERROR_SETTSVARIABLE 12002
8 |
9 | #define IDS_LOGMSG_ACTIONREGISTERED 20001
10 | #define IDS_LOGMSG_NOVALIDURL 21001
11 | #define IDS_LOGMSG_RESTCALL 21002
12 | #define IDS_LOGMSG_RESTSUCCESS 21003
13 | #define IDS_LOGMSG_FOUNDJSONVALUE 21004
14 | #define IDS_LOGMSG_FOUNDNONSTRINGJSONVALUE 21005
15 |
16 | #define IDS_LOGERROR_RESTFAIL 22001
17 | #define IDS_LOGERROR_JSONPARSE 22002
18 | #define IDS_LOGERROR_RESTNOPARAMS 22003
19 |
20 | // Next default values for new objects
21 | //
22 | #ifdef APSTUDIO_INVOKED
23 | #ifndef APSTUDIO_READONLY_SYMBOLS
24 |
25 | #define _APS_NEXT_RESOURCE_VALUE 1000
26 | #define _APS_NEXT_CONTROL_VALUE 1000
27 | #define _APS_NEXT_SYMED_VALUE 1000
28 | #define _APS_NEXT_COMMAND_VALUE 32771
29 | #endif
30 | #endif
31 |
--------------------------------------------------------------------------------
/UI++REST/RestConstants.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | const _TCHAR* const XML_ATTRIBUTE_URL = (_T("Url"));
5 | const _TCHAR* const XML_ACTION_REST_JSON = (_T("JSON"));
6 | const _TCHAR* const XML_ACTION_REST_JSONATTRIBUTE = (_T("Attribute"));
7 | const _TCHAR* const XML_ATTRIBUTE_VARIABLE = (_T("Variable"));
8 | const _TCHAR* const XML_ATTRIBUTE_VARIABLE_RESTRESULT_DEF = (_T("RESTResult"));
9 | const _TCHAR* const XML_ATTRIBUTE_VARIABLE_TOJSON_DEF = (_T("JSONValue"));
10 |
11 | const _TCHAR* const XML_ATTRIBUTE_NAME = (_T("Name"));
12 | const _TCHAR* const XML_ATTRIBUTE_DONTEVAL = (_T("DontEval"));
13 | const _TCHAR* const XML_ATTRIBUTE_JSON = (_T("JSON"));
14 |
15 | const _TCHAR* const XML_ACTION_YES = (_T("Yes"));
16 | const _TCHAR* const XML_ACTION_NO = (_T("No"));
17 | const _TCHAR* const XML_ACTION_TRUE = (_T("True"));
18 | const _TCHAR* const XML_ACTION_FALSE = (_T("False"));
19 |
--------------------------------------------------------------------------------
/UI++REST/UI++REST.def:
--------------------------------------------------------------------------------
1 | ; UI++REST.def : Declares the module parameters for the DLL.
2 |
3 | LIBRARY
4 |
5 | EXPORTS
6 | ; Explicit exports can go here
7 | RegisterAction @1
8 |
--------------------------------------------------------------------------------
/UI++REST/UI++REST.h:
--------------------------------------------------------------------------------
1 | // UI++REST.h : main header file for the UI++REST DLL
2 | //
3 |
4 | #pragma once
5 |
6 | #ifndef __AFXWIN_H__
7 | #error "include 'stdafx.h' before including this file for PCH"
8 | #endif
9 |
10 | class CImage;
11 | #include "resource.h" // main symbols
12 | #include "Actions\Action.h"
13 |
14 | // CUIRESTApp
15 | // See UI++REST.cpp for the implementation of this class
16 | //
17 |
18 | //class CUIRESTApp : public CWinApp
19 | //{
20 | //public:
21 | // CUIRESTApp();
22 | //
23 | //// Overrides
24 | //public:
25 | // virtual BOOL InitInstance();
26 | //
27 | // DECLARE_MESSAGE_MAP()
28 | //};
29 |
30 | const _TCHAR* const XML_ACTION_TYPE_RESTCALL = (_T("REST"));
31 | const _TCHAR* const XML_ACTION_TYPE_TOJSON = (_T("ToJSON"));
32 | const _TCHAR* const XML_ACTION_TYPE_FROMJSON = (_T("FromJSON"));
33 |
34 | class CRESTCallAction : public UIpp::CAction
35 | {
36 | public:
37 | CRESTCallAction(const UIpp::ActionData& data) : CAction(data) { m_actionTypeName = XML_ACTION_TYPE_RESTCALL; };
38 | ~CRESTCallAction(void) {};
39 |
40 | INT_PTR Go(void);
41 | bool IsGUIAction(void) { return false; };
42 |
43 | };
44 |
45 | class CToJSONAction : public UIpp::CAction
46 | {
47 | public:
48 | CToJSONAction(const UIpp::ActionData& data) : CAction(data) { m_actionTypeName = XML_ACTION_TYPE_TOJSON; };
49 | ~CToJSONAction(void) {};
50 |
51 | INT_PTR Go(void);
52 | bool IsGUIAction(void) { return false; };
53 |
54 | };
55 |
56 | class CFromJSONAction : public UIpp::CAction
57 | {
58 | public:
59 | CFromJSONAction(const UIpp::ActionData& data) : CAction(data) { m_actionTypeName = XML_ACTION_TYPE_FROMJSON; };
60 | ~CFromJSONAction(void) {};
61 |
62 | INT_PTR Go(void);
63 | bool IsGUIAction(void) { return false; };
64 |
65 | };
--------------------------------------------------------------------------------
/UI++REST/res/UI++REST.rc2:
--------------------------------------------------------------------------------
1 | //
2 | // UI++REST.RC2 - resources Microsoft Visual C++ does not edit directly
3 | //
4 |
5 | #ifdef APSTUDIO_INVOKED
6 | #error this file is not editable by Microsoft Visual C++
7 | #endif //APSTUDIO_INVOKED
8 |
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // Add manually edited resources here...
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 |
--------------------------------------------------------------------------------
/UI++REST/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // UI++REST.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 |
8 |
--------------------------------------------------------------------------------
/UI++REST/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 |
5 | #pragma once
6 |
7 | #ifndef VC_EXTRALEAN
8 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
9 | #endif
10 |
11 | #include "targetver.h"
12 |
13 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
14 |
15 | #include // MFC core and standard components
16 | #include // MFC extensions
17 |
18 | #ifndef _AFX_NO_OLE_SUPPORT
19 | #include // MFC OLE classes
20 | #include // MFC OLE dialog classes
21 | #include // MFC Automation classes
22 | #endif // _AFX_NO_OLE_SUPPORT
23 |
24 | #ifndef _AFX_NO_DB_SUPPORT
25 | #include // MFC ODBC database classes
26 | #endif // _AFX_NO_DB_SUPPORT
27 |
28 | #ifndef _AFX_NO_DAO_SUPPORT
29 | #include // MFC DAO database classes
30 | #endif // _AFX_NO_DAO_SUPPORT
31 |
32 | #ifndef _AFX_NO_OLE_SUPPORT
33 | #include // MFC support for Internet Explorer 4 Common Controls
34 | #endif
35 | #ifndef _AFX_NO_AFXCMN_SUPPORT
36 | #include // MFC support for Windows Common Controls
37 | #endif // _AFX_NO_AFXCMN_SUPPORT
38 |
39 |
40 |
--------------------------------------------------------------------------------
/UI++REST/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/vcpkg.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
3 | "dependencies": [
4 | "curl"
5 | ],
6 | "overrides": [
7 | {
8 | "name": "curl",
9 | "version": "7.83.1"
10 | }
11 | ],
12 | "vcpkg-configuration": {
13 | "default-registry": {
14 | "kind": "git",
15 | "baseline": "2dc91c6439568f694052c3fa25859dc78d9ff8e4",
16 | "repository": "https://github.com/microsoft/vcpkg"
17 | },
18 | "registries": [
19 | {
20 | "kind": "artifact",
21 | "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
22 | "name": "microsoft"
23 | }
24 | ]
25 | }
26 | }
27 |
--------------------------------------------------------------------------------