def __init__(self, lsysargv, sysargv): xfl.fl_set_border_width(-3) xfl.fl_initialize(lsysargv, sysargv, "FormDemo", None, 0) self.ui = self.create_form_fontsform() xfl.fl_scale_form(self.ui.pfontsform, 1.1, 1.2) xfl.fl_set_object_dblbuffer(self.ui.ptextobj, 1) xfl.fl_set_object_bw(self.ui.ptextobj, 5) nfnt = xfl.fl_enumerate_fonts(self.addit, 1) xfl.fl_select_browser_line(self.ui.pfontobj, 1) xfl.fl_addto_browser(self.ui.psizeobj, "8 (tiny)") xfl.fl_addto_browser(self.ui.psizeobj, "10 (small)") xfl.fl_addto_browser(self.ui.psizeobj, "11 (scaled)") xfl.fl_addto_browser(self.ui.psizeobj, "12 (normal)") xfl.fl_addto_browser(self.ui.psizeobj, "13 (scaled)") xfl.fl_addto_browser(self.ui.psizeobj, "14 (medium)") xfl.fl_addto_browser(self.ui.psizeobj, "18 (large)") xfl.fl_addto_browser(self.ui.psizeobj, "24 (Huge)") xfl.fl_addto_browser(self.ui.psizeobj, "30 (scaled)") xfl.fl_select_browser_line(self.ui.psizeobj, 2) xfl.fl_set_object_lstyle(self.ui.ptextobj, xfl.FL_NORMAL_STYLE) xfl.fl_call_object_callback(self.ui.pfontobj) xfl.fl_call_object_callback(self.ui.psizeobj) xfl.fl_show_form(self.ui.pfontsform, xfl.FL_PLACE_CENTER, \ xfl.FL_TRANSIENT, "Fonts") xfl.fl_do_forms()
def load_browser(self, fname): #RGBdb *db = rgbdb, ndb = 0 contents = [0] * MAX_RGB #*dbs = db + MAX_RGB; lr = -1 lg = -1 lb = -1 if not os.path.exists(fname): xfl.fl_show_alert("Load", fname, "Can't open database file", 0) return 0 filep = open(fname, 'r') xfl.fl_freeze_form(self.pcl) # read the items #contents = filep.readlines() #filep.close() self.set_entry(0) #print("lencont", len(contents)) #while ( db < dbs && read_entry( fp, &r, &g, &b, name ) ) #for ndb in range(0, len(contents)): #while ndb < len(contents): while True: if ndb == 752: #MAX_RGB: break #print "contents[ndb]", contents[ndb] #print "ndb", ndb contents[ndb] = filep.readline() print(contents[ndb]) r, g, b, name = self.read_entry(contents[ndb]) #print "#"+str(r)+"#"+str(g)+"#"+str(b)+"#"+name self.rgbdb[ndb]['r'] = r self.rgbdb[ndb]['g'] = g self.rgbdb[ndb]['b'] = b #print self.rgbdb[ndb]['r'], self.rgbdb[ndb]['g'], self.rgbdb[ndb]['b'] # unique the entries on the fly if lr != r or lg != g or lb != b: lr = r lg = g lb = b buf = "(%3d %3d %3d) %s" % (r, g, b, name) #sprintf( buf, "(%3d %3d %3d) %s", r, g, b, name) xfl.fl_addto_browser(self.pcolbr, buf) ndb += 1 # db++; filep.close() #if ndb < MAX_RGB: #db < dbs # self.rgbdb[ndb]['r'] = 1000 #db->r = 1000; /* sentinel #else: # ndb -= 1 #db--; # self.rgbdb[ndb]['r'] = 1000 #db->r = 1000; xfl.fl_set_browser_topline(self.pcolbr, 1) xfl.fl_select_browser_line(self.pcolbr, 1) self.set_entry(0) xfl.fl_unfreeze_form(self.pcl) #print self.rgbdb[5], self.rgbdb[4], self.rgbdb[10], self.rgbdb[100] return 1
def search_rgb(self, pobj, q): top = xfl.fl_get_browser_topline(self.pcolbr) r = int(xfl.fl_get_slider_value(self.prs)) g = int(xfl.fl_get_slider_value(self.pgs)) b = int(xfl.fl_get_slider_value(self.pbs)) xfl.fl_freeze_form(self.pcl) xfl.fl_mapcolor(xfl.FL_FREE_COL4, r, g, b) #xfl.fl_redraw_object(self.prescol) i = self.search_entry(r, g, b) # change topline only if necessary if i < top or i > (top + 15): xfl.fl_set_browser_topline(self.pcolbr, i - 8) xfl.fl_select_browser_line(self.pcolbr, i + 1) xfl.fl_unfreeze_form(self.pcl)
def test_fl_select_browser_line(self): """fl_select_browser_line(ptr_flobject, linenum)""" xfl.fl_select_browser_line(0.1, 1, )