| 4210 | | |
|---|
| 4211 | | |
|---|
| 4212 | | /*********************************************************************** |
|---|
| 4213 | | Inspect Device Capability/Intrinsic Facilities. |
|---|
| 4214 | | ***********************************************************************/ |
|---|
| 4215 | | |
|---|
| 4216 | | #if 0 |
|---|
| 4217 | | DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width, |
|---|
| 4218 | | 0, 1, 0, |
|---|
| 4219 | | "Returns the width in pixels of the X display DISPLAY.\n\ |
|---|
| 4220 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4221 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4222 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4223 | | (display) |
|---|
| 4224 | | Lisp_Object display; |
|---|
| 4225 | | { |
|---|
| 4226 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4227 | | |
|---|
| 4228 | | return make_number (dpyinfo->width); |
|---|
| 4229 | | } |
|---|
| 4230 | | |
|---|
| 4231 | | DEFUN ("x-display-pixel-height", Fx_display_pixel_height, |
|---|
| 4232 | | Sx_display_pixel_height, 0, 1, 0, |
|---|
| 4233 | | "Returns the height in pixels of the X display DISPLAY.\n\ |
|---|
| 4234 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4235 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4236 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4237 | | (display) |
|---|
| 4238 | | Lisp_Object display; |
|---|
| 4239 | | { |
|---|
| 4240 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4241 | | |
|---|
| 4242 | | return make_number (dpyinfo->height); |
|---|
| 4243 | | } |
|---|
| 4244 | | |
|---|
| 4245 | | DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes, |
|---|
| 4246 | | 0, 1, 0, |
|---|
| 4247 | | "Returns the number of bitplanes of the X display DISPLAY.\n\ |
|---|
| 4248 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4249 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4250 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4251 | | (display) |
|---|
| 4252 | | Lisp_Object display; |
|---|
| 4253 | | { |
|---|
| 4254 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4255 | | |
|---|
| 4256 | | return make_number (dpyinfo->n_planes); |
|---|
| 4257 | | } |
|---|
| 4258 | | |
|---|
| 4259 | | DEFUN ("x-display-color-cells", Fx_display_color_cells, Sx_display_color_cells, |
|---|
| 4260 | | 0, 1, 0, |
|---|
| 4261 | | "Returns the number of color cells of the X display DISPLAY.\n\ |
|---|
| 4262 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4263 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4264 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4265 | | (display) |
|---|
| 4266 | | Lisp_Object display; |
|---|
| 4267 | | { |
|---|
| 4268 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4269 | | |
|---|
| 4270 | | return make_number (DisplayCells (dpyinfo->display, |
|---|
| 4271 | | XScreenNumberOfScreen (dpyinfo->screen))); |
|---|
| 4272 | | } |
|---|
| 4273 | | |
|---|
| 4274 | | DEFUN ("x-server-max-request-size", Fx_server_max_request_size, |
|---|
| 4275 | | Sx_server_max_request_size, |
|---|
| 4276 | | 0, 1, 0, |
|---|
| 4277 | | "Returns the maximum request size of the X server of display DISPLAY.\n\ |
|---|
| 4278 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4279 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4280 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4281 | | (display) |
|---|
| 4282 | | Lisp_Object display; |
|---|
| 4283 | | { |
|---|
| 4284 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4285 | | |
|---|
| 4286 | | return make_number (MAXREQUEST (dpyinfo->display)); |
|---|
| 4287 | | } |
|---|
| 4288 | | |
|---|
| 4289 | | DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, |
|---|
| 4290 | | "Returns the vendor ID string of the X server of display DISPLAY.\n\ |
|---|
| 4291 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4292 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4293 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4294 | | (display) |
|---|
| 4295 | | Lisp_Object display; |
|---|
| 4296 | | { |
|---|
| 4297 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4298 | | char *vendor = ServerVendor (dpyinfo->display); |
|---|
| 4299 | | |
|---|
| 4300 | | if (! vendor) vendor = ""; |
|---|
| 4301 | | return build_string (vendor); |
|---|
| 4302 | | } |
|---|
| 4303 | | |
|---|
| 4304 | | DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, |
|---|
| 4305 | | "Returns the version numbers of the X server of display DISPLAY.\n\ |
|---|
| 4306 | | The value is a list of three integers: the major and minor\n\ |
|---|
| 4307 | | version numbers of the X Protocol in use, and the vendor-specific release\n\ |
|---|
| 4308 | | number. See also the function `x-server-vendor'.\n\n\ |
|---|
| 4309 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4310 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4311 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4312 | | (display) |
|---|
| 4313 | | Lisp_Object display; |
|---|
| 4314 | | { |
|---|
| 4315 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4316 | | Display *dpy = dpyinfo->display; |
|---|
| 4317 | | |
|---|
| 4318 | | return Fcons (make_number (ProtocolVersion (dpy)), |
|---|
| 4319 | | Fcons (make_number (ProtocolRevision (dpy)), |
|---|
| 4320 | | Fcons (make_number (VendorRelease (dpy)), Qnil))); |
|---|
| 4321 | | } |
|---|
| 4322 | | |
|---|
| 4323 | | DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0, |
|---|
| 4324 | | "Returns the number of screens on the X server of display DISPLAY.\n\ |
|---|
| 4325 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4326 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4327 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4328 | | (display) |
|---|
| 4329 | | Lisp_Object display; |
|---|
| 4330 | | { |
|---|
| 4331 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4332 | | |
|---|
| 4333 | | return make_number (ScreenCount (dpyinfo->display)); |
|---|
| 4334 | | } |
|---|
| 4335 | | |
|---|
| 4336 | | DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0, |
|---|
| 4337 | | "Returns the height in millimeters of the X display DISPLAY.\n\ |
|---|
| 4338 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4339 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4340 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4341 | | (display) |
|---|
| 4342 | | Lisp_Object display; |
|---|
| 4343 | | { |
|---|
| 4344 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4345 | | |
|---|
| 4346 | | return make_number (HeightMMOfScreen (dpyinfo->screen)); |
|---|
| 4347 | | } |
|---|
| 4348 | | |
|---|
| 4349 | | DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0, |
|---|
| 4350 | | "Returns the width in millimeters of the X display DISPLAY.\n\ |
|---|
| 4351 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4352 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4353 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4354 | | (display) |
|---|
| 4355 | | Lisp_Object display; |
|---|
| 4356 | | { |
|---|
| 4357 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4358 | | |
|---|
| 4359 | | return make_number (WidthMMOfScreen (dpyinfo->screen)); |
|---|
| 4360 | | } |
|---|
| 4361 | | |
|---|
| 4362 | | DEFUN ("x-display-backing-store", Fx_display_backing_store, |
|---|
| 4363 | | Sx_display_backing_store, 0, 1, 0, |
|---|
| 4364 | | "Returns an indication of whether X display DISPLAY does backing store.\n\ |
|---|
| 4365 | | The value may be `always', `when-mapped', or `not-useful'.\n\ |
|---|
| 4366 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4367 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4368 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4369 | | (display) |
|---|
| 4370 | | Lisp_Object display; |
|---|
| 4371 | | { |
|---|
| 4372 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4373 | | Lisp_Object result; |
|---|
| 4374 | | |
|---|
| 4375 | | switch (DoesBackingStore (dpyinfo->screen)) |
|---|
| 4376 | | { |
|---|
| 4377 | | case Always: |
|---|
| 4378 | | result = intern ("always"); |
|---|
| 4379 | | break; |
|---|
| 4380 | | |
|---|
| 4381 | | case WhenMapped: |
|---|
| 4382 | | result = intern ("when-mapped"); |
|---|
| 4383 | | break; |
|---|
| 4384 | | |
|---|
| 4385 | | case NotUseful: |
|---|
| 4386 | | result = intern ("not-useful"); |
|---|
| 4387 | | break; |
|---|
| 4388 | | |
|---|
| 4389 | | default: |
|---|
| 4390 | | error ("Strange value for BackingStore parameter of screen"); |
|---|
| 4391 | | result = Qnil; |
|---|
| 4392 | | } |
|---|
| 4393 | | |
|---|
| 4394 | | return result; |
|---|
| 4395 | | } |
|---|
| 4396 | | |
|---|
| 4397 | | DEFUN ("x-display-visual-class", Fx_display_visual_class, |
|---|
| 4398 | | Sx_display_visual_class, 0, 1, 0, |
|---|
| 4399 | | "Returns the visual class of the X display DISPLAY.\n\ |
|---|
| 4400 | | The value is one of the symbols `static-gray', `gray-scale',\n\ |
|---|
| 4401 | | `static-color', `pseudo-color', `true-color', or `direct-color'.\n\n\ |
|---|
| 4402 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4403 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4404 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4405 | | (display) |
|---|
| 4406 | | Lisp_Object display; |
|---|
| 4407 | | { |
|---|
| 4408 | | struct x_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4409 | | Lisp_Object result; |
|---|
| 4410 | | |
|---|
| 4411 | | switch (dpyinfo->visual->class) |
|---|
| 4412 | | { |
|---|
| 4413 | | case StaticGray: |
|---|
| 4414 | | result = intern ("static-gray"); |
|---|
| 4415 | | break; |
|---|
| 4416 | | case GrayScale: |
|---|
| 4417 | | result = intern ("gray-scale"); |
|---|
| 4418 | | break; |
|---|
| 4419 | | case StaticColor: |
|---|
| 4420 | | result = intern ("static-color"); |
|---|
| 4421 | | break; |
|---|
| 4422 | | case PseudoColor: |
|---|
| 4423 | | result = intern ("pseudo-color"); |
|---|
| 4424 | | break; |
|---|
| 4425 | | case TrueColor: |
|---|
| 4426 | | result = intern ("true-color"); |
|---|
| 4427 | | break; |
|---|
| 4428 | | case DirectColor: |
|---|
| 4429 | | result = intern ("direct-color"); |
|---|
| 4430 | | break; |
|---|
| 4431 | | default: |
|---|
| 4432 | | error ("Display has an unknown visual class"); |
|---|
| 4433 | | result = Qnil; |
|---|
| 4434 | | } |
|---|
| 4435 | | |
|---|
| 4436 | | return result; |
|---|
| 4437 | | } |
|---|
| 4438 | | |
|---|
| 4439 | | DEFUN ("x-display-save-under", Fx_display_save_under, |
|---|
| 4440 | | Sx_display_save_under, 0, 1, 0, |
|---|
| 4441 | | "Returns t if the X display DISPLAY supports the save-under feature.\n\ |
|---|
| 4442 | | The optional argument DISPLAY specifies which display to ask about.\n\ |
|---|
| 4443 | | DISPLAY should be either a frame or a display name (a string).\n\ |
|---|
| 4444 | | If omitted or nil, that stands for the selected frame's display.") |
|---|
| 4445 | | (display) |
|---|
| 4446 | | Lisp_Object display; |
|---|
| 4447 | | { |
|---|
| 4448 | | struct mw32_display_info *dpyinfo = check_mw32_display_info (display); |
|---|
| 4449 | | |
|---|
| 4450 | | if (DoesSaveUnders (dpyinfo->screen) == True) |
|---|
| 4451 | | return Qt; |
|---|
| 4452 | | else |
|---|
| 4453 | | return Qnil; |
|---|
| 4454 | | } |
|---|
| 4455 | | #endif |
|---|