Mercurial > hg > xemacs-beta
view src/s/hpux11.h @ 5043:d0c14ea98592
various frame-geometry fixes
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-02-15 Ben Wing <ben@xemacs.org>
* EmacsFrame.c:
* EmacsFrame.c (EmacsFrameResize):
* console-msw-impl.h:
* console-msw-impl.h (struct mswindows_frame):
* console-msw-impl.h (FRAME_MSWINDOWS_TARGET_RECT):
* device-tty.c:
* device-tty.c (tty_asynch_device_change):
* event-msw.c:
* event-msw.c (mswindows_wnd_proc):
* faces.c (Fface_list):
* faces.h:
* frame-gtk.c:
* frame-gtk.c (gtk_set_initial_frame_size):
* frame-gtk.c (gtk_set_frame_size):
* frame-msw.c:
* frame-msw.c (mswindows_init_frame_1):
* frame-msw.c (mswindows_set_frame_size):
* frame-msw.c (mswindows_size_frame_internal):
* frame-msw.c (msprinter_init_frame_3):
* frame.c:
* frame.c (enum):
* frame.c (Fmake_frame):
* frame.c (adjust_frame_size):
* frame.c (store_minibuf_frame_prop):
* frame.c (Fframe_property):
* frame.c (Fframe_properties):
* frame.c (Fframe_displayable_pixel_height):
* frame.c (Fframe_displayable_pixel_width):
* frame.c (internal_set_frame_size):
* frame.c (Fset_frame_height):
* frame.c (Fset_frame_pixel_height):
* frame.c (Fset_frame_displayable_pixel_height):
* frame.c (Fset_frame_width):
* frame.c (Fset_frame_pixel_width):
* frame.c (Fset_frame_displayable_pixel_width):
* frame.c (Fset_frame_size):
* frame.c (Fset_frame_pixel_size):
* frame.c (Fset_frame_displayable_pixel_size):
* frame.c (frame_conversion_internal_1):
* frame.c (get_frame_displayable_pixel_size):
* frame.c (change_frame_size_1):
* frame.c (change_frame_size):
* frame.c (generate_title_string):
* frame.h:
* gtk-xemacs.c:
* gtk-xemacs.c (gtk_xemacs_size_request):
* gtk-xemacs.c (gtk_xemacs_size_allocate):
* gtk-xemacs.c (gtk_xemacs_paint):
* gutter.c:
* gutter.c (update_gutter_geometry):
* redisplay.c (end_hold_frame_size_changes):
* redisplay.c (redisplay_frame):
* toolbar.c:
* toolbar.c (update_frame_toolbars_geometry):
* window.c:
* window.c (frame_pixsize_valid_p):
* window.c (check_frame_size):
Various fixes to frame geometry to make it a bit easier to understand
and fix some bugs.
1. IMPORTANT: Some renamings. Will need to be applied carefully to
the carbon repository, in the following order:
-- pixel_to_char_size -> pixel_to_frame_unit_size
-- char_to_pixel_size -> frame_unit_to_pixel_size
-- pixel_to_real_char_size -> pixel_to_char_size
-- char_to_real_pixel_size -> char_to_pixel_size
-- Reverse second and third arguments of change_frame_size() and
change_frame_size_1() to try to make functions consistent in
putting width before height.
-- Eliminate old round_size_to_char, because it didn't really
do anything differently from round_size_to_real_char()
-- round_size_to_real_char -> round_size_to_char; any places that
called the old round_size_to_char should just call the new one.
2. IMPORTANT FOR CARBON: The set_frame_size() method is now passed
sizes in "frame units", like all other frame-sizing functions,
rather than some hacked-up combination of char-cell units and
total pixel size. This only affects window systems that use
"pixelated geometry", and I'm not sure if Carbon is one of them.
MS Windows is pixelated, X and GTK are not. For pixelated-geometry
systems, the size in set_frame_size() is in displayable pixels
rather than total pixels and needs to be converted appropriately;
take a look at the changes made to mswindows_set_frame_size()
method if necessary.
3. Add a big long comment in frame.c describing how frame geometry
works.
4. Remove MS Windows-specific character height and width fields,
duplicative and unused.
5. frame-displayable-pixel-* and set-frame-displayable-pixel-*
didn't use to work on MS Windows, but they do now.
6. In general, clean up the handling of "pixelated geometry" so
that fewer functions have to worry about this. This is really
an abomination that should be removed entirely but that will
have to happen later. Fix some buggy code in
frame_conversion_internal() that happened to "work" because it
was countered by oppositely buggy code in change_frame_size().
7. Clean up some frame-size code in toolbar.c and use functions
already provided in frame.c instead of rolling its own.
8. Fix check_frame_size() in window.c, which formerly didn't take
pixelated geometry into account.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 15 Feb 2010 22:14:11 -0600 |
parents | aa5ed11f473b |
children | 906ccc7dcd70 2aa9cd456ae7 861f2601a38b |
line wrap: on
line source
/* Definitions file for XEmacs running on HPUX release 11.0. * Copyright (C) 1985, 1986 Free Software Foundation, Inc. * * This file is part of XEmacs. * * XEmacs is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * XEmacs is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XEmacs; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* Synched up with: FSF 19.31. */ /* Only support for hp9000s800 currently */ #define ORDINARY_LINK /* XEmacs: */ /* Don't tell the linker to link statically */ #ifdef NOT_C_CODE #define START_FILES #define LINKER "$(CC)" #endif /* THIS IS YMAKEFILE */ /* get call to brk() when rerunning XEmacs */ /* #ifndef USE_GCC */ #define RUN_TIME_REMAP /* #endif */ #define USG /* System III, System V, etc */ #define USG5 #define HPUX /* SYSTEM_TYPE should indicate the kind of system you are using. * It sets the Lisp variable system-type. */ #define SYSTEM_TYPE "hpux" /* `nomultiplejobs' should be defined if your system's shell * does not have "job control" (the ability to stop a program, * run some other program, then continue the first one). * * On hpux this depends on the precise kind of machine in use, * so the m- file defines this symbol if appropriate. */ /* Letter to use in finding device name of first pty, * if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */ #define FIRST_PTY_LETTER 'p' /* The symbol in the kernel where the load average is found * depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */ /* Special hacks needed to make Emacs run on this system. */ /* On USG systems the system calls are interruptible by signals * that the user program has elected to catch. Thus the system call * must be retried in these cases. To handle this without massive * changes in the source code, we remap the standard system call names * to names for our own functions in sysdep.c that do the system call * with retries. */ #define INTERRUPTIBLE_OPEN #define INTERRUPTIBLE_IO /* XEmacs change */ #define INTERRUPTIBLE_CLOSE /* Use the system provided termcap(3) library */ #define TERMINFO /* The 48-bit versions are more winning for Emacs; * the ordinary ones don't give even 32 bits. */ #define random lrand48 #define srandom srand48 /* Define extra libraries to load. * This should have -lBSD, but that library is said to make * `signal' fail to work. */ #ifdef HPUX_NET #define LIBS_SYSTEM "-ln" #else #define LIBS_SYSTEM #endif /* Some additional system facilities exist. */ /* Baud-rate values in tty status have nonstandard meanings. */ #define BAUD_CONVERT \ { 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \ 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 } /* This is how to get the device name of the tty end of a pty. */ #define PTY_TTY_NAME_SPRINTF \ sprintf (pty_name, "/dev/pty/tty%c%x", c, i); /* This is how to get the device name of the control end of a pty. */ #define PTY_NAME_SPRINTF \ sprintf (pty_name, "/dev/ptym/pty%c%x", c, i); #ifdef HPUX_USE_SHLIBS #define LD_SWITCH_SYSTEM #else #define LD_SWITCH_SYSTEM "-Xlinker -a -Xlinker archive" #endif #ifndef __GNUC__ /* Make room for enough symbols, so dispnew.c does not fail. */ /* XEmacs: cognot@ensg.u-nancy.fr: C_SWITCH_SYSTEM already defined in hpux8.h, * -D_BSD makes hp CC choke on process.c * #define C_SWITCH_SYSTEM "-Wp,-H200000 -D_BSD" * */ #undef C_SWITCH_SYSTEM #define C_SWITCH_SYSTEM "-Aa -D_HPUX_SOURCE" #endif /* mrb */ #undef LD_SWITCH_SYSTEM /* We have to go this route, rather than hpux9's approach of renaming the functions via macros. The system's stdlib.h has fully prototyped declarations, which yields a conflicting definition of srand48; it tries to redeclare what was once srandom to be srand48. So we go with HAVE_LRAND48 being defined. */ #undef srandom #undef srand48 #undef HAVE_RANDOM #define HPUX11 /* AlainF 20-Jul-1996 -- fixes for 10.10, untested for 10.0x */ /* Fix kernel file name for 10.10 and later */ #define KERNEL_FILE "/stand/vmunix"