def create_form(self): self.pform = xfl.fl_bgn_form(xfl.FL_NO_BOX, 420, 360) xfl.fl_add_box(xfl.FL_UP_BOX, 0, 0, 420, 360, "") xfl.fl_add_input(xfl.FL_NORMAL_INPUT, 70, 300, 320, 30, "Name") xfl.fl_add_input(xfl.FL_NORMAL_INPUT, 70, 260, 320, 30, "Address") xfl.fl_add_input(xfl.FL_NORMAL_INPUT, 70, 220, 320, 30, "City") xfl.fl_add_input(xfl.FL_NORMAL_INPUT, 70, 180, 320, 30, "Country") psexobj = xfl.fl_add_select(xfl.FL_NORMAL_SELECT, 70, 130, \ 110, 30, "Sex") pmaleent = xfl.fl_add_select_items(psexobj, "Male%SM") xfl.fl_popup_entry_set_callback(pmaleent, self.cb) xfl.fl_popup_entry_set_state(pmaleent, xfl.FL_POPUP_NONE) # 0 xfl.fl_popup_entry_set_shortcut(pmaleent, "M") pfemaleent = xfl.fl_add_select_items(psexobj, "Female%SF") xfl.fl_popup_entry_set_callback(pfemaleent, self.cb) xfl.fl_popup_entry_set_state(pfemaleent, xfl.FL_POPUP_NONE) # 0 xfl.fl_popup_entry_set_shortcut(pfemaleent, "F") xfl.fl_set_object_shortcut(psexobj, "S", 1) pchildobj = xfl.fl_add_select(xfl.FL_MENU_SELECT, 280, 130, 110, 30, \ "Children") xfl.fl_add_select_items(pchildobj, "Zero|One|Two|Three|Four|Many") xfl.fl_set_object_shortcut(pchildobj, "C", 1) xfl.fl_popup_set_title(xfl.fl_get_select_popup(pchildobj), "Kids") plicenceobj = xfl.fl_add_select(xfl.FL_NORMAL_SELECT, 280, 80, \ 110, 30, "Licence") xfl.fl_add_select_items(plicenceobj, "Yes|No") xfl.fl_set_select_policy(plicenceobj, xfl.FL_POPUP_DRAG_SELECT) pmarriedobj = xfl.fl_add_select(xfl.FL_DROPLIST_SELECT, 70, 80, \ 110, 27, "Married") xfl.fl_add_select_items(pmarriedobj, "Yes|No") self.preadyobj = xfl.fl_add_button(xfl.FL_NORMAL_BUTTON, 150, 20, \ 140, 30, "Quit") xfl.fl_set_object_callback(self.preadyobj, self.exitcb, 0) xfl.fl_end_form()
def __init__(self, lsysargv, sysargv): self.pabox = [None] * 4 self.set = [0] * 4 xfl.fl_initialize(lsysargv, sysargv, "FormDemo", None, 0) pform = self.create_form() self.add_items_to_menu1() xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu1, 0), xfl.FL_POPUP_CHECKED) self.set[0] = 0 xfl.fl_set_object_color(self.pabox[0], xfl.FL_RED + self.set[0], \ xfl.FL_BLACK) self.add_items_to_menu2() xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu2, 1), xfl.FL_POPUP_CHECKED) self.set[1] = 1 xfl.fl_set_object_color(self.pabox[1], xfl.FL_RED + self.set[1], \ xfl.FL_BLACK) self.add_items_to_menu3() xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu3, 2), xfl.FL_POPUP_CHECKED) self.set[2] = 2 xfl.fl_set_object_color(self.pabox[2], xfl.FL_RED + self.set[2], \ xfl.FL_BLACK) self.add_items_to_menu4() xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu4, 3), xfl.FL_POPUP_CHECKED) self.set[3] = 3 xfl.fl_set_object_color(self.pabox[3], xfl.FL_RED + self.set[3], \ xfl.FL_BLACK) xfl.fl_show_form(pform, xfl.FL_PLACE_CENTER, xfl.FL_TRANSIENT, "Nmenu") xfl.fl_do_forms() xfl.fl_hide_form(pform) xfl.fl_finish()
def add_items_to_menu1(self): pitem1menu1 = xfl.fl_add_nmenu_items(self.pmenu1, "Red%SR") pitem1menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem1menu1, "Rr#R#r") xfl.fl_popup_entry_set_state(pitem1menu1, xfl.FL_POPUP_DISABLED) pitem2menu1 = xfl.fl_insert_nmenu_items(self.pmenu1, pitem1menu1, \ "Green%SG") pitem2menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem2menu1, "Gg#G#g") xfl.fl_popup_entry_set_state(pitem2menu1, xfl.FL_POPUP_DISABLED) pitem3menu1 = xfl.fl_insert_nmenu_items(self.pmenu1, pitem2menu1, \ "Yellow%SY") pitem3menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem3menu1, "Yy#Y#y") xfl.fl_popup_entry_set_state(pitem3menu1, xfl.FL_POPUP_DISABLED) pitem4menu1 = xfl.fl_insert_nmenu_items(self.pmenu1, pitem3menu1, \ "Blue%SB") pitem4menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem4menu1, "Bb#B#b") xfl.fl_popup_entry_set_state(pitem4menu1, xfl.FL_POPUP_DISABLED) pitem5menu1 = xfl.fl_insert_nmenu_items(self.pmenu1, pitem4menu1, \ "Purple%SP") pitem5menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem5menu1, "Pp#P#p") xfl.fl_popup_entry_set_state(pitem5menu1, xfl.FL_POPUP_NONE) pitem6menu1 = xfl.fl_insert_nmenu_items(self.pmenu1, pitem5menu1, \ "Cyan%SC") pitem6menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem6menu1, "Cc#C#c") xfl.fl_popup_entry_set_state(pitem6menu1, xfl.FL_POPUP_NONE) pitem7menu1 = xfl.fl_insert_nmenu_items(self.pmenu1, pitem6menu1, \ "White%SW") pitem7menu1.contents.type = xfl.FL_POPUP_RADIO xfl.fl_popup_entry_set_shortcut(pitem7menu1, "Ww#W#w") xfl.fl_popup_entry_set_state(pitem7menu1, xfl.FL_POPUP_NONE)
def menu_cb(self, pobj, m): # m is the menu index 0 - 3 pr = xfl.fl_get_nmenu_item(pobj) if self.set[m] == pr.contents.val: return if m == 0: # enable the old selected color for other menus xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu1, self.set[m]), xfl.FL_POPUP_NONE) # disable the currently selected color for other menus xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu1, pr.contents.val), xfl.FL_POPUP_DISABLED) elif m == 1: xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu2, self.set[m]), xfl.FL_POPUP_NONE) xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu2, pr.contents.val), xfl.FL_POPUP_DISABLED) elif m == 2: xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu3, self.set[m]), xfl.FL_POPUP_NONE) xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu3, pr.contents.val), xfl.FL_POPUP_DISABLED) elif m == 3: xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu4, self.set[m]), xfl.FL_POPUP_NONE) xfl.fl_popup_entry_set_state(xfl.fl_get_nmenu_item_by_value( \ self.pmenu4, pr.contents.val), xfl.FL_POPUP_DISABLED) self.set[m] = pr.contents.val xfl.fl_set_object_color(self.pabox[m], xfl.FL_RED + pr.contents.val, \ xfl.FL_BLACK)
def __init__(self, lsysargv, sysargv): self.pform = self.pexitob = self.pbtypeob = self.pmodeob = None c = xfl.FL_BLACK # char **p; # VN_struct *vn; # VN_struct *g = gmode, # *gs = g + sizeof gmode / sizeof *gmode; xfl.fl_initialize(lsysargv, sysargv, "FormDemo", None, 0) self.create_form() sorceress_width, sorceress_height, sorceress_bits = xfl.fls_import_xbmdata_from_file("srs.xbm") xfl.fl_set_bitmap_data(tobj[2], sorceress_width, sorceress_height, sorceress_bits) xfl.fl_add_chart_value(tobj[3], 15, "Item 1", c) c += 1 xfl.fl_add_chart_value(tobj[3], 5, "Item 2", c) c += 1 xfl.fl_add_chart_value(tobj[3], -10, "Item 3", c) c += 1 xfl.fl_add_chart_value(tobj[3], 25, "Item 4", c) c += 1 xfl.fl_add_nmenu_items(tobj[14], "Item 1|Item 2|Item 3|Item 4|item 5") xfl.fl_add_select_items(tobj[15], "Item 1") xfl.fl_add_select_items(tobj[15], "Item 2") xfl.fl_add_select_items(tobj[15], "Item 3") xfl.fl_add_select_items(tobj[15], "Item 4") xfl.fl_add_select_items(tobj[15], "Item 5") xfl.fl_set_timer(tobj[16], 1000.0) # for ( p = browserlines; *p; p++ ) for p in browserlines: xfl.fl_add_browser_line(tobj[17], p) # for ( vn = btypes; vn->val >= 0; vn++ ) for vn in btypes: xfl.fl_add_select_items(self.pbtypeob, vn["name"]) # for ( i = 1; g < gs; g++, i++ ) for g in range(0, len(gmode)): pitem = xfl.fl_add_select_items(self.pmodeob, gmode[g]["name"]) if not xfl.fl_mode_capable(gmode[g]["val"], 0): xfl.fl_popup_entry_set_state(pitem, xfl.FL_POPUP_DISABLED) # xfl.fl_vmode not working?? xfl.fl_set_select_item( self.pmodeob, xfl.fl_get_select_item_by_value(self.pmodeob, xfl.fl_get_vclass()) ) # 5 xfl.fl_get_vclass())) #xfl.fl_vmode.value)) xfl.fl_set_select_item(self.pbtypeob, xfl.fl_get_select_item_by_value(self.pbtypeob, 1)) self.boxtype_cb(self.pbtypeob, 0) xfl.fl_show_form(self.pform, xfl.FL_PLACE_MOUSE, border, "Box types") while True: if xfl.fl_is_same_object(xfl.fl_do_forms(), self.pexitob): break xfl.fl_finish()