Revision: 4914 http://geany.svn.sourceforge.net/geany/?rev=4914&view=rev Author: eht16 Date: 2010-05-15 11:57:40 +0000 (Sat, 15 May 2010)
Log Message: ----------- Remove old code. Pass and use also parent and title arguments to win32_show_document_open_dialog().
Modified Paths: -------------- trunk/ChangeLog trunk/src/win32.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-05-15 11:47:22 UTC (rev 4913) +++ trunk/ChangeLog 2010-05-15 11:57:40 UTC (rev 4914) @@ -3,6 +3,10 @@ * src/win32.c: Sort file filters for the native Windows file open dialog by name. Don't use file filters for the native Windows Save As dialog. + * src/dialogs.c, src/win32.c, src/win32.h: + Remove old code. + Pass and use also parent and title arguments to + win32_show_document_open_dialog().
2010-05-15 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
Modified: trunk/src/win32.c =================================================================== --- trunk/src/win32.c 2010-05-15 11:47:22 UTC (rev 4913) +++ trunk/src/win32.c 2010-05-15 11:57:40 UTC (rev 4914) @@ -339,19 +339,23 @@
/* initial_dir can be NULL to use the current working directory. * Returns: TRUE if the dialog was not cancelled. */ -gboolean win32_show_document_open_dialog(gboolean file_open, const gchar *initial_dir) +gboolean win32_show_document_open_dialog(GtkWindow *parent, const gchar *title, const gchar *initial_dir) { OPENFILENAMEW of; gint retval; + guint x; gchar tmp[MAX_PATH]; wchar_t fname[MAX_PATH]; wchar_t w_dir[MAX_PATH]; + wchar_t w_title[512];
fname[0] = '\0';
if (initial_dir != NULL) MultiByteToWideChar(CP_UTF8, 0, initial_dir, -1, w_dir, sizeof(w_dir));
+ MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, sizeof(w_title)); + /* initialise file dialog info struct */ memset(&of, 0, sizeof of); #ifdef OPENFILENAME_SIZE_VERSION_400 @@ -359,7 +363,7 @@ #else of.lStructSize = sizeof of; #endif - of.hwndOwner = GDK_WINDOW_HWND(main_widgets.window->window); + of.hwndOwner = GDK_WINDOW_HWND(GTK_WIDGET(parent)->window); of.lpstrFilter = get_file_filters();
of.lpstrCustomFilter = NULL; @@ -368,19 +372,12 @@ of.lpstrInitialDir = (initial_dir != NULL) ? w_dir : NULL; of.nMaxFile = 2048; of.lpstrFileTitle = NULL; - of.lpstrTitle = NULL; + of.lpstrTitle = w_title; of.lpstrDefExt = L""; - if (file_open) - { - of.Flags = OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_EXPLORER; - retval = GetOpenFileNameW(&of); - } - else - { - of.Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST; - retval = GetSaveFileNameW(&of); - } + of.Flags = OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_EXPLORER;
+ retval = GetOpenFileNameW(&of); + if (!retval) { if (CommDlgExtendedError()) @@ -392,48 +389,36 @@ return FALSE; }
- if (file_open) - { - guint x; + x = of.nFileOffset - 1; + if (x != wcslen(fname)) + { /* open a single file */ + WideCharToMultiByte(CP_UTF8, 0, fname, -1, tmp, sizeof(tmp), NULL, NULL); + document_open_file(tmp, of.Flags & OFN_READONLY, NULL, NULL); + } + else + { /* open multiple files */ + gchar file_name[MAX_PATH]; + gchar dir_name[MAX_PATH];
- x = of.nFileOffset - 1; - if (x != wcslen(fname)) - { /* open a single file */ - WideCharToMultiByte(CP_UTF8, 0, fname, -1, tmp, sizeof(tmp), NULL, NULL); - document_open_file(tmp, of.Flags & OFN_READONLY, NULL, NULL); - } - else - { /* open multiple files */ - gchar file_name[MAX_PATH]; - gchar dir_name[MAX_PATH]; - - WideCharToMultiByte(CP_UTF8, 0, fname, of.nFileOffset, - dir_name, sizeof(dir_name), NULL, NULL); - for (; ;) + WideCharToMultiByte(CP_UTF8, 0, fname, of.nFileOffset, + dir_name, sizeof(dir_name), NULL, NULL); + for (; ;) + { + if (! fname[x]) { - if (! fname[x]) - { - if (! fname[x + 1]) - break; + if (! fname[x + 1]) + break;
- WideCharToMultiByte(CP_UTF8, 0, fname + x + 1, -1, - tmp, sizeof(tmp), NULL, NULL); - g_snprintf(file_name, 511, "%s\%s", dir_name, tmp); + WideCharToMultiByte(CP_UTF8, 0, fname + x + 1, -1, + tmp, sizeof(tmp), NULL, NULL); + g_snprintf(file_name, 511, "%s\%s", dir_name, tmp);
- /* convert the resulting filename into UTF-8 */ - document_open_file(file_name, of.Flags & OFN_READONLY, NULL, NULL); - } - x++; + /* convert the resulting filename into UTF-8 */ + document_open_file(file_name, of.Flags & OFN_READONLY, NULL, NULL); } + x++; } } - else - { - GeanyDocument *doc = document_get_current(); - - WideCharToMultiByte(CP_UTF8, 0, fname, -1, tmp, sizeof(tmp), NULL, NULL); - document_save_file_as(doc, tmp); - } return (retval != 0); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.