link gui class SecondTest : _Dialog( text_menu_item_1, text_menu_item_2, check_box_1, check_box_2, check_box_3, text_list, tabl, table_column_1, table_column_2, lst, text_field, check_box_group, label_1, label_2, label_3, label_4, label_5, oses, languages, shares ) method put_line(s) local l l := text_list.get_contents() put(l, s) text_list.set_contents(l, *l) end method handle_default(ev) local icon_event icon_event := ev.get_event() put_line("Icon event " || icon_event) if icon_event === "q" & &meta then dispose() end method handle_text_menu_item_1(ev) dispose() end method handle_text_menu_item_2(ev) put_line("You selected the menu item") end method handle_check_box_1(ev) put_line("Favorite o/s is " || oses[1]) end method handle_check_box_2(ev) put_line("Favorite o/s is " || oses[2]) end method handle_check_box_3(ev) put_line("Favorite o/s is " || oses[3]) end method handle_text_field(ev) put_line("TextField code = " || ev.get_code()) put_line("Contents = " || text_field.get_contents()) end method handle_list(ev) put_line("Favorite language is " || languages[lst.get_selection()]) end method handle_table(ev) local i i := tabl.get_selections()[1] put_line(shares[i][1] || " is trading at " || shares[i][2]) end method handle_table_column_1(ev) put_line("Clicked on column 1") end method handle_table_column_2(ev) put_line("Clicked on column 2") end method dialog_event(ev) case ev.get_component() of { text_menu_item_1: handle_text_menu_item_1(ev) text_menu_item_2: handle_text_menu_item_2(ev) check_box_1: handle_check_box_1(ev) check_box_2: handle_check_box_2(ev) check_box_3: handle_check_box_3(ev) tabl : handle_table(ev) table_column_1 : handle_table_column_1(ev) table_column_2 : handle_table_column_2(ev) lst : handle_list(ev) text_field : handle_text_field(ev) default : handle_default(ev) } end initially local menu_bar, menu, panel_1, panel_2, panel_3, panel_4, panel_5 self$_Dialog.initially() oses := ["Windows", "Linux", "Solaris"] languages := ["C", "C++", "Java", "Unicon"] shares := [["Microsoft", "101.84"], ["Oracle", "12.52"], ["IBM", "13.22"], ["Intel", "142.00"]] attrib("size=568,512", "bg=light gray", "font=sans", "resize=on") set_min_size(494,404) menu_bar := MenuBar() menu := Menu("label=File") text_menu_item_1 := TextMenuItem("label=Quit") menu.add(text_menu_item_1) text_menu_item_2 := TextMenuItem("label=Message") menu.add(text_menu_item_2) menu_bar.add(menu) add(menu_bar) check_box_group := CheckBoxGroup() panel_1 := Panel("pos=5%,10%", "size=134,132") label_2 := Label("pos=10,10", "ialign=l", "label=Favorite o/s") panel_1.add(label_2) check_box_1 := CheckBox("pos=10,40", "label="||oses[1]) check_box_group.add(check_box_1) panel_1.add(check_box_1) check_box_2 := CheckBox("pos=10,70", "label="||oses[2]) check_box_group.add(check_box_2) panel_1.add(check_box_2) check_box_3 := CheckBox("pos=10,100", "label="||oses[3]) check_box_group.add(check_box_3) panel_1.add(check_box_3) add(panel_1) panel_2 := Panel("pos=45%,10%", "size=260,192") text_list := TextList("pos=10,40", "size=240,135") text_list.set_contents([]) panel_2.add(text_list) label_1 := Label("pos=10,10","ialign=l","label=Messages") panel_2.add(label_1) add(panel_2) panel_3 := Panel("pos=45%,55%", "size=260,192") tabl := Table("pos=10,40", "size=240,127") tabl.set_select_one() tabl.set_contents(shares) table_column_1 := TableColumn("label=Company", "ialign=l", "column_width=100") tabl.add(table_column_1) table_column_2 := TableColumn("label=Share price", "ialign=r", "column_width=100") tabl.add(table_column_2) panel_3.add(tabl) label_5 := Label("pos=10,10","ialign=l","label=Shares") panel_3.add(label_5) add(panel_3) panel_4 := Panel("pos=5%,45%", "size=182,83") lst := List("pos=10,40", "size=100") lst.set_selection_list(languages) panel_4.add(lst) label_3 := Label("pos=10,10", "ialign=l", "label=Favorite language") panel_4.add(label_3) add(panel_4) panel_5 := Panel("pos=5%,70%", "size=182,83") label_4 := Label("pos=10,10", "ialign=l", "label=Enter a string") panel_5.add(label_4) text_field := TextField("pos=10,40", "size=129") text_field.set_draw_border() text_field.set_contents("") panel_5.add(text_field) add(panel_5) show_modal() end # # Program entry point. # procedure main() SecondTest() end