Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ kept so existing scripts fail loudly (Refs #56)

==== Added

* PixiUI: rename extern type `List` → `UiList` so `use PixiUI` typechecks
against prelude `List<T>` (kind mismatch). Harness actually imports
`smokeIdaptikReach` / Assets mock. Smokes compile + run (Refs #760)
* Pixi/UI/Sound idaptik-reached remainder (#760): Graphics
circle/stroke/roundRect/path, per-axis Container x/y, parent Option,
interactiveChildren, ObservablePoint.set, Texture.WHITE, Assets
Expand Down
8 changes: 4 additions & 4 deletions stdlib/PixiUI.affine
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ pub extern fn pixiUiSwitchAsContainer(sw: Switch) -> Container;
// ── ProgressBar / List / Input (#56 gap-fill) ──────────────────────

pub extern type ProgressBar;
pub extern type List;
pub extern type UiList;
pub extern type Input;

/// `new PixiUI.ProgressBar(options)`.
Expand All @@ -129,10 +129,10 @@ pub extern fn pixiUiProgressBarNew(options: Json) -> ProgressBar;
pub extern fn pixiUiProgressBarAsContainer(p: ProgressBar) -> Container;

/// `new PixiUI.List(options)`.
pub extern fn pixiUiListNew(options: Json) -> List;
pub extern fn pixiUiListNew(options: Json) -> UiList;

/// Upcast List → Container. Zero-cost identity lowering.
pub extern fn pixiUiListAsContainer(l: List) -> Container;
pub extern fn pixiUiListAsContainer(l: UiList) -> Container;

/// `new PixiUI.Input(options)`.
pub extern fn pixiUiInputNew(options: Json) -> Input;
Expand Down Expand Up @@ -163,7 +163,7 @@ pub extern fn pixiUiSliderSetValue(s: Slider, v: Float) -> Int;
pub extern fn pixiUiSliderAddChild(s: Slider, child: Json) -> Int;

/// `list.addChild(child)`.
pub extern fn pixiUiListAddChild(l: List, child: Json) -> Int;
pub extern fn pixiUiListAddChild(l: UiList, child: Json) -> Int;

/// `input.value` getter/setter + enter/change signals.
pub extern fn pixiUiInputValue(i: Input) -> String;
Expand Down
19 changes: 17 additions & 2 deletions tests/codegen-deno/pixi_smoke.harness.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,21 @@ class MockApplication {
constructor() {
this.stage = new MockContainer();
this.canvas = { tagName: "CANVAS" };
this.ticker = { add() {}, start() {}, stop() {} };
this.ticker = { deltaTime: 1.5, add() {}, start() {}, stop() {}, remove() {} };
this.renderer = {
width: 800,
height: 600,
resize(w, h) { this.width = w; this.height = h; operationsLog.push("rendererResize"); },
};
}
async init(options) { initCalls.push(options); }
destroy() { operationsLog.push("appDestroy"); }
}

const assetInits = [];
const bundles = [];
const bgBundles = [];

globalThis.__as_pixi = {
Application: MockApplication,
Container: MockContainer,
Expand All @@ -136,11 +145,17 @@ globalThis.__as_pixi = {
BlurFilter: MockBlurFilter,
NineSliceSprite: MockNineSliceSprite,
Texture: {
WHITE: { __mockTexture: true, url: "WHITE" },
from(url) { textureUrls.push(url); return { __mockTexture: true, url }; },
},
Assets: {
async init(options) { assetInits.push(options); },
async loadBundle(name) { bundles.push(name); },
backgroundLoadBundle(names) { bgBundles.push(...names); },
},
};

const { smokeInit, smokeSpriteFlow, smokeGraphicsFlow, smokeAccessorsFlow, smokeGapFill } = await import("./pixi_smoke.bun.js");
const { smokeInit, smokeSpriteFlow, smokeGraphicsFlow, smokeAccessorsFlow, smokeGapFill, smokeIdaptikReach, smokeAssets } = await import("./pixi_smoke.bun.js");

// Async init returns an Application after `await app.init(options)`
const app = await smokeInit({ width: 800, height: 600, backgroundColor: 0x1099bb });
Expand Down
2 changes: 1 addition & 1 deletion tests/codegen-deno/pixiui_smoke.affine
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// registration, and upcast → Container for each MVP component.

use Deno::{Json};
use PixiUI::{Button, FancyButton, Slider, Switch, Container, Input, List, ProgressBar, pixiUiButtonNew, pixiUiButtonOnPress, pixiUiButtonAsContainer, pixiUiFancyButtonNew, pixiUiFancyButtonAsContainer, pixiUiFancyButtonOnPress, pixiUiFancyButtonOnDown, pixiUiFancyButtonOnHover, pixiUiSliderNew, pixiUiSliderOnUpdate, pixiUiSliderAsContainer, pixiUiSliderSetValue, pixiUiSliderValue, pixiUiSliderAddChild, pixiUiSwitchNew, pixiUiSwitchOnChange, pixiUiSwitchAsContainer, pixiUiProgressBarNew, pixiUiProgressBarAsContainer, pixiUiProgressBarSetProgress, pixiUiProgressBarProgress, pixiUiListNew, pixiUiListAsContainer, pixiUiListAddChild, pixiUiInputNew, pixiUiInputAsContainer, pixiUiInputValue, pixiUiInputSetValue, pixiUiInputOnEnter, pixiUiInputOnChange};
use PixiUI::{Button, FancyButton, Slider, Switch, Container, Input, ProgressBar, pixiUiButtonNew, pixiUiButtonOnPress, pixiUiButtonAsContainer, pixiUiFancyButtonNew, pixiUiFancyButtonAsContainer, pixiUiFancyButtonOnPress, pixiUiFancyButtonOnDown, pixiUiFancyButtonOnHover, pixiUiSliderNew, pixiUiSliderOnUpdate, pixiUiSliderAsContainer, pixiUiSliderSetValue, pixiUiSliderValue, pixiUiSliderAddChild, pixiUiSwitchNew, pixiUiSwitchOnChange, pixiUiSwitchAsContainer, pixiUiProgressBarNew, pixiUiProgressBarAsContainer, pixiUiProgressBarSetProgress, pixiUiProgressBarProgress, pixiUiListNew, pixiUiListAsContainer, pixiUiListAddChild, pixiUiInputNew, pixiUiInputAsContainer, pixiUiInputValue, pixiUiInputSetValue, pixiUiInputOnEnter, pixiUiInputOnChange};

pub fn smokeButton(options: Json, callback: Json) -> Container {
let b = pixiUiButtonNew(options);
Expand Down
Loading