Convert all uses of (integer-in 0 255) to `byte?'.
original commit: 18883681a29b49af5f6f63af4c8d20bb00f8117e
This commit is contained in:
parent
ca4c89c03f
commit
1758287144
|
@ -843,7 +843,7 @@ for b3, we have:
|
||||||
[argb->bitmap (argb? . -> . (or/c #f (is-a?/c bitmap%)))]
|
[argb->bitmap (argb? . -> . (or/c #f (is-a?/c bitmap%)))]
|
||||||
|
|
||||||
[argb? (any/c . -> . boolean?)]
|
[argb? (any/c . -> . boolean?)]
|
||||||
[make-argb ((vectorof (integer-in 0 255)) exact-nonnegative-integer? exact-nonnegative-integer? . -> . argb?)]
|
[make-argb ((vectorof byte?) exact-nonnegative-integer? exact-nonnegative-integer? . -> . argb?)]
|
||||||
[argb-vector (argb? . -> . (vectorof (integer-in 0 255)))]
|
[argb-vector (argb? . -> . (vectorof byte?))]
|
||||||
[argb-width (argb? . -> . exact-nonnegative-integer?)]
|
[argb-width (argb? . -> . exact-nonnegative-integer?)]
|
||||||
[argb-height (argb? . -> . exact-nonnegative-integer?)])
|
[argb-height (argb? . -> . exact-nonnegative-integer?)])
|
||||||
|
|
|
@ -107,23 +107,23 @@ exactly match alpha channels.}}
|
||||||
This snipclass is used for saved cache image snips.}
|
This snipclass is used for saved cache image snips.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(make-argb [vectorof (integer-in 0 255)]
|
@defproc[(make-argb [vectorof byte?]
|
||||||
[width exact-nonnegative-integer?]
|
[width exact-nonnegative-integer?]
|
||||||
[height exact-nonnegative-integer?])
|
[height exact-nonnegative-integer?])
|
||||||
argb?]{
|
argb?]{
|
||||||
|
|
||||||
Constructs a new argb value with the given width and height,
|
Constructs a new argb value with the given width and height,
|
||||||
using the data in the vector. The vector has four entries
|
using the data in the vector. The vector has four entries
|
||||||
for each pixel, an alpha, red, green, and blue value.
|
for each pixel, an alpha, red, green, and blue value.
|
||||||
The pixels are specified in row-major order, so that the
|
The pixels are specified in row-major order, so that the
|
||||||
pixel at location (x,y) comes from vector entry (4*(x+(width*y))).
|
pixel at location (x,y) comes from vector entry (4*(x+(width*y))).
|
||||||
}
|
}
|
||||||
|
|
||||||
@defproc[(argb-vector [argb argb?]) (vectorof (integer-in 0 255))]{
|
@defproc[(argb-vector [argb argb?]) (vectorof byte?)]{
|
||||||
|
|
||||||
Extracts the vector from @racket[argb]. The resulting vector
|
Extracts the vector from @racket[argb]. The resulting vector
|
||||||
has entries in row-major order, so that the data for the pixel
|
has entries in row-major order, so that the data for the pixel
|
||||||
at (x,y) winds up in four vector entries beginning at
|
at (x,y) winds up in four vector entries beginning at
|
||||||
(4*(x+(width*y))).}
|
(4*(x+(width*y))).}
|
||||||
|
|
||||||
@defproc[(argb-width [argb argb?]) exact-nonnegative-integer?]{
|
@defproc[(argb-width [argb argb?]) exact-nonnegative-integer?]{
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
@defclass/title[style-delta% object% ()]{
|
@defclass/title[style-delta% object% ()]{
|
||||||
|
|
||||||
A @racket[style-delta%] object encapsulates a style change. The changes expressible
|
A @racket[style-delta%] object encapsulates a style change. The changes
|
||||||
by a delta include:
|
expressible by a delta include:
|
||||||
@itemize[
|
@itemize[
|
||||||
@item{changing the font family}
|
@item{changing the font family}
|
||||||
@item{changing the font face}
|
@item{changing the font face}
|
||||||
|
@ -86,7 +86,8 @@ The possible values for @racket[underlined-on] and @racket[underlined-off] are:
|
||||||
@item{@racket[#t]}
|
@item{@racket[#t]}
|
||||||
]
|
]
|
||||||
|
|
||||||
The possible values for @racket[size-in-pixels-on] and @racket[size-in-pixels-off] are:
|
The possible values for @racket[size-in-pixels-on] and
|
||||||
|
@racket[size-in-pixels-off] are:
|
||||||
@itemize[
|
@itemize[
|
||||||
@item{@racket[#f] (acts like @racket['base])}
|
@item{@racket[#f] (acts like @racket['base])}
|
||||||
@item{@racket[#t]}
|
@item{@racket[#t]}
|
||||||
|
@ -127,35 +128,32 @@ The family and face settings in a style delta are interdependent:
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@defconstructor*/make[(([change-command (or/c 'change-nothing
|
||||||
|
'change-normal
|
||||||
@defconstructor*/make[(([change-command (or/c 'change-nothing
|
'change-toggle-underline
|
||||||
'change-normal
|
'change-toggle-size-in-pixels
|
||||||
'change-toggle-underline
|
'change-normal-color
|
||||||
'change-toggle-size-in-pixels
|
'change-bold)
|
||||||
'change-normal-color
|
|
||||||
'change-bold)
|
|
||||||
'change-nothing])
|
'change-nothing])
|
||||||
([change-command (or/c 'change-family
|
([change-command (or/c 'change-family
|
||||||
'change-style
|
'change-style
|
||||||
'change-toggle-style
|
'change-toggle-style
|
||||||
'change-weight
|
'change-weight
|
||||||
'change-toggle-weight
|
'change-toggle-weight
|
||||||
'change-smoothing
|
'change-smoothing
|
||||||
'change-toggle-smoothing
|
'change-toggle-smoothing
|
||||||
'change-alignment)]
|
'change-alignment)]
|
||||||
[v symbol])
|
[v symbol])
|
||||||
([change-command (or/c 'change-size
|
([change-command (or/c 'change-size
|
||||||
'change-bigger
|
'change-bigger
|
||||||
'change-smaller)]
|
'change-smaller)]
|
||||||
[v (integer-in 0 255)])
|
[v byte?])
|
||||||
([change-command (or/c 'change-underline
|
([change-command (or/c 'change-underline
|
||||||
'change-size-in-pixels)]
|
'change-size-in-pixels)]
|
||||||
[v any/c]))]{
|
[v any/c]))]{
|
||||||
|
|
||||||
The initialization arguments are passed on to
|
The initialization arguments are passed on to
|
||||||
@method[style-delta% set-delta].
|
@method[style-delta% set-delta].
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -170,37 +168,20 @@ Tries to collapse into a single delta the changes that would be made
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(copy [delta (is-a?/c style-delta%)])
|
@defmethod[(copy [delta (is-a?/c style-delta%)]) void?]{
|
||||||
void?]{
|
Copies the given style delta's settings into this one.}
|
||||||
|
|
||||||
Copies the given style delta's settings into this one.
|
@defmethod[(equal? [delta (is-a?/c style-delta%)]) boolean?]{
|
||||||
|
Returns @racket[#t] if the given delta is equivalent to this one in
|
||||||
|
all contexts or @racket[#f] otherwise.}
|
||||||
|
|
||||||
}
|
@defmethod[(get-alignment-off) (or/c 'base 'top 'center 'bottom)]{
|
||||||
|
See @racket[style-delta%].}
|
||||||
|
|
||||||
@defmethod[(equal? [delta (is-a?/c style-delta%)])
|
@defmethod[(get-alignment-on) (or/c 'base 'top 'center 'bottom)]{
|
||||||
boolean?]{
|
See @racket[style-delta%].}
|
||||||
|
|
||||||
Returns @racket[#t] if the given delta is equivalent to this one in
|
@defmethod[(get-background-add) (is-a?/c add-color<%>)]{
|
||||||
all contexts or @racket[#f] otherwise.
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-alignment-off)
|
|
||||||
(or/c 'base 'top 'center 'bottom)]{
|
|
||||||
|
|
||||||
See @racket[style-delta%].
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-alignment-on)
|
|
||||||
(or/c 'base 'top 'center 'bottom)]{
|
|
||||||
|
|
||||||
See @racket[style-delta%].
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-background-add)
|
|
||||||
(is-a?/c add-color<%>)]{
|
|
||||||
|
|
||||||
Gets the object additive color shift for the background (applied after
|
Gets the object additive color shift for the background (applied after
|
||||||
the multiplicative factor). Call this @racket[add-color<%>] object's
|
the multiplicative factor). Call this @racket[add-color<%>] object's
|
||||||
|
@ -248,13 +229,11 @@ Returns the delta's font family. The possible values are
|
||||||
@item{@indexed-racket['system] (used to draw control labels)}
|
@item{@indexed-racket['system] (used to draw control labels)}
|
||||||
]
|
]
|
||||||
|
|
||||||
See also
|
See also @method[style-delta% get-face].
|
||||||
@method[style-delta% get-face].
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(get-foreground-add)
|
@defmethod[(get-foreground-add) (is-a?/c add-color<%>)]{
|
||||||
(is-a?/c add-color<%>)]{
|
|
||||||
|
|
||||||
Gets the additive color shift for the foreground (applied after the
|
Gets the additive color shift for the foreground (applied after the
|
||||||
multiplicative factor). Call this @racket[add-color<%>] object's
|
multiplicative factor). Call this @racket[add-color<%>] object's
|
||||||
|
@ -272,120 +251,86 @@ Gets the multiplicative color shift for the foreground (applied before
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(get-size-add)
|
@defmethod[(get-size-add) byte?]{
|
||||||
(integer-in 0 255)]{
|
Gets the additive font size shift (applied after the multiplicative factor).}
|
||||||
|
|
||||||
Gets the additive font size shift (applied after the multiplicative factor).
|
@defmethod[(get-size-in-pixels-off) boolean?]{
|
||||||
|
See @racket[style-delta%].}
|
||||||
|
|
||||||
}
|
@defmethod[(get-size-in-pixels-on) boolean?]{
|
||||||
|
See @racket[style-delta%].}
|
||||||
|
|
||||||
@defmethod[(get-size-in-pixels-off)
|
@defmethod[(get-size-mult) real?]{
|
||||||
boolean?]{
|
Gets the multiplicative font size shift (applied before the additive factor).}
|
||||||
|
|
||||||
See @racket[style-delta%].
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-size-in-pixels-on)
|
|
||||||
boolean?]{
|
|
||||||
|
|
||||||
See @racket[style-delta%].
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-size-mult)
|
|
||||||
real?]{
|
|
||||||
|
|
||||||
Gets the multiplicative font size shift (applied before the additive factor).
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-smoothing-off)
|
@defmethod[(get-smoothing-off)
|
||||||
(or/c 'base 'default 'partly-smoothed 'smoothed 'unsmoothed)]{
|
(or/c 'base 'default 'partly-smoothed 'smoothed 'unsmoothed)]{
|
||||||
|
See @racket[style-delta%].
|
||||||
See @racket[style-delta%].
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(get-smoothing-on)
|
@defmethod[(get-smoothing-on)
|
||||||
(or/c 'base 'default 'partly-smoothed 'smoothed 'unsmoothed)]{See
|
(or/c 'base 'default 'partly-smoothed 'smoothed 'unsmoothed)]{See
|
||||||
@racket[style-delta%].
|
@racket[style-delta%].
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(get-style-off)
|
@defmethod[(get-style-off)
|
||||||
(or/c 'base 'normal 'italic 'slant)]{See
|
(or/c 'base 'normal 'italic 'slant)]{See
|
||||||
@racket[style-delta%].
|
@racket[style-delta%].
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(get-style-on)
|
@defmethod[(get-style-on) (or/c 'base 'normal 'italic 'slant)]{
|
||||||
(or/c 'base 'normal 'italic 'slant)]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-transparent-text-backing-off)
|
@defmethod[(get-transparent-text-backing-off) boolean?]{
|
||||||
boolean?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-transparent-text-backing-on)
|
@defmethod[(get-transparent-text-backing-on) boolean?]{
|
||||||
boolean?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-underlined-off)
|
@defmethod[(get-underlined-off)
|
||||||
boolean?]{See
|
boolean?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-underlined-on)
|
@defmethod[(get-underlined-on)
|
||||||
boolean?]{See
|
boolean?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-weight-off)
|
@defmethod[(get-weight-off) (or/c 'base 'normal 'bold 'light)]{
|
||||||
(or/c 'base 'normal 'bold 'light)]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-weight-on)
|
@defmethod[(get-weight-on) (or/c 'base 'normal 'bold 'light)]{
|
||||||
(or/c 'base 'normal 'bold 'light)]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-alignment-off [v (or/c 'base 'top 'center 'bottom)])
|
@defmethod[(set-alignment-off [v (or/c 'base 'top 'center 'bottom)]) void?]{
|
||||||
void?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-alignment-on [v (or/c 'base 'top 'center 'bottom)])
|
@defmethod[(set-alignment-on [v (or/c 'base 'top 'center 'bottom)]) void?]{
|
||||||
void?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod*[([(set-delta [change-command (or/c 'change-nothing
|
@defmethod*[([(set-delta [change-command (or/c 'change-nothing
|
||||||
'change-normal
|
'change-normal
|
||||||
'change-toggle-underline
|
'change-toggle-underline
|
||||||
'change-toggle-size-in-pixels
|
'change-toggle-size-in-pixels
|
||||||
'change-normal-color
|
'change-normal-color
|
||||||
'change-bold)
|
'change-bold)
|
||||||
'change-nothing])
|
'change-nothing])
|
||||||
(is-a?/c style-delta%)]
|
(is-a?/c style-delta%)]
|
||||||
[(set-delta [change-command (or/c 'change-family
|
[(set-delta [change-command (or/c 'change-family
|
||||||
'change-style
|
'change-style
|
||||||
'change-toggle-style
|
'change-toggle-style
|
||||||
'change-weight
|
'change-weight
|
||||||
'change-toggle-weight
|
'change-toggle-weight
|
||||||
'change-smoothing
|
'change-smoothing
|
||||||
'change-toggle-smoothing
|
'change-toggle-smoothing
|
||||||
'change-alignment)]
|
'change-alignment)]
|
||||||
[param symbol])
|
[param symbol])
|
||||||
(is-a?/c style-delta%)]
|
(is-a?/c style-delta%)]
|
||||||
[(set-delta [change-command (or/c 'change-size
|
[(set-delta [change-command (or/c 'change-size
|
||||||
'change-bigger
|
'change-bigger
|
||||||
'change-smaller)]
|
'change-smaller)]
|
||||||
[param (integer-in 0 255)])
|
[param byte?])
|
||||||
(is-a?/c style-delta%)]
|
(is-a?/c style-delta%)]
|
||||||
[(set-delta [change-command (or/c 'change-underline
|
[(set-delta [change-command (or/c 'change-underline
|
||||||
'change-size-in-pixels)]
|
'change-size-in-pixels)]
|
||||||
[on? any/c])
|
[on? any/c])
|
||||||
(is-a?/c style-delta%)])]{
|
(is-a?/c style-delta%)])]{
|
||||||
|
@ -455,7 +400,7 @@ For the case that a string color name is supplied, see
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(set-delta-face [name string?]
|
@defmethod[(set-delta-face [name string?]
|
||||||
[family (or/c 'base 'default 'decorative 'roman
|
[family (or/c 'base 'default 'decorative 'roman
|
||||||
'script 'swiss 'modern 'symbol 'system)
|
'script 'swiss 'modern 'symbol 'system)
|
||||||
'default])
|
'default])
|
||||||
(is-a?/c style-delta%)]{
|
(is-a?/c style-delta%)]{
|
||||||
|
@ -493,7 +438,7 @@ For the case that a string color name is supplied, see
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(set-family [v (or/c 'base 'default 'decorative 'roman 'script
|
@defmethod[(set-family [v (or/c 'base 'default 'decorative 'roman 'script
|
||||||
'swiss 'modern 'symbol 'system)])
|
'swiss 'modern 'symbol 'system)])
|
||||||
void?]{
|
void?]{
|
||||||
Sets the delta's font family. See
|
Sets the delta's font family. See
|
||||||
|
@ -501,72 +446,57 @@ Sets the delta's font family. See
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(set-size-add [v (integer-in 0 255)])
|
@defmethod[(set-size-add [v byte?]) void?]{
|
||||||
void?]{Sets the additive font size shift (applied
|
Sets the additive font size shift (applied
|
||||||
after the multiplicative factor).
|
after the multiplicative factor).}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-size-in-pixels-off [v any/c])
|
@defmethod[(set-size-in-pixels-off [v any/c]) void?]{
|
||||||
void?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-size-in-pixels-on [v any/c])
|
@defmethod[(set-size-in-pixels-on [v any/c]) void?]{
|
||||||
void?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-size-mult [v real?])
|
@defmethod[(set-size-mult [v real?]) void?]{
|
||||||
void?]{Sets the multiplicative font size shift (applied
|
Sets the multiplicative font size shift (applied before the additive factor).}
|
||||||
before the additive factor).
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-smoothing-off [v (or/c 'base 'default 'partly-smoothed 'smoothed 'unsmoothed)])
|
@defmethod[(set-smoothing-off [v (or/c 'base 'default 'partly-smoothed
|
||||||
void?]{See
|
'smoothed 'unsmoothed)])
|
||||||
@racket[style-delta%].
|
void?]{
|
||||||
}
|
See @racket[style-delta%].}
|
||||||
|
|
||||||
@defmethod[(set-smoothing-on [v (or/c 'base 'default 'partly-smoothed 'smoothed 'unsmoothed)])
|
@defmethod[(set-smoothing-on [v (or/c 'base 'default 'partly-smoothed
|
||||||
void?]{See
|
'smoothed 'unsmoothed)])
|
||||||
@racket[style-delta%].
|
void?]{
|
||||||
}
|
See @racket[style-delta%].}
|
||||||
|
|
||||||
@defmethod[(set-style-off [v (or/c 'base 'normal 'italic 'slant)])
|
@defmethod[(set-style-off [v (or/c 'base 'normal 'italic 'slant)])
|
||||||
void?]{See
|
void?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-style-on [v (or/c 'base 'normal 'italic 'slant)])
|
@defmethod[(set-style-on [v (or/c 'base 'normal 'italic 'slant)])
|
||||||
void?]{See
|
void?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-transparent-text-backing-off [v any/c])
|
@defmethod[(set-transparent-text-backing-off [v any/c])
|
||||||
void?]{See
|
void?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-transparent-text-backing-on [v any/c])
|
@defmethod[(set-transparent-text-backing-on [v any/c]) void?]{
|
||||||
void?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-underlined-off [v any/c])
|
@defmethod[(set-underlined-off [v any/c]) void?]{
|
||||||
void?]{See
|
See @racket[style-delta%].}
|
||||||
@racket[style-delta%].
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-underlined-on [v any/c])
|
@defmethod[(set-underlined-on [v any/c])
|
||||||
void?]{See
|
void?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-weight-off [v (or/c 'base 'normal 'bold 'light)])
|
@defmethod[(set-weight-off [v (or/c 'base 'normal 'bold 'light)])
|
||||||
void?]{See
|
void?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(set-weight-on [v (or/c 'base 'normal 'bold 'light)])
|
@defmethod[(set-weight-on [v (or/c 'base 'normal 'bold 'light)])
|
||||||
void?]{See
|
void?]{
|
||||||
@racket[style-delta%].
|
See @racket[style-delta%].}
|
||||||
}}
|
|
||||||
|
}
|
||||||
|
|
|
@ -91,12 +91,8 @@ Returns the style's shift style if it is a join style. Otherwise, the
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(get-size)
|
@defmethod[(get-size) byte?]{
|
||||||
(integer-in 0 255)]{
|
Returns the style's font size.}
|
||||||
|
|
||||||
Returns the style's font size.
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@defmethod[(get-size-in-pixels)
|
@defmethod[(get-size-in-pixels)
|
||||||
boolean?]{
|
boolean?]{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user