static void gtk_cpu_realize(GtkWidget *widget) { GdkWindowAttr attributes; guint attributes_mask; g_return_if_fail(widget != NULL); g_return_if_fail(GTK_IS_CPU(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 = 80; attributes.height = 100; 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); }
static void gtk_cpu_size_request(GtkWidget *widget, GtkRequisition *requisition) { g_return_if_fail(widget != NULL); g_return_if_fail(GTK_IS_CPU(widget)); g_return_if_fail(requisition != NULL); requisition->width = 80; requisition->height = 100; }
static gboolean gtk_cpu_expose(GtkWidget * widget, GdkEventExpose * event) { g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(GTK_IS_CPU(widget), FALSE); g_return_val_if_fail(event != NULL, FALSE); gtk_cpu_paint(widget); return FALSE; }
static void gtk_cpu_size_allocate(GtkWidget * widget, GtkAllocation * allocation) { g_return_if_fail(widget != NULL); g_return_if_fail(GTK_IS_CPU(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 gtk_cpu_destroy(GtkObject *object) { GtkCpu *cpu; GtkCpuClass *klass; g_return_if_fail(object != NULL); g_return_if_fail(GTK_IS_CPU(object)); cpu = GTK_CPU(object); klass = gtk_type_class(gtk_widget_get_type()); if (GTK_OBJECT_CLASS(klass)->destroy) { (*GTK_OBJECT_CLASS(klass)->destroy) (object); } }