X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fflexui%2Ffui_common.pas;h=b53311e043688f0d54a3caa1d1a22553da232e22;hb=e4428a8db7c2b8d6889878e0634bce6964f9fe85;hp=744ddff1bd71de3c59974e8e70b34aac3e263c92;hpb=b4265979da0b4b264d3cd4685af9566d6ae37f2f;p=d2df-sdl.git diff --git a/src/flexui/fui_common.pas b/src/flexui/fui_common.pas index 744ddff..b53311e 100644 --- a/src/flexui/fui_common.pas +++ b/src/flexui/fui_common.pas @@ -86,6 +86,8 @@ type function isOpaque (): Boolean; inline; function isTransparent (): Boolean; inline; + function toString (): AnsiString; + // WARNING! This function does blending in RGB space, and RGB space is not linear! // alpha value of `self` doesn't matter // `aa` means: 255 for replace color, 0 for keep `self` @@ -102,6 +104,8 @@ type function empty (): Boolean; inline; // invalid rects are empty too function valid (): Boolean; inline; + function toString (): AnsiString; + // modifies this rect, so it won't be bigger than `r` // returns `false` if this rect becomes empty function intersect (constref r: TGxRect): Boolean; inline; @@ -195,6 +199,12 @@ begin result.a := a; end; +function TGxRGBA.toString (): AnsiString; +begin + if (a = 255) then result := formatstrf('rgb(%s,%s,%s)', [r, g, b]) + else result := formatstrf('rgba(%s,%s,%s,%s)', [r, g, b, a]); +end; + // ////////////////////////////////////////////////////////////////////////// // constructor TGxRect.Create (ax, ay, aw, ah: Integer); begin x := ax; y := ay; w := aw; h := ah; end; @@ -207,6 +217,8 @@ begin result := intersectRect(x, y, w, h, r.x, r.y, r.w, r.h); end; +function TGxRect.toString (): AnsiString; begin result := formatstrf('(%s,%s;%sx%s)', [x, y, w, h]); end; + // ////////////////////////////////////////////////////////////////////////// // constructor TGxOfs.Create (axofs, ayofs: Integer); begin xofs := axofs; yofs := ayofs; end;