import package a4gl_glade


DEFINE pickwin integer
define mv_arr array[1000] of char(128)
define mv_cnt integer
define mv_curr_option integer
define mv_title char(80)

function set_pick(lv_sub,lv_value)
define lv_sub integer
define lv_value char(255)
let mv_arr[lv_sub]=lv_value
end function


function set_pick_cnt(lv_cnt)
define lv_cnt integer
let mv_cnt=lv_cnt
let mv_curr_option=1
end function


function prompt_pick(lv_txt,lv_value)
define lv_txt char(80)
define lv_value char(80)

let mv_title=lv_txt

open form pickwin disable program using pickwin_fh 

if mv_curr_option=-1 then
	return ""
else
	return mv_arr[mv_curr_option]
end if
end function


formhandler pickwin_fh
	before open form
		#call form_caption_set(pickwin,mv_title)
		call list_column_set_header(pickwin,id_to_int(picklist),mv_title)
		#message "Set caption to ",mv_title clipped
		call copy_data_to_list()
		let mv_curr_option=-1
input
	on b_ok
		let mv_curr_option=list_current_get(pickwin,id_to_int(picklist))
		if mv_curr_option=-1 then
			Message "Nothing selected!"
		else
			close form pickwin
		end if

	on b_cancel
		let mv_curr_option=-1
		close form pickwin

end input

end formhandler



function copy_data_to_list()
define a,lv_ok integer
# Clear our list down..
while true
	call list_count_get(pickwin,Id_To_Int(picklist)) returning lv_ok
	if lv_ok then
		call list_delete(pickwin,Id_To_Int(picklist),1)
	else
		exit while
	end if
end while

for a=1 to mv_cnt
	call list_append(pickwin,Id_To_Int(picklist),mv_arr[a])
end for
end function