Esempio n. 1
0
/* Replacement for XAllocColor() that tries to return the nearest
   available color if the colormap is full.  Original was from FSFmacs,
   but rewritten by Jareth Hein <*****@*****.**> 97/11/25
   Modified by Lee Kindness <*****@*****.**> 31/08/99 to handle previous
   total failure which was due to a read/write colorcell being the nearest
   match - tries the next nearest...

   Gdk takes care of all this behind the scenes, so we don't need to
   worry about it.

   Return value is 1 for normal success, 2 for nearest color success,
   3 for Non-deallocable sucess. */
int
allocate_nearest_color (GdkColormap *colormap, GdkVisual *visual,
		        GdkColor *color_def)
{
  int rc;

  rc = gdk_colormap_alloc_color (colormap, color_def, FALSE, TRUE);

  if (rc == TRUE)
      return (1);

  return (0);
}
Esempio n. 2
0
void
board_window_init (window_board_t *win)
{
	//win->window = create_window_hand ();
	win->window = get_widget ("window_hand");
	win->statusbar = GTK_STATUSBAR (get_widget ("statusbar1"));
	win->board_menu = get_widget ("board_menu1");
	create_hand_widgets(win);
	create_bidding_widget (win);

	/* set up "recently used" menu */
	GtkWidget *jump_menu = get_widget ("jump_to1");
#if GTK_CHECK_VERSION (2,10,0)
	GtkWidget *recentchooser = gtk_recent_chooser_menu_new ();
	gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (recentchooser),
			GTK_RECENT_SORT_MRU);
	gtk_menu_item_set_submenu (GTK_MENU_ITEM (jump_menu), recentchooser);
	g_signal_connect (G_OBJECT (recentchooser), "item-activated",
			G_CALLBACK (jump_menu_select), NULL);
	GtkRecentFilter *filter = gtk_recent_filter_new ();
	gtk_recent_filter_add_pattern (filter, "*.lin");
	gtk_recent_filter_add_pattern (filter, "*.pbn");
	gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (recentchooser), filter);
#else
	gtk_widget_set_sensitive (jump_menu, FALSE);
#endif

	win->keyfile = g_key_file_new ();
	win->show_played_cards = 0;
	win->show_hands = seat_all;
	win->show_dd_scores = seat_all;
	win->svg = NULL;
	win->card_width = 70;

	win->filename = NULL;
	win->title = win->subtitle = win->team1 = win->team2 = NULL;
	win->boards = NULL;
	win->board_numbers = NULL;
	win->n_boards_alloc = 0;
	win->n_boards = 0;

	win->cutbuf = NULL;

	win->cur = 0;

	GdkColor bg = { 0, HAND_DISPLAY_TABLE_GDK_BG };
	gdk_colormap_alloc_color (gdk_colormap_get_system (), &bg, FALSE, TRUE);
	gtk_widget_modify_bg (win->window, GTK_STATE_NORMAL, &bg);

	gtk_widget_show (win->window);
}
Esempio n. 3
0
File: cdgdk.c Progetto: LuaDist/cd
static void cdpalette(cdCtxCanvas *ctxcanvas, int n, const long int *palette, int mode)
{
  int i;
  GdkColor clr;

  if (mode == CD_FORCE)
  {
    /* if was POLITE then allocates own palette */
    if (ctxcanvas->colormap == gdk_gc_get_colormap(ctxcanvas->gc))
      ctxcanvas->colormap = gdk_colormap_new(ctxcanvas->vis, FALSE);

    /* allocate all the palette colors to the CD */
    for (i = 0; i < n; i++)
    {
      clr = cdColorToGdk(palette[i]);
      gdk_colormap_alloc_color(ctxcanvas->colormap, &clr, FALSE, FALSE);
    }

    /* set directly on the drawable */
    gdk_drawable_set_colormap(ctxcanvas->wnd, ctxcanvas->colormap);
  }
  else
  {
    /* if was FORCE, remove the own palette */
    if (ctxcanvas->colormap != gdk_gc_get_colormap(ctxcanvas->gc))
    {
      g_object_unref(ctxcanvas->colormap);
      ctxcanvas->colormap = gdk_gc_get_colormap(ctxcanvas->gc);
    }

    /* if POLITE then just try to allocate all the colors of the palette */
    for (i = 0; i < n; i++)
    {
      clr = cdColorToGdk(palette[i]);
      gdk_colormap_alloc_color(ctxcanvas->colormap, &clr, FALSE, TRUE);
    }
  }
}
Esempio n. 4
0
static
void plot_area_set_color(PlotArea* self, const gchar* colorstr, GdkColor* color)
{
	GdkColormap* colormap = NULL;
	if (GTK_WIDGET_REALIZED(self)) {
		colormap = gtk_widget_get_colormap(GTK_WIDGET(self));
		gdk_colormap_free_colors(colormap, color, 1);
	}

	gdk_color_parse(colorstr, color);

	if (GTK_WIDGET_REALIZED(self))
		gdk_colormap_alloc_color(colormap, color, FALSE, TRUE);
}
Esempio n. 5
0
repv
sys_make_color(Lisp_Color *c)
{
    if (gdk_color_parse (rep_STR (c->name), &c->color))
    {
	if (gdk_colormap_alloc_color (color_map, &c->color, 0, 1))
	    return rep_VAL (c);
	else
	    return Fsignal(Qerror, rep_list_2(rep_VAL(&no_alloc_color),
					      c->name));
    }
    else
	return Fsignal(Qerror, rep_list_2(rep_VAL(&no_parse_color), c->name));
}
static void
gc_set_color(struct graphics_gc_priv *gc, struct color *c, int fg)
{
	GdkColor gdkc;
	gdkc.pixel=0;
	gdkc.red=c->r;
	gdkc.green=c->g;
	gdkc.blue=c->b;
	gdk_colormap_alloc_color(gc->gr->colormap, &gdkc, FALSE, TRUE);
	if (fg)
		gdk_gc_set_foreground(gc->gc, &gdkc);
	else
		gdk_gc_set_background(gc->gc, &gdkc);
}
Esempio n. 7
0
/** Convert a Dia color object to GDK style, including handling allocation.
 * @param color A color object.  This will not be kept by this function.
 * @param gdkcolor Return value: GDK color object to fill in.
 */
void
color_convert(Color *color, GdkColor *gdkcolor)
{
  gdkcolor->red = (guint16)(color->red*65535);
  gdkcolor->green = (guint16)(color->green*65535);
  gdkcolor->blue = (guint16)(color->blue*65535);

  if (_color_initialized) {
    if (!gdk_colormap_alloc_color (colormap, gdkcolor, TRUE, TRUE))
      g_warning ("color_convert failed.");
  } else {
    g_warning("Can't color_convert in non-interactive app (w/o color_init())");
  }
}
Esempio n. 8
0
/*!  
  Display a rectangle.

  \param topLeft : Top-left corner of the rectangle.
  \param bottomRight : Bottom-right corner of the rectangle.
  \param color : Rectangle color.
  \param fill : When set to true fill the rectangle.

  \param thickness : Thickness of the four lines used to display the
  rectangle. This parameter is only useful when \e fill is set to
  false.
*/
void
vpDisplayGTK::displayRectangle ( const vpImagePoint &topLeft,
				 const vpImagePoint &bottomRight,
				 const vpColor &color, bool fill,
				 unsigned int thickness )
{
  if (displayHasBeenInitialized)
  {
    if ( thickness == 1 ) thickness = 0;

    if (color.id < vpColor::id_unknown)
      gdk_gc_set_foreground(gc, col[color.id]);
    else {
      gdkcolor.red   = 256 * color.R;
      gdkcolor.green = 256 * color.G;
      gdkcolor.blue  = 256 * color.B;
      gdk_colormap_alloc_color(colormap,&gdkcolor,FALSE,TRUE);
      gdk_gc_set_foreground(gc, &gdkcolor);     
    }

    gdk_gc_set_line_attributes(gc, (gint)thickness,
			       GDK_LINE_SOLID, GDK_CAP_BUTT,
			       GDK_JOIN_BEVEL) ;

    int w  = vpMath::round( bottomRight.get_u() - topLeft.get_u() );
    int h = vpMath::round( bottomRight.get_v() - topLeft.get_v() );

    if (fill == false)
      gdk_draw_rectangle(background, gc, FALSE,
			 vpMath::round( topLeft.get_u() ),
			 vpMath::round( topLeft.get_v() ),
       w-1,h-1);
    else
      gdk_draw_rectangle(background, gc, TRUE,
			 vpMath::round( topLeft.get_u() ),
			 vpMath::round( topLeft.get_v() ),
       w, h);

    if (thickness > 1)
      gdk_gc_set_line_attributes(gc, 0, GDK_LINE_SOLID, GDK_CAP_BUTT,
                                 GDK_JOIN_BEVEL) ;
  }
  else
  {
    vpERROR_TRACE("GTK not initialized " ) ;
    throw(vpDisplayException(vpDisplayException::notInitializedError,
                             "GTK not initialized")) ;
  }
}
Esempio n. 9
0
void wxColourRefData::AllocColour( GdkColormap *cmap )
{
    if (m_colormap != cmap)
    {
        FreeColour();

        m_color.red = m_red;
        m_color.green = m_green;
        m_color.blue = m_blue;
        if (gdk_colormap_alloc_color(cmap, &m_color, FALSE, TRUE))
        {
            m_colormap = cmap;
        }
    }
}
Esempio n. 10
0
void
palette_alloc (GtkWidget * widget)
{
	int i;
	static int done_alloc = FALSE;
	GdkColormap *cmap;

	if (!done_alloc)		  /* don't do it again */
	{
		done_alloc = TRUE;
		cmap = gtk_widget_get_colormap (widget);
		for (i = MAX_COL; i >= 0; i--)
			gdk_colormap_alloc_color (cmap, &colors[i], FALSE, TRUE);
	}
}
Esempio n. 11
0
GdkColor carmen_graphics_add_color_rgb(int r, int g, int b) 
{
  GdkColor color;

  if(cmap == NULL)
    cmap = gdk_colormap_get_system();

  color.red = r * 256;
  color.green = g * 256;
  color.blue = b * 256;

  if(!gdk_colormap_alloc_color(cmap, &color, FALSE, TRUE))
    g_error("couldn't allocate color");

  return color;
}
Esempio n. 12
0
gboolean alloc_color(GdkColor * color, GdkColormap * map,
    unsigned char red, unsigned char green, unsigned char blue)
{
    int retval;

    color->red = ((unsigned long) red) << 8;
    color->green = ((unsigned long) green) << 8;
    color->blue = ((unsigned long) blue) << 8;
    color->pixel =
	((unsigned long) red) << 16 | ((unsigned long) green) << 8 |
	((unsigned long) blue);
    retval = gdk_colormap_alloc_color(map, color, FALSE, TRUE);
    if (retval == 0) {
	printf("alloc_color( %d, %d, %d ) failed\n", red, green, blue);
    }
    return retval;
}
Esempio n. 13
0
static gint
viewer_disappear_timer_func (gpointer data)
{
	tViewer *parent = (tViewer *) data;
	if ((parent->color.red) == 0xFFFF)
	{
		parent->color.red = 0xF800;
		parent->color.green = 0xF800;
		parent->color.blue = 0xF800;
	}
	else
	{
		parent->color.red -= 0x800;
		parent->color.green -= 0x800;
		parent->color.blue -= 0x800;
	}
	gdk_colormap_alloc_color (parent->cmap, &(parent->color), FALSE,
				  TRUE);
	//gdk_color_change(parent->cmap,&(parent->color));
	if (parent->color.red == 0x0000)
	{
		parent->refresh();
		parent->now_count++;
		if (parent->now_count < parent->count)
		{
			parent->set_text(parent->str_1[parent->now_count],parent->str_2[parent->now_count]);
			/*parent->str1 = parent->str_1[parent->now_count];
			parent->str2 = parent->str_2[parent->now_count];*/
		}
		else
		{
			parent->set_text("","Game Over! :-)");
			//parent->str2 = "Game Over! :-)";
		}
		parent->w_appear_timer =
			g_timeout_add (20, viewer_w_appear_timer_func,
					 data);
		parent->disappear_timer = 0;
		return FALSE;
	}
	else {
		parent->draw (3);
		return TRUE;
	}
}
Esempio n. 14
0
gulong
gnucash_color_alloc (gushort red, gushort green, gushort blue)
{
    GdkColormap *colormap = gtk_widget_get_default_colormap ();
    GdkColor *c;

    if (!color_inited)
        gnucash_color_init ();

    c = g_new0 (GdkColor, 1);
    c->red = red;
    c->green = green;
    c->blue = blue;

    g_return_val_if_fail (gdk_colormap_alloc_color (colormap, c, FALSE, TRUE), 0);

    return c->pixel;
}
manipulation manipulation_watermark_new() 
{
	manipulation watermark;
	watermark = (manipulation) g_malloc(sizeof(struct manip_str));
	watermark->type = MANIP_WATERMARK;
	watermark->icon = &pixdata_watermark;
	watermark->settings = (watermark_settings) g_malloc(sizeof(struct manip_watermark_set));
	((watermark_settings)watermark->settings)->mode = TRUE;
	((watermark_settings)watermark->settings)->text = "";
	((watermark_settings)watermark->settings)->font = pango_font_description_copy(pango_font_description_from_string("Sans 16px"));
	gdk_color_parse("black", &(((watermark_settings)watermark->settings)->color));
	gdk_colormap_alloc_color(gdk_colormap_get_system(), &(((watermark_settings)watermark->settings)->color), TRUE, TRUE);
	((watermark_settings)watermark->settings)->image_file = NULL;
	((watermark_settings)watermark->settings)->opacity = 100.0;
	((watermark_settings)watermark->settings)->position = WM_POS_BR;
	
	return watermark;
}
Esempio n. 16
0
static void qcad_ruler_class_init (GObjectClass *klass, gpointer data)
  {
  DBG_OO (fprintf (stderr, "QCADRuler::class_init:Entering\n")) ;
#ifdef GTK_GUI
  if (0 == clrCyan.pixel)
    gdk_colormap_alloc_color (gdk_colormap_get_system (), &clrCyan, FALSE, TRUE) ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->draw = draw ;
#endif /* def GTK_GUI */
#ifdef STDIO_FILEIO
  QCAD_DESIGN_OBJECT_CLASS (klass)->serialize = serialize ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->unserialize = unserialize ;
#endif /* def STDIO_FILEIO */
  G_OBJECT_CLASS (klass)->finalize = qcad_ruler_instance_finalize ;
  QCAD_STRETCHY_OBJECT_CLASS (klass)->stretch_draw_state_change = stretch_draw_state_change ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->move = move ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->PostScript_preamble = PostScript_preamble ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->PostScript_instance = PostScript_instance ;
  DBG_OO (fprintf (stderr, "QCADRuler::class_init:Leaving\n")) ;
  }
Esempio n. 17
0
GdkGC *
new_color_gc (GtkStyle * style, GdkColor * color)
{
  GdkGCValues gc_values;
  GdkColormap *cmap = style->colormap;
  gint depth = style->depth;
  
  if (!(cmap)) {
    cmap = gdk_colormap_get_system();
    depth = gdk_colormap_get_visual(cmap)->depth;
  }
  
  gdk_colormap_alloc_color (cmap, color, FALSE, TRUE);

  gc_values.foreground = *color;

  return gtk_gc_get (depth, cmap,
		     &gc_values, GDK_GC_FOREGROUND);
}
Esempio n. 18
0
/**
 * gimp_canvas_set_bg_color:
 * @canvas:   a #GimpCanvas widget
 * @color:    a color in #GimpRGB format
 *
 * Sets the background color of the canvas's window.  This
 * is the color the canvas is set to if it is cleared.
 **/
void
gimp_canvas_set_bg_color (GimpCanvas *canvas,
                          GimpRGB    *color)
{
  GtkWidget   *widget = GTK_WIDGET (canvas);
  GdkColormap *colormap;
  GdkColor     gdk_color;

  if (! GTK_WIDGET_REALIZED (widget))
    return;

  gimp_rgb_get_gdk_color (color, &gdk_color);

  colormap = gdk_drawable_get_colormap (widget->window);
  g_return_if_fail (colormap != NULL);
  gdk_colormap_alloc_color (colormap, &gdk_color, FALSE, TRUE);

  gdk_window_set_background (widget->window, &gdk_color);
}
Esempio n. 19
0
static void qcad_label_class_init (GObjectClass *klass, gpointer data)
  {
  DBG_OO (fprintf (stderr, "QCADLabel::class_init:Entering\n")) ;
#ifdef GTK_GUI
  if (0 == clrBlue.pixel)
    gdk_colormap_alloc_color (gdk_colormap_get_system (), &clrBlue, FALSE, TRUE) ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->draw = draw ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->properties = properties ;
#endif /* def GTK_GUI */
#ifdef STDIO_FILEIO
  QCAD_DESIGN_OBJECT_CLASS (klass)->serialize = serialize ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->unserialize = unserialize ;
#endif /* def STDIO_FILEIO */
  G_OBJECT_CLASS (klass)->finalize = qcad_label_instance_finalize ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->copy = copy ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->PostScript_preamble = PostScript_preamble ;
  QCAD_DESIGN_OBJECT_CLASS (klass)->PostScript_instance = PostScript_instance ;
  DBG_OO (fprintf (stderr, "QCADLabel::class_init:Leaving\n")) ;
  }
Esempio n. 20
0
/*!
  Display a circle.
  \param center : Circle center position.
  \param radius : Circle radius.
  \param color : Circle color.
  \param fill : When set to true fill the circle.
  \param thickness : Thickness of the circle. This parameter is only useful 
  when \e fill is set to false.
*/
void vpDisplayGTK::displayCircle ( const vpImagePoint &center,
				   unsigned int radius,
				   const vpColor &color,
				   bool fill,
				   unsigned int thickness )
{
  if (displayHasBeenInitialized)
  {
    if ( thickness == 1 ) thickness = 0;

    if (color.id < vpColor::id_unknown)
      gdk_gc_set_foreground(gc, col[color.id]);
    else {
      gdkcolor.red   = 256 * color.R;
      gdkcolor.green = 256 * color.G;
      gdkcolor.blue  = 256 * color.B;
      gdk_colormap_alloc_color(colormap,&gdkcolor,FALSE,TRUE);
      gdk_gc_set_foreground(gc, &gdkcolor);     
    }

    gdk_gc_set_line_attributes(gc, (gint)thickness,
			       GDK_LINE_SOLID, GDK_CAP_BUTT,
			       GDK_JOIN_BEVEL) ;

    if (fill == false)
      gdk_draw_arc(background, gc, FALSE,
		   vpMath::round( center.get_u()-radius ), 
		   vpMath::round( center.get_v()-radius ),
		   (gint)(2*radius), (gint)(2*radius), 23040, 23040) ; /* 23040 = 360*64 */
    else
      gdk_draw_arc(background, gc, TRUE,
		   vpMath::round( center.get_u()-radius ), 
		   vpMath::round( center.get_v()-radius ),
		   (gint)(2*radius), (gint)(2*radius), 23040, 23040) ; /* 23040 = 360*64 */
  }
  else
  {
    vpERROR_TRACE("GTK not initialized " ) ;
    throw(vpDisplayException(vpDisplayException::notInitializedError,
                             "GTK not initialized")) ;
  }
}
Esempio n. 21
0
static void _mt_gc_set_foreground(MT_GC *gc, MT_COLOR *col)
{
   GdkGCValues gc_values;
   GdkGCValuesMask gc_values_mask;
   GdkColor color;
   GdkGC *gdkgc;
   MT_GTK_GC *mtgc = (MT_GTK_GC *)gc;
   
   color.red = col->r * 256;
   color.green = col->g * 256;
   color.blue = col->b * 256;
   if (!gdk_colormap_alloc_color(GTK_STYLE(mt_style)->colormap, &color, FALSE, TRUE)) return;
   
   gc_values_mask = GDK_GC_FOREGROUND;
   gc_values.foreground = color;
   gdkgc = gtk_gc_get(GTK_STYLE(mt_style)->depth, GTK_STYLE(mt_style)->colormap, &gc_values, gc_values_mask);

   gtk_gc_release(mtgc->gc);
   mtgc->gc = gdkgc;
}
Esempio n. 22
0
void wxColourRefData::AllocColour( GdkColormap *cmap )
{
    if (m_hasPixel && (m_colormap == cmap))
        return;

    FreeColour();

    GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
    if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
            (private_colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR))
    {
        m_hasPixel = gdk_colormap_alloc_color( cmap, &m_color, FALSE, TRUE );
        int idx = m_color.pixel;
        colMapAllocCounter[ idx ] = colMapAllocCounter[ idx ] + 1;
    }
    else
    {
        m_hasPixel = gdk_color_alloc( cmap, &m_color );
    }
    m_colormap = cmap;
}
/*--------------------------------------------------------------------------*/
static GdkGC *
get_color(unsigned short r, unsigned short g, unsigned short b)
{
  GdkGCValues values;
  GdkColor color;

  color.pixel = 0;
  color.red = r;
  color.green = g;
  color.blue = b;

  if(gdk_colormap_alloc_color(gdk_colormap_get_system(),
			      &color, FALSE, TRUE)) {
  }
  
  values.foreground = color;
  
  return gdk_gc_new_with_values(ctk_gtksim_drawing_area->window,
				&values,
				GDK_GC_FOREGROUND);
}
Esempio n. 24
0
void colors_init(void)
{
	GdkColormap *cmap;
	gint idx;

	cmap = gdk_colormap_get_system();
	for (idx = 0; idx < G_N_ELEMENTS(token_colors); idx++) {
		/* allocate colours for the players */
		gdk_colormap_alloc_color(cmap, &token_colors[idx], FALSE,
					 TRUE);
	}

	gdk_colormap_alloc_color(cmap, &black, FALSE, TRUE);
	gdk_colormap_alloc_color(cmap, &white, FALSE, TRUE);
	gdk_colormap_alloc_color(cmap, &red, FALSE, TRUE);
	gdk_colormap_alloc_color(cmap, &green, FALSE, TRUE);
	gdk_colormap_alloc_color(cmap, &blue, FALSE, TRUE);
	gdk_colormap_alloc_color(cmap, &lightblue, FALSE, TRUE);
}
Esempio n. 25
0
void afield_tint(GtkWidget *darea, AtomField *af,
                 gulong *atoms, gint states)
{
    GtkWidget *top;
    GdkPixmap *pixmap;
    GdkColor **color, *new_color;
    GdkColormap *colormap;
    gdouble percent;
    gint i;

    /* holt das pixmap vom Zeichenbereich */
    top = gtk_widget_get_toplevel(darea);
    color = g_object_get_data(G_OBJECT(top), "color_atom");
    pixmap = g_object_get_data(G_OBJECT(darea), "pixmap");

    new_color = (GdkColor *) g_malloc(sizeof(GdkColor));
    new_color->red = new_color->green = new_color->blue = 0;

    /* Mischt die Farben */
    for (i = 0; i < states; i++) {
        percent = atoms[i] / (gdouble) af->number;
        new_color->red += (color[i])->red * percent;
        new_color->green += (color[i])->green * percent;
        new_color->blue += (color[i])->blue * percent;
    }

    colormap = gdk_colormap_get_system();
    gdk_colormap_alloc_color(colormap, new_color, FALSE, TRUE);

    gdk_gc_set_foreground(af->ustyle, new_color);

    gdk_draw_rectangle(pixmap,
                       af->ustyle,
                       TRUE,
                       0, 0,
                       darea->allocation.width,
                       darea->allocation.height);

    g_free(new_color);
}
Esempio n. 26
0
/*!
  Display a dashed line from image point \e ip1 to image point \e ip2.
  \param ip1,ip2 : Initial and final image points.
  \param color : Line color.
  \param thickness : Line thickness.
*/
void vpDisplayGTK::displayDotLine ( const vpImagePoint &ip1, 
				    const vpImagePoint &ip2,
				    const vpColor &color, 
				    unsigned int thickness )
{

  if (displayHasBeenInitialized)
  {
    if ( thickness == 1 ) thickness = 0;

    if (color.id < vpColor::id_unknown)
      gdk_gc_set_foreground(gc, col[color.id]);
    else {
      gdkcolor.red   = 256 * color.R;
      gdkcolor.green = 256 * color.G;
      gdkcolor.blue  = 256 * color.B;
      gdk_colormap_alloc_color(colormap,&gdkcolor,FALSE,TRUE);
      gdk_gc_set_foreground(gc, &gdkcolor);     
    }

    gdk_gc_set_line_attributes(gc, (gint)thickness, 
			       GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT,
                               GDK_JOIN_BEVEL) ;
    gdk_draw_line(background, gc,
		  vpMath::round( ip1.get_u() ),
		  vpMath::round( ip1.get_v() ),
		  vpMath::round( ip2.get_u() ),
		  vpMath::round( ip2.get_v() ) );
    gdk_gc_set_line_attributes(gc, 0,
                               GDK_LINE_SOLID, GDK_CAP_BUTT,
                               GDK_JOIN_BEVEL) ;
  }
  else
  {
    vpERROR_TRACE("GTK not initialized " ) ;
    throw(vpDisplayException(vpDisplayException::notInitializedError,
                             "GTK not initialized")) ;
  }
}
Esempio n. 27
0
gboolean draw_city_dots_timezone_map() {
	int i;
	GtkWidget *drawarea = lookup_widget(MainWindow,"drawingarea1");
	GdkGC *gc = gdk_gc_new(drawarea->window);
	GdkColor color;
	gdk_color_parse("yellow",&color);
	gdk_colormap_alloc_color(gdk_colormap_get_system(),&color,TRUE,TRUE);
	gtk_widget_modify_fg(drawarea,GTK_STATE_NORMAL,&color);
	
	gdk_gc_set_foreground(gc,&color);
	for (i = 0; i < timezones_count; i++) {
//		debug("Drawing point %d %d of %s\n",
//		      map2canvas_lon(timezones[i].lon,MAP_WIDTH),
//		      map2canvas_lat(timezones[i].lat,MAP_HEIGHT),
//		      timezones[i].tz);
		gdk_draw_point(drawarea->window,gc,
			       map2canvas_lon(timezones[i].lon,MAP_WIDTH),
			       map2canvas_lat(timezones[i].lat,MAP_HEIGHT));
	}
	g_object_unref(gc);
	return TRUE;
}
Esempio n. 28
0
static gboolean colorlabel_drawing_area_expose_event_cb
#if !GTK_CHECK_VERSION(3, 0, 0)
	(GtkWidget *widget, GdkEventExpose *expose, gpointer data)
#else
	(GtkWidget *widget, cairo_t *cr, gpointer data)
#endif
{
#if !GTK_CHECK_VERSION(3, 0, 0)
	cairo_t *cr;
	GdkWindow *drawable = gtk_widget_get_window(widget);
#endif
	GtkAllocation allocation;
	gulong c = (gulong) GPOINTER_TO_INT(data);
	GdkColor color;

	INTCOLOR_TO_GDKCOLOR(c, color)

#if !GTK_CHECK_VERSION(3, 0, 0)
	gdk_colormap_alloc_color(gtk_widget_get_colormap(widget), &color, FALSE, TRUE);
	cr = gdk_cairo_create(drawable);
#endif
	gtk_widget_get_allocation(widget, &allocation);

	cairo_set_source_rgb(cr, 0., 0., 0.);
	cairo_rectangle(cr, 0, 0,
	    allocation.width - 1,
	    allocation.height - 1);
	cairo_stroke(cr);
	gdk_cairo_set_source_color(cr, &color);
	cairo_rectangle(cr, 1, 1,
	    allocation.width - 2,
	    allocation.height - 2);
	cairo_fill(cr);
#if !GTK_CHECK_VERSION(3, 0, 0)
	cairo_destroy(cr);
#endif
	
	return FALSE;
}
Esempio n. 29
0
static gboolean check_at(GtkText *gtktext, int from_pos) {
	int start, end;
	char buf[BUFSIZE];

	if (!get_word_from_pos(gtktext, from_pos, buf, &start, &end)) {
		return FALSE;
	}

	if (misspelled_test(buf)) {
		if (highlight.pixel == 0) {
			/* add an entry for the highlight in the color map. */
			GdkColormap *gc = gtk_widget_get_colormap(GTK_WIDGET(gtktext));
			gdk_colormap_alloc_color(gc, &highlight, FALSE, TRUE);;
		}
		change_color(gtktext, start, end, &highlight);
		return TRUE;
	} else { 
		change_color(gtktext, start, end, 
				&(GTK_WIDGET(gtktext)->style->fg[0]));
		return FALSE;
	}
}
Esempio n. 30
0
static gint
viewer_w_appear_timer_func (gpointer data)
{
	tViewer *parent = (tViewer *) data;
	if ((parent->color.red) == 0xF800)
	{
		parent->color.red = 0xFFFF;
		parent->color.green = 0xFFFF;
		parent->color.blue = 0xFFFF;
	}
	else
	{
		parent->color.red += 0x800;
		parent->color.green += 0x800;
		parent->color.blue += 0x800;
	}
	gdk_colormap_alloc_color (parent->cmap, &(parent->color), FALSE,
				  TRUE);
	//gdk_color_change(parent->cmap,&(parent->color));
	if (parent->now_count < parent->count)
		parent->draw (1);
	else
		parent->draw (4);
	if ((parent->color.red) == 0xFFFF)
	{
		parent->w_appear_timer = 0;
		if (parent->now_count < parent->count)
			parent->m_show_timer =
				g_timeout_add (parent->w_show_time,
						 viewer_m_show_timer_func,
						 data);
		else
			(*(parent->runfunc)) ();
		return FALSE;
	}
	else
		return TRUE;
}