跳轉到內容

Rebol 程式設計/make-face

來自華夏公益教科書
MAKE-FACE style /styles ss /clone /size wh /spec blk /offset xy /keep 

從給定的樣式名稱或示例面部建立面部。

MAKE-FACE 是一個函式值。

  • style -- 名稱或面部 (型別:單詞物件)
  • /styles
    • ss -- 樣式表 (型別:任何)
  • /clone -- 複製所有主要方面
  • /size
    • wh -- 面部的尺寸 (型別:對)
  • /spec
    • blk -- 規範塊 (型別:塊)
  • /offset
    • xy -- 面部的偏移量 (型別:對)
  • /keep -- 保留與樣式相關的資料

原始碼

[編輯 | 編輯原始碼]
make-face: func [
    {Make a face from a given style name or example face.} 
    style [word! object!] "A name or a face" 
    /styles ss "Stylesheet" 
    /clone "Copy all primary facets" 
    /size wh [pair!] "Size of face" 
    /spec blk [block!] "Spec block" 
    /offset xy [pair!] "Offset of face" 
    /keep "Keep style related data"
][
    if word? style [style: either styles [select ss style] [get-style style]] 
    if none? style [return none] 
    spec: [parent-face: saved-area: line-list: old-offset: old-size: none] 
    if blk [spec: append copy spec blk] 
    style: make style spec 
    if size [style/size: wh] 
    if offset [style/offset: xy] 
    style/flags: exclude style/flags state-flags 
    if clone [
        foreach word [text effect colors texts font para edge] [
            if style/:word [
                set in style word either series? style/:word [copy style/:word] [
                    make style/:word []
                ]
            ]
        ]
    ] 
    do bind style/init in style 'init 
    if not keep [
        style/init: copy [] 
        style/facets: none
    ] 
    style
]
華夏公益教科書