Commit e94fd5d8 authored by Daniel Kochmański's avatar Daniel Kochmański

xx

parent 7d3298f2
......@@ -21,10 +21,6 @@ into hierarchies creating a windowing system with a child-parent relation. Sheet
is the Form with no visual appearance. What we observe is an approximation of
the sheet which may be hard to recognize when compared to other approximations.
[^1]: [Theory of forms](https://en.wikipedia.org/wiki/Theory_of_forms).
[^2]: And many other things.
## Physical devices
Sheet hierarchies may be manipulated without a physical medium but to make them
......@@ -63,11 +59,6 @@ I will try to answer this question in a moment. First, we have to talk about the
`CLIM` specification and limitations imposed by McCLIM's implementation of
grafts.
[^3]: See some [general recommendations](http://bauhh.dyndns.org:8000/clim-spec/12-4.html).
[^4]: Technically it should be [PPI, not DPI](https://99designs.com/blog/tips/ppi-vs-dpi-whats-the-difference/) (pixels per inch).
[^5]: Given programmer specifies sheet size in integers (like 100x100).
## Ports, grafts, and McCLIM limitations
......@@ -88,9 +79,6 @@ orientation is implemented. By now we should already know that pixels are a not
a good choice for the default unit. Also, programmer doesn't have means to
request unit for a sheet (this is the API problem).
[^11]: Screen size unit means that the coordinate [1/2, 1/2] is exactly in the
middle of the screens.
## Physical size and pixel size compromise
We will skip the third situation, for now, to decide what unit should we default
......@@ -109,7 +97,6 @@ on 96dpi display it is 60px, on 240dpi display it is 150px etc. This unit gives
us some nice characteristics: we are rather compatible with the existing
applications and we preserving absolute distances across different screens.
[^6]: [Density-independent pixel](https://material.io/guidelines/layout/units-measurements.html#units-measurements-density-independent-pixels-dp).
## How to draw a rectangle on the medium
......@@ -186,9 +173,6 @@ important to know where we start the drawing.
![80DPI and MDPI plotters](https://common-lisp.net/project/mcclim/static/media/ideal-forms/plotters.png)
[^7]: the Ideal border is composed of lines which are 1-dimensional objects
which doesn't occupy any space. Red border in drawings marks "ideal" object
boundaries. Points are labeled in device units (with possible fractions).
## Sheets written with a special device in mind
......@@ -229,12 +213,6 @@ The second screen is mDPI display. The second sheet looks very much like
something we have defined. What is more interesting though is our first sheet –
it looks exactly the same as on the terminal.
[^8]: Providing means to change defaults requires additional thought and is a
material for a separate chapter. McCLIM doesn't allow it yet.
[^9]: As we have noted sheets are ideal planar spaces where line thickness is 0
and there is nothing preventing us from using fractions as coordinates.
<!-- Writing applications for terminal require a special kind of focus: space is -->
<!-- very limited and off-by-one errors yield a huge difference in visual appearance in -->
<!-- the application. Rounding from dip is a big no for some use cases. On the other -->
......@@ -279,5 +257,31 @@ of the medium) for the charming backend. I will cover only bare minimum for
mediums important to verify that graft works as expected. Complete medium
implementation is the material for a separate post.
[^1]: [Theory of forms](https://en.wikipedia.org/wiki/Theory_of_forms).
[^2]: And many other things.
[^3]: See some [general recommendations](http://bauhh.dyndns.org:8000/clim-spec/12-4.html).
[^4]: Technically it should be [PPI, not DPI](https://99designs.com/blog/tips/ppi-vs-dpi-whats-the-difference/) (pixels per inch).
[^5]: Given programmer specifies sheet size in integers (like 100x100).
[^6]: [Density-independent pixel](https://material.io/guidelines/layout/units-measurements.html#units-measurements-density-independent-pixels-dp).
[^7]: the Ideal border is composed of lines which are 1-dimensional objects
which doesn't occupy any space. Red border in drawings marks "ideal" object
boundaries. Points are labeled in device units (with possible fractions).
[^8]: Providing means to change defaults requires additional thought and is a
material for a separate chapter. McCLIM doesn't allow it yet.
[^9]: As we have noted sheets are ideal planar spaces where line thickness is 0
and there is nothing preventing us from using fractions as coordinates.
[^10]: Sometimes we deal with devices which we can't take input from – for
instance a printer, a PDF render or a display without other peripherals.
[^11]: Screen size unit means that the coordinate [1/2, 1/2] is exactly in the
middle of the screens.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment