Don't use deprecated functions in GtkKnob; optipng knob.png

This commit is contained in:
Tomasz Moń
2009-03-24 22:21:01 +01:00
parent 96317d5ac5
commit 991527418a
3 changed files with 46 additions and 50 deletions

View File

@@ -74,22 +74,23 @@ static GtkWidgetClass *parent_class = NULL;
* gtk_knob_get_type() * gtk_knob_get_type()
* *
*****************************************************************************/ *****************************************************************************/
guint GType
gtk_knob_get_type(void) { gtk_knob_get_type(void) {
static guint knob_type = 0; static GType knob_type = 0;
if (!knob_type) { if (!knob_type) {
GtkTypeInfo knob_info = { static const GTypeInfo knob_info = {
"GtkKnob",
sizeof (GtkKnob),
sizeof (GtkKnobClass), sizeof (GtkKnobClass),
(GtkClassInitFunc) gtk_knob_class_init, NULL,
(GtkObjectInitFunc) gtk_knob_init, NULL,
(GClassInitFunc) gtk_knob_class_init,
NULL, NULL,
NULL, NULL,
sizeof (GtkKnob),
0,
(GInstanceInitFunc) gtk_knob_init,
}; };
knob_type = g_type_register_static (GTK_TYPE_WIDGET, "GtkKnob", &knob_info, 0);
knob_type = gtk_type_unique (gtk_widget_get_type (), &knob_info);
} }
return knob_type; return knob_type;
@@ -109,7 +110,7 @@ gtk_knob_class_init (GtkKnobClass *class) {
object_class = (GtkObjectClass*) class; object_class = (GtkObjectClass*) class;
widget_class = (GtkWidgetClass*) class; widget_class = (GtkWidgetClass*) class;
parent_class = gtk_type_class (gtk_widget_get_type ()); parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
object_class->destroy = gtk_knob_destroy; object_class->destroy = gtk_knob_destroy;
@@ -160,7 +161,7 @@ gtk_knob_new(GtkAdjustment *adjustment, GtkKnobAnim *anim) {
g_return_val_if_fail (anim != NULL, NULL); g_return_val_if_fail (anim != NULL, NULL);
g_return_val_if_fail (GDK_IS_PIXBUF (anim->pixbuf), NULL); g_return_val_if_fail (GDK_IS_PIXBUF (anim->pixbuf), NULL);
knob = gtk_type_new (gtk_knob_get_type ()); knob = g_object_new (gtk_knob_get_type (), NULL);
gtk_knob_set_animation (knob, anim); gtk_knob_set_animation (knob, anim);
@@ -190,7 +191,7 @@ gtk_knob_destroy(GtkObject *object) {
knob = GTK_KNOB (object); knob = GTK_KNOB (object);
if (knob->adjustment) { if (knob->adjustment) {
gtk_object_unref (GTK_OBJECT (knob->adjustment)); g_object_unref (knob->adjustment);
knob->adjustment = NULL; knob->adjustment = NULL;
} }
/* FIXME: needs ref counting for automatic GtkKnobAnim cleanup /* FIXME: needs ref counting for automatic GtkKnobAnim cleanup
@@ -201,16 +202,16 @@ gtk_knob_destroy(GtkObject *object) {
*/ */
if (knob->mask) { if (knob->mask) {
gdk_bitmap_unref (knob->mask); g_object_unref (knob->mask);
knob->mask = NULL; knob->mask = NULL;
} }
if (knob->mask_gc) { if (knob->mask_gc) {
gdk_gc_unref (knob->mask_gc); g_object_unref (knob->mask_gc);
knob->mask_gc = NULL; knob->mask_gc = NULL;
} }
if (knob->red_gc) { if (knob->red_gc) {
gdk_gc_unref (knob->red_gc); g_object_unref (knob->red_gc);
knob->red_gc = NULL; knob->red_gc = NULL;
} }
@@ -262,21 +263,23 @@ gtk_knob_set_adjustment(GtkKnob *knob, GtkAdjustment *adjustment) {
g_return_if_fail (GTK_IS_KNOB (knob)); g_return_if_fail (GTK_IS_KNOB (knob));
if (knob->adjustment) { if (knob->adjustment) {
gtk_signal_disconnect_by_data (GTK_OBJECT (knob->adjustment), g_signal_handlers_disconnect_matched(knob->adjustment,
(gpointer)knob); G_SIGNAL_MATCH_DATA,
gtk_object_unref (GTK_OBJECT (knob->adjustment)); 0, 0, NULL, NULL,
knob);
g_object_unref (knob->adjustment);
} }
knob->adjustment = adjustment; knob->adjustment = adjustment;
gtk_object_ref (GTK_OBJECT (knob->adjustment)); g_object_ref (GTK_OBJECT (knob->adjustment));
gtk_object_sink (GTK_OBJECT (knob->adjustment)); g_object_ref_sink (GTK_OBJECT (knob->adjustment));
gtk_signal_connect (GTK_OBJECT (adjustment), "changed", g_signal_connect (adjustment, "changed",
GTK_SIGNAL_FUNC (gtk_knob_adjustment_changed), (GCallback) gtk_knob_adjustment_changed,
(gpointer)knob); knob);
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed", g_signal_connect (adjustment, "value_changed",
GTK_SIGNAL_FUNC (gtk_knob_adjustment_value_changed), (GCallback) gtk_knob_adjustment_value_changed,
(gpointer)knob); knob);
knob->old_value = adjustment->value; knob->old_value = adjustment->value;
knob->old_lower = adjustment->lower; knob->old_lower = adjustment->lower;
@@ -439,13 +442,11 @@ gtk_knob_scroll(GtkWidget *widget, GdkEventScroll *event) {
switch (event->direction) { switch (event->direction) {
case GDK_SCROLL_UP: case GDK_SCROLL_UP:
knob->adjustment->value += knob->adjustment->step_increment; knob->adjustment->value += knob->adjustment->step_increment;
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
break; break;
case GDK_SCROLL_DOWN: case GDK_SCROLL_DOWN:
knob->adjustment->value -= knob->adjustment->step_increment; knob->adjustment->value -= knob->adjustment->step_increment;
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
break; break;
default: default:
break; break;
@@ -485,8 +486,7 @@ gtk_knob_button_press(GtkWidget *widget, GdkEventButton *event) {
knob->adjustment->value = floor ((knob->adjustment->lower + knob->adjustment->value = floor ((knob->adjustment->lower +
knob->adjustment->upper + 1.0) knob->adjustment->upper + 1.0)
* 0.5); * 0.5);
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
break; break;
} }
break; break;
@@ -526,8 +526,7 @@ gtk_knob_button_release(GtkWidget *widget, GdkEventButton *event) {
if (knob->policy != GTK_UPDATE_CONTINUOUS if (knob->policy != GTK_UPDATE_CONTINUOUS
&& knob->old_value != knob->adjustment->value) && knob->old_value != knob->adjustment->value)
{ {
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
} }
break; break;
} }
@@ -632,8 +631,7 @@ gtk_knob_timer(GtkKnob *knob) {
g_return_val_if_fail (GTK_IS_KNOB (knob), FALSE); g_return_val_if_fail (GTK_IS_KNOB (knob), FALSE);
if (knob->policy == GTK_UPDATE_DELAYED) { if (knob->policy == GTK_UPDATE_DELAYED) {
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
} }
/* don't keep running this timer */ /* don't keep running this timer */
@@ -650,19 +648,18 @@ static void
gtk_knob_update_mouse_update(GtkKnob *knob) { gtk_knob_update_mouse_update(GtkKnob *knob) {
if (knob->policy == GTK_UPDATE_CONTINUOUS) { if (knob->policy == GTK_UPDATE_CONTINUOUS) {
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
} }
else { else {
gtk_widget_draw (GTK_WIDGET (knob), NULL); gtk_widget_queue_draw (GTK_WIDGET (knob));
if (knob->policy == GTK_UPDATE_DELAYED) { if (knob->policy == GTK_UPDATE_DELAYED) {
if (knob->timer) { if (knob->timer) {
gtk_timeout_remove (knob->timer); g_source_remove (knob->timer);
} }
knob->timer = gtk_timeout_add (SCROLL_DELAY_LENGTH, knob->timer = g_timeout_add (SCROLL_DELAY_LENGTH,
(GtkFunction) gtk_knob_timer, (GSourceFunc) gtk_knob_timer,
(gpointer) knob); (gpointer) knob);
} }
} }
} }
@@ -743,11 +740,10 @@ gtk_knob_update(GtkKnob *knob) {
if (new_value != knob->adjustment->value) { if (new_value != knob->adjustment->value) {
knob->adjustment->value = new_value; knob->adjustment->value = new_value;
gtk_signal_emit_by_name (GTK_OBJECT (knob->adjustment), g_signal_emit_by_name (knob->adjustment, "value_changed");
"value_changed");
} }
gtk_widget_draw (GTK_WIDGET (knob), NULL); gtk_widget_queue_draw (GTK_WIDGET (knob));
} }

View File

@@ -30,9 +30,9 @@
extern "C" { extern "C" {
#endif #endif
#define GTK_KNOB(obj) GTK_CHECK_CAST(obj, gtk_knob_get_type(), GtkKnob) #define GTK_KNOB(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, gtk_knob_get_type(), GtkKnob)
#define GTK_KNOB_CLASS(klass) GTK_CHECK_CLASS_CAST(klass, gtk_knob_get_type(), GtkKnobClass) #define GTK_KNOB_CLASS(klass) G_TYPE_CHECK_CLASS_CAST(klass, gtk_knob_get_type(), GtkKnobClass)
#define GTK_IS_KNOB(obj) GTK_CHECK_TYPE(obj, gtk_knob_get_type()) #define GTK_IS_KNOB(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, gtk_knob_get_type())
typedef struct _GtkKnob GtkKnob; typedef struct _GtkKnob GtkKnob;
typedef struct _GtkKnobClass GtkKnobClass; typedef struct _GtkKnobClass GtkKnobClass;
@@ -82,7 +82,7 @@ typedef struct _GtkKnobAnim GtkKnobAnim;
extern GtkWidget *gtk_knob_new(GtkAdjustment *adjustment, GtkKnobAnim *anim); extern GtkWidget *gtk_knob_new(GtkAdjustment *adjustment, GtkKnobAnim *anim);
extern guint gtk_knob_get_type(void); extern GType gtk_knob_get_type(void);
extern GtkAdjustment *gtk_knob_get_adjustment(GtkKnob *knob); extern GtkAdjustment *gtk_knob_get_adjustment(GtkKnob *knob);
extern void gtk_knob_set_update_policy(GtkKnob *knob, GtkUpdateType policy); extern void gtk_knob_set_update_policy(GtkKnob *knob, GtkUpdateType policy);
extern void gtk_knob_set_adjustment(GtkKnob *knob, GtkAdjustment *adjustment); extern void gtk_knob_set_adjustment(GtkKnob *knob, GtkAdjustment *adjustment);

BIN
knob.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 62 KiB