User input/Graphical: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
(→{{header|Tcl}}: + standard ML) |
||
Line 1,945: | Line 1,945: | ||
</interface></lang> |
</interface></lang> |
||
=={{header|Standard ML}}== |
|||
Works with PolyML |
|||
<lang Standard ML>open XWindows ; |
|||
open Motif ; |
|||
val store : string list ref = ref [] ; |
|||
val inputWindow = fn () => |
|||
let |
|||
val shell = XtAppInitialise "" "demo" "top" [] [ XmNwidth 320, XmNheight 100 ] ; |
|||
val main = XmCreateMainWindow shell "main" [ XmNmappedWhenManaged true ] ; |
|||
val enter = XmCreateText main "inputarea" [ XmNeditMode XmSINGLE_LINE_EDIT, |
|||
XmNscrollHorizontal false ] ; |
|||
val getinp = fn (w,s,t) => ( store := XmTextGetString enter :: !store ; t ) |
|||
in |
|||
( |
|||
XtSetCallbacks enter [ (XmNactivateCallback , getinp) ] XmNarmCallback ; |
|||
XtManageChild enter ; |
|||
XtManageChild main ; |
|||
XtRealizeWidget shell |
|||
) |
|||
end ; |
|||
inputWindow () ;</lang> |
|||
enter text, press enter, delete, enter 75000, press enter, result: |
|||
!store ; |
|||
List.map Int.fromString (!store) ; |
|||
val it = ["75000", "That string"]: string list |
|||
val it = [SOME 75000, NONE]: int option list |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |
||