From 8b054b887bb075bd9ea8a64dcee2e9f0da6662d0 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 14 Jun 2003 01:57:31 +0000 Subject: [PATCH] Ripped out leftover code from widget sample code. --- src/grr_board_view.c | 204 +++++++++++++++---------------------------- src/grr_board_view.h | 18 ---- 2 files changed, 71 insertions(+), 151 deletions(-) diff --git a/src/grr_board_view.c b/src/grr_board_view.c index eaa4db4..3092f4a 100644 --- a/src/grr_board_view.c +++ b/src/grr_board_view.c @@ -90,7 +90,6 @@ static gint grr_board_view_button_release (GtkWidget *widget, GdkEventButton *event); static gint grr_board_view_motion_notify (GtkWidget *widget, GdkEventMotion *event); -static gint grr_board_view_timer (grr_board_view_t *view); static void grr_board_view_update_mouse (grr_board_view_t *view, gint x, gint y); static void grr_board_view_update (grr_board_view_t *view); @@ -154,14 +153,7 @@ grr_board_view_init (grr_board_view_t *view) view->owns_board = 0; view->button = 0; - view->policy = GTK_UPDATE_CONTINUOUS; view->timer = 0; - view->radius = 0; - view->pointer_width = 0; - view->angle = 0.0; - view->old_value = 0.0; - view->old_lower = 0.0; - view->old_upper = 0.0; } GtkWidget* @@ -217,70 +209,65 @@ grr_board_view_set_board (grr_board_view_t *view, static void grr_board_view_realize (GtkWidget *widget) { - grr_board_view_t *view; - GdkWindowAttr attributes; - gint attributes_mask; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GRR_IS_BOARD_VIEW (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - view = GRR_BOARD_VIEW (widget); - - 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.window_type = GDK_WINDOW_CHILD; - attributes.event_mask = gtk_widget_get_events (widget) | - GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask); + grr_board_view_t *view; + GdkWindowAttr attributes; + gint attributes_mask; - widget->style = gtk_style_attach (widget->style, widget->window); + g_return_if_fail (widget != NULL); + g_return_if_fail (GRR_IS_BOARD_VIEW (widget)); + + GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); + view = GRR_BOARD_VIEW (widget); - gdk_window_set_user_data (widget->window, widget); + 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.window_type = GDK_WINDOW_CHILD; + attributes.event_mask = gtk_widget_get_events (widget) | + GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK; + attributes.visual = gtk_widget_get_visual (widget); + attributes.colormap = gtk_widget_get_colormap (widget); + + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; + widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask); + + widget->style = gtk_style_attach (widget->style, widget->window); + + gdk_window_set_user_data (widget->window, widget); - gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE); + gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE); } static void grr_board_view_size_request (GtkWidget *widget, GtkRequisition *requisition) { - requisition->width = GRR_BOARD_VIEW_DEFAULT_SIZE; - requisition->height = GRR_BOARD_VIEW_DEFAULT_SIZE; + requisition->width = GRR_BOARD_VIEW_DEFAULT_SIZE; + requisition->height = GRR_BOARD_VIEW_DEFAULT_SIZE; } static void grr_board_view_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { - grr_board_view_t *view; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GRR_IS_BOARD_VIEW (widget)); - g_return_if_fail (allocation != NULL); - - widget->allocation = *allocation; - view = GRR_BOARD_VIEW (widget); + grr_board_view_t *view; - if (GTK_WIDGET_REALIZED (widget)) - { + g_return_if_fail (widget != NULL); + g_return_if_fail (GRR_IS_BOARD_VIEW (widget)); + g_return_if_fail (allocation != NULL); - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, allocation->height); + widget->allocation = *allocation; + view = GRR_BOARD_VIEW (widget); + if (GTK_WIDGET_REALIZED (widget)) { + gdk_window_move_resize (widget->window, + allocation->x, allocation->y, + allocation->width, allocation->height); } - view->radius = MIN (allocation->width, allocation->height) * 0.45; - view->pointer_width = view->radius / 5; } static void @@ -668,53 +655,42 @@ static gint grr_board_view_motion_notify (GtkWidget *widget, GdkEventMotion *event) { - grr_board_view_t *view; - GdkModifierType mods; - gint x, y, mask; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GRR_IS_BOARD_VIEW (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - view = GRR_BOARD_VIEW (widget); - - if (view->button != 0) - { - x = event->x; - y = event->y; - - if (event->is_hint || (event->window != widget->window)) - gdk_window_get_pointer (widget->window, &x, &y, &mods); - - switch (view->button) - { + grr_board_view_t *view; + GdkModifierType mods; + gint x, y, mask; + + g_return_val_if_fail (widget != NULL, FALSE); + g_return_val_if_fail (GRR_IS_BOARD_VIEW (widget), FALSE); + g_return_val_if_fail (event != NULL, FALSE); + + view = GRR_BOARD_VIEW (widget); + + if (view->button != 0) { + x = event->x; + y = event->y; + + if (event->is_hint || (event->window != widget->window)) + gdk_window_get_pointer (widget->window, &x, &y, &mods); + + switch (view->button) { case 1: - mask = GDK_BUTTON1_MASK; - break; + mask = GDK_BUTTON1_MASK; + break; case 2: - mask = GDK_BUTTON2_MASK; - break; + mask = GDK_BUTTON2_MASK; + break; case 3: - mask = GDK_BUTTON3_MASK; - break; + mask = GDK_BUTTON3_MASK; + break; default: - mask = 0; - break; + mask = 0; + break; } - if (mods & mask) - grr_board_view_update_mouse (view, x,y); + if (mods & mask) + grr_board_view_update_mouse (view, x,y); } - return FALSE; -} - -static gint -grr_board_view_timer (grr_board_view_t *view) -{ - g_return_val_if_fail (view != NULL, FALSE); - g_return_val_if_fail (GRR_IS_BOARD_VIEW (view), FALSE); - return FALSE; } @@ -722,57 +698,19 @@ static void grr_board_view_update_mouse (grr_board_view_t *view, gint x, gint y) { gint xc, yc; - gfloat old_value; g_return_if_fail (view != NULL); g_return_if_fail (GRR_IS_BOARD_VIEW (view)); xc = GTK_WIDGET(view)->allocation.width / 2; yc = GTK_WIDGET(view)->allocation.height / 2; - - old_value = view->adjustment->value; - view->angle = atan2(yc-y, x-xc); - - if (view->angle < -G_PI/2.) - view->angle += 2*G_PI; - - if (view->angle < -G_PI/6) - view->angle = -G_PI/6; - - if (view->angle > 7.*G_PI/6.) - view->angle = 7.*G_PI/6.; - - view->adjustment->value = view->adjustment->lower + (7.*G_PI/6 - view->angle) * - (view->adjustment->upper - view->adjustment->lower) / (4.*G_PI/3.); - - if (view->adjustment->value != old_value) - { - if (view->policy == GTK_UPDATE_CONTINUOUS) - { - g_signal_emit_by_name (GTK_OBJECT (view->adjustment), "value_changed"); - } - else - { - gtk_widget_queue_draw (GTK_WIDGET (view)); - - if (view->policy == GTK_UPDATE_DELAYED) - { - if (view->timer) - gtk_timeout_remove (view->timer); - - view->timer = gtk_timeout_add (SCROLL_DELAY_LENGTH, - (GtkFunction) grr_board_view_timer, - (gpointer) view); - } - } - } } static void grr_board_view_update (grr_board_view_t *view) { - g_return_if_fail (view != NULL); - g_return_if_fail (GRR_IS_BOARD_VIEW (view)); + g_return_if_fail (view != NULL); + g_return_if_fail (GRR_IS_BOARD_VIEW (view)); - gtk_widget_queue_draw (GTK_WIDGET (view)); + gtk_widget_queue_draw (GTK_WIDGET (view)); } diff --git a/src/grr_board_view.h b/src/grr_board_view.h index f7df6da..87aeebc 100644 --- a/src/grr_board_view.h +++ b/src/grr_board_view.h @@ -57,30 +57,12 @@ struct grr_board_view int cell_width, cell_height; /* XXX: Obviously, the rest of this needs to be gutted */ - - /* update policy (GTK_UPDATE_[CONTINUOUS/DELAYED/DISCONTINUOUS]) */ - guint policy : 2; /* Button currently pressed or 0 if none */ guint8 button; - /* Dimensions of dial components */ - gint radius; - gint pointer_width; - /* ID of update timer, or 0 if none */ guint32 timer; - - /* Current angle */ - gfloat angle; - gfloat last_angle; - - /* Old values from adjustment stored so we know when something changes */ - gfloat old_value; - gfloat old_lower; - gfloat old_upper; - - GtkAdjustment *adjustment; }; struct grr_board_view_class -- 2.43.0