예제 #1
0
 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()
예제 #2
0
 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()
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
    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()