# KEHOME/help/mke_input_menu.icn # Jul/26/2008 #=================================================== #=================================================== # Microsoft Windows & common menus procedure msmenu_input(mywin) #============================ local mevent,dval static info,warning initial { info := "INFO: msmenu_input: " warning := "WARNING: msmenu_input: " } repeat { flush(myout); flush(myerr) #####if \mevent~=="Scroll" then ##### scroll(mycon,myscroll,"refresh") Raise(mywin) WinMenuBar(mywin, ["File", "Open", "Save", "Input Menu", "Concept Menu", "Close Menu", "Exit MKE" ], #["Scroll","Scroll"], ["Context", "View", "Hierarchy", "File System" ], ["Concept", "Current Concept", "Definition", "Concept Menu" ], ["Statement", "Part", "Attribute", "Action", "simple Relation", "general Relation", "Conditional", "Iteration" ], ["Question", "true-false Question", "form-based Question" ], ["Command", "ke Command", "sh Command", "user Command", "Update Relation", "Edit Directory" ], ["Assignment", "Variables", "File Parameters" ], ["Help", #####"Topic", "About MKE" ] ) mevent := Event(mywin) if DEBUG=="MENU" then { writes_type(mybug,mywin,info||"mywin") writes_type(mybug,dialog_value,info||"dialog_value") writes_type(mybug,mevent,info||"mevent") } case mevent of { default: { if DEBUG=="WINDOW" then writes_type(mylog,mevent,warning||"unexpected mevent") } "Open": { menu_file(mywin,mevent) } "Save": { menu_file(mywin,mevent) } "Input Menu": { return menu_input(mywin) } "Concept Menu": { return concept_menu_input(mywin,DOT1) } "Close Menu": { return menu_close(mywin) } "Exit MKE": { return menu_exit(mywin) } "View": { menu_context(mywin,mevent) } "Hierarchy": { menu_context(mywin,mevent) } "File System": { menu_context(mywin,mevent) } "Concept Menu": { concept_menu_input(mywin,DOT1) } "Current Concept":{ menu_concept(mywin,mevent) } "Definition": { menu_concept(mywin,mevent) } "Variables": { menu_assignment(mywin,mevent) } "File Parameters":{ menu_assignment(mywin,mevent) } "Attribute": { menu_statement(mywin,mevent) } "Part": { menu_statement(mywin,mevent) } "Action": { menu_statement(mywin,mevent) } "simple Relation": { menu_statement(mywin,mevent) } "general Relation": { menu_statement(mywin,mevent) } "Conditional": { menu_statement(mywin,mevent) } "Iteration": { menu_statement(mywin,mevent) } "ke Command": { menu_command(mywin,mevent) } "sh Command": { menu_command(mywin,mevent) } "user Command": { menu_command(mywin,mevent) } "Update Relation":{ menu_command(mywin,mevent) } "Edit Directory": { menu_command(mywin,mevent) } "true-false Question": { menu_question(mywin,mevent) } "form-based Question": { menu_question(mywin,mevent) } "Topic": { menu_help(mywin,mevent) } "About MKE": { menu_help(mywin,mevent) } #"Scroll": { scroll(mycon,myscroll,"scroll") } #Key_Home: { scroll(mycon,myscroll) } #Key_Up: { scroll(mycon,myscroll) } #Key_Down: { scroll(mycon,myscroll) } #Key_Left: { scroll(mycon,myscroll) } #Key_Right: { scroll(mycon,myscroll) } #Key_PgUp: { scroll(mycon,myscroll) } #Key_PgDn: { scroll(mycon,myscroll) } #Key_End: { scroll(mycon,myscroll) } } # end case mevent } # end repeat writes_type(mywin,dval,info||"returning dval") if DEBUG=="WINDOW" then WDelay(mywin,2000) return dval end