diff options
author | Geoff Voelker <voelker@cs.washington.edu> | 1996-05-03 18:48:05 +0000 |
---|---|---|
committer | Geoff Voelker <voelker@cs.washington.edu> | 1996-05-03 18:48:05 +0000 |
commit | 5eaa828d526933c594104cf3d04105250df2dda2 (patch) | |
tree | b3972c24dd137efcf2a074413bd289834ee924f0 /src/w32term.h | |
parent | 2e59ce209951092c4ed3ecc09614a2da6bc53923 (diff) | |
download | emacs-5eaa828d526933c594104cf3d04105250df2dda2.tar.gz |
(struct win32_palette_entry): New structure.
(win32_display_info): New fields has_palette, p_colors_in_use,
n_colors_in_use, h_palette.
(win32_output): New field h_old_palette.
(WM_EMACS_SETWINDOWPOS): New macro.
(WM_EMACS_DESTROY_WINDOW): Value redefined.
Diffstat (limited to 'src/w32term.h')
-rw-r--r-- | src/w32term.h | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/src/w32term.h b/src/w32term.h index 368fc0c5d8e..9dd326ded95 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -75,6 +75,23 @@ struct win32_bitmap_record /* Record some info about this pixmap. */ int height, width, depth; }; + +/* Palette book-keeping stuff for mapping requested colors into the + system palette. Keep a ref-counted list of requested colors and + regenerate the app palette whenever the requested list changes. */ + +extern Lisp_Object Vwin32_enable_palette; + +struct win32_palette_entry { + struct win32_palette_entry * next; + PALETTEENTRY entry; +#if 0 + unsigned refcount; +#endif +}; + +extern void win32_regenerate_palette(struct frame *f); + /* For each display (currently only one on win32), we have a structure that records information about it. */ @@ -102,6 +119,15 @@ struct win32_display_info /* The cursor to use for vertical scroll bars. */ Cursor vertical_scroll_bar_cursor; + /* color palette information */ + int has_palette; + struct win32_palette_entry * color_list; + unsigned num_colors; + HPALETTE palette; + + /* deferred action flags checked when starting frame update */ + int regen_palette; + /* A table of all the fonts we have already loaded. */ struct font_info *font_table; @@ -187,6 +213,9 @@ extern struct win32_display_info *win32_term_init (); struct win32_output { + /* Original palette (used to deselect real palette after drawing) */ + HPALETTE old_palette; + /* Position of the Win32 window (x and y offsets in root window). */ int left_pos; int top_pos; @@ -548,18 +577,25 @@ win32_fill_area (f,hdc,f->output_data.win32->background_pixel,x,y,nx,ny) extern XFontStruct *win32_load_font (); extern void win32_unload_font (); -extern HDC map_mode(); - -#define my_get_dc(hwnd) (map_mode (GetDC (hwnd))) - #define WM_EMACS_START (WM_USER + 1) #define WM_EMACS_KILL (WM_EMACS_START + 0x00) #define WM_EMACS_CREATEWINDOW (WM_EMACS_START + 0x01) #define WM_EMACS_DONE (WM_EMACS_START + 0x02) #define WM_EMACS_CREATESCROLLBAR (WM_EMACS_START + 0x03) -#define WM_EMACS_DESTROYWINDOW (WM_EMACS_START + 0x04) +#define WM_EMACS_SHOWWINDOW (WM_EMACS_START + 0x04) +#define WM_EMACS_SETWINDOWPOS (WM_EMACS_START + 0x05) +#define WM_EMACS_DESTROYWINDOW (WM_EMACS_START + 0x06) #define WM_EMACS_END (WM_EMACS_START + 0x10) +typedef struct { + HWND hwndAfter; + int x; + int y; + int cx; + int cy; + int flags; +} Win32WindowPos; + #define WND_X_UNITS_INDEX (0) #define WND_Y_UNITS_INDEX (4) #define WND_BACKGROUND_INDEX (8) @@ -578,11 +614,19 @@ typedef struct Win32Msg { RECT rect; } Win32Msg; +extern CRITICAL_SECTION critsect; + extern void init_crit (); -extern void enter_crit (); -extern void leave_crit (); extern void delete_crit (); +#define enter_crit() EnterCriticalSection (&critsect) +#define leave_crit() LeaveCriticalSection (&critsect) + +extern void select_palette (struct frame * f, HDC hdc); +extern void deselect_palette (struct frame * f, HDC hdc); +extern HDC get_frame_dc (struct frame * f); +extern int release_frame_dc (struct frame * f, HDC hDC); + extern BOOL get_next_msg (); extern BOOL post_msg (); extern void wait_for_sync (); |