Exemple #1
0
static VALUE
rg_m_set_icon(int argc, VALUE *argv, VALUE self)
{
    VALUE context, obj, pixmap = Qnil, mask = Qnil, hot_x, hot_y;

    if (argc == 6) {
        rb_scan_args(argc, argv, "60", &context, &obj, &pixmap, &mask, &hot_x, &hot_y);
        gtk_drag_set_icon_pixmap(RVAL2DC(context),
                                 GDK_COLORMAP(RVAL2GOBJ(obj)), 
                                 GDK_PIXMAP(RVAL2GOBJ(pixmap)),
                                 GDK_BITMAP(RVAL2GOBJ(mask)), 
                                 NUM2INT(hot_x), NUM2INT(hot_y));
    } else {
        rb_scan_args(argc, argv, "40", &context, &obj, &hot_x, &hot_y);

        if (TYPE(obj) == T_SYMBOL){
            gtk_drag_set_icon_stock(RVAL2DC(context), rb_id2name(SYM2ID(obj)),
                                    NUM2INT(hot_x), NUM2INT(hot_y));
        } else if (rb_obj_is_kind_of(obj, GTYPE2CLASS(GTK_TYPE_WIDGET))){
            gtk_drag_set_icon_widget(RVAL2DC(context), RVAL2WIDGET(obj),
                                     NUM2INT(hot_x), NUM2INT(hot_y));
        } else if (rb_obj_is_kind_of(obj, GTYPE2CLASS(GDK_TYPE_PIXBUF))){
            gtk_drag_set_icon_pixbuf(RVAL2DC(context),
                                     GDK_PIXBUF(RVAL2GOBJ(obj)),
                                     NUM2INT(hot_x), NUM2INT(hot_y));
        } else {
            rb_raise(rb_eArgError, "invalid argument %s", rb_class2name(CLASS_OF(obj)));
        }
    }
    return self;
}
Exemple #2
0
static VALUE
rg_s_from_image(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
{
    VALUE cmap, src, src_x, src_y, width, height, dest, dest_x, dest_y;
    GdkPixbuf* buf;

    rb_scan_args(argc, argv, "63", &cmap, &src, &src_x, &src_y, &width, &height, 
                 &dest, &dest_x, &dest_y);

    buf = gdk_pixbuf_get_from_image(GDK_PIXBUF(RVAL2GOBJ(dest)),
                                    GDK_IMAGE(RVAL2GOBJ(src)),
                                    GDK_COLORMAP(RVAL2GOBJ(cmap)),
                                    NUM2INT(src_x), NUM2INT(src_y),
                                    NIL_P(dest_x) ? 0 : NUM2INT(dest_x),
                                    NIL_P(dest_y) ? 0 : NUM2INT(dest_y),
                                    NUM2INT(width), NUM2INT(height));
    if (NIL_P(dest)) {
        if (buf) {
            return GOBJ2RVAL(buf);
        } else {
            return Qnil;
        }
    } else {
        return dest;
    }
}
Exemple #3
0
int
clip_GTK_DRAGSETICONPIXMAP(ClipMachine * cm)
{
        C_object  *ccontext = _fetch_co_arg(cm);
	C_object *ccolormap = _fetch_cobject(cm, _clip_spar(cm, 2));
        C_object   *cpixmap = _fetch_cobject(cm, _clip_spar(cm, 3));
        C_object     *cmask = _fetch_cobject(cm, _clip_spar(cm, 4));
        gint          hot_x = _clip_parni(cm, 5);
        gint          hot_y = _clip_parni(cm, 6);

	if (!ccontext || ccontext->type != GDK_TYPE_DRAG_CONTEXT)
        	goto err;
	CHECKCOBJ(ccolormap, GDK_IS_COLORMAP(ccolormap->object));
	CHECKCOBJ(cpixmap, GDK_IS_PIXMAP(cpixmap->object));
	CHECKCOBJ(cmask, GDK_IS_BITMAP(cmask));
	CHECKARG(5, NUMERIC_t);
	CHECKARG(6, NUMERIC_t);

        gtk_drag_set_icon_pixmap((GdkDragContext*)ccontext->object,
        	GDK_COLORMAP(ccolormap->object),
                GDK_PIXMAP(cpixmap->object),
                GDK_BITMAP(cmask->object),
        	hot_x, hot_y );

	return 0;
err:
	return 1;
}
Exemple #4
0
static VALUE
gdkpango_context_set_colormap(VALUE self, VALUE colormap)
{
    gdk_pango_context_set_colormap(PANGO_CONTEXT(RVAL2GOBJ(self)),
                                   GDK_COLORMAP(RVAL2GOBJ(self)));
    return self;
}
gboolean time_line_internal_draw_layer_name(TimeLinePrivate *priv, gint layer_number)
{
	// Local variables
	const GdkColor		colour_black = {0, 0, 0, 0 };
	static GdkColormap	*colourmap = NULL;			// Colourmap used for drawing
	static GdkGC		*display_buffer_gc = NULL;
	static PangoContext *font_context = NULL;
	static PangoFontDescription  *font_description = NULL;
	static PangoLayout	*font_layout = NULL;
	layer				*layer_data;
	GList				*layer_pointer;				// Points to the layers in the selected slide
	GString *message = NULL;

	message  = g_string_new(NULL);

	// Initialisation
	if (NULL == colourmap)
	{
		colourmap = gdk_colormap_get_system();
		gdk_drawable_set_colormap(GDK_DRAWABLE(priv->display_buffer_bot_left), GDK_COLORMAP(colourmap));
	}
	if (NULL == font_context)
	{
		font_context = gdk_pango_context_get();
	}
	if (NULL == font_layout)
	{
		font_layout = pango_layout_new(font_context);
	}
	if (NULL == display_buffer_gc)
	{
		display_buffer_gc = gdk_gc_new(GDK_DRAWABLE(priv->display_buffer_bot_left));
	}
	if (NULL == font_description)
	{
		font_description = pango_font_description_from_string("Sans , 15px");
		pango_layout_set_font_description(font_layout, font_description);
	}

	// Retrieve the layer name string
	layer_pointer = get_current_slide_layers_pointer();
	layer_pointer = g_list_first(layer_pointer);
	layer_data = g_list_nth_data(layer_pointer, layer_number);
//	g_string_printf(message, "%d  %s ",layer_number,layer_data->name->str);
	pango_layout_set_text(font_layout, layer_data->name->str, -1);

	// Set a clip mask
//	clip_region.x = 0;
//	clip_region.y = (layer_number <= 0)?0:(layer_number * priv->row_height);
//	clip_region.width = priv->left_border_width - 1;
//	clip_region.height = priv->row_height * 2;
//	gdk_gc_set_clip_rectangle(GDK_GC(display_buffer_gc), &clip_region);

	// Draw the text string
	gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_black);
	gdk_draw_layout(GDK_DRAWABLE(priv->display_buffer_bot_left), GDK_GC(display_buffer_gc), 5, (layer_number * priv->row_height)+1,font_layout);

	return TRUE;
}
Exemple #6
0
static VALUE
rg_set_colormap(VALUE self, VALUE colormap)
{
    VALUE old_colormap;

    old_colormap = GOBJ2RVAL(gdk_drawable_get_colormap(_SELF(self)));
    G_CHILD_REMOVE(self, old_colormap);

    G_CHILD_ADD(self, colormap);
    gdk_drawable_set_colormap(_SELF(self), GDK_COLORMAP(RVAL2GOBJ(colormap)));
    return self;
}
static VALUE
gdkpmap_colormap_create_from_xpm_d(VALUE self, VALUE win, VALUE colormap, VALUE tcolor, VALUE data)
{
    GdkPixmap *result;
    GdkBitmap *mask;
    const gchar **buf = RVAL2STRV(data);

    result = gdk_pixmap_colormap_create_from_xpm_d(NIL_P(win) ? NULL : GDK_WINDOW(RVAL2GOBJ(win)),
                                                   GDK_COLORMAP(RVAL2GOBJ(colormap)),
                                                   &mask,
                                                   RVAL2GDKCOLOR(tcolor),
                                                   (gchar **)buf);

    return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask));
}
static VALUE
gdkpmap_colormap_create_from_xpm(VALUE self, VALUE win, VALUE colormap, VALUE tcolor, VALUE fname)
{
    GdkPixmap *result;
    GdkBitmap *mask;

    result = gdk_pixmap_colormap_create_from_xpm(NIL_P(win) ? NULL : GDK_WINDOW(RVAL2GOBJ(win)), 
                                                 GDK_COLORMAP(RVAL2GOBJ(colormap)),
                                                 &mask,
                                                 RVAL2GDKCOLOR(tcolor),
                                                 RVAL2CSTR(fname));
    if (result == NULL)
        rb_raise(rb_eArgError, "Pixmap not created from %s", RVAL2CSTR(fname));

    return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask));
}
Exemple #9
0
static void
gdk_colormap_finalize (GObject *object)
{
  GdkColormap                *colormap = GDK_COLORMAP (object);
  GdkColormapPrivateDirectFB *private  = colormap->windowing_data;

  g_free (colormap->colors);

  if (private)
    {
      g_free (private->info);

      if (private->palette)
        private->palette->Release (private->palette);

      g_free (private);
      colormap->windowing_data = NULL;
    }

  G_OBJECT_CLASS (gdk_colormap_parent_class)->finalize (object);
}
Exemple #10
0
static VALUE
rg_m_source_set_icon(int argc, VALUE *argv, VALUE self)
{
    VALUE widget, obj, pixmap = Qnil, mask = Qnil;

    rb_scan_args(argc, argv, "22", &widget, &obj, &pixmap, &mask);
    if (argc == 4){
        gtk_drag_source_set_icon(RVAL2WIDGET(widget), GDK_COLORMAP(RVAL2GOBJ(obj)),
                                 GDK_PIXMAP(RVAL2GOBJ(pixmap)), 
                                 GDK_BITMAP(RVAL2GOBJ(mask)));
    } else if (argc == 2){
        if (TYPE(obj) == T_SYMBOL){
            gtk_drag_source_set_icon_stock(RVAL2WIDGET(widget), rb_id2name(SYM2ID(obj)));
        } else {
            gtk_drag_source_set_icon_pixbuf(RVAL2WIDGET(widget), GDK_PIXBUF(RVAL2GOBJ(obj)));
        }
    } else {
        rb_raise(rb_eArgError, "need 2 or 4 arguments");
    }
    return self;
}
Exemple #11
0
int
clip_GTK_DRAGSOURCESETICON(ClipMachine * cm)
{
        C_widget      *cwid = _fetch_cw_arg(cm);
	C_object *ccolormap = _fetch_cobject(cm, _clip_spar(cm, 2));
        C_object   *cpixmap = _fetch_cobject(cm, _clip_spar(cm, 3));
        C_object     *cmask = _fetch_cobject(cm, _clip_spar(cm, 4));

	CHECKCWID(cwid, GTK_IS_WIDGET);
	CHECKCOBJ(ccolormap, GDK_IS_COLORMAP(ccolormap->object));
	CHECKCOBJ(cpixmap, GDK_IS_PIXMAP(cpixmap->object));
	CHECKCOBJ(cmask, GDK_IS_BITMAP(cmask));

        gtk_drag_source_set_icon(GTK_WIDGET(cwid->widget),
        	GDK_COLORMAP(ccolormap->object),
                GDK_PIXMAP(cpixmap->object),
                GDK_BITMAP(cmask->object));

	return 0;
err:
	return 1;
}
Exemple #12
0
int
clip_GTK_DRAGSETDEFAULTICON(ClipMachine * cm)
{
        C_object *ccolormap = _fetch_co_arg(cm);
        C_object   *cpixmap = _fetch_cobject(cm, _clip_spar(cm, 2));
        C_object     *cmask = _fetch_cobject(cm, _clip_spar(cm, 3));
        gint          hot_x = _clip_parni(cm, 4);
        gint          hot_y = _clip_parni(cm, 5);

	CHECKCOBJ(ccolormap, GDK_IS_COLORMAP(ccolormap->object));
	CHECKCOBJ(cpixmap, GDK_IS_PIXMAP(cpixmap->object));
	CHECKCOBJ(cmask, GDK_IS_PIXMAP(cmask));
	CHECKARG(5, NUMERIC_t);
	CHECKARG(4, NUMERIC_t);

        gtk_drag_set_default_icon(GDK_COLORMAP(ccolormap->object),
                GDK_PIXMAP(cpixmap->object),
                GDK_BITMAP(cmask->object),
        	hot_x, hot_y );

	return 0;
err:
	return 1;
}
gboolean time_line_internal_draw_layer_duration(TimeLinePrivate *priv, gint layer_number)
{
	// Local variables
	const GdkColor		colour_black = {0, 0, 0, 0 };
	const GdkColor		colour_fade = {0, (160 << 8), (160 << 8), (190 << 8) };
	const GdkColor		colour_fully_visible = {0, (200 << 8), (200 << 8), (230 << 8) };
	static GdkColormap	*colourmap = NULL;			// Colormap used for drawing
	static GdkGC		*display_buffer_gc = NULL;
	gint				layer_height;
	layer				*layer_data;
	GList				*layer_pointer;				// Points to the layers in the selected slide
	gint				layer_width;
	gint				layer_x;
	gint				layer_y;
	gint				left_border;


	// Initialisation
	if (NULL == colourmap)
	{
		colourmap = gdk_colormap_get_system();
		gdk_drawable_set_colormap(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_COLORMAP(colourmap));
	}
	if (NULL == display_buffer_gc)
	{
		display_buffer_gc = gdk_gc_new(GDK_DRAWABLE(priv->display_buffer_bot_right));
	}
	left_border = 0;// time_line_get_left_border_width(priv);

	// Select the layer we're working with
	layer_pointer = get_current_slide_layers_pointer();
	layer_pointer = g_list_first(layer_pointer);
	layer_data = g_list_nth_data(layer_pointer, layer_number);

	// Set the height related variables
	layer_y =  (layer_number * priv->row_height) + 2;
	layer_height = priv->row_height - 3;

	// Check if there's a fade in transition for this layer
	if (TRANS_LAYER_FADE == layer_data->transition_in_type)
	{
		// Draw the fade in
		layer_x = left_border + (layer_data->start_time * time_line_get_pixels_per_second()) + 1;
		layer_width = (layer_data->transition_in_duration * time_line_get_pixels_per_second());
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_fade);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), TRUE,
				layer_x, layer_y, layer_width, layer_height);
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_black);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), FALSE,
				layer_x, layer_y, layer_width, layer_height - 1);

		// Draw the fully visible duration
		layer_x = left_border + ((layer_data->start_time + layer_data->transition_in_duration) * time_line_get_pixels_per_second()) + 1;
		layer_width = (layer_data->duration * time_line_get_pixels_per_second());
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_fully_visible);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), TRUE,
				layer_x, layer_y, layer_width, layer_height);
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_black);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), FALSE,
				layer_x - 1, layer_y, layer_width, layer_height -1);
	} else
	{
		// There's no fade in transition for this layer
		layer_x = left_border + (layer_data->start_time * time_line_get_pixels_per_second()) + 1;
		layer_width = (layer_data->duration * time_line_get_pixels_per_second());
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_fully_visible);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), TRUE,
				layer_x, layer_y, layer_width, layer_height);
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_black);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), FALSE,
				layer_x, layer_y, layer_width - 1, layer_height - 1);
	}

	// Check if there's a fade out transition for this layer
	if (TRANS_LAYER_FADE == layer_data->transition_out_type)
	{
		// Draw the fade out
		layer_x += (layer_data->duration * time_line_get_pixels_per_second());
		layer_width = (layer_data->transition_out_duration * time_line_get_pixels_per_second());
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_fade);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), TRUE,
				layer_x, layer_y, layer_width, layer_height);
		gdk_gc_set_rgb_fg_color(GDK_GC(display_buffer_gc), &colour_black);
		gdk_draw_rectangle(GDK_DRAWABLE(priv->display_buffer_bot_right), GDK_GC(display_buffer_gc), FALSE,
				layer_x - 1, layer_y, layer_width, layer_height - 1);
	}

	return TRUE;
}
Exemple #14
0
static VALUE
rg_set_colormap(VALUE self, VALUE val)
{
    _SELF(self)->colormap = GDK_COLORMAP(RVAL2GOBJ(val));
    return self;
}
Exemple #15
0
CLIP_DLLEXPORT void
_map_to_style(ClipMachine *cm, ClipVar *m_style, GtkStyle *style)
{
	ClipVar *c;
	PangoFontDescription * font = NULL;
	C_object *ccmap;

	if ( (c = _clip_mget( cm, m_style, HASH_BG_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->bg_gc);
	/* Colors */
	if ( (c = _clip_mget( cm, m_style, HASH_FG_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->fg);
	if ( (c = _clip_mget( cm, m_style, HASH_BG_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->bg);
	if ( (c = _clip_mget( cm, m_style, HASH_LIGHT_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->light);
	if ( (c = _clip_mget( cm, m_style, HASH_DARK_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->dark);
	if ( (c = _clip_mget( cm, m_style, HASH_MID_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->mid);
	if ( (c = _clip_mget( cm, m_style, HASH_TEXT_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->text);
	if ( (c = _clip_mget( cm, m_style, HASH_BASE_COLOR )) != NULL )
		_map_colors_to_gdk_array(cm, c, style->base);
	if ( (c = _clip_mget( cm, m_style, HASH_BLACK_COLOR )) != NULL )
		_map_colors_to_gdk(cm, c, &style->black);
	if ( (c = _clip_mget( cm, m_style, HASH_WHITE_COLOR )) != NULL )
		_map_colors_to_gdk(cm, c, &style->white);

	/* Graphics contexts */
	if ( (c = _clip_mget( cm, m_style, HASH_FG_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->fg_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_BG_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->bg_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_LIGHT_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->light_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_DARK_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->dark_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_MID_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->mid_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_TEXT_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->text_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_BASE_GC )) != NULL )
		_map_gc_to_gdk_array(cm, c, style->base_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_BLACK_GC )) != NULL )
		_map_gc_to_gdk(cm, c, &style->black_gc);
	if ( (c = _clip_mget( cm, m_style, HASH_WHITE_GC )) != NULL )
		_map_gc_to_gdk(cm, c, &style->white_gc);

/* Set font of widget */
	c = _clip_mget(cm,m_style,HASH_FONT);
	if (c != NULL)
	{
		font = pango_font_description_from_string(c->s.str.buf);

		if (font)
		{
			style->font_desc = font;
		}
	}
/* Set colormap of widget */
	c = _clip_mget(cm,m_style,HASH_COLORMAP);
	if (c && (c->t.type == MAP_t || c->t.type == NUMERIC_t))
	{
		ccmap = _fetch_cobject(cm,_clip_mget(cm,m_style,HASH_COLORMAP));
		if (ccmap)
		{
			style->colormap = GDK_COLORMAP(ccmap->object);
		}
	}
}
Exemple #16
0
static VALUE
rg_s_set_default_colormap(G_GNUC_UNUSED VALUE self, VALUE cmap)
{
    gtk_widget_set_default_colormap(GDK_COLORMAP(RVAL2GOBJ(cmap)));
    return cmap;
}
Exemple #17
0
static VALUE
rg_set_colormap(VALUE self, VALUE colormap)
{
    gtk_widget_set_colormap(_SELF(self), GDK_COLORMAP(RVAL2GOBJ(colormap)));
    return self;
}