1. Menu Routine

--- Here is a routine that puts a text-only menu on the screen and traps
-- for F keys.  Have fun.

-- Steve Elder

include graphics.e
include get.e
atom row,result
result = 0

global procedure draw_menu(sequence title) -- draw generic menu screen
    cursor(NO_CURSOR)                      -- with a title
    clear_screen()
    row = 6
    position(5,20) text_color(WHITE)
    puts(1,title)

    for i = 1 to 12 do
        position(row + i,20) text_color(3)
        puts(1, "F") ? i
    end for

    text_color(WHITE)
    position(20,20) puts(1,"PRESS DESIRED FUNCTION KEY")
end procedure


global procedure menu_item(atom fkey, sequence label) -- add items to menu
    text_color(BRIGHT_BLUE)
    position(row + fkey,26) puts(1,label)
end procedure

global function menu_out(atom fkey_in) -- get results from fkey press
    fkey_in = wait_key()               -- f1 = 1, f2 = 2, etc.
    fkey_in = fkey_in - 314
    if fkey_in > 10 then
        fkey_in = fkey_in -64
    elsif fkey_in < 1 then
        position(24,1) puts(1,"You did not press an F key.")
        abort(0)
    end if
    return fkey_in
end function

-- usage

draw_menu("Show Me")

menu_item(1,"Show me a one")
menu_item(2,"Show me a two")
menu_item(3,"Show me a three")
menu_item(5,"Show me a five")

result = menu_out(result)

position(24,1) puts(1,"You pressed F") ? result

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu