aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2012-09-30 23:43:39 +0900
committerKenichi Handa2012-09-30 23:43:39 +0900
commit34f36ab2477611399e6b537ebd87df839ef09299 (patch)
treedc129a60013f285c27859ae57cc0686f5a1adc5b
parentc194970e15b6d6efa07697679a25dfab3aa76442 (diff)
parentd7e642cc001a237dda8511f99b284e1a22865024 (diff)
downloademacs-34f36ab2477611399e6b537ebd87df839ef09299.tar.gz
emacs-34f36ab2477611399e6b537ebd87df839ef09299.zip
merge trunk
-rw-r--r--etc/ChangeLog1
-rw-r--r--etc/NEWS7
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/term/ns-win.el11
-rw-r--r--src/ChangeLog9
-rw-r--r--src/fileio.c3
-rw-r--r--src/nsfns.m36
-rw-r--r--src/w32fns.c2
-rw-r--r--src/xfns.c4
9 files changed, 62 insertions, 15 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 2c1e3758ea0..099d7ca044f 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,6 +1,7 @@
12012-09-30 Jan Djärv <jan.h.d@swipnet.se> 12012-09-30 Jan Djärv <jan.h.d@swipnet.se>
2 2
3 * NEWS: The NS port supports fullscreen. 3 * NEWS: The NS port supports fullscreen.
4 Mention that the file dialog is used on NS.
4 5
52012-09-17 Glenn Morris <rgm@gnu.org> 62012-09-17 Glenn Morris <rgm@gnu.org>
6 7
diff --git a/etc/NEWS b/etc/NEWS
index e6f09d83f43..2791a25e051 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -187,8 +187,11 @@ The PCL-CVS commands are still available via the keyboard.
187--- 187---
188*** New input method `vietnamese-vni'. 188*** New input method `vietnamese-vni'.
189 189
190** The NS port supports fullscreen. 190** NextStep/OSX port changes.
191 191---
192*** Fullscreen and frame parameter fullscreen is supported.
193---
194*** A file dialog is used when open/saved is done from the menu/toolbar.
192 195
193* Editing Changes in Emacs 24.3 196* Editing Changes in Emacs 24.3
194 197
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 255b8924784..5d1a7eea095 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,7 @@
12012-09-30 Jan Djärv <jan.h.d@swipnet.se>
2
3 * term/ns-win.el (x-file-dialog): New function.
4
12012-09-30 Juanma Barranquero <lekktu@gmail.com> 52012-09-30 Juanma Barranquero <lekktu@gmail.com>
2 6
3 * ido.el (ido-max-directory-size): Default to nil; the current 7 * ido.el (ido-max-directory-size): Default to nil; the current
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index 06b67475c1d..c229ec14dd5 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -452,6 +452,17 @@ Lines are highlighted according to `ns-input-line'."
452 452
453;;;; File handling. 453;;;; File handling.
454 454
455(defun x-file-dialog (prompt dir default_filename mustmatch only_dir_p)
456"Read file name, prompting with PROMPT in directory DIR.
457Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file
458selection box, if specified. If MUSTMATCH is non-nil, the returned file
459or directory must exist.
460
461This function is only defined on NS, MS Windows, and X Windows with the
462Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
463Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories."
464 (ns-read-file-name prompt dir mustmatch default_filename only_dir_p))
465
455(defun ns-open-file-using-panel () 466(defun ns-open-file-using-panel ()
456 "Pop up open-file panel, and load the result in a buffer." 467 "Pop up open-file panel, and load the result in a buffer."
457 (interactive) 468 (interactive)
diff --git a/src/ChangeLog b/src/ChangeLog
index f69ab42bd90..1f5ad1e6d05 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -5,6 +5,15 @@
5 5
62012-09-30 Jan Djärv <jan.h.d@swipnet.se> 62012-09-30 Jan Djärv <jan.h.d@swipnet.se>
7 7
8 * xfns.c (Fx_file_dialog): Update comment.
9
10 * w32fns.c (Fx_file_dialog): Update comment.
11
12 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
13 Initialize panel name field if OSX >= 10.6.
14
15 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
16
8 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen. 17 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
9 18
10 * nsterm.m (NEW_STYLE_FS): New define. 19 * nsterm.m (NEW_STYLE_FS): New define.
diff --git a/src/fileio.c b/src/fileio.c
index 9d8a0dc8b45..9ce9e7b8395 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -5520,7 +5520,8 @@ The return value is only relevant for a call to `read-file-name' that happens
5520before any other event (mouse or keypress) is handled. */) 5520before any other event (mouse or keypress) is handled. */)
5521 (void) 5521 (void)
5522{ 5522{
5523#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK) 5523#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK) \
5524 || defined (HAVE_NS)
5524 if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event)) 5525 if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
5525 && use_dialog_box 5526 && use_dialog_box
5526 && use_file_dialog 5527 && use_file_dialog
diff --git a/src/nsfns.m b/src/nsfns.m
index c96ec99ed2e..1efadf0cb98 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1467,13 +1467,15 @@ DEFUN ("ns-popup-color-panel", Fns_popup_color_panel, Sns_popup_color_panel,
1467} 1467}
1468 1468
1469 1469
1470DEFUN ("ns-read-file-name", Fns_read_file_name, Sns_read_file_name, 1, 4, 0, 1470DEFUN ("ns-read-file-name", Fns_read_file_name, Sns_read_file_name, 1, 5, 0,
1471 doc: /* Use a graphical panel to read a file name, using prompt PROMPT. 1471 doc: /* Use a graphical panel to read a file name, using prompt PROMPT.
1472Optional arg DIR, if non-nil, supplies a default directory. 1472Optional arg DIR, if non-nil, supplies a default directory.
1473Optional arg MUSTMATCH, if non-nil, means the returned file or 1473Optional arg MUSTMATCH, if non-nil, means the returned file or
1474directory must exist. 1474directory must exist.
1475Optional arg INIT, if non-nil, provides a default file name to use. */) 1475Optional arg INIT, if non-nil, provides a default file name to use.
1476 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object mustmatch, Lisp_Object init) 1476Optional arg DIR_ONLY_P, if non-nil, means choose only directories. */)
1477 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object mustmatch,
1478 Lisp_Object init, Lisp_Object dir_only_p)
1477{ 1479{
1478 static id fileDelegate = nil; 1480 static id fileDelegate = nil;
1479 int ret; 1481 int ret;
@@ -1498,21 +1500,36 @@ Optional arg INIT, if non-nil, provides a default file name to use. */)
1498 if ([dirS characterAtIndex: 0] == '~') 1500 if ([dirS characterAtIndex: 0] == '~')
1499 dirS = [dirS stringByExpandingTildeInPath]; 1501 dirS = [dirS stringByExpandingTildeInPath];
1500 1502
1501 panel = NILP (mustmatch) ? 1503 panel = NILP (mustmatch) && NILP (dir_only_p) ?
1502 (id)[EmacsSavePanel savePanel] : (id)[EmacsOpenPanel openPanel]; 1504 (id)[EmacsSavePanel savePanel] : (id)[EmacsOpenPanel openPanel];
1503 1505
1504 [panel setTitle: promptS]; 1506 [panel setTitle: promptS];
1505 1507
1506 /* Puma (10.1) does not have */ 1508 [panel setAllowsOtherFileTypes: YES];
1507 if ([panel respondsToSelector: @selector (setAllowsOtherFileTypes:)])
1508 [panel setAllowsOtherFileTypes: YES];
1509
1510 [panel setTreatsFilePackagesAsDirectories: YES]; 1509 [panel setTreatsFilePackagesAsDirectories: YES];
1511 [panel setDelegate: fileDelegate]; 1510 [panel setDelegate: fileDelegate];
1512 1511
1513 panelOK = 0; 1512 panelOK = 0;
1513 if (! NILP (dir_only_p))
1514 {
1515 [panel setCanChooseDirectories: YES];
1516 [panel setCanChooseFiles: NO];
1517 }
1518
1514 block_input (); 1519 block_input ();
1515 if (NILP (mustmatch)) 1520#if defined (NS_IMPL_COCOA) && \
1521 MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
1522 if (! NILP (mustmatch) || ! NILP (dir_only_p))
1523 [panel setAllowedFileTypes: nil];
1524 if (dirS) [panel setDirectoryURL: [NSURL fileURLWithPath: dirS]];
1525 if (initS && NILP (Ffile_directory_p (init)))
1526 [panel setNameFieldStringValue: [initS lastPathComponent]];
1527 else
1528 [panel setNameFieldStringValue: @""];
1529
1530 ret = [panel runModal];
1531#else
1532 if (NILP (mustmatch) && NILP (dir_only_p))
1516 { 1533 {
1517 ret = [panel runModalForDirectory: dirS file: initS]; 1534 ret = [panel runModalForDirectory: dirS file: initS];
1518 } 1535 }
@@ -1521,6 +1538,7 @@ Optional arg INIT, if non-nil, provides a default file name to use. */)
1521 [panel setCanChooseDirectories: YES]; 1538 [panel setCanChooseDirectories: YES];
1522 ret = [panel runModalForDirectory: dirS file: initS types: nil]; 1539 ret = [panel runModalForDirectory: dirS file: initS types: nil];
1523 } 1540 }
1541#endif
1524 1542
1525 ret = (ret == NSOKButton) || panelOK; 1543 ret = (ret == NSOKButton) || panelOK;
1526 1544
diff --git a/src/w32fns.c b/src/w32fns.c
index 808e19d0b66..d7b45e263b3 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -5945,7 +5945,7 @@ Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file
5945selection box, if specified. If MUSTMATCH is non-nil, the returned file 5945selection box, if specified. If MUSTMATCH is non-nil, the returned file
5946or directory must exist. 5946or directory must exist.
5947 5947
5948This function is only defined on MS Windows, and X Windows with the 5948This function is only defined on NS, MS Windows, and X Windows with the
5949Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. 5949Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
5950Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) 5950Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */)
5951 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) 5951 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p)
diff --git a/src/xfns.c b/src/xfns.c
index 928e6367743..d497cffe3df 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -5344,7 +5344,7 @@ Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file
5344selection box, if specified. If MUSTMATCH is non-nil, the returned file 5344selection box, if specified. If MUSTMATCH is non-nil, the returned file
5345or directory must exist. 5345or directory must exist.
5346 5346
5347This function is only defined on MS Windows, and X Windows with the 5347This function is only defined on NS, MS Windows, and X Windows with the
5348Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. 5348Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
5349Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) 5349Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */)
5350 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) 5350 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p)
@@ -5517,7 +5517,7 @@ Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file
5517selection box, if specified. If MUSTMATCH is non-nil, the returned file 5517selection box, if specified. If MUSTMATCH is non-nil, the returned file
5518or directory must exist. 5518or directory must exist.
5519 5519
5520This function is only defined on MS Windows, and X Windows with the 5520This function is only defined on NS, MS Windows, and X Windows with the
5521Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. 5521Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored.
5522Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) 5522Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */)
5523 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) 5523 (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p)