/[emacs]/emacs/src/w32fns.c
ViewVC logotype

Diff of /emacs/src/w32fns.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.173.2.1 by miles, Fri Apr 4 06:21:04 2003 UTC revision 1.173.2.2 by miles, Tue Oct 14 23:22:47 2003 UTC
# Line 239  Lisp_Object Qw32_charset_mac; Line 239  Lisp_Object Qw32_charset_mac;
239  Lisp_Object Qw32_charset_unicode;  Lisp_Object Qw32_charset_unicode;
240  #endif  #endif
241    
242    /* Prefix for system colors.  */
243    #define SYSTEM_COLOR_PREFIX "System"
244    #define SYSTEM_COLOR_PREFIX_LEN (sizeof (SYSTEM_COLOR_PREFIX) - 1)
245    
246  /* State variables for emulating a three button mouse. */  /* State variables for emulating a three button mouse. */
247  #define LMOUSE 1  #define LMOUSE 1
248  #define MMOUSE 2  #define MMOUSE 2
# Line 253  static unsigned mouse_move_timer = 0; Line 257  static unsigned mouse_move_timer = 0;
257  /* Window that is tracking the mouse.  */  /* Window that is tracking the mouse.  */
258  static HWND track_mouse_window;  static HWND track_mouse_window;
259    
260  typedef BOOL (WINAPI * TrackMouseEvent_Proc) (  typedef BOOL (WINAPI * TrackMouseEvent_Proc)
261      IN OUT LPTRACKMOUSEEVENT lpEventTrack    (IN OUT LPTRACKMOUSEEVENT lpEventTrack);
     );  
262    
263  TrackMouseEvent_Proc track_mouse_event_fn=NULL;  TrackMouseEvent_Proc track_mouse_event_fn = NULL;
264    ClipboardSequence_Proc clipboard_sequence_fn = NULL;
265    
266  /* W95 mousewheel handler */  /* W95 mousewheel handler */
267  unsigned int msh_mousewheel = 0;  unsigned int msh_mousewheel = 0;
# Line 655  x_real_positions (f, xptr, yptr) Line 659  x_real_positions (f, xptr, yptr)
659    ClientToScreen (FRAME_W32_WINDOW(f), &pt);    ClientToScreen (FRAME_W32_WINDOW(f), &pt);
660    
661    /* Remember x_pixels_diff and y_pixels_diff.  */    /* Remember x_pixels_diff and y_pixels_diff.  */
662    f->output_data.w32->x_pixels_diff = pt.x - rect.left;    f->x_pixels_diff = pt.x - rect.left;
663    f->output_data.w32->y_pixels_diff = pt.y - rect.top;    f->y_pixels_diff = pt.y - rect.top;
664    
665    *xptr = pt.x;    *xptr = pt.x;
666    *yptr = pt.y;    *yptr = pt.y;
# Line 1077  w32_color_map_lookup (colorname) Line 1081  w32_color_map_lookup (colorname)
1081    return ret;    return ret;
1082  }  }
1083    
1084    
1085    static void
1086    add_system_logical_colors_to_map (system_colors)
1087         Lisp_Object *system_colors;
1088    {
1089      HKEY colors_key;
1090    
1091      /* Other registry operations are done with input blocked.  */
1092      BLOCK_INPUT;
1093    
1094      /* Look for "Control Panel/Colors" under User and Machine registry
1095         settings.  */
1096      if (RegOpenKeyEx (HKEY_CURRENT_USER, "Control Panel\\Colors", 0,
1097                        KEY_READ, &colors_key) == ERROR_SUCCESS
1098          || RegOpenKeyEx (HKEY_LOCAL_MACHINE, "Control Panel\\Colors", 0,
1099                           KEY_READ, &colors_key) == ERROR_SUCCESS)
1100        {
1101          /* List all keys.  */
1102          char color_buffer[64];
1103          char full_name_buffer[MAX_PATH + SYSTEM_COLOR_PREFIX_LEN];
1104          int index = 0;
1105          DWORD name_size, color_size;
1106          char *name_buffer = full_name_buffer + SYSTEM_COLOR_PREFIX_LEN;
1107    
1108          name_size = sizeof (full_name_buffer) - SYSTEM_COLOR_PREFIX_LEN;
1109          color_size = sizeof (color_buffer);
1110    
1111          strcpy (full_name_buffer, SYSTEM_COLOR_PREFIX);
1112    
1113          while (RegEnumValueA (colors_key, index, name_buffer, &name_size,
1114                                NULL, NULL, color_buffer, &color_size)
1115                 == ERROR_SUCCESS)
1116            {
1117              int r, g, b;
1118              if (sscanf (color_buffer, " %u %u %u", &r, &g, &b) == 3)
1119                *system_colors = Fcons (Fcons (build_string (full_name_buffer),
1120                                               make_number (RGB (r, g, b))),
1121                                        *system_colors);
1122    
1123              name_size = sizeof (full_name_buffer) - SYSTEM_COLOR_PREFIX_LEN;
1124              color_size = sizeof (color_buffer);
1125              index++;
1126            }
1127          RegCloseKey (colors_key);
1128        }
1129    
1130      UNBLOCK_INPUT;
1131    }
1132    
1133    
1134  COLORREF  COLORREF
1135  x_to_w32_color (colorname)  x_to_w32_color (colorname)
1136       char * colorname;       char * colorname;
# Line 1268  x_to_w32_color (colorname) Line 1322  x_to_w32_color (colorname)
1322    return ret;    return ret;
1323  }  }
1324    
   
1325  void  void
1326  w32_regenerate_palette (FRAME_PTR f)  w32_regenerate_palette (FRAME_PTR f)
1327  {  {
# Line 1769  x_set_border_pixel (f, pix) Line 1822  x_set_border_pixel (f, pix)
1822    
1823    f->output_data.w32->border_pixel = pix;    f->output_data.w32->border_pixel = pix;
1824    
1825    if (FRAME_W32_WINDOW (f) != 0 && f->output_data.w32->border_width > 0)    if (FRAME_W32_WINDOW (f) != 0 && f->border_width > 0)
1826      {      {
1827        if (FRAME_VISIBLE_P (f))        if (FRAME_VISIBLE_P (f))
1828          redraw_frame (f);          redraw_frame (f);
# Line 1918  x_set_menu_bar_lines (f, value, oldval) Line 1971  x_set_menu_bar_lines (f, value, oldval)
1971        /* Adjust the frame size so that the client (text) dimensions        /* Adjust the frame size so that the client (text) dimensions
1972           remain the same.  This depends on FRAME_EXTERNAL_MENU_BAR being           remain the same.  This depends on FRAME_EXTERNAL_MENU_BAR being
1973           set correctly.  */           set correctly.  */
1974        x_set_window_size (f, 0, FRAME_WIDTH (f), FRAME_HEIGHT (f));        x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
1975        do_pending_window_change (0);        do_pending_window_change (0);
1976      }      }
1977    adjust_glyphs (f);    adjust_glyphs (f);
# Line 1956  x_set_tool_bar_lines (f, value, oldval) Line 2009  x_set_tool_bar_lines (f, value, oldval)
2009    
2010    /* Don't resize the tool-bar to more than we have room for.  */    /* Don't resize the tool-bar to more than we have room for.  */
2011    root_window = FRAME_ROOT_WINDOW (f);    root_window = FRAME_ROOT_WINDOW (f);
2012    root_height = XINT (XWINDOW (root_window)->height);    root_height = WINDOW_TOTAL_LINES (XWINDOW (root_window));
2013    if (root_height - delta < 1)    if (root_height - delta < 1)
2014      {      {
2015        delta = root_height - 1;        delta = root_height - 1;
# Line 1987  x_set_tool_bar_lines (f, value, oldval) Line 2040  x_set_tool_bar_lines (f, value, oldval)
2040    if (delta < 0)    if (delta < 0)
2041      {      {
2042        int height = FRAME_INTERNAL_BORDER_WIDTH (f);        int height = FRAME_INTERNAL_BORDER_WIDTH (f);
2043        int width = PIXEL_WIDTH (f);        int width = FRAME_PIXEL_WIDTH (f);
2044        int y = nlines * CANON_Y_UNIT (f);        int y = nlines * FRAME_LINE_HEIGHT (f);
2045    
2046        BLOCK_INPUT;        BLOCK_INPUT;
2047        {        {
# Line 2134  x_set_title (f, name, old_name) Line 2187  x_set_title (f, name, old_name)
2187  void x_set_scroll_bar_default_width (f)  void x_set_scroll_bar_default_width (f)
2188       struct frame *f;       struct frame *f;
2189  {  {
2190    int wid = FONT_WIDTH (f->output_data.w32->font);    int wid = FRAME_COLUMN_WIDTH (f);
2191    
2192    FRAME_SCROLL_BAR_PIXEL_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL);    FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL);
2193    FRAME_SCROLL_BAR_COLS (f) = (FRAME_SCROLL_BAR_PIXEL_WIDTH (f) +    FRAME_CONFIG_SCROLL_BAR_COLS (f) = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) +
2194                                 wid - 1) / wid;                                        wid - 1) / wid;
2195  }  }
2196    
2197    
# Line 2231  w32_createwindow (f) Line 2284  w32_createwindow (f)
2284    RECT rect;    RECT rect;
2285    
2286    rect.left = rect.top = 0;    rect.left = rect.top = 0;
2287    rect.right = PIXEL_WIDTH (f);    rect.right = FRAME_PIXEL_WIDTH (f);
2288    rect.bottom = PIXEL_HEIGHT (f);    rect.bottom = FRAME_PIXEL_HEIGHT (f);
2289    
2290    AdjustWindowRect (&rect, f->output_data.w32->dwStyle,    AdjustWindowRect (&rect, f->output_data.w32->dwStyle,
2291                      FRAME_EXTERNAL_MENU_BAR (f));                      FRAME_EXTERNAL_MENU_BAR (f));
# Line 2248  w32_createwindow (f) Line 2301  w32_createwindow (f)
2301      = CreateWindow (EMACS_CLASS,      = CreateWindow (EMACS_CLASS,
2302                      f->namebuf,                      f->namebuf,
2303                      f->output_data.w32->dwStyle | WS_CLIPCHILDREN,                      f->output_data.w32->dwStyle | WS_CLIPCHILDREN,
2304                      f->output_data.w32->left_pos,                      f->left_pos,
2305                      f->output_data.w32->top_pos,                      f->top_pos,
2306                      rect.right - rect.left,                      rect.right - rect.left,
2307                      rect.bottom - rect.top,                      rect.bottom - rect.top,
2308                      NULL,                      NULL,
# Line 2259  w32_createwindow (f) Line 2312  w32_createwindow (f)
2312    
2313    if (hwnd)    if (hwnd)
2314      {      {
2315        SetWindowLong (hwnd, WND_FONTWIDTH_INDEX, FONT_WIDTH (f->output_data.w32->font));        SetWindowLong (hwnd, WND_FONTWIDTH_INDEX, FRAME_COLUMN_WIDTH (f));
2316        SetWindowLong (hwnd, WND_LINEHEIGHT_INDEX, f->output_data.w32->line_height);        SetWindowLong (hwnd, WND_LINEHEIGHT_INDEX, FRAME_LINE_HEIGHT (f));
2317        SetWindowLong (hwnd, WND_BORDER_INDEX, f->output_data.w32->internal_border_width);        SetWindowLong (hwnd, WND_BORDER_INDEX, FRAME_INTERNAL_BORDER_WIDTH (f));
2318        SetWindowLong (hwnd, WND_SCROLLBAR_INDEX, f->output_data.w32->vertical_scroll_bar_extra);        SetWindowLong (hwnd, WND_SCROLLBAR_INDEX, f->scroll_bar_actual_width);
2319        SetWindowLong (hwnd, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f));        SetWindowLong (hwnd, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f));
2320    
2321        /* Enable drag-n-drop.  */        /* Enable drag-n-drop.  */
# Line 4014  my_create_tip_window (f) Line 4067  my_create_tip_window (f)
4067    RECT rect;    RECT rect;
4068    
4069    rect.left = rect.top = 0;    rect.left = rect.top = 0;
4070    rect.right = PIXEL_WIDTH (f);    rect.right = FRAME_PIXEL_WIDTH (f);
4071    rect.bottom = PIXEL_HEIGHT (f);    rect.bottom = FRAME_PIXEL_HEIGHT (f);
4072    
4073    AdjustWindowRect (&rect, f->output_data.w32->dwStyle,    AdjustWindowRect (&rect, f->output_data.w32->dwStyle,
4074                      FRAME_EXTERNAL_MENU_BAR (f));                      FRAME_EXTERNAL_MENU_BAR (f));
# Line 4024  my_create_tip_window (f) Line 4077  my_create_tip_window (f)
4077      = CreateWindow (EMACS_CLASS,      = CreateWindow (EMACS_CLASS,
4078                      f->namebuf,                      f->namebuf,
4079                      f->output_data.w32->dwStyle,                      f->output_data.w32->dwStyle,
4080                      f->output_data.w32->left_pos,                      f->left_pos,
4081                      f->output_data.w32->top_pos,                      f->top_pos,
4082                      rect.right - rect.left,                      rect.right - rect.left,
4083                      rect.bottom - rect.top,                      rect.bottom - rect.top,
4084                      FRAME_W32_WINDOW (SELECTED_FRAME ()), /* owner */                      FRAME_W32_WINDOW (SELECTED_FRAME ()), /* owner */
# Line 4035  my_create_tip_window (f) Line 4088  my_create_tip_window (f)
4088    
4089    if (tip_window)    if (tip_window)
4090      {      {
4091        SetWindowLong (tip_window, WND_FONTWIDTH_INDEX, FONT_WIDTH (f->output_data.w32->font));        SetWindowLong (tip_window, WND_FONTWIDTH_INDEX, FRAME_COLUMN_WIDTH (f));
4092        SetWindowLong (tip_window, WND_LINEHEIGHT_INDEX, f->output_data.w32->line_height);        SetWindowLong (tip_window, WND_LINEHEIGHT_INDEX, FRAME_LINE_HEIGHT (f));
4093        SetWindowLong (tip_window, WND_BORDER_INDEX, f->output_data.w32->internal_border_width);        SetWindowLong (tip_window, WND_BORDER_INDEX, FRAME_INTERNAL_BORDER_WIDTH (f));
4094        SetWindowLong (tip_window, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f));        SetWindowLong (tip_window, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f));
4095    
4096        /* Tip frames have no scrollbars.  */        /* Tip frames have no scrollbars.  */
# Line 4154  x_make_gc (f) Line 4207  x_make_gc (f)
4207       Note that many default values are used.  */       Note that many default values are used.  */
4208    
4209    /* Normal video */    /* Normal video */
4210    gc_values.font = f->output_data.w32->font;    gc_values.font = FRAME_FONT (f);
4211    
4212    /* Cursor has cursor-color background, background-color foreground.  */    /* Cursor has cursor-color background, background-color foreground.  */
4213    gc_values.foreground = FRAME_BACKGROUND_PIXEL (f);    gc_values.foreground = FRAME_BACKGROUND_PIXEL (f);
# Line 4286  This function is an internal primitive-- Line 4339  This function is an internal primitive--
4339    FRAME_CAN_HAVE_SCROLL_BARS (f) = 1;    FRAME_CAN_HAVE_SCROLL_BARS (f) = 1;
4340    
4341    /* By default, make scrollbars the system standard width. */    /* By default, make scrollbars the system standard width. */
4342    f->scroll_bar_pixel_width = GetSystemMetrics (SM_CXVSCROLL);    FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL);
4343    
4344    f->output_method = output_w32;    f->output_method = output_w32;
4345    f->output_data.w32 =    f->output_data.w32 =
# Line 4466  This function is an internal primitive-- Line 4519  This function is an internal primitive--
4519    x_default_parameter (f, parms, Qscroll_bar_width, Qnil,    x_default_parameter (f, parms, Qscroll_bar_width, Qnil,
4520                         "scrollBarWidth", "ScrollBarWidth", RES_TYPE_NUMBER);                         "scrollBarWidth", "ScrollBarWidth", RES_TYPE_NUMBER);
4521    
4522    /* Dimensions, especially f->height, must be done via change_frame_size.    /* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size.
4523       Change will not be effected unless different from the current       Change will not be effected unless different from the current
4524       f->height.  */       FRAME_LINES (f).  */
4525    width = f->width;    width = FRAME_COLS (f);
4526    height = f->height;    height = FRAME_LINES (f);
4527    
4528    f->height = 0;    FRAME_LINES (f) = 0;
4529    SET_FRAME_WIDTH (f, 0);    SET_FRAME_COLS (f, 0);
4530    change_frame_size (f, height, width, 1, 0, 0);    change_frame_size (f, height, width, 1, 0, 0);
4531    
4532    /* Tell the server what size and position, etc, we want, and how    /* Tell the server what size and position, etc, we want, and how
# Line 4731  w32_load_system_font (f,fontname,size) Line 4784  w32_load_system_font (f,fontname,size)
4784    
4785      /* Now fill in the slots of *FONTP.  */      /* Now fill in the slots of *FONTP.  */
4786      BLOCK_INPUT;      BLOCK_INPUT;
4787        bzero (fontp, sizeof (*fontp));
4788      fontp->font = font;      fontp->font = font;
4789      fontp->font_idx = i;      fontp->font_idx = i;
4790      fontp->name = (char *) xmalloc (strlen (fontname) + 1);      fontp->name = (char *) xmalloc (strlen (fontname) + 1);
# Line 6658  int Line 6712  int
6712  x_pixel_width (f)  x_pixel_width (f)
6713       register struct frame *f;       register struct frame *f;
6714  {  {
6715    return PIXEL_WIDTH (f);    return FRAME_PIXEL_WIDTH (f);
6716  }  }
6717    
6718  int  int
6719  x_pixel_height (f)  x_pixel_height (f)
6720       register struct frame *f;       register struct frame *f;
6721  {  {
6722    return PIXEL_HEIGHT (f);    return FRAME_PIXEL_HEIGHT (f);
6723  }  }
6724    
6725  int  int
6726  x_char_width (f)  x_char_width (f)
6727       register struct frame *f;       register struct frame *f;
6728  {  {
6729    return FONT_WIDTH (f->output_data.w32->font);    return FRAME_COLUMN_WIDTH (f);
6730  }  }
6731    
6732  int  int
6733  x_char_height (f)  x_char_height (f)
6734       register struct frame *f;       register struct frame *f;
6735  {  {
6736    return f->output_data.w32->line_height;    return FRAME_LINE_HEIGHT (f);
6737  }  }
6738    
6739  int  int
# Line 6774  terminate Emacs if we can't open the con Line 6828  terminate Emacs if we can't open the con
6828    if (NILP (Vw32_color_map))    if (NILP (Vw32_color_map))
6829      Vw32_color_map = Fw32_default_color_map ();      Vw32_color_map = Fw32_default_color_map ();
6830    
6831      /* Merge in system logical colors.  */
6832      add_system_logical_colors_to_map (&Vw32_color_map);
6833    
6834    if (! NILP (xrm_string))    if (! NILP (xrm_string))
6835      xrm_option = (unsigned char *) SDATA (xrm_string);      xrm_option = (unsigned char *) SDATA (xrm_string);
6836    else    else
# Line 7244  or omitted means use the selected frame. Line 7301  or omitted means use the selected frame.
7301        int height = img->height + 2 * img->vmargin;        int height = img->height + 2 * img->vmargin;
7302    
7303        if (NILP (pixels))        if (NILP (pixels))
7304          size = Fcons (make_float ((double) width / CANON_X_UNIT (f)),          size = Fcons (make_float ((double) width / FRAME_COLUMN_WIDTH (f)),
7305                        make_float ((double) height / CANON_Y_UNIT (f)));                        make_float ((double) height / FRAME_LINE_HEIGHT (f)));
7306        else        else
7307          size = Fcons (make_number (width), make_number (height));          size = Fcons (make_number (width), make_number (height));
7308      }      }
# Line 12731  x_create_tip_frame (dpyinfo, parms, text Line 12788  x_create_tip_frame (dpyinfo, parms, text
12788    XSETFRAME (frame, f);    XSETFRAME (frame, f);
12789    
12790    buffer = Fget_buffer_create (build_string (" *tip*"));    buffer = Fget_buffer_create (build_string (" *tip*"));
12791    Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer);    Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil);
12792    old_buffer = current_buffer;    old_buffer = current_buffer;
12793    set_buffer_internal_1 (XBUFFER (buffer));    set_buffer_internal_1 (XBUFFER (buffer));
12794    current_buffer->truncate_lines = Qnil;    current_buffer->truncate_lines = Qnil;
# Line 12858  x_create_tip_frame (dpyinfo, parms, text Line 12915  x_create_tip_frame (dpyinfo, parms, text
12915    window_prompting = x_figure_window_size (f, parms, 0);    window_prompting = x_figure_window_size (f, parms, 0);
12916    
12917    /* No fringes on tip frame.  */    /* No fringes on tip frame.  */
12918    f->output_data.w32->fringes_extra = 0;    f->fringe_cols = 0;
12919    f->output_data.w32->fringe_cols = 0;    f->left_fringe_width = 0;
12920    f->output_data.w32->left_fringe_width = 0;    f->right_fringe_width = 0;
   f->output_data.w32->right_fringe_width = 0;  
12921    
12922    BLOCK_INPUT;    BLOCK_INPUT;
12923    my_create_tip_window (f);    my_create_tip_window (f);
# Line 12876  x_create_tip_frame (dpyinfo, parms, text Line 12932  x_create_tip_frame (dpyinfo, parms, text
12932    x_default_parameter (f, parms, Qcursor_type, Qbox,    x_default_parameter (f, parms, Qcursor_type, Qbox,
12933                         "cursorType", "CursorType", RES_TYPE_SYMBOL);                         "cursorType", "CursorType", RES_TYPE_SYMBOL);
12934    
12935    /* Dimensions, especially f->height, must be done via change_frame_size.    /* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size.
12936       Change will not be effected unless different from the current       Change will not be effected unless different from the current
12937       f->height.  */       FRAME_LINES (f).  */
12938    width = f->width;    width = FRAME_COLS (f);
12939    height = f->height;    height = FRAME_LINES (f);
12940    f->height = 0;    FRAME_LINES (f) = 0;
12941    SET_FRAME_WIDTH (f, 0);    SET_FRAME_COLS (f, 0);
12942    change_frame_size (f, height, width, 1, 0, 0);    change_frame_size (f, height, width, 1, 0, 0);
12943    
12944    /* Add `tooltip' frame parameter's default value. */    /* Add `tooltip' frame parameter's default value. */
# Line 13071  Text larger than the specified size is c Line 13127  Text larger than the specified size is c
13127              }              }
13128    
13129            BLOCK_INPUT;            BLOCK_INPUT;
13130            compute_tip_xy (f, parms, dx, dy, PIXEL_WIDTH (f),            compute_tip_xy (f, parms, dx, dy, FRAME_PIXEL_WIDTH (f),
13131                            PIXEL_HEIGHT (f), &root_x, &root_y);                            FRAME_PIXEL_HEIGHT (f), &root_x, &root_y);
13132    
13133            /* Put tooltip in topmost group and in position.  */            /* Put tooltip in topmost group and in position.  */
13134            SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOPMOST,            SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOPMOST,
# Line 13120  Text larger than the specified size is c Line 13176  Text larger than the specified size is c
13176    
13177    /* Set up the frame's root window.  */    /* Set up the frame's root window.  */
13178    w = XWINDOW (FRAME_ROOT_WINDOW (f));    w = XWINDOW (FRAME_ROOT_WINDOW (f));
13179    w->left = w->top = make_number (0);    w->left_col = w->top_line = make_number (0);
13180    
13181    if (CONSP (Vx_max_tooltip_size)    if (CONSP (Vx_max_tooltip_size)
13182        && INTEGERP (XCAR (Vx_max_tooltip_size))        && INTEGERP (XCAR (Vx_max_tooltip_size))
# Line 13128  Text larger than the specified size is c Line 13184  Text larger than the specified size is c
13184        && INTEGERP (XCDR (Vx_max_tooltip_size))        && INTEGERP (XCDR (Vx_max_tooltip_size))
13185        && XINT (XCDR (Vx_max_tooltip_size)) > 0)        && XINT (XCDR (Vx_max_tooltip_size)) > 0)
13186      {      {
13187        w->width = XCAR (Vx_max_tooltip_size);        w->total_cols = XCAR (Vx_max_tooltip_size);
13188        w->height = XCDR (Vx_max_tooltip_size);        w->total_lines = XCDR (Vx_max_tooltip_size);
13189      }      }
13190    else    else
13191      {      {
13192        w->width = make_number (80);        w->total_cols = make_number (80);
13193        w->height = make_number (40);        w->total_lines = make_number (40);
13194      }      }
13195    
13196    f->window_width = XINT (w->width);    FRAME_TOTAL_COLS (f) = XINT (w->total_cols);
13197    adjust_glyphs (f);    adjust_glyphs (f);
13198    w->pseudo_window_p = 1;    w->pseudo_window_p = 1;
13199    
# Line 14208  WINDOWS_CHARSET is a symbol that can be Line 14264  WINDOWS_CHARSET is a symbol that can be
14264  w32-charset-ansi, w32-charset-default, w32-charset-symbol,  w32-charset-ansi, w32-charset-default, w32-charset-symbol,
14265  w32-charset-shiftjis, w32-charset-hangeul, w32-charset-gb2312,  w32-charset-shiftjis, w32-charset-hangeul, w32-charset-gb2312,
14266  w32-charset-chinesebig5,  w32-charset-chinesebig5,
 #ifdef JOHAB_CHARSET  
14267  w32-charset-johab, w32-charset-hebrew,  w32-charset-johab, w32-charset-hebrew,
14268  w32-charset-arabic, w32-charset-greek, w32-charset-turkish,  w32-charset-arabic, w32-charset-greek, w32-charset-turkish,
14269  w32-charset-vietnamese, w32-charset-thai, w32-charset-easteurope,  w32-charset-vietnamese, w32-charset-thai, w32-charset-easteurope,
14270  w32-charset-russian, w32-charset-mac, w32-charset-baltic,  w32-charset-russian, w32-charset-mac, w32-charset-baltic,
 #endif  
 #ifdef UNICODE_CHARSET  
14271  w32-charset-unicode,  w32-charset-unicode,
 #endif  
14272  or w32-charset-oem.  or w32-charset-oem.
14273  CODEPAGE should be an integer specifying the codepage that should be used  CODEPAGE should be an integer specifying the codepage that should be used
14274  to display the character set, t to do no translation and output as Unicode,  to display the character set, t to do no translation and output as Unicode,
# Line 14400  versions of Windows) characters.  */); Line 14452  versions of Windows) characters.  */);
14452    defsubr (&Simage_size);    defsubr (&Simage_size);
14453    defsubr (&Simage_mask_p);    defsubr (&Simage_mask_p);
14454    
 #if GLYPH_DEBUG  
   defsubr (&Simagep);  
   defsubr (&Slookup_image);  
 #endif  
   
14455    hourglass_atimer = NULL;    hourglass_atimer = NULL;
14456    hourglass_shown_p = 0;    hourglass_shown_p = 0;
14457    defsubr (&Sx_show_tip);    defsubr (&Sx_show_tip);
# Line 14432  versions of Windows) characters.  */); Line 14479  versions of Windows) characters.  */);
14479  void globals_of_w32fns ()  void globals_of_w32fns ()
14480  {  {
14481    HMODULE user32_lib = GetModuleHandle ("user32.dll");    HMODULE user32_lib = GetModuleHandle ("user32.dll");
14482          /*    /*
14483                  TrackMouseEvent not available in all versions of Windows, so must load      TrackMouseEvent not available in all versions of Windows, so must load
14484                  it dynamically.  Do it once, here, instead of every time it is used.      it dynamically.  Do it once, here, instead of every time it is used.
14485    */    */
14486    track_mouse_event_fn = (TrackMouseEvent_Proc) GetProcAddress (user32_lib, "TrackMouseEvent");    track_mouse_event_fn = (TrackMouseEvent_Proc)
14487        GetProcAddress (user32_lib, "TrackMouseEvent");
14488      /* ditto for GetClipboardSequenceNumber.  */
14489      clipboard_sequence_fn = (ClipboardSequence_Proc)
14490        GetProcAddress (user32_lib, "GetClipboardSequenceNumber");
14491  }  }
14492    
14493  /* Initialize image types. Based on which libraries are available.  */  /* Initialize image types. Based on which libraries are available.  */
# Line 14549  w32_last_error() Line 14600  w32_last_error()
14600  {  {
14601    return GetLastError ();    return GetLastError ();
14602  }  }
14603    
14604    /* arch-tag: 707589ab-b9be-4638-8cdd-74629cc9b446
14605       (do not change this comment) */

Legend:
Removed from v.1.173.2.1  
changed lines
  Added in v.1.173.2.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26