comparison src/frame-msw.c @ 5125:b5df3737028a ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Wed, 24 Feb 2010 01:58:04 -0600
parents d1247f3cc363 ae48681c47fa
children 2a462149bd6a
comparison
equal deleted inserted replaced
5124:623d57b7fbe8 5125:b5df3737028a
190 #ifdef HAVE_TOOLBARS 190 #ifdef HAVE_TOOLBARS
191 /* EQ not EQUAL or we will get QUIT crashes, see below. */ 191 /* EQ not EQUAL or we will get QUIT crashes, see below. */
192 FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f) = 192 FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f) =
193 make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); 193 make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ);
194 #endif 194 #endif
195 /* hashtable of instantiated glyphs on the frame. Make them EQ because 195 /* hashtable of instantiated glyphs on the frame. [[ Make them EQ because
196 we only use ints as keys. Otherwise we run into stickiness in 196 we only use ints as keys. Otherwise we run into stickiness in
197 redisplay because internal_equal() can QUIT. See 197 redisplay because internal_equal() can QUIT. See
198 enter_redisplay_critical_section(). */ 198 enter_redisplay_critical_section(). ]] -- probably not true any more,
199 now that we have internal_equal_trapping_problems(). --ben */
199 FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f) = 200 FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f) =
200 make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQ); 201 make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQ);
201 FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f) = 202 FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f) =
202 make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQ); 203 make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQ);
203 FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f) = 204 FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f) =
246 Vmswindows_frame_being_created = frame_obj; 247 Vmswindows_frame_being_created = frame_obj;
247 { 248 {
248 const Extbyte *nameext = 0; 249 const Extbyte *nameext = 0;
249 250
250 if (STRINGP (f->name)) 251 if (STRINGP (f->name))
251 LISP_STRING_TO_TSTR (f->name, nameext); 252 nameext = LISP_STRING_TO_TSTR (f->name);
252 else if (STRINGP (name)) 253 else if (STRINGP (name))
253 LISP_STRING_TO_TSTR (name, nameext); 254 nameext = LISP_STRING_TO_TSTR (name);
254 else 255 else
255 nameext = XETEXT (XEMACS_CLASS); 256 nameext = XETEXT (XEMACS_CLASS);
256 hwnd = qxeCreateWindowEx (exstyle, 257 hwnd = qxeCreateWindowEx (exstyle,
257 XETEXT (XEMACS_CLASS), 258 XETEXT (XEMACS_CLASS),
258 nameext, 259 nameext,
270 STRINGP (name) ? name : 271 STRINGP (name) ? name :
271 Qunbound); 272 Qunbound);
272 273
273 FRAME_MSWINDOWS_HANDLE (f) = hwnd; 274 FRAME_MSWINDOWS_HANDLE (f) = hwnd;
274 275
275 qxeSetWindowLong (hwnd, XWL_FRAMEOBJ, (LONG)LISP_TO_VOID (frame_obj)); 276 qxeSetWindowLong (hwnd, XWL_FRAMEOBJ, (LONG)STORE_LISP_IN_VOID (frame_obj));
276 FRAME_MSWINDOWS_DC (f) = GetDC (hwnd); 277 FRAME_MSWINDOWS_DC (f) = GetDC (hwnd);
277 SetTextAlign (FRAME_MSWINDOWS_DC (f), TA_BASELINE | TA_LEFT | TA_NOUPDATECP); 278 SetTextAlign (FRAME_MSWINDOWS_DC (f), TA_BASELINE | TA_LEFT | TA_NOUPDATECP);
278 279
279 #ifdef HAVE_DIALOGS 280 #ifdef HAVE_DIALOGS
280 if (FRAME_MSWINDOWS_POPUP (f)) 281 if (FRAME_MSWINDOWS_POPUP (f))
359 mswindows_unregister_popup_frame (wrap_frame (f)); 360 mswindows_unregister_popup_frame (wrap_frame (f));
360 #endif 361 #endif
361 ReleaseDC (FRAME_MSWINDOWS_HANDLE (f), FRAME_MSWINDOWS_DC (f)); 362 ReleaseDC (FRAME_MSWINDOWS_HANDLE (f), FRAME_MSWINDOWS_DC (f));
362 DestroyWindow (FRAME_MSWINDOWS_HANDLE (f)); 363 DestroyWindow (FRAME_MSWINDOWS_HANDLE (f));
363 #ifndef NEW_GC 364 #ifndef NEW_GC
364 xfree (f->frame_data, void *); 365 xfree (f->frame_data);
365 #endif /* not NEW_GC */ 366 #endif /* not NEW_GC */
366 } 367 }
367 f->frame_data = 0; 368 f->frame_data = 0;
368 } 369 }
369 370
550 if (!mswindows_window_is_xemacs (hwnd)) 551 if (!mswindows_window_is_xemacs (hwnd))
551 return 0; 552 return 0;
552 553
553 /* Yippie! */ 554 /* Yippie! */
554 ScreenToClient (hwnd, &pt); 555 ScreenToClient (hwnd, &pt);
555 *frame = VOID_TO_LISP ((void *) qxeGetWindowLong (hwnd, XWL_FRAMEOBJ)); 556 *frame = GET_LISP_FROM_VOID ((void *) qxeGetWindowLong (hwnd, XWL_FRAMEOBJ));
556 *x = pt.x; 557 *x = pt.x;
557 *y = pt.y; 558 *y = pt.y;
558 return 1; 559 return 1;
559 } 560 }
560 561
590 if (new_checksum != FRAME_MSWINDOWS_TITLE_CHECKSUM (f)) 591 if (new_checksum != FRAME_MSWINDOWS_TITLE_CHECKSUM (f))
591 { 592 {
592 Extbyte *title_ext; 593 Extbyte *title_ext;
593 594
594 FRAME_MSWINDOWS_TITLE_CHECKSUM (f) = new_checksum; 595 FRAME_MSWINDOWS_TITLE_CHECKSUM (f) = new_checksum;
595 C_STRING_TO_TSTR (title, title_ext); 596 title_ext = ITEXT_TO_TSTR (title);
596 qxeSetWindowText (FRAME_MSWINDOWS_HANDLE (f), title_ext); 597 qxeSetWindowText (FRAME_MSWINDOWS_HANDLE (f), title_ext);
597 } 598 }
598 } 599 }
599 600
600 static Lisp_Object 601 static Lisp_Object
602 { 603 {
603 Ibyte str[255]; 604 Ibyte str[255];
604 struct frame *f = decode_mswindows_frame (frame); 605 struct frame *f = decode_mswindows_frame (frame);
605 606
606 qxesprintf (str, "%lu", (unsigned long) FRAME_MSWINDOWS_HANDLE (f)); 607 qxesprintf (str, "%lu", (unsigned long) FRAME_MSWINDOWS_HANDLE (f));
607 return build_intstring (str); 608 return build_istring (str);
608 } 609 }
609 610
610 static Lisp_Object 611 static Lisp_Object
611 mswindows_frame_property (struct frame *f, Lisp_Object property) 612 mswindows_frame_property (struct frame *f, Lisp_Object property)
612 { 613 {
818 HWND hwnd = FRAME_MSWINDOWS_HANDLE (f); 819 HWND hwnd = FRAME_MSWINDOWS_HANDLE (f);
819 hwnd = GetParent (hwnd); 820 hwnd = GetParent (hwnd);
820 if (hwnd) 821 if (hwnd)
821 { 822 {
822 Lisp_Object parent; 823 Lisp_Object parent;
823 parent = VOID_TO_LISP ((void *) qxeGetWindowLong (hwnd, XWL_FRAMEOBJ)); 824 parent = GET_LISP_FROM_VOID ((void *) qxeGetWindowLong (hwnd, XWL_FRAMEOBJ));
824 assert (FRAME_MSWINDOWS_P (XFRAME (parent))); 825 assert (FRAME_MSWINDOWS_P (XFRAME (parent)));
825 return parent; 826 return parent;
826 } 827 }
827 else 828 else
828 return Qnil; 829 return Qnil;
993 di.cbSize = sizeof (di); 994 di.cbSize = sizeof (di);
994 { 995 {
995 const Extbyte *nameext; 996 const Extbyte *nameext;
996 997
997 if (STRINGP (f->name)) 998 if (STRINGP (f->name))
998 LISP_STRING_TO_TSTR (f->name, nameext); 999 nameext = LISP_STRING_TO_TSTR (f->name);
999 else 1000 else
1000 nameext = XETEXT ("XEmacs print document"); 1001 nameext = XETEXT ("XEmacs print document");
1001 di.lpszDocName = (XELPTSTR) nameext; 1002 di.lpszDocName = (XELPTSTR) nameext;
1002 } 1003 }
1003 di.lpszOutput = NULL; 1004 di.lpszOutput = NULL;
1028 HDC hdc = DEVICE_MSPRINTER_HDC (XDEVICE (FRAME_DEVICE (f))); 1029 HDC hdc = DEVICE_MSPRINTER_HDC (XDEVICE (FRAME_DEVICE (f)));
1029 if (FRAME_MSPRINTER_PAGE_STARTED (f)) 1030 if (FRAME_MSPRINTER_PAGE_STARTED (f))
1030 EndPage (hdc); 1031 EndPage (hdc);
1031 if (FRAME_MSPRINTER_JOB_STARTED (f)) 1032 if (FRAME_MSPRINTER_JOB_STARTED (f))
1032 EndDoc (hdc); 1033 EndDoc (hdc);
1033 xfree (f->frame_data, void *); 1034 xfree (f->frame_data);
1034 } 1035 }
1035 1036
1036 f->frame_data = 0; 1037 f->frame_data = 0;
1037 } 1038 }
1038 1039