Mercurial > emacs
view oldXMenu/InsSel.c @ 104155:87373993f3bd
* progmodes/gdb-mi.el (gdb-frame-number): Initialize with nil.
(gdb-overlay-arrow-position): Renamed to
`gdb-disassembly-position'.
(gdb-overlay-arrow-position, gdb-thread-position)
(gdb-disassembly-position): Declare variables.
(gdb-wait-for-pending): Function now.
(gdb-add-subscriber, gdb-delete-subscriber, gdb-get-subscribers)
(gdb-emit-signal, gdb-buf-publisher): Declare before first use so
compilation goes smoothly.
(gdb, gdb-non-stop, gdb-buffers): New customization groups.
(gdb-non-stop-setting): New customization setting which replaces
`gdb-non-stop' so changing it doesn't break active GDB session.
(gdb-stack-buffer-locations, gdb-stack-buffer-addresses)
(gdb-thread-buffer-verbose-names, gdb-thread-buffer-arguments)
(gdb-thread-buffer-locations, gdb-thread-buffer-addresses)
(gdb-show-threads-by-default): New customization options.
(gdb-buffer-type, gdb-buffer-shows-main-thread-p): New helper
routines.
(gdb-get-buffer-create): Send buffers update signal when they are
created.
(gdb-invalidate-locals, gdb-invalidate-registers)
(gdb-invalidate-breakpoints)
(gdb-invalidate-threads, gdb-invalidate-disassembly)
(gdb-invalidate-memory): Accept update signal.
(gdb-current-context-command): Use --frame option.
(gdb-update-gud-running, gdb-running, gdb-setq-thread-number):
Implement `gdb-frame-number' selection logic.
(gdb-show-run-p, gdb-show-stop-p): Helper functions which decide
whether to show GUD toolbar buttons.
(gdb-thread-exited): Unselect current thread when it exits.
(gdb-stopped): Typo fixed (now really runs `gdb-stopped-hooks').
(gdb-mark-line): Routine which sets overlay arrow or inverses
video on fringeless displays.
(gdb-table, gdb-table-add-row, gdb-table-string): Structure used
to build aligned columns of data in GDB buffers and set text
properties line-by-line.
(gdb-invalidate-breakpoints)
(gdb-breakpoints-list-handler-custom)
(gdb-thread-list-handler-custom, gdb-disassembly-handler-custom)
(gdb-stack-list-frames-custom, gdb-locals-handler-custom)
(gdb-registers-handler-custom): Align data columns.
(gdb-locals-handler-custom): Now prints data like in variable
declarations.
(gdb-jump-to, gdb-file-button, gdb-insert-file-location-button):
Removed confusing buttons.
(gdb-invalidate-threads): Append --frame.
(gdb-threads-mode-map, gdb-breakpoints-mode-map): TAB to switch
between breakpoints/threads buffers.
(gdb-set-window-buffer): Now can ignore dedicated windows.
(gdb-propertize-header): Use `gdb-set-window-buffer'.
(def-gdb-thread-buffer-simple-command): Numerous typos fixed.
(def-gdb-thread-buffer-gud-command): Replaces
`def-gdb-thread-buffer-gdb-command' and uses standard GUD commands
for fine thread control.
(gdb-preempt-existing-or-display-buffer): New function used to
display bound buffers without breaking window layout.
(gdb-frame-location): Replaces `gdb-insert-frame-location'.
(gdb-select-frame): New version of `gdb-frames-select' which now
sets `gdb-frame-number' so commands may use --frame option instead
of inner debugger state.
(gdb-frame-handler): Do not set `gdb-frame-number'.
(gdb-threads-mode-map): Select threads with mouse.
(I forgot to include sources in previous commit)
author | Dmitry Dzhus <dima@sphinx.net.ru> |
---|---|
date | Tue, 04 Aug 2009 17:16:58 +0000 |
parents | fec5e03aaf59 |
children | edf631bdbb7a ec58e5c426ef 5cc91198ffb2 |
line wrap: on
line source
/* Copyright Massachusetts Institute of Technology 1985 */ #include "copyright.h" /* * XMenu: MIT Project Athena, X Window system menu package * * XMenuInsertSelection - Inserts a selection into an XMenu object * * Author: Tony Della Fera, DEC * 20-Nov-85 * */ #include <config.h> #include "XMenuInt.h" int XMenuInsertSelection(menu, p_num, s_num, data, label, active) register XMenu *menu; /* Menu object to be modified. */ register int p_num; /* Pane number to be modified. */ register int s_num; /* Selection number of new selection. */ char *data; /* Data value. */ char *label; /* Selection label. */ int active; /* Make selection active? */ { register XMPane *p_ptr; /* XMPane pointer. */ register XMSelect *s_ptr; /* XMSelect pointer. */ XMSelect *select; /* Newly created selection. */ int label_length; /* Label length in characters. */ int label_width; /* Label width in pixels. */ /* * Check for NULL pointers! */ if (label == NULL) { _XMErrorCode = XME_ARG_BOUNDS; return(XM_FAILURE); } /* * Find the right pane. */ p_ptr = _XMGetPanePtr(menu, p_num); if (p_ptr == NULL) return(XM_FAILURE); /* * Find the selection number one less than the one specified since that * is the selection after which the insertion will occur. */ s_ptr = _XMGetSelectionPtr(p_ptr, (s_num - 1)); if (s_ptr == NULL) return(XM_FAILURE); /* * Calloc the XMSelect structure. */ select = (XMSelect *)calloc(1, sizeof(XMSelect)); if (select == NULL) { _XMErrorCode = XME_CALLOC; return(XM_FAILURE); } /* * Determine label size. */ label_length = strlen(label); label_width = XTextWidth(menu->s_fnt_info, label, label_length); /* * Fill the XMSelect structure. */ if (!strcmp (label, "--") || !strcmp (label, "---")) { select->type = SEPARATOR; select->active = 0; } else { select->type = SELECTION; select->active = active; } select->active = active; select->serial = -1; select->label = label; select->label_width = label_width; select->label_length = label_length; select->data = data; select->parent_p = p_ptr; /* * Insert the selection after the selection with the selection * number one less than the desired number for the new selection. */ emacs_insque(select, s_ptr); /* * Update the selection count. */ p_ptr->s_count++; /* * Schedule a recompute. */ menu->recompute = 1; /* * Return the selection number just inserted. */ _XMErrorCode = XME_NO_ERROR; return(s_num); } /* arch-tag: 8398626f-81cb-4e13-8ebc-aac1b9237663 (do not change this comment) */