增加构建QScheme设置的构造函数。

This commit is contained in:
徐涛 2025-02-06 06:19:15 +08:00
parent 838f0c0fa0
commit 56a4786675
6 changed files with 93 additions and 21 deletions

View File

@ -13,6 +13,14 @@ pub struct ColorShifting {
pub lightness: f32, pub lightness: f32,
} }
#[wasm_bindgen]
impl ColorShifting {
#[wasm_bindgen(constructor)]
pub fn new(chroma: f32, lightness: f32) -> Self {
ColorShifting { chroma, lightness }
}
}
impl Mul<ColorShifting> for Oklch<f32> { impl Mul<ColorShifting> for Oklch<f32> {
type Output = Oklch<f32>; type Output = Oklch<f32>;
@ -143,3 +151,27 @@ impl Default for SchemeSetting {
} }
} }
} }
#[wasm_bindgen]
impl SchemeSetting {
#[wasm_bindgen(constructor)]
pub fn new(
hover: ColorShifting,
active: ColorShifting,
focus: ColorShifting,
disabled: ColorShifting,
dark_convert: ColorShifting,
expand_method: ColorExpand,
wacg_follows: WACGSetting,
) -> Self {
SchemeSetting {
hover,
active,
focus,
disabled,
dark_convert,
expand_method,
wacg_follows,
}
}
}

View File

@ -64,8 +64,8 @@ export enum WACGSetting {
AutomaticAAA = 2, AutomaticAAA = 2,
} }
export class ColorShifting { export class ColorShifting {
private constructor();
free(): void; free(): void;
constructor(chroma: number, lightness: number);
chroma: number; chroma: number;
lightness: number; lightness: number;
} }
@ -112,8 +112,8 @@ export class RGBDifference {
b: Differ; b: Differ;
} }
export class SchemeSetting { export class SchemeSetting {
private constructor();
free(): void; free(): void;
constructor(hover: ColorShifting, active: ColorShifting, focus: ColorShifting, disabled: ColorShifting, dark_convert: ColorShifting, expand_method: ColorExpand, wacg_follows: WACGSetting);
hover: ColorShifting; hover: ColorShifting;
active: ColorShifting; active: ColorShifting;
focus: ColorShifting; focus: ColorShifting;
@ -182,15 +182,6 @@ export interface InitOutput {
readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void;
readonly __wbg_get_hctdiffference_lightness: (a: number) => number; readonly __wbg_get_hctdiffference_lightness: (a: number) => number;
readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void;
readonly __wbg_mixreversing_free: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_r_factor: (a: number) => number;
readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_g_factor: (a: number) => number;
readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_b_factor: (a: number) => number;
readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_average: (a: number) => number;
readonly __wbg_set_mixreversing_average: (a: number, b: number) => void;
readonly color_categories: () => [number, number, number]; readonly color_categories: () => [number, number, number];
readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly __wbg_colorshifting_free: (a: number, b: number) => void; readonly __wbg_colorshifting_free: (a: number, b: number) => void;
@ -198,6 +189,7 @@ export interface InitOutput {
readonly __wbg_set_colorshifting_chroma: (a: number, b: number) => void; readonly __wbg_set_colorshifting_chroma: (a: number, b: number) => void;
readonly __wbg_get_colorshifting_lightness: (a: number) => number; readonly __wbg_get_colorshifting_lightness: (a: number) => number;
readonly __wbg_set_colorshifting_lightness: (a: number, b: number) => void; readonly __wbg_set_colorshifting_lightness: (a: number, b: number) => void;
readonly colorshifting_new: (a: number, b: number) => number;
readonly __wbg_schemesetting_free: (a: number, b: number) => void; readonly __wbg_schemesetting_free: (a: number, b: number) => void;
readonly __wbg_get_schemesetting_hover: (a: number) => number; readonly __wbg_get_schemesetting_hover: (a: number) => number;
readonly __wbg_set_schemesetting_hover: (a: number, b: number) => void; readonly __wbg_set_schemesetting_hover: (a: number, b: number) => void;
@ -213,11 +205,21 @@ export interface InitOutput {
readonly __wbg_set_schemesetting_expand_method: (a: number, b: number) => void; readonly __wbg_set_schemesetting_expand_method: (a: number, b: number) => void;
readonly __wbg_get_schemesetting_wacg_follows: (a: number) => number; readonly __wbg_get_schemesetting_wacg_follows: (a: number) => number;
readonly __wbg_set_schemesetting_wacg_follows: (a: number, b: number) => void; readonly __wbg_set_schemesetting_wacg_follows: (a: number, b: number) => void;
readonly schemesetting_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
readonly generate_material_design_3_scheme: (a: number, b: number, c: number, d: number, e: any) => [number, number, number]; readonly generate_material_design_3_scheme: (a: number, b: number, c: number, d: number, e: any) => [number, number, number];
readonly generate_material_design_2_scheme: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number]; readonly generate_material_design_2_scheme: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number];
readonly generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number]; readonly generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number];
readonly generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number]; readonly generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number];
readonly generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number]; readonly generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number];
readonly __wbg_mixreversing_free: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_r_factor: (a: number) => number;
readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_g_factor: (a: number) => number;
readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_b_factor: (a: number) => number;
readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_average: (a: number) => number;
readonly __wbg_set_mixreversing_average: (a: number, b: number) => void;
readonly __wbg_hsldifference_free: (a: number, b: number) => void; readonly __wbg_hsldifference_free: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_hue: (a: number) => number; readonly __wbg_get_hsldifference_hue: (a: number) => number;
readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void; readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void;

View File

@ -1261,6 +1261,16 @@ export class ColorShifting {
set lightness(arg0) { set lightness(arg0) {
wasm.__wbg_set_colorshifting_lightness(this.__wbg_ptr, arg0); wasm.__wbg_set_colorshifting_lightness(this.__wbg_ptr, arg0);
} }
/**
* @param {number} chroma
* @param {number} lightness
*/
constructor(chroma, lightness) {
const ret = wasm.colorshifting_new(chroma, lightness);
this.__wbg_ptr = ret >>> 0;
ColorShiftingFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const DifferFinalization = (typeof FinalizationRegistry === 'undefined') const DifferFinalization = (typeof FinalizationRegistry === 'undefined')
@ -1809,6 +1819,31 @@ export class SchemeSetting {
set wacg_follows(arg0) { set wacg_follows(arg0) {
wasm.__wbg_set_schemesetting_wacg_follows(this.__wbg_ptr, arg0); wasm.__wbg_set_schemesetting_wacg_follows(this.__wbg_ptr, arg0);
} }
/**
* @param {ColorShifting} hover
* @param {ColorShifting} active
* @param {ColorShifting} focus
* @param {ColorShifting} disabled
* @param {ColorShifting} dark_convert
* @param {ColorExpand} expand_method
* @param {WACGSetting} wacg_follows
*/
constructor(hover, active, focus, disabled, dark_convert, expand_method, wacg_follows) {
_assertClass(hover, ColorShifting);
var ptr0 = hover.__destroy_into_raw();
_assertClass(active, ColorShifting);
var ptr1 = active.__destroy_into_raw();
_assertClass(focus, ColorShifting);
var ptr2 = focus.__destroy_into_raw();
_assertClass(disabled, ColorShifting);
var ptr3 = disabled.__destroy_into_raw();
_assertClass(dark_convert, ColorShifting);
var ptr4 = dark_convert.__destroy_into_raw();
const ret = wasm.schemesetting_new(ptr0, ptr1, ptr2, ptr3, ptr4, expand_method, wacg_follows);
this.__wbg_ptr = ret >>> 0;
SchemeSettingFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const SwatchEntryFinalization = (typeof FinalizationRegistry === 'undefined') const SwatchEntryFinalization = (typeof FinalizationRegistry === 'undefined')

View File

@ -41,15 +41,6 @@ export const __wbg_get_hctdiffference_chroma: (a: number) => number;
export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void;
export const __wbg_get_hctdiffference_lightness: (a: number) => number; export const __wbg_get_hctdiffference_lightness: (a: number) => number;
export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void;
export const __wbg_mixreversing_free: (a: number, b: number) => void;
export const __wbg_get_mixreversing_r_factor: (a: number) => number;
export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_g_factor: (a: number) => number;
export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_b_factor: (a: number) => number;
export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_average: (a: number) => number;
export const __wbg_set_mixreversing_average: (a: number, b: number) => void;
export const color_categories: () => [number, number, number]; export const color_categories: () => [number, number, number];
export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number];
export const __wbg_colorshifting_free: (a: number, b: number) => void; export const __wbg_colorshifting_free: (a: number, b: number) => void;
@ -57,6 +48,7 @@ export const __wbg_get_colorshifting_chroma: (a: number) => number;
export const __wbg_set_colorshifting_chroma: (a: number, b: number) => void; export const __wbg_set_colorshifting_chroma: (a: number, b: number) => void;
export const __wbg_get_colorshifting_lightness: (a: number) => number; export const __wbg_get_colorshifting_lightness: (a: number) => number;
export const __wbg_set_colorshifting_lightness: (a: number, b: number) => void; export const __wbg_set_colorshifting_lightness: (a: number, b: number) => void;
export const colorshifting_new: (a: number, b: number) => number;
export const __wbg_schemesetting_free: (a: number, b: number) => void; export const __wbg_schemesetting_free: (a: number, b: number) => void;
export const __wbg_get_schemesetting_hover: (a: number) => number; export const __wbg_get_schemesetting_hover: (a: number) => number;
export const __wbg_set_schemesetting_hover: (a: number, b: number) => void; export const __wbg_set_schemesetting_hover: (a: number, b: number) => void;
@ -72,11 +64,21 @@ export const __wbg_get_schemesetting_expand_method: (a: number) => number;
export const __wbg_set_schemesetting_expand_method: (a: number, b: number) => void; export const __wbg_set_schemesetting_expand_method: (a: number, b: number) => void;
export const __wbg_get_schemesetting_wacg_follows: (a: number) => number; export const __wbg_get_schemesetting_wacg_follows: (a: number) => number;
export const __wbg_set_schemesetting_wacg_follows: (a: number, b: number) => void; export const __wbg_set_schemesetting_wacg_follows: (a: number, b: number) => void;
export const schemesetting_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
export const generate_material_design_3_scheme: (a: number, b: number, c: number, d: number, e: any) => [number, number, number]; export const generate_material_design_3_scheme: (a: number, b: number, c: number, d: number, e: any) => [number, number, number];
export const generate_material_design_2_scheme: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number]; export const generate_material_design_2_scheme: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number];
export const generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number]; export const generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number];
export const generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number]; export const generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number];
export const generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number]; export const generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number];
export const __wbg_mixreversing_free: (a: number, b: number) => void;
export const __wbg_get_mixreversing_r_factor: (a: number) => number;
export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_g_factor: (a: number) => number;
export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_b_factor: (a: number) => number;
export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_average: (a: number) => number;
export const __wbg_set_mixreversing_average: (a: number, b: number) => void;
export const __wbg_hsldifference_free: (a: number, b: number) => void; export const __wbg_hsldifference_free: (a: number, b: number) => void;
export const __wbg_get_hsldifference_hue: (a: number) => number; export const __wbg_get_hsldifference_hue: (a: number) => number;
export const __wbg_set_hsldifference_hue: (a: number, b: number) => void; export const __wbg_set_hsldifference_hue: (a: number, b: number) => void;

View File

@ -1,3 +1,4 @@
import { SchemeSetting } from './color_functions/color_module';
import { ColorShifting } from './models'; import { ColorShifting } from './models';
export type ColorSet = { export type ColorSet = {
@ -54,7 +55,7 @@ export type QSchemeSource = {
info: string | null; info: string | null;
foreground: string | null; foreground: string | null;
background: strin | nullg; background: strin | nullg;
setting: QSchemeSetting | null; setting: SchemeSetting | null;
}; };
export type QSchemeStorage = { export type QSchemeStorage = {