def __init__(self, lsysargv, sysargv):
     xfl.fl_set_border_width(-2)
     xfl.fl_initialize(lsysargv, sysargv, "FormDemo", None, 0)
     pform = xfl.fl_bgn_form(xfl.FL_UP_BOX, 350, 250)
     pobj = xfl.fl_add_pixmap(xfl.FL_NORMAL_PIXMAP, 60, 70, 100, 100, "")
     xfl.fl_set_object_boxtype(pobj, xfl.FL_DOWN_BOX)
     xfl.fl_set_pixmap_file(pobj, "porsche.xpm")
     ppos = xfl.fl_add_positioner(xfl.FL_OVERLAY_POSITIONER, 60, 70, \
             100, 100, "")
     xfl.fl_set_positioner_xbounds(ppos, 0, 1)
     xfl.fl_set_positioner_ybounds(ppos, 0, 1)
     xfl.fl_set_object_callback(ppos, self.positioner_cb, 0)
     self.pxval = xfl.fl_add_box(xfl.FL_DOWN_BOX, 230, 40, 100, 30, "")
     xfl.fl_set_object_color(self.pxval, xfl.FL_COL1, xfl.FL_COL1)
     self.pyval = xfl.fl_add_box(xfl.FL_DOWN_BOX, 230, 90, 100, 30, "")
     xfl.fl_set_object_color(self.pyval, xfl.FL_COL1, xfl.FL_COL1)
     xfl.fl_add_button(xfl.FL_NORMAL_BUTTON, 230, 200, 100, 30, \
             "Exit")
     xfl.fl_end_form()
     xfl.fl_show_form(pform, xfl.FL_PLACE_CENTER, xfl.FL_TRANSIENT, \
             "XOR Positioner")
     self.positioner_cb(ppos, 0)
     xfl.fl_do_forms()
     xfl.fl_hide_form(pform)
     xfl.fl_finish()
     sys.exit(0)
    def create_forms(self):

        self.sample = xfl.fl_bgn_form(xfl.FL_NO_BOX, 320, 250)

        self.ptrflobj0 = xfl.fl_add_box(xfl.FL_UP_BOX, 0, 0, 320, 250, '')
        xfl.fl_set_object_color(self.ptrflobj0, xfl.FL_COL1, xfl.FL_COL1)
        xfl.fl_set_object_lalign(self.ptrflobj0, xfl.FL_ALIGN_CENTER)
        xfl.fl_set_object_lstyle(self.ptrflobj0, xfl.FL_NORMAL_STYLE)
        xfl.fl_set_object_lsize(self.ptrflobj0, xfl.FL_DEFAULT_SIZE)
        xfl.fl_set_object_lcol(self.ptrflobj0, xfl.FL_BLACK)
        xfl.fl_set_object_resize(self.ptrflobj0, xfl.FL_RESIZE_ALL)
        xfl.fl_set_object_gravity(self.ptrflobj0, xfl.FL_NoGravity, xfl.FL_NoGravity)
        self.ppixmap = xfl.fl_add_pixmap(xfl.FL_NORMAL_PIXMAP, 40, 40, 240, 90, 'one\ndemo\npixmap')
        xfl.fl_set_object_boxtype(self.ppixmap, xfl.FL_FRAME_BOX)
        xfl.fl_set_pixmap_align(self.ppixmap, xfl.FL_ALIGN_RIGHT|xfl.FL_ALIGN_INSIDE, 3, 3)
        xfl.fl_set_pixmap_file(self.ppixmap, 'crab45.xpm')
        xfl.fl_set_object_color(self.ppixmap, xfl.FL_COL1, xfl.FL_COL1)
        xfl.fl_set_object_lalign(self.ppixmap, xfl.FL_ALIGN_BOTTOM)
        xfl.fl_set_object_lstyle(self.ppixmap, xfl.FL_NORMAL_STYLE)
        xfl.fl_set_object_lsize(self.ppixmap, xfl.FL_DEFAULT_SIZE)
        xfl.fl_set_object_lcol(self.ppixmap, xfl.FL_BLACK)
        xfl.fl_set_object_resize(self.ppixmap, xfl.FL_RESIZE_ALL)
        xfl.fl_set_object_gravity(self.ppixmap, xfl.FL_NoGravity, xfl.FL_NoGravity)
        xfl.fl_set_object_shortcut(self.ppixmap, 'm', 1)
        xfl.fl_set_object_callback(self.ppixmap, self.pmapcb, 0)

        xfl.fl_end_form()
 def load_file(self, fname, pvdata):
     #ldata = xfl.fls_convert_ptrvoid_to_ptrlongc(pvdata).contents.value
     #print("ldata", ldata)
     if not fname or not os.path.exists(fname):
         print("Missing file name\n")
         return 0
     fnameonly = os.path.basename(fname)
     if os.path.isdir(fname):
         xfl.fl_set_directory(fname)
     else:   # a file
         p, ext = os.path.splitext(fnameonly)
         if not ext:
             print("Missing file extension\n")
             return 0
         else:
             if fname.endswith(b".xpm"):
                 xfl.fl_hide_object(self.fd_ttt.bm)
                 xfl.fl_free_pixmap_pixmap(self.fd_ttt.pm)
                 xfl.fl_set_pixmap_file(self.fd_ttt.pm, fname)
                 xfl.fl_show_object(self.fd_ttt.pm)
             elif fname.endswith(b".xbm"):
                 xfl.fl_hide_object(self.fd_ttt.pm)
                 xfl.fl_set_bitmap_file(self.fd_ttt.bm, fname)
                 xfl.fl_show_object(self.fd_ttt.bm)
             else:
                 message = "Invalid file extension, neither" \
                         ".xpm nor .xbm file: %s\n" % ext
                 print(message)
                 return 0
     return 1
 def create_form_form0(self):
     fdui = FD_form0()
     fdui.form0 = xfl.fl_bgn_form(xfl.FL_NO_BOX, 351, 180)
     pobj = xfl.fl_add_box(xfl.FL_UP_BOX, 0, 0, 351, 180, "")
     if not TEST_PIXMAP_ALIGN:
         fdui.box = xfl.fl_add_box(xfl.FL_UP_BOX, 190, 40, 90, 55,
                 "This is\na label")
     else:
         fdui.box = xfl.fl_add_pixmap(xfl.FL_NORMAL_PIXMAP, 190, 35, \
                 90, 60, "")
         xfl.fl_set_pixmap_file(fdui.box, "crab.xpm")
         xfl.fl_set_object_boxtype(fdui.box, xfl.FL_UP_BOX)
     fdui.inside = xfl.fl_add_lightbutton(xfl.FL_PUSH_BUTTON, 20, 125, \
             90, 30, "Inside")
     xfl.fl_set_button(fdui.inside, 1)
     xfl.fl_set_object_callback(fdui.inside, self.inside_cb, 0)
     xfl.fl_bgn_group()
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 20, 20, 30, 30, "@#7->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, xfl.FL_ALIGN_LEFT_TOP)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 50, 20, 30, 30, "@#8->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, xfl.FL_ALIGN_TOP)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 80, 20, 30, 30, "@#9->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, \
             xfl.FL_ALIGN_RIGHT_TOP)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 80, 50, 30, 30, "@#->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, xfl.FL_ALIGN_RIGHT)
     fdui.center_ = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 50, 50, 30, 30,
             "@circle")
     xfl.fl_set_object_lcol(fdui.center_, xfl.FL_RED)
     xfl.fl_set_object_callback(fdui.center_, self.align_cb, \
             xfl.FL_ALIGN_CENTER)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 20, 50, 30, 30, "@#<-")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, xfl.FL_ALIGN_LEFT)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 20, 80, 30, 30, "@#1->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, \
             xfl.FL_ALIGN_LEFT_BOTTOM)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 50, 80, 30, 30, "@#2->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, xfl.FL_ALIGN_BOTTOM)
     pobj = xfl.fl_add_button(xfl.FL_RADIO_BUTTON, 80, 80, 30, 30, "@#3->")
     xfl.fl_set_object_lcol(pobj, xfl.FL_BLUE)
     xfl.fl_set_object_callback(pobj, self.align_cb, \
             xfl.FL_ALIGN_RIGHT_BOTTOM)
     xfl.fl_end_group()
     pobj = xfl.fl_add_button(xfl.FL_NORMAL_BUTTON, 200, 135, 70, 30, \
             "Done")
     xfl.fl_end_form()
     return fdui
 def create_form_staticform(self):
     fdui = FD_staticform()
     fdui.staticform = xfl.fl_bgn_form(xfl.FL_NO_BOX, 431, 211)
     pobj = xfl.fl_add_box(xfl.FL_FLAT_BOX, 0, 0, 431, 211, "")
     xfl.fl_set_object_color(pobj, xfl.FL_INDIANRED, xfl.FL_INDIANRED)
     xfl.fl_set_object_lcolor(pobj, xfl.FL_INDIANRED)
     pobj1 = xfl.fl_add_box(xfl.FL_UP_BOX, 40, 40, 60, 45, "A Box")
     pobj2 = xfl.fl_add_labelframe(xfl.FL_ENGRAVED_FRAME, 130, 30, 120, 55, "LabelFrame")
     xfl.fl_set_object_color(pobj2, xfl.FL_BLACK, xfl.FL_INDIANRED)
     xfl.fl_set_object_lstyle(pobj2, xfl.FL_BOLD_STYLE)
     fdui.chart = xfl.fl_add_chart(xfl.FL_PIE_CHART, 270, 20, 130, 105, "")
     xfl.fl_set_object_color(fdui.chart, xfl.FL_INDIANRED, xfl.FL_COL1)
     pobj3 = xfl.fl_add_clock(xfl.FL_ANALOG_CLOCK, 30, 100, 85, 85, "")
     xfl.fl_set_object_color(pobj3, xfl.FL_COL1, xfl.FL_RIGHT_BCOL)
     pobj4 = xfl.fl_add_bitmap(xfl.FL_NORMAL_BITMAP, 150, 140, 30, 25, "")
     xfl.fl_set_bitmap_file(pobj4, "srs.xbm")
     pobj5 = xfl.fl_add_pixmap(xfl.FL_NORMAL_PIXMAP, 210, 120, 60, 60, "")
     xfl.fl_set_pixmap_file(pobj5, "porsche.xpm")
     pobj6 = xfl.fl_add_text(xfl.FL_NORMAL_TEXT, 310, 150, 70, 25, "Text")
     xfl.fl_set_object_boxtype(pobj6, xfl.FL_BORDER_BOX)
     xfl.fl_end_form()
     return fdui
 def test_fl_set_pixmap_file__fail3(self):
     # failing: 2nd arg missing
     self.statusmsg = "%s: should fail." % sys._getframe().f_code.co_name
     xfl.fl_set_pixmap_file(self.pxmobj0)
 def test_fl_set_pixmap_file__fail2(self):
     # failing: 1st and 2nd args of unfit type
     self.statusmsg = "%s: should fail." % sys._getframe().f_code.co_name
     xfl.fl_set_pixmap_file(102, self.pxmobj0)