Deprecate/remove `is-color-display?`

未关闭
#327 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
重构
描述清晰度
基本清楚
活跃度
停滞
领域
desktop

调研方向

检查 gtk3、cocoa 和 win32 后端中的 is-color-display? 实现,以及公共 GUI API 引用。确定弃用或移除的范围,然后验证这三个后端和公开的 API 是否一致地反映了这一决定。

由索引模型根据 Issue 内容生成。

描述

The function is-color-display? is useless, in its current form, and I propose that it be deprecated and/or removed.

  • It has separate implementations in all 3 backends (gtk3, cocoa, win32) and all of them simply hardcode a constant: (define (is-color-display?) #t)
  • Modern GUI toolkits don't seem to have a corresponding function for it to easily wrap (perhaps because nearly every display in use today has color), so there's no obvious and simple path to fixing it -- nor does there seem to be any great demand for this functionality
  • Unlike most other per-monitor attributes which have racket/gui accessors, this one doesn't take a #:monitor argument (so you can't answer questions like: "Am I drawing on a monochrome monitor right now?")
  • There's no corresponding event that I can find, so when monitors or settings change, your program won't know (unless you poll, which brings its own set of problems)
  • No Racket program that I've found uses this function, and nobody has ever mentioned that it doesn't do what it claims to do

Even if all the issues here were fixed, it's not clear what its intended use is. Perhaps a program could use this as a hint to distinguish visuals by shape rather than simply color, but given the prevalence of colorblindness, they should always do that, anyway.

The one place where I can imagine such a feature being useful is for printing, as black-and-white printers are still fairly common, but that obviously goes through printer-dc% and dc<%>, not the default monitor, and those interfaces have no such feature, so it can't be used for that.

主要语言
Racket
星标
68
派生
83
平均合并
4 天 4 小时
30 天内合并 PR
3

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

racket/gui 的其他 Issue

查看 racket/gui 的全部 Issue

相似的 Issue

更多 Desktop Dev Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。