Connect to draw instead of expose events
This commit is contained in:
committed by
Stéphane Lesimple
parent
e75d73c74a
commit
6c88a55600
@@ -233,7 +233,7 @@ void GuiFreeLabelWithOnlineHelp(LabelWithOnlineHelp *lwoh)
|
||||
* Add a paragraph of text to the help window
|
||||
*/
|
||||
|
||||
static gboolean wrapper_fix_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
static gboolean wrapper_fix_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ int *last_width = (int*)data;
|
||||
GtkAllocation a = {0};
|
||||
gtk_widget_get_allocation(widget, &a);
|
||||
@@ -276,7 +276,7 @@ void GuiAddHelpParagraph(LabelWithOnlineHelp *lwoh, char *format, ...)
|
||||
which is, well, stupid. */
|
||||
|
||||
gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
|
||||
g_signal_connect(label, "expose_event", G_CALLBACK(wrapper_fix_cb), get_new_int(lwoh));
|
||||
g_signal_connect(label, "draw", G_CALLBACK(wrapper_fix_cb), get_new_int(lwoh));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -314,7 +314,7 @@ void GuiAddHelpListItem(LabelWithOnlineHelp *lwoh, char *format, ...)
|
||||
which is, well, stupid. */
|
||||
|
||||
gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
|
||||
g_signal_connect(label, "expose_event", G_CALLBACK(wrapper_fix_cb), get_new_int(lwoh));
|
||||
g_signal_connect(label, "draw", G_CALLBACK(wrapper_fix_cb), get_new_int(lwoh));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -591,9 +591,9 @@ static void render_sector(cairo_t *cr, raw_editor_context *rec)
|
||||
}
|
||||
}
|
||||
|
||||
/* Expose event handler */
|
||||
/* Draw event handler */
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ raw_editor_context *rec = Closure->rawEditorContext;
|
||||
|
||||
if(!rec->layout)
|
||||
@@ -601,11 +601,6 @@ static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer dat
|
||||
calculate_geometry(rec);
|
||||
}
|
||||
|
||||
if(event->count) /* Exposure compression */
|
||||
return TRUE;
|
||||
|
||||
cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
|
||||
evaluate_vectors(rec);
|
||||
render_sector(cr, rec);
|
||||
|
||||
@@ -1086,7 +1081,7 @@ void GuiCreateRawEditor(void)
|
||||
rec->drawingArea = gtk_drawing_area_new();
|
||||
gtk_widget_add_events(rec->drawingArea, GDK_BUTTON_PRESS_MASK);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), rec->drawingArea, TRUE, TRUE, 0);
|
||||
g_signal_connect(G_OBJECT(rec->drawingArea), "expose_event", G_CALLBACK(expose_cb), NULL);
|
||||
g_signal_connect(G_OBJECT(rec->drawingArea), "draw", G_CALLBACK(draw_cb), NULL);
|
||||
g_signal_connect(G_OBJECT(rec->drawingArea), "button_press_event", G_CALLBACK(button_cb), NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -157,14 +157,11 @@ static void update_geometry(GtkWidget *widget)
|
||||
Closure->readAdaptiveSpiral->my = a.height / 2;
|
||||
}
|
||||
|
||||
/* Expose event handler */
|
||||
/* Draw event handler */
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{
|
||||
GuiSetSpiralWidget(Closure->readAdaptiveSpiral, widget);
|
||||
|
||||
if(event->count) /* Exposure compression */
|
||||
return TRUE;
|
||||
|
||||
update_geometry(widget);
|
||||
redraw_labels(cr, widget, ~0);
|
||||
@@ -358,7 +355,7 @@ void GuiCreateAdaptiveReadWindow(GtkWidget *parent)
|
||||
|
||||
d_area = Closure->readAdaptiveDrawingArea = gtk_drawing_area_new();
|
||||
gtk_box_pack_start(GTK_BOX(parent), d_area, TRUE, TRUE, 0);
|
||||
g_signal_connect(G_OBJECT(d_area), "expose_event", G_CALLBACK(expose_cb), NULL);
|
||||
g_signal_connect(G_OBJECT(d_area), "draw", G_CALLBACK(draw_cb), NULL);
|
||||
|
||||
Closure->readAdaptiveSpiral
|
||||
= GuiCreateSpiral(Closure->grid, Closure->background, 10, 5,
|
||||
|
||||
@@ -284,17 +284,16 @@ static void redraw_spiral_labels(cairo_t *cr)
|
||||
GuiDrawSpiral(cr, Closure->readLinearSpiral);
|
||||
}
|
||||
|
||||
static gboolean expose_curve_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
static gboolean draw_curve_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{
|
||||
update_geometry();
|
||||
redraw_curve(cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean expose_spiral_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
GtkAllocation a = {0};
|
||||
static gboolean draw_spiral_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ GtkAllocation a = {0};
|
||||
gtk_widget_get_allocation(widget, &a);
|
||||
|
||||
GuiSetSpiralWidget(Closure->readLinearSpiral, widget);
|
||||
@@ -371,13 +370,13 @@ void GuiCreateLinearReadWindow(GtkWidget *parent)
|
||||
|
||||
curve = Closure->readLinearCurveArea = gtk_drawing_area_new();
|
||||
gtk_box_pack_start(GTK_BOX(hbox), curve, TRUE, TRUE, 0);
|
||||
g_signal_connect(G_OBJECT(curve), "expose_event", G_CALLBACK(expose_curve_cb), NULL);
|
||||
g_signal_connect(G_OBJECT(curve), "draw", G_CALLBACK(draw_curve_cb), NULL);
|
||||
|
||||
Closure->readLinearSpiral = GuiCreateSpiral(Closure->grid, Closure->background, 10, 5, 1000);
|
||||
spiral = gtk_drawing_area_new();
|
||||
gtk_widget_set_size_request(spiral, Closure->readLinearSpiral->diameter + 20, -1);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), spiral, FALSE, FALSE, 0);
|
||||
g_signal_connect(G_OBJECT(spiral), "expose_event", G_CALLBACK(expose_spiral_cb), NULL);
|
||||
g_signal_connect(G_OBJECT(spiral), "draw", G_CALLBACK(draw_spiral_cb), NULL);
|
||||
|
||||
notebook = Closure->readLinearNotebook = gtk_notebook_new();
|
||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
|
||||
|
||||
@@ -138,12 +138,11 @@ static void redraw_spiral(cairo_t *cr, RS01Widgets *wl)
|
||||
}
|
||||
|
||||
/*
|
||||
* expose event handler for the spiral
|
||||
* Draw event handler for the spiral
|
||||
*/
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
RS01Widgets *wl = (RS01Widgets*)data;
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ RS01Widgets *wl = (RS01Widgets*)data;
|
||||
GtkAllocation a = {0};
|
||||
gtk_widget_get_allocation(widget, &a);
|
||||
int w,h,size;
|
||||
@@ -161,10 +160,6 @@ static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer dat
|
||||
wl->cmpSpiral->mx = a.width / 2;
|
||||
wl->cmpSpiral->my = (wl->cmpSpiral->diameter + a.height - size)/2;
|
||||
|
||||
if(event->count) /* Exposure compression */
|
||||
{ return TRUE;
|
||||
}
|
||||
|
||||
/* Redraw the spiral */
|
||||
|
||||
redraw_spiral(cr, wl);
|
||||
@@ -260,7 +255,7 @@ void CreateRS01VerifyWindow(Method *self, GtkWidget *parent)
|
||||
d_area = wl->cmpDrawingArea = gtk_drawing_area_new();
|
||||
gtk_widget_set_size_request(d_area, wl->cmpSpiral->diameter+20, -1);
|
||||
gtk_container_add(GTK_CONTAINER(frame), d_area);
|
||||
g_signal_connect(G_OBJECT(d_area), "expose_event", G_CALLBACK(expose_cb), (gpointer)wl);
|
||||
g_signal_connect(G_OBJECT(d_area), "draw", G_CALLBACK(draw_cb), (gpointer)wl);
|
||||
|
||||
/*** Ecc info */
|
||||
|
||||
|
||||
@@ -277,16 +277,11 @@ static void redraw_curve(cairo_t *cr, RS01Widgets *wl)
|
||||
}
|
||||
|
||||
/*
|
||||
* Expose callback
|
||||
* Draw callback
|
||||
*/
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
RS01Widgets *wl = (RS01Widgets*)data;
|
||||
|
||||
if(event->count) /* Exposure compression */
|
||||
{ return TRUE;
|
||||
}
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ RS01Widgets *wl = (RS01Widgets*)data;
|
||||
|
||||
update_geometry(wl);
|
||||
redraw_curve(cr, wl);
|
||||
@@ -334,7 +329,7 @@ void CreateRS01FWindow(Method *method, GtkWidget *parent)
|
||||
|
||||
d_area = wl->fixDrawingArea = gtk_drawing_area_new();
|
||||
gtk_box_pack_start(GTK_BOX(parent), d_area, TRUE, TRUE, 0);
|
||||
g_signal_connect(G_OBJECT (d_area), "expose_event", G_CALLBACK(expose_cb), (gpointer)wl);
|
||||
g_signal_connect(G_OBJECT (d_area), "draw", G_CALLBACK(draw_cb), (gpointer)wl);
|
||||
|
||||
notebook = wl->fixNotebook = gtk_notebook_new();
|
||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
|
||||
|
||||
@@ -131,12 +131,11 @@ static void redraw_spiral(cairo_t *cr, RS02Widgets *wl)
|
||||
}
|
||||
|
||||
/*
|
||||
* expose event handler for the spiral
|
||||
* draw event handler for the spiral
|
||||
*/
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
RS02Widgets *wl = (RS02Widgets*)data;
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ RS02Widgets *wl = (RS02Widgets*)data;
|
||||
GtkAllocation a = {0};
|
||||
gtk_widget_get_allocation(widget, &a);
|
||||
int w,h,size;
|
||||
@@ -154,8 +153,7 @@ static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer dat
|
||||
wl->cmpSpiral->mx = a.width / 2;
|
||||
wl->cmpSpiral->my = (wl->cmpSpiral->diameter + a.height - size)/2;
|
||||
|
||||
if(!event->count) /* Exposure compression */
|
||||
redraw_spiral(cr, wl); /* Redraw the spiral */
|
||||
redraw_spiral(cr, wl); /* Redraw the spiral */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -254,7 +252,7 @@ void CreateRS02VerifyWindow(Method *self, GtkWidget *parent)
|
||||
d_area = wl->cmpDrawingArea = gtk_drawing_area_new();
|
||||
gtk_widget_set_size_request(d_area, wl->cmpSpiral->diameter+20, -1);
|
||||
gtk_container_add(GTK_CONTAINER(frame), d_area);
|
||||
g_signal_connect(G_OBJECT(d_area), "expose_event", G_CALLBACK(expose_cb), (gpointer)wl);
|
||||
g_signal_connect(G_OBJECT(d_area), "draw", G_CALLBACK(draw_cb), (gpointer)wl);
|
||||
|
||||
/*** Ecc data info */
|
||||
|
||||
|
||||
@@ -217,15 +217,11 @@ static void redraw_curve(cairo_t *cr, RS02Widgets *wl)
|
||||
}
|
||||
|
||||
/*
|
||||
* Expose callback
|
||||
* Draw callback
|
||||
*/
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
RS02Widgets *wl = (RS02Widgets*)data;
|
||||
|
||||
if(event->count) /* Exposure compression */
|
||||
return TRUE;
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ RS02Widgets *wl = (RS02Widgets*)data;
|
||||
|
||||
update_geometry(wl);
|
||||
redraw_curve(cr, wl);
|
||||
@@ -275,7 +271,7 @@ void CreateRS02FixWindow(Method *method, GtkWidget *parent)
|
||||
|
||||
d_area = wl->fixDrawingArea = gtk_drawing_area_new();
|
||||
gtk_box_pack_start(GTK_BOX(parent), d_area, TRUE, TRUE, 0);
|
||||
g_signal_connect(G_OBJECT (d_area), "expose_event", G_CALLBACK(expose_cb), (gpointer)wl);
|
||||
g_signal_connect(G_OBJECT (d_area), "draw", G_CALLBACK(draw_cb), (gpointer)wl);
|
||||
|
||||
notebook = wl->fixNotebook = gtk_notebook_new();
|
||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
|
||||
|
||||
@@ -141,12 +141,11 @@ static void redraw_spiral(cairo_t *cr, RS03Widgets *wl)
|
||||
}
|
||||
|
||||
/*
|
||||
* expose event handler for the spiral
|
||||
* Draw event handler for the spiral
|
||||
*/
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
RS03Widgets *wl = (RS03Widgets*)data;
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ RS03Widgets *wl = (RS03Widgets*)data;
|
||||
GtkAllocation a = {0};
|
||||
gtk_widget_get_allocation(widget, &a);
|
||||
int w,h,size;
|
||||
@@ -164,8 +163,7 @@ static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer dat
|
||||
wl->cmpSpiral->mx = a.width / 2;
|
||||
wl->cmpSpiral->my = (wl->cmpSpiral->diameter + a.height - size)/2;
|
||||
|
||||
if(!event->count) /* Exposure compression */
|
||||
redraw_spiral(cr, wl); /* Redraw the spiral */
|
||||
redraw_spiral(cr, wl); /* Redraw the spiral */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -273,7 +271,7 @@ void CreateRS03VerifyWindow(Method *self, GtkWidget *parent)
|
||||
d_area = wl->cmpDrawingArea = gtk_drawing_area_new();
|
||||
gtk_widget_set_size_request(d_area, wl->cmpSpiral->diameter+20, -1);
|
||||
gtk_container_add(GTK_CONTAINER(frame), d_area);
|
||||
g_signal_connect(G_OBJECT(d_area), "expose_event", G_CALLBACK(expose_cb), (gpointer)wl);
|
||||
g_signal_connect(G_OBJECT(d_area), "draw", G_CALLBACK(draw_cb), (gpointer)wl);
|
||||
|
||||
/*** Image info */
|
||||
|
||||
|
||||
@@ -247,15 +247,11 @@ static void redraw_curve(cairo_t *cr, RS03Widgets *wl)
|
||||
}
|
||||
|
||||
/*
|
||||
* Expose callback
|
||||
* Draw callback
|
||||
*/
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{ cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
|
||||
RS03Widgets *wl = (RS03Widgets*)data;
|
||||
|
||||
if(event->count) /* Exposure compression */
|
||||
return TRUE;
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ RS03Widgets *wl = (RS03Widgets*)data;
|
||||
|
||||
update_geometry(wl);
|
||||
redraw_curve(cr, wl);
|
||||
@@ -306,7 +302,7 @@ void CreateRS03FixWindow(Method *method, GtkWidget *parent)
|
||||
|
||||
d_area = wl->fixDrawingArea = gtk_drawing_area_new();
|
||||
gtk_box_pack_start(GTK_BOX(parent), d_area, TRUE, TRUE, 0);
|
||||
g_signal_connect(G_OBJECT (d_area), "expose_event", G_CALLBACK(expose_cb), (gpointer)wl);
|
||||
g_signal_connect(G_OBJECT (d_area), "draw", G_CALLBACK(draw_cb), (gpointer)wl);
|
||||
|
||||
notebook = wl->fixNotebook = gtk_notebook_new();
|
||||
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
|
||||
|
||||
@@ -40,7 +40,7 @@ static void toggle_cb(GtkWidget *widget, gpointer data)
|
||||
Closure->welcomeMessage = state;
|
||||
}
|
||||
|
||||
static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{ GtkWidget *box = (GtkWidget*)data;
|
||||
|
||||
if(!Closure->colors_initialized)
|
||||
@@ -117,7 +117,7 @@ void GuiCreateWelcomePage(GtkNotebook *notebook)
|
||||
ignore = gtk_label_new("welcome_tab");
|
||||
box = show_msg ? gtk_vbox_new(FALSE, 0) : gtk_hbox_new(FALSE, 10);
|
||||
|
||||
g_signal_connect(G_OBJECT(align), "expose_event", G_CALLBACK(expose_cb), box);
|
||||
g_signal_connect(G_OBJECT(align), "draw", G_CALLBACK(draw_cb), box);
|
||||
gtk_notebook_append_page(notebook, align, ignore);
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(align), box);
|
||||
|
||||
Reference in New Issue
Block a user