حروفچینی gui.typeset
متن برای رابط بومی: قلم، قلم جایگزین، شکلدهی اوپنتایپ، دوسویه، شکستن خط، چیدن بند، ماسک گلیف و هندسهی نشانگر.
واردسازی رابط گرافیکی.حروفچینی
نام آرگومانها شناسهی خود کد است و معادل فارسی ندارد؛ گونهها، کلیدواژهها و نام بستهها با معادل فارسی نوشته میشوند.
این بسته متن سبکدار را به خطهایی از گلیفهای جایگذاریشده تبدیل میکند و این گلیفها را به صورت ماسک پوشش رسم میکند. نیمهی متنی رابط بومی سلام است: زبان صفحه هر سرتیتر، بند و ورودی را با آن میچیند و نقاش ماسکهایش را با پیکسلها میآمیزد. به زبان سلام و بدون هیچ کتابخانهی بیرونی نوشته شده و متن فارسی و متن آمیختهی فارسی و انگلیسی کار اصلی آن است.
گامها همان گامهای مرورگر است. یک FontCollection قلمها را نگه میدارد، برای هر نویسه از فهرست خانوادهها مثل font-family چهرهای برمیگزیند و برای هر خط به چهرههای دیگر، از جمله قلمهای سیستم، برمیگردد. NewParagraph تکههای سبکدار را به دنبالههای دوسویه، خط و قلم بخش میکند و هر دنباله را یک بار با جدولهای اوپنتایپ قلم شکل میدهد: شکلهای پیوسته، ترکیبها، فاصلهگذاری و جای اعراب. LayoutParagraph خطها را در هر پهنایی بی شکلدهی دوباره میشکند، هر خط را برای متن راستبهچپ میچیند و تراز میکند. RasterizeGlyph و GlyphCache ماسک ۸ بیتی میدهند و HitTest، CaretRect و SelectionRects هندسهای را که یک ویرایشگر لازم دارد.
نکتههایی که باید بدانید
- فقط طرح TrueType پشتیبانی میشود. قلمهایی با طرح CFF (بیشتر پروندههای
.otf) را مجموعه کنار میگذارد وLoadFontنمیپذیرد. - جایها جای بایت UTF-8 در
Paragraph.textهستند که متن همهی تکهها پشت سر هم است.SpanAtیک جای بایت را به تکهاش برمیگرداند و هر دنبالهی گلیفtagتکهاش را دارد. - حساب چیدن با ممیز ثابت و به یک شصتوچهارم پیکسل است و ماسکها با حساب صحیح ساخته میشوند، پس عددها و پیکسلها در هر سیستمعامل و پشتی یکی است.
- اگر قلم ویژگیهای پیوستن عربی را نداشته باشد شکلدهی از شکلهای نمایشی یونیکد استفاده میکند، مثل کاری که
std/ai/imageهمیشه میکرد؛ آن بسته اکنون برای قلم از همین بسته استفاده میکند. - ماسکی که
CachedGlyphمیدهد مال نهانگاه است و تا فراخوانی بعدی که ممکن است آن را بیرون کند معتبر است؛ پیش از خواستن گلیف دیگر رسمش کنید. - نمونهها قلمها را از پوشهی
books/fontsمخزن سلام میخوانند.
چیدن یک بند آمیختهی فارسی و انگلیسی
هر تکه فهرست خانواده و اندازهی خودش را دارد و برچسب نشان میدهد هر دنباله از کدام عنصر آمده است. بند یک بار شکل میگیرد و سپس در دو پهنا چیده میشود. در این بند راستبهچپ واژهی انگلیسی ترتیب چپبهراست خودش را درون خط نگه میدارد و هر خط به سمت راست، یعنی سمت آغاز، تراز میشود.
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
تابع ریشه:
fonts := مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/")
ناپایا fc := حروفچینی.مجموعه قلم تازه()
حروفچینی.افزودن پرونده قلم(fc، fonts + "XB Zar.ttf")
حروفچینی.افزودن پرونده قلم(fc، fonts + "DejaVuSansMono.ttf")
ناپایا spans := وکتور {} برگردان وکتور<حروفچینی.تکه متن>
spans.بیفزا(حروفچینی.تکه متن { متن = "زبان برنامهنویسی "، خانوادههای قلم = "XB Zar"، اندازه = 20.0، برچسب = 1 })
spans.بیفزا(حروفچینی.تکه متن { متن = "Salam"، خانوادههای قلم = "DejaVu Sans Mono"، اندازه = 16.0، برچسب = 2 })
spans.بیفزا(حروفچینی.تکه متن { متن = " متن فارسی را درست میچیند."، خانوادههای قلم = "XB Zar"، اندازه = 20.0، برچسب = 3 })
ناپایا p := حروفچینی.بند تازه(fc، spans، حروفچینی.سبک بند {})
سرچاپ "min"، حروفچینی.پهنای کمینه محتوا(p)، "max"، حروفچینی.پهنای بیشینه محتوا(p)
هر width در [400.0، 160.0]:
ناپایا l := حروفچینی.چیدن بند(p، fc، width)
سرچاپ "width"، width، "lines"، l.خطها.طول()، "height"، l.بلندی
هر line در l.خطها:
چاپ " baseline "، line.خط پایه، ":"
ناپایا k := line.آغاز دنباله
تا k کوچکتر line.آغاز دنباله + line.شمار دنباله:
run := l.دنبالهها.بگیر(k)
اگر run.شمار گلیف بزرگتر 0:
چاپ " [tag "، run.برچسب، " x "، run.ایکس، (run.راست به چپ ? " rtl" : " ltr")، "]"
پایان
k++
پایان
سرچاپ ""
پایان
حروفچینی.آزادسازی چیدمان(l)
پایان
حروفچینی.آزادسازی بند(p)
spans.آزادکن()
حروفچینی.آزادسازی مجموعه قلم(fc)
پایانMinContentWidth و MaxContentWidth همان چیزی است که چیدمان فلکس یا جدول پیش از تعیین پهنا لازم دارد. با تغییر پهنا فقط LayoutParagraph دوباره فراخوانده میشود و قلمها و شکلدهی در بند میمانند.
نشانگر و گزینش در یک ورودی متن
یک ورودی یک TextPosition نگه میدارد: جای بایت و اینکه به متن پیش از خود میچسبد یا نه. HitTest یک کلیک را به جای متن تبدیل میکند، MoveVisual آن را مثل کلیدهای جهت روی صفحه جابجا میکند و CaretRect میگوید کجا رسم شود. در خطی با دو جهت، نشانگر از روی حرفهای انگلیسی همانطور میگذرد که چشم روی صفحه دنبال میکند.
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
تابع ریشه:
ناپایا fc := حروفچینی.مجموعه قلم تازه()
حروفچینی.افزودن پرونده قلم(fc، مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/XB Zar.ttf"))
ناپایا spans := وکتور {} برگردان وکتور<حروفچینی.تکه متن>
spans.بیفزا(حروفچینی.تکه متن { متن = "سلام ABC دنیا"، خانوادههای قلم = "XB Zar"، اندازه = 20.0 })
ناپایا st := حروفچینی.سبک بند {}
st.فاصلههای سفید = حروفچینی.فاصله سفید.PreWrap
ناپایا p := حروفچینی.بند تازه(fc، spans، st)
ناپایا l := حروفچینی.چیدن بند(p، fc، 0.0)
ناپایا pos := حروفچینی.آزمون برخورد(p، l، l.پهنا، 10.0)
سرچاپ "click at the right edge: offset"، pos.جابجایی
تکرار 6:
pos = حروفچینی.جابجایی دیداری(p، l، pos، نادرست)
caret := حروفچینی.مستطیل نشانگر(p، l، pos)
سرچاپ "left arrow: offset"، pos.جابجایی، "caret x"، caret.ایکس
پایان
rects := حروفچینی.مستطیلهای گزینش(p، l، 6، 15)
سرچاپ "selection of 'م ABC د' needs"، rects.طول()، "rectangles"
rects.آزادکن()
حروفچینی.آزادسازی چیدمان(l)
حروفچینی.آزادسازی بند(p)
spans.آزادکن()
حروفچینی.آزادسازی مجموعه قلم(fc)
پایانگزینش بازهای که از مرز دو جهت میگذرد ممکن است بیش از یک مستطیل بخواهد؛ اینجا یکی است چون تکههای گزیده روی صفحه کنار هم هستند. NextGrapheme و NextWordEnd جابجایی منطقی برای پاک کردن و کلید کنترل با جهت را میدهند.
گونهها
چهره قلم FontFace
ساختار چهره قلم| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| مسیر | path | رشته = "" | پروندهی چهره؛ برای بایتها خالی است. |
| اندیس چهره | index | صحیح = 0 | شمارهی چهره در پرونده. |
| خانواده | family | رشته = "" | نام خانواده. |
| سبک | style | رشته = "" | نام سبک. |
| وزن | weight | صحیح = 400 | وزن. |
| مورب | italic | منطقی = نادرست | چهره مورب است. |
| بارشده | loaded | منطقی = نادرست | دادهی قلم در حافظه است. |
| ناموفق | failed | منطقی = نادرست | بارگذاری پرونده شکست خورد و چهره کنار گذاشته میشود. |
| قلم بارشده | font | قلم | قلم بارشده. |
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
واردسازی بایگانی
واردسازی فشرده سازی
تابع font_path(name: رشته): رشته:
برگشت مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/" + name)
پایان
تابع ریشه:
ناپایا ok := نادرست
ناپایا f := حروفچینی.بارگذاری قلم(font_path("XB Zar.ttf")، ok)
m := حروفچینی.متریکها(f)
سرچاپ حروفچینی.نام خانواده(f)، حروفچینی.نام سبک قلم(f)، حروفچینی.نام کامل قلم(f)، حروفچینی.متن نام(f، 1)
سرچاپ حروفچینی.وزن قلم(f)، حروفچینی.مورب است(f)، حروفچینی.واحد در ام(f)، حروفچینی.تعداد نویسهها(f)، حروفچینی.قلم معتبر(f)
سرچاپ m.صعود، m.نزول، m.فاصله سطرها، m.ارتفاع ایکس، m.ارتفاع حرف بزرگ، m.جای زیرخط، m.ضخامت زیرخط، m.واحد ام
سرچاپ حروفچینی.ضریب مقیاس(f، 20.48)، حروفچینی.صعود پیکسلی(f، 20.48)، حروفچینی.نزول پیکسلی(f، 20.48)، حروفچینی.ارتفاع خط پیکسلی(f، 20.48)
beh := حروفچینی.اندیس نویسه(f، 0x0628)
ناپایا x0 := 0
ناپایا y0 := 0
ناپایا x1 := 0
ناپایا y1 := 0
سرچاپ beh، حروفچینی.پیشروی نویسه(f، beh)، حروفچینی.کادر نویسه(f، beh، x0، y0، x1، y1)، x0، y0، x1، y1، حروفچینی.نویسه طرح دارد(f، beh)
سرچاپ حروفچینی.کرنینگ(f، beh، beh)
حروفچینی.آزادسازی قلم(f)
ناپایا bok := نادرست
ناپایا buf := بایگانی.خواندن پرونده دودویی(font_path("XB Zar Bd.ttf")، bok)
سرچاپ حروفچینی.شمار چهرهها(buf.داده، buf.طول)، حروفچینی.قلم سیافاف است(buf.داده، buf.طول)
ناپایا pok := نادرست
bold := حروفچینی.خواندن قلم با اندیس(buf.داده، buf.طول، 0، pok)
ناپایا fc := حروفچینی.مجموعه قلم تازه()
حروفچینی.افزودن قلم(fc، bold)
حروفچینی.افزودن قلم از بایتها(fc، buf.داده، buf.طول)
فشرده سازی.آزادسازی بافر(buf)
حروفچینی.افزودن پرونده قلم(fc، font_path("XB Zar.ttf"))
حروفچینی.افزودن پرونده قلم(fc، font_path("DejaVuSansMono.ttf"))
سرچاپ حروفچینی.شمار چهرههای مجموعه(fc)، حروفچینی.یافتن چهره(fc، "XB Zar"، 400، نادرست)، حروفچینی.یافتن چهره(fc، "xb zar"، 700، نادرست)
سرچاپ حروفچینی.چهره برای نویسه(fc، "DejaVu Sans Mono, XB Zar"، 400، نادرست، 0x41)، حروفچینی.چهره برای نویسه(fc، "monospace"، 400، نادرست، 0x06F4)
face := fc.چهرهها.بگیر(2)
سرچاپ face.خانواده، face.سبک، face.وزن، face.مورب، حروفچینی.وزن قلم(حروفچینی.قلم چهره(fc، 0))
حروفچینی.آزادسازی مجموعه قلم(fc)
ناپایا lf := حروفچینی.بارگذاری قلم با اندیس(font_path("XB Zar It.ttf")، 0، ok)
سرچاپ حروفچینی.مورب است(lf)
حروفچینی.آزادسازی قلم(lf)
ناپایا more := حروفچینی.مجموعه قلم تازه()
سرچاپ حروفچینی.افزودن پوشه قلم(more، مسیر پرونده.پوشه(font_path("x"))) بزرگتر 90
dirs := حروفچینی.پوشههای قلم سیستم()
سرچاپ dirs.طول() بزرگتر 0، حروفچینی.افزودن قلمهای سیستم(more) بزرگتربرابر 0
dirs.آزادکن()
حروفچینی.آزادسازی مجموعه قلم(more)
ناپایا pf := حروفچینی.خواندن قلم(پوچ، 0، ok)
سرچاپ ok
حروفچینی.آزادسازی قلم(pf)
پایانمجموعه قلم FontCollection
ساختار مجموعه قلم| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| چهرهها | faces | وکتور<چهره قلم> | چهرهها به ترتیب افزودهشدن. |
| جایگزینها | fallback | نگاشت<صحیح، صحیح> | پاسخهای نهان جایگزین برای هر نویسه. |
| یادداشت چهره | memo | نگاشت<رشته، صحیح> | انتخابهای نهان چهره برای هر فهرست خانواده، وزن، سبک و نویسه، تا شکلدهی یک صفحه نام خانوادهها را برای هر نویسه دوباره مقایسه نکند. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
گلیف شکلیافته ShapedGlyph
ساختار گلیف شکلیافته| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| شناسه | id | صحیح = 0 | شمارهی گلیف. |
| خوشه | cluster | صحیح = 0 | جای بایت UTF-8 متنی که از آن آمده است. |
| پیشروی افقی | x_advance | صحیح = 0 | پیشروی به واحد قلم. |
| جابجایی افقی | x_offset | صحیح = 0 | جابجایی افقی به واحد قلم. |
| جابجایی عمودی | y_offset | صحیح = 0 | جابجایی عمودی به واحد قلم؛ رو به بالا مثبت است. |
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
تابع ریشه:
ناپایا ok := نادرست
ناپایا f := حروفچینی.بارگذاری قلم(مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/XB Zar.ttf")، ok)
glyphs := حروفچینی.شکلدهی متن(f، "میخواهم"، درست، ""، "fa")
هر g در glyphs:
سرچاپ g.شناسه، g.خوشه، g.پیشروی افقی، g.جابجایی افقی، g.جابجایی عمودی
پایان
glyphs.آزادکن()
سرچاپ حروفچینی.شکلدهی عربی("سلام")
سرچاپ حروفچینی.متن راست به چپ است("سلام")، حروفچینی.جهت پایه("Salam سلام") برابر حروفچینی.جهت متن چپ به راست
سرچاپ حروفچینی.به ترتیب نمایشی("abc سلام"، حروفچینی.جهت متن خودکار)
cps := حروفچینی.کدهای نمایشی("لا"، حروفچینی.جهت متن راست به چپ، درست)
سرچاپ cps.طول()، cps.بگیر(0)
cps.آزادکن()
حروفچینی.آزادسازی قلم(f)
پایانچینش متن TextAlign
جداشمار چینش متنtext-align در CSS.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| آغاز | Start | | در سمت آغاز جهت بند. |
| انتها | End | | در سمت پایان. |
| چپ | Left | | چپ. |
| راست | Right | | راست. |
| وسط | Center | | وسط. |
| تمامچین | Justify | | فاصلهها کش میآیند تا خطها پهنا را پر کنند، جز خط آخر. |
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
تابع ریشه:
fonts := مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/")
ناپایا fc := حروفچینی.مجموعه قلم تازه()
حروفچینی.افزودن پرونده قلم(fc، fonts + "XB Zar.ttf")
حروفچینی.افزودن پرونده قلم(fc، fonts + "DejaVuSansMono.ttf")
ناپایا spans := وکتور {} برگردان وکتور<حروفچینی.تکه متن>
spans.بیفزا(حروفچینی.تکه متن { متن = "قیمت این کتاب "، خانوادههای قلم = "XB Zar"، اندازه = 18.0، برچسب = 1، زبان = "fa" })
spans.بیفزا(حروفچینی.تکه متن { متن = "12 USD"، خانوادههای قلم = "DejaVu Sans Mono"، اندازه = 14.0، برچسب = 2، فاصله حرفها = 0.5 })
spans.بیفزا(حروفچینی.تکه متن { متن = " است."، خانوادههای قلم = "XB Zar"، اندازه = 18.0، برچسب = 3، فاصله واژهها = 2.0، بلندی خط = 30.0، ضریب بلندی خط = 0.0 })
ناپایا st := حروفچینی.سبک بند {}
st.چینش = حروفچینی.چینش متن.Justify
st.جهت = حروفچینی.جهت متن خودکار
st.فاصلههای سفید = حروفچینی.فاصله سفید.Normal
st.شکستن سرریز = حروفچینی.شکستن سرریز.BreakWord
st.بیشینه خطها = 3
st.سه نقطه = درست
st.زبان = "fa"
ناپایا p := حروفچینی.بند تازه(fc، spans، st)
سرچاپ حروفچینی.پهنای کمینه محتوا(p)، حروفچینی.پهنای بیشینه محتوا(p)، p.کمینه محتوا، p.بیشینه محتوا
سرچاپ p.متن، p.سبک.بیشینه خطها، p.تکهها.طول()، p.آغاز تکهها.بگیر(1)، حروفچینی.تکه جای(p، 30)
c := p.نویسهها.بگیر(0)
سرچاپ c.جابجایی، c.کد نویسه، c.تکه، c.تراز، c.تراز پایه، c.پرچمها، c.پیشروی، c.شکست، c.چهره
r := p.دنبالهها.بگیر(0)
سرچاپ r.آغاز نویسه، r.انتهای نویسه، r.آغاز گلیف، r.انتهای گلیف، r.تراز، r.چهره، r.تکه، r.اندازه شصتوچهارم
g := p.گلیفها.بگیر(0)
سرچاپ g.شناسه، g.نویسه، g.پیشروی، g.جابجایی افقی، g.جابجایی عمودی
ناپایا l := حروفچینی.چیدن بند(p، fc، 110.0)
سرچاپ l.پهنا، l.بلندی، l.بیشینه پهنا، l.بریدهشده، l.خطها.طول()
هر lb در l.خطها:
سرچاپ lb.آغاز، lb.انتهای بایت، lb.آغاز نویسه، lb.انتهای نویسه، lb.آغاز فاصله پایانی، lb.بالا، lb.خط پایه، lb.بلندی، lb.صعود، lb.نزول، lb.ایکس، lb.پهنا، lb.آغاز دنباله، lb.شمار دنباله، lb.شکست سخت، lb.راست به چپ، lb.فاصله افزوده
پایان
هر run در l.دنبالهها:
سرچاپ run.چهره، run.اندازه، run.ایکس، run.پهنا، run.آغاز، run.انتهای بایت، run.آغاز نویسه، run.انتهای نویسه، run.راست به چپ، run.تراز، run.برچسب، run.تکه، run.آغاز گلیف، run.شمار گلیف، run.سه نقطه
پایان
pg := l.گلیفها.بگیر(0)
سرچاپ pg.شناسه، pg.ایکس، pg.ایگرگ، pg.خوشه، pg.پیشروی
حروفچینی.آزادسازی چیدمان(l)
حروفچینی.آزادسازی بند(p)
spans.آزادکن()
حروفچینی.آزادسازی مجموعه قلم(fc)
پایانفاصله سفید WhiteSpace
جداشمار فاصله سفیدwhite-space در CSS.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| معمولی | Normal | | فاصلهها یکی میشوند، خط تازه فاصله است و خطها میشکنند. |
| بی شکستن | NoWrap | | مثل معمولی ولی خطها نمیشکنند. |
| پیشقالب | Pre | | فاصلهها و خط تازه میمانند و شکستن نیست. |
| پیشقالب با شکستن | PreWrap | | فاصلهها و خط تازه میمانند و خطها میشکنند؛ فاصلههای پایانی آویزان میمانند. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
شکستن سرریز OverflowWrap
جداشمار شکستن سرریزoverflow-wrap در CSS.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| عادی | Normal | | واژههای بلند بیرون میزنند. |
| هرجا | Anywhere | | شکستن در هر حرف؛ کمینهی محتوا تکحرفها را میشمارد. |
| شکستن واژه | BreakWord | | شکستن فقط در صورت نیاز؛ کمینهی محتوا واژهی کامل را نگه میدارد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
تکه متن TextSpan
ساختار تکه متن| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| متن | text | رشته = "" | متن به UTF-8. |
| خانوادههای قلم | families | رشته = "sans-serif" | فهرست خانوادهها مثل font-family در CSS، مثلا "Vazirmatn, sans-serif". |
| اندازه | size | اعشار۶۴ = 16 | اندازهی قلم به پیکسل. |
| وزن | weight | صحیح = 400 | وزن قلم؛ ۴۰۰ معمولی. |
| مورب | italic | منطقی = نادرست | چهرهی مورب خواسته شود. |
| فاصله حرفها | letter_spacing | اعشار۶۴ = 0 | پیکسل افزوده پس از هر حرف؛ ترکیبهای اختیاری را خاموش میکند. |
| فاصله واژهها | word_spacing | اعشار۶۴ = 0 | پیکسل افزوده پس از هر فاصله. |
| بلندی خط | line_height | اعشار۶۴ = 0 | بلندی خط به پیکسل؛ ۰ یعنی معمولی. |
| ضریب بلندی خط | line_height_scale | اعشار۶۴ = 0 | بلندی خط به صورت ضریبی از اندازهی قلم، وقتی line_height صفر است. |
| برچسب | tag | صحیح = 0 | عدد دلخواه شما که در هر دنبالهی گلیف میآید تا دنبالهها را به عنصرها برگردانید. |
| زبان | lang | رشته = "" | زبان مثل fa برای انتخاب قاعدههای زبانی قلم. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
سبک بند ParagraphStyle
ساختار سبک بند| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| چینش | align | چینش متن | چینش خطها. |
| جهت | direction | صحیح = 0 | جهت پایه: TextDirAuto، TextDirLTR یا TextDirRTL. |
| فاصلههای سفید | white_space | فاصله سفید | رفتار با فاصله. |
| شکستن سرریز | overflow_wrap | شکستن سرریز | رفتار با واژهی بلند. |
| بیشینه خطها | max_lines | صحیح = 0 | بیشینهی شمار خطها؛ ۰ یعنی بیحد. |
| سه نقطه | ellipsis | منطقی = نادرست | متن بیرونزده یا پنهان را با سه نقطه در سمت پایان کوتاه کند. |
| زبان | lang | رشته = "" | زبان برای تکههایی که زبان ندارند. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
داده نویسه CharInfo
ساختار داده نویسه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| جابجایی | offset | صحیح = 0 | جای بایت UTF-8 در متن بند. |
| کد نویسه | cp | صحیح = 0 | نقطهکد. |
| تکه | span | صحیح = 0 | تکهای که به آن تعلق دارد. |
| تراز | level | صحیح = 0 | تراز دوسویه؛ فرد یعنی راستبهچپ. |
| تراز پایه | base | صحیح = 0 | تراز بند دوسویهای که در آن است. |
| پرچمها | flags | صحیح = 0 | بیتهای درونی: پنهان، شکست سخت، آغاز خوشه، فاصله، حرف واژه. |
| پیشروی | advance | صحیح = 0 | سهم آن از پهنای شکلیافته، به یک شصتوچهارم پیکسل. |
| شکست | brk | صحیح = 0 | شکست خط پیش از آن: ۰ نه، ۱ مجاز، ۲ لازم. |
| چهره | face | صحیح = -1 | چهرهی انتخابشده برای آن در مجموعه. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
دنباله شکلیافته ShapedRun
ساختار دنباله شکلیافته| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| آغاز نویسه | cp_start | صحیح = 0 | اندیس نخستین نویسه. |
| انتهای نویسه | cp_end | صحیح = 0 | یکی پس از اندیس آخرین نویسه. |
| آغاز گلیف | glyph_start | صحیح = 0 | نخستین گلیف در گلیفهای بند. |
| انتهای گلیف | glyph_end | صحیح = 0 | یکی پس از آخرین گلیف آن. |
| تراز | level | صحیح = 0 | تراز دوسویهی آن. |
| چهره | face | صحیح = -1 | چهرهی آن. |
| تکه | span | صحیح = 0 | تکهی آن. |
| اندازه شصتوچهارم | size64 | صحیح = 0 | اندازهی قلم به یک شصتوچهارم پیکسل. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
گلیف بند ParagraphGlyph
ساختار گلیف بند| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| شناسه | id | صحیح = 0 | شمارهی گلیف. |
| نویسه | cp | صحیح = 0 | اندیس نویسهی خوشهی آن. |
| پیشروی | advance | صحیح = 0 | پیشروی با فاصلهی حرف و واژه. |
| جابجایی افقی | x_offset | صحیح = 0 | جابجایی افقی. |
| جابجایی عمودی | y_offset | صحیح = 0 | جابجایی عمودی؛ رو به بالا مثبت. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
بند Paragraph
ساختار بند| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| متن | text | رشته = "" | متن همهی تکهها پشت سر هم؛ جایها به آن اشاره دارند. |
| سبک | style | سبک بند | سبک بند. |
| تکهها | spans | وکتور<تکه متن> | تکهها. |
| آغاز تکهها | span_starts | وکتور<صحیح> | جای بایت آغاز هر تکه. |
| نویسهها | chars | وکتور<داده نویسه> | یک خانه برای هر نقطهکد. |
| دنبالهها | runs | وکتور<دنباله شکلیافته> | دنبالههای شکلیافته به ترتیب منطقی. |
| گلیفها | glyphs | وکتور<گلیف بند> | همهی گلیفهای شکلیافته. |
| کمینه محتوا | min_content | صحیح = 0 | پهنای کمینهی محتوا به یک شصتوچهارم پیکسل. |
| بیشینه محتوا | max_content | صحیح = 0 | پهنای بیشینهی محتوا به یک شصتوچهارم پیکسل. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
گلیف جایگذاریشده PlacedGlyph
ساختار گلیف جایگذاریشده| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| شناسه | id | صحیح = 0 | شمارهی گلیف. |
| ایکس | x | اعشار۶۴ = 0 | جای افقی قلم گلیف به پیکسل. |
| ایگرگ | y | اعشار۶۴ = 0 | جای عمودی خط پایه با جابجایی گلیف، به پیکسل. |
| خوشه | cluster | صحیح = 0 | جای بایت متنی که نشان میدهد. |
| پیشروی | advance | اعشار۶۴ = 0 | پیشروی آن به پیکسل. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
دنباله گلیف GlyphRun
ساختار دنباله گلیف| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| چهره | face | صحیح = -1 | چهرهای که با آن رسم میشود. |
| اندازه | size | اعشار۶۴ = 0 | اندازهی قلم به پیکسل. |
| ایکس | x | اعشار۶۴ = 0 | لبهی چپ به پیکسل. |
| پهنا | width | اعشار۶۴ = 0 | پهنا به پیکسل. |
| آغاز | start | صحیح = 0 | نخستین جای بایت. |
| انتهای بایت | end | صحیح = 0 | یکی پس از آخرین جای بایت. |
| آغاز نویسه | cp_start | صحیح = 0 | اندیس نخستین نویسه. |
| انتهای نویسه | cp_end | صحیح = 0 | یکی پس از اندیس آخرین نویسه. |
| راست به چپ | rtl | منطقی = نادرست | دنباله راستبهچپ است. |
| تراز | level | صحیح = 0 | تراز دوسویه. |
| برچسب | tag | صحیح = 0 | برچسب تکهی آن. |
| تکه | span | صحیح = 0 | تکهی آن. |
| آغاز گلیف | glyph_start | صحیح = 0 | نخستین گلیف در گلیفهای چیدمان. |
| شمار گلیف | glyph_count | صحیح = 0 | شمار گلیفها. |
| سه نقطه | ellipsis | منطقی = نادرست | این دنباله سه نقطهی پایان خط بریده است. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
جعبه خط LineBox
ساختار جعبه خط| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| آغاز | start | صحیح = 0 | نخستین جای بایت. |
| انتهای بایت | end | صحیح = 0 | یکی پس از آخرین جای بایت، با فاصلههای پایانی. |
| آغاز نویسه | cp_start | صحیح = 0 | اندیس نخستین نویسه. |
| انتهای نویسه | cp_end | صحیح = 0 | یکی پس از اندیس آخرین نویسه. |
| آغاز فاصله پایانی | trailing_cp | صحیح = 0 | جای آغاز فاصلههای پایانی. |
| بالا | top | اعشار۶۴ = 0 | بالای خط به پیکسل. |
| خط پایه | baseline | اعشار۶۴ = 0 | خط پایه به پیکسل. |
| بلندی | height | اعشار۶۴ = 0 | بلندی خط به پیکسل. |
| صعود | ascent | اعشار۶۴ = 0 | فضای بالای خط پایه، با نیمی از فاصلهی سطر. |
| نزول | descent | اعشار۶۴ = 0 | فضای زیر خط پایه، با نیمی از فاصلهی سطر. |
| ایکس | x | اعشار۶۴ = 0 | لبهی چپ محتوا پس از چینش. |
| پهنا | width | اعشار۶۴ = 0 | پهنای محتوا بدون فاصلههای آویزان. |
| آغاز دنباله | run_start | صحیح = 0 | نخستین دنباله در دنبالههای چیدمان. |
| شمار دنباله | run_count | صحیح = 0 | شمار دنبالهها به ترتیب نمایش. |
| شکست سخت | hard_break | منطقی = نادرست | خط با نویسهی خط تازه پایان مییابد. |
| راست به چپ | rtl | منطقی = نادرست | جهت بند در این خط راستبهچپ است. |
| فاصله افزوده | space_extra | صحیح = 0 | پهنای افزودهی هر فاصله از تمامچین، به یک شصتوچهارم پیکسل. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
چیدمان متن TextLayout
ساختار چیدمان متن| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| خطها | lines | وکتور<جعبه خط> | خطها. |
| دنبالهها | runs | وکتور<دنباله گلیف> | دنبالههای گلیف همهی خطها. |
| گلیفها | glyphs | وکتور<گلیف جایگذاریشده> | همهی گلیفها. |
| پهنا | width | اعشار۶۴ = 0 | پهنا: بیشینهی پهنا، یا پهنترین خط اگر نبود. |
| بلندی | height | اعشار۶۴ = 0 | بلندی کل. |
| بیشینه پهنا | max_width | اعشار۶۴ = 0 | پهنای خواستهشده. |
| بریدهشده | truncated | منطقی = نادرست | خطهایی حذف یا بریده شدند. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
جای متن TextPosition
ساختار جای متن| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| جابجایی | offset | صحیح = 0 | جای بایت در متن بند. |
| وابسته به پیش | upstream | منطقی = نادرست | به متن پیش از خود میچسبد، مثل پایان خط شکسته. |
| خط | line | صحیح = 0 | خطی که آزمون برخورد یا جابجایی یافت. |
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
تابع ریشه:
ناپایا fc := حروفچینی.مجموعه قلم تازه()
حروفچینی.افزودن پرونده قلم(fc، مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/XB Zar.ttf"))
ناپایا spans := وکتور {} برگردان وکتور<حروفچینی.تکه متن>
spans.بیفزا(حروفچینی.تکه متن { متن = "نام Salam است"، خانوادههای قلم = "XB Zar"، اندازه = 20.0 })
ناپایا st := حروفچینی.سبک بند {}
st.فاصلههای سفید = حروفچینی.فاصله سفید.PreWrap
ناپایا p := حروفچینی.بند تازه(fc، spans، st)
ناپایا l := حروفچینی.چیدن بند(p، fc، 0.0)
hit := حروفچینی.آزمون برخورد(p، l، 40.0، 10.0)
سرچاپ hit.جابجایی، hit.وابسته به پیش، hit.خط
caret := حروفچینی.مستطیل نشانگر(p، l، hit)
سرچاپ caret.ایکس، caret.ایگرگ، caret.پهنا، caret.بلندی
rects := حروفچینی.مستطیلهای گزینش(p، l، 3، 12)
هر r در rects:
سرچاپ r.ایکس، r.پهنا
پایان
rects.آزادکن()
سرچاپ حروفچینی.خوشه بعدی(p، 0)، حروفچینی.خوشه پیشین(p، 4)، حروفچینی.انتهای واژه بعدی(p، 0)، حروفچینی.آغاز واژه پیشین(p، 12)
ناپایا pos := حروفچینی.جای متن { جابجایی = 0 }
تکرار 4:
pos = حروفچینی.جابجایی دیداری(p، l، pos، نادرست)
چاپ pos.جابجایی، " "
پایان
سرچاپ ""
حروفچینی.آزادسازی چیدمان(l)
حروفچینی.آزادسازی بند(p)
spans.آزادکن()
حروفچینی.آزادسازی مجموعه قلم(fc)
پایانمستطیل متن TextRect
ساختار مستطیل متن| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| ایکس | x | اعشار۶۴ = 0 | چپ. |
| ایگرگ | y | اعشار۶۴ = 0 | بالا. |
| پهنا | width | اعشار۶۴ = 0 | پهنا. |
| بلندی | height | اعشار۶۴ = 0 | بلندی. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
ماسک گلیف GlyphMask
ساختار ماسک گلیف| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| داده | data | تهی* | بایتهای پوشش؛ ۰ خالی و ۲۵۵ پر. |
| پهنا | width | صحیح = 0 | پهنا به پیکسل. |
| بلندی | height | صحیح = 0 | بلندی به پیکسل. |
| گام سطر | stride | صحیح = 0 | بایتهای هر سطر. |
| چپ | left | صحیح = 0 | ستونها از جای قلم تا لبهی چپ. |
| بالا | top | صحیح = 0 | سطرها از لبهی بالا تا خط پایه. |
// زبان: فارسی
واردسازی رابط گرافیکی.حروفچینی
واردسازی سیستم عامل
واردسازی مسیر پرونده
تابع ریشه:
ناپایا ok := نادرست
ناپایا f := حروفچینی.بارگذاری قلم(مسیر پرونده.پیوند(مسیر پرونده.پوشه(سیستم عامل.متغیر محیطی("SALAM_STD"))، "books/fonts/XB Zar.ttf")، ok)
gid := حروفچینی.اندیس نویسه(f، 0x0634)
ناپایا m := حروفچینی.شطرنجی کردن گلیف(f، gid، 24.0، حروفچینی.زیرپیکسل(12.25))
سرچاپ m.پهنا، m.بلندی، m.گام سطر، m.چپ، m.بالا، حروفچینی.درهم ماسک گلیف(m)
سرچاپ حروفچینی.مبدا افقی گلیف(12.25، m)، حروفچینی.مبدا عمودی گلیف(30.0، m)
bp := m.داده برگردان طبیعی۸*
تکرار m.بلندی در y:
تکرار m.پهنا در x:
چاپ bp[y * m.گام سطر + x] بزرگتر (127 برگردان طبیعی۸) ? "#" : "."
پایان
سرچاپ ""
پایان
حروفچینی.آزادسازی ماسک گلیف(m)
ناپایا cache := حروفچینی.نهانگاه گلیف تازه(65536)
a := حروفچینی.گلیف نهان(cache، f، gid، 24.0، 12.25)
b := حروفچینی.گلیف نهان(cache، f، gid، 24.0، 40.25)
سرچاپ a.پهنا برابر b.پهنا، cache.برخوردها، cache.نیافتهها، cache.گنجایش، cache.بایتها بزرگتر 0، cache.ساعت، cache.خانهها.طول()، cache.فهرست.اندازه()
slot := cache.خانهها.بگیر(0)
سرچاپ slot.کلید بزرگتر (0 برگردان صحیح۶۴)، slot.ماسک.پهنا، slot.مهر زمان، slot.اشغال
حروفچینی.آزادسازی نهانگاه گلیف(cache)
ناپایا o := حروفچینی.طرح تبدیلشده(f، gid، 0.01، 0.0، 0.0، -0.01، 2.0، 20.0)
pt := o.نقطهها.بگیر(0)
سرچاپ o.نقطهها.طول()، o.پایانهای کانتور.طول()، pt.روی منحنی
ناپایا cov := حروفچینی.پوشش طرح(o، 64، 64)
سرچاپ cov.ایکس، cov.ایگرگ، cov.پهنا، cov.بلندی، cov.مقدارها.طول()
حروفچینی.آزادسازی سطرهای پوشش(cov)
حروفچینی.آزادسازی طرح(o)
حروفچینی.آزادسازی قلم(f)
پایانخانه نهانگاه CacheSlot
ساختار خانه نهانگاه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| کلید | key | صحیح۶۴ = 0 | قلم، اندازه، گلیف و یک چهارم پیکسل در یک عدد. |
| ماسک | mask | ماسک گلیف | ماسک نهان. |
| مهر زمان | stamp | صحیح۶۴ = 0 | آخرین زمان استفاده. |
| اشغال | used | منطقی = نادرست | خانه ماسکی دارد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
نهانگاه گلیف GlyphCache
ساختار نهانگاه گلیف| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| گنجایش | capacity | صحیح = 1048576 | بودجهی بایت. |
| بایتها | bytes | صحیح = 0 | بایتهای در استفاده. |
| برخوردها | hits | صحیح = 0 | جستوجوهایی که از نهانگاه پاسخ گرفتند. |
| نیافتهها | misses | صحیح = 0 | جستوجوهایی که شطرنجی کردن لازم داشتند. |
| ساعت | clock | صحیح۶۴ = 0 | شمارنده برای ترتیب کماستفادهترین. |
| خانهها | slots | وکتور<خانه نهانگاه> | خانهها. |
| فهرست | index | نگاشت<صحیح۶۴، صحیح> | از کلید به خانه. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
متریک قلم FontMetrics
ساختار متریک قلم| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| واحد ام | units_per_em | صحیح = 0 | شمار واحدها در یک ام. |
| صعود | ascent | صحیح = 0 | فاصله از خط پایه تا بالای سطر؛ مثبت. |
| نزول | descent | صحیح = 0 | فاصله از خط پایه تا پایین سطر؛ مثبت. |
| فاصله سطرها | line_gap | صحیح = 0 | فاصلهی افزوده میان سطرها. |
| ارتفاع ایکس | x_height | صحیح = 0 | بلندی حرف کوچک x. |
| ارتفاع حرف بزرگ | cap_height | صحیح = 0 | بلندی حرف بزرگ. |
| جای زیرخط | underline_position | صحیح = 0 | جای زیرخط؛ منفی یعنی زیر خط پایه. |
| ضخامت زیرخط | underline_thickness | صحیح = 0 | ضخامت زیرخط. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
نقطه طرح OutlinePoint
ساختار نقطه طرح| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| ایکس | x | اعشار۶۴ = 0 | جای افقی. |
| ایگرگ | y | اعشار۶۴ = 0 | جای عمودی. |
| روی منحنی | on | منطقی = نادرست | نقطه روی منحنی است نه نقطهی کنترل. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
طرح نویسه GlyphOutline
ساختار طرح نویسه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نقطهها | points | وکتور<نقطه طرح> | همهی نقطهها، کانتور پس از کانتور. |
| پایانهای کانتور | ends | وکتور<صحیح> | جای پایان هر کانتور در نقطهها (یکی پس از آخرین نقطه). |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
قلم Font
ساختار قلم| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| داده | data | تهی* | بایتهای پروندهی قلم که مال خود قلم است. |
| اندازه | size | صحیح = 0 | شمار بایتهای داده. |
| واحد ام | units_per_em | صحیح = 0 | شمار واحدهای قلم در یک ام، از جدول head. |
| شمار گلیفها | num_glyphs | صحیح = 0 | شمار گلیفها. |
| صعود | ascent | صحیح = 0 | صعود از جدول hhea، به واحد قلم. |
| نزول | descent | صحیح = 0 | نزول از جدول hhea، منفی و به واحد قلم. |
| فاصله سطرها | line_gap | صحیح = 0 | فاصلهی سطرها از جدول hhea. |
| جدول گلیف | glyf | صحیح = 0 | جای آغاز جدول glyf. |
| طول جدول گلیف | glyf_len | صحیح = 0 | طول جدول glyf. |
| جدول مکان | loca | صحیح = 0 | جای آغاز جدول loca. |
| طول جدول مکان | loca_len | صحیح = 0 | طول جدول loca. |
| جدول متریک افقی | hmtx | صحیح = 0 | جای آغاز جدول hmtx. |
| جدول فاصله جفتها | kern | صحیح = 0 | جای جدول قدیمی kern؛ اگر نباشد ۰. |
| زیرجدول نگاشت نویسه | cmap_sub | صحیح = 0 | جای زیرجدول cmap انتخابشده. |
| نگاشت نمادین | cmap_symbol | منطقی = نادرست | cmap از نوع نمادین ویندوز است. |
| شمار متریکهای افقی | num_hmetrics | صحیح = 0 | شمار متریکهای افقی. |
| مکان بلند | loca_long | منطقی = نادرست | جدول loca جایهای ۳۲ بیتی دارد. |
| معتبر | ok | منطقی = نادرست | قلم درست خوانده شد. |
| شناسه | id | صحیح = 0 | شمارهای یکتا برای این قلم بارشده که کلید نهانگاه است. |
| اندیس چهره | index | صحیح = 0 | شمارهی چهره در مجموعهی TTC. |
| جدول سر | head | صحیح = 0 | جای جدول head. |
| جدول سر افقی | hhea | صحیح = 0 | جای جدول hhea. |
| جدول او اس دو | os2 | صحیح = 0 | جای جدول OS/2؛ اگر نباشد ۰. |
| جدول نام | name | صحیح = 0 | جای جدول name. |
| جدول پست | post | صحیح = 0 | جای جدول post. |
| جدول جایگزینی | gsub | صحیح = 0 | جای جدول GSUB؛ اگر نباشد ۰. |
| جدول جایگذاری | gpos | صحیح = 0 | جای جدول GPOS؛ اگر نباشد ۰. |
| جدول تعریف گلیف | gdef | صحیح = 0 | جای جدول GDEF؛ اگر نباشد ۰. |
| طول جدول فاصله جفتها | kern_len | صحیح = 0 | طول جدول kern. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
سطرهای پوشش CoverageRows
ساختار سطرهای پوشش| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| ایکس | x | صحیح = 0 | ستون چپ. |
| ایگرگ | y | صحیح = 0 | سطر بالا. |
| پهنا | width | صحیح = 0 | پهنا به پیکسل. |
| بلندی | height | صحیح = 0 | بلندی به پیکسل. |
| مقدارها | values | وکتور<اعشار۶۴> | پوشش از ۰ تا ۱، به شمار پهنا در هر سطر. |
نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
پایاها و متغیرها
جهت متن خودکار TextDirAuto
پایا جهت متن خودکار: صحیح۳۲ = 0نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
جهت متن چپ به راست TextDirLTR
پایا جهت متن چپ به راست: صحیح۳۲ = 1نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
جهت متن راست به چپ TextDirRTL
پایا جهت متن راست به چپ: صحیح۳۲ = 2نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
تابعها
مجموعه قلم تازه NewFontCollection
تابع مجموعه قلم تازه(): مجموعه قلمنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
افزودن قلم AddFont
تابع افزودن قلم(fc &: مجموعه قلم، f: قلم): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
افزودن قلم از بایتها AddFontBytes
تابع افزودن قلم از بایتها(fc &: مجموعه قلم، p: تهی*، n: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
افزودن پرونده قلم AddFontFile
تابع افزودن پرونده قلم(fc &: مجموعه قلم، path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
پوشههای قلم سیستم SystemFontDirs
تابع پوشههای قلم سیستم(): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
افزودن پوشه قلم AddFontDir
تابع افزودن پوشه قلم(fc &: مجموعه قلم، dir: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
افزودن قلمهای سیستم AddSystemFonts
تابع افزودن قلمهای سیستم(fc &: مجموعه قلم): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
شمار چهرههای مجموعه FaceCountIn
تابع شمار چهرههای مجموعه(fc: مجموعه قلم): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
قلم چهره FaceFont
تابع قلم چهره(fc &: مجموعه قلم، face: صحیح): قلمنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
یافتن چهره FindFace
تابع یافتن چهره(fc &: مجموعه قلم، family: رشته، weight: صحیح، italic: منطقی): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
چهره برای نویسه FaceForCodepoint
تابع چهره برای نویسه(fc &: مجموعه قلم، families: رشته، weight: صحیح، italic: منطقی، cp: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
آزادسازی مجموعه قلم FreeFontCollection
تابع آزادسازی مجموعه قلم(fc &: مجموعه قلم)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
شکلدهی متن ShapeText
تابع شکلدهی متن(f: قلم، text: رشته، rtl: منطقی، script: رشته، lang: رشته): وکتور<گلیف شکلیافته>نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
بند تازه NewParagraph
تابع بند تازه(fc &: مجموعه قلم، spans: وکتور<تکه متن>، style: سبک بند): بندنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
پهنای کمینه محتوا MinContentWidth
تابع پهنای کمینه محتوا(p: بند): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
پهنای بیشینه محتوا MaxContentWidth
تابع پهنای بیشینه محتوا(p: بند): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
تکه جای SpanAt
تابع تکه جای(p: بند، offset: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
آزادسازی بند FreeParagraph
تابع آزادسازی بند(p &: بند)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
چیدن بند LayoutParagraph
تابع چیدن بند(p &: بند، fc &: مجموعه قلم، max_width: اعشار۶۴): چیدمان متننمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
آزادسازی چیدمان FreeLayout
تابع آزادسازی چیدمان(l &: چیدمان متن)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Layout.salam
آزمون برخورد HitTest
تابع آزمون برخورد(p: بند، l: چیدمان متن، x: اعشار۶۴، y: اعشار۶۴): جای متننمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
مستطیل نشانگر CaretRect
تابع مستطیل نشانگر(p: بند، l: چیدمان متن، pos: جای متن): مستطیل متننمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
مستطیلهای گزینش SelectionRects
تابع مستطیلهای گزینش(p: بند، l: چیدمان متن، from: صحیح، to_offset: صحیح): وکتور<مستطیل متن>نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
خوشه بعدی NextGrapheme
تابع خوشه بعدی(p: بند، offset: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
خوشه پیشین PrevGrapheme
تابع خوشه پیشین(p: بند، offset: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
انتهای واژه بعدی NextWordEnd
تابع انتهای واژه بعدی(p: بند، offset: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
آغاز واژه پیشین PrevWordStart
تابع آغاز واژه پیشین(p: بند، offset: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
جابجایی دیداری MoveVisual
تابع جابجایی دیداری(p: بند، l: چیدمان متن، pos: جای متن، right: منطقی): جای متننمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Editing.salam
ضریب مقیاس ScaleFactor
تابع ضریب مقیاس(f: قلم، size: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
صعود پیکسلی AscentPixels
تابع صعود پیکسلی(f: قلم، size: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
نزول پیکسلی DescentPixels
تابع نزول پیکسلی(f: قلم، size: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
ارتفاع خط پیکسلی LineHeightPixels
تابع ارتفاع خط پیکسلی(f: قلم، size: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
پیشروی نویسه GlyphAdvance
تابع پیشروی نویسه(f: قلم، glyph: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
کرنینگ KernAdvance
تابع کرنینگ(f: قلم، glyph1: صحیح، glyph2: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
شکلدهی عربی ShapeArabic
تابع شکلدهی عربی(text: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
شطرنجی کردن گلیف RasterizeGlyph
تابع شطرنجی کردن گلیف(f: قلم، glyph: صحیح، size: اعشار۶۴، subpixel: صحیح): ماسک گلیفنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
آزادسازی ماسک گلیف FreeGlyphMask
تابع آزادسازی ماسک گلیف(m &: ماسک گلیف)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
درهم ماسک گلیف GlyphMaskHash
تابع درهم ماسک گلیف(m: ماسک گلیف): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
زیرپیکسل SubpixelOf
تابع زیرپیکسل(x: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
مبدا افقی گلیف GlyphOriginX
تابع مبدا افقی گلیف(x: اعشار۶۴، m: ماسک گلیف): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
مبدا عمودی گلیف GlyphOriginY
تابع مبدا عمودی گلیف(y: اعشار۶۴، m: ماسک گلیف): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
نهانگاه گلیف تازه NewGlyphCache
تابع نهانگاه گلیف تازه(capacity_bytes: صحیح): نهانگاه گلیفنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
گلیف نهان CachedGlyph
تابع گلیف نهان(c &: نهانگاه گلیف، f: قلم، glyph: صحیح، size: اعشار۶۴، x: اعشار۶۴): ماسک گلیفنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
آزادسازی نهانگاه گلیف FreeGlyphCache
تابع آزادسازی نهانگاه گلیف(c &: نهانگاه گلیف)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
متن نام NameString
تابع متن نام(f: قلم، name_id: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
نام خانواده FamilyName
تابع نام خانواده(f: قلم): رشتهfont-family نوشته میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
نام سبک قلم StyleName
تابع نام سبک قلم(f: قلم): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
نام کامل قلم FullName
تابع نام کامل قلم(f: قلم): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
وزن قلم Weight
تابع وزن قلم(f: قلم): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
مورب است IsItalic
تابع مورب است(f: قلم): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
متریکها Metrics
تابع متریکها(f: قلم): متریک قلمنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
شمار چهرهها FaceCount
تابع شمار چهرهها(p: تهی*، n: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
کادر نویسه GlyphBox
تابع کادر نویسه(f: قلم، glyph: صحیح، x0 &: صحیح، y0 &: صحیح، x1 &: صحیح، y1 &: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
نویسه طرح دارد GlyphHasOutline
تابع نویسه طرح دارد(f: قلم، glyph: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
طرح تبدیلشده TransformedOutline
تابع طرح تبدیلشده(f: قلم، glyph: صحیح، a: اعشار۶۴، b: اعشار۶۴، c: اعشار۶۴، d: اعشار۶۴، dx: اعشار۶۴، dy: اعشار۶۴): طرح نویسهstd/ai/image با آن رسم میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
آزادسازی طرح FreeOutline
تابع آزادسازی طرح(o &: طرح نویسه)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
خواندن قلم با اندیس ParseFontIndex
تابع خواندن قلم با اندیس(p: تهی*، n: صحیح، index: صحیح، ok &: منطقی): قلمنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
خواندن قلم ParseFont
تابع خواندن قلم(p: تهی*، n: صحیح، ok &: منطقی): قلمنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
بارگذاری قلم LoadFont
تابع بارگذاری قلم(path: رشته، ok &: منطقی): قلم.ttf را میخواند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
بارگذاری قلم با اندیس LoadFontIndex
تابع بارگذاری قلم با اندیس(path: رشته، index: صحیح، ok &: منطقی): قلم.ttf یا .ttc را میخواند.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
آزادسازی قلم FreeFont
تابع آزادسازی قلم(f &: قلم)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
قلم معتبر FontValid
تابع قلم معتبر(f: قلم): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
قلم سیافاف است IsCFFFont
تابع قلم سیافاف است(p: تهی*، n: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
واحد در ام UnitsPerEm
تابع واحد در ام(f: قلم): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
تعداد نویسهها NumGlyphs
تابع تعداد نویسهها(f: قلم): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
اندیس نویسه GlyphIndex
تابع اندیس نویسه(f: قلم، codepoint: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Fonts.salam
متن راست به چپ است IsRTLText
تابع متن راست به چپ است(text: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
جهت پایه BaseDirection
تابع جهت پایه(text: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
به ترتیب نمایشی ToVisualOrder
تابع به ترتیب نمایشی(text: رشته، dir: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
کدهای نمایشی VisualCodepoints
تابع کدهای نمایشی(text: رشته، dir: صحیح، shape: منطقی): وکتور<صحیح>ToVisualOrder، اگر بخواهید بدون شکلدهی.نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Shape.salam
پوشش طرح OutlineCoverage
تابع پوشش طرح(o: طرح نویسه، clip_width: صحیح، clip_height: صحیح): سطرهای پوششنمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam
آزادسازی سطرهای پوشش FreeCoverageRows
تابع آزادسازی سطرهای پوشش(c &: سطرهای پوشش)نمونهی این مورد همراه با موارد بالاتر آمده است: gui-typeset-Raster.salam