All pastes #637232 Raw Edit

Miscellany

public text v1 · immutable
#637232 ·published 2007-07-28 18:09 UTC
rendered paste body
alias dmaker {
  dialog -md dmaker dmaker
}
menu * {
  Ultimate Dialog Maker:/dialog -md dmaker dmaker
} 
dialog dmaker {
  title "Ultimate Dialog Maker ALPHA"
  size -1 -1 275 175
  option dbu
  tab "Main", 1, 5 13 265 155
  tab "Menus", 2, 10 13 265 165
  tab "Tabs", 3, 15 13 265 165
  tab "Editboxes/Text", 4, 20 13 265 165
  tab "Buttons/Checks", 5, 25 13 265 165
  tab "Other", 18, 30 13 265 165
  tab "Finish", 19, 35 13 265 165
  button "Save and Continue >>", 6, 177 138 80 20, tab 1
  edit "", 13, 177 30 80 100, read, vsbar, multi
  text "Title:", 7, 22 43 40 20, tab 1
  edit "", 8, 37 40 120 14, tab 1
  text "Height:", 9, 17 60 40 20, tab 1
  edit "", 10, 37 57 45 14, tab 1
  text "Width:", 11, 90 60 40 20, tab 1
  edit "", 12, 109 57 48 14, tab 1
  icon 14, 198 5 8 8, sckdg_help.gif, 0
  link "Click here for help", 15, 210 6 50 15 
  button "Test/View Options", 16, 63 115 50 20, tab 1
  edit "Your title will not be shown in the test. Use #s only for the h, w, x and y.", 17, 38 140 100 20, multi, tab 1, read
  check "Use Option DBU (highly recommended)", 20, 16 100 150 15, tab 1
  text "X Position:", 21, 10 77 60 15, tab 1
  edit "", 22, 37 74 45 14, tab 1
  text "Y Pos.:", 23, 90 77 60 15, tab 1
  edit "", 24, 109 74 48 14, tab 1
  check "Center Window on Screen", 25, 16 89 100 15, tab 1
  button "Save and Continue >>", 27, 177 138 80 20, tab 2
  button "Show Example", 28, 63 115 50 20, tab 2
  edit "Use 'break' in the item box for a seperation line in the menu.", 29, 38 140 100 20, multi, tab 2, read
  text "Created by TeleOrPray of SwiftIRC - v0.8 ALPHA", 30, 30 5 120 10
  text "Menu Name:", 31, 22 43 50 20, tab 2
  edit "", 32, 55 40 110 14, tab 2
  text "Item Names: (seperate with a comma)", 33, 21 60 100 20, tab 2
  edit "", 34, 21 70 150 14, tab 2
  button "Add Menu", 35, 20 90 152 14, tab 2
  text "(You may not add a menu and click 'Continue' to skip this tab.)", 36, 19 29 150 10, tab 2
  scroll "", 37, 264 29 4 137, tab 2, range 1 260
  button "TEST", 38, 100 200 50 50, tab 2
}
on *:dialog:dmaker:init:0:{
  did -i dmaker 13 1 For help, click above.
  did -i dmaker 13 2                                            
  did -i dmaker 13 3 Current Dialog Options:
  did -i dmaker 13 4 None yet saved.
  did -c dmaker 25
  did -m dmaker 22,24
  set %d.dbu OFF
}
on *:dialog:dmaker:sclick:6:{
  if (($did(10) == $null) || ($did(12) == $null) || ($did(8) == $null)) {
    did -ri dmaker 17 1 Error: You must enter a height/width (numbers only.)
    halt
  }
  did -fu dmaker 2
  set %d.title $did(8)
  set %d.w $did(12)
  set %d.h $did(10)
  if ($did(dmaker, 25).state == 1) { 
    set %d.xpos -1
    set %d.ypos -1
    set %d.center Yes
  }
  elseif ($did(dmaker, 25).state != 1) {
    set %d.xpos $did(22)
    set %d.ypos $did(24) 
    set %d.center No
  }
  set %d.titledisp $replace(%d.title,$mid(%d.title,12,99),...)%d.title
  set %d.alias $gettok(%d.title,1,32) $+ $gettok(%d.title,2,32) $+ $gettok(%d.title,3,32) $+ $gettok(%d.title,4,32) $+ $gettok(%d.title,5,32) $+ $gettok(%d.title,6,32) $+ $gettok(%d.title,7,32) $+ $gettok(%d.title,8,32) $+ $gettok(%d.title,9,32) $+ $gettok(%d.title,10,32)
  did -o dmaker 13 4 Title: %d.titledisp
  did -io dmaker 13 5 Height: %d.h
  did -io dmaker 13 6 Width: %d.w
  did -io dmaker 13 7 X Pos: %d.xpos
  did -io dmaker 13 8 Y Pos: %d.ypos
  did -io dmaker 13 9 Centered: %d.center
  did -io dmaker 13 10 Option DBU: %d.dbu
  set %d.sline 11
  did -m dmaker 10
  did -m dmaker 12
  did -b dmaker 20 
  did -b dmaker 25
  did -b dmaker 6
  did -m dmaker 8
  write %d.title $+ .txt alias %d.alias $chr(123) dialog -md %d.alias %d.alias $chr(125)
  write %d.title $+ .txt menu * $chr(123) %d.title $+ :/dialog -md %d.alias %d.alias $chr(125)
  write %d.title $+ .txt dialog %d.alias $chr(123)
  write %d.title $+ .txt title " $+ %d.title $+ "
  write %d.title $+ .txt size %d.xpos %d.ypos %d.w %d.h
  if (%d.dbu == ON) { write %d.title $+ .txt option dbu }
}
on *:dialog:dmaker:sclick:16:{ 
  if (($did(10) == $null) || ($did(12) == $null) || ($did(8) == $null)) {
    did -ri dmaker 17 1 Error: You must enter a height/width/x/ypos (numbers only.)
    halt
  }
  if ($did(22) == $null) && (%d.center == No) {
    did -ri dmaker 17 1 Error: You must enter a height/width/x/ypos (numbers only.)
    halt
  }
  if ($did(24) == $null) && (%d.center == No) {
    did -ri dmaker 17 1 Error: You must enter a height/width/x/ypos (numbers only.)
    halt
  }
  set %d.w $did(12)
  set %d.h $did(10)
  set %d.title $did(8)
  if ($did(dmaker, 25).state == 1) { 
    set %d.xpos -1
    set %d.ypos -1
    set %d.center Yes
  }
  elseif ($did(dmaker, 25).state != 1) {
    set %d.xpos $did(22)
    set %d.ypos $did(24)
    set %d.center No
  }
  if (%d.dbu == ON) { dialog -md dtest.dbu dtest.dbu }
  if (%d.dbu != ON) { dialog -md dtest.nodbu dtest.nodbu }
}
on *:dialog:dmaker:sclick:20:{
  set %d.dbu ON
  if ($did(dmaker,20).state == 0) { 
    set %d.dbu OFF
  }
}
on *:dialog:dmaker:sclick:25:{
  did -m dmaker 22
  did -m dmaker 24
  set %d.xpos -1
  set %d.ypos -1
  set %d.center Yes
  if ($did(dmaker,25).state == 0) { 
    did -n dmaker 22
    did -n dmaker 24
    set %d.center No
  }
}
on *:dialog:dmaker:sclick:27:{
  did -fu dmaker 3
  if (%d.menu1.name != $null) {
    inc %d.id
    write %d.title $+ .txt menu " $+ %d.menu1.name $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.1 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.2 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.3 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.4 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.5 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.6 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.7 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.8 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.9 $+ ", %d.id
    inc %d.id
    write %d.title $+ .txt item " $+ %d.menu1.item.10 $+ ", %d.id
    inc %d.id
    :menu2
  }
}
on *:dialog:dmaker:sclick:28:{
  if (%d.dbu == ON) { dialog -md dmenuex.dbu dmenuex.dbu }
  if (%d.dbu != ON) { dialog -md dmenuex.nodbu dmenuex.nodbu }
}
on *:dialog:dmaker:sclick:35:{
  if (($did(32) != $null) && ($did(34) != $null)) { 
    set %d.did34 $did(34)
    set %d.did32 $did(32)
    inc %dmenus 
    set %d.itemcount $calc($count($did(34), $chr(44)) + 1)
    set %d.currentitems $+ %d.menus $did(34)
    set %d.currentmenu $+ %d.menus $did(32)
    dialog -md daddmenu daddmenu
    if (%d.itemcount > 10) {
      did -ri dmaker 29 1 Error: Item list supports up to only 10 items including break.
      halt
    }
  }
  elseif (($did(32) == $null) || ($did(34) == $null)) {
    did -ri dmaker 29 1 Error: Atleast one of the fields are empty. Please use all fields.
    halt
  }
}
on *:dialog:dmaker:sclick:36:{
  dialog -md ddelmenu ddelmenu
}
on *:dialog:dmaker:scroll:37:{
}
dialog dtest.dbu {
  title "TEST DIALOG"
  size %d.xpos %d.ypos %d.w %d.h
  option dbu
}
dialog dtest.nodbu {
  title "TEST DIALOG"
  size %d.xpos %d.ypos %d.w %d.h
}
dialog dmenuex.dbu {
  title "MENU EXAMPLE"
  size %d.xpos %d.ypos %d.w %d.h
  option dbu
  menu "File", 6
  item "Open", 7
  item break, 8
  item "Exit", 9
  menu "Example", 1
  item "This", 2
  item "Is", 3
  item "An", 4
  item "Example", 5
}
dialog dmenuex.nodbu {
  title "MENU EXAMPLE"
  size %d.xpos %d.ypos %d.w %d.h
  menu "File", 6
  item "Open", 7
  item break, 8
  item "Exit", 9
  menu "Example", 1
  item "This", 2
  item "Is", 3
  item "An", 4
  item "Example", 5
}
dialog dsetpos.dbu {
  title "SET POS"
  size %d.xpos %d.ypos %d.w %d.h
  option dbu
  text "Double-Clicking in this window will set the spot your object will be placed at.", 1, -1 -1 %d.w %d.h $+ , center 
}
on *:dialog:dsetpos.dbu:dclick:0:{
  set %d.click-x $mouse.x
  set %d.click-y $mouse.y
  dialog -md dsetpos.verify dsetpos.verify
}
dialog dsetpos.nodbu {
  title "SET POS"
  size %d.xpos %d.ypos %d.w %d.h
}
on *:dialog:dsetpos.nodbu:dclick:0:{
  set %d.click-x $mouse.x
  set %d.click-y $mouse.y
  dialog -md dsetpos.verify dsetpos.verify
}
dialog dsetpos.verify {
  title "OK?"
  size -1 -1 130 70
  option dbu
  text "Are you sure you want to place the object at:", 1, 9 12 120 15
  button "Yes", 2, 10 35 50 20
  button "No", 3, 70 35 50 20
  edit "", 4, 50 20 30 10, read
}
on *:dialog:dsetpos.verify:init:0:{
  did -ri dsetpos.verify 4 1 %d.click-x $+ , $+ %d.click-y
}
dialog daddmenu {
  title "Add Menu?"
  size -1 -1 130 70
  option dbu
  edit "", 1, 15 15 100 30, multi, read
  text "Add This Menu?", 2, 18 5 100 10
  button "Yes", 3, 23 50 40 15
  button "No", 4, 68 50 40 15
}
on *:dialog:daddmenu:init:0:{
  did -ri daddmenu 1 1 Menu Name: %d.currentmenu              
  did -i daddmenu 1 2 Item Names: %d.currentitems
}
on *:dialog:daddmenu:sclick:3:{
  set %d.menu $+ %dmenus $+ .name %d.did32
  if (%d.itemcount == 1) {
    set %d.menu $+ %dmenus $+ .item1 %d.did34
    halt
  }
  set %d.menu $+ %dmenus $+ .item.1 $gettok(%d.did34,1,44)
  dec %d.itemcount 1
  set %d.menu $+ %dmenus $+ .item.2 $gettok(%d.did34,2,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.3 $gettok(%d.did34,3,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.4 $gettok(%d.did34,4,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.5 $gettok(%d.did34,5,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.6 $gettok(%d.did34,6,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.7 $gettok(%d.did34,7,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.8 $gettok(%d.did34,8,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.9 $gettok(%d.did34,9,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  set %d.menu $+ %dmenus $+ .item.10 $gettok(%d.did34,10,44)
  dec %d.itemcount 1
  if (%d.itemcount == 0) { goto two }
  :two
  did -i dmaker 13 %d.sline            
  did -i dmaker 13 $calc(%d.sline + 1) Menu: %d.currentmenu
  did -i dmaker 13 $calc(%d.sline + 2) Items: %d.currentitems
  set %d.sline $calc(%d.sline + 3)
  dialog -c daddmenu daddmenu
  halt
}
on *:dialog:daddmenu:sclick:4:{
  dialog -c daddmenu daddmenu
  dec %dmenus
}