2015-03-24 05:12:19 +00:00
{
2015-09-09 04:08:45 +00:00
/*
ENiGMA½ Menu Configuration
2015-09-11 03:01:04 +00:00
This configuration is in HJSON format. Strict to-spec JSON is also
perfectly valid. The hjson npm can be used to convert to/from JSON.
See http://hjson.org/ for more information and syntax.
2015-09-09 04:08:45 +00:00
*/
2015-03-26 05:23:14 +00:00
/*
2015-09-11 03:01:04 +00:00
:TODO: Fully convert to HJSON
2015-03-26 05:23:14 +00:00
Menu Configuration
2015-04-04 20:41:04 +00:00
2015-08-12 03:36:08 +00:00
Tip: demjson's jsonlint is an excellent tool for linting JSON files
that contains comments:
jsonlint -S menu.json
2015-04-04 20:41:04 +00:00
Some concept/ideas:
"mci" : {
2015-04-16 04:46:45 +00:00
"BT1" : {
2015-04-04 20:41:04 +00:00
...
"draw" : "@script:blah.js/drawButton"
2015-04-05 07:15:04 +00:00
// @method:scriptName[.js]/methodName (foreign .js)
// @art:artName
// @method:/methodName (local to module.js)
2015-05-15 05:01:00 +00:00
// ... pass isFocused/etc. into draw method
2015-04-21 04:50:58 +00:00
NOte that @draw & @art should check theme first.
@draw:myMethod -> theme/draw.js::myMethod(opts)
2015-05-01 04:29:24 +00:00
priority:
@draw:location.js/myMethod -> outside of theme
@draw:myMethod -> checks theme -> local first
-OR- just inside themes for customization...
e.g;
{
"myTheme" {
"views" : {
"VerticalMenuView" : {
"draw" : "@method:location.js/myMethod"
}
}
}
}
2015-04-04 20:41:04 +00:00
}
}
2015-03-26 05:23:14 +00:00
*/
2015-09-12 23:17:00 +00:00
menus: {
connected: {
art: CONNECT
next: matrix
options: {
nextTimeout: 1500
2015-05-16 05:02:58 +00:00
}
2015-09-12 23:17:00 +00:00
}
matrix: {
art: matrix
2015-09-27 21:35:24 +00:00
options: {
}
2015-09-12 23:17:00 +00:00
form: {
0: { // :TODO: Make form "0" the default if missing (e.g. optional)... not sure how with current structure though
VM: {
mci: {
VM1: {
submit: true
focus: true
2015-05-16 05:02:58 +00:00
// :TODO: need a good way to localize these ... Standard Orig->Lookup seems good.
2015-09-27 21:35:24 +00:00
items: [ "login", "apply", "log off" ]
2015-05-16 05:02:58 +00:00
}
2015-09-12 23:17:00 +00:00
}
submit: {
*: [
2015-05-16 05:02:58 +00:00
{
2015-09-12 23:17:00 +00:00
value: { 1: 0 }
action: @menu:login2
2015-05-16 05:02:58 +00:00
},
{
2015-09-12 23:17:00 +00:00
value: { 1: 1 },
2015-09-23 03:31:56 +00:00
action: @menu:newUserApplication
//action: @menu:apply
2015-05-16 05:02:58 +00:00
},
{
2015-09-12 23:17:00 +00:00
value: { 1: 2 },
action: @menu:logoff
2015-05-16 05:02:58 +00:00
}
]
2015-04-02 04:13:29 +00:00
}
2015-05-16 05:02:58 +00:00
}
}
}
2015-09-12 23:17:00 +00:00
}
2015-05-16 05:02:58 +00:00
"login" : {
2015-09-09 04:08:45 +00:00
"prompt" : "userLoginCredentials",
2015-05-16 05:02:58 +00:00
"fallback" : "matrix",
2015-09-08 03:18:09 +00:00
"next" : "fullLoginSequenceLoginArt",
2015-05-16 05:02:58 +00:00
"action" : "@systemMethod:login",
// :TODO: support alt submit method for prompts
// if present, standard filters apply. No need for multiple submit ID's
// since a prompt can only utilize one:
2015-09-09 04:08:45 +00:00
/*"submit" : [
2015-05-16 05:02:58 +00:00
{
2015-09-09 04:08:45 +00:00
"value" : { "password" : null },
"action" : "@systemMethod:login"
2015-05-16 05:02:58 +00:00
}
2015-09-09 04:08:45 +00:00
]*/
2015-05-16 05:02:58 +00:00
},
2015-09-27 21:35:24 +00:00
login2: {
art: USERLOG
2015-10-16 05:41:24 +00:00
//next: messageArea
next: fullLoginSequenceLoginArt
config: {
tooNodeArt: TOONODE
}
2015-09-27 21:35:24 +00:00
form: {
0: {
mci: {
ET1: {
maxLength: @config:users.usernameMax
argName: username
focus: true
2015-09-08 03:18:09 +00:00
}
2015-09-27 21:35:24 +00:00
ET2: {
password: true
maxLength: @config:users.passwordMax
argName: password
submit: true
}
}
submit: {
*: [
2015-09-08 03:18:09 +00:00
{
2015-09-27 21:35:24 +00:00
value: { password: null }
action: @systemMethod:login
2015-09-08 03:18:09 +00:00
}
]
2015-09-27 21:35:24 +00:00
}
actionKeys: [
2015-09-08 03:18:09 +00:00
{
2015-09-27 21:35:24 +00:00
keys: [ "escape" ]
action: @menu:matrix
2015-09-08 03:18:09 +00:00
}
]
}
}
2015-09-27 21:35:24 +00:00
}
2015-05-16 05:02:58 +00:00
"logoff" : {
"art" : "LOGOFF",
2015-09-09 04:31:38 +00:00
"next" : "@systemMethod:logoff",
2015-05-16 05:02:58 +00:00
},
2015-09-21 02:23:55 +00:00
/*
nua -> send sysop mail -> { active } -> matrix
-> you must active -> matrix
*/
newUserApplication: {
art: NUA
2015-09-24 05:41:06 +00:00
next: newUserFeedbackToSysOpPreamble
2015-09-21 02:23:55 +00:00
form: {
0: {
mci: {
ET1: {
focus: true
argName: username
maxLength: @config:users.usernameMax
}
ET2: {
argName: realName
maxLength: 32
}
MET3: {
argName: birthdate
maskPattern: "####/##/##"
}
2015-09-23 03:31:56 +00:00
ME4: {
2015-09-21 02:23:55 +00:00
argName: sex
2015-09-23 03:31:56 +00:00
maskPattern: A
2015-09-23 05:13:06 +00:00
textStyle: upper
2015-09-21 02:23:55 +00:00
}
ET5: {
argName: location
maxLength: 32
}
ET6: {
argName: affils
maxLength: 32
}
ET7: {
argName: email
maxLength: 255
}
ET8: {
argName: web
maxLength: 255
}
ET9: {
argName: password
password: true
maxLength: @config:users.passwordMax
}
ET10: {
argName: passwordConfirm
password: true
maxLength: @config:users.passwordMax
}
2015-09-23 03:31:56 +00:00
TM12: {
argName: submission
2015-09-28 04:05:40 +00:00
items: [ "apply", "cancel" ]
2015-09-21 02:23:55 +00:00
submit: true
}
}
2015-09-23 03:31:56 +00:00
submit: {
*: [
{
value: { "submission" : 0 }
action: @method:apply/submitApplication
extraArgs: {
inactive: userNeedsActivated
error: newUserCreateError
}
}
2015-09-23 05:13:06 +00:00
{
value: { "submission" : 1 }
action: @menu:matrix
}
2015-09-23 03:31:56 +00:00
]
}
2015-09-23 05:13:06 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @menu:matrix
}
]
2015-09-23 03:31:56 +00:00
}
2015-09-21 02:23:55 +00:00
}
}
2015-09-23 05:13:06 +00:00
2015-09-24 05:41:06 +00:00
newUserFeedbackToSysOpPreamble: {
2015-10-16 05:41:24 +00:00
art: LETTER
2015-09-24 05:41:06 +00:00
options: { pause: true }
next: newUserFeedbackToSysOp
2015-09-26 05:10:18 +00:00
extraArgs: {
messageAreaName: private_mail
}
2015-09-24 05:41:06 +00:00
}
2015-09-23 05:13:06 +00:00
newUserFeedbackToSysOp: {
status: Feedback to SysOp
module: msg_area_post_fse
2015-10-16 05:41:24 +00:00
// :TODO: If the user is auto-approved, login seq. else, DONE.ANS -> Logoff
// :TODO: client.nextOrFallback(): go next or fallback. Use in MenuModule base also
fallback: fullLoginSequenceLoginArt
2015-09-23 05:13:06 +00:00
config: {
art: {
header: MSGEHDR
body: MSGBODY
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
help: MSGEHLP
},
editorMode: edit
editorType: area
2015-09-24 05:41:06 +00:00
}
form: {
0: {
2015-09-23 05:13:06 +00:00
mci: {
TL1: {
argName: from
}
ET2: {
2015-10-16 05:41:24 +00:00
argName: to
focus: true
2015-09-24 05:41:06 +00:00
text: @config:general.sysOp.username
2015-09-23 05:13:06 +00:00
// :TODO: readOnly: true
}
2015-09-24 05:41:06 +00:00
ET3: {
argName: subject
maxLength: 72
submit: true
text: New user feedback
2015-09-23 05:13:06 +00:00
}
2015-09-24 05:41:06 +00:00
}
submit: {
3: [
2015-09-23 05:13:06 +00:00
{
2015-10-16 05:41:24 +00:00
value: { subject: null }
action: @method:headerSubmit
2015-09-23 05:13:06 +00:00
}
]
}
2015-09-24 05:41:06 +00:00
}
2015-10-16 05:41:24 +00:00
1: {
mci: {
2015-09-23 05:13:06 +00:00
MT1: {
2015-10-16 05:41:24 +00:00
width: 79
argName: message
mode: edit
2015-09-23 05:13:06 +00:00
}
}
submit: {
2015-10-16 05:41:24 +00:00
*: [ { value: "message", action: "@method:editModeEscPressed" } ]
}
actionKeys: [
2015-09-23 05:13:06 +00:00
{
2015-10-16 05:41:24 +00:00
keys: [ "escape" ]
viewId: 1
2015-09-23 05:13:06 +00:00
}
]
},
2015-10-16 05:41:24 +00:00
2: {
TLTL: {
mci: {
TL1: {
width: 5
}
TL2: {
width: 4
2015-09-23 05:13:06 +00:00
}
}
}
2015-09-24 05:41:06 +00:00
}
3: {
HM: {
mci: {
HM1: {
2015-10-16 05:41:24 +00:00
// :TODO: clear
items: [ "save", "help" ]
2015-04-02 04:13:29 +00:00
}
2015-09-24 05:41:06 +00:00
}
submit: {
*: [
2015-09-23 05:13:06 +00:00
{
2015-09-24 05:41:06 +00:00
value: { 1: 0 }
action: @method:editModeMenuSave
}
2015-05-16 05:02:58 +00:00
{
2015-09-24 05:41:06 +00:00
value: { 1: 1 }
action: @method:editModeMenuHelp
2015-05-16 05:02:58 +00:00
}
]
2015-09-24 05:41:06 +00:00
}
actionKeys: [
2015-09-20 07:29:07 +00:00
{
keys: [ "escape" ]
2015-09-23 05:13:06 +00:00
action: @method:editModeEscPressed
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
2015-09-20 07:29:07 +00:00
}
]
2015-03-30 03:47:48 +00:00
}
2015-04-02 04:13:29 +00:00
}
2015-03-27 04:58:22 +00:00
}
2015-09-23 05:13:06 +00:00
}
2015-10-16 05:41:24 +00:00
fullLoginSequenceLoginArt: {
art: LOGIN
options: { pause: true }
next: fullLoginSequenceLastCallers
}
fullLoginSequenceLastCallers: {
module: last_callers
art: LASTCALL
options: { pause: true }
next: fullLoginSequenceSysStats
}
fullLoginSequenceSysStats: {
art: SYSSTAT
options: { pause: true }
next: fullLoginSequenceUserStats
}
fullLoginSequenceUserStats: {
2015-09-27 21:35:24 +00:00
art: STATUS
2015-10-16 05:41:24 +00:00
options: { pause: true }
next: mainMenu
2015-07-31 15:11:57 +00:00
},
2015-05-16 05:02:58 +00:00
"newUserActive" : {
2015-07-23 05:08:08 +00:00
"art" : "SO-CC1.ANS",
2015-09-09 04:08:45 +00:00
"options" : { "pause" : true },
2015-09-09 04:31:38 +00:00
"next" : "currentUserStats"
2015-07-23 05:08:08 +00:00
},
"currentUserStats" : {
2015-05-16 05:02:58 +00:00
"art" : "userstats",
2015-09-09 04:08:45 +00:00
"options" : { "pause" : true }
2015-08-04 05:11:17 +00:00
//"action" : "@menu:lastCallers"
2015-07-26 06:20:07 +00:00
},
2015-09-27 21:35:24 +00:00
mainMenu: {
art: MMENU
desc: Main Menu
prompt: menuCommand
2015-08-07 05:08:10 +00:00
"submit" : [
{
"value" : { "command" : "G" },
"action" : "@menu:logoff"
},
{
2015-09-27 21:35:24 +00:00
"value" : { "command" : "O" },
2015-08-07 05:08:10 +00:00
"action" : "@menu:doorPimpWars"
},
2015-09-08 03:18:09 +00:00
/*
2015-08-07 05:08:10 +00:00
{
"value" : { "command" : "L" },
"action" : "@menu:doorLORD"
},
2015-09-08 03:18:09 +00:00
*/
2015-10-15 05:09:10 +00:00
{
value: { command: "E" }
action: @menu:doorTestExample
}
2015-09-08 03:18:09 +00:00
{
"value" : { "command" : "L" },
"action" : "@menu:mainMenuLastCallers"
},
{
2015-10-15 05:09:10 +00:00
"value" : { "command" : "Y" },
2015-09-08 03:18:09 +00:00
"action" : "@menu:mainMenuUserStats"
},
2015-08-10 01:32:38 +00:00
{
"value" : { "command" : "M" },
2015-08-12 03:36:08 +00:00
"action" : "@menu:messageArea"
2015-08-10 01:32:38 +00:00
},
2015-10-12 05:26:27 +00:00
{
value: { command: "C" }
action: @menu:mainMenuUserConfig
}
2015-08-07 05:08:10 +00:00
{
"value" : 1,
"action" : "@menu:mainMenu"
}
]
2015-07-31 15:11:57 +00:00
},
2015-09-27 21:35:24 +00:00
mainMenuLastCallers: {
module: last_callers
art: LASTCALL
options: { pause: true }
}
mainMenuUserStats: {
art: STATUS
options: { pause: true }
2015-10-12 05:26:27 +00:00
}
mainMenuUserConfig: {
module: @systemModule:user_config
art: CONFSCR
2015-10-13 06:35:37 +00:00
form: {
0: {
mci: {
ET1: {
argName: email
}
ET2: {
argName: location
}
ET3: {
argName: webAddress
}
ET4: {
argName: affils
}
ME5: {
maskPattern: "####/##/##"
argName: birthdate
}
ME11: {
maskPattern: "##x##"
argName: termSize
}
}
}
}
2015-09-27 21:35:24 +00:00
}
2015-08-10 01:32:38 +00:00
///////////////////////////////////////////////////////////////////////
// Message Area Related
///////////////////////////////////////////////////////////////////////
2015-10-15 05:09:10 +00:00
messageArea: {
module: msg_area
art: MSGMNU
desc: Message Area
prompt: menuCommand
submit: [
2015-08-12 03:36:08 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "P" }
action: @menu:messageAreaNewPost
}
2015-08-18 03:45:11 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "C" }
action: @menu:messageAreaChangeCurrentArea
}
2015-08-27 05:04:04 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "L" }
action: @menu:messageAreaMessageList
}
2015-08-16 19:35:34 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "Q" }
action: @menu:mainMenu
}
2015-10-16 05:41:24 +00:00
{
value: { command: "G" }
action: @menu:logoff
}
2015-09-06 21:58:58 +00:00
{
2015-10-15 05:09:10 +00:00
value: 1
action: @menu:messageArea
2015-10-16 05:41:24 +00:00
}
2015-08-12 03:36:08 +00:00
]
2015-10-15 05:09:10 +00:00
}
messageAreaChangeCurrentArea: {
art: CHANGE
module: msg_area_list
2015-08-18 21:27:14 +00:00
"form" : {
"0" : {
2015-10-15 05:09:10 +00:00
"mci" : {
"VM1" : {
"focus" : true,
"submit" : true,
"argName" : "area"
}
},
"submit" : {
"*" : [
2015-08-19 05:11:13 +00:00
{
2015-10-15 05:09:10 +00:00
"value" : { "area" : null },
"action" : "@method:changeArea"
2015-08-19 05:11:13 +00:00
}
]
2015-10-15 05:09:10 +00:00
},
"actionKeys" : [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:fallbackMenu
}
]
2015-08-18 21:27:14 +00:00
}
}
},
2015-10-11 22:05:45 +00:00
messageAreaMessageList: {
module: msg_list
art: MSGLIST
config: {
listType: public
}
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: message
}
}
submit: {
*: [
2015-08-31 03:42:24 +00:00
{
2015-10-11 22:05:45 +00:00
value: { message: null }
action: @method:selectMessage
2015-08-31 03:42:24 +00:00
}
]
2015-08-27 05:04:04 +00:00
}
2015-10-11 22:05:45 +00:00
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
2015-10-15 05:09:10 +00:00
action: @systemMethod:fallbackMenu
2015-10-11 22:05:45 +00:00
}
]
2015-08-27 05:04:04 +00:00
}
}
2015-10-11 22:05:45 +00:00
}
2015-09-10 03:55:16 +00:00
messageAreaViewPost: {
module: msg_area_view_fse
config: {
art: {
header: MSGVHDR
2015-09-12 23:17:00 +00:00
body: MSGBODY
2015-09-10 03:55:16 +00:00
footerView: MSGVFTR
2015-09-20 04:55:09 +00:00
help: MSGVHLP
2015-09-01 05:18:46 +00:00
},
2015-09-10 03:55:16 +00:00
editorMode: view
editorType: area
2015-10-10 01:27:43 +00:00
}
2015-10-07 03:21:13 +00:00
form: {
0: {
mci: {
// :TODO: ensure this block isn't even req. for theme to apply...
2015-09-01 05:18:46 +00:00
}
2015-10-07 03:21:13 +00:00
}
1: {
mci: {
MT1: {
width: 79
//"height" : 14,
mode: preview
2015-09-12 23:17:00 +00:00
}
2015-10-07 03:21:13 +00:00
}
submit: {
*: [
2015-09-01 05:18:46 +00:00
{
2015-09-12 23:17:00 +00:00
"value" : "message",
"action" : "@method:editModeEscPressed"
2015-09-01 05:18:46 +00:00
}
]
2015-10-10 01:27:43 +00:00
}
actionKeys: [
2015-09-12 23:17:00 +00:00
{
2015-10-10 01:27:43 +00:00
keys: [ "escape" ]
viewId: 1
2015-09-12 23:17:00 +00:00
}
]
2015-10-10 01:27:43 +00:00
}
2: {
TLTL: {
mci: {
TL1: { width: 5 }
TL2: { width: 4 }
2015-09-01 05:18:46 +00:00
}
}
2015-10-10 01:27:43 +00:00
}
2015-09-20 04:55:09 +00:00
4: {
mci: {
HM1: {
// :TODO: (#)Jump/(L)Index (msg list)/Last
2015-10-10 01:27:43 +00:00
// (p)rev, (n)ext, (r)eply, (q)uit/ESC, (?)help
items: [ "prev", "next", "reply", "quit", "help" ]
2015-09-08 03:18:09 +00:00
}
2015-10-10 01:27:43 +00:00
}
submit: {
*: [
2015-09-01 05:18:46 +00:00
{
2015-09-20 04:55:09 +00:00
value: { 1: 0 }
2015-10-05 04:04:56 +00:00
action: @method:prevMessage
2015-09-20 04:55:09 +00:00
}
2015-09-08 03:18:09 +00:00
{
2015-09-20 04:55:09 +00:00
value: { 1: 1 }
action: @method:nextMessage
}
2015-09-13 00:18:46 +00:00
{
2015-09-15 04:40:00 +00:00
value: { 1: 2 }
2015-09-13 00:18:46 +00:00
action: @method:replyMessage
extraArgs: {
menu: messageAreaReplyPost
}
2015-09-20 04:55:09 +00:00
}
2015-09-07 06:12:01 +00:00
{
2015-09-20 04:55:09 +00:00
value: { 1: 3 }
action: @menu:messageArea
}
{
value: { 1: 4 }
action: @method:viewModeMenuHelp
2015-09-01 05:18:46 +00:00
}
]
2015-10-10 01:27:43 +00:00
}
actionKeys: [
2015-09-08 03:18:09 +00:00
{
2015-09-18 05:17:15 +00:00
keys: [ "p", "shift + p" ]
action: @method:prevMessage
}
2015-09-08 03:18:09 +00:00
{
2015-09-15 04:40:00 +00:00
keys: [ "n", "shift + n" ]
action: @method:nextMessage
2015-09-18 05:17:15 +00:00
}
2015-09-14 03:15:55 +00:00
{
2015-09-18 05:17:15 +00:00
keys: [ "r", "shift + r" ]
2015-09-14 03:15:55 +00:00
action: @method:replyMessage
extraArgs: {
menu: messageAreaReplyPost
}
2015-09-18 05:17:15 +00:00
}
2015-09-20 04:55:09 +00:00
{
keys: [ "escape", "q", "shift + q" ]
2015-10-10 01:27:43 +00:00
action: @systemMethod:fallbackMenu
//action: @menu:messageArea
2015-09-20 04:55:09 +00:00
}
{
keys: [ "?" ]
action: @method:viewModeMenuHelp
}
2015-09-08 03:18:09 +00:00
{
2015-10-10 01:27:43 +00:00
keys: [ "down arrow", "up arrow", "page up", "page down" ]
action: @method:movementKeyPressed
2015-09-08 03:18:09 +00:00
}
]
2015-09-01 05:18:46 +00:00
}
}
},
2015-09-13 00:18:46 +00:00
messageAreaReplyPost: {
2015-09-13 01:18:08 +00:00
module: msg_area_post_fse
2015-09-13 00:18:46 +00:00
config: {
art: {
header: MSGEHDR
body: MSGBODY
quote: MSGQUOT
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
2015-09-20 04:55:09 +00:00
help: MSGEHLP
2015-09-13 00:18:46 +00:00
}
editorMode: edit
editorType: area
}
form: {
0: {
mci: {
// :TODO: use appropriate system properties for these lenghts
TL1: {
2015-10-06 21:22:49 +00:00
//width: 27
2015-09-13 00:18:46 +00:00
argName: from
}
ET2: {
2015-10-06 21:22:49 +00:00
//width: 27
2015-09-13 00:18:46 +00:00
argName: to
focus: true
}
ET3: {
argName: subject
maxLength: 72
submit: true
}
TL4: {
2015-09-20 04:55:09 +00:00
// :TODO: this is for RE: line (NYI)
2015-10-06 21:22:49 +00:00
//width: 27
//textOverflow: ...
2015-09-13 00:18:46 +00:00
}
MA5: {
2015-10-06 21:22:49 +00:00
//width: 27
//textOverflow: ...
2015-09-13 00:18:46 +00:00
}
}
2015-09-13 01:18:08 +00:00
submit: {
3: [ { "value" : { "subject" : null }, "action" : "@method:headerSubmit" } ]
}
2015-09-13 00:18:46 +00:00
}
2015-09-13 01:18:08 +00:00
1: {
mci: {
MT1: {
2015-10-10 02:46:28 +00:00
width: 79
height: 14
argName: message
mode: edit
2015-09-13 01:18:08 +00:00
}
}
submit: {
*: [ { "value": "message", "action": "@method:editModeEscPressed" } ]
}
actionKeys: [
{
keys: [ "escape" ],
viewId: 1
}
]
2015-09-14 03:15:55 +00:00
}
2015-09-15 04:40:00 +00:00
3: {
HM: {
mci: {
HM1: {
2015-10-07 03:21:13 +00:00
items: [ "save", "discard", "quote", "help" ]
2015-09-15 04:40:00 +00:00
}
}
2015-09-14 03:15:55 +00:00
submit: {
*: [
2015-09-20 07:29:07 +00:00
{
value: { 1: 0 }
action: @method:editModeMenuSave
}
2015-09-18 04:53:19 +00:00
{
value: { 1: 1 }
2015-09-24 05:41:06 +00:00
action: @systemMethod:fallbackMenu
2015-09-18 04:53:19 +00:00
}
2015-09-14 03:15:55 +00:00
{
value: { 1: 2 },
2015-09-15 04:40:00 +00:00
action: @method:editModeMenuQuote
2015-09-14 03:15:55 +00:00
}
2015-09-18 04:53:19 +00:00
{
value: { 1: 3 }
action: @method:editModeMenuHelp
}
2015-09-14 03:15:55 +00:00
]
}
2015-09-15 04:40:00 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @method:editModeEscPressed
}
2015-09-20 04:55:09 +00:00
{
keys: [ "s", "shift + s" ]
2015-09-20 07:29:07 +00:00
action: @method:editModeMenuSave
2015-09-20 04:55:09 +00:00
}
{
keys: [ "d", "shift + d" ]
2015-09-24 05:41:06 +00:00
action: @systemMethod:fallbackMenu
2015-09-20 04:55:09 +00:00
}
{
keys: [ "q", "shift + q" ]
action: @method:editModeMenuQuote
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
}
2015-09-15 04:40:00 +00:00
]
}
}
2015-09-20 04:55:09 +00:00
// Quote builder
2015-09-15 04:40:00 +00:00
5: {
mci: {
MT1: {
width: 79
height: 7
}
VM3: {
width: 79
height: 4
2015-09-16 04:44:31 +00:00
argName: quote
2015-09-15 04:40:00 +00:00
}
2015-09-14 03:15:55 +00:00
}
2015-09-16 04:44:31 +00:00
submit: {
*: [
{
value: { quote: null }
action: @method:appendQuoteEntry
}
]
}
2015-09-17 04:31:09 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @method:quoteBuilderEscPressed
}
]
2015-09-14 03:15:55 +00:00
}
2015-09-13 00:18:46 +00:00
}
}
2015-08-18 03:45:11 +00:00
// :TODO: messageAreaSelect (change msg areas -> call @systemMethod -> fallback to menu
2015-10-16 05:41:24 +00:00
messageAreaNewPost: {
status: Posting message,
module: msg_area_post_fse
//"fallback" : "messageArea", // :TODO: remove once default fallback is in place
2015-09-11 05:09:45 +00:00
config: {
art: {
header: MSGEHDR
2015-09-12 23:17:00 +00:00
body: MSGBODY
2015-09-11 05:09:45 +00:00
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
2015-09-20 04:55:09 +00:00
help: MSGEHLP
2015-10-16 05:41:24 +00:00
}
2015-09-11 05:09:45 +00:00
editorMode: edit
editorType: area
2015-10-16 05:41:24 +00:00
}
2015-10-07 03:21:13 +00:00
form: {
0: {
2015-09-11 05:09:45 +00:00
mci: {
TL1: {
2015-10-07 03:21:13 +00:00
argName: from
2015-09-11 05:09:45 +00:00
}
ET2: {
2015-10-07 03:21:13 +00:00
argName: to
focus: true
2015-09-21 01:10:09 +00:00
text: All
2015-09-11 05:09:45 +00:00
}
2015-10-07 03:21:13 +00:00
ET3: {
argName: subject
maxLength: 72
submit: true
2015-08-14 04:30:55 +00:00
}
2015-10-07 03:21:13 +00:00
}
2015-09-11 05:09:45 +00:00
"submit" : {
"3" : [
{
"value" : { "subject" : null },
"action" : "@method:headerSubmit"
}
]
2015-08-13 04:08:33 +00:00
}
2015-10-07 03:21:13 +00:00
}
1: {
2015-09-12 23:17:00 +00:00
"mci" : {
MT1: {
2015-10-07 03:21:13 +00:00
width: 79
argName: message
mode: edit
2015-09-12 23:17:00 +00:00
}
2015-08-13 22:05:17 +00:00
}
2015-09-12 23:17:00 +00:00
submit: {
*: [ { "value": "message", "action": "@method:editModeEscPressed" } ]
},
2015-10-07 03:21:13 +00:00
actionKeys: [
2015-09-12 23:17:00 +00:00
{
"keys" : [ "escape" ],
"viewId" : 1
}
]
2015-08-14 04:30:55 +00:00
},
"2" : {
"TLTL" : {
"mci" : {
"TL1" : {
"width" : 5
},
"TL2" : {
"width" : 4
}
}
}
},
"3" : {
"HM" : {
"mci" : {
"HM1" : {
2015-10-07 03:21:13 +00:00
// :TODO: clear
"items" : [ "save", "discard", "help" ]
2015-08-14 04:30:55 +00:00
}
},
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
2015-08-16 19:35:34 +00:00
"action" : "@method:editModeMenuSave"
2015-08-14 04:30:55 +00:00
},
{
"value" : { "1" : 1 },
"action" : "@menu:messageArea"
2015-10-07 03:21:13 +00:00
}
2015-08-14 04:30:55 +00:00
{
2015-10-07 03:21:13 +00:00
"value" : { "1" : 2 },
2015-08-16 19:35:34 +00:00
"action" : "@method:editModeMenuHelp"
2015-09-13 00:18:46 +00:00
}
2015-08-14 04:30:55 +00:00
]
},
2015-09-21 01:10:09 +00:00
actionKeys: [ // :TODO: Need better name
2015-08-14 04:30:55 +00:00
{
2015-09-21 01:10:09 +00:00
keys: [ "escape" ]
action: @method:editModeEscPressed
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
2015-08-14 04:30:55 +00:00
}
]
// :TODO: something like the following for overriding keymap
// this should only override specified entries. others will default
/*
"keyMap" : {
"accept" : [ "return" ]
}
*/
}
2015-08-13 04:08:33 +00:00
}
2015-08-12 03:36:08 +00:00
}
},
2015-08-10 01:32:38 +00:00
///////////////////////////////////////////////////////////////////////
// Doors
///////////////////////////////////////////////////////////////////////
2015-08-03 00:27:05 +00:00
"doorPimpWars" : {
"module" : "abracadabra",
2015-08-04 05:11:17 +00:00
"fallback" : "mainMenu",
2015-08-03 00:27:05 +00:00
"config" : {
2015-08-04 05:11:17 +00:00
"name" : "PimpWars",
"dropFileType" : "DORINFO",
"cmd" : "/usr/bin/dosemu",
"args" : [
"-quiet", "-f", "/home/nuskooler/DOS/X/LORD/dosemu.conf", "X:\\PW\\START.BAT {dropfile} {node}"
],
2015-08-04 05:21:23 +00:00
"nodeMax" : 1,
"tooManyArt" : "doortoomany.ans"
2015-08-04 05:11:17 +00:00
}
},
"doorLORD" : {
"module" : "abracadabra",
"fallback" : "mainMenu",
"config" : {
"name" : "LORD",
"dropFileType" : "DOOR",
"cmd" : "/usr/bin/dosemu",
"args" : [
"-quiet", "-f", "/home/nuskooler/DOS/X/LORD/dosemu.conf", "X:\\LORD\\START.BAT {node}"
]
2015-08-03 00:27:05 +00:00
}
},
2015-10-15 05:09:10 +00:00
doorTestExample: {
module: abracadabra
config: {
name: example
dropFileType: DOOR
cmd: "/usr/bin/dosemu"
args: [ "-quiet", "-f", "/home/nuskooler/DOS/X/LORD/dosemu.conf", "X:\\SLOWMO.EXE 1 120 X:\\LORD\\LAIRANS.ANS"]
}
}
2015-07-31 15:11:57 +00:00
////////////////////////////////////////////////////////////////////////
// Mods
////////////////////////////////////////////////////////////////////////
2015-09-12 23:17:00 +00:00
idleLogoff: {
art: IDLELOG
next: @systemMethod:logoff
2015-08-05 04:35:59 +00:00
},
////////////////////////////////////////////////////////////////////////
// Mods
////////////////////////////////////////////////////////////////////////
2015-07-26 06:20:07 +00:00
"lastCallers" :{
"module" : "last_callers",
"art" : "LASTCALL.ANS",
2015-09-09 04:08:45 +00:00
"options" : { "pause" : true },
2015-07-27 04:51:06 +00:00
"config" : {
2015-07-28 04:10:20 +00:00
"dateTimeFormat" : "ddd MMM Do H:mm a"
2015-07-27 04:51:06 +00:00
},
"form" : {
"0" : {
2015-07-28 04:10:20 +00:00
"TLTLTLTL" : {
2015-07-27 04:51:06 +00:00
"mci" : {
2015-07-28 04:10:20 +00:00
// :TODO: Bug: Without any keys here, theme customization does not apply!!!!
"TL1" : {
"styleSGR1" : "|00|24"
2015-07-27 04:51:06 +00:00
},
"TL2" : {
2015-07-28 04:10:20 +00:00
"styleSGR1" : "|00|24"
},
"TL3" : {
"styleSGR1" : "|00|24"
},
"TL4" : {
"styleSGR1" : "|00|24"
2015-07-27 04:51:06 +00:00
}
2015-07-28 04:10:20 +00:00
2015-07-27 04:51:06 +00:00
}
}
}
}
2015-05-16 05:02:58 +00:00
},
2015-07-31 15:11:57 +00:00
////////////////////////////////////////////////////////////////////////
// Demo Section
////////////////////////////////////////////////////////////////////////
2015-05-16 05:02:58 +00:00
"demoMain" : {
"art" : "demo_selection_vm.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"VM" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"VM1" : {
"items" : [
"Single Line Text Editing Views",
"Spinner & Toggle Views",
"Mask Edit Views",
2015-05-16 20:39:14 +00:00
"Multi Line Text Editor",
2015-05-16 05:02:58 +00:00
"Vertical Menu Views",
"Horizontal Menu Views",
"Art Display",
2015-08-26 05:17:09 +00:00
"Full Screen Editor"
2015-05-16 05:02:58 +00:00
],
"height" : 10,
"itemSpacing" : 1,
"justify" : "center",
"focusTextStyle" : "small i"
}
2015-04-10 04:49:56 +00:00
},
2015-05-16 05:02:58 +00:00
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
"action" : "@menu:demoEditTextView"
},
{
"value" : { "1" : 1 },
"action" : "@menu:demoSpinAndToggleView"
},
{
"value" : { "1" : 2 },
"action" : "@menu:demoMaskEditView"
},
{
2015-05-16 20:39:14 +00:00
"value" : { "1" : 3 },
"action" : "@menu:demoMultiLineEditTextView"
},
2015-08-26 05:17:09 +00:00
{
"value" : { "1" : 4 },
"action" : "@menu:demoVerticalMenuView"
},
2015-07-01 04:45:27 +00:00
{
"value" : { "1" : 5 },
"action" : "@menu:demoHorizontalMenuView"
},
2015-05-16 20:39:14 +00:00
{
"value" : { "1" : 6 },
2015-05-16 05:02:58 +00:00
"action" : "@menu:demoArtDisplay"
2015-06-25 04:45:21 +00:00
},
{
"value" : { "1" : 7 },
2015-06-25 22:33:17 +00:00
"action" : "@menu:demoFullScreenEditor"
2015-05-16 05:02:58 +00:00
}
]
2015-04-07 04:29:45 +00:00
}
}
}
}
2015-04-10 04:49:56 +00:00
},
2015-05-16 05:02:58 +00:00
"demoEditTextView" : {
"art" : "demo_edit_text_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTETETETET" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"ET1" : {
"width" : 20,
"maxLength" : 20
},
"ET2" : {
"width" : 20,
"maxLength" : 40,
"textOverflow" : "..."
2015-04-29 03:15:36 +00:00
},
2015-05-16 05:02:58 +00:00
"ET3" : {
"width" : 20,
"fillChar" : "-",
"styleSGR1" : "|00|36",
"maxLength" : 20
2015-05-03 23:35:55 +00:00
},
2015-05-16 05:02:58 +00:00
"ET4" : {
"width" : 20,
"maxLength" : 20,
"password" : true
2015-05-15 05:01:00 +00:00
},
2015-05-16 05:02:58 +00:00
"BT5" : {
"width" : 8,
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-04-25 20:44:48 +00:00
}
2015-04-27 23:27:23 +00:00
},
2015-05-16 05:02:58 +00:00
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-04-29 03:15:36 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
},
"demoSpinAndToggleView" : {
"art" : "demo_spin_and_toggle.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTSMSMTM" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"SM1" : {
"items" : [ "Henry Morgan", "François l'Ollonais", "Roche Braziliano", "Black Bart", "Blackbeard" ]
},
"SM2" : {
"items" : [ "Razor 1911", "DrinkOrDie", "TRSI" ]
},
"TM3" : {
"items" : [ "Yarly", "Nowaii" ],
"styleSGR1" : "|00|30|01",
2015-06-05 22:20:26 +00:00
"hotKeys" : { "Y" : 0, "N" : 1 }
2015-05-16 05:02:58 +00:00
},
"BT8" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-05-16 05:02:58 +00:00
}
2015-04-29 03:15:36 +00:00
},
2015-05-16 05:02:58 +00:00
"submit" : {
"*" : [
{
"value" : 8,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 8
}
]
2015-04-27 23:27:23 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
},
"demoMaskEditView" : {
"art" : "demo_mask_edit_text_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTMEME" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"ME1" : {
"maskPattern" : "##/##/##",
"styleSGR1" : "|00|30|01",
2015-07-22 05:52:20 +00:00
//"styleSGR2" : "|00|45|01",
"styleSGR3" : "|00|30|35",
"fillChar" : "#"
2015-05-16 20:39:14 +00:00
},
"BT5" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-05-16 20:39:14 +00:00
}
2015-05-18 03:33:27 +00:00
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-05-16 20:39:14 +00:00
}
}
}
},
"demoMultiLineEditTextView" : {
"art" : "demo_multi_line_edit_text_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTMT" : {
2015-05-16 20:39:14 +00:00
"mci" : {
"MT1" : {
2015-06-20 21:15:37 +00:00
"width" : 70,
2015-05-18 03:33:27 +00:00
"height" : 17,
2015-07-22 05:52:20 +00:00
//"text" : "@art:demo_multi_line_edit_text_view_text.txt",
// "text" : "@systemMethod:textFromFile"
2015-09-11 05:09:45 +00:00
text: "Hints:\n\t* Insert / CTRL-V toggles overtype mode\n\t* CTRL-Y deletes the current line\n\t* Try Page Up / Page Down\n\t* Home goes to the start of line text\n\t* End goes to the end of a line\n\n\nTab handling:\n-------------------------------------------------\n\tA\tB\tC\tD\tE\tF\nA\tB\tC\tD\tE\tF\tG\tH\n\tA\tB\tC\tD\tE\tF\nA\tB\tC\tD\tE\tF\tG\tH\nA0\tBB\t1\tCCC\t2\tDDD\t3EEEE\nW\t\tX\t\tY\t\tZ\n\nAn excerpt from A Clockwork Orange:\n\"What sloochatted then, of course, was that my cellmates woke up and started joining in, tolchocking a bit wild in the near-dark, and the shoom seemed to wake up the whole tier, so that you could slooshy a lot of creeching and banging about with tin mugs on the wall, as though all the plennies in all the cells thought a big break was about to commence, O my brothers.\n",
2015-05-18 03:33:27 +00:00
"focus" : true
2015-05-16 20:39:14 +00:00
},
"BT5" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-05-16 05:02:58 +00:00
}
2015-05-18 03:33:27 +00:00
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-05-15 05:01:00 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
},
2015-07-01 04:45:27 +00:00
"demoHorizontalMenuView" : {
"art" : "demo_horizontal_menu_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTHMHM" : {
2015-07-01 04:45:27 +00:00
"mci" : {
"HM1" : {
2015-07-02 02:18:34 +00:00
"items" : [ "One", "Two", "Three" ],
"hotKeys" : { "1" : 0, "2" : 1, "3" : 2 }
},
"HM2" : {
"items" : [ "Uno", "Dos", "Tres" ],
"hotKeys" : { "U" : 0, "D" : 1, "T" : 2 }
2015-07-01 04:45:27 +00:00
},
"BT5" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-07-01 04:45:27 +00:00
}
2015-07-02 02:18:34 +00:00
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-07-01 04:45:27 +00:00
}
}
}
},
2015-08-26 05:17:09 +00:00
"demoVerticalMenuView" : {
"art" : "demo_vertical_menu_view1.ans",
"form" : {
"0" : {
"BTVM" : {
"mci" : {
"VM1" : {
"items" : [
"|33Oblivion/2",
"|33iNiQUiTY",
"|33ViSiON/X"
],
"focusItems" : [
"|33Oblivion|01/|00|332",
"|01|33i|00|33N|01i|00|33QU|01i|00|33TY",
"|33ViSiON/X"
]
//
// :TODO: how to do the following:
// 1) Supply a view a string for a standard vs focused item
// "items" : [...], "focusItems" : [ ... ] ?
// "draw" : "@method:drawItemX", then items: [...]
},
"BT5" : {
"text" : "< Back"
}
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
}
}
}
},
2015-05-16 05:02:58 +00:00
"demoArtDisplay" : {
"art" : "demo_selection_vm.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"VM" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"VM1" : {
"items" : [
"Defaults - DOS ANSI",
2015-07-20 03:49:48 +00:00
"bw_mindgames.ans - DOS",
"test.ans - DOS",
2015-05-16 05:02:58 +00:00
"Defaults - Amiga",
"Pause at Term Height"
],
// :TODO: justify not working??
"focusTextStyle" : "small i"
}
},
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
"action" : "@menu:demoDefaultsDosAnsi"
2015-07-20 03:49:48 +00:00
},
{
"value" : { "1" : 1 },
"action" : "@menu:demoDefaultsDosAnsi_bw_mindgames"
},
{
"value" : { "1" : 2 },
"action" : "@menu:demoDefaultsDosAnsi_test"
}
2015-05-16 05:02:58 +00:00
]
2015-05-03 23:35:55 +00:00
}
}
}
}
2015-05-16 05:02:58 +00:00
},
"demoDefaultsDosAnsi" : {
2015-09-09 04:08:45 +00:00
"art" : "DM-ENIG2.ANS"
2015-07-20 03:49:48 +00:00
},
"demoDefaultsDosAnsi_bw_mindgames" : {
2015-09-09 04:08:45 +00:00
"art" : "bw_mindgames.ans"
2015-07-20 03:49:48 +00:00
},
"demoDefaultsDosAnsi_test" : {
2015-09-09 04:08:45 +00:00
"art" : "test.ans"
2015-06-25 04:45:21 +00:00
},
2015-06-25 22:33:17 +00:00
"demoFullScreenEditor" : {
2015-08-08 21:52:47 +00:00
"module" : "@systemModule:fse",
2015-06-26 04:34:33 +00:00
"config" : {
2015-07-04 18:02:37 +00:00
"editorType" : "netMail",
"art" : {
"header" : "demo_fse_netmail_header.ans",
"body" : "demo_fse_netmail_body.ans",
2015-09-04 20:28:05 +00:00
"footerEditor" : "demo_fse_netmail_footer_edit.ans",
"footerEditorMenu" : "demo_fse_netmail_footer_edit_menu.ans",
2015-07-11 22:39:42 +00:00
"footerView" : "demo_fse_netmail_footer_view.ans",
"help" : "demo_fse_netmail_help.ans"
2015-07-04 18:02:37 +00:00
}
2015-06-27 21:32:29 +00:00
},
2015-07-04 18:02:37 +00:00
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"ETETET" : {
2015-07-04 18:02:37 +00:00
"mci" : {
"ET1" : {
// :TODO: from/to may be set by args
// :TODO: focus may change dep on view vs edit
"width" : 36,
2015-07-13 04:56:33 +00:00
"focus" : true,
"argName" : "to"
2015-07-04 18:02:37 +00:00
},
"ET2" : {
2015-07-13 04:56:33 +00:00
"width" : 36,
"argName" : "from"
2015-07-04 18:02:37 +00:00
},
"ET3" : {
"width" : 65,
"maxLength" : 72,
2015-07-13 04:56:33 +00:00
"submit" : [ "enter" ],
"argName" : "subject"
2015-07-04 18:02:37 +00:00
}
},
"submit" : {
"3" : [
{
2015-07-13 19:41:21 +00:00
"value" : { "subject" : null },
2015-07-04 18:02:37 +00:00
"action" : "@method:headerSubmit"
}
]
}
}
},
"1" : {
2015-07-22 05:52:20 +00:00
"MT" : {
2015-07-04 18:02:37 +00:00
"mci" : {
"MT1" : {
"width" : 79,
2015-07-06 01:05:55 +00:00
"height" : 17,
2015-07-13 04:56:33 +00:00
"text" : "", // :TODO: should not be req.
"argName" : "message"
2015-07-04 18:02:37 +00:00
}
},
"submit" : {
"*" : [
{
2015-07-13 19:41:21 +00:00
"value" : "message",
2015-07-09 04:49:22 +00:00
"action" : "@method:editModeEscPressed"
2015-07-04 18:02:37 +00:00
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 1
}
]
2015-07-04 18:02:37 +00:00
}
2015-07-06 01:05:55 +00:00
},
"2" : {
2015-07-22 05:52:20 +00:00
"TLTL" : {
2015-07-06 01:05:55 +00:00
"mci" : {
"TL1" : {
"width" : 5
},
"TL2" : {
"width" : 4
}
}
}
2015-07-09 04:07:25 +00:00
},
"3" : {
2015-07-22 05:52:20 +00:00
"HM" : {
2015-07-09 04:07:25 +00:00
"mci" : {
"HM1" : {
2015-07-12 06:32:31 +00:00
// :TODO: Continue, Save, Discard, Clear, Quote, Help
"items" : [ "Save", "Discard", "Quote", "Help" ]
2015-07-09 04:07:25 +00:00
}
2015-07-09 04:49:22 +00:00
},
"submit" : {
"*" : [
{
2015-07-09 23:06:09 +00:00
"value" : { "1" : 0 },
2015-07-12 06:32:31 +00:00
"action" : "@method:editModeMenuSave"
2015-07-09 04:49:22 +00:00
},
2015-07-10 05:23:37 +00:00
{
"value" : { "1" : 1 },
2015-07-12 02:12:07 +00:00
"action" : "@menu:demoMain"
2015-07-10 05:23:37 +00:00
},
{
"value" : { "1" : 2 },
2015-07-12 06:32:31 +00:00
"action" : "@method:editModeMenuQuote"
2015-07-10 05:23:37 +00:00
},
{
"value" : { "1" : 3 },
2015-07-12 02:12:07 +00:00
"action" : "@method:editModeMenuHelp"
2015-07-10 05:23:37 +00:00
},
2015-07-09 04:49:22 +00:00
{
"value" : 1,
"action" : "@method:editModeEscPressed"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [ // :TODO: Need better name
{
"keys" : [ "escape" ],
"action" : "@method:editModeEscPressed"
}
]
2015-07-10 21:24:30 +00:00
// :TODO: something like the following for overriding keymap
// this should only override specified entries. others will default
/*
"keyMap" : {
"accept" : [ "return" ]
}
*/
2015-07-09 04:07:25 +00:00
}
2015-07-04 18:02:37 +00:00
}
}
/*
2015-06-27 21:32:29 +00:00
"form" : {
"0" : {
"ET1ET2MT3" : {
"mci" : {
"ET1" : {
2015-06-29 04:31:12 +00:00
"width" : 20,
"placeholder" : "TODO support this",
"focus" : true
2015-06-27 21:32:29 +00:00
},
"ET2" : {
2015-06-29 04:31:12 +00:00
"width" : 20
2015-06-27 21:32:29 +00:00
},
"MT3" : {
"width" : 79,
"height" : 17,
"text" : "",
"submit" : [ "escape" ]
}
},
"submit" : {
// :TODO: It may be nice to have a way to submit without data - e.g. we just care about the key press.
"3" : [
{
"value" : 3,
"action" : "@method:editorEscPressed"
}
]
}
}
}
2015-06-25 05:09:26 +00:00
}
2015-07-04 18:02:37 +00:00
*/
2015-05-03 23:35:55 +00:00
}
2015-05-16 05:02:58 +00:00
/*
:TODO: conceptual simplified menus -- actions/etc. without forms
2015-04-28 23:18:02 +00:00
2015-05-16 05:02:58 +00:00
{
"myMenu" : {
"art" : "MENUART",
"mci" : { // lack of "form": direct to form:0 {}
"VM1" : {
"items" : [ "Hello", "Goodbye" ],
"action" : "@method:someMethod" // implies { "submit" : true }
},
"submit" : {
// alternate form with filters
}
2015-04-28 23:18:02 +00:00
}
2015-04-28 04:40:05 +00:00
}
}
2015-05-16 05:02:58 +00:00
*/
/*
"demoEditTextView" : {
"art" : "demo_edit_text_view.ans",
"form" : {
"0" : {
"ET1ET2ET3ET5SM4TM6" : {
"mci" : {
"ET1" : { "maxLength" : 1 },
"ET2" : { "maxLength" : 1 },
"ET3" : { "maxLength" : 1 },
"SM4" : {
"items" : [ "One", "Two", "Three", "Four" ]
},
"ET5" : {
"password" : true,
2015-06-06 06:33:59 +00:00
"submit" : [ "escape" ],
2015-05-16 05:02:58 +00:00
"fillChar" : "#"
},
"TM6" : {
"items" : [ "Yes", "No" ],
"hotkeys" : { "Y" : 0, "n" : 1 }
}
2015-04-27 02:46:16 +00:00
}
}
2015-04-25 20:44:48 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
*/
2015-03-24 05:12:19 +00:00
}
}