示例#1
0
static void selectcolor_realize(GtkWidget *widget) {
	GdkWindowAttr attributes;
	guint attributes_mask;

	g_return_if_fail(widget != NULL);
	g_return_if_fail(IS_SELECT_COLOR(widget));

	GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED);

	attributes.window_type = GDK_WINDOW_CHILD;
	attributes.x = widget->allocation.x;
	attributes.y = widget->allocation.y;
	attributes.width = widget->allocation.width;
	attributes.height = widget->allocation.height;

	attributes.wclass = GDK_INPUT_OUTPUT;
	attributes.event_mask = gtk_widget_get_events(widget) | GDK_EXPOSURE_MASK;

	attributes_mask = GDK_WA_X | GDK_WA_Y;

	widget->window = gdk_window_new(gtk_widget_get_parent_window(widget), &attributes, attributes_mask);

	gdk_window_set_user_data(widget->window, widget);

	widget->style = gtk_style_attach(widget->style, widget->window);
	gtk_style_set_background(widget->style, widget->window, GTK_STATE_NORMAL);

	GtkWidget * parent = gtk_widget_get_parent(widget);
	widget->window = parent->window;
}
示例#2
0
void selectcolor_set_size(GtkWidget* sc, gint size)
{
	g_return_if_fail(sc != NULL);
	g_return_if_fail(IS_SELECT_COLOR(sc));

	SELECT_COLOR(sc)->size = size;
}
示例#3
0
static void selectcolor_size_request(GtkWidget *widget, GtkRequisition *requisition) {
	g_return_if_fail(widget != NULL);
	g_return_if_fail(IS_SELECT_COLOR(widget));
	g_return_if_fail(requisition != NULL);

	requisition->width = SELECT_COLOR(widget)->size;
	requisition->height = SELECT_COLOR(widget)->size;
}
示例#4
0
gboolean exposeEvent(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) {
	g_return_val_if_fail(widget != NULL, FALSE);
	g_return_val_if_fail(IS_SELECT_COLOR(widget), FALSE);
	g_return_val_if_fail(event != NULL, FALSE);

	selectcolor_paint(widget);

	return FALSE;
}
示例#5
0
static gboolean selectcolor_expose(GtkWidget *widget, GdkEventExpose *event) {
	g_return_val_if_fail(widget != NULL, FALSE);
	g_return_val_if_fail(IS_SELECT_COLOR(widget), FALSE);
	g_return_val_if_fail(event != NULL, FALSE);

	selectcolor_paint(widget);

	return FALSE;
}
示例#6
0
void selectcolor_set_circle(GtkWidget * sc, gboolean circle) {
	g_return_if_fail(sc != NULL);
	g_return_if_fail(IS_SELECT_COLOR(sc));

	SELECT_COLOR(sc)->circle = circle;

	if (gtk_widget_is_drawable(GTK_WIDGET(sc))) {
		selectcolor_paint(sc);
	}
}
示例#7
0
void selectcolor_set_color(GtkWidget * sc, gint color) {
	g_return_if_fail(sc != NULL);
	g_return_if_fail(IS_SELECT_COLOR(sc));

	SELECT_COLOR(sc)->color = color;

	if (gtk_widget_is_drawable(GTK_WIDGET(sc))) {
		selectcolor_paint(sc);
	}
}
示例#8
0
static void selectcolor_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
	g_return_if_fail(widget != NULL);
	g_return_if_fail(IS_SELECT_COLOR(widget));
	g_return_if_fail(allocation != NULL);

	widget->allocation = *allocation;

	if (GTK_WIDGET_REALIZED(widget)) {
		gdk_window_move_resize(widget->window, allocation->x, allocation->y, allocation->width, allocation->height);
	}
}
示例#9
0
static void selectcolor_destroy(GtkObject *object) {
	SelectColor *sc;
	SelectColorClass *klass;

	g_return_if_fail(object != NULL);
	g_return_if_fail(IS_SELECT_COLOR(object));

	sc = SELECT_COLOR(object);

	klass = (SelectColorClass*) gtk_type_class(gtk_widget_get_type());

	if (GTK_OBJECT_CLASS(klass)->destroy) {
		(*GTK_OBJECT_CLASS(klass)->destroy)(object);
	}
}