Mercurial > hg > xemacs-beta
comparison src/menubar-gtk.c @ 5013:ae48681c47fa
changes to VOID_TO_LISP et al.
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-02-08 Ben Wing <ben@xemacs.org>
* casetab.c (compute_canon_mapper):
* casetab.c (initialize_identity_mapper):
* casetab.c (compute_up_or_eqv_mapper):
* casetab.c (recompute_case_table):
* casetab.c (set_case_table):
* chartab.c (copy_mapper):
* chartab.c (copy_char_table_range):
* chartab.c (get_range_char_table_1):
* console.c (find_nonminibuffer_frame_not_on_console_predicate):
* console.c (find_nonminibuffer_frame_not_on_console):
* console.c (nuke_all_console_slots):
* device.c:
* device.c (find_nonminibuffer_frame_not_on_device_predicate):
* device.c (find_nonminibuffer_frame_not_on_device):
* dialog-msw.c (dialog_proc):
* dialog-msw.c (handle_question_dialog_box):
* dialog-x.c (maybe_run_dbox_text_callback):
* eval.c:
* eval.c (safe_run_hook_trapping_problems_1):
* eval.c (safe_run_hook_trapping_problems):
* event-msw.c:
* event-msw.c (mswindows_wnd_proc):
* event-msw.c (mswindows_find_frame):
* faces.c (update_face_inheritance_mapper):
* frame-msw.c (mswindows_init_frame_1):
* frame-msw.c (mswindows_get_mouse_position):
* frame-msw.c (mswindows_get_frame_parent):
* glade.c (connector):
* glade.c (Fglade_xml_signal_connect):
* glade.c (Fglade_xml_signal_autoconnect):
* glade.c (Fglade_xml_textdomain):
* glyphs-msw.c (mswindows_subwindow_instantiate):
* glyphs-msw.c (mswindows_widget_instantiate):
* glyphs.c (check_instance_cache_mapper):
* glyphs.c (check_window_subwindow_cache):
* glyphs.c (check_image_instance_structure):
* gui-x.c (snarf_widget_value_mapper):
* gui-x.c (popup_selection_callback):
* gui-x.c (button_item_to_widget_value):
* keymap.c (map_keymap_mapper):
* keymap.c (Fmap_keymap):
* menubar-gtk.c (__torn_off_sir):
* menubar-gtk.c (__activate_menu):
* menubar-gtk.c (menu_convert):
* menubar-gtk.c (__generic_button_callback):
* menubar-gtk.c (menu_descriptor_to_widget_1):
* menubar-msw.c:
* menubar-msw.c (EMPTY_ITEM_ID):
* menubar-x.c (menu_item_descriptor_to_widget_value_1):
* menubar-x.c (pre_activate_callback):
* menubar-x.c (command_builder_operate_menu_accelerator):
* menubar-x.c (command_builder_find_menu_accelerator):
* print.c (print_internal):
* process-unix.c (close_process_descs_mapfun):
* process.c (get_process_from_usid):
* process.c (init_process_io_handles):
* profile.c (sigprof_handler):
* profile.c (get_profiling_info_timing_maphash):
* profile.c (Fget_profiling_info):
* profile.c (set_profiling_info_timing_maphash):
* profile.c (mark_profiling_info_maphash):
* scrollbar-msw.c (mswindows_create_scrollbar_instance):
* scrollbar-msw.c (mswindows_free_scrollbar_instance):
* scrollbar-msw.c (mswindows_handle_scrollbar_event):
* specifier.c (recompute_cached_specifier_everywhere_mapfun):
* specifier.c (recompute_cached_specifier_everywhere):
* syntax.c (copy_to_mirrortab):
* syntax.c (copy_if_not_already_present):
* syntax.c (update_just_this_syntax_table):
* text.c (new_dfc_convert_now_damn_it):
* text.h (LISP_STRING_TO_EXTERNAL):
* tooltalk.c:
* tooltalk.c (tooltalk_message_callback):
* tooltalk.c (tooltalk_pattern_callback):
* tooltalk.c (Fcreate_tooltalk_message):
* tooltalk.c (Fcreate_tooltalk_pattern):
* ui-byhand.c (__generic_toolbar_callback):
* ui-byhand.c (generic_toolbar_insert_item):
* ui-byhand.c (__emacs_gtk_ctree_recurse_internal):
* ui-byhand.c (Fgtk_ctree_recurse):
* ui-gtk.c (__internal_callback_destroy):
* ui-gtk.c (__internal_callback_marshal):
* ui-gtk.c (Fgtk_signal_connect):
* ui-gtk.c (gtk_type_to_lisp):
* ui-gtk.c (lisp_to_gtk_type):
* ui-gtk.c (lisp_to_gtk_ret_type):
* lisp-disunion.h:
* lisp-disunion.h (NON_LVALUE):
* lisp-union.h:
* lisp.h (LISP_HASH):
Rename:
LISP_TO_VOID -> STORE_LISP_IN_VOID
VOID_TO_LISP -> GET_LISP_FROM_VOID
These new names are meant to clearly identify that the Lisp object
is the source and void the sink, and that they can't be used the
other way around -- they aren't exact opposites despite the old
names. The names are also important given the new functions
created just below. Also, clarify comments in lisp-union.h and
lisp-disunion.h about the use of the functions.
* lisp.h:
New functions STORE_VOID_IN_LISP and GET_VOID_FROM_LISP. These
are different from the above in that the source is a void *
(previously, you had to use make_opaque_ptr()).
* eval.c (restore_lisp_object):
* eval.c (record_unwind_protect_restoring_lisp_object):
* eval.c (struct restore_int):
* eval.c (restore_int):
* eval.c (record_unwind_protect_restoring_int):
* eval.c (free_pointer):
* eval.c (record_unwind_protect_freeing):
* eval.c (free_dynarr):
* eval.c (record_unwind_protect_freeing_dynarr):
* eval.c (unbind_to_1):
Use STORE_VOID_IN_LISP and GET_VOID_FROM_LISP to eliminate the
use of make_opaque_ptr() and mostly eliminate Lisp consing
entirely in the use of these various record_unwind_protect_*
functions as well as internal_bind_* (e.g. internal_bind_int).
* tests.c:
* tests.c (Ftest_store_void_in_lisp):
* tests.c (syms_of_tests):
* tests.c (vars_of_tests):
Add an C-assert-style test to test STORE_VOID_IN_LISP and
GET_VOID_FROM_LISP to make sure the same value comes back that
was put in.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 08 Feb 2010 06:42:16 -0600 |
parents | 4aebb0131297 |
children | 3889ef128488 308d34e9f07d |
comparison
equal
deleted
inserted
replaced
5012:f68b2ec914e3 | 5013:ae48681c47fa |
---|---|
318 /* Menu was just torn off */ | 318 /* Menu was just torn off */ |
319 GUI_ID id = new_gui_id (); | 319 GUI_ID id = new_gui_id (); |
320 Lisp_Object menu_desc = Qnil; | 320 Lisp_Object menu_desc = Qnil; |
321 GtkWidget *old_submenu = GTK_MENU_ITEM (menu_item)->submenu; | 321 GtkWidget *old_submenu = GTK_MENU_ITEM (menu_item)->submenu; |
322 | 322 |
323 menu_desc = VOID_TO_LISP (gtk_object_get_data (GTK_OBJECT (menu_item), XEMACS_MENU_DESCR_TAG)); | 323 menu_desc = GET_LISP_FROM_VOID (gtk_object_get_data (GTK_OBJECT (menu_item), XEMACS_MENU_DESCR_TAG)); |
324 | 324 |
325 /* GCPRO all of our very own */ | 325 /* GCPRO all of our very own */ |
326 gcpro_popup_callbacks (id, menu_desc); | 326 gcpro_popup_callbacks (id, menu_desc); |
327 | 327 |
328 /* Hide the now detached menu from the attentions of | 328 /* Hide the now detached menu from the attentions of |
383 else if (gtk_container_children (GTK_CONTAINER (item->submenu))) | 383 else if (gtk_container_children (GTK_CONTAINER (item->submenu))) |
384 { | 384 { |
385 return; | 385 return; |
386 } | 386 } |
387 | 387 |
388 desc = VOID_TO_LISP (gtk_object_get_data (GTK_OBJECT (item), XEMACS_MENU_DESCR_TAG)); | 388 desc = GET_LISP_FROM_VOID (gtk_object_get_data (GTK_OBJECT (item), XEMACS_MENU_DESCR_TAG)); |
389 | 389 |
390 #ifdef TEAR_OFF_MENUS | 390 #ifdef TEAR_OFF_MENUS |
391 /* Lets stick in a detacher just for giggles */ | 391 /* Lets stick in a detacher just for giggles */ |
392 if (tear_off_menus && !gtk_container_children (GTK_CONTAINER (item->submenu))) | 392 if (tear_off_menus && !gtk_container_children (GTK_CONTAINER (item->submenu))) |
393 { | 393 { |
402 { | 402 { |
403 GUI_ID id = (GUI_ID) gtk_object_get_data (GTK_OBJECT (item), XEMACS_MENU_GUIID_TAG); | 403 GUI_ID id = (GUI_ID) gtk_object_get_data (GTK_OBJECT (item), XEMACS_MENU_GUIID_TAG); |
404 Lisp_Object hook_fn; | 404 Lisp_Object hook_fn; |
405 struct gcpro gcpro1, gcpro2; | 405 struct gcpro gcpro1, gcpro2; |
406 | 406 |
407 hook_fn = VOID_TO_LISP (gtk_object_get_data (GTK_OBJECT (item), XEMACS_MENU_FILTER_TAG)); | 407 hook_fn = GET_LISP_FROM_VOID (gtk_object_get_data (GTK_OBJECT (item), XEMACS_MENU_FILTER_TAG)); |
408 | 408 |
409 GCPRO2 (desc, hook_fn); | 409 GCPRO2 (desc, hook_fn); |
410 | 410 |
411 desc = call1 (hook_fn, desc); | 411 desc = call1 (hook_fn, desc); |
412 | 412 |
644 else if (EQ (key, Q_accelerator)) | 644 else if (EQ (key, Q_accelerator)) |
645 { | 645 { |
646 #if 0 | 646 #if 0 |
647 if ( SYMBOLP (val) | 647 if ( SYMBOLP (val) |
648 || CHARP (val)) | 648 || CHARP (val)) |
649 wv->accel = LISP_TO_VOID (val); | 649 wv->accel = STORE_LISP_IN_VOID (val); |
650 else | 650 else |
651 invalid_argument ("bad keyboard accelerator", val); | 651 invalid_argument ("bad keyboard accelerator", val); |
652 #endif | 652 #endif |
653 } | 653 } |
654 else if (EQ (key, Q_label)) | 654 else if (EQ (key, Q_label)) |
657 } | 657 } |
658 else | 658 else |
659 invalid_argument ("unknown menu cascade keyword", cascade); | 659 invalid_argument ("unknown menu cascade keyword", cascade); |
660 } | 660 } |
661 | 661 |
662 gtk_object_set_data (GTK_OBJECT (menu_item), XEMACS_MENU_DESCR_TAG, LISP_TO_VOID (desc)); | 662 gtk_object_set_data (GTK_OBJECT (menu_item), XEMACS_MENU_DESCR_TAG, STORE_LISP_IN_VOID (desc)); |
663 gtk_object_set_data (GTK_OBJECT (menu_item), XEMACS_MENU_FILTER_TAG, LISP_TO_VOID (hook_fn)); | 663 gtk_object_set_data (GTK_OBJECT (menu_item), XEMACS_MENU_FILTER_TAG, STORE_LISP_IN_VOID (hook_fn)); |
664 | 664 |
665 if ((!NILP (config_tag) | 665 if ((!NILP (config_tag) |
666 && NILP (Fmemq (config_tag, Vmenubar_configuration))) | 666 && NILP (Fmemq (config_tag, Vmenubar_configuration))) |
667 || (included_spec && | 667 || (included_spec && |
668 NILP (IGNORE_MULTIPLE_VALUES (Feval (include_p))))) | 668 NILP (IGNORE_MULTIPLE_VALUES (Feval (include_p))))) |
739 { | 739 { |
740 Lisp_Object callback, function, data, channel; | 740 Lisp_Object callback, function, data, channel; |
741 | 741 |
742 channel = wrap_frame (gtk_widget_to_frame (GTK_WIDGET (item))); | 742 channel = wrap_frame (gtk_widget_to_frame (GTK_WIDGET (item))); |
743 | 743 |
744 callback = VOID_TO_LISP (user_data); | 744 callback = GET_LISP_FROM_VOID (user_data); |
745 | 745 |
746 get_gui_callback (callback, &function, &data); | 746 get_gui_callback (callback, &function, &data); |
747 | 747 |
748 signal_special_gtk_user_event (channel, function, data); | 748 signal_special_gtk_user_event (channel, function, data); |
749 } | 749 } |
1005 | 1005 |
1006 gtk_widget_set_sensitive (widget, ! NILP (active_p)); | 1006 gtk_widget_set_sensitive (widget, ! NILP (active_p)); |
1007 | 1007 |
1008 gtk_signal_connect (GTK_OBJECT (widget), "activate-item", | 1008 gtk_signal_connect (GTK_OBJECT (widget), "activate-item", |
1009 GTK_SIGNAL_FUNC (__generic_button_callback), | 1009 GTK_SIGNAL_FUNC (__generic_button_callback), |
1010 LISP_TO_VOID (callback)); | 1010 STORE_LISP_IN_VOID (callback)); |
1011 | 1011 |
1012 gtk_signal_connect (GTK_OBJECT (widget), "activate", | 1012 gtk_signal_connect (GTK_OBJECT (widget), "activate", |
1013 GTK_SIGNAL_FUNC (__generic_button_callback), | 1013 GTK_SIGNAL_FUNC (__generic_button_callback), |
1014 LISP_TO_VOID (callback)); | 1014 STORE_LISP_IN_VOID (callback)); |
1015 | 1015 |
1016 /* Now that all the information about the menu item is know, set the | 1016 /* Now that all the information about the menu item is know, set the |
1017 remaining properties. | 1017 remaining properties. |
1018 */ | 1018 */ |
1019 | 1019 |