blockly > blockRendering > RenderInfo

کلاس blockRendering.RenderInfo

یک شی حاوی تمام اطلاعات اندازه مورد نیاز برای ترسیم این بلوک است.

این اندازه گیری تغییرات را در بلوک منتشر نمی کند (اگرچه ممکن است وقتی که getSize() فراخوانی می شود، فیلدها دوباره رندر شوند. با این حال، تماس مکرر با آن ممکن است گران باشد.

امضا:

export declare class RenderInfo 

سازندگان

سازنده اصلاح کننده ها توضیحات
(سازنده) (رندر، بلوک) یک نمونه جدید از کلاس RenderInfo می سازد

خواص

اموال اصلاح کننده ها تایپ کنید توضیحات
بلوک_ BlockSvg
ردیف پایین ردیف پایین
ثابت_ protected ConstantProvider
ارتفاع شماره ارتفاع بلوک رندر شده، از جمله بلوک های فرزند.
ردیف های ورودی ردیف ورودی [] آرایه ای از ردیف های ورودی در بلوک.
فرو ریخته است بولی
isInline بولی
isInsertionMarker است بولی
خروجی اتصال خروجی اتصال | تهی
ارائه دهنده_

protected

readonly

رندر رندر بلوک در حال استفاده است.
ردیف ها ردیف [] آرایه ای از اشیاء ردیف حاوی اطلاعات اندازه.
RTL بولی
startX شماره
شروع Y شماره
statementEdge شماره
ردیف بالا TopRow
عرض شماره عرض بلوک رندر شده، به استثنای بلوک های فرزند. این لبه سمت راست بلوک هنگام رندر LTR است.
عرض با کودکان شماره عرض بلوک رندر شده، از جمله بلوک های فرزند.

روش ها

روش اصلاح کننده ها توضیحات
addAlignmentPadding_(ردیف، missingSpace) protected ردیف داده شده را تغییر دهید تا مقدار مشخصی از padding در اطراف فیلدهای آن اضافه شود. مکان دقیق بالشتک بر اساس ویژگی تراز آخرین ورودی در فیلد است.
addElemSpacing_() protected فاصله افقی بین و اطراف عناصر را در هر ردیف اضافه کنید.
addInput_(ورودی، فعال ردیف) protected در صورت نیاز یک عنصر ورودی به سطر فعال اضافه کنید و نوع ورودی را روی ردیف ثبت کنید.
addRowSpacing_() protected فاصله بین ردیف ها را اضافه کنید و اندازه آنها را تنظیم کنید.
alignRowElements_() protected ممکن است فاصله اضافی لازم باشد تا مطمئن شوید که سمت راست همه ردیف‌ها در یک راستا قرار دارند. این فقط پس از اولین پاس برای محاسبه اندازه تمام ردیف ها قابل محاسبه است.
alignStatementRow_(ردیف) protected عناصر یک ردیف دستور را بر اساس کران های محاسبه شده تراز کنید. برخلاف سایر انواع ردیف‌ها، ردیف‌های بیانیه در مکان‌های متعددی فضا اضافه می‌کنند.
computeBounds_() protected محل قرارگیری لبه سمت راست بلوک و لبه سمت راست ورودی های عبارت را مشخص کنید.
createRows_() protected ردیف هایی از اشیاء قابل اندازه گیری ایجاد کنید که تمام بخش های قابل رندر بلوک را نشان می دهند.
finalize_() protected هر گونه تغییر نهایی را در شی اطلاعات رندر انجام دهید. به طور خاص، موقعیت y هر ردیف را ذخیره کنید و ارتفاع بلوک کامل را ثبت کنید.
getDesiredRowWidth_(_row) protected عرض مورد نظر یک ردیف ورودی را محاسبه کنید.
getElemCenterline_(ردیف، عنصر) protected خط مرکزی یک عنصر را در یک ردیف رندر شده محاسبه کنید. این پیاده سازی پایه، خط مرکزی را در وسط ردیف به صورت عمودی، بدون هیچ مورد خاصی قرار می دهد. احتمالاً برای مدیریت (حداقل) ردیف های بالا و پایین به منطق اضافی نیاز خواهید داشت.
getInRowSpacing_(قبلی، بعدی) protected عرض یک عنصر فاصله دهنده در یک ردیف را بر اساس عناصر قبلی و بعدی در آن ردیف محاسبه کنید. به عنوان مثال، بالشتک اضافی بین دو فیلد قابل ویرایش اضافه می شود.
getMeasureableForConnection(conn) اتصال قابل اندازه گیری مرتبط با اتصال داده شده را برمی گرداند.
getRenderer() رندر بلوک را در حال استفاده دریافت کنید.
getSpacerRowHeight_(_prev، _next) protected ارتفاع ردیف فاصله را محاسبه کنید.
getSpacerRowWidth_(_prev، _next) protected عرض یک ردیف فاصله را محاسبه کنید.
makeSpacerRow_(قبلی، بعدی) protected یک ردیف فاصله ایجاد کنید تا بین prev و next بروید و اندازه آن را تنظیم کنید.
اندازه گیری ()

این شی را با تمام اطلاعات اندازه مورد نیاز برای رسم بلوک پر کنید.

این اندازه‌گیری تغییرات را در بلوک منتشر نمی‌کند (اگرچه فیلدها ممکن است زمانی که getSize() فراخوانی می‌شوند، دوباره رندر شوند. با این حال، تماس مکرر با آن ممکن است گران باشد.

populateBottomRow_() protected همه عناصر بدون فاصله را که در ردیف پایین قرار دارند ایجاد کنید.
populateTopRow_() protected همه عناصر غیر فاصله‌دهنده را که در ردیف بالا قرار دارند ایجاد کنید.
recordElemPositions_(ردیف) protected اطلاعات موقعیت نهایی را روی عناصر در ردیف داده شده، برای استفاده در طراحی، ثبت کنید. حداقل این xPos و خط مرکزی روی هر عنصر را ثبت می کند.
shouldStartNewRow_(currInput، prevInput) protected تصمیم بگیرید که آیا یک ردیف جدید بین دو ورودی Blockly.Input شروع کنید یا خیر.