[med-svn] [Git][med-team/gdpc][master] 2 commits: gtk3.patch: New; port to GTK 3 (#967379).
Yavor Doganov (@yavor-guest)
gitlab at salsa.debian.org
Sun Jan 25 10:54:46 GMT 2026
Yavor Doganov pushed to branch master at Debian Med / gdpc
Commits:
b56f509f by Yavor Doganov at 2026-01-25T12:51:01+02:00
gtk3.patch: New; port to GTK 3 (#967379).
- - - - -
51073a77 by Yavor Doganov at 2026-01-25T12:53:23+02:00
(Suggests): Remove gqview, no longer in Debian (#1118130).
- - - - -
4 changed files:
- debian/changelog
- debian/control
- + debian/patches/gtk3.patch
- debian/patches/series
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,13 @@
+gdpc (2.2.5-17) UNRELEASED; urgency=medium
+
+ * Team upload.
+ * debian/patches/gtk3.patch: New; port to GTK 3 (Closes: #967379).
+ * debian/control (Build-Depends): Replace libgtk2.0-dev with
+ libgtk-3-dev.
+ (Suggests): Remove gqview, no longer in Debian (Closes: #1118130).
+
+ -- Yavor Doganov <yavor at gnu.org> Sun, 25 Jan 2026 12:48:29 +0200
+
gdpc (2.2.5-16) unstable; urgency=medium
* Add build support for loongarch64
=====================================
debian/control
=====================================
@@ -5,7 +5,7 @@ Uploaders: Andreas Tille <tille at debian.org>,
Section: science
Priority: optional
Build-Depends: debhelper-compat (= 13),
- libgtk2.0-dev
+ libgtk-3-dev
Standards-Version: 4.6.2
Vcs-Browser: https://salsa.debian.org/med-team/gdpc
Vcs-Git: https://salsa.debian.org/med-team/gdpc.git
@@ -17,7 +17,6 @@ Architecture: any-amd64 arm64 loong64 mips64el ppc64el riscv64
Depends: ${shlibs:Depends},
${misc:Depends}
Suggests: gdpc-examples (>= ${source:Version}),
- gqview
Description: visualiser of molecular dynamic simulations
gpdc is a graphical program for visualising output data from
molecular dynamics simulations. It reads input in the standard xyz
=====================================
debian/patches/gtk3.patch
=====================================
@@ -0,0 +1,743 @@
+Description: Port to GTK 3.
+ Drawing is much slower, I couldn't figure out a way to speed it up.
+ This patch also makes the "Reset Orientation" button work.
+ Unfortunately, many other bugs remain unfixed.
+Author: Yavor Doganov <yavor at gnu.org>
+Forwarded: no
+Last-Update: 2026-01-25
+---
+
+--- gdpc.orig/Makefile
++++ gdpc/Makefile
+@@ -1,7 +1,7 @@
+ CC = gcc
+ PKG_CONFIG ?= pkg-config
+-FLAGS=$(CFLAGS) -g -Wall `$(PKG_CONFIG) --cflags gtk+-2.0 gthread-2.0` -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED
+-LIBS=`$(PKG_CONFIG) --libs gtk+-2.0 gthread-2.0` -lm
++FLAGS=$(CFLAGS) -g -Wall `$(PKG_CONFIG) --cflags gtk+-3.0 gthread-2.0`
++LIBS=`$(PKG_CONFIG) --libs gtk+-3.0 gthread-2.0` -lm
+ bindir ?= /usr/bin
+
+ .c.o:
+--- gdpc.orig/colors.c
++++ gdpc/colors.c
+@@ -142,19 +142,16 @@
+ /****************************************************************/
+ gint allocatecolors (GdkColor **colors,gint colorset,gint mode)
+ {
+-gboolean *success;
+ gint i, ncolors=19;
+ gint colcomp;
+ double rcomp, gcomp, bcomp;
+
+ if (mode!=2){
+ *colors = (GdkColor *) calloc (ncolors, sizeof(GdkColor));
+- success = (gboolean *) calloc (ncolors, sizeof(gboolean));
+ }
+ else {
+ ncolors = 8*17+2;
+ *colors = (GdkColor *) calloc (ncolors, sizeof(GdkColor));
+- success = (gboolean *) calloc (ncolors, sizeof(gboolean));
+ }
+
+ if (colorset==1) {
+@@ -348,11 +345,5 @@
+ }
+ }
+
+-/* When we're done setting the colors we allocate them. */
+- if (gdk_colormap_alloc_colors(gdk_colormap_get_system(),
+- *colors, ncolors, FALSE,
+- FALSE, success))
+- g_error("Can't allocate colors\n");
+-
+ return ncolors;
+ }
+--- gdpc.orig/drawatoms.c
++++ gdpc/drawatoms.c
+@@ -33,6 +33,13 @@
+
+ double FrameTime=0;
+
++void color_to_rgba(GdkColor color, GdkRGBA *rgba)
++{
++ rgba->red = color.red / 65535.;
++ rgba->green = color.green / 65535.;
++ rgba->blue = color.blue / 65535.;
++ rgba->alpha = 1.0;
++}
+
+ /************************************************************************/
+ /* Transforms relative coordinates in input file to absolute coordinates*/
+@@ -51,16 +58,17 @@
+ /* This function does the actual drawing of the circles accordingly to */
+ /* mode. */
+ /************************************************************************/
+-void drawcircles(GdkPixmap *pixmap, GdkColor *colors, double xmin, double xmax,
++void drawcircles(cairo_surface_t *pixmap, GdkColor *colors, double xmin, double xmax,
+ double ymin, double ymax, double zmin, double zmax, gint absxsize,
+ gint absysize, gint mode, gint radius, gint vary,
+ struct xyzstruc *coords,gboolean usetypes, gint numtypes,
+ gint numatoms)
+ {
+ gint x, y, c, i, rtmp;
+-GdkGC *gc;
++GdkRGBA rgba;
++cairo_t *cr;
+
+- gc = gdk_gc_new (pixmap);
++ cr = cairo_create (pixmap);
+
+ for(i=0;i<numatoms;i++) {
+ x = transf_abs(coords[i].xcoord,xmin,xmax,absxsize);
+@@ -78,54 +86,65 @@
+ }
+ else rtmp = radius;
+
+- gdk_gc_set_foreground (gc, &colors[c+2]);
++ color_to_rgba (colors[c+2], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
+ if(x>0 && y>0 && x<(absxsize-radius/2) && y<(absysize-radius/2)) {
+ if (mode==0) {
+- gdk_draw_rectangle(pixmap,gc,TRUE,x-rtmp/2+xborder,
++ cairo_rectangle (cr, x-rtmp/2+xborder,
+ (absysize-y)-rtmp/2+yborder,rtmp,rtmp);
++ cairo_fill (cr);
+ }
+ else if (mode==1) {
+- gdk_draw_arc(pixmap,gc,TRUE,x-rtmp/2+xborder,
+- (absysize-y)-rtmp/2+yborder,rtmp,rtmp,0,360*64);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp / 2., 0, 2 * M_PI);
++ cairo_fill (cr);
+ }
+ else if (mode==2) {
+- gdk_gc_set_foreground (gc, &colors[c*8+2]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-rtmp/2+xborder,
+- (absysize-y)-rtmp/2+yborder,
+- rtmp,rtmp,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+3]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.453125*rtmp+xborder,
+- (absysize-y)-0.453125*rtmp+yborder,
+- rtmp*0.875,rtmp*0.875,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+4]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.40625*rtmp+xborder,
+- (absysize-y)-0.40625*rtmp+yborder,
+- rtmp*0.75,rtmp*0.75,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+5]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.359375*rtmp+xborder,
+- (absysize-y)-0.359375*rtmp+yborder,
+- rtmp*0.625,rtmp*0.625,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+6]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.3125*rtmp+xborder,
+- (absysize-y)-0.3125*rtmp+yborder,
+- rtmp*0.5,rtmp*0.5,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+7]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.265625*rtmp+xborder,
+- (absysize-y)-0.265625*rtmp+yborder,
+- rtmp*0.375,rtmp*0.375,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+8]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.2175*rtmp+xborder,
+- (absysize-y)-0.2175*rtmp+yborder,
+- rtmp*0.25,rtmp*0.25,0,360*64);
+- gdk_gc_set_foreground (gc, &colors[c*8+9]);
+- gdk_draw_arc(pixmap,gc,TRUE,x-0.155*rtmp+xborder,
+- (absysize-y)-0.155*rtmp+yborder,
+- rtmp*0.125,rtmp*0.125,0,360*64);
++ color_to_rgba (colors[c*8+2], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp / 2., 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+3], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.4375, 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+4], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.375, 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+5], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.3125, 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+6], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.25, 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+7], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.1875, 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+8], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.125, 0, 2 * M_PI);
++ cairo_fill (cr);
++ color_to_rgba (colors[c*8+9], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_arc (cr, x + xborder, absysize - y + yborder,
++ rtmp * 0.0625, 0, 2 * M_PI);
++ cairo_fill (cr);
+ }
+ }
+ }
+ }
+- g_object_unref(gc);
++ cairo_destroy (cr);
+ }
+
+
+@@ -147,7 +166,7 @@
+ struct xyzstruc *coords;
+ struct GlobalParams *params;
+
+-GdkPixmap *pixmap;
++cairo_surface_t *pixmap;
+ GdkColor *colors;
+
+ pixmap = DrawData.pixmap;
+@@ -297,7 +316,8 @@
+ /************************************************************************/
+ void cleardrawable(struct DrawStruct DrawData)
+ {
+-GdkGC *gc;
++GdkRGBA rgba;
++cairo_t *cr;
+ gint bgcol, fgcol;
+
+ if (DrawData.params->whitebg) {
+@@ -308,20 +328,24 @@
+ fgcol = 1;
+ }
+
+- gc = gdk_gc_new (DrawData.pixmap);
+- gdk_gc_set_foreground (gc, &DrawData.colors[bgcol]);
+- gdk_draw_rectangle (DrawData.pixmap, gc, TRUE, 0, 0,
+- DrawData.params->absxsize+2*xborder,
+- DrawData.params->absysize+2*yborder);
+- gdk_gc_set_foreground (gc, &DrawData.colors[fgcol]);
+- gdk_draw_rectangle (DrawData.pixmap, gc, TRUE, xborder-2, yborder-2,
+- DrawData.params->absxsize+4,
+- DrawData.params->absysize+4);
+- gdk_gc_set_foreground (gc, &DrawData.colors[bgcol]);
+- gdk_draw_rectangle (DrawData.pixmap, gc, TRUE, xborder, yborder,
+- DrawData.params->absxsize,
+- DrawData.params->absysize);
+- g_object_unref(gc);
++ cr = cairo_create (DrawData.pixmap);
++ color_to_rgba (DrawData.colors[bgcol], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_rectangle (cr, 0, 0, DrawData.params->absxsize + 2 * xborder,
++ DrawData.params->absysize + 2 * yborder);
++ cairo_fill (cr);
++ color_to_rgba (DrawData.colors[fgcol], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_rectangle (cr, xborder - 2, yborder - 2,
++ DrawData.params->absxsize + 4,
++ DrawData.params->absysize + 4);
++ cairo_fill (cr);
++ color_to_rgba (DrawData.colors[bgcol], &rgba);
++ gdk_cairo_set_source_rgba (cr, &rgba);
++ cairo_rectangle (cr, xborder, yborder, DrawData.params->absxsize,
++ DrawData.params->absysize);
++ cairo_fill (cr);
++ cairo_destroy (cr);
+ }
+
+
+--- gdpc.orig/main.c
++++ gdpc/main.c
+@@ -71,15 +71,15 @@
+ /************************************************************************/
+ /* This function is called when the pause button is pressed. */
+ /************************************************************************/
+-void pauseb (GtkWidget *widget, struct GlobalParams *params)
++void pauseb (GtkToggleButton *button, struct GlobalParams *params)
+ {
+ #if Debug
+-if (GTK_TOGGLE_BUTTON (widget)->active)
++if (gtk_toggle_button_get_active (button))
+ printf("Setting animation on pause.\n");
+ else printf("Unpausing animation.\n");
+ #endif
+
+- params->pausecheck = GTK_TOGGLE_BUTTON (widget)->active;
++ params->pausecheck = gtk_toggle_button_get_active (button);
+ }
+
+
+@@ -157,18 +157,15 @@
+ /* This function is called when the window is moved, resized etc. */
+ /* It redraws the drawingboard. */
+ /************************************************************************/
+-static gint expose_event(GtkWidget *widget, GdkEventExpose *event,
++static gint expose_event(GtkWidget *widget, cairo_t *cr,
+ struct GlobalParams *params)
+ {
+ #if Debug
+ printf("Expose: Drawing window.\n");
+ #endif
+
+- gdk_draw_drawable(widget->window,widget->style->white_gc,
+- DrawData.pixmap,
+- event->area.x, event->area.y,
+- event->area.x, event->area.y,
+- event->area.width, event->area.height);
++ cairo_set_source_surface (cr, DrawData.pixmap, 0, 0);
++ cairo_paint (cr);
+
+ return FALSE;
+ }
+@@ -181,18 +178,23 @@
+ gint configure_event (GtkWidget *widget, GdkEventConfigure *event,
+ struct GlobalParams *params)
+ {
++gint width, height;
++
+ #if Debug
+ printf("Configuring window.\n");
+ #endif
+
+- if (DrawData.pixmap) g_object_unref(DrawData.pixmap);
++ if (DrawData.pixmap) cairo_surface_destroy (DrawData.pixmap);
+
+- DrawData.pixmap = gdk_pixmap_new(widget->window,
+- widget->allocation.width,
+- widget->allocation.height, -1);
++ width = gtk_widget_get_allocated_width( widget);
++ height = gtk_widget_get_allocated_height (widget);
++ DrawData.pixmap
++ = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
++ CAIRO_CONTENT_COLOR,
++ width, height);
+
+- params->absxsize = widget->allocation.width-2*xborder;
+- params->absysize = widget->allocation.height-2*yborder;
++ params->absxsize = width - 2 * xborder;
++ params->absysize = height - 2 * yborder;
+
+ if (!params->redrawcheck) {
+ cleardrawable(DrawData);
+@@ -216,11 +218,11 @@
+ gpointer data)
+ {
+ switch (event->keyval) {
+- case GDK_Escape:
++ case GDK_KEY_Escape:
+ gtk_main_quit();
+ break;
+
+- case GDK_space:
++ case GDK_KEY_space:
+ MB_pressed = TRUE;
+ return FALSE;
+ break;
+@@ -296,27 +298,21 @@
+ gint motion_notify_event (GtkWidget *widget, GdkEventMotion *event,
+ struct GlobalParams *params)
+ {
+-gint x,y;
+ char xstr[64];
+-GdkModifierType state;
+ gint NumFrame;
+
+-#if Debug
+-printf("Fetching coordinates of pointer.\n");
+-#endif
+-
+- gdk_window_get_pointer (event->window, &x, &y, &state);
+-
+ if (params->pressed) {
+- if (params->xpress-x > ROTATETRESHOLD || params->ypress-y > ROTATETRESHOLD
+- || params->xpress-x < -ROTATETRESHOLD || params->ypress-y < -ROTATETRESHOLD) {
++ if (params->xpress-event->x > ROTATETRESHOLD
++ || params->ypress-event->y > ROTATETRESHOLD
++ || params->xpress-event->x < - ROTATETRESHOLD
++ || params->ypress-event->y < - ROTATETRESHOLD) {
+ #if Debug
+ printf("Starting rotating of scene.\n");
+ #endif
+- mouserotate(widget,(params->xpress-x),
+- (params->ypress-y),params);
+- params->xpress = x;
+- params->ypress = y;
++ mouserotate (widget, (params->xpress - event->x),
++ (params->ypress-event->y), params);
++ params->xpress = event->x;
++ params->ypress = event->y;
+ }
+ }
+
+@@ -329,9 +325,9 @@
+ #endif
+ sprintf(xstr, "X: %5.3f Y: %5.3f",
+ (((params->xmax2[NumFrame]-params->xmin2[NumFrame])
+- *(x-xborder)/(double) params->absxsize)+
++ *(event->x-xborder)/(double) params->absxsize)+
+ params->xmin2[NumFrame]),(((params->ymax2[NumFrame]
+- -params->ymin2[NumFrame])*(params->absysize-(y-yborder))/
++ -params->ymin2[NumFrame])*(params->absysize-(event->y-yborder))/
+ (double) params->absysize))+params->ymin2[NumFrame]);
+ gtk_entry_set_text ((GtkEntry *) coord_entry, xstr);
+
+@@ -467,9 +463,7 @@
+ printf("Writing out pixmap to window.\n");
+ #endif
+
+- gdk_draw_drawable(drawing_area->window,
+- drawing_area->style->white_gc,
+- DrawData.pixmap, 0, 0, 0, 0,
++ gtk_widget_queue_draw_area (drawing_area, 0, 0,
+ params->absxsize+2*xborder,
+ params->absysize+2*yborder);
+ #if Debug
+@@ -522,8 +516,7 @@
+ else sprintf(picname,"%s-%5.3f.jpg",
+ params->dumpname,FrameTime);
+ }
+- pixbuf = gdk_pixbuf_get_from_drawable(NULL,DrawData.pixmap,
+- gdk_colormap_get_system(),0,0,0,0,
++ pixbuf = gdk_pixbuf_get_from_surface (DrawData.pixmap, 0, 0,
+ params->absxsize+2*xborder,params->absysize+2*yborder);
+ if (pixbuf == NULL)
+ printf("Error making pixbuf!\n");
+@@ -558,9 +551,7 @@
+ #if Debug
+ printf("Writing out rotated frame pixmap to window.\n");
+ #endif
+- gdk_draw_drawable(drawing_area->window,
+- drawing_area->style->white_gc,
+- DrawData.pixmap, 0, 0, 0, 0,
++ gtk_widget_queue_draw_area (drawing_area, 0, 0,
+ params->absxsize+2*xborder,
+ params->absysize+2*yborder);
+ params->rotated = FALSE;
+@@ -647,17 +638,17 @@
+ G_CALLBACK (key_press_event), NULL);
+
+ /* Create boxes for outlay. */
+- vbox = gtk_vbox_new (FALSE, 0);
+- hbox = gtk_hbox_new (FALSE, 5);
+- vboxleft = gtk_vbox_new (FALSE, 3);
+- vboxmiddle = gtk_vbox_new (FALSE, 3);
+- vboxright = gtk_vbox_new (FALSE, 3);
+- hboxsetup = gtk_hbox_new (FALSE, 3);
+- vboxrb = gtk_vbox_new (FALSE, 3);
+- vboxcoord = gtk_vbox_new (FALSE, 3);
+- hboxx = gtk_hbox_new (FALSE, 3);
+- hboxy = gtk_hbox_new (FALSE, 3);
+- hboxz = gtk_hbox_new (FALSE, 3);
++ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
++ vboxleft = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxmiddle = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxright = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ hboxsetup = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++ vboxrb = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxcoord = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ hboxx = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++ hboxy = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++ hboxz = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+
+ xlabel = gtk_label_new(" X ");
+@@ -675,7 +666,7 @@
+ TRUE, TRUE, 0);
+
+ /* Connect the events to their procedures. */
+- g_signal_connect (G_OBJECT (drawing_area), "expose_event",
++ g_signal_connect (G_OBJECT (drawing_area), "draw",
+ G_CALLBACK (expose_event), params);
+
+ g_signal_connect (G_OBJECT (drawing_area), "configure_event",
+@@ -729,7 +720,7 @@
+ reseto_button = gtk_button_new_with_mnemonic ("Reset _Orientation");
+ gtk_box_pack_start (GTK_BOX (vboxright), reseto_button, TRUE, TRUE, 0);
+ g_signal_connect (G_OBJECT (reseto_button), "clicked",
+- G_CALLBACK (resetob),GTK_OBJECT (window));
++ G_CALLBACK (resetob), params);
+
+ /* Create restart button. */
+ restart_button = gtk_button_new_with_mnemonic ("_Restart");
+@@ -746,14 +737,18 @@
+ /* Create pause button. */
+ pause_button = gtk_toggle_button_new_with_mnemonic ("_Pause");
+ gtk_box_pack_start (GTK_BOX (vboxmiddle), pause_button, TRUE, TRUE, 0);
+- g_signal_connect (G_OBJECT (pause_button), "clicked",
++ g_signal_connect (G_OBJECT (pause_button), "toggled",
+ G_CALLBACK (pauseb),(gpointer) params);
+
+ /* Create quit button. */
+- quit_button = gtk_button_new_from_stock (GTK_STOCK_QUIT);
++ quit_button = gtk_button_new_with_mnemonic ("_Quit");
++ gtk_button_set_image (GTK_BUTTON (quit_button),
++ gtk_image_new_from_icon_name ("application-exit",
++ GTK_ICON_SIZE_BUTTON));
++ gtk_button_set_always_show_image (GTK_BUTTON (quit_button), TRUE);
+ gtk_box_pack_start (GTK_BOX (vboxright), quit_button, TRUE, TRUE, 0);
+ g_signal_connect (G_OBJECT (quit_button), "clicked",
+- G_CALLBACK (quit),GTK_OBJECT (window));
++ G_CALLBACK (quit), NULL);
+
+ xminus10_button = gtk_button_new_with_label ("<<");
+ gtk_box_pack_start (GTK_BOX (hboxx), xminus10_button, TRUE, TRUE, 0);
+@@ -810,7 +805,7 @@
+ G_CALLBACK (zplus10b),(gpointer) params);
+
+ g_signal_connect (G_OBJECT (window), "destroy",
+- G_CALLBACK (quit),GTK_OBJECT (window));
++ G_CALLBACK (quit), NULL);
+
+ /* Put the hbox into the vbox. */
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+--- gdpc.orig/parameters.h
++++ gdpc/parameters.h
+@@ -190,7 +190,7 @@
+ /* Declaration of structure used for passing information to drawing functions */
+
+ struct DrawStruct {
+-GdkPixmap *pixmap;
++cairo_surface_t *pixmap;
+ GdkColor *colors;
+ struct GlobalParams *params;
+ gint NumFrame;
+--- gdpc.orig/setup.c
++++ gdpc/setup.c
+@@ -72,8 +72,8 @@
+ dialog = gtk_file_chooser_dialog_new ("Open File",
+ GTK_WINDOW (setupwin),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
++ "_Cancel", GTK_RESPONSE_CANCEL,
++ "_Open", GTK_RESPONSE_ACCEPT,
+ NULL);
+
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+@@ -465,13 +465,13 @@
+ /************************************************************************/
+ void toggle_erase(GtkWidget *widget, gpointer data)
+ {
+- newparams.erase=(GTK_TOGGLE_BUTTON (widget)->active);
++ newparams.erase=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ }
+
+
+ void toggle_usetypes(GtkWidget *widget, gpointer data)
+ {
+- newparams.usetypes=(GTK_TOGGLE_BUTTON (widget)->active);
++ newparams.usetypes=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ }
+
+
+@@ -517,7 +517,7 @@
+ /************************************************************************/
+ void toggle_white (GtkWidget *widget, gpointer data)
+ {
+- newparams.whitebg=(GTK_TOGGLE_BUTTON (widget)->active);
++ newparams.whitebg=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ }
+
+
+@@ -526,7 +526,7 @@
+ /************************************************************************/
+ void toggle_sortr (GtkWidget *widget, gpointer data)
+ {
+- if (GTK_TOGGLE_BUTTON (widget)->active) {
++ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+ newparams.sort=2;
+ }
+ else {
+@@ -542,10 +542,10 @@
+ /************************************************************************/
+ void toggle_scol (GtkWidget *widget, gpointer data)
+ {
+- usescol=GTK_TOGGLE_BUTTON(widget)->active;
+- gtk_widget_set_sensitive (scol_label,GTK_TOGGLE_BUTTON(widget)->active);
+- gtk_widget_set_sensitive (scol_entry,GTK_TOGGLE_BUTTON(widget)->active);
+- gtk_widget_set_sensitive (scolspinner,GTK_TOGGLE_BUTTON(widget)->active);
++ usescol = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
++ gtk_widget_set_sensitive (scol_label, usescol);
++ gtk_widget_set_sensitive (scol_entry, usescol);
++ gtk_widget_set_sensitive (scolspinner, usescol);
+ filechange(widget,data);
+ }
+
+@@ -634,29 +634,29 @@
+ g_signal_connect (G_OBJECT (setupwin),"destroy", G_CALLBACK (destroy), &setupwin);
+
+ /* Create boxes for layout. */
+- vbox_main = gtk_vbox_new (FALSE, 10);
+- vbox_header = gtk_vbox_new (FALSE, 10);
+- hbox_main = gtk_hbox_new (FALSE, 30);
+- vbox = gtk_vbox_new (FALSE, 3);
+- hbox1 = gtk_hbox_new (FALSE, 3);
+- hbox2 = gtk_hbox_new (FALSE, 30);
+- hbox3 = gtk_hbox_new (FALSE, 30);
+- hboxssize = gtk_hbox_new (FALSE, 0);
+- hboxd = gtk_hbox_new (FALSE, 0);
+- hboxsc = gtk_hbox_new (FALSE, 0);
+- hbox_cube = gtk_hbox_new (FALSE, 3);
+- hboxcube = gtk_hbox_new (FALSE, 3);
+- vboxcubel = gtk_vbox_new (FALSE, 3);
+- vboxcuber = gtk_vbox_new (FALSE, 3);
+- vboxcuberm = gtk_vbox_new (FALSE, 3);
+- hboxxc = gtk_hbox_new (FALSE, 0);
+- vboxxcl = gtk_vbox_new (FALSE, 0);
+- vboxxcr = gtk_vbox_new (FALSE, 0);
+- hboxsleep = gtk_hbox_new (FALSE, 0);
+- hboxtd = gtk_hbox_new (FALSE, 0);
+- vboxleft = gtk_vbox_new (FALSE, 3);
+- vboxright = gtk_vbox_new (FALSE, 3);
+- vboxmostright = gtk_vbox_new (FALSE, 3);
++ vbox_main = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
++ vbox_header = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
++ hbox_main = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 30);
++ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++ hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 30);
++ hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 30);
++ hboxssize = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++ hboxd = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++ hboxsc = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++ hbox_cube = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++ hboxcube = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
++ vboxcubel = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxcuber = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxcuberm = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ hboxxc = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++ vboxxcl = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
++ vboxxcr = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
++ hboxsleep = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++ hboxtd = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++ vboxleft = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxright = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
++ vboxmostright = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
+ gtk_container_add (GTK_CONTAINER (setupwin), vbox_main);
+
+ gtk_box_pack_start (GTK_BOX (vbox_main), vbox_header, FALSE, FALSE, 0);
+@@ -665,7 +665,7 @@
+ gtk_box_pack_start (GTK_BOX (hbox_main), vbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox_main), vboxmostright, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox1, FALSE, FALSE, 0);
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 3);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox2), vboxleft, FALSE, FALSE, 0);
+@@ -673,7 +673,7 @@
+
+ header = gtk_label_new(" Setup ");
+ gtk_box_pack_start (GTK_BOX (vbox_header), header, FALSE, TRUE, 0);
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vbox_header), separator, FALSE, TRUE, 3);
+
+ file_label = gtk_label_new("Input file : ");
+@@ -711,7 +711,7 @@
+ gtk_box_pack_start (GTK_BOX (vboxleft), hboxssize, TRUE, TRUE, 0);
+
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);
+
+ cxyz_label = gtk_label_new("Simulation box size");
+@@ -813,7 +813,7 @@
+ gtk_widget_set_tooltip_text(y2spinner,maxtt);
+ gtk_widget_set_tooltip_text(z2spinner,maxtt);
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);
+
+ column_label = gtk_label_new("Input data column representations");
+@@ -863,7 +863,7 @@
+ gtk_box_pack_start (GTK_BOX (vboxxcr), tcspinner, TRUE, TRUE, 0);
+ gtk_widget_set_tooltip_text(tcspinner,tcoltt);
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);
+
+ timedel_entry = gtk_entry_new();
+@@ -912,7 +912,7 @@
+ else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (usetypescheck), FALSE);
+ gtk_widget_set_tooltip_text(usetypescheck,coltypett);
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxright), separator, FALSE, TRUE, 3);
+
+ draw_label = gtk_label_new(" Drawing options ");
+@@ -972,7 +972,7 @@
+ if (params->vary==2) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
+
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxright), separator, FALSE, TRUE, 3);
+
+ scoltoggle=gtk_check_button_new_with_label("Only use inputlines with string :");
+@@ -1036,7 +1036,7 @@
+ G_CALLBACK (toggle_checkc4),G_OBJECT (setupwin));
+ if (params->colorset==4) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxmostright), separator, FALSE, TRUE, 3);
+
+ misc_label = gtk_label_new("Misc. settings");
+@@ -1070,7 +1070,7 @@
+ gtk_box_pack_start (GTK_BOX (hboxsleep), sleepspinner, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vboxmostright), hboxsleep, TRUE, TRUE, 0);
+
+- separator = gtk_hseparator_new ();
++ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_box_pack_start (GTK_BOX (vboxmostright), separator, FALSE, TRUE, 3);
+
+ dump_label = gtk_label_new(" Dumped pictures name (no extension) : ");
+@@ -1086,7 +1086,7 @@
+ dncheck = gtk_radio_button_new_with_label(group, " Add frame number");
+ gtk_widget_set_sensitive (dncheck, FALSE);
+
+- okeyb = gtk_button_new_from_stock (GTK_STOCK_OK);
++ okeyb = gtk_button_new_with_mnemonic ("_OK");
+
+ dumpcheck = gtk_radio_button_new_with_label(NULL, " Do not dump images");
+ gtk_box_pack_start (GTK_BOX (vboxmostright),dumpcheck, TRUE, TRUE, 0);
+@@ -1134,17 +1134,25 @@
+ gtk_box_pack_start (GTK_BOX (hbox3),okeyb, TRUE, TRUE, 0);
+ if (!params->StartedAlready) gtk_widget_set_sensitive (okeyb, FALSE);
+
+- cancelb = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
++ cancelb = gtk_button_new_with_mnemonic ("_Cancel");
+ g_signal_connect (G_OBJECT (cancelb), "clicked", G_CALLBACK (cancelpressed),(gpointer) params);
+ gtk_box_pack_start (GTK_BOX (hbox3),cancelb, TRUE, TRUE, 0);
+ if (!params->StartedAlready) gtk_widget_set_sensitive (cancelb, FALSE);
+
+- redrawb = gtk_button_new_from_stock (GTK_STOCK_REFRESH);
++ redrawb = gtk_button_new_with_mnemonic ("_Refresh");
++ gtk_button_set_image (GTK_BUTTON (redrawb),
++ gtk_image_new_from_icon_name ("view-refresh",
++ GTK_ICON_SIZE_BUTTON));
++ gtk_button_set_always_show_image (GTK_BUTTON (redrawb), TRUE);
+ g_signal_connect (G_OBJECT (redrawb), "clicked", G_CALLBACK (redrawpressed),(gpointer) params);
+ gtk_box_pack_start (GTK_BOX (hbox3),redrawb, TRUE, TRUE, 0);
+ if (!params->StartedAlready) gtk_widget_set_sensitive (redrawb, FALSE);
+
+- quitb = gtk_button_new_from_stock (GTK_STOCK_QUIT);
++ quitb = gtk_button_new_with_mnemonic ("_Quit");
++ gtk_button_set_image (GTK_BUTTON (quitb),
++ gtk_image_new_from_icon_name ("application-exit",
++ GTK_ICON_SIZE_BUTTON));
++ gtk_button_set_always_show_image (GTK_BUTTON (quitb), TRUE);
+ g_signal_connect (G_OBJECT (quitb), "clicked", G_CALLBACK (quitpressed),(gpointer) params);
+ gtk_box_pack_start (GTK_BOX (hbox3),quitb, TRUE, TRUE, 0);
+
=====================================
debian/patches/series
=====================================
@@ -6,3 +6,4 @@ hardening.patch
fix_segfault.patch
spelling.patch
cross.patch
+gtk3.patch
View it on GitLab: https://salsa.debian.org/med-team/gdpc/-/compare/15a0188c9c2c63eb1df2132316b00f55efcff404...51073a7720c0d6d58c42e5adda7f2ecbb9bb6381
--
View it on GitLab: https://salsa.debian.org/med-team/gdpc/-/compare/15a0188c9c2c63eb1df2132316b00f55efcff404...51073a7720c0d6d58c42e5adda7f2ecbb9bb6381
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260125/c2b49aad/attachment-0001.htm>
More information about the debian-med-commit
mailing list