واکنشی gui.reactive
ویژگیهای واکنشی برای رابط کاربری: پیوندهای تنبل با وابستگی خودکار، ردیاب، کنترلکنندهی تغییر، همبندی دوطرفه، گذار CSS و مدل فهرست.
واردسازی رابط گرافیکی.واکنشی
نام آرگومانها شناسهی خود کد است و معادل فارسی ندارد؛ گونهها، کلیدواژهها و نام بستهها با معادل فارسی نوشته میشوند.
واکنشی زمان اجرای وضعیت در رابط کاربری بومی سلام است و از سامانهی ویژگی Slint الگو گرفته است. هر مقداری که عوض میشود یک ویژگی است. ویژگی یا مقداری نگه میدارد یا پیوندی دارد، یعنی تابعی که آن را از ویژگیهای دیگر حساب میکند. خواندن یک ویژگی درون پیوند خودبهخود وابستگی ثبت میکند، پس چیزی را نباید اعلام کرد.
کار دو نیمه دارد. بنشان فقط مقایسه میکند، مقدار را میگذارد و وابستهها را کهنه میکند و در گرههای از پیش کهنه میایستد. آن لحظه چیزی حساب نمیشود: پیوند کهنه در خواندن بعدی اجرا میشود، وابستگیهای قبلی را فراموش میکند و وابستگیهای تازه را ثبت میکند، پس پیوندی که اگر دارد فقط به شاخهای که رفت وابسته است.
چند نکته:
- دستگیرهها مقدارهای کوچکاند.
ویژگیصحیح،ویژگیمتنیو بقیه شمارهای در زمان اجرا نگه میدارند، پس لامبدایی که یکی را با مقدار بگیرد باز هم ویژگی زنده را میبیند. ثابتی که باصحیح ثابتو مانندهایش ساخته شود مقدارش را در خود دستگیره دارد و در زمان اجرا هزینهای ندارد. - نشاندن ویژگی پیوندی پیوند را برمیدارد، همانطور که مقداردهی در Slint. برای مقداری که دو جا ویرایشش میکنند از
همبند کناستفاده کنید. - متن قاعدهی مالکیت دارد.
بخوانرویویژگیمتنیرشتهای برمیگرداند که مال ویژگی است و تا تغییر مقدار معتبر است.پیوندمالک رشتهی تازهای میشود که تابعش برمیگرداند؛پیوند رونوشتیآن را کپی میکند، برای متن ثابت و متن ویژگیهای دیگر. - کنترلکنندهی تغییر هرگز درون نشاندن اجرا نمیشود.
هنگام تغییرآن را صف میکند، حلقهی رویداداجرای کنترلکننده هارا صدا میزند و چند تغییر یک اجرا میدهد. - حلقهی پیوند گزارش میشود، با نام ویژگیها، مثلاً
binding loop: 'min width' -> 'preferred width' -> 'min width'، به جای سرریز پشته. بانام بدهویژگیها را نامگذاری کنید تا گزارش خوانا باشد. - زمان اجرا برای یک نخ است، نخ رابط کاربری. لامبدایی که متغیری را بگیرد محیطش را تا پایان برنامه نگه میدارد، پس پیوندهایی که برای هر سطر یک فهرست بلند ساخته میشوند بهتر است وضعیت سطح بسته را بخوانند تا اینکه چیزی بگیرند.
یک جزء شمارنده
جزئی که state count دارد به این تبدیل میشود. برچسب و پرچم wide پیوندهایی روی count هستند. یک ردیاب نمایندهی صفحه است: تابع کشیدن را اجرا میکند و تابع خبردهندهاش فقط یادداشت میکند که بازکشیدن لازم است. حلقه نقش حلقهی رویداد را دارد: یک کلیک را پاسخ میدهد، کنترلکنندهها را اجرا میکند و هر جا خواسته شد بازمیکشد. سه کلیک با یک پرش به ۱۰ چهار کشیدن و سه ذخیره میدهد.
واردسازی رابط گرافیکی.واکنشی
ناپایا count := واکنشی.ویژگیصحیح {}
ناپایا label := واکنشی.ویژگیمتنی {}
ناپایا wide := واکنشی.ویژگیمنطقی {}
ناپایا needs_paint := نادرست
تابع paint():
سرچاپ " paint:"، label.بخوان()، wide.بخوان() ? "(wide)" : ""
پایان
تابع click():
count.بنشان(count.نگاه() + 1)
پایان
تابع ریشه:
count = واکنشی.صحیح تازه(0).نام بده("count")
label = واکنشی.متن تازه("").نام بده("label")
label.پیوند((): برگشت "Count: " + count.بخوان() پایان)
wide = واکنشی.منطقی تازه(نادرست)
wide.پیوند((): برگشت count.بخوان() بزرگتربرابر 10 پایان)
screen := واکنشی.ردیابی((): paint() پایان، (): needs_paint = درست پایان)
saved := واکنشی.هنگام تغییر(count، (): سرچاپ " save"، count.بخوان() پایان)
تکرار 3 در frame:
click()
اگر frame برابر 2:
count.بنشان(10)
پایان
_n := واکنشی.اجرای کنترلکننده ها()
اگر needs_paint:
needs_paint = نادرست
_r := screen.تازه کن()
پایان
پایان
saved.آزاد کن()
screen.آزاد کن()
پایانگذار CSS هنگام رفتن نشانگر روی عنصر
ویژگی پویانما با گذر زمان به هر مقدار تازه میرود. اینجا پسزمینه پیوندی روی hovered است که با ease-in-out در ۳۰۰ میلیثانیه و برای هر کانال رنگ جدا پویانمایی میشود. هر فریم ساعت را با تنظیم زمان جلو میبرد؛ ویژگی پویانما فقط تا وقتی در حرکت است به ساعت وابسته است و پویانمایی جاری به حلقه میگوید کی میتواند کشیدن را بس کند.
واردسازی تبدیل
واردسازی رابط گرافیکی.واکنشی
ناپایا hovered := واکنشی.ویژگیمنطقی {}
ناپایا background := واکنشی.ویژگیصحیح {}
ناپایا dirty := نادرست
تابع show(ms: صحیح۶۴):
c := ((background.بخوان() برگردان صحیح۶۴) & 0xFFFFFFFF) برگردان طبیعی۶۴
سرچاپ " t"، ms، "background"، تبدیل.قالب شانزده(c)
پایان
تابع ریشه:
واکنشی.تنظیم زمان(0 برگردان صحیح۶۴)
hovered = واکنشی.منطقی تازه(نادرست)
background = واکنشی.صحیح تازه(0)
background.پیوند((): برگشت hovered.بخوان() ? 0xFF3366CC برگردان صحیح : 0xFFFFFFFF برگردان صحیح پایان)
background.پویانمایی(واکنشی.پویانماییویژگی { مدت = 300، نرمش = واکنشی.خواندن نرمش("ease-in-out"، واکنشی.نرمش عادی())، رنگی = درست })
screen := واکنشی.ردیابی((): _c := background.بخوان() پایان، (): dirty = درست پایان)
سرچاپ "pointer enters at 0 ms"
hovered.بنشان(درست)
ناپایا now := 0 برگردان صحیح۶۴
تا واکنشی.پویانمایی جاری() یا dirty:
اگر dirty:
dirty = نادرست
_r := screen.تازه کن()
show(now)
پایان
now += 100
واکنشی.تنظیم زمان(now)
پایان
سرچاپ "idle at"، now، "ms, running"، واکنشی.پویانمایی جاری()
screen.آزاد کن()
پایانگونهها
ردیاب Tracker
ساختار ردیاب| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی ردیاب در زمان اجرا. |
واردسازی رابط گرافیکی.واکنشی
ناپایا redraws := 0
تابع ریشه:
x := واکنشی.صحیح تازه(1)
y := واکنشی.صحیح تازه(2)
t := واکنشی.ردیابی((): سرچاپ " paint at"، x.بخوان()، y.بخوان() پایان، (): redraws++ پایان).نام بده("paint")
x.بنشان(10)
y.بنشان(20)
سرچاپ "dirty"، t.کهنه است()، "redraw requests"، redraws
سرچاپ "refreshed"، t.تازه کن()
سرچاپ "refresh with nothing new"، t.تازه کن()
واکنشی.آغاز دسته()
x.بنشان(3)
سرچاپ "in batch"، واکنشی.داخل دسته()، "requests"، redraws
y.بنشان(4)
واکنشی.اتمام دسته()
سرچاپ "after the batch"، redraws
_r := t.تازه کن()
واکنشی.دسته(():
x.بنشان(5)
y.بنشان(6)
پایان)
سرچاپ "after Batch"، redraws
_r2 := t.تازه کن()
t.آزاد کن()
پایانکهنه است IsDirty
تابع کهنه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
تازه کن Refresh
تابع تازه کن(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
نام بده Name
تابع نام بده(name: رشته): ردیابنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
آزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
کنترلکننده Handler
ساختار کنترلکنندههنگام تغییر ساخته است.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی کنترلکننده در زمان اجرا، یا -1 برای کنترلکنندهی یک ثابت که هرگز اجرا نمیشود. |
واردسازی رابط گرافیکی.واکنشی
تابع ریشه:
count := واکنشی.صحیح تازه(0)
title := واکنشی.متن تازه("")
title.پیوند((): برگشت "Count: " + count.بخوان() پایان)
h := واکنشی.هنگام تغییر(title، (): سرچاپ " title changed to"، title.بخوان() پایان)
count.بنشان(1)
count.بنشان(2)
count.بنشان(3)
سرچاپ "pending"، واکنشی.کنترلکننده های منتظر()
سرچاپ "handlers run"، واکنشی.اجرای کنترلکننده ها()
count.بنشان(3)
سرچاپ "same value"، واکنشی.اجرای کنترلکننده ها()
h.آزاد کن()
count.بنشان(4)
سرچاپ "after Free"، واکنشی.اجرای کنترلکننده ها()
پایانآزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
گونهنرمش EasingKind
جداشمار گونهنرمش| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| خطی | Linear | | پیشرفت با زمان متناسب است. |
| بزیه مکعبی | CubicBezier | | منحنی cubic-bezier() در CSS با ایکس یک، ایگرگ یک، ایکس دو و ایگرگ دو. |
| پله ای | Steps | | تابع steps() در CSS با شمار پله و جای پرش. |
واردسازی رابط گرافیکی.واکنشی
واردسازی ریاضی
تابع r3(v: اعشار۶۴): اعشار۶۴:
برگشت ریاضی.گردکردن(v * 1000.0) / 1000.0
پایان
تابع ریشه:
هر e در [واکنشی.نرمش خطی()، واکنشی.نرمش عادی()، واکنشی.نرمش ورود()، واکنشی.نرمش خروج()، واکنشی.نرمش ورود خروج()]:
سرچاپ r3(e.مقدار لحظه(0.25))، r3(e.مقدار لحظه(0.5))، r3(e.مقدار لحظه(0.75))
پایان
custom := واکنشی.نرمش بزیه(0.68، -0.6، 0.32، 1.6)
سرچاپ "custom"، r3(custom.مقدار لحظه(0.25))، r3(custom.مقدار لحظه(0.75))
s := واکنشی.نرمش پله ای(3، واکنشی.جایپله.پرش آغاز)
سرچاپ "steps"، s.مقدار لحظه(0.0)، r3(s.مقدار لحظه(0.5))، s.مقدار لحظه(1.0)
p := واکنشی.خواندن نرمش("cubic-bezier(0.1, 0.7, 1.0, 0.1)"، واکنشی.نرمش عادی())
سرچاپ "parsed"، p.گونه برابر واکنشی.گونهنرمش.بزیه مکعبی، p.ایکس یک، p.ایگرگ یک، p.ایکس دو، p.ایگرگ دو
q := واکنشی.خواندن نرمش("steps(5, jump-none)"، واکنشی.نرمش عادی())
سرچاپ "parsed steps"، q.شمار پله، q.جای پرش برابر واکنشی.جایپله.بدون پرش
bad := واکنشی.خواندن نرمش("bounce"، واکنشی.نرمش خطی())
سرچاپ "fallback"، bad.گونه برابر واکنشی.گونهنرمش.خطی
پایانجایپله StepPosition
جداشمار جایپله| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| پرش آغاز | JumpStart | | پرش نخست در آغاز است (jump-start یا start). |
| پرش انتها | JumpEnd | | پرش آخر در انتهاست (jump-end یا end، پیشفرض). |
| بدون پرش | JumpNone | | در هیچ سر پرشی نیست (jump-none)؛ دستکم دو پله لازم است. |
| پرش دو سو | JumpBoth | | در هر دو سر میپرد (jump-both). |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش Easing
ساختار نرمشنرمش خطی، نرمش عادی، نرمش ورود، نرمش خروج، نرمش ورود خروج، نرمش بزیه، نرمش پله ای یا خواندن نرمش ساخته میشود.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گونه | kind | گونهنرمش | خانوادهی این تابع. |
| ایکس یک | x1 | اعشار۶۴ = 0 | مختصهی x نقطهی کنترل نخست، میان 0 و 1. |
| ایگرگ یک | y1 | اعشار۶۴ = 0 | مختصهی y نقطهی کنترل نخست؛ برای فراتر رفتن میتواند از 0 تا 1 بیرون بزند. |
| ایکس دو | x2 | اعشار۶۴ = 1 | مختصهی x نقطهی کنترل دوم، میان 0 و 1. |
| ایگرگ دو | y2 | اعشار۶۴ = 1 | مختصهی y نقطهی کنترل دوم. |
| شمار پله | steps | صحیح = 1 | شمار پلههای نرمش پلهای. |
| جای پرش | position | جایپله | جایی که نرمش پلهای میپرد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
مقدار لحظه At
تابع مقدار لحظه(t: اعشار۶۴): اعشار۶۴t برمیگرداند؛ t به بازهی 0 تا 1 محدود میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
پویانماییویژگی Animation
ساختار پویانماییویژگیtransition در CSS.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| مدت | duration | صحیح = 0 | طول پویانمایی به میلیثانیه. صفر یعنی پرش فوری. |
| درنگ | delay | صحیح = 0 | میلیثانیههایی که پس از تغییر صبر میکند؛ در این مدت مقدار قبلی دیده میشود. |
| نرمش | easing | نرمش | تابع نرمش. پیشفرض خطی است. |
| رنگی | color | منطقی = نادرست | عدد صحیح را رنگ 0xAARRGGBB میگیرد و هر کانال را جدا میانیابی میکند. |
واردسازی تبدیل
واردسازی رابط گرافیکی.واکنشی
تابع ریشه:
واکنشی.تنظیم زمان(0 برگردان صحیح۶۴)
left := واکنشی.اعشاری تازه(0.0)
left.پویانمایی(واکنشی.پویانماییویژگی { مدت = 400، نرمش = واکنشی.نرمش خروج() })
left.بنشان(200.0)
سرچاپ "running"، واکنشی.پویانمایی جاری()، واکنشی.شمار پویانمایی ها()
تا واکنشی.پویانمایی جاری():
سرچاپ "t"، واکنشی.اکنون()، "left"، left.بخوان()
واکنشی.جلو بردن زمان(100 برگردان صحیح۶۴)
پایان
سرچاپ "t"، واکنشی.اکنون()، "left"، left.بخوان()، "running"، واکنشی.پویانمایی جاری()
واکنشی.تنظیم زمان(1000 برگردان صحیح۶۴)
tint := واکنشی.صحیح تازه(0xFF000000 برگردان صحیح)
tint.پویانمایی(واکنشی.پویانماییویژگی { مدت = 200، درنگ = 100، رنگی = درست })
tint.بنشان(0xFFFFFFFF برگردان صحیح)
تکرار 4 در i:
واکنشی.تنظیم زمان(1000 برگردان صحیح۶۴ + (i * 100) برگردان صحیح۶۴)
سرچاپ "tint"، تبدیل.قالب شانزده(((tint.بخوان() برگردان صحیح۶۴) & 0xFFFFFFFF) برگردان طبیعی۶۴)
پایان
پایانتغییرمدل ModelChange
جداشمار تغییرمدلمدلفهرست گزارش میدهد.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| سطر تغییر کرد | RowChanged | | یک سطر مقدار تازه گرفت. |
| سطرها افزوده شد | RowsInserted | | شمار سطر در شماره افزوده شد. |
| سطرها حذف شد | RowsRemoved | | شمار سطر از شماره حذف شد. |
| بازسازی کامل | Reset | | ممکن است همه چیز عوض شده باشد؛ همهی سطرها را از نو بسازید. |
واردسازی رابط گرافیکی.واکنشی
ساختار Row:
همگانی name: رشته = ""
همگانی done: منطقی = نادرست
پایان
تابع ریشه:
rows := واکنشی.مدل فهرست تازه() برگردان واکنشی.مدلفهرست<Row>
_id := rows.گوش بده((ev: واکنشی.رویدادمدل): سرچاپ " change"، ev.گونه برگردان صحیح، "index"، ev.شماره، "count"، ev.شمار پایان)
status := واکنشی.متن تازه("")
status.پیوند((): برگشت "" + rows.طول() + " rows" پایان)
rows.بیفزا(Row { name = "milk" })
rows.بیفزا(Row { name = "bread" })
rows.درج کن(0، Row { name = "eggs" })
سرچاپ status.بخوان()، rows.بخوان(0).name
rows.بنشان(1، Row { name = "milk"، done = درست })
rows.حذف کن(0، 1)
سرچاپ status.بخوان()، rows.بخوان(0).done
h := rows.هنگام تغییر((): سرچاپ " rows changed" پایان)
rows.پاک کن()
سرچاپ "handlers"، واکنشی.اجرای کنترلکننده ها()، status.بخوان()
ناپایا more := وکتور {} برگردان وکتور<Row>
more.بیفزا(Row { name = "tea" })
rows.جایگزین کن(more)
more.آزادکن()
rows.گوش نده(_id)
rows.بیفزا(Row { name = "rice" })
سرچاپ status.بخوان()، واکنشی.تغییرمدل.بازسازی کامل برگردان صحیح
h.آزاد کن()
rows.آزاد کن()
پایانرویدادمدل ModelEvent
ساختار رویدادمدلمدلفهرست.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گونه | kind | تغییرمدل | چه رخ داد. |
| شماره | index | صحیح = 0 | نخستین سطر درگیر. |
| شمار | count | صحیح = 0 | شمار سطرها؛ برای بازسازی کامل، طول تازه. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
مدلفهرست ListModel
ساختار مدلفهرست<T>مدل فهرست تازه ساخته میشود؛ رونوشتهای دستگیره یک فهرست را شریکاند.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| وضعیت | state | تهی* | تکهی هیپ که سطرها، شنوندهها و دو گره وابستگی را نگه میدارد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
طول Len
تابع طول(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
بخوان Get
تابع بخوان(i: صحیح): Ti را برمیگرداند؛ درون پیوند به هر تغییر سطرها وابسته میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
بنشان Set
تابع بنشان(i: صحیح، v: T)i را جایگزین میکند و تغییر سطر را گزارش میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
بیفزا Push
تابع بیفزا(v: T)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
درج کن Insert
تابع درج کن(i: صحیح، v: T)i میگذارد و افزودن سطر را گزارش میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
حذف کن Remove
تابع حذف کن(i: صحیح، count: صحیح)count سطر را از i حذف میکند (در انتهای فهرست کمتر) و حذف سطرها را گزارش میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
پاک کن Clear
تابع پاک کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
جایگزین کن Replace
تابع جایگزین کن(rows: وکتور<T>)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
گوش بده Listen
تابع گوش بده(cb: تابع(رویدادمدل)): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
گوش نده Unlisten
تابع گوش نده(id: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
هنگام تغییر OnChange
تابع هنگام تغییر(body: تابع()): کنترلکنندهاجرای کنترلکننده ها اجرا میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
آزاد کن Free
تابع آزاد کن()بازنشانی آزاد کنید.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
ویژگیصحیح IntProp
ساختار ویژگیصحیحصحیح نگه میدارد. خود دستگیره مقداری کوچک است که آزادانه کپی میشود و مقدار اصلی در زمان اجرا میماند. دستگیرهای که گره آن -1 باشد ثابت است.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی ویژگی در زمان اجرا، یا -1 برای ثابتی که با تابعهای ثابت ساخته شده است. |
| مقدار ثابت | fixed | صحیح = 0 | مقدار یک ویژگی ثابت. وقتی گره -1 نباشد به کار نمیرود. |
واردسازی رابط گرافیکی.واکنشی
تابع ریشه:
width := واکنشی.صحیح تازه(3).نام بده("width")
height := واکنشی.صحیح تازه(4).نام بده("height")
area := واکنشی.صحیح تازه(0).نام بده("area")
area.پیوند((): برگشت width.بخوان() * height.بخوان() پایان)
سرچاپ "area"، area.بخوان()، "bound"، area.پیوند دارد()
width.بنشان(10)
سرچاپ "dirty after a set"، area.کهنه است()، "evaluations so far"، واکنشی.شمار ارزیابی()
سرچاپ "area"، area.بخوان()، "evaluations so far"، واکنشی.شمار ارزیابی()
سرچاپ "peek reads without tracking"، area.نگاه()
marks := واکنشی.شمار نشانه گذاری()
height.بنشان(5)
height.بنشان(6)
سرچاپ "dirty marks for two sets"، واکنشی.شمار نشانه گذاری() - marks
area.بنشان(1)
سرچاپ "a set replaces the binding"، area.پیوند دارد()، area.بخوان()
سرچاپ "nodes"، واکنشی.گره های زنده()، "edges"، واکنشی.یال های زنده()
width.آزاد کن()
height.آزاد کن()
area.آزاد کن()
واکنشی.بازنشانی()
سرچاپ "nodes after reset"، واکنشی.گره های زنده()
پایانبخوان Get
تابع بخوان(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
نگاه Peek
تابع نگاه(): صحیحبخوان است ولی وابستگی ثبت نمیکند، پس صدازننده با تغییر این ویژگی بهروز نمیشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
بنشان Set
تابع بنشان(v: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
پیوند Bind
تابع پیوند(calc: تابع(): صحیح)calc با تأخیر اجرا میشود، در نخستین خواندن پس از تغییر چیزی که خوانده بود. روی ویژگی همبند کل گروه این پیوند را میگیرد و روی ویژگی پویانما پیوند مقدار هدف را میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
پویانمایی Animate
تابع پویانمایی(spec: پویانماییویژگی)مدت میلیثانیه از ساعت پویانمایی به سوی هدف میرود. صدا زدن دوباره مشخصات را عوض میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
نام بده Name
تابع نام بده(name: رشته): ویژگیصحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
پیوند دارد HasBinding
تابع پیوند دارد(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
کهنه است IsDirty
تابع کهنه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
جدا کن Unlink
تابع جدا کن()واردسازی رابط گرافیکی.واکنشی
تابع ریشه:
model := واکنشی.متن تازه("hello")
field := واکنشی.متن تازه("")
واکنشی.همبند کن(model، field)
سرچاپ model.بخوان()، field.بخوان()
field.بنشان("typed in the field")
سرچاپ model.بخوان()
model.بنشان("set by the program")
سرچاپ field.بخوان()
volume := واکنشی.صحیح تازه(5)
slider := واکنشی.صحیح تازه(0)
knob := واکنشی.صحیح تازه(0)
واکنشی.همبند کن(volume، slider)
واکنشی.همبند کن(slider، knob)
knob.بنشان(9)
سرچاپ volume.بخوان()، slider.بخوان()، knob.بخوان()
slider.جدا کن()
slider.بنشان(1)
سرچاپ volume.بخوان()، slider.بخوان()، knob.بخوان()
پایانآزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
ویژگیصحیح۶۴ I64Prop
ساختار ویژگیصحیح۶۴صحیح۶۴ نگه میدارد. خود دستگیره مقداری کوچک است که آزادانه کپی میشود و مقدار اصلی در زمان اجرا میماند. دستگیرهای که گره آن -1 باشد ثابت است.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی ویژگی در زمان اجرا، یا -1 برای ثابتی که با تابعهای ثابت ساخته شده است. |
| مقدار ثابت | fixed | صحیح۶۴ = 0 | مقدار یک ویژگی ثابت. وقتی گره -1 نباشد به کار نمیرود. |
واردسازی رابط گرافیکی.واکنشی
واردسازی رشته
تابع ریشه:
bytes := واکنشی.صحیح۶۴ تازه(3000000000 برگردان صحیح۶۴)
scale := واکنشی.اعشاری تازه(1.5)
visible := واکنشی.منطقی تازه(درست)
name := واکنشی.متن تازه("Sara")
greeting := واکنشی.متن تازه("")
greeting.پیوند((): برگشت "Hello, " + name.بخوان() + "!" پایان)
shown := واکنشی.متن تازه("")
shown.پیوند رونوشتی((): برگشت visible.بخوان() ? name.بخوان() : "hidden" پایان)
سرچاپ greeting.بخوان()، shown.بخوان()
name.بنشان("Reza")
visible.بنشان(نادرست)
سرچاپ greeting.بخوان()، shown.بخوان()
سرچاپ bytes.بخوان()، scale.بخوان() * 2.0
gap := واکنشی.صحیح ثابت(8)
big := واکنشی.صحیح۶۴ ثابت(9000000000 برگردان صحیح۶۴)
ratio := واکنشی.اعشاری ثابت(0.5)
flag := واکنشی.منطقی ثابت(درست)
label := واکنشی.متن ثابت("fixed")
سرچاپ gap.بخوان()، big.بخوان()، ratio.بخوان()، flag.بخوان()، label.بخوان()، "node"، gap.گره، "fixed"، gap.مقدار ثابت
kept := رشته.رونوشت(greeting.بخوان())
name.بنشان("Mina")
سرچاپ "copy kept"، kept، "now"، greeting.بخوان()
پایانبخوان Get
تابع بخوان(): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
نگاه Peek
تابع نگاه(): صحیح۶۴بخوان است ولی وابستگی ثبت نمیکند، پس صدازننده با تغییر این ویژگی بهروز نمیشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بنشان Set
تابع بنشان(v: صحیح۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند Bind
تابع پیوند(calc: تابع(): صحیح۶۴)calc با تأخیر اجرا میشود، در نخستین خواندن پس از تغییر چیزی که خوانده بود. روی ویژگی همبند کل گروه این پیوند را میگیرد و روی ویژگی پویانما پیوند مقدار هدف را میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پویانمایی Animate
تابع پویانمایی(spec: پویانماییویژگی)مدت میلیثانیه از ساعت پویانمایی به سوی هدف میرود. صدا زدن دوباره مشخصات را عوض میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
نام بده Name
تابع نام بده(name: رشته): ویژگیصحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند دارد HasBinding
تابع پیوند دارد(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
کهنه است IsDirty
تابع کهنه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
جدا کن Unlink
تابع جدا کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
آزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
ویژگیاعشاری F64Prop
ساختار ویژگیاعشاریاعشار۶۴ نگه میدارد. خود دستگیره مقداری کوچک است که آزادانه کپی میشود و مقدار اصلی در زمان اجرا میماند. دستگیرهای که گره آن -1 باشد ثابت است.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی ویژگی در زمان اجرا، یا -1 برای ثابتی که با تابعهای ثابت ساخته شده است. |
| مقدار ثابت | fixed | اعشار۶۴ = 0 | مقدار یک ویژگی ثابت. وقتی گره -1 نباشد به کار نمیرود. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بخوان Get
تابع بخوان(): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
نگاه Peek
تابع نگاه(): اعشار۶۴بخوان است ولی وابستگی ثبت نمیکند، پس صدازننده با تغییر این ویژگی بهروز نمیشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بنشان Set
تابع بنشان(v: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند Bind
تابع پیوند(calc: تابع(): اعشار۶۴)calc با تأخیر اجرا میشود، در نخستین خواندن پس از تغییر چیزی که خوانده بود. روی ویژگی همبند کل گروه این پیوند را میگیرد و روی ویژگی پویانما پیوند مقدار هدف را میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پویانمایی Animate
تابع پویانمایی(spec: پویانماییویژگی)مدت میلیثانیه از ساعت پویانمایی به سوی هدف میرود. صدا زدن دوباره مشخصات را عوض میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
نام بده Name
تابع نام بده(name: رشته): ویژگیاعشارینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند دارد HasBinding
تابع پیوند دارد(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
کهنه است IsDirty
تابع کهنه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
جدا کن Unlink
تابع جدا کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
آزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
ویژگیمنطقی BoolProp
ساختار ویژگیمنطقیمنطقی نگه میدارد. خود دستگیره مقداری کوچک است که آزادانه کپی میشود و مقدار اصلی در زمان اجرا میماند. دستگیرهای که گره آن -1 باشد ثابت است.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی ویژگی در زمان اجرا، یا -1 برای ثابتی که با تابعهای ثابت ساخته شده است. |
| مقدار ثابت | fixed | منطقی = نادرست | مقدار یک ویژگی ثابت. وقتی گره -1 نباشد به کار نمیرود. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بخوان Get
تابع بخوان(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
نگاه Peek
تابع نگاه(): منطقیبخوان است ولی وابستگی ثبت نمیکند، پس صدازننده با تغییر این ویژگی بهروز نمیشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بنشان Set
تابع بنشان(v: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند Bind
تابع پیوند(calc: تابع(): منطقی)calc با تأخیر اجرا میشود، در نخستین خواندن پس از تغییر چیزی که خوانده بود. روی ویژگی همبند کل گروه این پیوند را میگیرد و روی ویژگی پویانما پیوند مقدار هدف را میدهد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
نام بده Name
تابع نام بده(name: رشته): ویژگیمنطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند دارد HasBinding
تابع پیوند دارد(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
کهنه است IsDirty
تابع کهنه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
جدا کن Unlink
تابع جدا کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
آزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
ویژگیمتنی StrProp
ساختار ویژگیمتنیرشته نگه میدارد. خود دستگیره مقداری کوچک است که آزادانه کپی میشود و مقدار اصلی در زمان اجرا میماند. دستگیرهای که گره آن -1 باشد ثابت است.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح = -1 | شمارهی ویژگی در زمان اجرا، یا -1 برای ثابتی که با تابعهای ثابت ساخته شده است. |
| مقدار ثابت | fixed | رشته = "" | مقدار یک ویژگی ثابت. وقتی گره -1 نباشد به کار نمیرود. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بخوان Get
تابع بخوان(): رشتهرشته.رونوشت کپی کنید. مانند دیگر روشهای بخوان وابستگی ثبت میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
نگاه Peek
تابع نگاه(): رشتهبخوان است ولی وابستگی ثبت نمیکند. همان قاعدهی مالکیت برقرار است.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
بنشان Set
تابع بنشان(v: رشته)بنشان است.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند Bind
تابع پیوند(calc: تابع(): رشته)calc باید رشتهای تازه روی هیپ برگرداند، مثل حاصل الحاق یا یک تابع رشته؛ ویژگی مالک آن میشود و در تغییر بعدی آزادش میکند. برای متن ثابت یا متن ویژگی دیگر از پیوند رونوشتی استفاده کنید.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند رونوشتی BindCopy
تابع پیوند رونوشتی(calc: تابع(): رشته)پیوند است ولی ویژگی رونوشتی از خروجی calc نگه میدارد، پس calc میتواند متن ثابت یا متن ویژگی دیگری برگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
نام بده Name
تابع نام بده(name: رشته): ویژگیمتنینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
پیوند دارد HasBinding
تابع پیوند دارد(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
کهنه است IsDirty
تابع کهنه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
جدا کن Unlink
تابع جدا کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
آزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
ویژگی Prop
ساختار ویژگی<T>بنشان همیشه خبر میدهد، چون ممکن است T عملگر == نداشته باشد.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گره | node | صحیح | شمارهی ویژگی در زمان اجرا. |
| خانه | cell | تهی* | خانهی هیپ که مقدار و پیوند را نگه میدارد. |
واردسازی رابط گرافیکی.واکنشی
ساختار Size:
همگانی w: صحیح = 0
همگانی h: صحیح = 0
پایان
تابع ریشه:
window := واکنشی.ویژگی تازه(Size { w = 800، h = 600 }).نام بده("window size")
pad := واکنشی.صحیح تازه(16)
content := واکنشی.ویژگی تازه(Size {})
content.پیوند(():
s := window.بخوان()
برگشت Size { w = s.w - 2 * pad.بخوان()، h = s.h - 2 * pad.بخوان() }
پایان)
سرچاپ content.بخوان()، content.پیوند دارد()
h := content.هنگام تغییر((): سرچاپ " content is now"، content.نگاه() پایان)
window.بنشان(Size { w = 1024، h = 768 })
سرچاپ "handlers"، واکنشی.اجرای کنترلکننده ها()
h.آزاد کن()
window.آزاد کن()
content.آزاد کن()
پایانبخوان Get
تابع بخوان(): Tنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
نگاه Peek
تابع نگاه(): Tنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
بنشان Set
تابع بنشان(v: T)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
پیوند Bind
تابع پیوند(calc: تابع(): T)calc محاسبهای میکند که با تأخیر اجرا میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
هنگام تغییر OnChange
تابع هنگام تغییر(body: تابع()): کنترلکنندههنگام تغییر برای ویژگیهای نوعدار.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
نام بده Name
تابع نام بده(name: رشته): ویژگی<T>نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
پیوند دارد HasBinding
تابع پیوند دارد(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
آزاد کن Free
تابع آزاد کن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam
تابعها
ردیابی Track
تابع ردیابی(body: تابع()): ردیابbody را همین حالا اجرا میکند، آنچه را میخواند ثبت میکند و ردیابی برمیگرداند. گونهی دارای on_dirty آن را پس از نشاندنی که ردیاب را کهنه کرد یک بار صدا میزند و تا تازه کن دوباره صدا نمیزند. این تابع فقط باید کاری را زمانبندی کند، مثل بازکشیدن.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
ردیابی Track
تابع ردیابی(body: تابع()، on_dirty: تابع()): ردیابbody را همین حالا اجرا میکند، آنچه را میخواند ثبت میکند و ردیابی برمیگرداند. گونهی دارای on_dirty آن را پس از نشاندنی که ردیاب را کهنه کرد یک بار صدا میزند و تا تازه کن دوباره صدا نمیزند. این تابع فقط باید کاری را زمانبندی کند، مثل بازکشیدن.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
هنگام تغییر OnChange
تابع هنگام تغییر(p: ویژگیصحیح، body: تابع()): کنترلکنندهbody را ثبت میکند تا پس از تغییر مقدار ویژگی اجرا شود. هرگز درون نشاندن اجرا نمیشود: تغییرها صف میشوند و اجرای کنترلکننده ها هر کنترلکننده را یک بار اجرا میکند، هر چند تغییر که باشد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
هنگام تغییر OnChange
تابع هنگام تغییر(p: ویژگیصحیح۶۴، body: تابع()): کنترلکنندهbody را ثبت میکند تا پس از تغییر مقدار ویژگی اجرا شود. هرگز درون نشاندن اجرا نمیشود: تغییرها صف میشوند و اجرای کنترلکننده ها هر کنترلکننده را یک بار اجرا میکند، هر چند تغییر که باشد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
هنگام تغییر OnChange
تابع هنگام تغییر(p: ویژگیاعشاری، body: تابع()): کنترلکنندهbody را ثبت میکند تا پس از تغییر مقدار ویژگی اجرا شود. هرگز درون نشاندن اجرا نمیشود: تغییرها صف میشوند و اجرای کنترلکننده ها هر کنترلکننده را یک بار اجرا میکند، هر چند تغییر که باشد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
هنگام تغییر OnChange
تابع هنگام تغییر(p: ویژگیمنطقی، body: تابع()): کنترلکنندهbody را ثبت میکند تا پس از تغییر مقدار ویژگی اجرا شود. هرگز درون نشاندن اجرا نمیشود: تغییرها صف میشوند و اجرای کنترلکننده ها هر کنترلکننده را یک بار اجرا میکند، هر چند تغییر که باشد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
هنگام تغییر OnChange
تابع هنگام تغییر(p: ویژگیمتنی، body: تابع()): کنترلکنندهbody را ثبت میکند تا پس از تغییر مقدار ویژگی اجرا شود. هرگز درون نشاندن اجرا نمیشود: تغییرها صف میشوند و اجرای کنترلکننده ها هر کنترلکننده را یک بار اجرا میکند، هر چند تغییر که باشد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
کنترلکننده های منتظر PendingHandlers
تابع کنترلکننده های منتظر(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
اجرای کنترلکننده ها RunPendingHandlers
تابع اجرای کنترلکننده ها(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-OnChange.salam
آخرین خطا LastError
تابع آخرین خطا(): رشتهواردسازی رابط گرافیکی.واکنشی
تابع ریشه:
واکنشی.چاپ خطاها(نادرست)
a := واکنشی.صحیح تازه(0).نام بده("min width")
b := واکنشی.صحیح تازه(0).نام بده("preferred width")
a.پیوند((): برگشت b.بخوان() + 1 پایان)
b.پیوند((): برگشت a.بخوان() + 1 پایان)
سرچاپ "value with the loop cut"، a.بخوان()
سرچاپ "errors"، واکنشی.شمار خطاها()
سرچاپ واکنشی.آخرین خطا()
پایانشمار خطاها ErrorCount
تابع شمار خطاها(): صحیحبازنشانی.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Errors.salam
چاپ خطاها SetErrorPrinting
تابع چاپ خطاها(enabled: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Errors.salam
شمار ارزیابی Evaluations
تابع شمار ارزیابی(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
شمار نشانه گذاری DirtyMarks
تابع شمار نشانه گذاری(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
گره های زنده LiveNodes
تابع گره های زنده(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
یال های زنده LiveEdges
تابع یال های زنده(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
آغاز دسته BeginBatch
تابع آغاز دسته()اتمام دسته صبر میکند تا همهی تغییرها را با هم ببیند. دستهها تودرتو میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
اتمام دسته EndBatch
تابع اتمام دسته()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
دسته Batch
تابع دسته(body: تابع())body را در یک دسته اجرا میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
داخل دسته InBatch
تابع داخل دسته(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Track.salam
بازنشانی Reset
تابع بازنشانی()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
نرمش خطی Linear
تابع نرمش خطی(): نرمشlinear.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش بزیه CubicBezier
تابع نرمش بزیه(x1: اعشار۶۴، y1: اعشار۶۴، x2: اعشار۶۴، y2: اعشار۶۴): نرمشcubic-bezier(x1, y1, x2, y2).نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش عادی Ease
تابع نرمش عادی(): نرمشease در CSS، یعنی cubic-bezier(0.25, 0.1, 0.25, 1).نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش ورود EaseIn
تابع نرمش ورود(): نرمشease-in در CSS، یعنی cubic-bezier(0.42, 0, 1, 1).نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش خروج EaseOut
تابع نرمش خروج(): نرمشease-out در CSS، یعنی cubic-bezier(0, 0, 0.58, 1).نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش ورود خروج EaseInOut
تابع نرمش ورود خروج(): نرمشease-in-out در CSS، یعنی cubic-bezier(0.42, 0, 0.58, 1).نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
نرمش پله ای Steps
تابع نرمش پله ای(count: صحیح، position: جایپله): نرمشsteps(count, position).نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
خواندن نرمش ParseEasing
تابع خواندن نرمش(text: رشته، fallback: نرمش): نرمشlinear، ease، ease-in، ease-out، ease-in-out، step-start و step-end، یا cubic-bezier(...) و steps(...). برای هر چیز دیگر fallback را برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Easing.salam
تنظیم زمان SetTime
تابع تنظیم زمان(ms: صحیح۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
جلو بردن زمان AdvanceTime
تابع جلو بردن زمان(ms: صحیح۶۴)ms میلیثانیه جلو میبرد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
اکنون Now
تابع اکنون(): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
پویانمایی جاری AnimationsRunning
تابع پویانمایی جاری(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
شمار پویانمایی ها RunningAnimations
تابع شمار پویانمایی ها(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Animate.salam
مدل فهرست تازه NewListModel
تابع مدل فهرست تازه<T>(): مدلفهرست<T>برگردان واکنشی.مدلفهرست<T> بدهید.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-ListModel.salam
صحیح تازه NewInt
تابع صحیح تازه(v: صحیح): ویژگیصحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Basics.salam
صحیح۶۴ تازه NewI64
تابع صحیح۶۴ تازه(v: صحیح۶۴): ویژگیصحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
اعشاری تازه NewF64
تابع اعشاری تازه(v: اعشار۶۴): ویژگیاعشارینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
منطقی تازه NewBool
تابع منطقی تازه(v: منطقی): ویژگیمنطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
متن تازه NewStr
تابع متن تازه(v: رشته): ویژگیمتنیv میسازد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
صحیح ثابت ConstInt
تابع صحیح ثابت(v: صحیح): ویژگیصحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
صحیح۶۴ ثابت ConstI64
تابع صحیح۶۴ ثابت(v: صحیح۶۴): ویژگیصحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
اعشاری ثابت ConstF64
تابع اعشاری ثابت(v: اعشار۶۴): ویژگیاعشارینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
منطقی ثابت ConstBool
تابع منطقی ثابت(v: منطقی): ویژگیمنطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
متن ثابت ConstStr
تابع متن ثابت(v: رشته): ویژگیمتنینمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Types.salam
همبند کن Link
تابع همبند کن(a: ویژگیصحیح، b: ویژگیصحیح)a مقدار آغازین را میدهد و پیوندش برای گروه میماند. همبند کردن ویژگی سوم با هر کدام آن را به همان گروه میبرد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
همبند کن Link
تابع همبند کن(a: ویژگیصحیح۶۴، b: ویژگیصحیح۶۴)a مقدار آغازین را میدهد و پیوندش برای گروه میماند. همبند کردن ویژگی سوم با هر کدام آن را به همان گروه میبرد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
همبند کن Link
تابع همبند کن(a: ویژگیاعشاری، b: ویژگیاعشاری)a مقدار آغازین را میدهد و پیوندش برای گروه میماند. همبند کردن ویژگی سوم با هر کدام آن را به همان گروه میبرد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
همبند کن Link
تابع همبند کن(a: ویژگیمنطقی، b: ویژگیمنطقی)a مقدار آغازین را میدهد و پیوندش برای گروه میماند. همبند کردن ویژگی سوم با هر کدام آن را به همان گروه میبرد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
همبند کن Link
تابع همبند کن(a: ویژگیمتنی، b: ویژگیمتنی)a مقدار آغازین را میدهد و پیوندش برای گروه میماند. همبند کردن ویژگی سوم با هر کدام آن را به همان گروه میبرد.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Link.salam
ویژگی تازه NewProp
تابع ویژگی تازه<T>(v: T): ویژگی<T>نمونهی این مورد همراه با موارد بالاتر آمده است: gui-reactive-Prop.salam