X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/07976ae3b816dea4fd541bbba862603d3132eb2c..eab3844f965646b62e242aa622754b86d1fd3444:/src/nsmenu.m?ds=sidebyside diff --git a/src/nsmenu.m b/src/nsmenu.m index b6ee93bdf6..623c933ce8 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1,5 +1,5 @@ /* NeXT/Open/GNUstep and MacOSX Cocoa menu and toolbar module. - Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2007-2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -65,8 +65,7 @@ extern Lisp_Object Qundefined, Qmenu_enable, Qmenu_bar_update_hook; extern Lisp_Object QCtoggle, QCradio; Lisp_Object Qdebug_on_next_call; -extern Lisp_Object Voverriding_local_map, Voverriding_local_map_menu_flag, - Qoverriding_local_map, Qoverriding_terminal_local_map; +extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; extern long context_menu_value; EmacsMenu *mainMenu, *svcsMenu, *dockMenu; @@ -356,7 +355,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu) /* if (submenu && strcmp (submenuTitle, SDATA (string))) continue; */ - wv->name = (char *) SDATA (string); + wv->name = SSDATA (string); update_submenu_strings (wv->contents); wv = wv->next; } @@ -445,7 +444,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu) strncpy (previous_strings[i/4], SDATA (string), 10); wv = xmalloc_widget_value (); - wv->name = (char *) SDATA (string); + wv->name = SSDATA (string); wv->value = 0; wv->enabled = 1; wv->button_type = BUTTON_TYPE_NONE; @@ -507,21 +506,6 @@ set_frame_menubar (struct frame *f, int first_time, int deep_p) } -/* Utility (from macmenu.c): is this item a separator? */ -static int -name_is_separator ( const char *name) -{ - const char *start = name; - - /* Check if name string consists of only dashes ('-'). */ - while (*name == '-') name++; - /* Separators can also be of the form "--:TripleSuperMegaEtched" - or "--deep-shadow". We don't implement them yet, se we just treat - them like normal separators. */ - return (*name == '\0' || start + 2 == name); -} - - /* ========================================================================== Menu: class implementation @@ -624,7 +608,7 @@ name_is_separator ( const char *name) NSMenuItem *item; widget_value *wv = (widget_value *)wvptr; - if (name_is_separator (wv->name)) + if (menu_separator_name_p (wv->name)) { item = [NSMenuItem separatorItem]; [self addItem: item]; @@ -849,7 +833,7 @@ ns_menu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, } #endif pane_string = (NILP (pane_name) - ? "" : (char *) SDATA (pane_name)); + ? "" : SSDATA (pane_name)); /* If there is just one top-level pane, put all its items directly under the top-level menu. */ if (menu_items_n_panes == 1) @@ -914,9 +898,9 @@ ns_menu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, prev_wv->next = wv; else save_wv->contents = wv; - wv->name = (char *) SDATA (item_name); + wv->name = SSDATA (item_name); if (!NILP (descrip)) - wv->key = (char *) SDATA (descrip); + wv->key = SSDATA (descrip); wv->value = 0; /* If this item has a null value, make the call_data null so that it won't display a box @@ -965,7 +949,7 @@ ns_menu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, title = ENCODE_MENU_STRING (title); #endif - wv_title->name = (char *) SDATA (title); + wv_title->name = SSDATA (title); wv_title->enabled = NO; wv_title->button_type = BUTTON_TYPE_NONE; wv_title->help = Qnil; @@ -1049,10 +1033,15 @@ update_frame_tool_bar (FRAME_PTR f) { idx = -1; } + helpObj = TOOLPROP (TOOL_BAR_ITEM_HELP); + if (NILP (helpObj)) + helpObj = TOOLPROP (TOOL_BAR_ITEM_CAPTION); + helpText = NILP (helpObj) ? "" : SSDATA (helpObj); + /* Ignore invalid image specifications. */ if (!valid_image_p (image)) { - NSLog (@"Invalid image for toolbar item"); + /* Don't log anything, GNUS makes invalid images all the time. */ continue; } @@ -1066,11 +1055,6 @@ update_frame_tool_bar (FRAME_PTR f) continue; } - helpObj = TOOLPROP (TOOL_BAR_ITEM_HELP); - if (NILP (helpObj)) - helpObj = TOOLPROP (TOOL_BAR_ITEM_CAPTION); - helpText = NILP (helpObj) ? "" : (char *)SDATA (helpObj); - [toolbar addDisplayItemWithImage: img->pixmap idx: i helpText: helpText enabled: enabled_p]; #undef TOOLPROP @@ -1721,7 +1705,6 @@ void process_dialog (id window, Lisp_Object list) - (Lisp_Object)runDialogAt: (NSPoint)p { NSInteger ret; - extern EMACS_TIME timer_check (int do_it_now); /* TODO: add to a header */ /* initiate a session that will be ended by pop_down_menu */ popupSession = [NSApp beginModalSessionForWindow: self]; @@ -1731,7 +1714,7 @@ void process_dialog (id window, Lisp_Object list) { /* Run this for timers.el, indep of atimers; might not return. TODO: use return value to avoid calling every iteration. */ - timer_check (1); + timer_check (); [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.1]]; } @@ -1812,4 +1795,3 @@ syms_of_nsmenu (void) staticpro (&Qdebug_on_next_call); } -// arch-tag: 75773656-52e5-4c44-a398-47bd87b32619