Mercurial > emacs
annotate src/w32reg.c @ 19713:043ccce224fb
(SIF_*): Win95 macros defined for NT.
(struct tagSCROLLINFO): Win95 struct defined for NT.
(vertical_scroll_bar_min_handle, vertical_scroll_bar_top_border,
vertical_scroll_bar_bottom_border, last_scroll_bar_drag_pos,
Vw32_gab_focus_on_raise, Vw32_capslock_is_shiftlock): New
variables.
(w32_frame_up_to_date): Block input.
(do_line_dance): Use DC while erasing, release at end.
(show_mouse_face): Use column and endcolumn calculated at start of
loop.
(my_create_scrollbar, my_show_window, my_set_window_pos,
my_set_focus) [! ATTACH_THREADS]: Send message to window instead
of invoking Windows procedure.
(x_scroll_bar_create, x_scroll_bar_move, x_scroll_bar_handle_click,
x_scroll_bar_report_motion): Use SCROLLINFO for proportional handle.
(x_scroll_bar_set_handle): Create proportional sized scroll handle.
(w32_set_vertical_scroll_bar): Size handle according to how much
is showing in window.
(x_scroll_bar_set_report_motion): Use top_range, calculated above.
(x_scroll_bar_clear): Hide scroll bar until ready to repaint.
(show_scroll_bars): Pass in frame to my_show_window.
(w32_read_socket): Distinguish between invisible and obscured frames
when handling PAINT messages.
Fixup off-by-one calculation for PAINT and SIZE.
Pass in new parameter to w32_kbd_mods_to_emacs.
Handle WM_DISPLAYCHANGE, WINDOWPOSCHANGED, ACTIVATE, SHOWWINDOW,
INITMENU, and ACTIVATEAPP messages.
Explicitly check for visibile and obscured frames, and to see if
any event should cause a redisplay.
(x_display_bar_cursor): Don't check whether frame is updating here.
(x_display_cursor): Check it here instead.
(x_set_offset) [HAVE_NTGUI]: Don't add border widths.
Set NOACTIVATE when setting window position.
(x_set_window_size): Fixup off-by-one calculation when setting
window position. Mark frame garbaged earlier. Clear mouse
highlighting state.
(x_focus_on_frame): Set focus by making frame the foreground window.
(x_raise_frame): Support frames to be raised without grabbing focus.
(x_lower_frame): Set NOACTIVATE flag when setting window position.
(x_make_frame_visible, x_make_frame_invisible): Pass in frame
to my_show_window.
to my_show_window.
(x_iconify_frame): Send a MINIMIZE message to the window.
(x_wm_set_size_hint): Set font width, line height, border,
and scroll bar indexes instead of X and Y unit indexes.
(w32_initialize): Set input mode. Use w32_msg_worker instead
of windows_msg_worker. Dynamically link proportional scroll bar
functions and intialize proportional scroll bar variables.
(syms_of_w32term): DEFVAR new variables.
(construct_mouse_wheel): New function. Constructs an
input event from a WM_MOUSEWHEEL message.
(w32_read_socket): Handle WM_MOUSEWHEEL.
(w32_read_socket): Pass in new parameter to key_event.
Let key_event determine whether key is dead.
For MOVE, use x_real_positions to map to client coords.
(x_set_mouse_pixel_position): Offset to use client area as origin.
author | Geoff Voelker <voelker@cs.washington.edu> |
---|---|
date | Wed, 03 Sep 1997 01:07:37 +0000 |
parents | 481b7874a1e9 |
children | 8387918b52c6 |
rev | line source |
---|---|
13434 | 1 /* Emulate the X Resource Manager through the registry. |
2 Copyright (C) 1990, 1993, 1994 Free Software Foundation. | |
3 | |
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
4 This file is part of GNU Emacs. |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
5 |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
6 GNU Emacs is free software; you can redistribute it and/or modify |
13434 | 7 it under the terms of the GNU General Public License as published by |
8 the Free Software Foundation; either version 2, or (at your option) | |
9 any later version. | |
10 | |
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
11 GNU Emacs is distributed in the hope that it will be useful, |
13434 | 12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
17 along with GNU Emacs; see the file COPYING. If not, write to |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13434
diff
changeset
|
19 Boston, MA 02111-1307, USA. */ |
13434 | 20 |
21 /* Written by Kevin Gallo */ | |
22 | |
23 #include <config.h> | |
24 #include "lisp.h" | |
25 #include "w32term.h" | |
26 #include "blockinput.h" | |
27 | |
28 #include <stdio.h> | |
29 #include <string.h> | |
30 | |
15149
685510b93c83
(REG_ROOT): Remove trailing backslash.
Geoff Voelker <voelker@cs.washington.edu>
parents:
14353
diff
changeset
|
31 #define REG_ROOT "SOFTWARE\\GNU\\Emacs" |
13434 | 32 |
33 LPBYTE | |
16588
481b7874a1e9
Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents:
15149
diff
changeset
|
34 w32_get_string_resource (name, class, dwexptype) |
13434 | 35 char *name, *class; |
36 DWORD dwexptype; | |
37 { | |
38 LPBYTE lpvalue = NULL; | |
39 HKEY hrootkey = NULL; | |
40 DWORD dwType; | |
41 DWORD cbData; | |
42 BOOL ok = FALSE; | |
43 | |
44 BLOCK_INPUT; | |
45 | |
46 /* Check both the current user and the local machine to see if we have any resources */ | |
47 | |
48 if (RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS | |
49 || RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) | |
50 { | |
51 char *keyname; | |
52 | |
53 if (RegQueryValueEx (hrootkey, name, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS | |
54 && dwType == dwexptype) | |
55 { | |
56 keyname = name; | |
57 } | |
58 else if (RegQueryValueEx (hrootkey, class, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS | |
59 && dwType == dwexptype) | |
60 { | |
61 keyname = class; | |
62 } | |
63 else | |
64 { | |
65 keyname = NULL; | |
66 } | |
67 | |
68 ok = (keyname | |
69 && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL | |
70 && RegQueryValueEx (hrootkey, keyname, NULL, NULL, lpvalue, &cbData) == ERROR_SUCCESS); | |
71 | |
72 RegCloseKey (hrootkey); | |
73 } | |
74 | |
75 UNBLOCK_INPUT; | |
76 | |
77 if (!ok) | |
78 { | |
79 if (lpvalue) xfree (lpvalue); | |
80 return (NULL); | |
81 } | |
82 else | |
83 { | |
84 return (lpvalue); | |
85 } | |
86 } | |
87 | |
88 /* Retrieve the string resource specified by NAME with CLASS from | |
89 database RDB. */ | |
90 | |
91 char * | |
92 x_get_string_resource (rdb, name, class) | |
93 int rdb; | |
94 char *name, *class; | |
95 { | |
16588
481b7874a1e9
Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents:
15149
diff
changeset
|
96 return (w32_get_string_resource (name, class, REG_SZ)); |
13434 | 97 } |