fix native dialogs and some formatting
This commit is contained in:
parent
f09eb322dc
commit
e6067fb642
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…
Reference in New Issue
Block a user