diff --git a/.gitignore b/.gitignore index c4b76d2..61d6e1b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ node_modules event/ build/ reference/ -src/*/*.md +src/**/*.md QWEN.md diff --git a/devenv.nix b/devenv.nix index 54a9730..ed78bce 100644 --- a/devenv.nix +++ b/devenv.nix @@ -5,6 +5,7 @@ pnpm craftos-pc qwen-code + gemini-cli ]; # https://devenv.sh/languages/ diff --git a/src/lib/ccTUI/Button.ts b/src/lib/ccTUI/Button.ts index 4ef80d0..938f8e8 100644 --- a/src/lib/ccTUI/Button.ts +++ b/src/lib/ccTUI/Button.ts @@ -1,5 +1,5 @@ import { UIComponent } from "./UIComponent"; -import { Signal } from "./signal"; +import { Signal } from "./Signal"; import { KeyEvent } from "../event"; /** diff --git a/src/lib/ccTUI/InputField.ts b/src/lib/ccTUI/InputField.ts index 50f91a8..ce397ea 100644 --- a/src/lib/ccTUI/InputField.ts +++ b/src/lib/ccTUI/InputField.ts @@ -1,5 +1,5 @@ import { UIComponent } from "./UIComponent"; -import { Signal } from "./signal"; +import { Signal } from "./Signal"; import { KeyEvent, CharEvent } from "../event"; /** diff --git a/src/lib/ccTUI/OptionSelector.ts b/src/lib/ccTUI/OptionSelector.ts index da5b460..a2ffd54 100644 --- a/src/lib/ccTUI/OptionSelector.ts +++ b/src/lib/ccTUI/OptionSelector.ts @@ -1,5 +1,5 @@ import { UIComponent } from "./UIComponent"; -import { Signal } from "./signal"; +import { Signal } from "./Signal"; import { KeyEvent } from "../event"; /** diff --git a/src/lib/ccTUI/TabWidget.ts b/src/lib/ccTUI/TabBar.ts similarity index 99% rename from src/lib/ccTUI/TabWidget.ts rename to src/lib/ccTUI/TabBar.ts index 0163909..bb3271f 100644 --- a/src/lib/ccTUI/TabWidget.ts +++ b/src/lib/ccTUI/TabBar.ts @@ -1,12 +1,12 @@ import { UIComponent } from "./UIComponent"; -import { Signal } from "./signal"; +import { Signal } from "./Signal"; import { KeyEvent } from "../event"; /** * Tab component that allows switching between different pages * Similar to QT's TabWidget, currently implementing horizontal tabs only */ -export class TabWidget extends UIComponent { +export class TabBar extends UIComponent { // Tab data structure - simple array of tab names private tabs: string[]; private currentIndex: number; diff --git a/src/lib/ccTUI/UIComponent.ts b/src/lib/ccTUI/UIComponent.ts index ed349de..0e6f200 100644 --- a/src/lib/ccTUI/UIComponent.ts +++ b/src/lib/ccTUI/UIComponent.ts @@ -1,4 +1,4 @@ -import { Signal } from "./signal"; +import { Signal } from "./Signal"; import { KeyEvent, CharEvent, TimerEvent } from "../event"; import { UIObject } from "./UIObject"; /** diff --git a/src/lib/ccTUI/index.ts b/src/lib/ccTUI/index.ts index 78a5a52..a17edd9 100644 --- a/src/lib/ccTUI/index.ts +++ b/src/lib/ccTUI/index.ts @@ -4,13 +4,13 @@ * Provides input/output, option selection and keyboard event handling */ -import { Signal } from "./signal"; +import { Signal } from "./Signal"; import { UIObject } from "./UIObject"; import { UIComponent } from "./UIComponent"; import { TextLabel } from "./TextLabel"; import { InputField } from "./InputField"; import { OptionSelector } from "./OptionSelector"; -import { TabWidget } from "./TabWidget"; +import { TabBar } from "./TabBar"; import { UIWindow } from "./UIWindow"; import { TUIApplication } from "./TUIApplication"; import { Button } from "./Button"; @@ -23,7 +23,7 @@ export { TextLabel, InputField, OptionSelector, - TabWidget, + TabBar, UIWindow, TUIApplication, Button, diff --git a/src/tuiExample/main.ts b/src/tuiExample/main.ts index fe5e0e2..cff1769 100644 --- a/src/tuiExample/main.ts +++ b/src/tuiExample/main.ts @@ -7,7 +7,7 @@ import { TextLabel, InputField, OptionSelector, - TabWidget, + TabBar, Button, } from "../lib/ccTUI"; @@ -46,11 +46,27 @@ const optionSelector = new OptionSelector( const statusLabel = new TextLabel("LableStatus", 5, 11, "Status: Ready"); // Create a button -const button = new Button("ButtonSubmit", 5, 13, "Submit", colors.white, colors.blue); +const button = new Button( + "ButtonSubmit", + 5, + 13, + "Submit", + colors.white, + colors.blue, +); // Create tab widget with sample tabs - using longer tab names for testing -const tabNames = ["Home", "Settings", "User Profile", "Messages", "About Us", "Documentation", "Advanced Settings", "Account Management"]; -const tabWidget = new TabWidget("TabWidget", 5, 3, 50, tabNames, 0); +const tabNames = [ + "Home", + "Settings", + "User Profile", + "Messages", + "About Us", + "Documentation", + "Advanced Settings", + "Account Management", +]; +const tabBar = new TabBar("TabWidget", 5, 3, 50, tabNames, 0); // Add components to the application app.addComponent(title); @@ -60,10 +76,10 @@ app.addComponent(optionLabel); app.addComponent(optionSelector); app.addComponent(statusLabel); app.addComponent(button); -app.addComponent(tabWidget); +app.addComponent(tabBar); // Set focus to the input field initially -app.getWindow().setFocusFor(tabWidget); +app.getWindow().setFocusFor(tabBar); // Connect events optionSelector.onSelectionChanged.connect((data) => { @@ -80,7 +96,7 @@ inputField.onTextChanged.connect((value) => { } }); -tabWidget.onTabChanged.connect((data) => { +tabBar.onTabChanged.connect((data) => { statusLabel.setText( `Status: Tab changed to ${data?.name} (index: ${data?.index})`, ); @@ -89,7 +105,9 @@ tabWidget.onTabChanged.connect((data) => { button.onClick.connect(() => { const inputValue = inputField.getValue(); const selectedOption = optionSelector.getSelectedValue(); - statusLabel.setText(`Status: Submitted - Input: "${inputValue}", Option: "${selectedOption}"`); + statusLabel.setText( + `Status: Submitted - Input: "${inputValue}", Option: "${selectedOption}"`, + ); }); // Run the application