Issie logo Issie

DiagramStyle Module

Types and nested modules

Type/Module Description

Constants

SheetKindColours

The colours one kind of sheet is written in. Backgrounds are translucent so that the schematic under them still reads, which is what makes these safe to leave on screen the whole time.

Functions and values

Function or value Description

arraySheetColours

Full Usage: arraySheetColours

Returns: SheetKindColours

An array component: purple.

Returns: SheetKindColours

belowHeaderStyle headerSize overflow

Full Usage: belowHeaderStyle headerSize overflow

Parameters:
Returns: HTMLAttr

Fill what is left of the height below a header of the given size, scrolling if the content does not fit. The overflow is a parameter rather than always Auto because the caller needs to switch it off for a moment, and saying so with a second Style prop does not work: React keeps the last style it is given and drops the rest, so the height quietly went with it - which left the right tab body with no height at all, and nothing in it able to scroll.

headerSize : 'a
overflow : OverflowOptions
Returns: HTMLAttr

canvasReadOnlyBannerStyle

Full Usage: canvasReadOnlyBannerStyle

Returns: HTMLAttr

The strip saying that the sheet below is a library component being looked at and cannot be changed. Spans the canvas, unlike the legend chips under it, which are as wide as their text.

Returns: HTMLAttr

canvasSheetKindStyle colours

Full Usage: canvasSheetKindStyle colours

Parameters:
Returns: HTMLAttr

One chip of the legend in the top-left corner of the canvas, saying what kind of sheet is on screen. A label on the schematic and not something to press, so it is translucent and lets the mouse through, as the buttons in the opposite corner do not.

colours : SheetKindColours
Returns: HTMLAttr

canvasSmallButtonStyle

Full Usage: canvasSmallButtonStyle

Returns: HTMLAttr
Returns: HTMLAttr

canvasSmallMenuStyle

Full Usage: canvasSmallMenuStyle

Returns: HTMLAttr
Returns: HTMLAttr

canvasTopOverlayStyle model

Full Usage: canvasTopOverlayStyle model

Parameters:
Returns: HTMLAttr

What is written across the top of the canvas about the sheet below it: the read-only banner and the sheet-kind legend, one under the other. They are stacked in a flex column rather than each given its own offset from the top of the canvas, because either can be absent and neither knows whether the other is showing - an offset would be a number that has to be kept in step with the height of something else. Over the canvas rather than above it, so that nothing moves when one of them appears, and taking no pointer events: this sits on top of the schematic, and a band the mouse could not draw through would be worse than no banner.

model : Model
Returns: HTMLAttr

canvasVisibleStyle model

Full Usage: canvasVisibleStyle model

Parameters:
Returns: HTMLAttr
model : Model
Returns: HTMLAttr

canvasVisibleStyleList model

Full Usage: canvasVisibleStyleList model

Parameters:
Returns: CSSProp list
model : Model
Returns: CSSProp list

colMoveArrowStyle

Full Usage: colMoveArrowStyle

Returns: HTMLAttr
Returns: HTMLAttr

colorSpan color text

Full Usage: colorSpan color text

Parameters:
    color : 'a
    text : string

Returns: ReactElement
color : 'a
text : string
Returns: ReactElement

constraintNumberStyle

Full Usage: constraintNumberStyle

Returns: HTMLAttr
Returns: HTMLAttr

emptyRefreshSVG

Full Usage: emptyRefreshSVG

Returns: ReactElement
Returns: ReactElement

getHeaderHeight ()

Full Usage: getHeaderHeight ()

Parameters:
    () : unit

Returns: float

The header's height. NOT snapped to device pixels, and that matters: the seam the eye picks up is where the canvas BACKGROUND begins, which is the inner edge of the rule below the header - (58 + 2) CSS pixels, a whole number of device pixels at every scaling in use. Snapping the 58 on its own moves that inner edge off the grid and paints the hairline this was meant to remove.

() : unit
Returns: float

headerHeight ()

Full Usage: headerHeight ()

Parameters:
    () : unit

Returns: string
() : unit
Returns: string

keysOf id

Full Usage: keysOf id

Parameters:
Returns: ReactElement

The keys to press for a shortcut on the platform this is running on, drawn as keys. Read off the shortcut table, never written out, for the same reason the shortcut list in Info is generated from it: prose that names a key cannot be held to what the key dispatcher does, and the two chords the window size warning was first written with said Ctrl and Alt on a Mac, where they are Cmd and Opt.

id : ShortcutId
Returns: ReactElement

leftSectionStyle model

Full Usage: leftSectionStyle model

Parameters:
Returns: HTMLAttr

For making Sheet contained inside left section (don't want sheet behind right section tabs) NOT USED

model : Model
Returns: HTMLAttr

leftSectionWidth model

Full Usage: leftSectionWidth model

Parameters:
Returns: HTMLAttr
model : Model
Returns: HTMLAttr

librarySheetColours

Full Usage: librarySheetColours

Returns: SheetKindColours

A library component: orange. The read-only banner takes the same three colours rather than keeping its own, so that "this came from a library" is one colour wherever it is said - it used to be purple, which is now the array colour.

Returns: SheetKindColours

menuLabelStyle

Full Usage: menuLabelStyle

Returns: HTMLAttr
Returns: HTMLAttr

minEditorWidth ()

Full Usage: minEditorWidth ()

Parameters:
    () : unit

Returns: int
() : unit
Returns: int

minViewerWidth

Full Usage: minViewerWidth

Returns: int
Returns: int

navbarStyle model

Full Usage: navbarStyle model

Parameters:
    model : 'a

Returns: HTMLAttr
model : 'a
Returns: HTMLAttr

notificationStyle

Full Usage: notificationStyle

Returns: HTMLAttr
Returns: HTMLAttr

pinSvg pinned

Full Usage: pinSvg pinned

Parameters:
    pinned : bool

Returns: ReactElement

A pushpin, upright when it is holding something and tilted when it is not - the same shape in both states, so the icon is recognised once and then read by its angle rather than by comparing two drawings. Colour reinforces it: grey while the menu is free to close, dark once pinned.

pinned : bool
Returns: ReactElement

px cssPx

Full Usage: px cssPx

Parameters:
    cssPx : float

Returns: string

A CSS length, snapped, as a string React can use.

cssPx : float
Returns: string

refreshSvg color height

Full Usage: refreshSvg color height

Parameters:
    color : string
    height : string

Returns: ReactElement

display react of refresh button with color (e.g. white) at given height (e.g. 10px)

color : string
height : string
Returns: ReactElement

rightSectionStyle model

Full Usage: rightSectionStyle model

Parameters:
Returns: HTMLAttr
model : Model
Returns: HTMLAttr

rightSectionWidth model

Full Usage: rightSectionWidth model

Parameters:
Returns: string
model : Model
Returns: string

rightSectionWidthCss model

Full Usage: rightSectionWidthCss model

Parameters:
Returns: float
model : Model
Returns: float

rightSectionWidthViewerDefault

Full Usage: rightSectionWidthViewerDefault

Returns: int
Returns: int

simulationBitStyle

Full Usage: simulationBitStyle

Returns: HTMLAttr
Returns: HTMLAttr

simulationNumberStyle

Full Usage: simulationNumberStyle

Returns: HTMLAttr
Returns: HTMLAttr

sortArrowStyle

Full Usage: sortArrowStyle

Returns: HTMLAttr
Returns: HTMLAttr

toWholeDevicePixels cssPx

Full Usage: toWholeDevicePixels cssPx

Parameters:
    cssPx : float

Returns: float

Round a CSS length so that it lands on a whole DEVICE pixel. **An edge that falls between two device pixels is painted blended.** The browser covers the boundary pixel only partly, so it comes out a mixture of what lies on each side of it, and a seam between two flat colours becomes a hairline of a third. On the canvas that reads as a fine line of the sheet's background along an edge - loudest in the Light theme, whose background is a pale yellow against a white pane and a grey rule. It is not a rounding error in this code. The fixed widths here are whole CSS pixels and Windows display scaling is what turns them into fractions of a device pixel - but those are the same every run, and land on the grid at the scalings in use. The one that does not is the width of the right-hand pane in the waveform simulator, which is whatever the user dragged the divider to: at 125% scaling a 573-pixel pane is 716.25 device pixels, so the seam between the pane and the canvas falls a quarter of a pixel inside one, and that pixel is painted part pane and part canvas. Only lengths that decide such a SEAM should come through here. Snapping one that does not is worse than leaving it: the header's height is 58 CSS pixels and the rule below it 2 more, and it is where the rule ENDS - at 60 - that the canvas background begins. Rounding the 58 on its own moves that boundary off the grid and paints exactly the hairline this exists to remove, which is what happened when it was first tried here. The ratio is read at each call rather than once, because it changes when the window is dragged to a monitor with different scaling.

cssPx : float
Returns: float

ttGridColumnProps index

Full Usage: ttGridColumnProps index

Parameters:
    index : int

Returns: CSSProp list
index : int
Returns: CSSProp list

ttGridContainerStyle model

Full Usage: ttGridContainerStyle model

Parameters:
Returns: HTMLAttr
model : Model
Returns: HTMLAttr

ttGridHiddenColumnProps gridWidth

Full Usage: ttGridHiddenColumnProps gridWidth

Parameters:
    gridWidth : int

Returns: CSSProp list
gridWidth : int
Returns: CSSProp list

zoomInSVG

Full Usage: zoomInSVG

Returns: ReactElement
Returns: ReactElement

zoomOutSVG

Full Usage: zoomOutSVG

Returns: ReactElement
Returns: ReactElement

Type something to start searching.