⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 box

📁 LastWave
💻
字号:
#..........................................................................#                                                                         #      L a s t W a v e    P a c k a g e 'misc' 2.0##      Author Emmanuel Bacry                                               #      #..........................................................................### Create a simple box class## # Some default valuesgclass.Box.default.bg="BG"## Answering the messages for boxes #setproc _GBoxMsge {obj message .l} {  # The help   if (obj == "?") {    return "{{{set <val>} {Changes the string that is displayed.}}}"  }    id=[msge $obj id]  if (message == "init") {    fields = [new &array]    fields.centered=0    fields.string=""    setv gclass.Box.${id} fields -l 1    import args 1 gclass.Box.default    setg $obj -bg default.bg    return 1  }    if (message == "delete") {    delete 1 gclass.Box.$id    return 1  }    if (message == "set") {    setgu $obj -string l[0]    return [setg $obj -string]  }  }### The Drawing method#setproc _GBoxDraw {obj .l} {  {w h}=[setg $obj -size]  str = [setg $obj -string]  centered = [setg $obj -centered]  if (centered) {    draw string $obj str middle w/2 middle h/2  } else {    draw string $obj str left 5 middle h/2  }}## Setting or Getting the fields of boxes#setproc _GBoxSet {obj field .l} {  # The help   if (obj == "?") {    return "{{{string [<val>]} {Sets/Gets the string that will be displayed in the box.}} \{{centered [<flagOnOff>]} {Sets/Gets the centered flag. If 1 then the string will be centered in the box both vertically and horizontally. \If 0 then it will be centered vertically but justified at a distance of 5 to the left border.}}}"  }      id=[msge $obj id]  import args 1 `gclass.Box.$id fields`  if (field == "centered") {    if (l.length == 0) {      return fields.$field    }        fields.$field=l[0]    return 1  }   if (field == "string") {    if (l.length == 0) {      return fields.string    }       if (type(l[0]) == '&string') {       fields.string=l[0]    } else {      sprintf fields.string "%V" l[0]    }        return 1  } }gclass new Box GObject %_GBoxSet %_GBoxMsge %_GBoxDraw "Graphic Class to display (clipped) text in a box"proc delete %_GBoxSet %_GBoxMsge %_GBoxDraw ### Inherit a numbox from the box#### Answering the messages for numboxes #setproc _GNumboxMsge {obj message .l} {  # The help   if (obj == "?") {    return "{{{set <val>} {Changes the value that is displayed.}}}"  }  id=[msge $obj id]    if (message == "init") {    setg $obj -val 0    return 1  }  import args 1 `gclass.Box.$id fields`      if (message == "set") {    setgu $obj -val l[0]    return [setg $obj -val]  }    if (message == "incr") {    if (l.length == 0) {      i=1    } else {      if (type(l[0]) != '&num') {errorf "Expect a number as argument"}      i = l[0]    }    setgu $obj -val [setg $obj -val]+i    return [setg $obj -val]  }  }## Setting or Getting the fields of boxes#setproc _GNumboxSet {obj field .l} {  # The help   if (obj == "?") {    return  }    id=[msge $obj id]    import args 1 `gclass.Box.$id fields`  if (field == "val") {    if (l.length == 0) {       return fields.val           }    if (type(l[0]) != '&num') {errorf "Expect a number for field 'val'"}    fields.val = l[0]    setg Box:$obj -string l[0]    return 1  }    if (field == "string") {    if (l.length == 0) {       # Let the Box do the job       return    }    return 1  }  }gclass new Numbox Box %_GNumboxSet %_GNumboxMsge null "Graphic Class to display a numerical value in a box"proc delete %_GNumboxSet %_GNumboxMsge ### A simple example###if ([msge ex exist]) {#  msge ex delete#}  #window new 'ex' -title "Box and Numbox gobjects" -pos 100 100 -size 200 200#msge ex add 'l1' GList -pos 50 50 -size 120 120 -frame 1#msge ex.l1 add 'b' Box -pos 50 50 -size 40 40 -string "box" -frame 1 -pen 3#msge ex.l1 add 'n' Numbox -pos 5 5 -size 40 40 -frame 1 -pen 3 -val 12 #msge ex show

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -