亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fl_set_fonts.cxx

?? flnx 0.17 是做嵌入linux gui 必備工具箱
?? CXX
字號:
//// "$Id: fl_set_fonts.cxx,v 1.1.1.1 2003/08/07 21:18:41 jasonk Exp $"//// More font utilities for the Fast Light Tool Kit (FLTK).//// Copyright 1998-1999 by Bill Spitzak and others.//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Library General Public// License as published by the Free Software Foundation; either// version 2 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU// Library General Public License for more details.//// You should have received a copy of the GNU Library General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307// USA.//// Please report all bugs and problems to "fltk-bugs@easysw.com".//// This function fills in the fltk font table with all the fonts that// are found on the X server.  It tries to place the fonts into families// and to sort them so the first 4 in a family are normal, bold, italic,// and bold italic.#ifdef WIN32#include "fl_set_fonts_win32.cxx"#else// Standard X fonts are matched by a pattern that is always of// this form, and this pattern is put in the table:// "-*-family-weight-slant-width1-style-*-registry-encoding"// Non-standard font names (those not starting with '-') are matched// by a pattern of the form "prefix*suffix", where the '*' is where// fltk thinks the point size is, or by the actual font name if no// point size is found.// Fltk knows how to pull an "attribute" out of a font name, such as// bold or italic, by matching known x font field values.  All words// that don't match a known attribute are combined into the "name"// of the font.  Names are compared before attributes for sorting, this// makes the bold and plain version of a font come out next to each// other despite the poor X font naming scheme.// By default fl_set_fonts() only does iso8859-1 encoded fonts.  You can// do all normal X fonts by passing "-*" or every possible font with "*".// Fl::set_font will take strings other than the ones this stores// and can identify any font on X that way.  You may want to write your// own system of font management and not use this code.#include <FL/Fl.H>#include <FL/x.H>#include "Fl_Font.H"#include <ctype.h>#include <string.h>#include <stdlib.h>// turn word N of a X font name into either some attribute bits// (right now 0, FL_BOLD, or FL_ITALIC), or into -1 indicating that// the word should be put into the name:static int attribute(int n, const char *p) {  // don't put blank things into name:  if (!*p || *p=='-' || *p=='*') return 0;  if (n == 3) { // weight    if (!strncmp(p,"normal",6) ||	!strncmp(p,"light",5) ||	!strncmp(p,"medium",6) ||	!strncmp(p,"book",4)) return 0;    if (!strncmp(p,"bold",4) || !strncmp(p,"demi",4)) return FL_BOLD;  } else if (n == 4) { // slant    if (*p == 'r') return 0;    if (*p == 'i' || *p == 'o') return FL_ITALIC;  } else if (n == 5) { // sWidth    if (!strncmp(p,"normal",6)) return 0;  }  return -1;}// return non-zero if the registry-encoding should be used:extern const char* fl_encoding;static int use_registry(const char *p) {  return *p && *p!='*' && strcmp(p,fl_encoding);}// turn a stored (with *'s) X font name into a pretty name:const char* Fl::get_font_name(Fl_Font fnum, int* ap) {  const char* p = fl_fonts[fnum].name;  if (!p) return "";  static char *buffer; if (!buffer) buffer = new char[128];  char *o = buffer;  if (*p != '-') { // non-standard font, just replace * with spaces:    if (ap) {      int type = 0;      if (strstr(p,"bold")) type = FL_BOLD;      if (strstr(p,"ital")) type |= FL_ITALIC;      *ap = type;    }    for (;*p; p++) {      if (*p == '*' || *p == ' ' || *p == '-') {	do p++; while (*p == '*' || *p == ' ' || *p == '-');	if (!*p) break;	*o++ = ' ';      }      *o++ = *p;    }    *o = 0;    return buffer;  }  // get the family:  const char *x = fl_font_word(p,2); if (*x) x++; if (*x=='*') x++;  if (!*x) return p;  const char *e = fl_font_word(x,1);  strncpy(o,x,e-x); o += e-x;  // collect all the attribute words:  int type = 0;  for (int n = 3; n <= 6; n++) {    // get the next word:    if (*e) e++; x = e; e = fl_font_word(x,1);    int t = attribute(n,x);    if (t < 0) {*o++ = ' '; strncpy(o,x,e-x); o += e-x;}    else type |= t;  }  // skip over the '*' for the size and get the registry-encoding:  x = fl_font_word(e,2);  if (*x) {x++; *o++ = '('; while (*x) *o++ = *x++; *o++ = ')';}  *o = 0;  if (type & FL_BOLD) {strcpy(o, " bold"); o += 5;}  if (type & FL_ITALIC) {strcpy(o, " italic"); o += 7;}  if (ap) *ap = type;  return buffer;}// sort raw (non-'*') X font names into perfect order:static int ultrasort(const void *aa, const void *bb) {  const char *a = *(char **)aa;  const char *b = *(char **)bb;  // sort all non x-fonts at the end:  if (*a != '-') {    if (*b == '-') return 1;    // 2 non-x fonts are matched by "numeric sort"    int ret = 0;    for (;;) {      if (isdigit(*a) && isdigit(*b)) {	int na = strtol(a, (char **)&a, 10);	int nb = strtol(b, (char **)&b, 10);	if (!ret) ret = na-nb;      } else if (*a != *b) {	return (*a-*b);      } else if (!*a) {	return ret;      } else {	a++; b++;      }    }  } else {    if (*b != '-') return -1;  }  // skip the foundry (assumme equal):  for (a++; *a && *a++!='-';);  for (b++; *b && *b++!='-';);  // compare the family and all the attribute words:  int atype = 0;  int btype = 0;  for (int n = 2; n <= 6; n++) {    int at = attribute(n,a);    int bt = attribute(n,b);    if (at < 0) {      if (bt >= 0) return 1;      for (;;) {if (*a!=*b) return *a-*b; b++; if (!*a || *a++=='-') break;}    } else {      if (bt < 0) return -1;      a = fl_font_word(a,1); if (*a) a++;      b = fl_font_word(b,1); if (*b) b++;      atype |= at; btype |= bt;    }  }  // remember the pixel size:  int asize = atoi(a);  int bsize = atoi(b);  // compare the registry/encoding:  a = fl_font_word(a,6); if (*a) a++;  b = fl_font_word(b,6); if (*b) b++;  if (use_registry(a)) {    if (!use_registry(b)) return 1;    int r = strcmp(a,b); if (r) return r;  } else {    if (use_registry(b)) return -1;  }  if (atype != btype) return atype-btype;  if (asize != bsize) return asize-bsize;  // something wrong, just do a string compare...  return strcmp(*(char**)aa, *(char**)bb);}// converts a X font name to a standard starname, returns point size:static int to_canonical(char *to, const char *from) {  char* c = fl_find_fontsize((char*)from);  if (!c) return -1; // no point size found...  char* endptr;  int size = strtol(c,&endptr,10);  if (from[0] == '-') {    // replace the "foundry" with -*-:    *to++ = '-'; *to++ = '*';    for (from++; *from && *from != '-'; from++);    // skip to the registry-encoding:    endptr = (char*)fl_font_word(endptr,6);    if (*endptr && !use_registry(endptr+1)) endptr = "";  }  int n = c-from;  strncpy(to,from,n);  to[n++] = '*';  strcpy(to+n,endptr);  return size;}static int fl_free_font = FL_FREE_FONT;Fl_Font Fl::set_fonts(const char* xstarname) {  fl_open_display();  int xlistsize;  char buf[20];  if (!xstarname) {    strcpy(buf,"-*-"); strcpy(buf+3,fl_encoding);    xstarname = buf;  }#ifndef NANO_X  char **xlist = XListFonts(fl_display, xstarname, 10000, &xlistsize);#else  char **xlist = 0;#endif  if (!xlist) return (Fl_Font)fl_free_font;  qsort(xlist, xlistsize, sizeof(*xlist), ultrasort);  int used_xlist = 0;  for (int i=0; i<xlistsize;) {    int first_xlist = i;    const char *p = xlist[i++];    char canon[1024];    int size = to_canonical(canon, p);    if (size >= 0) {      for (;;) { // find all matching fonts:	if (i >= xlistsize) break;	const char *q = xlist[i];	char this_canon[1024];	if (to_canonical(this_canon, q) < 0) break;	if (strcmp(canon, this_canon)) break;	i++;      }      /*if (*p=='-' || i > first_xlist+1)*/ p = canon;    }    int j;    for (j = 0;; j++) {      if (j < FL_FREE_FONT) {	// see if it is one of our built-in fonts:	// if so, set the list of x fonts, since we have it anyway	if (fl_fonts[j].name && !strcmp(fl_fonts[j].name, p)) break;      } else {	j = fl_free_font++;	if (p == canon) p = strdup(p); else used_xlist = 1;	Fl::set_font((Fl_Font)j, p);	break;      }    }    if (!fl_fonts[j].xlist) {      fl_fonts[j].xlist = xlist+first_xlist;      fl_fonts[j].n = -(i-first_xlist);      used_xlist = 1;    }  }#ifndef NANO_X  if (!used_xlist) XFreeFontNames(xlist);#endif  return (Fl_Font)fl_free_font;}int Fl::get_font_sizes(Fl_Font fnum, int*& sizep) {  Fl_Fontdesc *s = fl_fonts+fnum;  if (!s->name) s = fl_fonts; // empty slot in table, use entry 0  if (!s->xlist) {    fl_open_display();#ifndef NANO_X    s->xlist = XListFonts(fl_display, s->name, 100, &(s->n));#endif    if (!s->xlist) return 0;  }  int listsize = s->n; if (listsize<0) listsize = -listsize;  static int sizes[128];  int numsizes = 0;  for (int i = 0; i < listsize; i++) {    char *q = s->xlist[i];    char *d = fl_find_fontsize(q);    if (!d) continue;    int s = strtol(d,0,10);    if (!numsizes || sizes[numsizes-1] < s) {      sizes[numsizes++] = s;    } else {      // insert-sort the new size into list:      int n;      for (n = numsizes-1; n > 0; n--) if (sizes[n-1] < s) break;      if (sizes[n] != s) {	for (int m = numsizes; m > n; m--) sizes[m] = sizes[m-1];	sizes[n] = s;	numsizes++;      }    }  }  sizep = sizes;  return numsizes;}#endif//// End of "$Id: fl_set_fonts.cxx,v 1.1.1.1 2003/08/07 21:18:41 jasonk Exp $".//

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日夜夜精品视频免费| 欧美日韩国产片| 欧美天天综合网| 2021中文字幕一区亚洲| 亚洲综合图片区| 国产成人精品亚洲午夜麻豆| 精品视频免费看| 亚洲欧洲精品一区二区三区不卡| 日韩精品91亚洲二区在线观看| 成人黄色777网| 久久综合久久久久88| 亚洲成av人片一区二区| 99久久免费精品高清特色大片| 精品国产制服丝袜高跟| 视频一区视频二区中文字幕| 日本久久一区二区| 国产欧美久久久精品影院| 美女在线观看视频一区二区| 在线观看免费亚洲| 亚洲免费观看高清| 成人av综合在线| 欧美激情综合五月色丁香| 国产一区二区在线电影| 日韩一区二区三区av| 婷婷夜色潮精品综合在线| 日本高清不卡一区| 日韩美女啊v在线免费观看| 成人爽a毛片一区二区免费| 国产婷婷精品av在线| 狠狠色丁香久久婷婷综合_中| 欧美一区二区三区系列电影| 亚洲h精品动漫在线观看| 欧美中文字幕不卡| 亚洲国产精品久久久久秋霞影院| 成人av网址在线| 国产精品短视频| 91在线免费播放| 亚洲欧洲精品成人久久奇米网| 丁香婷婷综合激情五月色| 久久免费国产精品| 成人在线综合网站| 最新国产精品久久精品| 色综合天天天天做夜夜夜夜做| 国产精品久久久久久久久快鸭 | 不卡视频一二三| 国产精品三级视频| 不卡在线视频中文字幕| 一区二区在线观看av| 欧美色电影在线| 日韩不卡手机在线v区| 日韩精品自拍偷拍| 国产精品白丝jk白祙喷水网站| 国产精品污www在线观看| 色婷婷精品久久二区二区蜜臀av| 亚欧色一区w666天堂| 日韩女优制服丝袜电影| 国产成人a级片| 亚洲精品日韩专区silk| 91精品国产综合久久久久久漫画| 久久精品72免费观看| 国产精品色在线观看| 91精品91久久久中77777| 蜜臀av一区二区| 国产精品女同互慰在线看| 欧美日韩精品免费| 国产精品一区二区三区四区| 亚洲精品videosex极品| 日韩午夜精品视频| 成人av免费网站| 秋霞午夜鲁丝一区二区老狼| 中文字幕制服丝袜成人av| 欧美日韩电影一区| 成人av资源在线观看| 日韩不卡一区二区三区| 国产精品国产馆在线真实露脸 | 国产精品日日摸夜夜摸av| 欧美日韩dvd在线观看| 国产激情偷乱视频一区二区三区 | 国产在线播放一区| 亚洲精品国产a久久久久久| 欧美成va人片在线观看| 色老汉一区二区三区| 国产福利精品导航| 日韩高清不卡在线| 亚洲精品中文在线观看| 久久精品人人做| 欧美精选在线播放| 91传媒视频在线播放| 国产成人啪免费观看软件| 日韩黄色一级片| 一区二区三区国产精华| 久久九九影视网| 欧美videos中文字幕| 欧美午夜精品一区二区蜜桃| 成人av午夜影院| 国产成人在线观看| 国产精品综合久久| 激情亚洲综合在线| 蜜臀va亚洲va欧美va天堂| 婷婷开心久久网| 一区二区高清视频在线观看| 国产精品灌醉下药二区| 国产嫩草影院久久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲小说春色综合另类电影| 国产精品久久一卡二卡| 久久久精品黄色| www日韩大片| 精品卡一卡二卡三卡四在线| 欧美疯狂做受xxxx富婆| 91国产丝袜在线播放| 色综合久久88色综合天天6| 99视频一区二区| 9久草视频在线视频精品| 色综合天天综合色综合av| 色综合久久综合| 欧美优质美女网站| 欧美日韩一区二区在线观看视频| 欧美在线制服丝袜| 欧美日韩免费一区二区三区| 欧美午夜精品一区二区蜜桃 | 日韩精品一区二区在线| 欧美一区二区三区小说| 日韩欧美卡一卡二| 国产欧美日产一区| 1区2区3区欧美| 国产精华液一区二区三区| 国产成人精品影视| 99国产精品国产精品久久| 久久电影网电视剧免费观看| 一区二区三区日韩在线观看| 亚洲国产精品久久不卡毛片| 午夜精品在线看| 一本色道**综合亚洲精品蜜桃冫| 亚洲亚洲精品在线观看| 国产成人精品免费| 欧美一区二区三区免费视频| 国产精品视频看| 国内精品国产三级国产a久久| 日本丶国产丶欧美色综合| 久久久久久久电影| 久久99九九99精品| 51精品秘密在线观看| 亚洲午夜久久久| 91免费看视频| 亚洲国产精品99久久久久久久久 | 香蕉av福利精品导航| 色综合久久88色综合天天免费| 国产清纯白嫩初高生在线观看91 | 国产午夜精品美女毛片视频| 青青草91视频| 欧美日韩一卡二卡三卡| 亚洲欧美日韩成人高清在线一区| 国产精品123| 久久久久99精品国产片| 国产麻豆日韩欧美久久| 精品国产乱码久久久久久久久 | 一区二区三区四区不卡视频| 97久久人人超碰| 国产精品超碰97尤物18| 成人黄色小视频| 国产精品久久久久久久浪潮网站 | 亚洲色图欧美偷拍| 成人福利视频在线看| 日本一区二区三区国色天香 | 欧美日韩高清不卡| 婷婷综合久久一区二区三区| 欧美三片在线视频观看| 午夜精品123| 在线不卡a资源高清| 日韩精品电影在线| 日韩一区二区三区电影 | 美女一区二区三区在线观看| 日韩久久久精品| 国产成人在线影院 | 欧美日韩一本到| 日本va欧美va瓶| 欧美精品一区二区三区在线| 国产高清精品网站| 中文字幕人成不卡一区| 日本高清不卡一区| 日韩国产成人精品| 久久综合色婷婷| 99精品国产99久久久久久白柏| 亚洲欧美激情插| 欧美精品在线观看一区二区| 美女视频黄 久久| 国产日产欧美一区二区三区| 91欧美一区二区| 午夜精品成人在线| 久久精品水蜜桃av综合天堂| 99久久er热在这里只有精品15| 亚洲国产成人av网| 日韩精品一区二区三区在线| 福利91精品一区二区三区| 亚洲男人的天堂在线aⅴ视频| 777久久久精品| 粉嫩av一区二区三区粉嫩| 亚洲永久精品国产| 2021久久国产精品不只是精品|