Mercurial > hg > xemacs-beta
comparison src/frame-msw.c @ 5052:92dc90c0bb40
merge
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 20 Feb 2010 23:56:01 -0600 |
parents | d0c14ea98592 |
children | 2a462149bd6a |
comparison
equal
deleted
inserted
replaced
5051:c3d372419e09 | 5052:92dc90c0bb40 |
---|---|
1 /* Functions for the mswindows window system. | 1 /* Functions for the mswindows window system. |
2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | 2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. |
3 Copyright (C) 1995, 1996, 2001, 2002 Ben Wing. | 3 Copyright (C) 1995, 1996, 2001, 2002, 2010 Ben Wing. |
4 | 4 |
5 This file is part of XEmacs. | 5 This file is part of XEmacs. |
6 | 6 |
7 XEmacs is free software; you can redistribute it and/or modify it | 7 XEmacs is free software; you can redistribute it and/or modify it |
8 under the terms of the GNU General Public License as published by the | 8 under the terms of the GNU General Public License as published by the |
236 and down from its parent, and give it size of 30x10 characters. | 236 and down from its parent, and give it size of 30x10 characters. |
237 These dimensions look adequate on both high and low res monitors */ | 237 These dimensions look adequate on both high and low res monitors */ |
238 GetWindowRect (hwnd_parent, &rect); | 238 GetWindowRect (hwnd_parent, &rect); |
239 rect_default.left = rect.left + POPUP_OFFSET; | 239 rect_default.left = rect.left + POPUP_OFFSET; |
240 rect_default.top = rect.top + POPUP_OFFSET; | 240 rect_default.top = rect.top + POPUP_OFFSET; |
241 char_to_real_pixel_size (f, POPUP_WIDTH, POPUP_HEIGHT, | 241 char_to_pixel_size (f, POPUP_WIDTH, POPUP_HEIGHT, |
242 &rect_default.width, &rect_default.height); | 242 &rect_default.width, &rect_default.height); |
243 FRAME_MSWINDOWS_POPUP (f) = 1; | 243 FRAME_MSWINDOWS_POPUP (f) = 1; |
244 } | 244 } |
245 | 245 |
246 AdjustWindowRectEx (&rect, style, ADJR_MENUFLAG, exstyle); | 246 AdjustWindowRectEx (&rect, style, ADJR_MENUFLAG, exstyle); |
373 | 373 |
374 static void | 374 static void |
375 mswindows_set_frame_size (struct frame *f, int width, int height) | 375 mswindows_set_frame_size (struct frame *f, int width, int height) |
376 { | 376 { |
377 RECT rect; | 377 RECT rect; |
378 int columns, rows; | 378 int pwidth, pheight; |
379 | |
380 change_frame_size (f, width, height, 0); | |
381 frame_unit_to_pixel_size (f, width, height, &pwidth, &pheight); | |
379 | 382 |
380 rect.left = rect.top = 0; | 383 rect.left = rect.top = 0; |
381 rect.right = width; | 384 rect.right = pwidth; |
382 rect.bottom = height; | 385 rect.bottom = pheight; |
383 | |
384 pixel_to_char_size (f, rect.right, rect.bottom, &columns, &rows); | |
385 change_frame_size (f, rows, columns, 0); | |
386 | 386 |
387 /* This can call Lisp, because it runs the window procedure, which can | 387 /* This can call Lisp, because it runs the window procedure, which can |
388 call redisplay() */ | 388 call redisplay() */ |
389 AdjustWindowRectEx (&rect, | 389 AdjustWindowRectEx (&rect, |
390 qxeGetWindowLong (FRAME_MSWINDOWS_HANDLE (f), GWL_STYLE), | 390 qxeGetWindowLong (FRAME_MSWINDOWS_HANDLE (f), GWL_STYLE), |
739 { | 739 { |
740 RECT rect, ws_rect; | 740 RECT rect, ws_rect; |
741 int pixel_width, pixel_height; | 741 int pixel_width, pixel_height; |
742 int size_p = (dest->width >=0 || dest->height >=0); | 742 int size_p = (dest->width >=0 || dest->height >=0); |
743 int move_p = (dest->top >=0 || dest->left >=0); | 743 int move_p = (dest->top >=0 || dest->left >=0); |
744 char_to_real_pixel_size (f, dest->width, dest->height, &pixel_width, | 744 char_to_pixel_size (f, dest->width, dest->height, &pixel_width, |
745 &pixel_height); | 745 &pixel_height); |
746 | 746 |
747 if (dest->width < 0) | 747 if (dest->width < 0) |
748 pixel_width = FRAME_PIXWIDTH (f); | 748 pixel_width = FRAME_PIXWIDTH (f); |
749 if (dest->height < 0) | 749 if (dest->height < 0) |
938 frame_left = MulDiv (logpixelsx, FRAME_MSPRINTER_LEFT_MARGIN(f), 1440) | 938 frame_left = MulDiv (logpixelsx, FRAME_MSPRINTER_LEFT_MARGIN(f), 1440) |
939 - physicaloffsetx; | 939 - physicaloffsetx; |
940 | 940 |
941 if (FRAME_MSPRINTER_CHARWIDTH (f) > 0) | 941 if (FRAME_MSPRINTER_CHARWIDTH (f) > 0) |
942 { | 942 { |
943 char_to_real_pixel_size (f, FRAME_MSPRINTER_CHARWIDTH (f), 0, | 943 char_to_pixel_size (f, FRAME_MSPRINTER_CHARWIDTH (f), 0, |
944 &frame_width, NULL); | 944 &frame_width, NULL); |
945 FRAME_MSPRINTER_RIGHT_MARGIN(f) = | 945 FRAME_MSPRINTER_RIGHT_MARGIN(f) = |
946 MulDiv (physicalwidth - (frame_left + frame_width), 1440, | 946 MulDiv (physicalwidth - (frame_left + frame_width), 1440, |
947 logpixelsx); | 947 logpixelsx); |
948 } | 948 } |
954 frame_top = MulDiv (logpixelsy, FRAME_MSPRINTER_TOP_MARGIN(f), 1440) | 954 frame_top = MulDiv (logpixelsy, FRAME_MSPRINTER_TOP_MARGIN(f), 1440) |
955 - physicaloffsety; | 955 - physicaloffsety; |
956 | 956 |
957 if (FRAME_MSPRINTER_CHARHEIGHT (f) > 0) | 957 if (FRAME_MSPRINTER_CHARHEIGHT (f) > 0) |
958 { | 958 { |
959 char_to_real_pixel_size (f, 0, FRAME_MSPRINTER_CHARHEIGHT (f), | 959 char_to_pixel_size (f, 0, FRAME_MSPRINTER_CHARHEIGHT (f), |
960 NULL, &frame_height); | 960 NULL, &frame_height); |
961 | 961 |
962 FRAME_MSPRINTER_BOTTOM_MARGIN(f) = | 962 FRAME_MSPRINTER_BOTTOM_MARGIN(f) = |
963 MulDiv (physicalheight - (frame_top + frame_height), 1440, | 963 MulDiv (physicalheight - (frame_top + frame_height), 1440, |
964 logpixelsy); | 964 logpixelsy); |
984 /* Apply XEmacs frame geometry and layout windows */ | 984 /* Apply XEmacs frame geometry and layout windows */ |
985 { | 985 { |
986 int rows, columns; | 986 int rows, columns; |
987 FRAME_PIXWIDTH (f) = frame_width; | 987 FRAME_PIXWIDTH (f) = frame_width; |
988 FRAME_PIXHEIGHT (f) = frame_height; | 988 FRAME_PIXHEIGHT (f) = frame_height; |
989 pixel_to_char_size (f, frame_width, frame_height, &columns, &rows); | 989 pixel_to_frame_unit_size (f, frame_width, frame_height, &columns, &rows); |
990 change_frame_size (f, rows, columns, 0); | 990 change_frame_size (f, columns, rows, 0); |
991 } | 991 } |
992 | 992 |
993 FRAME_MSPRINTER_PIXLEFT(f) = frame_left; | 993 FRAME_MSPRINTER_PIXLEFT(f) = frame_left; |
994 FRAME_MSPRINTER_PIXTOP(f) = frame_top; | 994 FRAME_MSPRINTER_PIXTOP(f) = frame_top; |
995 | 995 |