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; }
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; }
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; }
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; }
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; }
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); } }
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); } }
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); } }
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); } }