本文整理汇总了C++中cairo_set_font_face函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_set_font_face函数的具体用法?C++ cairo_set_font_face怎么用?C++ cairo_set_font_face使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_set_font_face函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: render_keyvalue
int render_keyvalue(cairo_t *cairo, int x, int y, char *k, char *v , int d) {
uint32_t render_x;
cairo_text_extents_t k_extents;
cairo_text_extents_t v_extents;
//we must set the fonts to measure extents
cairo_set_font_face(cairo, conf->keyfont);
cairo_set_font_size(cairo, conf->keyfontsize);
cairo_text_extents(cairo, k, &k_extents);
cairo_set_font_face(cairo, conf->valfont);
cairo_set_font_size(cairo, conf->valfontsize);
cairo_text_extents(cairo, v, &v_extents);
//render key
set_cairo_source_colour(cairo, conf->keycol);
cairo_set_font_face(cairo, conf->keyfont);
cairo_set_font_size(cairo, conf->keyfontsize);
render_x = x;
if(d == RIGHT)
render_x = x - (k_extents.width + v_extents.width + conf->kvpadding);
cairo_move_to(cairo, render_x, y);
cairo_show_text(cairo, k);
//render value
set_cairo_source_colour(cairo, conf->valcol);
cairo_set_font_face(cairo, conf->valfont);
cairo_set_font_size(cairo, conf->valfontsize);
render_x = x + k_extents.width + conf->kvpadding;
if(d == RIGHT)
render_x = x - v_extents.width;
cairo_move_to(cairo, render_x, y);
cairo_show_text(cairo, v);
return k_extents.width + conf->kvpadding + v_extents.width;
}
开发者ID:Mnib,项目名称:bLifebar,代码行数:35,代码来源:render.c
示例2: cairo_set_font_face
void CairoRenderer::SetFontFace(InputStream *pStream)
{
FT_Face face;
static cairo_user_data_key_t key;
if (m_cairo_face)
{
cairo_set_font_face(m_pCairo, NULL);
cairo_font_face_destroy(m_cairo_face);
m_cairo_face = NULL;
}
if (pStream)
{
face = FreeType::OpenFace(pStream); // face will be destroyed by FT_Done_Face
if (face)
{
m_cairo_face = cairo_ft_font_face_create_for_ft_face(face, 0);
cairo_font_face_set_user_data(m_cairo_face, &key, face, (cairo_destroy_func_t)FT_Done_Face);
}
}
else
m_cairo_face = cairo_toy_font_face_create("unifont", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
if (m_cairo_face)
cairo_set_font_face(m_pCairo, m_cairo_face);
}
开发者ID:vincent0629,项目名称:PDFParser,代码行数:27,代码来源:CairoRenderer.cpp
示例3: pycairo_set_font_face
static PyObject *
pycairo_set_font_face (PycairoContext *o, PyObject *obj) {
if (PyObject_TypeCheck(obj, &PycairoFontFace_Type))
cairo_set_font_face (o->ctx, ((PycairoFontFace *)obj)->font_face);
else if (obj == Py_None)
cairo_set_font_face (o->ctx, NULL);
else {
PyErr_SetString(PyExc_TypeError,
"Context.set_font_face() argument must be "
"cairo.FontFace or None");
return NULL;
}
RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx);
Py_RETURN_NONE;
}
开发者ID:Distrotech,项目名称:pycairo,代码行数:15,代码来源:context.c
示例4: render_workspace
int render_workspace(cairo_t *cairo, int x, int y,
struct i3_workspace *ws, int d) {
//set colour based on visibility
struct colour *c = conf->inviswscol;
if(strcmp(ws->visible, "true") == 0) c = conf->viswscol;
set_cairo_source_colour(cairo, c);
//set font
cairo_set_font_face(cairo, conf->wsfont);
cairo_set_font_size(cairo, conf->wsfontsize);
cairo_text_extents_t extents;
cairo_text_extents(cairo, ws->name, &extents);
int render_x = x;
if(d == RIGHT) render_x = x - extents.width;
//draw the text
cairo_move_to(cairo, render_x, y);
cairo_show_text(cairo, ws->name);
//update the padding
return extents.width + 2;
}
开发者ID:Mnib,项目名称:bLifebar,代码行数:25,代码来源:render.c
示例5: cr_set_font_face
static VALUE
cr_set_font_face (VALUE self, VALUE face)
{
cairo_set_font_face (_SELF, NIL_P (face) ? NULL : RVAL2CRFONTFACE (face));
cr_check_status (_SELF);
return self;
}
开发者ID:exvayn,项目名称:cairo-1.8.1-i386,代码行数:7,代码来源:rb_cairo_context.c
示例6: clearSurface
void label_t::paint() {
clearSurface();
auto cr = graphics.getContext();
auto bounds = getBounds();
cairo_set_source_rgb(cr, 0, 0, 0);
int textLeft;
int textBot = (bounds.height / 2 - lastExtents.height / 2) + lastExtents.height;
if (alignment == g_text_alignment::CENTER) {
textLeft = bounds.width / 2 - lastExtents.width / 2;
} else if (alignment == g_text_alignment::RIGHT) {
textLeft = bounds.width - lastExtents.width;
} else {
textLeft = 0;
}
cairo_move_to(cr, textLeft, textBot);
cairo_set_font_face(cr, font->getFace());
cairo_set_font_size(cr, fontSize);
cairo_show_text(cr, text.c_str());
}
开发者ID:maxdev1,项目名称:ghost,代码行数:25,代码来源:label.cpp
示例7: draw
static void
draw (GtkWidget *drawing_area,
cairo_t *cr,
FT_Face face)
{
cairo_font_extents_t font_extents;
gint *sizes = NULL, n_sizes, alpha_size, pos_y, i;
const gchar *text;
cairo_font_face_t *font;
text = get_sample_string (face);
sizes = build_sizes_table (face, &n_sizes, &alpha_size);
font = cairo_ft_font_face_create_for_ft_face (face, 0);
cairo_set_font_face (cr, font);
cairo_font_extents (cr, &font_extents);
cairo_font_face_destroy (font);
/* draw text */
pos_y = MAX (font_extents.height, 32) + 4;
cairo_set_font_size (cr, alpha_size);
draw_string (cr, lowercase_text, &pos_y);
draw_string (cr, uppercase_text, &pos_y);
draw_string (cr, punctuation_text, &pos_y);
pos_y += 8;
for (i = 0; i < n_sizes; i++) {
cairo_set_font_size (cr, sizes[i]);
draw_string (cr, text, &pos_y);
}
g_free (sizes);
}
开发者ID:Exalm,项目名称:mate-control-center,代码行数:33,代码来源:font-view.c
示例8: toolwin_win_create
int toolwin_win_create(ToolWin *tw) {
tw->win = XCreateSimpleWindow(dpy, root, 20, 20, tw->w, tw->h, 0, 0, 0);
tw->buf = XCreatePixmap(dpy, root, tw->w, tw->h, DefaultDepth(dpy,scr));
cairo_surface_t *t = cairo_xlib_surface_create(dpy, tw->buf,
DefaultVisual(dpy,scr), tw->w, tw->h);
tw->ctx = cairo_create(t);
cairo_surface_destroy(t);
cairo_set_font_face(tw->ctx,conf.font);
cairo_set_font_size(tw->ctx,conf.font_size);
XSelectInput(dpy, tw->win, EVENT_MASK);
XSetTransientForHint(dpy, tw->win, win);
XSetWMProtocols(dpy, tw->win, &WM_DELETE_WINDOW, 1);
XSizeHints *hints = XAllocSizeHints();
hints->min_width = hints->max_width = tw->w;
hints->min_height = hints->max_height = tw->h;
hints->flags = PMinSize | PMaxSize;
XSetWMNormalHints(dpy, tw->win, hints);
XFree(hints);
XStoreName(dpy, tw->win, tw->name);
if (tw->backing) tw->backing(tw);
else toolwin_backing(tw);
XSetWindowBackgroundPixmap(dpy, tw->win, tw->buf);
XFlush(dpy);
return 0;
}
开发者ID:BehaviorEnterprises,项目名称:Fex,代码行数:25,代码来源:xlib_toolwin.c
示例9: ilG_gui_textlayout_getExtents
void ilG_gui_textlayout_getExtents(ilG_gui_textlayout *self, unsigned *rx, unsigned *ry, int *bx, int *by, int *ax, int *ay)
{
if (!self->have_size) {
self->have_size = 1;
cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 0, 0);
cairo_t *cr = cairo_create(surface);
il_return_on_fail(self->cairo_glyphs);
cairo_set_font_face(cr, self->cairo_ft_face);
cairo_set_font_size(cr, self->pt);
cairo_glyph_extents(cr, self->cairo_glyphs, self->glyph_count, &self->extents);
cairo_surface_destroy(surface);
cairo_destroy(cr);
}
if (rx) {
*rx = self->extents.width;
}
if (ry) {
*ry = self->extents.height + 1; // TODO: ????
}
if (bx) {
*bx = self->extents.x_bearing;
}
if (by) {
*by = self->extents.y_bearing;
}
if (ax) {
*ax = self->extents.x_advance;
}
if (ay) {
*ay = self->extents.y_advance;
}
}
开发者ID:Ralith,项目名称:IntenseLogic,代码行数:33,代码来源:text.c
示例10: info_draw
static int info_draw(ToolWin *tw) {
toolwin_backing(tw);
/* info */
cairo_set_source_rgba(tw->ctx,0,0,0,1.0);
cairo_set_font_face(tw->ctx, conf.bfont);
cairo_move_to(tw->ctx, 0, 8);
info_printf(tw, A_CENTER, "%.3lf sec, %.2lf KHz",
spect->fft->time[mx],spect->fft->freq[my]);
cairo_rel_move_to(tw->ctx,0,12);
info_split_printf(tw, "Threshold:", "%.2lf", -1.0 * conf.thresh);
info_split_printf(tw, "Spectrogram Floor:", "%.2lf",
-1.0 * conf.spect_floor);
info_split_printf(tw, "Path Length:","%.2lf", spect->pex);
info_split_printf(tw, "Path Duration:","%.3lf", spect->tex);
info_split_printf(tw, "Frequency Excursion:","%.3lf", spect->fex);
cairo_move_to(tw->ctx, 0, 145);
/* modes */
info_split_printf(tw, "Modes:","");
cairo_set_font_face(tw->ctx, conf.bfont);
/* erase */
set_color(tw->ctx,RGBA_ERASE1)
if (mode & MODE_ERASE) set_color(tw->ctx,RGBA_ERASE1)
else cairo_set_source_rgba(tw->ctx,0.8,0.8,0.8,1.0);
cairo_rectangle(tw->ctx, 10, 170, tw->w / 2.0 - 15, 20);
cairo_fill_preserve(tw->ctx);
cairo_set_source_rgba(tw->ctx,0,0,0,1.0);
cairo_stroke(tw->ctx);
cairo_text_extents(tw->ctx,"Erase",&ext);
cairo_move_to(tw->ctx, tw->w / 4.0 - ext.width / 2.0, 185);
cairo_set_source_rgba(tw->ctx,0,0,0,1.0);
cairo_show_text(tw->ctx,"Erase");
/* crop */
if (mode & MODE_CROP) set_color(tw->ctx, RGBA_CROP)
else cairo_set_source_rgba(tw->ctx,0.8,0.8,0.8,1.0);
cairo_rectangle(tw->ctx, 5 + tw->w / 2.0, 170, tw->w / 2.0 - 15, 20);
cairo_fill_preserve(tw->ctx);
cairo_set_source_rgba(tw->ctx,0.0,0.0,0.0,1.0);
cairo_stroke(tw->ctx);
cairo_text_extents(tw->ctx,"Crop",&ext);
cairo_move_to(tw->ctx, tw->w * 0.75 - ext.width / 2.0, 185);
cairo_set_source_rgba(tw->ctx,0,0,0,1.0);
cairo_show_text(tw->ctx,"Crop");
/* draw */
toolwin_draw(tw);
return 0;
}
开发者ID:BehaviorEnterprises,项目名称:Fex,代码行数:46,代码来源:xlib_toolwin.c
示例11: renderTruetypeSymbolCairo
int renderTruetypeSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
symbolStyleObj *s)
{
int unicode;
cairo_glyph_t glyph;
cairo_text_extents_t extents;
cairo_matrix_t trans;
double ox,oy;
cairoCacheData *cache = MS_IMAGE_RENDERER_CACHE(img);
cairo_renderer *r = CAIRO_RENDERER(img);
faceCacheObj *face = getFontFace(cache,symbol->full_font_path);
if(!face) return MS_FAILURE;
cairo_save(r->cr);
cairo_set_font_face(r->cr,face->face);
cairo_set_font_size(r->cr,s->scale*96/72.0);
msUTF8ToUniChar(symbol->character, &unicode);
if (face->ftface->charmap &&
face->ftface->charmap->encoding == FT_ENCODING_MS_SYMBOL)
unicode |= 0xf000;
glyph.index = FT_Get_Char_Index(face->ftface, unicode);
glyph.x=0;
glyph.y=0;
cairo_glyph_extents(r->cr,&glyph,1,&extents);
ox=extents.x_bearing+extents.width/2.;
oy=extents.y_bearing+extents.height/2.;
cairo_matrix_init_rotate(&trans,-s->rotation);
cairo_matrix_transform_point(&trans,&ox,&oy);
/* cairo_translate(cr,-extents.width/2,-extents.height/2); */
cairo_translate(r->cr,x-ox,y-oy);
cairo_rotate(r->cr, -s->rotation);
cairo_glyph_path(r->cr,&glyph,1);
if (s->outlinewidth) {
msCairoSetSourceColor(r->cr, s->outlinecolor);
cairo_set_line_width(r->cr, s->outlinewidth + 1);
cairo_stroke_preserve(r->cr);
}
if(s->color) {
msCairoSetSourceColor(r->cr, s->color);
cairo_fill_preserve(r->cr);
}
cairo_new_path(r->cr);
cairo_restore(r->cr);
return MS_SUCCESS;
}
开发者ID:lydonchandra,项目名称:MapServer-SpeedUp,代码行数:58,代码来源:mapcairo.c
示例12: cairo_set_font_face_l
static int cairo_set_font_face_l( lua_State* L )
{
lua_cairo_t* lc = lua_cairo_check( L, 1 );
lua_cairo_font_face_t* lcff = lua_cairo_font_face_check( L, 2 );
cairo_set_font_face( lc->cairo, lcff->crface );
return( 0 );
}
开发者ID:matthewburk,项目名称:cel-reactor,代码行数:9,代码来源:cairo_L.c
示例13: info_split_printf
static int info_split_printf(ToolWin *tw, char *bold, char *fmt, ...) {
char str[MAX_STRING];
va_list arg;
va_start(arg, fmt);
vsprintf(str, fmt, arg);
va_end(arg);
cairo_set_font_face(tw->ctx, conf.bfont);
cairo_text_extents(tw->ctx,bold,&ext);
cairo_rel_move_to(tw->ctx, MARGIN, conf.font_size);
cairo_show_text(tw->ctx,bold);
cairo_rel_move_to(tw->ctx, -1.0 * ext.x_advance - MARGIN, 0);
cairo_set_font_face(tw->ctx, conf.font);
cairo_text_extents(tw->ctx,str,&ext);
cairo_rel_move_to(tw->ctx, tw->w - ext.x_advance - MARGIN, 0);
cairo_show_text(tw->ctx,str);
cairo_rel_move_to(tw->ctx, MARGIN - tw->w, conf.font_size / 3.0);
return 0;
}
开发者ID:BehaviorEnterprises,项目名称:Fex,代码行数:18,代码来源:xlib_toolwin.c
示例14: cr_set_font_face
static int
cr_set_font_face (lua_State *L) {
cairo_t **obj = luaL_checkudata(L, 1, OOCAIRO_MT_NAME_CONTEXT);
cairo_font_face_t *face = 0;
if (!lua_isnoneornil(L, 2))
face = *(cairo_font_face_t **) luaL_checkudata(L, 2, OOCAIRO_MT_NAME_FONTFACE);
cairo_set_font_face(*obj, face);
return 0;
}
开发者ID:awesomeWM,项目名称:oocairo,代码行数:9,代码来源:obj_context.c
示例15: switch
void Aw::Label::getMetrics(cairo_t *cr, Size& min_size, bool& expandh, bool& expandv)
{
// We over-ride the
switch (m_font_type)
{
case font_type::normal:
cairo_set_font_face(cr, theApp->m_font.m_norm_face);
break;
case font_type::bold:
cairo_set_font_face(cr, theApp->m_font.m_bold_face);
break;
case font_type::mono:
cairo_set_font_face(cr, theApp->m_font.m_mono_face);
break;
}
cairo_text_extents_t te;
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_set_font_size(cr, m_font_size);
cairo_text_extents (cr, m_text.c_str(), &te);
// anvil_syslog(0, "TEXT: %s %d %d %d %d %d %d\n",
// m_text.c_str(),
// (int)te.width,
// (int)te.height,
// (int)te.x_advance,
// (int)te.y_advance,
// (int)te.x_bearing,
// (int)te.y_bearing
// );
min_size = getMinSize();
if (te.width + 10 > min_size.m_width)
{
min_size.m_width = te.width + 10;
}
if (te.height + 10 > min_size.m_height)
{
min_size.m_height = te.height + 10;
}
expandh = expandH();
expandv = expandV();
}
开发者ID:gerryg400,项目名称:anvilos,代码行数:44,代码来源:Label.cpp
示例16: defined
void Context::setFont( const cinder::Font &font )
{
#if defined( CINDER_COCOA )
cairo_font_face_t *cairoFont = cairo_quartz_font_face_create_for_cgfont( font.getCgFontRef() );
#elif defined( CINDER_MSW )
cairo_font_face_t *cairoFont = cairo_win32_font_face_create_for_logfontw( &font.getLogfont() );
#endif
cairo_set_font_face( mCairo, cairoFont );
cairo_font_face_destroy( cairoFont );
}
开发者ID:Justinmaurer,项目名称:Cinder,代码行数:10,代码来源:Cairo.cpp
示例17: SelectFont
void SelectFont() {
if (mFontSelected)
return;
cairo_t *cr = mContext->GetCairo();
cairo_set_font_face(cr, mShaper->GetFont()->CairoFontFace());
cairo_set_font_size(cr, mShaper->GetFont()->GetAdjustedSize());
cairo_scaled_font_t *scaledFont = mShaper->GetFont()->CairoScaledFont();
cairo_win32_scaled_font_select_font(scaledFont, mDC);
mFontSelected = true;
}
开发者ID:Incognito,项目名称:mozilla-central,代码行数:13,代码来源:gfxUniscribeShaper.cpp
示例18: pango_cairo_win32_font_install
static gboolean
pango_cairo_win32_font_install (PangoCairoFont *font,
cairo_t *cr)
{
PangoCairoWin32Font *cwfont = PANGO_CAIRO_WIN32_FONT (font);
cairo_set_font_face (cr,
pango_cairo_win32_font_get_font_face (font));
cairo_set_font_matrix (cr, &cwfont->font_matrix);
cairo_set_font_options (cr, cwfont->options);
return TRUE;
}
开发者ID:nihed,项目名称:magnetism,代码行数:13,代码来源:pangocairo-win32font.c
示例19: realize_callback
static void
realize_callback (GtkWidget *drawing_area,
FT_Face face)
{
gint i, pixmap_width, pixmap_height;
const gchar *text;
cairo_text_extents_t extents;
cairo_font_face_t *font;
gint *sizes = NULL, n_sizes, alpha_size;
cairo_t *cr;
cr = gdk_cairo_create (gtk_widget_get_window (drawing_area));
text = get_sample_string (face);
sizes = build_sizes_table (face, &n_sizes, &alpha_size);
/* calculate size of pixmap to use (with 4 pixels padding) ... */
pixmap_width = 8;
pixmap_height = 8;
font = cairo_ft_font_face_create_for_ft_face (face, 0);
cairo_set_font_face (cr, font);
cairo_set_font_size (cr, alpha_size);
cairo_font_face_destroy (font);
cairo_text_extents (cr, lowercase_text, &extents);
pixmap_height += extents.height + 4;
pixmap_width = MAX (pixmap_width, 8 + extents.width);
cairo_text_extents (cr, uppercase_text, &extents);
pixmap_height += extents.height + 4;
pixmap_width = MAX (pixmap_width, 8 + extents.width);
cairo_text_extents (cr, punctuation_text, &extents);
pixmap_height += extents.height + 4;
pixmap_width = MAX (pixmap_width, 8 + extents.width);
pixmap_height += 8;
for (i = 0; i < n_sizes; i++) {
cairo_set_font_size (cr, sizes[i]);
cairo_text_extents (cr, text, &extents);
pixmap_height += extents.height + 4;
pixmap_width = MAX (pixmap_width, 8 + extents.width);
}
gtk_widget_set_size_request (drawing_area, pixmap_width, pixmap_height);
cairo_destroy (cr);
g_free (sizes);
}
开发者ID:Exalm,项目名称:mate-control-center,代码行数:51,代码来源:font-view.c
示例20: renderLabels
void renderLabels(cairo_t* cr, std::vector<std::pair<string, FloatPoint> >& toPlace) {
cairo_save(cr);
cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.5);
cairo_font_face_t* font = cairo_toy_font_face_create(DEFAULT_FONT, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_face(cr, font);
cairo_set_font_size(cr, 120.0);
cairo_set_line_width(cr, 2.0);
cairo_text_extents_t textSize;
std::list<shared_ptr<Label> > labels;
int i = 0;
std::vector<shared_ptr<Style>> styles;
for (auto& pair : toPlace)
{
string& text = pair.first;
cairo_text_extents(cr, text.c_str(), &textSize);
shared_ptr<Style> s = boost::make_shared<Style>();
s->text = text;
styles.push_back(s);
FloatPoint center = pair.second + FloatPoint(textSize.width/2.0, textSize.height/2.0);
FloatRect owner = FloatRect(center.x, center.y, center.x, center.y);
FloatPoint origin = pair.second - FloatPoint(textSize.x_bearing, textSize.y_bearing);
shared_ptr<Label> l = boost::make_shared<Label>(FloatRect(pair.second, textSize.width, textSize.height), owner, s->text, s.get(), origin);
cairo_rectangle(cr, l->box.minX, l->box.minY, l->box.getWidth(), l->box.getHeight());
cairo_stroke(cr);
labels.push_back(l);
}
std::vector<shared_ptr<Label> > placed;
placeLabels(labels, placed);
for (auto& l: placed)
{
cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0);
cairo_move_to(cr, l->box.minX, l->box.maxY);
cairo_show_text(cr, l->style->text.str().c_str());
cairo_fill(cr);
cairo_set_source_rgba(cr, 1.0, 0.0, 0.0, 0.5);
cairo_rectangle(cr, l->box.minX, l->box.minY, l->box.getWidth(), l->box.getHeight());
cairo_fill(cr);
}
cairo_restore(cr);
}
开发者ID:alex85k,项目名称:alacarte,代码行数:47,代码来源:placement_test.cpp
注:本文中的cairo_set_font_face函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论