fix native dialogs and some formatting
This commit is contained in:
		
							parent
							
								
									f09eb322dc
								
							
						
					
					
						commit
						e6067fb642
					
				
					 1 changed files with 62 additions and 49 deletions
				
			
		
							
								
								
									
										111
									
								
								xchat-wdk.patch
									
										
									
									
									
								
							
							
						
						
									
										111
									
								
								xchat-wdk.patch
									
										
									
									
									
								
							| 
						 | 
					@ -931,7 +931,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/editlist.c xchat-wdk/src
 | 
				
			||||||
 #include <sys/stat.h>
 | 
					 #include <sys/stat.h>
 | 
				
			||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/fe-gtk.c xchat-wdk/src/fe-gtk/fe-gtk.c
 | 
					diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/fe-gtk.c xchat-wdk/src/fe-gtk/fe-gtk.c
 | 
				
			||||||
--- xchat-wdk.orig/src/fe-gtk/fe-gtk.c	2010-08-14 03:46:21 +0200
 | 
					--- xchat-wdk.orig/src/fe-gtk/fe-gtk.c	2010-08-14 03:46:21 +0200
 | 
				
			||||||
+++ xchat-wdk/src/fe-gtk/fe-gtk.c	2010-10-09 12:53:27 +0200
 | 
					+++ xchat-wdk/src/fe-gtk/fe-gtk.c	2010-10-09 14:32:05 +0200
 | 
				
			||||||
@@ -19,7 +19,6 @@
 | 
					@@ -19,7 +19,6 @@
 | 
				
			||||||
 #include <stdio.h>
 | 
					 #include <stdio.h>
 | 
				
			||||||
 #include <string.h>
 | 
					 #include <string.h>
 | 
				
			||||||
| 
						 | 
					@ -991,7 +991,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/fkeys.c xchat-wdk/src/fe
 | 
				
			||||||
 #include <ctype.h>
 | 
					 #include <ctype.h>
 | 
				
			||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/fe-gtk/gtkutil.c
 | 
					diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/fe-gtk/gtkutil.c
 | 
				
			||||||
--- xchat-wdk.orig/src/fe-gtk/gtkutil.c	2009-07-18 14:38:10 +0200
 | 
					--- xchat-wdk.orig/src/fe-gtk/gtkutil.c	2009-07-18 14:38:10 +0200
 | 
				
			||||||
+++ xchat-wdk/src/fe-gtk/gtkutil.c	2010-10-09 12:53:27 +0200
 | 
					+++ xchat-wdk/src/fe-gtk/gtkutil.c	2010-10-09 15:20:02 +0200
 | 
				
			||||||
@@ -22,7 +22,6 @@
 | 
					@@ -22,7 +22,6 @@
 | 
				
			||||||
 #include <stdarg.h>
 | 
					 #include <stdarg.h>
 | 
				
			||||||
 #include <sys/types.h>
 | 
					 #include <sys/types.h>
 | 
				
			||||||
| 
						 | 
					@ -1025,7 +1025,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static char last_dir[256] = "";
 | 
					 static char last_dir[256] = "";
 | 
				
			||||||
@@ -164,6 +174,196 @@
 | 
					@@ -164,6 +174,205 @@
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
| 
						 | 
					@ -1055,12 +1055,20 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/
 | 
				
			||||||
+win32_savefile (char *file_buf, int file_buf_len, char *title_text, char *filter,
 | 
					+win32_savefile (char *file_buf, int file_buf_len, char *title_text, char *filter,
 | 
				
			||||||
+               int multiple)
 | 
					+               int multiple)
 | 
				
			||||||
+{
 | 
					+{
 | 
				
			||||||
 | 
					+	/* we need the filter to get the default filename. it is from fe-gtk.c (fe_confirm);
 | 
				
			||||||
 | 
					+	 * but that filter is actually the whole filename, so apply an empty filter and all good.
 | 
				
			||||||
 | 
					+	 * in win32_thread2 we copy the filter ( = the filename) after the last dir into our
 | 
				
			||||||
 | 
					+	 * LPTSTR file buffer to make it actually work. the docs for this amazingly retard api:
 | 
				
			||||||
 | 
					+	 *
 | 
				
			||||||
 | 
					+	 * http://msdn.microsoft.com/en-us/library/ms646839%28VS.85%29.aspx
 | 
				
			||||||
 | 
					+	 */
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
+    OPENFILENAME o;
 | 
					+    OPENFILENAME o;
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+    memset (&o, 0, sizeof (o));
 | 
					+    memset (&o, 0, sizeof (o));
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+    o.lStructSize = sizeof (o);
 | 
					+    o.lStructSize = sizeof (o);
 | 
				
			||||||
+    o.lpstrFilter = filter;
 | 
					+    o.lpstrFilter = "All files\0*.*\0\0";
 | 
				
			||||||
+    o.lpstrFile = file_buf;
 | 
					+    o.lpstrFile = file_buf;
 | 
				
			||||||
+    o.nMaxFile = file_buf_len;
 | 
					+    o.nMaxFile = file_buf_len;
 | 
				
			||||||
+    o.lpstrTitle = title_text;
 | 
					+    o.lpstrTitle = title_text;
 | 
				
			||||||
| 
						 | 
					@ -1118,44 +1126,45 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/
 | 
				
			||||||
+static void *
 | 
					+static void *
 | 
				
			||||||
+win32_thread2 (struct file_req *freq)
 | 
					+win32_thread2 (struct file_req *freq)
 | 
				
			||||||
+{
 | 
					+{
 | 
				
			||||||
+    char buf[1024 + 32];
 | 
					+	char buf[1024 + 32];
 | 
				
			||||||
+    char file[1024];
 | 
					+	char file[1024];
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+    memset (file, 0, sizeof (file));
 | 
					+	memset (file, 0, sizeof (file));
 | 
				
			||||||
+    safe_strcpy (file, last_dir, sizeof (file));
 | 
					+	safe_strcpy (file, last_dir, sizeof (file));
 | 
				
			||||||
 | 
					+	safe_strcpy (file, freq->filter, sizeof (file));
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+    if (win32_savefile (file, sizeof (file), freq->title, freq->filter, freq->multiple))
 | 
					+	if (win32_savefile (file, sizeof (file), freq->title, NULL, freq->multiple))
 | 
				
			||||||
+    {
 | 
					+	{
 | 
				
			||||||
+        if (freq->multiple)
 | 
					+		if (freq->multiple)
 | 
				
			||||||
+        {
 | 
					+		{
 | 
				
			||||||
+            char *f = file;
 | 
					+			char *f = file;
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+            if (f[strlen (f) + 1] == 0)    /* only selected one file */
 | 
					+			if (f[strlen (f) + 1] == 0)    /* only selected one file */
 | 
				
			||||||
+            {
 | 
					+			{
 | 
				
			||||||
+                snprintf (buf, sizeof (buf), "1\n%s\n", file);
 | 
					+				snprintf (buf, sizeof (buf), "1\n%s\n", file);
 | 
				
			||||||
+                write (freq->th->pipe_fd[1], buf, strlen (buf));
 | 
					+				write (freq->th->pipe_fd[1], buf, strlen (buf));
 | 
				
			||||||
+            } else
 | 
					+			} else
 | 
				
			||||||
+            {
 | 
					+			{
 | 
				
			||||||
+                f += strlen (f) + 1; /* skip first, it's only the dir */
 | 
					+				f += strlen (f) + 1; /* skip first, it's only the dir */
 | 
				
			||||||
+                while (f[0])
 | 
					+				while (f[0])
 | 
				
			||||||
+                {
 | 
					+				{
 | 
				
			||||||
+                    snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f);
 | 
					+					snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f);
 | 
				
			||||||
+                    write (freq->th->pipe_fd[1], buf, strlen (buf));
 | 
					+					write (freq->th->pipe_fd[1], buf, strlen (buf));
 | 
				
			||||||
+                    f += strlen (f) + 1;
 | 
					+					f += strlen (f) + 1;
 | 
				
			||||||
+                }
 | 
					+				}
 | 
				
			||||||
+            }
 | 
					+			}
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+        } else
 | 
					+		} else
 | 
				
			||||||
+        {
 | 
					+		{
 | 
				
			||||||
+            snprintf (buf, sizeof (buf), "1\n%s\n", file);
 | 
					+			snprintf (buf, sizeof (buf), "1\n%s\n", file);
 | 
				
			||||||
+            write (freq->th->pipe_fd[1], buf, strlen (buf));
 | 
					+			write (freq->th->pipe_fd[1], buf, strlen (buf));
 | 
				
			||||||
+        }
 | 
					+		}
 | 
				
			||||||
+    }
 | 
					+	}
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+    write (freq->th->pipe_fd[1], "0\n", 2);
 | 
					+	write (freq->th->pipe_fd[1], "0\n", 2);
 | 
				
			||||||
+    Sleep (2000);
 | 
					+	Sleep (2000);
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+    return NULL;
 | 
					+	return NULL;
 | 
				
			||||||
+}
 | 
					+}
 | 
				
			||||||
+   
 | 
					+   
 | 
				
			||||||
+static int
 | 
					+static int
 | 
				
			||||||
| 
						 | 
					@ -1222,7 +1231,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/
 | 
				
			||||||
 void
 | 
					 void
 | 
				
			||||||
 gtkutil_file_req (const char *title, void *callback, void *userdata, char *filter,
 | 
					 gtkutil_file_req (const char *title, void *callback, void *userdata, char *filter,
 | 
				
			||||||
 						int flags)
 | 
					 						int flags)
 | 
				
			||||||
@@ -172,6 +372,54 @@
 | 
					@@ -172,6 +381,58 @@
 | 
				
			||||||
 	GtkWidget *dialog;
 | 
					 	GtkWidget *dialog;
 | 
				
			||||||
 	extern char *get_xdir_fs (void);
 | 
					 	extern char *get_xdir_fs (void);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
| 
						 | 
					@ -1237,14 +1246,15 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/
 | 
				
			||||||
+		freq->userdata = userdata;
 | 
					+		freq->userdata = userdata;
 | 
				
			||||||
+		freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0);
 | 
					+		freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0);
 | 
				
			||||||
+		if (!filter)
 | 
					+		if (!filter)
 | 
				
			||||||
+			freq->filter = "All files\000*.*\000"
 | 
					+		{
 | 
				
			||||||
+								"EXE files\000*.EXE\000"
 | 
					+			freq->filter =	"All files\0*.*\0"
 | 
				
			||||||
+								"MP3 files\000*.MP3\000"
 | 
					+							"Executables\0*.exe\0"
 | 
				
			||||||
+								"MPEG files\000*.MPG;*.MPEG\000"
 | 
					+							"ZIP files\0*.zip\0\0";
 | 
				
			||||||
+								"RAR files\000*.RAR\000"
 | 
					+		}
 | 
				
			||||||
+								"ZIP files\000*.ZIP\000";
 | 
					 | 
				
			||||||
+		else
 | 
					+		else
 | 
				
			||||||
 | 
					+		{
 | 
				
			||||||
+			freq->filter = filter;
 | 
					+			freq->filter = filter;
 | 
				
			||||||
 | 
					+		}
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+		thread_start (freq->th, win32_thread, freq);
 | 
					+		thread_start (freq->th, win32_thread, freq);
 | 
				
			||||||
+		fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq);
 | 
					+		fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq);
 | 
				
			||||||
| 
						 | 
					@ -1262,10 +1272,13 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/
 | 
				
			||||||
+		freq->userdata = userdata;
 | 
					+		freq->userdata = userdata;
 | 
				
			||||||
+		freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0);
 | 
					+		freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0);
 | 
				
			||||||
+		if (!filter)
 | 
					+		if (!filter)
 | 
				
			||||||
+		freq->filter = "Text files\000*.TXT\000"
 | 
					+		{
 | 
				
			||||||
+						"All files\000*.*\000";
 | 
					+			freq->filter = "All files\0*.*\0\0";
 | 
				
			||||||
 | 
					+		}
 | 
				
			||||||
+		else
 | 
					+		else
 | 
				
			||||||
+		freq->filter = filter;
 | 
					+		{
 | 
				
			||||||
 | 
					+			freq->filter = filter;
 | 
				
			||||||
 | 
					+		}
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+		thread_start (freq->th, win32_thread2, freq);
 | 
					+		thread_start (freq->th, win32_thread2, freq);
 | 
				
			||||||
+		fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq);
 | 
					+		fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq);
 | 
				
			||||||
| 
						 | 
					@ -1581,7 +1594,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
 | 
				
			||||||
 	return 1;       /* return 1 for success */
 | 
					 	return 1;       /* return 1 for success */
 | 
				
			||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugingui.c xchat-wdk/src/fe-gtk/plugingui.c
 | 
					diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugingui.c xchat-wdk/src/fe-gtk/plugingui.c
 | 
				
			||||||
--- xchat-wdk.orig/src/fe-gtk/plugingui.c	2010-05-16 05:20:22 +0200
 | 
					--- xchat-wdk.orig/src/fe-gtk/plugingui.c	2010-05-16 05:20:22 +0200
 | 
				
			||||||
+++ xchat-wdk/src/fe-gtk/plugingui.c	2010-10-09 12:53:27 +0200
 | 
					+++ xchat-wdk/src/fe-gtk/plugingui.c	2010-10-09 15:11:47 +0200
 | 
				
			||||||
@@ -35,7 +35,7 @@
 | 
					@@ -35,7 +35,7 @@
 | 
				
			||||||
 #include "../common/xchat.h"
 | 
					 #include "../common/xchat.h"
 | 
				
			||||||
 #define PLUGIN_C
 | 
					 #define PLUGIN_C
 | 
				
			||||||
| 
						 | 
					@ -1597,8 +1610,8 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugingui.c xchat-wdk/sr
 | 
				
			||||||
 	gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb,
 | 
					 	gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb,
 | 
				
			||||||
-							current_sess, NULL, FRF_ADDFOLDER);
 | 
					-							current_sess, NULL, FRF_ADDFOLDER);
 | 
				
			||||||
+							current_sess,
 | 
					+							current_sess,
 | 
				
			||||||
+							"Plugins and Scripts\000"	"*.dll;*.pl;*.tcl;*.py;*.lua\000"
 | 
					+							"Plugins and Scripts\0*.dll;*.lua;*.pl;*.py;*.tcl\0"
 | 
				
			||||||
+							"All files\000"				"*.*\000", 0);
 | 
					+							"All files\0*.*\0\0", 0);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static void
 | 
					 static void
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue