texlive[62999] Build/source/texk/web2c/hitexdir/hintview/src: HINT:

commits+mruckert at tug.org commits+mruckert at tug.org
Mon Apr 11 15:41:03 CEST 2022


Revision: 62999
          http://tug.org/svn/texlive?view=revision&revision=62999
Author:   mruckert
Date:     2022-04-11 15:41:03 +0200 (Mon, 11 Apr 2022)
Log Message:
-----------
HINT: replacing texture2d (decprecated), adding an optional gtk open file dialog

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/hitexdir/hintview/src/main.c
    trunk/Build/source/texk/web2c/hitexdir/hintview/src/renderOGL.c

Modified: trunk/Build/source/texk/web2c/hitexdir/hintview/src/main.c
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hintview/src/main.c	2022-04-11 13:39:51 UTC (rev 62998)
+++ trunk/Build/source/texk/web2c/hitexdir/hintview/src/main.c	2022-04-11 13:41:03 UTC (rev 62999)
@@ -147,6 +147,77 @@
   return 0;
 }
 
+
+static int set_hin_name(char *fn)
+{  size_t sl;
+  if (hin_name!=NULL) { free(hin_name); hin_name=NULL; }
+  { hin_name=malloc(strlen(fn)+1);
+    if (hin_name==NULL)
+    { herror("Out of memory for file name", fn);
+      return 0;
+    }
+    strcpy(hin_name,fn);
+  }
+  sl=strlen(hin_name);
+  if (sl>4 && strncmp(hin_name+sl-4,".hnt",4)!=0)
+  {  herror("Unknown File Type,I dont know how to open this file", hin_name);
+    return 0;
+  }
+  return 1;
+}
+
+#if (WITH_GTK==2) ||  (WITH_GTK==3)
+#include <gtk/gtk.h>
+
+static int file_chooser(void)
+{ GtkWidget *dialog;
+  GtkFileFilter *filter;
+  gint res;
+
+  if ( !gtk_init_check( NULL, NULL ) )
+  { fprintf(stderr,"ERROR: Unable to initialize GTK\n");
+       return 0;
+  }
+
+  dialog = gtk_file_chooser_dialog_new ("Open File",
+					NULL,/* no parent */
+                                      GTK_FILE_CHOOSER_ACTION_OPEN,
+                                      "_Cancel", GTK_RESPONSE_CANCEL,
+                                      "_Open", GTK_RESPONSE_ACCEPT,
+                                      NULL);
+  
+  filter = gtk_file_filter_new();
+  gtk_file_filter_set_name( filter, "HINT file" );
+  gtk_file_filter_add_pattern( filter, "*.hnt");
+  gtk_file_chooser_add_filter( GTK_FILE_CHOOSER(dialog), filter );
+
+  res = gtk_dialog_run (GTK_DIALOG (dialog));
+  if (res == GTK_RESPONSE_ACCEPT)
+  { char *fn;
+    fn = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+    res=set_hin_name(fn);
+    g_free (fn);
+  }
+  else
+    res=0;
+  gtk_widget_destroy (dialog);
+  while (gtk_events_pending()) gtk_main_iteration();
+  return res;
+}
+#else
+static int file_chooser(void)
+{ return 0; }
+#endif
+
+
+static int set_input_file(char *fn)
+{ 
+  if (fn!=NULL)
+    return set_hin_name(fn);
+  else  
+    return file_chooser();
+}
+
 int dark = 0, loading=0, autoreload=0, home=0;
 
 int usage(void)
@@ -174,8 +245,7 @@
 }
 
 int command_line(int argc, char *argv[])
-{ size_t sl;
-  int i;
+{ int i;
   for (i=1; argv[i]!=NULL && argv[i][0]=='-'; i++)
     { switch (argv[i][1])
       { case '-':
@@ -194,17 +264,9 @@
         default: return usage();
       }
     }
-  if (argv[i]==NULL)
+  if (!set_input_file(argv[i]))
     return usage();
-  if (hin_name!=NULL) free(hin_name);
-  hin_name=malloc(strlen(argv[i])+1);
-  if (hin_name==NULL)
-    return herror("Out of memory for file name", argv[i]);
-  strcpy(hin_name,argv[i]);
-  sl=strlen(hin_name);
-  if (sl>4 && strncmp(hin_name+sl-4,".hnt",4)!=0)
-    return herror("Unknown File Type,I dont know how to open this file", argv[1]);
-return 1;	
+  return 1;	
 }
 
 GLFWcursor *drag_cursor, *hand_cursor, *arrow_cursor;
@@ -265,11 +327,13 @@
     }
     clear_cursor();
     break;
+  case CTRL(GLFW_KEY_S): /* search */
     break;
-  case CTRL(GLFW_KEY_F): /* find */
+  case CTRL(GLFW_KEY_F): /* file */
+    if (set_input_file(NULL))
+      open_file(home);
     break;
-  case CTRL(GLFW_KEY_O): /* outlines */
-    break;
+   case CTRL(GLFW_KEY_O): /* outlines */
   default:
     // LOG("key %d, scan %d, action %d, mosd %d\n",key, scancode, action, mods);
     break;
@@ -416,7 +480,6 @@
   hint_resize(px_h,px_v,scale*x_dpi,scale*y_dpi);
   if (!open_file(home))
     return 1;
-  hint_page_home();
   if (setjmp(error_exit)==0)
     do
     { hint_render();

Modified: trunk/Build/source/texk/web2c/hitexdir/hintview/src/renderOGL.c
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hintview/src/renderOGL.c	2022-04-11 13:39:51 UTC (rev 62998)
+++ trunk/Build/source/texk/web2c/hitexdir/hintview/src/renderOGL.c	2022-04-11 13:41:03 UTC (rev 62999)
@@ -90,7 +90,7 @@
   "uniform int Image;\n"
 
   "void main()\n"
-  "{ vec4 texColor = texture2D( theTexture, UV );\n"
+  "{ vec4 texColor = texture( theTexture, UV );\n"
     "if (Image==1) color = texColor;\n"
     "else\n"
     "{ color.a = pow(texColor.r,Gamma);\n"



More information about the tex-live-commits mailing list.