racket / racket/gui

Feature requests/issues reported on Hacker News

Open
#115 1 comment 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
68
Forks
82
PR merge metrics
No merged PRs in 30d

Description

Recently, there was some feedback given about racket/gui limitations from user 13415. I figured it may be helpful to leave them here? If they're valued, I can break them out into independent issues.

  1. no internal drag&drop from control to control in a frame or from frame to frame, like from an editor snip to a listbox, or from a listbox item to a text field or canvas

  2. text% and editor-canvas% are too slow for some applications, esp. for displaying lots of data fast or styling snips

  3. text% does not allow associating arbitrary data with ranges (strange enough, list-box% has this)

  4. text% uses a nonstandard format, neither RTF, XML, HTML, rich text is not easily drag&droppable or copy&pastable to other applications in a platform-compliant way without writing your own converter

  5. no images in list-boxes, and generally speaking no advanced custom "grid" control (e.g. also no editable fields in list-boxes or similar table features)

  6. no images in menu items

  7. no toolbar, you have to make one your own and it will not be platform-compliant (macOS)

  8. no docking manager or other advanced user configuration controls (we could implement these easily if we had frame-internal drag&drop, but we don't, so we can't)

  9. no built-in input validation for text fields, like limiting one to integers, floats, dates, you have to do that on your own

  10. it appears that some icons are not properly installed by Racket's deployment functions even if you specify them in the #:aux argument of create-embedding-executable

  11. no access to tray icon

  12. no way to obtain system colors from the system color scheme for custom controls, so you cannot create theme compliant custom controls

  13. clipboard operations are limited (unless this has changed since I checked last time), meaning e.g. you cannot easily implement a "receiver" for some mime type data

  14. related to the previous one, only whole frames can receive drag&drop objects and you basically just get a file path

That are all the points off the top of my head. For me, only 1, 3, 4, and 5 are problematic and 1 is a show-stopper. 3 is also important, since implementing this on your own can lead to a vast range of problems (you'd have to constantly maintain a data structure in sync with the snips in the editor).

I can close this if it's not helpful.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue is a collection of fourteen racket/gui feature requests rather than a scoped change, and it names no files or tests. Start by reviewing the four items the reporter identifies as problematic: internal drag-and-drop, arbitrary data on text% ranges, text% format interoperability, and richer list-box controls. Split them into independent issues before implementation; completion criteria are not defined in the current report.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.