Files
Basalt2/docs/.vitepress/dist/guides/xml.html
2025-09-16 17:41:40 +02:00

100 lines
42 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>XML in Basalt | Basalt</title>
<meta name="description" content="A UI Framework made for CC:Tweaked">
<meta name="generator" content="VitePress v1.6.3">
<link rel="preload stylesheet" href="/assets/style.Dut7Pyz3.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.DCZWIzvI.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.CxSU_GCj.js">
<link rel="modulepreload" href="/assets/chunks/framework.BcrMLAmg.js">
<link rel="modulepreload" href="/assets/guides_xml.md.B1D982bR.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-b5b7c530><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b536c28a></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b536c28a>Skip to content</a><!--]--><!----><header class="VPNav" data-v-b5b7c530 data-v-0ce7e391><div class="VPNavBar" data-v-0ce7e391 data-v-38b43c88><div class="wrapper" data-v-38b43c88><div class="container" data-v-38b43c88><div class="title" data-v-38b43c88><div class="VPNavBarTitle has-sidebar" data-v-38b43c88 data-v-51d97674><a class="title" href="/" data-v-51d97674><!--[--><!--]--><!----><span data-v-51d97674>Basalt</span><!--[--><!--]--></a></div></div><div class="content" data-v-38b43c88><div class="content-body" data-v-38b43c88><!--[--><!--]--><div class="VPNavBarSearch search" data-v-38b43c88><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-38b43c88 data-v-3bae7f51><span id="main-nav-aria-label" class="visually-hidden" data-v-3bae7f51> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/home.html" tabindex="0" data-v-3bae7f51 data-v-882ca747><!--[--><span data-v-882ca747>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/references/main.html" tabindex="0" data-v-3bae7f51 data-v-882ca747><!--[--><span data-v-882ca747>References</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guides/getting-started.html" tabindex="0" data-v-3bae7f51 data-v-882ca747><!--[--><span data-v-882ca747>Guides</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-38b43c88 data-v-f1f155db><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-f1f155db data-v-315f452a data-v-2d23a436><span class="check" data-v-2d23a436><span class="icon" data-v-2d23a436><!--[--><span class="vpi-sun sun" data-v-315f452a></span><span class="vpi-moon moon" data-v-315f452a></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-38b43c88 data-v-de4bac3c data-v-14893731><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Pyroxenium/Basalt2" aria-label="github" target="_blank" rel="noopener" data-v-14893731 data-v-553c008f><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-38b43c88 data-v-166848a9 data-v-51ca15d6><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-51ca15d6><span class="vpi-more-horizontal icon" data-v-51ca15d6></span></button><div class="menu" data-v-51ca15d6><div class="VPMenu" data-v-51ca15d6 data-v-439b3679><!----><!--[--><!--[--><!----><div class="group" data-v-166848a9><div class="item appearance" data-v-166848a9><p class="label" data-v-166848a9>Appearance</p><div class="appearance-action" data-v-166848a9><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-166848a9 data-v-315f452a data-v-2d23a436><span class="check" data-v-2d23a436><span class="icon" data-v-2d23a436><!--[--><span class="vpi-sun sun" data-v-315f452a></span><span class="vpi-moon moon" data-v-315f452a></span><!--]--></span></span></button></div></div></div><div class="group" data-v-166848a9><div class="item social-links" data-v-166848a9><div class="VPSocialLinks social-links-list" data-v-166848a9 data-v-14893731><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Pyroxenium/Basalt2" aria-label="github" target="_blank" rel="noopener" data-v-14893731 data-v-553c008f><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-38b43c88 data-v-9baed5a1><span class="container" data-v-9baed5a1><span class="top" data-v-9baed5a1></span><span class="middle" data-v-9baed5a1></span><span class="bottom" data-v-9baed5a1></span></span></button></div></div></div></div><div class="divider" data-v-38b43c88><div class="divider-line" data-v-38b43c88></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-b5b7c530 data-v-1857b1b5><div class="container" data-v-1857b1b5><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-1857b1b5><span class="vpi-align-left menu-icon" data-v-1857b1b5></span><span class="menu-text" data-v-1857b1b5>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-1857b1b5 data-v-2db5f472><button data-v-2db5f472>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-b5b7c530 data-v-3970ffc3><div class="curtain" data-v-3970ffc3></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-3970ffc3><span class="visually-hidden" id="sidebar-aria-label" data-v-3970ffc3> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-d8f3949d><section class="VPSidebarItem level-0 has-active" data-v-d8f3949d data-v-4b3db82e><!----><div class="items" data-v-4b3db82e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/getting-started.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Getting started</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/download.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Download</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/annotations.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Annotations</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/animations.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Animations</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/benchmarks.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Benchmark</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/canvas.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Canvas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/properties.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>Properties</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/states.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>States</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/xml.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>XML</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4b3db82e data-v-4b3db82e><div class="item" data-v-4b3db82e><div class="indicator" data-v-4b3db82e></div><a class="VPLink link link" href="/guides/faq.html" data-v-4b3db82e><!--[--><p class="text" data-v-4b3db82e>FAQ</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b5b7c530 data-v-3fc3255f><div class="VPDoc has-sidebar has-aside" data-v-3fc3255f data-v-198c11d4><!--[--><!--]--><div class="container" data-v-198c11d4><div class="aside" data-v-198c11d4><div class="aside-curtain" data-v-198c11d4></div><div class="aside-container" data-v-198c11d4><div class="aside-content" data-v-198c11d4><div class="VPDocAside" data-v-198c11d4 data-v-61e471f5><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-61e471f5 data-v-64e4012d><div class="content" data-v-64e4012d><div class="outline-marker" data-v-64e4012d></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-64e4012d>On this page</div><ul class="VPDocOutlineItem root" data-v-64e4012d data-v-e882245c><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-61e471f5></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-198c11d4><div class="content-container" data-v-198c11d4><!--[--><!--]--><main class="main" data-v-198c11d4><div style="position:relative;" class="vp-doc _guides_xml" data-v-198c11d4><div><h1 id="xml-in-basalt" tabindex="-1">XML in Basalt <a class="header-anchor" href="#xml-in-basalt" aria-label="Permalink to &quot;XML in Basalt&quot;"></a></h1><p>Basalt provides an XML parser that lets you define your UI layout in a declarative way. This can make your code more readable and maintainable.</p><h2 id="basic-usage" tabindex="-1">Basic Usage <a class="header-anchor" href="#basic-usage" aria-label="Permalink to &quot;Basic Usage&quot;"></a></h2><div class="language-lua vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">lua</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">local</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> main </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> basalt.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">getMainFrame</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">-- Load from file</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">local</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> xmlFile </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> fs.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">open</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;myUI.xml&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;r&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">loadXML</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(xmlFile.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">readAll</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">())</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">xmlFile.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">close</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">-- Or directly as string</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">loadXML</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">[[</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;frame width=&quot;30&quot; height=&quot;10&quot;&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;button text=&quot;Click me!&quot; x=&quot;2&quot; y=&quot;2&quot;/&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;/frame&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">]]</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div><h2 id="working-with-variables" tabindex="-1">Working with Variables <a class="header-anchor" href="#working-with-variables" aria-label="Permalink to &quot;Working with Variables&quot;"></a></h2><p>The XML parser uses a scope system to access variables and functions. Any variables you want to use in your XML must be passed in the scope:</p><div class="language-lua vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">lua</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">local</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> scope </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> title </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;My App&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> buttonWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> handleClick</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">setText</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Clicked!&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> end</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">loadXML</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">[[</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;frame&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;label text=&quot;${title}&quot;/&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;button width=&quot;${buttonWidth}&quot; onClick=&quot;handleClick&quot;/&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;/frame&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">]]</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, scope)</span></span></code></pre></div><h2 id="event-handlers" tabindex="-1">Event Handlers <a class="header-anchor" href="#event-handlers" aria-label="Permalink to &quot;Event Handlers&quot;"></a></h2><p>There are two ways to define event handlers:</p><h3 id="_1-reference-a-function-in-scope" tabindex="-1">1. Reference a Function in Scope <a class="header-anchor" href="#_1-reference-a-function-in-scope" aria-label="Permalink to &quot;1. Reference a Function in Scope&quot;"></a></h3><div class="language-lua vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">lua</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">local</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> scope </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> btnClick</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">setText</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Clicked!&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> end</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">loadXML</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">[[</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;button onClick=&quot;btnClick&quot;/&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">]]</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, scope)</span></span></code></pre></div><h3 id="_2-using-cdata-sections" tabindex="-1">2. Using CDATA Sections <a class="header-anchor" href="#_2-using-cdata-sections" aria-label="Permalink to &quot;2. Using CDATA Sections&quot;"></a></h3><div class="language-xml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">button</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">onClick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;![CDATA[</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> function(self)</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> self:setText(&quot;Clicked!&quot;)</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> end</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ]]&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">onClick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">button</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span></code></pre></div><h2 id="property-types" tabindex="-1">Property Types <a class="header-anchor" href="#property-types" aria-label="Permalink to &quot;Property Types&quot;"></a></h2><p>The XML parser automatically converts values based on the property type:</p><div class="language-xml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">button</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> x</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;5&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;!-- Converted to number --&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> visible=&quot;true&quot; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">&lt;!-- Converted to boolean --&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> background=&quot;blue&quot; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">&lt;!-- Converted to colors.blue --&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> text=&quot;${title}&quot; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">&lt;!-- Evaluated from scope --&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">/&gt;</span></span></code></pre></div><h2 id="important-notes" tabindex="-1">Important Notes <a class="header-anchor" href="#important-notes" aria-label="Permalink to &quot;Important Notes&quot;"></a></h2><ol><li><p><strong>Scope Variables</strong></p><ul><li>All variables must be defined in the scope</li><li>Functions referenced in events must be in scope</li><li>Global variables are not automatically available</li></ul></li><li><p><strong>Event Handlers</strong></p><ul><li>Always use CDATA for inline functions</li><li>Function references must match exactly</li><li>Events are case-sensitive</li></ul></li><li><p><strong>Expressions</strong></p><ul><li>Use <code>${...}</code> for scope access</li><li>Expressions have access to scope variables</li><li>Complex logic should be in Lua code</li></ul></li></ol><h2 id="example-with-multiple-features" tabindex="-1">Example with Multiple Features <a class="header-anchor" href="#example-with-multiple-features" aria-label="Permalink to &quot;Example with Multiple Features&quot;"></a></h2><div class="language-lua vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">lua</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">local</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> scope </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> appTitle </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;My App&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> colors </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> colors,</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> handleSubmit</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self)</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> -- handle submission</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> end</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">local</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> xmlFile </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> fs.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">open</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;example.xml&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;r&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">loadXML</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(xmlFile.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">readAll</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(), scope)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">xmlFile.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">close</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span></code></pre></div><div class="language-xml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">frame</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> background</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;${colors.gray}&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">label</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> x</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;2&quot;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;2&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> text</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;${appTitle}&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> /&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">button</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> x</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;2&quot;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;4&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> text</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Submit&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> onClick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;handleSubmit&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> /&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">button</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> x</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;2&quot;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;6&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">onClick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;![CDATA[</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> function(self)</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> self:getParent():remove()</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> end</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ]]&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">onClick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">button</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">frame</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-198c11d4 data-v-78905fa9><!--[--><!--]--><div class="edit-info" data-v-78905fa9><div class="edit-link" data-v-78905fa9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/Pyroxenium/Basalt2/tree/gh-pages/docs/guides/xml.md" target="_blank" rel="noreferrer" data-v-78905fa9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-78905fa9></span> Edit this page<!--]--></a></div><div class="last-updated" data-v-78905fa9><p class="VPLastUpdated" data-v-78905fa9 data-v-1eab325e>Last updated: <time datetime="2025-02-25T09:02:16.000Z" data-v-1eab325e></time></p></div></div><!----></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b5b7c530 data-v-8cfc7cf0><div class="container" data-v-8cfc7cf0><p class="message" data-v-8cfc7cf0>Released under the MIT License.</p><p class="copyright" data-v-8cfc7cf0>Copyright © 2025 Robert Jelic</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guides_animations.md\":\"CWGc-sFu\",\"guides_annotations.md\":\"B9rGAklD\",\"guides_benchmarks.md\":\"DWPH8xOg\",\"guides_canvas.md\":\"DjxHKY8y\",\"guides_download.md\":\"BHnOqBnJ\",\"guides_faq.md\":\"BbnMxGO7\",\"guides_getting-started.md\":\"OFYtfl43\",\"guides_properties.md\":\"Ch51Ay8n\",\"guides_reactive.md\":\"DFOvn3Jj\",\"guides_states.md\":\"BPpxw-fO\",\"guides_textwrapping.md\":\"CAHnm2Kx\",\"guides_xml.md\":\"B1D982bR\",\"home.md\":\"DdCmc0TU\",\"index.md\":\"nO0QWAqX\",\"readme.md\":\"DpIKKjI7\",\"references_elementmanager.md\":\"Czz04YVx\",\"references_elements_barchart.md\":\"DcXufBqP\",\"references_elements_baseelement.md\":\"IKIYvunC\",\"references_elements_baseframe.md\":\"BS0njfUD\",\"references_elements_bigfont.md\":\"CZkXELsh\",\"references_elements_button.md\":\"D4wvAEI6\",\"references_elements_checkbox.md\":\"BHiutniT\",\"references_elements_combobox.md\":\"DB1XZzak\",\"references_elements_container.md\":\"Bu9GmB7K\",\"references_elements_display.md\":\"BBVeviUS\",\"references_elements_dropdown.md\":\"CLiKBMat\",\"references_elements_flexbox.md\":\"CXxdycVd\",\"references_elements_frame.md\":\"BHwJRA0j\",\"references_elements_graph.md\":\"BSdy3rdb\",\"references_elements_image.md\":\"DX4dD3KH\",\"references_elements_input.md\":\"CtLO4CZx\",\"references_elements_label.md\":\"BNTEOAwR\",\"references_elements_linechart.md\":\"dqyqJ6aw\",\"references_elements_list.md\":\"D_iohd15\",\"references_elements_menu.md\":\"Bu8HagrJ\",\"references_elements_program.md\":\"CjDymnGi\",\"references_elements_progressbar.md\":\"AuFavRDY\",\"references_elements_scrollbar.md\":\"CnvFtd8A\",\"references_elements_slider.md\":\"DEzHZMvV\",\"references_elements_switch.md\":\"BxnrWwTy\",\"references_elements_tabcontrol.md\":\"DASGOoF_\",\"references_elements_table.md\":\"DxPxVHw5\",\"references_elements_textbox.md\":\"BO98sZYp\",\"references_elements_timer.md\":\"BkLMAH1t\",\"references_elements_tree.md\":\"CqNNHuQK\",\"references_elements_visualelement.md\":\"Db7-ADNI\",\"references_errormanager.md\":\"BR8--Q-6\",\"references_init.md\":\"BiEDtpNj\",\"references_libraries_colorhex.md\":\"C-Jpf93D\",\"references_libraries_expect.md\":\"BcD8hTQ-\",\"references_libraries_utils.md\":\"DP_gYXO9\",\"references_log.md\":\"CTN7NLnt\",\"references_main.md\":\"_6xfbQ0_\",\"references_plugins_animation.md\":\"C_6MYDTS\",\"references_plugins_benchmark.md\":\"CXI96GZx\",\"references_plugins_canvas.md\":\"sHH8fIy3\",\"references_plugins_debug.md\":\"C_GRxWNd\",\"references_plugins_reactive.md\":\"BO7pJdWJ\",\"references_plugins_state.md\":\"CJO2PXLv\",\"references_plugins_theme.md\":\"CBY3Ji3c\",\"references_plugins_xml.md\":\"CV_69ZSm\",\"references_propertysystem.md\":\"CqfhTYTO\",\"references_render.md\":\"CbkFjoxm\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Basalt\",\"description\":\"A UI Framework made for CC:Tweaked\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"editLink\":{\"pattern\":\"https://github.com/Pyroxenium/Basalt2/tree/gh-pages/docs/:path\"},\"search\":{\"provider\":\"local\"},\"outline\":2,\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2025 Robert Jelic\"},\"nav\":[{\"text\":\"Home\",\"link\":\"/home\"},{\"text\":\"References\",\"link\":\"/references/main\"},{\"text\":\"Guides\",\"link\":\"/guides/getting-started\"}],\"docFooter\":{\"prev\":false,\"next\":false},\"sidebar\":{\"/guides/\":[{\"text\":\"Getting started\",\"link\":\"/guides/getting-started\"},{\"text\":\"Download\",\"link\":\"/guides/download\"},{\"text\":\"Annotations\",\"link\":\"/guides/annotations\"},{\"text\":\"Animations\",\"link\":\"/guides/animations\"},{\"text\":\"Benchmark\",\"link\":\"/guides/benchmarks\"},{\"text\":\"Canvas\",\"link\":\"guides/canvas\"},{\"text\":\"Properties\",\"link\":\"/guides/properties\"},{\"text\":\"States\",\"link\":\"/guides/states\"},{\"text\":\"XML\",\"link\":\"/guides/xml\"},{\"text\":\"FAQ\",\"link\":\"/guides/faq\"}],\"/references/\":[{\"text\":\"Basalt\",\"link\":\"references/main\",\"collapsed\":true,\"items\":[{\"text\":\"ElementManager\",\"link\":\"references/elementManager\"},{\"text\":\"ErrorManager\",\"link\":\"references/errorManager\"},{\"text\":\"Log\",\"link\":\"references/log\"},{\"text\":\"PropertySystem\",\"link\":\"references/propertySystem\"},{\"text\":\"Render\",\"link\":\"references/render\"}]},{\"text\":\"Element\",\"link\":\"references/elements/BaseElement\",\"collapsed\":false,\"items\":[{\"text\":\"VisualElement\",\"link\":\"references/elements/VisualElement\",\"collapsed\":false,\"items\":[{\"text\":\"BigFont\",\"link\":\"references/elements/BigFont\"},{\"text\":\"Button\",\"link\":\"references/elements/Button\"},{\"text\":\"CheckBox\",\"link\":\"references/elements/CheckBox\"},{\"text\":\"Container\",\"link\":\"references/elements/Container\",\"collapsed\":true,\"items\":[{\"text\":\"BaseFrame\",\"link\":\"references/elements/BaseFrame\"},{\"text\":\"Frame\",\"link\":\"references/elements/Frame\"},{\"text\":\"TabControl\",\"link\":\"references/elements/TabControl\"}]},{\"text\":\"Display\",\"link\":\"references/elements/Display\"},{\"text\":\"Graph\",\"link\":\"references/elements/Graph\",\"collapsed\":true,\"items\":[{\"text\":\"BarChart\",\"link\":\"references/elements/BarChart\"},{\"text\":\"LineChart\",\"link\":\"references/elements/LineChart\"}]},{\"text\":\"Image\",\"link\":\"references/elements/Image\"},{\"text\":\"Input\",\"link\":\"references/elements/Input\"},{\"text\":\"Label\",\"link\":\"references/elements/Label\"},{\"text\":\"List\",\"link\":\"references/elements/List\",\"collapsed\":true,\"items\":[{\"text\":\"DropDown\",\"link\":\"references/elements/DropDown\"},{\"text\":\"Menu\",\"link\":\"references/elements/Menu\"}]},{\"text\":\"ProgressBar\",\"link\":\"references/elements/ProgressBar\"},{\"text\":\"Program\",\"link\":\"references/elements/Program\"},{\"text\":\"ScrollBar\",\"link\":\"references/elements/ScrollBar\"},{\"text\":\"Slider\",\"link\":\"references/elements/Slider\"},{\"text\":\"Switch\",\"link\":\"references/elements/Switch\"},{\"text\":\"Table\",\"link\":\"references/elements/Table\"},{\"text\":\"TextBox\",\"link\":\"references/elements/TextBox\"},{\"text\":\"Tree\",\"link\":\"references/elements/Tree\"}]}]},{\"text\":\"plugins\",\"link\":\"references/plugins\",\"collapsed\":false,\"items\":[{\"text\":\"Animations\",\"link\":\"references/plugins/animation\"},{\"text\":\"Benchmark\",\"link\":\"references/plugins/benchmark\"},{\"text\":\"Debug\",\"link\":\"references/plugins/debug\"},{\"text\":\"Reactive\",\"link\":\"references/plugins/reactive\"},{\"text\":\"State\",\"link\":\"references/plugins/state\"},{\"text\":\"Text Wrapping\",\"link\":\"references/plugins/textWrapping\"},{\"text\":\"Theme\",\"link\":\"references/plugins/theme\"},{\"text\":\"Xml\",\"link\":\"references/plugins/xml\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Pyroxenium/Basalt2\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>