پنجره ها gui.window
پنجرههای بومی که بافری از نقطهها را نشان میدهند، با حلقهی رویداد برای اشارهگر، صفحهکلید، ورود متن، زمانسنج و کلیپبورد.
واردسازی رابط گرافیکی.پنجره ها
نام آرگومانها شناسهی خود کد است و معادل فارسی ندارد؛ گونهها، کلیدواژهها و نام بستهها با معادل فارسی نوشته میشوند.
پنجره ها پنجرههای واقعی باز میکند و نقطههایی را که خودتان کشیدهاید نشان میدهد. این بسته پایینترین لایهی رابط کاربری بومی سلام است: برنامه یک قاب را در حافظه میکشد (برای نمونه با gui.paint) و این بسته آن را روی نمایشگر میگذارد و کارهای کاربر را گزارش میکند. مستقیم با سیستم کار میکند: X11 در لینوکس، Win32 در ویندوز و Cocoa در مک، بی GTK، بی نمای وب و بی هیچ کتابخانهی دیگر. پشتیبان بیسر پنجرهها را در حافظه نگه میدارد تا همان برنامه روی هر دستگاهی آزموده شود.
هر قاب بافری از نقطههای ۳۲ بیتی با آلفای پیشضربشده است، با مقدار 0xAARRGGBB (در حافظه بایتهای B، G، R، A)، که با یک اشارهگر، پهنا، بلندی و گام سطر توصیف میشود. اندازهها و جاها در این بسته بر حسب نقطهی منطقیاند؛ بافر بر حسب نقطهی فیزیکی است، یعنی اندازهی منطقی ضرب در ضریب مقیاس.
- رویدادها کشیده میشوند نه رانده:
انتظار رویدادرا در یک حلقه صدا بزنید. مک همین را میخواهد، چون پنجرههایش تنها در رشتهی اصلی کار میکنند. - بستن یک درخواست است. دکمهی بستن
درخواست بستنمیفرستد و پنجره تا صدا زدنبستنمیماند. - درخواستهای بازکشی یکی میشوند.
درخواست بازکشی دوبارهرا هر چند بار صدا بزنید، یکدرخواست بازکشیمیرسد. - کلید و متن جدا هستند.
فشردن کلیدکلید را با جایش نام میبرد که در هر زبان صفحهکلید یکی است؛ نویسهها درورود متنو از نویسهساز درپیش نویس نویسه سازوثبت نویسه سازمیآیند.
متن یک رویداد از آن بسته است و در انتظار رویداد یا سرکشی رویداد بعدی آزاد میشود. اگر نگهش میدارید رونوشت بگیرید.
حلقهی رویداد
برنامهی پنجرهای یک پنجره باز میکند و تا بسته شدنش منتظر رویداد میماند. درخواست بازکشی یک قاب میخواهد: بافری به اندازهی فیزیکی بسازید، پرش کنید و به ارائه کامل بدهید. یک زمانسنج تکرارشونده هر چه را با زمان تغییر میکند میراند. این نمونه بیسر است و ساعت آزمون را به کار میبرد، پس همهجا اجرا میشود و هر بار همان خطها را چاپ میکند؛ بی بی سر و تنظیم ساعت دستی همین حلقه یک پنجرهی واقعی را میراند.
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
واردسازی حافظه
تابع paint(w: پنجره ها.پنجره، frame: صحیح):
size := w.اندازه()
width := size.پهنای فیزیکی
height := size.بلندی فیزیکی
pixels := حافظه.تخصیص صفرشده(((width * height) * 4) برگردان طبیعی۶۴) برگردان طبیعی۳۲*
دیرکن حافظه.آزادسازی(pixels برگردان تهی*)
shade := (frame * 40) برگردان طبیعی۳۲
تکرار width * height در i:
pixels[i] = (0xFF000000 برگردان طبیعی۳۲) | (shade << 8)
پایان
w.ارائه کامل(pixels برگردان تهی*، width، height، width * 4)
پایان
تابع ریشه:
پنجره ها.تنظیم ساعت دستی(درست)
w := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { عنوان = "Clock"، پهنا = 64.0، بلندی = 48.0، بی سر = درست })
tick := پنجره ها.تنظیم زمان سنج(500، درست)
ناپایا frames := 0
تا w.باز است():
e := پنجره ها.انتظار رویداد(-1)
ترابرد e.نوع:
پنجره ها.نوعرویداد.درخواست بازکشی:
paint(w، frames)
frames++
سرچاپ "frame"، frames، "at"، پنجره ها.ساعت()، "ms"
بشکن
پایان
پنجره ها.نوعرویداد.زنگ زمان سنج:
w.درخواست بازکشی دوباره()
اگر frames برابر 3:
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.درخواست بستن، شماره پنجره = w.شناسه })
پایان
بشکن
پایان
پنجره ها.نوعرویداد.درخواست بستن:
سرچاپ "closing"
پنجره ها.پاک کردن زمان سنج(tick)
w.بستن()
بشکن
پایان
وگرنه:
بشکن
پایان
پایان
پایان
سرچاپ "presented"، w.شمار ارائه()، "frames"
پایانموشی، کلید و متن
رویدادهای اشارهگر جای منطقی و دکمه را دارند. شمار کلیک دوکلیک و سهکلیک را میشمارد: فشردنهای یک دکمه که در زمان و جا نزدیک هم باشند. رویداد کلید، کلید را با کلیدها و جایش، و کد خود سیستم را در کد فیزیکی میدهد. متن هرگز از رویداد کلید نمیآید: متن ورود متن و ثبت نویسه ساز را درج کنید و پیش نویس نویسه ساز را با زیرخط بکشید. تنظیم جای نویسه ساز پنجرهی پیشنهادهای نویسهساز را کنار نشانگر شما میبرد.
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
تابع ریشه:
پنجره ها.تنظیم ساعت دستی(درست)
w := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { پهنا = 300.0، بلندی = 200.0، بی سر = درست، نمایان = نادرست })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.فشردن دکمه، شماره پنجره = w.شناسه، ایکس = 40.0، ایگرگ = 30.0، دکمه = پنجره ها.دکمهموشی.دکمه چپ })
پنجره ها.جلو بردن ساعت(120)
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.فشردن دکمه، شماره پنجره = w.شناسه، ایکس = 41.0، ایگرگ = 30.0، دکمه = پنجره ها.دکمهموشی.دکمه چپ })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.فشردن کلید، شماره پنجره = w.شناسه، کلید = پنجره ها.کلیدها.کلید ای، کد فیزیکی = 38 })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.ورود متن، شماره پنجره = w.شناسه، متن = "a" })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.پیش نویس نویسه ساز، شماره پنجره = w.شناسه، متن = "سل"، جای نشانگر = 4 })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.ثبت نویسه ساز، شماره پنجره = w.شناسه، متن = "سلام" })
ناپایا e := پنجره ها.سرکشی رویداد()
تا e.نوع نابرابر پنجره ها.نوعرویداد.هیچ رویداد:
ترابرد e.نوع:
پنجره ها.نوعرویداد.فشردن دکمه:
سرچاپ "click"، e.شمار کلیک، "at"، e.ایکس، e.ایگرگ
بشکن
پایان
پنجره ها.نوعرویداد.فشردن کلید:
سرچاپ "key A:"، e.کلید برابر پنجره ها.کلیدها.کلید ای
بشکن
پایان
پنجره ها.نوعرویداد.ورود متن، پنجره ها.نوعرویداد.ثبت نویسه ساز:
سرچاپ "insert"، e.متن
بشکن
پایان
پنجره ها.نوعرویداد.پیش نویس نویسه ساز:
سرچاپ "composing"، e.متن، "caret at byte"، e.جای نشانگر
بشکن
پایان
وگرنه:
بشکن
پایان
پایان
e = پنجره ها.سرکشی رویداد()
پایان
w.تنظیم جای نویسه ساز(40.0، 30.0، 2.0، 18.0)
سرچاپ "candidate window goes to"، w.جای نویسه ساز()
پایانضریب مقیاس و بهروزرسانی بخشی
در نمایشگر پرتراکم هر نقطهی منطقی چند نقطهی دستگاه است. بر حسب نقطهی فیزیکی بکشید و برای تبدیل از ضریب مقیاس بهره بگیرید. بردن پنجره به نمایشگری دیگر تغییر مقیاس و سپس تغییر اندازه میفرستد. وقتی تنها بخشی از قاب عوض شده، مستطیلهای تغییرکرده را به ارائه بدهید؛ تنها همانها رونویسی و در مرز بافر بریده میشوند.
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
واردسازی حافظه
تابع ریشه:
w := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { پهنا = 100.0، بلندی = 50.0، بی سر = درست، مقیاس = 1.5، نمایان = نادرست })
size := w.اندازه()
سرچاپ "logical"، size.پهنا، size.بلندی، "physical"، size.پهنای فیزیکی، size.بلندی فیزیکی
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.تغییر مقیاس، شماره پنجره = w.شناسه، مقیاس = 2.0 })
e := پنجره ها.سرکشی رویداد()
سرچاپ "new scale"، e.مقیاس، "logical"، e.پهنا، e.بلندی، "physical"، e.پهنای فیزیکی، e.بلندی فیزیکی
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.تغییر اندازه، شماره پنجره = w.شناسه، پهنای فیزیکی = 300، بلندی فیزیکی = 100 })
r := پنجره ها.سرکشی رویداد()
سرچاپ "resized to"، r.پهنا، r.بلندی
width := r.پهنای فیزیکی
height := r.بلندی فیزیکی
pixels := حافظه.تخصیص صفرشده(((width * height) * 4) برگردان طبیعی۶۴) برگردان طبیعی۳۲*
دیرکن حافظه.آزادسازی(pixels برگردان تهی*)
w.ارائه کامل(pixels برگردان تهی*، width، height، width * 4)
ناپایا damage := وکتور {} برگردان وکتور<پنجره ها.مستطیل>
دیرکن damage.آزادکن()
damage.بیفزا(پنجره ها.مستطیل { ایکس = 10، ایگرگ = 10، پهنا = 20، بلندی = 8 })
damage.بیفزا(پنجره ها.مستطیل { ایکس = 290، ایگرگ = 90، پهنا = 50، بلندی = 50 })
w.ارائه(pixels برگردان تهی*، width، height، width * 4، damage)
سرچاپ "copied"، w.شمار آخرین ناحیه ها()، "rects inside"، w.آخرین ناحیه تغییر()
پایانآزمون بدون نمایشگر
پنجرهی بیسر مانند پنجرهی واقعی رفتار میکند: تمرکز، درخواست بازکشی، تغییر اندازه و زمانسنج میگیرد و هر قاب ارائهشده را نگه میدارد. نقطه در قاب را بازمیخواند، تزریق رویداد هر رویدادی را پخش میکند و تنظیم ساعت دستی زمان را یکراست به زمانسنج بعدی میپراند، پس آزمون یک پویانمایی یکثانیهای زمانی نمیبرد. متغیر محیطی SALAM_WINDOW_BACKEND=headless همهی پنجرهها را بی آنکه برنامه عوض شود بیسر میکند.
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
واردسازی حافظه
تابع ریشه:
پنجره ها.تنظیم ساعت دستی(درست)
w := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { پهنا = 2.0، بلندی = 2.0، بی سر = درست، نمایان = نادرست })
pixels := حافظه.تخصیص صفرشده(16 برگردان طبیعی۶۴) برگردان طبیعی۳۲*
دیرکن حافظه.آزادسازی(pixels برگردان تهی*)
pixels[0] = 0xFFFF0000 برگردان طبیعی۳۲
pixels[3] = 0x80000080 برگردان طبیعی۳۲
w.ارائه کامل(pixels برگردان تهی*، 2، 2، 8)
سرچاپ "top left red:"، w.نقطه در(0، 0) برابر (0xFFFF0000 برگردان طبیعی۳۲)
سرچاپ "bottom right half blue:"، w.نقطه در(1، 1) برابر (0x80000080 برگردان طبیعی۳۲)
timer := پنجره ها.تنظیم زمان سنج(1000، نادرست)
ناپایا e := پنجره ها.انتظار رویداد(-1)
تا e.نوع نابرابر پنجره ها.نوعرویداد.زنگ زمان سنج:
سرچاپ "skipped event"، e.نوع برگردان صحیح
e = پنجره ها.انتظار رویداد(-1)
پایان
سرچاپ "timer"، e.زمان سنج برابر timer، "after"، پنجره ها.ساعت()، "ms of test time"
w.بستن()
پایان| سیستم | پشتیبان | یادداشت |
|---|---|---|
| لینوکس | X11 با libX11 | XPutImage برای هر مستطیل تغییرکرده، Xft.dpi برای مقیاس، XIM برای نویسهساز، گزینش CLIPBOARD. نشستهای Wayland از XWayland بهره میگیرند. |
| ویندوز | Win32 | بخش DIB و BitBlt، DPI برای هر نمایشگر، ترکیب IME، کلیپبورد یونیکد و نمای تیره از رجیستری. |
| مک | Cocoa | نمای لایهدار، NSTextInputClient برای نویسهساز، NSPasteboard و نمای سیستم. |
| همه | بیسر | درون حافظه، برای آزمون و رسم در پرونده. |
گونهها
مستطیل Rect
ساختار مستطیلارائه و ناحیهی نویسهساز.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| ایکس | x | صحیح = 0 | لبهی چپ بر حسب نقطه. |
| ایگرگ | y | صحیح = 0 | لبهی بالا بر حسب نقطه. |
| پهنا | width | صحیح = 0 | پهنا بر حسب نقطه. |
| بلندی | height | صحیح = 0 | بلندی بر حسب نقطه. |
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
واردسازی حافظه
تابع ریشه:
w := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { پهنا = 4.0، بلندی = 3.0، بی سر = درست })
pixels := حافظه.تخصیص صفرشده((4 * 3 * 4) برگردان طبیعی۶۴) برگردان طبیعی۳۲*
دیرکن حافظه.آزادسازی(pixels برگردان تهی*)
تکرار 12 در i:
pixels[i] = 0xFF336699 برگردان طبیعی۳۲
پایان
سرچاپ w.ارائه کامل(pixels برگردان تهی*، 4، 3، 16)، w.شمار ارائه()، w.آخرین ناحیه تغییر()
pixels[5] = 0xFFFF0000 برگردان طبیعی۳۲
ناپایا damage := وکتور {} برگردان وکتور<پنجره ها.مستطیل>
دیرکن damage.آزادکن()
damage.بیفزا(پنجره ها.مستطیل { ایکس = 1، ایگرگ = 1، پهنا = 1، بلندی = 1 })
سرچاپ w.ارائه(pixels برگردان تهی*، 4، 3، 16، damage)، w.آخرین ناحیه تغییر()، w.شمار آخرین ناحیه ها()
سرچاپ w.نقطه در(1، 1) برابر (0xFFFF0000 برگردان طبیعی۳۲)، w.نقطه نمایش داده شده(0، 0) برابر (0xFF336699 برگردان طبیعی۳۲)
سرچاپ w.تنظیم نماد(pixels برگردان تهی*، 2، 2، 16)
w.بستن()
پایاناندازهپنجره WindowSize
ساختار اندازهپنجرهاندازه برمیگرداند.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| پهنا | width | اعشار۶۴ = 0 | پهنا بر حسب نقطهی منطقی. |
| بلندی | height | اعشار۶۴ = 0 | بلندی بر حسب نقطهی منطقی. |
| پهنای فیزیکی | physical_width | صحیح = 0 | پهنا بر حسب نقطهی دستگاه: پهنای بافری که باید کشید. |
| بلندی فیزیکی | physical_height | صحیح = 0 | بلندی بر حسب نقطهی دستگاه. |
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
تابع ریشه:
options := پنجره ها.گزینهپنجره {
عنوان = "Notes"، پهنا = 400.0، بلندی = 300.0، کمترین پهنا = 200.0، کمترین بلندی = 150.0،
بیشترین پهنا = 800.0، بیشترین بلندی = 600.0، تغییرپذیر = درست، قاب دار = درست، وسط صفحه نمایش = درست،
ایکس = 0.0، ایگرگ = 0.0، رنگ زمینه = 0xF5F5F5FF برگردان طبیعی۳۲، نمایان = درست، بی سر = درست، مقیاس = 2.0
}
w := پنجره ها.باز کردن(options)
سرچاپ w.شناسه، w.باز است()، w.بی سر است()، w.متمرکز است()، w.عنوان پنجره()
size := w.اندازه()
سرچاپ size.پهنا، size.بلندی، size.پهنای فیزیکی، size.بلندی فیزیکی، w.ضریب مقیاس()
w.تنظیم عنوان("Notes (2)")
w.تنظیم اندازه(1000.0، 100.0)
سرچاپ w.عنوان پنجره()، w.اندازه()
w.تنظیم کمترین اندازه(100.0، 100.0)
w.تنظیم بیشترین اندازه(0.0، 0.0)
w.تنظیم اندازه(1000.0، 100.0)
سرچاپ w.اندازه()
w.تنظیم نشانگر(پنجره ها.شکلنشانگر.نشانگر دست)
w.تنظیم جای نویسه ساز(20.0، 40.0، 2.0، 16.0)
سرچاپ w.نشانگر کنونی() برابر پنجره ها.شکلنشانگر.نشانگر دست، w.جای نویسه ساز()
w.تنظیم تمام صفحه(درست)
سرچاپ w.تمام صفحه است()
w.تنظیم تمام صفحه(نادرست)
w.کمینه کردن()
w.بیشینه کردن()
w.بازگرداندن()
w.متمرکز کردن()
w.درخواست بازکشی دوباره()
سرچاپ w.دستگیره() برابر پوچ
w.بستن()
سرچاپ w.باز است()
پایاننوعرویداد EventKind
جداشمار نوعرویدادرویداد از چه خبر میدهد.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| هیچ رویداد | None | | پیش از پایان زمان انتظار چیزی رخ نداد. |
| درخواست بستن | CloseRequested | | کاربر بستن پنجره را خواست. تا بستن را صدا نزنید چیزی بسته نمیشود. |
| تغییر اندازه | Resized | | اندازهی ناحیهی رسم عوض شد؛ پهنا، بلندی و فیلدهای فیزیکی اندازهی تازه را دارند. |
| تغییر مقیاس | ScaleChanged | | پنجره به نمایشگری با ضریب مقیاس دیگر رفت؛ مقیاس آن را دارد. |
| درخواست بازکشی | RedrawRequested | | اکنون یک قاب بکشید و ارائه کنید. چند درخواست در یک دور یکی میشوند. |
| گرفتن تمرکز | FocusIn | | پنجره تمرکز صفحهکلید را گرفت. |
| از دست دادن تمرکز | FocusOut | | پنجره تمرکز صفحهکلید را از دست داد. |
| حرکت اشاره گر | PointerMove | | اشارهگر جابهجا شد؛ ایکس و ایگرگ بر حسب نقطهی منطقیاند. |
| ورود اشاره گر | PointerEnter | | اشارهگر وارد پنجره شد. |
| خروج اشاره گر | PointerLeave | | اشارهگر از پنجره بیرون رفت. |
| فشردن دکمه | PointerDown | | دکمهای از موشی فشرده شد؛ دکمه و شمار کلیک را ببینید. |
| رها کردن دکمه | PointerUp | | دکمهای از موشی رها شد. |
| چرخش چرخ | Wheel | | چرخ یا صفحهی لمسی پیمایش کرد؛ فیلدهای جابجایی را ببینید. |
| فشردن کلید | KeyDown | | کلیدی فشرده شد یا تکرار میشود. |
| رها کردن کلید | KeyUp | | کلیدی رها شد. |
| ورود متن | TextInput | | متن تایپشده، جدا از رویدادهای کلید، در متن. |
| پیش نویس نویسه ساز | ImePreedit | | متن در حال ساخت نویسهساز عوض شد؛ متن خالی یعنی تمام شد. |
| ثبت نویسه ساز | ImeCommit | | نویسهساز متن را ثبت کرد. |
| تغییر طرح رنگ | ColorSchemeChanged | | سیستم میان روشن و تیره جابهجا شد؛ طرح را ببینید. |
| زنگ زمان سنج | Timer | | زمانسنجی از تنظیم زمان سنج زنگ زد؛ زمان سنج شمارهی آن است. |
| بیدارباش | Wake | | رشتهی دیگری بیدار کردن را صدا زد. |
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
تابع ریشه:
پنجره ها.تنظیم ساعت دستی(درست)
w := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { پهنا = 300.0، بلندی = 200.0، بی سر = درست })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.فشردن دکمه، شماره پنجره = w.شناسه، ایکس = 10.0، ایگرگ = 20.0، دکمه = پنجره ها.دکمهموشی.دکمه چپ })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.فشردن دکمه، شماره پنجره = w.شناسه، ایکس = 10.0، ایگرگ = 20.0، دکمه = پنجره ها.دکمهموشی.دکمه چپ })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.فشردن کلید، شماره پنجره = w.شناسه، کلید = پنجره ها.کلیدها.کلید ورود، کد فیزیکی = 36، کلیدهای تغییر = پنجره ها.تغییرکنترل })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.ورود متن، شماره پنجره = w.شناسه، متن = "سلام" })
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.چرخش چرخ، شماره پنجره = w.شناسه، جابجایی عمودی = 1.0، واحد جابجایی = پنجره ها.واحدچرخش.چرخش خطی })
ناپایا e := پنجره ها.سرکشی رویداد()
تا e.نوع نابرابر پنجره ها.نوعرویداد.هیچ رویداد:
ترابرد e.نوع:
پنجره ها.نوعرویداد.فشردن دکمه:
سرچاپ "down"، e.ایکس، e.ایگرگ، e.دکمه برابر پنجره ها.دکمهموشی.دکمه چپ، "clicks"، e.شمار کلیک
بشکن
پایان
پنجره ها.نوعرویداد.فشردن کلید:
سرچاپ "key"، e.کلید برابر پنجره ها.کلیدها.کلید ورود، e.کد فیزیکی، (e.کلیدهای تغییر & پنجره ها.تغییرکنترل) نابرابر 0، e.تکراری
بشکن
پایان
پنجره ها.نوعرویداد.ورود متن:
سرچاپ "text"، e.متن
بشکن
پایان
پنجره ها.نوعرویداد.چرخش چرخ:
سرچاپ "wheel"، e.جابجایی افقی، e.جابجایی عمودی، e.واحد جابجایی برابر پنجره ها.واحدچرخش.چرخش خطی
بشکن
پایان
وگرنه:
سرچاپ "other"، e.نوع برگردان صحیح، e.شماره پنجره
بشکن
پایان
پایان
e = پنجره ها.انتظار رویداد(0)
پایان
w.بستن()
پایاندکمهموشی MouseButton
جداشمار دکمهموشی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| بدون دکمه | None | | بدون دکمه، مانند رویداد حرکت. |
| دکمه چپ | Left | | دکمهی اصلی. |
| دکمه راست | Right | | دکمهی دوم. |
| دکمه میانی | Middle | | دکمهی چرخ. |
| دکمه عقب | Back | | دکمهی کناری عقب. |
| دکمه جلو | Forward | | دکمهی کناری جلو. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
واحدچرخش WheelMode
جداشمار واحدچرخش| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| چرخش نقطه ای | Pixel | | نقطهی منطقی، از صفحهی لمسی یا چرخ دقیق. |
| چرخش خطی | Line | | خط، از چرخ پلهدار موشی. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
طرحرنگ ColorScheme
جداشمار طرحرنگ| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| روشن | Light | | نمای روشن. |
| تیره | Dark | | نمای تیره. |
// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
واردسازی حافظه
تابع ریشه:
first := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { بی سر = درست، نمایان = نادرست })
second := پنجره ها.باز کردن(پنجره ها.گزینهپنجره { بی سر = درست، نمایان = نادرست })
سرچاپ پنجره ها.شمار پنجره های باز()، first.شناسه، second.شناسه
سرچاپ پنجره ها.تنظیم متن کلیپ بورد("hello")
text := پنجره ها.متن کلیپ بورد()
سرچاپ text
حافظه.آزادسازی(text برگردان تهی*)
سرچاپ پنجره ها.طرح رنگ کنونی() برابر پنجره ها.طرحرنگ.روشن
پنجره ها.تزریق رویداد(پنجره ها.رویداد { نوع = پنجره ها.نوعرویداد.تغییر طرح رنگ، طرح = پنجره ها.طرحرنگ.تیره })
e := پنجره ها.سرکشی رویداد()
سرچاپ e.طرح برابر پنجره ها.طرحرنگ.تیره، پنجره ها.طرح رنگ کنونی() برابر پنجره ها.طرحرنگ.تیره
سرچاپ پنجره ها.آخرین خطا() برابر ""
second.بستن()
سرچاپ پنجره ها.شمار پنجره های باز()
پایانشکلنشانگر Cursor
جداشمار شکلنشانگر| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نشانگر پیش فرض | Default | | پیکان. |
| نشانگر دست | Pointer | | دست، برای پیوندها و دکمهها. |
| نشانگر متن | Text | | نشانگر متن. |
| نشانگر انتظار | Wait | | مشغول. مک نشانگر مشغول همگانی ندارد و پیکان نشان میدهد. |
| نشانگر بعلاوه | Crosshair | | نشانگر ضربدری برای نشانهگیری دقیق. |
| نشانگر جابجایی | Move | | جابهجایی به هر سو. |
| نشانگر کشش افقی | ResizeHorizontal | | تغییر اندازه به چپ و راست. |
| نشانگر کشش عمودی | ResizeVertical | | تغییر اندازه به بالا و پایین. |
| نشانگر کشش مورب بالا | ResizeDiagonalUp | | تغییر اندازه در قطر پایینچپ به بالاراست. |
| نشانگر کشش مورب پایین | ResizeDiagonalDown | | تغییر اندازه در قطر بالاچپ به پایینراست. |
| نشانگر ممنوع | NotAllowed | | ممنوع. |
| نشانگر پنهان | Hidden | | بیاشارهگر. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
کلیدها Key
جداشمار کلیدهاورود متن بهره بگیرید.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| کلید ناشناخته | Unknown | | کلید ناشناخته، شناختهشده با جای آن روی صفحهکلید. |
| کلید ای | A | | کلید ای، شناختهشده با جای آن روی صفحهکلید. |
| کلید بی | B | | کلید بی، شناختهشده با جای آن روی صفحهکلید. |
| کلید سی | C | | کلید سی، شناختهشده با جای آن روی صفحهکلید. |
| کلید دی | D | | کلید دی، شناختهشده با جای آن روی صفحهکلید. |
| کلید ایی | E | | کلید ایی، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف | F | | کلید اف، شناختهشده با جای آن روی صفحهکلید. |
| کلید جی | G | | کلید جی، شناختهشده با جای آن روی صفحهکلید. |
| کلید اچ | H | | کلید اچ، شناختهشده با جای آن روی صفحهکلید. |
| کلید آی | I | | کلید آی، شناختهشده با جای آن روی صفحهکلید. |
| کلید جه | J | | کلید جه، شناختهشده با جای آن روی صفحهکلید. |
| کلید کی | K | | کلید کی، شناختهشده با جای آن روی صفحهکلید. |
| کلید ال | L | | کلید ال، شناختهشده با جای آن روی صفحهکلید. |
| کلید ام | M | | کلید ام، شناختهشده با جای آن روی صفحهکلید. |
| کلید ان | N | | کلید ان، شناختهشده با جای آن روی صفحهکلید. |
| کلید او | O | | کلید او، شناختهشده با جای آن روی صفحهکلید. |
| کلید پی | P | | کلید پی، شناختهشده با جای آن روی صفحهکلید. |
| کلید کیو | Q | | کلید کیو، شناختهشده با جای آن روی صفحهکلید. |
| کلید آر | R | | کلید آر، شناختهشده با جای آن روی صفحهکلید. |
| کلید اس | S | | کلید اس، شناختهشده با جای آن روی صفحهکلید. |
| کلید تی | T | | کلید تی، شناختهشده با جای آن روی صفحهکلید. |
| کلید یو | U | | کلید یو، شناختهشده با جای آن روی صفحهکلید. |
| کلید وی | V | | کلید وی، شناختهشده با جای آن روی صفحهکلید. |
| کلید دبلیو | W | | کلید دبلیو، شناختهشده با جای آن روی صفحهکلید. |
| کلید اکس | X | | کلید اکس، شناختهشده با جای آن روی صفحهکلید. |
| کلید وای | Y | | کلید وای، شناختهشده با جای آن روی صفحهکلید. |
| کلید زد | Z | | کلید زد، شناختهشده با جای آن روی صفحهکلید. |
| کلید صفر | Digit0 | | کلید صفر، شناختهشده با جای آن روی صفحهکلید. |
| کلید یک | Digit1 | | کلید یک، شناختهشده با جای آن روی صفحهکلید. |
| کلید دو | Digit2 | | کلید دو، شناختهشده با جای آن روی صفحهکلید. |
| کلید سه | Digit3 | | کلید سه، شناختهشده با جای آن روی صفحهکلید. |
| کلید چهار | Digit4 | | کلید چهار، شناختهشده با جای آن روی صفحهکلید. |
| کلید پنج | Digit5 | | کلید پنج، شناختهشده با جای آن روی صفحهکلید. |
| کلید شش | Digit6 | | کلید شش، شناختهشده با جای آن روی صفحهکلید. |
| کلید هفت | Digit7 | | کلید هفت، شناختهشده با جای آن روی صفحهکلید. |
| کلید هشت | Digit8 | | کلید هشت، شناختهشده با جای آن روی صفحهکلید. |
| کلید نه | Digit9 | | کلید نه، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۱ | F1 | | کلید اف۱، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۲ | F2 | | کلید اف۲، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۳ | F3 | | کلید اف۳، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۴ | F4 | | کلید اف۴، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۵ | F5 | | کلید اف۵، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۶ | F6 | | کلید اف۶، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۷ | F7 | | کلید اف۷، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۸ | F8 | | کلید اف۸، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۹ | F9 | | کلید اف۹، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۱۰ | F10 | | کلید اف۱۰، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۱۱ | F11 | | کلید اف۱۱، شناختهشده با جای آن روی صفحهکلید. |
| کلید اف۱۲ | F12 | | کلید اف۱۲، شناختهشده با جای آن روی صفحهکلید. |
| کلید گریز | Escape | | کلید گریز، شناختهشده با جای آن روی صفحهکلید. |
| کلید ورود | Enter | | کلید ورود، شناختهشده با جای آن روی صفحهکلید. |
| کلید جهش | Tab | | کلید جهش، شناختهشده با جای آن روی صفحهکلید. |
| کلید پسزن | Backspace | | کلید پسزن، شناختهشده با جای آن روی صفحهکلید. |
| کلید فاصله | Space | | کلید فاصله، شناختهشده با جای آن روی صفحهکلید. |
| کلید درج | Insert | | کلید درج، شناختهشده با جای آن روی صفحهکلید. |
| کلید حذف | Delete | | کلید حذف، شناختهشده با جای آن روی صفحهکلید. |
| کلید آغاز خط | Home | | کلید آغاز خط، شناختهشده با جای آن روی صفحهکلید. |
| کلید انتهای خط | End | | کلید انتهای خط، شناختهشده با جای آن روی صفحهکلید. |
| کلید برگ بالا | PageUp | | کلید صفحه بالا، شناختهشده با جای آن روی صفحهکلید. |
| کلید برگ پایین | PageDown | | کلید صفحه پایین، شناختهشده با جای آن روی صفحهکلید. |
| کلید چپ | Left | | کلید چپ، شناختهشده با جای آن روی صفحهکلید. |
| کلید راست | Right | | کلید راست، شناختهشده با جای آن روی صفحهکلید. |
| کلید بالا | Up | | کلید بالا، شناختهشده با جای آن روی صفحهکلید. |
| کلید پایین | Down | | کلید پایین، شناختهشده با جای آن روی صفحهکلید. |
| کلید شیفت چپ | ShiftLeft | | کلید شیفت چپ، شناختهشده با جای آن روی صفحهکلید. |
| کلید شیفت راست | ShiftRight | | کلید شیفت راست، شناختهشده با جای آن روی صفحهکلید. |
| کلید کنترل چپ | ControlLeft | | کلید کنترل چپ، شناختهشده با جای آن روی صفحهکلید. |
| کلید کنترل راست | ControlRight | | کلید کنترل راست، شناختهشده با جای آن روی صفحهکلید. |
| کلید آلت چپ | AltLeft | | کلید آلت چپ، شناختهشده با جای آن روی صفحهکلید. |
| کلید آلت راست | AltRight | | کلید آلت راست، شناختهشده با جای آن روی صفحهکلید. |
| کلید سوپر چپ | SuperLeft | | کلید سوپر چپ، شناختهشده با جای آن روی صفحهکلید. |
| کلید سوپر راست | SuperRight | | کلید سوپر راست، شناختهشده با جای آن روی صفحهکلید. |
| کلید قفل بزرگ | CapsLock | | کلید قفل بزرگ، شناختهشده با جای آن روی صفحهکلید. |
| کلید منها | Minus | | کلید منها، شناختهشده با جای آن روی صفحهکلید. |
| کلید مساوی | Equal | | کلید مساوی، شناختهشده با جای آن روی صفحهکلید. |
| کلید کروشه باز | BracketLeft | | کلید کروشه باز، شناختهشده با جای آن روی صفحهکلید. |
| کلید کروشه بسته | BracketRight | | کلید کروشه بسته، شناختهشده با جای آن روی صفحهکلید. |
| کلید بک اسلش | Backslash | | کلید بک اسلش، شناختهشده با جای آن روی صفحهکلید. |
| کلید نقطه ویرگول | Semicolon | | کلید نقطه ویرگول، شناختهشده با جای آن روی صفحهکلید. |
| کلید نقل قول | Quote | | کلید نقل قول، شناختهشده با جای آن روی صفحهکلید. |
| کلید بک کوت | Backquote | | کلید بک کوت، شناختهشده با جای آن روی صفحهکلید. |
| کلید ویرگول | Comma | | کلید ویرگول، شناختهشده با جای آن روی صفحهکلید. |
| کلید نقطه | Period | | کلید نقطه، شناختهشده با جای آن روی صفحهکلید. |
| کلید اسلش | Slash | | کلید اسلش، شناختهشده با جای آن روی صفحهکلید. |
| کلید بک اسلش جهانی | IntlBackslash | | کلید بک اسلش جهانی، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی صفر | Numpad0 | | کلید عددی صفر، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی یک | Numpad1 | | کلید عددی یک، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی دو | Numpad2 | | کلید عددی دو، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی سه | Numpad3 | | کلید عددی سه، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی چهار | Numpad4 | | کلید عددی چهار، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی پنج | Numpad5 | | کلید عددی پنج، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی شش | Numpad6 | | کلید عددی شش، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی هفت | Numpad7 | | کلید عددی هفت، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی هشت | Numpad8 | | کلید عددی هشت، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی نه | Numpad9 | | کلید عددی نه، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی جمع | NumpadAdd | | کلید عددی جمع، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی تفریق | NumpadSubtract | | کلید عددی تفریق، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی ضرب | NumpadMultiply | | کلید عددی ضرب، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی تقسیم | NumpadDivide | | کلید عددی تقسیم، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی ممیز | NumpadDecimal | | کلید عددی ممیز، شناختهشده با جای آن روی صفحهکلید. |
| کلید عددی ورود | NumpadEnter | | کلید عددی ورود، شناختهشده با جای آن روی صفحهکلید. |
| کلید قفل اعداد | NumLock | | کلید قفل اعداد، شناختهشده با جای آن روی صفحهکلید. |
| کلید قفل پیمایش | ScrollLock | | کلید قفل پیمایش، شناختهشده با جای آن روی صفحهکلید. |
| کلید تصویربرداری | PrintScreen | | کلید چاپ صفحه، شناختهشده با جای آن روی صفحهکلید. |
| کلید مکث | Pause | | کلید مکث، شناختهشده با جای آن روی صفحهکلید. |
| کلید منوی زمینه | ContextMenu | | کلید منوی زمینه، شناختهشده با جای آن روی صفحهکلید. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
گزینهپنجره Options
ساختار گزینهپنجره| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| عنوان | title | رشته = "Salam" | متن نوار عنوان. |
| پهنا | width | اعشار۶۴ = 800 | پهنای ناحیهی رسم. |
| بلندی | height | اعشار۶۴ = 600 | بلندی ناحیهی رسم. |
| کمترین پهنا | min_width | اعشار۶۴ = 0 | کمترین پهنایی که کاربر میتواند بکشد؛ ۰ یعنی بیمرز. |
| کمترین بلندی | min_height | اعشار۶۴ = 0 | کمترین بلندی؛ ۰ یعنی بیمرز. |
| بیشترین پهنا | max_width | اعشار۶۴ = 0 | بیشترین پهنا؛ ۰ یعنی بیمرز. |
| بیشترین بلندی | max_height | اعشار۶۴ = 0 | بیشترین بلندی؛ ۰ یعنی بیمرز. |
| تغییرپذیر | resizable | منطقی = درست | آیا کاربر میتواند اندازه را عوض کند. |
| قاب دار | decorated | منطقی = درست | آیا پنجره نوار عنوان و قاب دارد. |
| وسط صفحه نمایش | centered | منطقی = درست | در میانهی نمایشگر باز شود، نه در ایکس و ایگرگ. |
| ایکس | x | اعشار۶۴ = 0 | لبهی چپ روی نمایشگر، وقتی در میانه نیست. |
| ایگرگ | y | اعشار۶۴ = 0 | لبهی بالا روی نمایشگر، وقتی در میانه نیست. |
| رنگ زمینه | background | طبیعی۳۲ = 4294967295 | رنگی که پیش از نخستین قاب دیده میشود، به شکل 0xRRGGBBAA. |
| نمایان | visible | منطقی = درست | پنجره همان دم باز شدن نمایش داده شود. |
| بی سر | headless | منطقی = نادرست | پنجره تنها در حافظه بماند، برای آزمون و رسم بدون نمایشگر. |
| مقیاس | scale | اعشار۶۴ = 0 | ضریب مقیاس را ثابت میکند؛ ۰ آن را از سیستم (یا SALAM_SCALE_FACTOR) میپرسد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
رویداد Event
ساختار رویدادانتظار رویداد یا سرکشی رویداد. تنها فیلدهایی که به نوع آن میخورند پر میشوند.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نوع | kind | نوعرویداد | آنچه رخ داد. |
| شماره پنجره | window | صحیح = -1 | شناسهی پنجرهی رویداد، یا -۱ برای رویدادهای برنامه. |
| ایکس | x | اعشار۶۴ = 0 | جای اشارهگر از چپ، نقطهی منطقی. |
| ایگرگ | y | اعشار۶۴ = 0 | جای اشارهگر از بالا، نقطهی منطقی. |
| پهنا | width | اعشار۶۴ = 0 | پهنای منطقی تازه. |
| بلندی | height | اعشار۶۴ = 0 | بلندی منطقی تازه. |
| پهنای فیزیکی | physical_width | صحیح = 0 | پهنای تازه بر حسب نقطهی دستگاه. |
| بلندی فیزیکی | physical_height | صحیح = 0 | بلندی تازه بر حسب نقطهی دستگاه. |
| مقیاس | scale | اعشار۶۴ = 0 | ضریب مقیاس. |
| دکمه | button | دکمهموشی | دکمهی موشی. |
| شمار کلیک | clicks | صحیح = 0 | ۱ برای تککلیک، ۲ برای دوکلیک و همینطور. |
| کلیدهای تغییر | modifiers | صحیح = 0 | بیتهای کلیدهای تغییر که هنگام رویداد نگه داشته شده بودند. |
| جابجایی افقی | delta_x | اعشار۶۴ = 0 | پیمایش افقی؛ مثبت به راست. |
| جابجایی عمودی | delta_y | اعشار۶۴ = 0 | پیمایش عمودی؛ مثبت به پایین، مانند رویداد wheel در وب. |
| واحد جابجایی | delta_mode | واحدچرخش | اینکه جابجاییها نقطهاند یا خط. |
| کلید | key | کلیدها | کلید با جای آن. |
| کد فیزیکی | code | صحیح = 0 | کد خام کلید در سیستم (کد کلید X11، کد پویش ویندوز، کد کلید مک). |
| تکراری | repeated | منطقی = نادرست | وقتی کلید به خاطر نگه داشتن تکرار میشود درست است. |
| متن | text | رشته = "" | متن تایپشده یا ساختهشده در UTF-8. تا انتظار رویداد یا سرکشی رویداد بعدی معتبر است؛ برای نگه داشتن، رونوشت بگیرید. |
| جای نشانگر | cursor | صحیح = 0 | جای نشانگر درون متن در حال ساخت، بر حسب بایت. |
| طرح | scheme | طرحرنگ | طرح رنگ تازه. |
| زمان سنج | timer | صحیح = 0 | شمارهی زمانسنجی که زنگ زد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
پنجره Window
ساختار پنجره| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| شناسه | id | صحیح = -1 | شمارهی پنجره؛ رویدادها آن را در شماره پنجره دارند. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
باز است IsOpen
تابع باز است(): منطقیآخرین خطا را ببینید.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
بی سر است IsHeadless
تابع بی سر است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
متمرکز است IsFocused
تابع متمرکز است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم عنوان SetTitle
تابع تنظیم عنوان(title: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
عنوان پنجره Title
تابع عنوان پنجره(): رشتهتنظیم عنوان بعدی معتبر است.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم اندازه SetSize
تابع تنظیم اندازه(width: اعشار۶۴، height: اعشار۶۴)تغییر اندازه میآید.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
اندازه Size
تابع اندازه(): اندازهپنجرهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
ضریب مقیاس ScaleFactor
تابع ضریب مقیاس(): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
ارائه Present
تابع ارائه(pixels: تهی*، width: صحیح، height: صحیح، stride: صحیح، damage: وکتور<مستطیل>): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
ارائه کامل PresentAll
تابع ارائه کامل(pixels: تهی*، width: صحیح، height: صحیح، stride: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
درخواست بازکشی دوباره RequestRedraw
تابع درخواست بازکشی دوباره()درخواست بازکشی میخواهد؛ درخواستهای پیاپی یکی میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم نشانگر SetCursor
تابع تنظیم نشانگر(cursor: شکلنشانگر)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم جای نویسه ساز SetImeRect
تابع تنظیم جای نویسه ساز(x: اعشار۶۴، y: اعشار۶۴، width: اعشار۶۴، height: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم کمترین اندازه SetMinSize
تابع تنظیم کمترین اندازه(width: اعشار۶۴، height: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم بیشترین اندازه SetMaxSize
تابع تنظیم بیشترین اندازه(width: اعشار۶۴، height: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
کمینه کردن Minimize
تابع کمینه کردن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
بیشینه کردن Maximize
تابع بیشینه کردن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
بازگرداندن Restore
تابع بازگرداندن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم تمام صفحه SetFullscreen
تابع تنظیم تمام صفحه(enabled: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تمام صفحه است IsFullscreen
تابع تمام صفحه است(): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
متمرکز کردن Focus
تابع متمرکز کردن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
بستن Close
تابع بستن()نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
تنظیم نماد SetIcon
تابع تنظیم نماد(pixels: تهی*، width: صحیح، height: صحیح، stride: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
نقطه در PixelAt
تابع نقطه در(x: صحیح، y: صحیح): طبیعی۳۲0xAARRGGBB میخواند، یا بیرون از آن ۰.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
نقطه نمایش داده شده ShownPixel
تابع نقطه نمایش داده شده(x: صحیح، y: صحیح): طبیعی۳۲نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
شمار ارائه PresentCount
تابع شمار ارائه(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
آخرین ناحیه تغییر LastDamage
تابع آخرین ناحیه تغییر(): مستطیلنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
شمار آخرین ناحیه ها LastDamageCount
تابع شمار آخرین ناحیه ها(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Present.salam
نشانگر کنونی CurrentCursor
تابع نشانگر کنونی(): شکلنشانگرنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
جای نویسه ساز ImeRect
تابع جای نویسه ساز(): مستطیلنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
دستگیره Handle
تابع دستگیره(): تهی*HWND یا یک NSWindow؛ برای پنجرهی بیسر پوچ.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
پایاها و متغیرها
تغییرشیفت mod_shift
پایا تغییرشیفت: صحیح۳۲ = 1کلیدهای تغییر که هنگام نگه داشتن Shift روشن است.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
تغییرکنترل mod_control
پایا تغییرکنترل: صحیح۳۲ = 2نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
تغییرآلت mod_alt
پایا تغییرآلت: صحیح۳۲ = 4نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
تغییرسوپر mod_super
پایا تغییرسوپر: صحیح۳۲ = 8نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
تابعها
باز کردن Open
تابع باز کردن(options: گزینهپنجره): پنجرهباز است را بسنجید: بدون سیستم پنجره، پنجرهای بسته برمیگردد و آخرین خطا دلیلش را میگوید.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Open.salam
آخرین خطا LastError
تابع آخرین خطا(): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-App.salam
انتظار رویداد Wait
تابع انتظار رویداد(timeout_ms: صحیح): رویدادtimeout_ms میلیثانیه (-۱ برای بیپایان) منتظر رویداد بعدی میماند و زمانسنجهای رسیده را به زنگ درمیآورد. با پایان زمان، رویدادی از نوع هیچ رویداد برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
سرکشی رویداد Poll
تابع سرکشی رویداد(): رویدادنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
تزریق رویداد Inject
تابع تزریق رویداد(event: رویداد)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Event.salam
تنظیم زمان سنج SetTimer
تابع تنظیم زمان سنج(ms: صحیح، repeating: منطقی): صحیحms میلیثانیه یا یک بار زنگ میزند و شمارهاش را برمیگرداند.// زبان: فارسی
واردسازی رابط گرافیکی.پنجره ها
تابع ریشه:
پنجره ها.تنظیم ساعت دستی(درست)
tick := پنجره ها.تنظیم زمان سنج(100، درست)
once := پنجره ها.تنظیم زمان سنج(250، نادرست)
تکرار 4:
e := پنجره ها.انتظار رویداد(-1)
سرچاپ e.نوع برابر پنجره ها.نوعرویداد.زنگ زمان سنج، e.زمان سنج برابر tick ? "tick" : "once"، پنجره ها.ساعت()
پایان
پنجره ها.پاک کردن زمان سنج(tick)
پنجره ها.جلو بردن ساعت(1000)
سرچاپ پنجره ها.ساعت()، پنجره ها.انتظار رویداد(10).نوع برابر پنجره ها.نوعرویداد.هیچ رویداد
پنجره ها.بیدار کردن()
سرچاپ پنجره ها.انتظار رویداد(-1).نوع برابر پنجره ها.نوعرویداد.بیدارباش، once بزرگتر tick
پایانپاک کردن زمان سنج ClearTimer
تابع پاک کردن زمان سنج(id: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Timer.salam
بیدار کردن Wake
تابع بیدار کردن()انتظار رویداد را از هر رشتهای با رویداد بیدارباش میشکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Timer.salam
تنظیم ساعت دستی SetManualClock
تابع تنظیم ساعت دستی(enabled: منطقی)انتظار رویداد به زمانسنج بعدی یا با جلو بردن ساعت جلو میرود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Timer.salam
ساعت Clock
تابع ساعت(): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Timer.salam
جلو بردن ساعت Advance
تابع جلو بردن ساعت(ms: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-Timer.salam
متن کلیپ بورد ClipboardText
تابع متن کلیپ بورد(): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-App.salam
تنظیم متن کلیپ بورد SetClipboardText
تابع تنظیم متن کلیپ بورد(text: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-App.salam
طرح رنگ کنونی CurrentColorScheme
تابع طرح رنگ کنونی(): طرحرنگنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-App.salam
شمار پنجره های باز OpenWindows
تابع شمار پنجره های باز(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-window-App.salam