当前位置: 首页>>代码示例>>C++>>正文


C++ RefPtr::add_color_stop_rgb方法代码示例

本文整理汇总了C++中cairo::RefPtr::add_color_stop_rgb方法的典型用法代码示例。如果您正苦于以下问题:C++ RefPtr::add_color_stop_rgb方法的具体用法?C++ RefPtr::add_color_stop_rgb怎么用?C++ RefPtr::add_color_stop_rgb使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cairo::RefPtr的用法示例。


在下文中一共展示了RefPtr::add_color_stop_rgb方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: drawBackground

void ItemView::drawBackground(const Cairo::RefPtr<Cairo::Context>& cr, const int width, const int height)
{
    //fill background
    if (isSelected())
    {
        cr->set_source_rgb(1, 1, 1);
        cr->rectangle(0, 0, width, height);
        cr->fill();
    }
    else
    {
        cr->set_source_rgb(0.98, 0.98, 0.98);
        cr->rectangle(0, 0, width, height);
        cr->fill();
    }

    //time area
    Cairo::RefPtr<Cairo::LinearGradient> linearGradientTime = Cairo::LinearGradient::create(0, 0, 0, height);

    //set color by status
    ColorMode colorMode = getColorMode();

    if (colorMode == COLOR_INACTIVE)
    {
        //gray
        linearGradientTime->add_color_stop_rgb(0, 0.75, 0.75, 0.75);
        linearGradientTime->add_color_stop_rgb(1, 0.65, 0.65, 0.65);
    }

    if (colorMode == COLOR_ALARM)
    {
        //orange
        linearGradientTime->add_color_stop_rgb(0, 1.00, 0.60, 0.30);
        linearGradientTime->add_color_stop_rgb(1, 0.90, 0.50, 0.20);
    }

    if (colorMode == COLOR_OK)
    {
        //green
        linearGradientTime->add_color_stop_rgb(0, 0.40, 0.70, 0.45);
        linearGradientTime->add_color_stop_rgb(1, 0.30, 0.60, 0.35);
    }

    cr->set_source(linearGradientTime);
    cr->rectangle(0, 0, TIME_WIDTH, height);
    cr->fill();

    if (isSelected())
        drawInnerShadow(cr, width, height);
}
开发者ID:pzagawa,项目名称:myagenda,代码行数:50,代码来源:NoteItemView.cpp

示例2: drawWidget


//.........这里部分代码省略.........
    p.moveTo(0, 0);
    p.lineTo(sin(hours + minutes / 12.0) * (m_radius * 0.5),
             -cos(hours + minutes / 12.0) * (m_radius * 0.5));
    p.stroke();
    p.restore();

    p.setSourceRGBA(1, 0, 0, 0.5);
    p.arc(0, 0, m_lineWidth * 2.0, 0, 2.0 * M_PI);
    p.fill();

#if 0
  // This is where we draw on the window
  Glib::RefPtr<Gdk::Window> window = get_window();
  if(window)
  {
    Gtk::Allocation allocation = get_allocation();
    const int width = allocation.get_width();
    const int height = allocation.get_height();

    Cairo::RefPtr<Cairo::Context> cr = window->create_cairo_context();

    if(event)
    {
        // clip to the area indicated by the expose event so that we only
        // redraw the portion of the window that needs to be redrawn
        cr->rectangle(event->area.x, event->area.y,
                event->area.width, event->area.height);
        cr->clip();
    }

    // background gradient
    {
        Cairo::RefPtr<Cairo::LinearGradient> pat = Cairo::LinearGradient::create(0.0, 0.0, 0.0, height);
        pat->add_color_stop_rgb(1.0, 1.0, 1.0, 1.0);
        pat->add_color_stop_rgb(0.0, 0.0, 0.0, 0.0);
        cr->rectangle(0, 0, width, height);
        cr->set_source(pat);
        cr->fill();
    }

    // scale to unit square and translate (0, 0) to be (0.5, 0.5), i.e.
    // the center of the window
    cr->scale(width, height);
    cr->translate(0.5, 0.5);
    cr->set_line_width(m_line_width);

    cr->arc(0, 0, m_radius, 0, 2 * M_PI);
    cr->save();
    cr->set_source_rgba(1.0, 1.0, 1.0, 0.8);
    cr->fill_preserve();
    cr->restore();
    cr->stroke_preserve();
    cr->clip();

    //clock ticks
    for (int i = 0; i < 12; i++)
    {
        double inset = 0.05;

        cr->save();
        cr->set_line_cap(Cairo::LINE_CAP_ROUND);

        if(i % 3 != 0)
        {
            inset *= 0.8;
            cr->set_line_width(0.03);
开发者ID:ereslibre,项目名称:ideallibrary-old-extern,代码行数:67,代码来源:main.cpp

示例3:

Cairo::RefPtr<Cairo::ImageSurface>
TextSurface::create_cairo_surface(const std::string& text, const TextProperties& text_props,
                                  Cairo::TextExtents& out_text_extents,
                                  Cairo::FontExtents& out_font_extents)
{
  { // get TextExtents and FontExtents
    Cairo::RefPtr<Cairo::ImageSurface> tmp_surface = Cairo::ImageSurface::create(Cairo::FORMAT_RGB24, 0, 0);
    Cairo::RefPtr<Cairo::Context> cr = Cairo::Context::create(tmp_surface);
    cr->set_font_size(text_props.get_font_size());
    cr->select_font_face(text_props.get_font(), Cairo::FONT_SLANT_NORMAL, Cairo::FONT_WEIGHT_NORMAL);
    cr->get_text_extents(text, out_text_extents);
    cr->get_font_extents(out_font_extents);
  }

  Cairo::RefPtr<Cairo::ImageSurface>
    surface = Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32,
                                          static_cast<int>(out_text_extents.width  + text_props.get_line_width()),
                                          static_cast<int>(out_text_extents.height + text_props.get_line_width()));

  Cairo::RefPtr<Cairo::Context> cr = Cairo::Context::create(surface);

  // set the font
  cr->set_font_size(text_props.get_font_size());
  cr->select_font_face(text_props.get_font(), Cairo::FONT_SLANT_NORMAL, Cairo::FONT_WEIGHT_NORMAL);

  if (text_props.get_line_width() != 0)
  {
    // create path
    cr->move_to(-out_text_extents.x_bearing + text_props.get_line_width()/2.0,
                -out_text_extents.y_bearing + text_props.get_line_width()/2.0);
    cr->text_path(text);

    // paint
    cr->set_line_width(text_props.get_line_width());
    cr->set_line_join(Cairo::LINE_JOIN_ROUND);
    cr->set_source_rgb(0.0, 0.0, 0.0);
    cr->stroke();
  }

  // print text
  cr->move_to(-out_text_extents.x_bearing + text_props.get_line_width()/2.0,
              -out_text_extents.y_bearing + text_props.get_line_width()/2.0);
  cr->set_source_rgb(1.0, 1.0, 0.0);

  double y = -out_text_extents.y_bearing - out_font_extents.ascent;

  // toying around with color gradients
  if (false)
  {
    Cairo::RefPtr<Cairo::LinearGradient> gradient = Cairo::LinearGradient::create(0, y,
                                                                                  0, y + out_font_extents.ascent + out_font_extents.descent);
    gradient->add_color_stop_rgb(0.0, 1.0, 1.0, 0.0);
    gradient->add_color_stop_rgb(0.5, 1.0, 1.0, 1.0);
    gradient->add_color_stop_rgb(0.5, 0.4, 0.4, 0.2);
    gradient->add_color_stop_rgb(1.0, 1.0, 1.0, 0.0);
    cr->set_source(gradient);
  }

  cr->show_text(text);

  return surface;
}
开发者ID:xianyinchen,项目名称:viewer,代码行数:62,代码来源:text_surface.cpp

示例4: dessiner_carte


//.........这里部分代码省略.........
	}
	else{
		if(matrice.minCoeff() < valeur_min)
			valeur_min = matrice.minCoeff();
		if(matrice.maxCoeff() > valeur_max)
			valeur_max = matrice.maxCoeff();
	}

	for(int i=0; i<194; i++){
		for(int j=0; j<196; j++){
			int ecrire = 0;
			for(int k=0; k<100; k++){
				if(croisement[i][k] != 0){
					if((abscisse_points[(i*196)+j] >= croisement[i][k]) ){
						if(ecrire == 0 )
							ecrire = 1;
						else
							ecrire = 0;
					}	
				}
				else{
					k = 100;
				}
			}
			if(ecrire == 1 ){
				cr->set_source_rgb(gradient_couleur(valeur_min, valeur_max, matrice(i,j), 'R'), gradient_couleur(valeur_min, valeur_max, matrice(i,j), 'G'), gradient_couleur(valeur_min, valeur_max, matrice(i,j), 'B'));
				ordonnee_tmp = ordonnee_points[(i*196)+j] - (points[3][5] - points[3][3]);
				abscisse_tmp = ((abscisse_points[(i*196)+j] - points[3][1]) * largeur)/(points[3][2] - points[3][1]);
				ordonnee_tmp = ((ordonnee_tmp - points[3][3]) * hauteur)/(points[3][4] - points[3][3]);
				cr->arc (abscisse_tmp - decalage_x, ordonnee_tmp - decalage_y, 1, 0, 2 * M_PI);
				cr->fill();
			}
		}
	}
	
/* Insertion de texte pour mettre un titre à la carte */
/* Le titre est écrit en noir */
	cr->set_source_rgb(0, 0, 0);
/* Les lettres font 15 pixels de hauteur */
	cr->set_font_size(15);
/* Sélection de la police */
	cr->select_font_face("Sans", Cairo::FONT_SLANT_NORMAL, Cairo::FONT_WEIGHT_BOLD);
	string deb_titre("Carte ");
	cr->get_text_extents(deb_titre + titre.c_str(), extents);
	/* Positionnement du titre */
	cr->move_to((L_MAP/2) - (extents.width/2), H_MAP - 20);
	/* Ecriture du titre */
	cr->show_text(deb_titre + titre.c_str());	

/* Dessin du gradient de couleur */
/* Création d'un gradient le long de la ligne définie par (L_MAP - 50, 50) et (L_MAP - 50, H_MAP - 100)  */
	Cairo::RefPtr< Cairo::LinearGradient > gradient = Cairo::LinearGradient::create(L_MAP - 50, 50, L_MAP - 50, H_MAP - 100);

/* Couleur de départ pour le gradient */
	gradient->add_color_stop_rgb(0, 0, 1, 0);
/* Couleur de fin pour le gradient */
	if(valeur_min == valeur_max)
		gradient->add_color_stop_rgb(1, 0, 1, 0);
	else
		gradient->add_color_stop_rgb(1, 1, 0, 0);

/* Dessin d'un rectangle */
	cr->rectangle(L_MAP - 50, 50, 10, H_MAP - 100);
/* Colorisation du rectangle avec le gradient */
	cr->set_source(gradient);
/* Remplissage du rectangle (toujours avec le gradient) */
	cr->fill();  
	
/* Conversion du minimum de la matrice en lettres (pour afficher ce que représente la valeur du minimum du gradient)*/
    sstr = new stringstream();
	*sstr << valeur_min;
	
/* Le titre est écrit en noir */
	cr->set_source_rgb(0, 0, 0);
/* Les lettres font 10 pixels de hauteur */
	cr->set_font_size(10);
/* Sélection de la police */
	cr->select_font_face("Sans", Cairo::FONT_SLANT_NORMAL, Cairo::FONT_WEIGHT_BOLD);
/* Récupération de la taille la valeur min(hauteur et largeur) */
	cr->get_text_extents((sstr->str()).c_str(), extents);
/* Positionnement du texte */
	cr->move_to((L_MAP - 45) - (extents.width/2), 50 - 5);
/* Ecriture du titre */
	cr->show_text((sstr->str()).c_str());	
	
/* Conversion du maximum de la matrice en lettres (pour afficher ce que représente la valeur du maximum du gradient)*/
    sstr = new stringstream();
	*sstr << valeur_max;
	
/* Récupération de la taille la valeur max(hauteur et largeur) */
	cr->get_text_extents((sstr->str()).c_str(), extents);
/* Positionnement du texte */
	cr->move_to((L_MAP - 45) - (extents.width/2), H_MAP - 50 + extents.height + 5);
/* Ecriture du titre */
	cr->show_text((sstr->str()).c_str());
	
/* Vidage du stringstream */
	if(zoom_actif == 0)
		get_gdk_pixbuf();
}
开发者ID:alhajjar,项目名称:PFE,代码行数:101,代码来源:Dessin.cpp


注:本文中的cairo::RefPtr::add_color_stop_rgb方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。