From 9bc743fd124c4abbd15043a65bd5b9b1b59f6aa4 Mon Sep 17 00:00:00 2001 From: Stowy Date: Thu, 2 Jan 2025 23:36:49 +0100 Subject: [PATCH] Added missing procedures --- bindings/jai/clay-jai/windows/clay.lib | Bin 294086 -> 294086 bytes bindings/jai/generate.jai | 4 + bindings/jai/module.jai | 97 +++++++++++++++++++++++-- bindings/jai/windows.jai | 68 ----------------- 4 files changed, 94 insertions(+), 75 deletions(-) diff --git a/bindings/jai/clay-jai/windows/clay.lib b/bindings/jai/clay-jai/windows/clay.lib index 90974cd6236673c7672f0697d4c02e5bffd640de..1a31aeabc6f46413d6b96b01ea53206a9808a8e1 100644 GIT binary patch delta 33 mcmX^1Q}EbN!3~=VnRtbpw-mN-DP#m String { clay_string := String.{cast(u64, str.count), str.data}; return clay_string; @@ -94,6 +109,73 @@ Scroll :: (config: ScrollElementConfig) -> TypedConfig { return .{type = .SCROLL_CONTAINER, config = _StoreScrollElementConfig(config)}; } +Image :: (config: ImageElementConfig) -> TypedConfig { + return .{type = .IMAGE, config = _StoreImageElementConfig(config)}; +} + +Custom :: (config: CustomElementConfig) -> TypedConfig { + return .{type = .CUSTOM, config = _StoreCustomElementConfig(config)}; +} + +Border :: (config: BorderElementConfig) -> TypedConfig { + return .{type = .BORDER, _StoreBorderElementConfig(config)}; +} + +BorderOutside :: (outside_borders: BorderData) -> TypedConfig { + return .{ + type = .BORDER, + config = _StoreBorderElementConfig(BorderElementConfig.{ + left = outside_borders, + right = outside_borders, + top = outside_borders, + bottom = outside_borders, + }), + }; +} + +BorderOutsideRadius :: (outside_borders: BorderData, radius: float) -> TypedConfig { + return .{ + type = .BORDER, + config = _StoreBorderElementConfig(.{ + left = outside_borders, + right = outside_borders, + top = outside_borders, + bottom = outside_borders, + cornerRadius = .{radius, radius, radius, radius}, + }) + }; +} + +BorderAll :: (all_borders: BorderData) -> TypedConfig { + return .{ + type = .BORDER, + config = _StoreBorderElementConfig(.{ + left = all_borders, + right = all_borders, + top = all_borders, + bottom = all_borders, + betweenChildren = all_borders, + }) + }; +} + +BorderAllRadius :: (all_borders: BorderData, radius: float) -> TypedConfig { + return .{ + type = .BORDER, + config = _StoreBorderElementConfig(.{ + left = all_borders, + right = all_borders, + top = all_borders, + bottom = all_borders, + cornerRadius = .{radius, radius, radius, radius}, + }) + }; +} + +CornerRadiusAll :: (radius: float) -> CornerRadius { + return .{radius, radius, radius, radius}; +} + Text :: (text: string, config: *TextElementConfig) { _OpenTextElement(make_string(text), config); } @@ -102,6 +184,10 @@ TextConfig :: (config: TextElementConfig) -> *TextElementConfig { return _StoreTextElementConfig(config); } +SizingFit :: (size_min_max: SizingMinMax) -> SizingAxis { + return .{type = .FIT, size = .{minMax = size_min_max}}; +} + SizingGrow :: (size_min_max: SizingMinMax = .{}) -> SizingAxis { return .{type = .GROW, size = .{minMax = size_min_max}}; } @@ -110,17 +196,14 @@ SizingFixed :: (size: float) -> SizingAxis { return .{type = .FIXED, size = .{minMax = .{size, size}}}; } +SizingPercent :: (size_percent: float) -> SizingAxis { + return .{type = .PERCENT, size = .{percent = size_percent}}; +} + GetElementId :: (str: string) -> ElementId { return GetElementId(make_string(str)); } -// OnHover :: (onHoverFunction: #type (elementId: ElementId, pointerData: PointerData, userData: s64) -> void #c_call, userData: s64) -> TypedConfig { -// OnHover(onHoverFunction, userData); -// return TypedConfig.{ -// type = .NONE, -// }; -// } - #scope_module Math :: #import "Math"; diff --git a/bindings/jai/windows.jai b/bindings/jai/windows.jai index 5d20671..c5d1211 100644 --- a/bindings/jai/windows.jai +++ b/bindings/jai/windows.jai @@ -367,30 +367,6 @@ _AlignClay_ScrollElementConfig :: struct { x: ScrollElementConfig; } -// Border -Border :: struct { - width: u32; - color: Color; -} -_AlignClay_Border :: struct { - c: u8; - // Border - x: Border; -} - -BorderElementConfig :: struct { - left: Border; - right: Border; - top: Border; - bottom: Border; - betweenChildren: Border; - cornerRadius: CornerRadius; -} -_AlignClay_BorderElementConfig :: struct { - c: u8; - x: BorderElementConfig; -} - ElementConfigUnion :: union { rectangleElementConfig: *RectangleElementConfig; textElementConfig: *TextElementConfig; @@ -1118,50 +1094,6 @@ clay :: #library,no_dll "clay-jai/windows/clay"; assert(size_of(_AlignClay_ScrollElementConfig) == 3, "_AlignClay_ScrollElementConfig has size % instead of 3", size_of(_AlignClay_ScrollElementConfig)); } - { - instance: Border; - assert(((cast(*void)(*instance.width)) - cast(*void)(*instance)) == 0, "Border.width has unexpected offset % instead of 0", ((cast(*void)(*instance.width)) - cast(*void)(*instance))); - assert(size_of(type_of(Border.width)) == 4, "Border.width has unexpected size % instead of 4", size_of(type_of(Border.width))); - assert(((cast(*void)(*instance.color)) - cast(*void)(*instance)) == 4, "Border.color has unexpected offset % instead of 4", ((cast(*void)(*instance.color)) - cast(*void)(*instance))); - assert(size_of(type_of(Border.color)) == 16, "Border.color has unexpected size % instead of 16", size_of(type_of(Border.color))); - assert(size_of(Border) == 20, "Border has size % instead of 20", size_of(Border)); - } - - { - instance: _AlignClay_Border; - assert(((cast(*void)(*instance.c)) - cast(*void)(*instance)) == 0, "_AlignClay_Border.c has unexpected offset % instead of 0", ((cast(*void)(*instance.c)) - cast(*void)(*instance))); - assert(size_of(type_of(_AlignClay_Border.c)) == 1, "_AlignClay_Border.c has unexpected size % instead of 1", size_of(type_of(_AlignClay_Border.c))); - assert(((cast(*void)(*instance.x)) - cast(*void)(*instance)) == 4, "_AlignClay_Border.x has unexpected offset % instead of 4", ((cast(*void)(*instance.x)) - cast(*void)(*instance))); - assert(size_of(type_of(_AlignClay_Border.x)) == 20, "_AlignClay_Border.x has unexpected size % instead of 20", size_of(type_of(_AlignClay_Border.x))); - assert(size_of(_AlignClay_Border) == 24, "_AlignClay_Border has size % instead of 24", size_of(_AlignClay_Border)); - } - - { - instance: BorderElementConfig; - assert(((cast(*void)(*instance.left)) - cast(*void)(*instance)) == 0, "BorderElementConfig.left has unexpected offset % instead of 0", ((cast(*void)(*instance.left)) - cast(*void)(*instance))); - assert(size_of(type_of(BorderElementConfig.left)) == 20, "BorderElementConfig.left has unexpected size % instead of 20", size_of(type_of(BorderElementConfig.left))); - assert(((cast(*void)(*instance.right)) - cast(*void)(*instance)) == 20, "BorderElementConfig.right has unexpected offset % instead of 20", ((cast(*void)(*instance.right)) - cast(*void)(*instance))); - assert(size_of(type_of(BorderElementConfig.right)) == 20, "BorderElementConfig.right has unexpected size % instead of 20", size_of(type_of(BorderElementConfig.right))); - assert(((cast(*void)(*instance.top)) - cast(*void)(*instance)) == 40, "BorderElementConfig.top has unexpected offset % instead of 40", ((cast(*void)(*instance.top)) - cast(*void)(*instance))); - assert(size_of(type_of(BorderElementConfig.top)) == 20, "BorderElementConfig.top has unexpected size % instead of 20", size_of(type_of(BorderElementConfig.top))); - assert(((cast(*void)(*instance.bottom)) - cast(*void)(*instance)) == 60, "BorderElementConfig.bottom has unexpected offset % instead of 60", ((cast(*void)(*instance.bottom)) - cast(*void)(*instance))); - assert(size_of(type_of(BorderElementConfig.bottom)) == 20, "BorderElementConfig.bottom has unexpected size % instead of 20", size_of(type_of(BorderElementConfig.bottom))); - assert(((cast(*void)(*instance.betweenChildren)) - cast(*void)(*instance)) == 80, "BorderElementConfig.betweenChildren has unexpected offset % instead of 80", ((cast(*void)(*instance.betweenChildren)) - cast(*void)(*instance))); - assert(size_of(type_of(BorderElementConfig.betweenChildren)) == 20, "BorderElementConfig.betweenChildren has unexpected size % instead of 20", size_of(type_of(BorderElementConfig.betweenChildren))); - assert(((cast(*void)(*instance.cornerRadius)) - cast(*void)(*instance)) == 100, "BorderElementConfig.cornerRadius has unexpected offset % instead of 100", ((cast(*void)(*instance.cornerRadius)) - cast(*void)(*instance))); - assert(size_of(type_of(BorderElementConfig.cornerRadius)) == 16, "BorderElementConfig.cornerRadius has unexpected size % instead of 16", size_of(type_of(BorderElementConfig.cornerRadius))); - assert(size_of(BorderElementConfig) == 116, "BorderElementConfig has size % instead of 116", size_of(BorderElementConfig)); - } - - { - instance: _AlignClay_BorderElementConfig; - assert(((cast(*void)(*instance.c)) - cast(*void)(*instance)) == 0, "_AlignClay_BorderElementConfig.c has unexpected offset % instead of 0", ((cast(*void)(*instance.c)) - cast(*void)(*instance))); - assert(size_of(type_of(_AlignClay_BorderElementConfig.c)) == 1, "_AlignClay_BorderElementConfig.c has unexpected size % instead of 1", size_of(type_of(_AlignClay_BorderElementConfig.c))); - assert(((cast(*void)(*instance.x)) - cast(*void)(*instance)) == 4, "_AlignClay_BorderElementConfig.x has unexpected offset % instead of 4", ((cast(*void)(*instance.x)) - cast(*void)(*instance))); - assert(size_of(type_of(_AlignClay_BorderElementConfig.x)) == 116, "_AlignClay_BorderElementConfig.x has unexpected size % instead of 116", size_of(type_of(_AlignClay_BorderElementConfig.x))); - assert(size_of(_AlignClay_BorderElementConfig) == 120, "_AlignClay_BorderElementConfig has size % instead of 120", size_of(_AlignClay_BorderElementConfig)); - } - { instance: ElementConfigUnion; assert(((cast(*void)(*instance.rectangleElementConfig)) - cast(*void)(*instance)) == 0, "ElementConfigUnion.rectangleElementConfig has unexpected offset % instead of 0", ((cast(*void)(*instance.rectangleElementConfig)) - cast(*void)(*instance)));