b.content.x - get property of ...structure|class|...
Виталий Фадеев
vital.fadeev at gmail.com
Tue Mar 17 09:58:19 UTC 2020
On Tuesday, 17 March 2020 at 09:31:21 UTC, Виталий Фадеев wrote:
> Main goal is: get content "xywh" from given rect and padding.
> Of course content.x is dynamic.
>
> //
> import core.sys.windows.windows;
> import std.stdio;
>
>
> class Base
> {
> RECT rect = { 0, 0, 500, 400 };
> RECT padding = { 10, 10, 10, 10 };
>
> // ...content...
> ??? content
> {
> @property int x() const { return rect.left +
> padding.left; }
> }
> }
>
> int main()
> {
> auto b = new Base();
> writeln( b.content.x );
> }
>
>
>
> How to implement "b.content.x" ( sequence call "content" of the
> "b" and then "x" of that ) ?
> How to implement beauty ?
Now working with this variant:
struct Content
{
Base This;
int left() { return This.rect.left + This.padding.left;
}
int right() { return This.rect.right -
This.padding.right; }
int top() { return This.rect.top + This.padding.top;
}
int bottom() { return This.rect.bottom -
This.padding.bottom; }
int x() { return left; }
int y() { return top; }
int w() { return right - left; }
int h() { return bottom - top; }
RECT rect() { return This.rect; }
}
class Base
{
RECT rect;
RECT padding;
Content content()
{
return Content( this );
}
}
More information about the Digitalmars-d-learn
mailing list