libera/#clim - IRC Chatlog
Search
12:09:30
jackdaniel
(with-room-for-graphics (…) (draw-rectangle* stream -10 -10 10 10)) ;; should we clip the rectangle starting from [0,0] toward positive x/y axis or move it so it fits? clipping seems more sane (and less hairy when it comes to implementation if we think about other edge cases)
12:17:44
scymtym
but (0,0) is also supposed to be at the current cursor position. it is not clear to me how the "room for graphics" can be made with those constraints
12:18:44
jackdaniel
right, the specification is poor at best. and then we have implementation in clim-tos that is at odds with a comment in McCLIM mentioning genera specification
12:20:01
jackdaniel
and it is not said what happens with the output in other quadrants - are they clipped or we draw them anyway (i.e leaking into the next line)
12:21:11
scymtym
i think the origin can't be at the initial cursor position since that would give the height of the current line as the room for graphics, no matter the drawn graphics. it would also mean that the cursor wouldn't ever move since the new cursor position is based on the origin as well
12:24:21
scymtym
maybe additional keywords for WITH-ROOM-FOR-GRAPHICS would be best since i can't imagine a "one-size-fits-all" interpretation of the specification
12:26:22
jackdaniel
this function is hairy as it is already, perhaps for different uses new macros could be proposed in the clime package
12:29:48
scymtym
it is generally hard to decide (and underspecified) how much of the current graphics state (plus stream page region, etc) should be kept/reset/modified in operations that draw to an output record and then position that output record. WITH-ROOM-FOR-GRAPHICS, SURROUNDING-OUTPUT-WITH-BORDER and FORMATTING-* all have similar issues in this regard
12:32:06
scymtym
ideally, the specification for each such operator would have a big table specifying clipping-region: retained, ink: retained, cursor-position: changed to such-and-such, page-region: expanded to stream region, etc.
12:37:26
jackdaniel
right, these things are tricky. i.e css has outline and border - bot hare rougly the same, but the outline doesn't change the cursor position