3.6 Structures S-S


SampleFormat

SampleFormat        record
    SMID_format         DAC_SampleFormat:15
    SMID_refernce       DAC_ReferenceByte:1
SampleFormat        end

Library: sound.def


SampleFormatDescription

SampleFormatDescription         struct
    SFD_manufact            ManufacturerID
    SFD_format              SampleFormat
    SFD_rate                word
    SFD_playFlags           DACPlayFlags
SampleFormatDescription         ends

Library: sound.def


SamplesStruc

SamplesStruc        struc
    SS_sample1Str       char FLOAT_TO_ASCII_HUGE_BUF_LEN dup (?)
    SS_sample2Str       char FLOAT_TO_ASCII_HUGE_BUF_LEN dup (?)
    SS_formatPosStr     char FLOAT_TO_ASCII_HUGE_BUF_LEN dup (?)
    SS_formatNegStr     char FLOAT_TO_ASCII_HUGE_BUF_LEN dup (?)
SamplesStruc        ends

Library: math.def


SansFace

SansFace        etype byte
    SF_A_OPEN           enum SansFace, 0
    SF_A_CLOSED         enum SansFace, 0x80

There is not much to distinguish between these typefaces. We’ve decided to use the style of the lower case “a” character – that is, whether it is “closed” (looks like a modified “o” character) or “open” (has a smaller closed portion at the bottom, and an extra stem on top).

Library: fontID.def


ScaleChangedParams

ScaleChangedParams          struct
    SCP_scaleFactor     PointWWFixed    ;new scale factor
    SCP_window          lptr Window     ;window of view
ScaleChangedParams          ends

Library: Objects/gViewC.def


ScaleViewParams

ScaleViewParams     struct
    SVP_scaleFactor     PointWWFixed        ;new, absolute scale factor
    SVP_unused          byte
    SVP_type            ScaleViewType       ;type of scaling to perform
    SVP_point           PointDWord          ;point to scale around
ScaleViewParams     ends

Library: Objects/gViewC.def


ScaleViewType

ScaleViewType       etype byte
    SVT_AROUND_UPPER_LEFT           enum ScaleViewType
    SVT_AROUND_CENTER               enum ScaleViewType
    SVT_AROUND_POINT                enum ScaleViewType

SVT_AROUND_UPPER_LEFT
Upper left corner of subview is kept fixed as we scale.

SVT_AROUND_CENTER
Center of subview kept fixed as we scale.

SVT_AROUND_POINT
Point specified in SVP_point is kept fixed as we scale.

Library: Objects/gViewC.def


ScannerToken

ScannerToken        struct
    ST_type     ScannerTokenType    ; The type of token
    ST_data     ScannerTokenData    ; The data associated with the token
ScannerToken        ends

Library: parse.def


ScannerTokenCellData

ScannerTokenCellData            struct
    STCD_cellRef            CellReference <>
ScannerTokenCellData            ends

Library: parse.def


ScannerTokenData

ScannerTokenData    union
    STD_number          ScannerTokenNumberData
    STD_string          ScannerTokenStringData
    STD_cell            ScannerTokenCellData
    STD_identifier      ScannerTokenIdentifierData
    STD_operator        ScannerTokenOperatorData
ScannerTokenData    end

Library: parse.def


ScannerTokenIdentifierData

ScannerTokenIdentifierData              struct
    STID_start      word    ; The offset to the start of the identifier
ScannerTokenIdentifierData              ends

Library: parse.def


ScannerTokenNumberData

ScannerTokenNumberData          struct
    STND_value          FloatNum        ; 8 byte constant
ScannerTokenNumberData          ends

Library: parse.def


ScannerTokenOperatorData

ScannerTokenOperatorData                struct
    STOD_operatorID     OperatorType    ; Identifier for this operator
ScannerTokenOperatorData                ends

Library: parse.def


ScannerTokenStringData

ScannerTokenStringData      struct
    STSD_start      word        ; Offset to start of string
    STSD_length     word        ; Length of the string
ScannerTokenStringData      ends

Library: parse.def


ScannerTokenType

ScannerTokenType        etype byte, 0, 1
    SCANNER_TOKEN_NUMBER            enum ScannerTokenType
    SCANNER_TOKEN_STRING            enum ScannerTokenType
    SCANNER_TOKEN_CELL              enum ScannerTokenType
    SCANNER_TOKEN_END_OF_EXPRESSION enum ScannerTokenType
    SCANNER_TOKEN_OPEN_PAREN        enum ScannerTokenType
    SCANNER_TOKEN_CLOSE_PAREN       enum ScannerTokenType
    SCANNER_TOKEN_IDENTIFIER        enum ScannerTokenType
    ;
    ; All the items above are in common with the ParserTokenType list.
    ; You can add or delete items below this point without changing
    ; the other table.
    ;
    SCANNER_TOKEN_OPERATOR          enum ScannerTokenType
    SCANNER_TOKEN_LIST_SEPARATOR    enum ScannerTokenType

Library: parse.def


ScriptFace

ScriptFace      etype byte
    SF_CALLIGRAPHIC enum ScriptFace, 0      ; variable thickness stroke
    SF_CURSIVE      enum ScriptFace, 0x80   ; single thickness stroke

Library: fontID.def

ScrollAction

ScrollAction        etype byte
    SA_NOTHING                  enum ScrollAction
    SA_TO_BEGINNING             enum ScrollAction
    SA_PAGE_BACK                enum ScrollAction
    SA_INC_BACK                 enum ScrollAction
    SA_INC_FWD                  enum ScrollAction
    SA_DRAGGING                 enum ScrollAction
    SA_PAGE_FWD                 enum ScrollAction
    SA_TO_END                   enum ScrollAction
    SA_SCROLL                   enum ScrollAction
    SA_SCROLL_INTO              enum ScrollAction
    SA_INITIAL_POS              enum ScrollAction
    SA_SCALE                    enum ScrollAction
    SA_PAN                      enum ScrollAction
    SA_DRAG_SCROLL              enum ScrollAction
    SA_SCROLL_FOR_SIZE_CHANGE   enum ScrollAction

SA_NOTHING
No scroll action.

SA_TO_BEGINNING
Scrolls to beginning of window.

SA_PAGE_BACK
Scrolls up a page.

SA_INC_BACK
Scrolls up a small amount.

SA_INC_FWD
Scrolls down a small amount.

SA_DRAGGING
Scrolls dragging.

SA_PAGE_FWD
Scrolls down a page.

SA_TO_END
Scrolls to end of window.

SA_SCROLL
Generic scroll method called.

SA_SCROLL_INTO
Someone called “scroll into” to keep a point onscreen.

SA_INITIAL_POS
Initial scrolling position. Output object will receive relative scroll values equal to the initial origin.

SA_SCALE
We’re scaling. There may or may not be a change in scroll in scroll position, but certainly the subview size will have changed.

SA_PAN
Panning. Otherwise exactly like SA_SCROLL.

SA_DRAG_SCROL L Select-scrolling. Otherwise exactly like SA_SCROLL.

SA_SCROLL_FOR_SIZE_CHANGE
Any scrolling that’s required as a result of the view size change

Library: Objects/gViewC.def


ScrollFlags

ScrollFlags     record
    SF_VERTICAL                 :1
    SF_ABSOLUTE                 :1
    SF_DOC_SIZE_CHANGE          :1
    SF_WINDOW_NOT_SUSPENDED     :1
    SF_SCALE_TO_FIT             :1
    SF_SETUP_HAPPENED           :1
    SF_EC_SETUP_CALLED          :1
                                :1
ScrollFlags     end

SF_VERTICAL
Direction of scroll. Invalid for SA_SCROLL_INTO, SA_SCROLL, SA_INITIAL_POS.

SF_ABSOLUTE
Whether the scroll is to an absolute position. Set for SA_TO_BEGINNING, SA_TO_END, SA_INITIAL_POS, SA_SCROLL_INTO, SA_DRAGGING, and some SA_SCROLL events.

SF_DOC_SIZE_CHANGE
This scroll is happening as an adjustment for a document size change. The specific UI uses this to finish changing the document size after the tracking is complete.

SF_WINDOW_NOT_SUSPENDED
An internal flag that the view uses to know whether to unsuspend the view window after the track scrolling arguments are returned by the view output. Usually the view window is suspended beforehand, but not if the window hasn’t been opened yet.

SF_SCALE_TO_FIT
Set if the view is in scale to fit mode (which often causes content to alter its scrolling behavior).

SF_SETUP_HAPPENED
Flag for error checking only, to ensure that people are handling the normalize and calling the appropriate setup and return routines.

Library: Objects/gViewC.def


SearchFromOffsetFlags

SearchFromOffsetFlags record

SFOF_STOP_AT_STARTING_POINT :1

SearchFromOffsetFlags end

SFOF_STOP_AT_STARTING_POINT Set (internally) if this search has wrapped around.

Library: Objects/vTextC.def


SearchFromOffsetReturnStruct

SearchFromOffsetReturnStruct                struct
    SFORS_object            optr (?)
    SFORS_offset            dword (?)
    SFORS_len               dword (?)
SearchFromOffsetReturnStruct                ends

SFORS_object stores the pointer to the object that the match was found in (or 0:0 if not found).

SFORS_offset stores the offset into the object where the match was found (a VisTextRange)

SFORS_len stores the length of the match.

Library: Objects/vTextC.def


SearchFromOffsetStruct

SearchFromOffsetStruct          struct
    SFOS_data           hptr.SearchReplaceStruct
    SFOS_startObject    optr
    SFOS_startOffset    dword
    SFOS_currentOffset  dword
    SFOS_flags          SearchFromOffsetFlags
    SFOS_retStruct      fptr.SearchFromOffsetReturnStruct
    even
SearchFromOffsetStruct          ends

SFOS_data stores the handle of the data block. This data is organized in the following format:
SearchReplaceStruct<>
data - Null-Terminated Search string
data - Null-Terminated Replace string

SFOS_startObject stores the OD of the object where the current search began.

SFOS_startOffset stores the offset into the object where the current search began. This offset is not an offset to a character, but rather an offset between characters. (I.e. the beginning of an object is 0, between the first and second characters = 1, etc.) (This value can range from 0 to ).

SFOS_currentOffset stores the offset between characters in the text object to start search. (This value can range from 0 to ).

SFOS_retStruct stores a pointer to a buffer to store the return values.

Library: Objects/vTextC.def


SearchOptions

SearchOptions       record
                                            :2
    SO_NO_WILDCARDS                         :1
    SO_IGNORE_SOFT_HYPHENS                  :1
    SO_BACKWARD_SEARCH                      :1
    SO_IGNORE_CASE                          :1
    SO_PARTIAL_WIDTH                        :1
    SO_PRESERVE_CASE_OF_DOCUMENT_STRING     :1
SearchOptions       end

SO_NO_WILDCARDS
Set if you want to treat wildcard chars as literal chars.

SO_IGNORE_SOFT_HYPHENS
Set if you want to treat soft hyphens in the “searched-in” text as if they do not exist. If the string we are trying to match contains soft hyphens, do not set this flag or the strings will never match.

SO_BACKWARD_SEARCH
Set if the user wants to search backward.

SO_IGNORE_CASE
Set if you want to ignore case when searching for strings.

SO_PARTIAL_WORD
Set if you want to match partial words when searching for strings.

SO_PRESERVE_CASE_OF_DOCUMENT_STRING
If set, will preserve the case of the occurrence of the search string when replacing (will modify the replace string before replacing it).

Library: Objects/vTextC.def


SearchReplaceEnableFlags

SearchReplaceEnableFlags            record
    SREF_SEARCH     :1  ; Set if the object can handle searches
    SREF_REPLACE    :1  ; Set if the object can handle replaces
SearchReplaceEnableFlags            end

Library: Objects/Text/tCtrlC.def


SearchReplaceFocusInfo

SearchReplaceFocusInfo          etype byte
    SRFI_SEARCH_TEXT                enum SearchReplaceFocusInfo
SRFI_REPLACE_TEXT               enum SearchReplaceFocusInfo

Library: Objects/Text/tCtrlC.def


SearchReplaceStruct

SearchReplaceStruct     struct
    SRS_searchSize          word
    SRS_replaceSize         word
    SRS_params              SearchOptions
    SRS_replyObject         optr
    SRS_replyMsg            word
    SRS_searchString        label char
SearchReplaceStruct     ends

SRS_searchSize stores the number of characters in the search string (including the null terminator).

SRS_replaceSize stores the number of characters in the replace string (including the null terminator).

SRS_params stores the parameters for the search and replace operation.

SRS_replyObject stores the OD of the object to send the string-not-found message in SRS_replyMsg to.

SRS_replyMsg stores the message sent to the SRS_replyObject if the string was not found.

SRS_searchString defines the start of the search string.

Library: Objects/vTextC.def


SelectionDataType

SelectionDataType       etype word
    SDT_TEXT                enum SelectionDataType
    SDT_GRAPHICS            enum SelectionDataType
    SDT_SPREADSHEET         enum SelectionDataType
    SDT_INK                 enum SelectionDataType
    SDT_OTHER               enum SelectionDataType

Library: Objects/gEditCC.def


SelectionType

SelectionType       etype byte
    ST_DOING_CHAR_SELECTION             enum SelectionType
    ST_DOING_WORD_SELECTION             enum SelectionType
    ST_DOING_LINE_SELECTION             enum SelectionType
    ST_DOING_PARA_SELECTION             enum SelectionType

Library: Objects/vTextC.def


SemaphoreError

SemaphoreError      etype word
    SE_NO_ERROR                 enum SemaphoreError
    SE_TIMEOUT                  enum SemaphoreError
    SE_PREVIOUS_OWNER_DIED      enum SemaphoreError

Library: sem.def


SerifFace

SerifFace       etype byte, 0
    SF_OLD          enum SerifFace, 0
    SF_TRANS        enum SerifFace, 0x40
    SF_MODERN       enum SerifFace, 0x80
    SF_SLAB         enum SerifFace, 0xc0

SF_OLD
Old Style. Characterized by axes of curves inclined to left, smooth transitions to serifs, little contrast between hair-lines and main strokes.

SF_TRANS
Transitional. Characterized by axes of round characters barely inclined, serifs are flat, contrast between hair-lines and main strokes is more accentuated.

SF_MODERN
Modern. Characterized by axes of round chars are vertical, serifs are horizontal and unbracketed, extremely high contrast between hairlines and main strokes.

SF_SLAB
Slab Serif. All strokes appear to have the same thickness, serifs are usually unbracketed

Library: fontID.def


SetDateTimeParams

SetDateTimeParams       record
    SDTP_SET_DATE           :1  ;TRUE: set date (must be bit 7)
    SDTP_SET_TIME           :1  ;TRUE: set time (must be bit 6)
                            :6
SetDateTimeParams       end

Library: timedate.def


SetPalElement

SetPalElement        struct
    SPE_entry       byte            ; palette entry number
    SPE_color       RGBValue <>     ; color to set that entry
SetPalElement       ends

This structure is passed to GrSetPalette.

Library: color.def


SetSizeArgs

SetSizeArgs     struct
    SSA_width       SpecWidth <>    ;Width of the composite
    SSA_height      SpecHeight <>   ;Height of each child
    SSA_count       sword           ;Number of children, or zero if not 
                                    ;applicable
    SSA_updateMode  VisUpdateMode   ;Update mode to perform geometry redos
    align           word
SetSizeArgs     ends

Library: Objects/genC.def


ShadowAnchor

ShadowAnchor        etype byte
    SA_TOP_LEFT             enum ShadowAnchor
    SA_TOP_RIGHT            enum ShadowAnchor
    SA_BOTTOM_LEFT          enum ShadowAnchor
    SA_BOTTOM_RIGHT         enum ShadowAnchor

Library: Objects/Text/tCommon.def


ShiftState

ShiftState      record
    SS_LALT             :1  ;Set if left ALT modifier
    SS_RALT             :1  ;Set if right ALT modifier
    SS_LCTRL            :1  ;Set if left CTRL modifier
    SS_RCTRL            :1  ;Set if right CTRL modifier
    SS_LSHIFT           :1  ;Set if left SHIFT modifier
    SS_RSHIFT           :1  ;Set if right SHIFT modifier
    SS_FIRE_BUTTON_1    :1  ;Set if fire button1 modifier
    SS_FIRE_BUTTON_2    :1  ;Set if fire button1 modifier
ShiftState      end

Library: input.def


SortableArrayElement

SortableArrayElement            struct
    SAE_OD      optr
    SAE_key     DWFixed
SortableArrayElement            ends

Library: grobj.def


SortableArrayHeader

SortableArrayHeader         struct
    SAH_CAH                     ChunkArrayHeader
    SAH_originalArray           optr
SortableArrayHeader         ends

Library: grobj.def


SortedNameArrayFindFlags

SortedNameArrayFindFlags            record
    SNAFF_IGNORE_CASE           :1
SortedNameArrayFindFlags            end

Library: config.def


SoundBasicStatus

SoundBasicStatus        struct
    SBS_blockHandle     word 0              ; handle of block
    SBS_ID              word SOUND_ID       ; Says this struct is a sound
    SBS_mutExSem        hptr 0              ; mutual exclusive sempahore
    SBS_type            SoundType 0         ; the type of block
    SBS_priority        SoundPriority 0     ; current priority
    SBS_EOS             EndOfSongFlags 0    ; what to do at EOS
SoundBasicStatus        ends

This structure stores a number of pieces of information that are common to all sounds. This structure is an entry within the basic Sound structure.

Library: sound.def


SoundControl

SoundControl        struct
    SC_status           SoundBasicStatus
    SC_format           SoundFormatStatus
    SC_position         SoundPositionStatus
    SC_voice            label SoundVoiceStatus
SoundControl ends

Library: sound.def


SoundDACStatus

SoundDACStatus      struct
    SDACS_rate          word 0              ; sample rate of sound
    SDACS_format        DACSampleFormat 0   ; sample format of sound
    SDACS_manufactID    ManufacturerID0     ; sample ManufacturerID
SoundDACStatus      ends

Library: sound.def


SoundErrors

SoundErrors                 etype   word, 0, 2
    SOUND_ERROR_NO_ERROR                        enum    SoundErrors
    SOUND_ERROR_EXCLUSIVE_ACCESS_GRANTED        enum    SoundErrors
    SOUND_ERROR_OUT_OF_MEMORY                   enum    SoundErrors
    SOUND_ERROR_UNABLE_TO_ALLOCATE_STREAM       enum    SoundErrors
    SOUND_ERROR_HARDWARE_NOT_AVAILABLE          enum    SoundErrors
    SOUND_ERROR_FAILED_ATTACH_TO_HARDWARE       enum    SoundErrors
    SOUND_ERROR_HARDWARE_DOESNT_SUPPORT_FORMAT  enum    SoundErrors
    SOUND_ERROR_DAC_UNATTACHED                  enum    SoundErrors
    SOUND_ERROR_STREAM_DESTROYED                enum    SoundErrors

Library: sound.def


SoundFMStatus

SoundFMStatus       struct
    SFMS_timerHandle    hptr 0      ; current timer handle
    SFMS_timerID        word 0      ; current timer ID
    SFMS_timeRemaining  word 0      ; Number of 65535 msec left to event
    SFMS_tempo          word 0      ; Number of msec per 64th note
    SFMS_voicesUsed     byte 0      ; Number of voices used in stream
SoundFMStatus       ends

Library: sound.def


SoundFormatStatus

SoundFormatStatus       union
    SFS_fm      SoundFMStatus
    SFS_dac     SoundDACStatus
SoundFormatStatus       ends

Library: sound.def


SoundFunction

SoundFunction       etype word, DriverFunction, 2
    DR_SOUND_ENTER_LIBRARY_ROUTINE  enum SoundFunction
    DR_SOUND_EXIT_LIBRARY_ROUTINE   enum SoundFunction
    DR_SOUND_ALLOC_MUSIC            enum SoundFunction
    DR_SOUND_ALLOC_MUSIC_STREAM     enum SoundFunction
    DR_SOUND_ALLOC_MUSIC_NOTE       enum SoundFunction
    DR_SOUND_REALLOC_MUSIC          enum SoundFunction
    DR_SOUND_REALLOC_MUSIC_NOTE     enum SoundFunction
    DR_SOUND_PLAY_MUSIC             enum SoundFunction
    DR_SOUND_PLAY_TO_MUSIC_STREAM   enum SoundFunction
    DR_SOUND_STOP_MUSIC             enum SoundFunction
    DR_SOUND_STOP_MUSIC_STREAM      enum SoundFunction
    DR_SOUND_INIT_MUSIC             enum SoundFunction
    DR_SOUND_FREE_SIMPLE            enum SoundFunction
    DR_SOUND_FREE_STREAM            enum SoundFunction
    DR_SOUND_CHANGE_OWNER_SIMPLE    enum SoundFunction
    DR_SOUND_CHANGE_OWNER_STREAM    enum SoundFunction
    DR_SOUND_ALLOC_SAMPLE_STREAM    enum SoundFunction
    DR_SOUND_ENABLE_SAMPLE_STREAM   enum SoundFunction
    DR_SOUND_PLAY_TO_SAMPLE_STREAM  enum SoundFunction
    DR_SOUND_DISABLE_SAMPLE_STREAM  enum SoundFunction
    DR_SOUND_FREE_SAMPLE_STREAM     enum SoundFunction

Library: sound.def


SoundPositionStatus

SoundPositionStatus         union
    SSS_simple      SoundSimpleStatus
    SSS_stream      SoundStreamStatus
SoundPositionStatus         end

Library: sound.def


SoundPriority

SoundPriority       etype word, 10, 10
    SP_SYSTEM_LEVEL     enum SoundPriority
    SP_ALARM            enum SoundPriority
    SP_STANDARD         enum SoundPriority
    SP_GAME             enum SoundPriority
    SP_BACKGROUND       enum SoundPriority

    SP_IMMEDIATE        equ -1
    SP_THEME            equ +1

Library: sound.def


SoundSimpleStatus

SoundSimpleStatus           struct
    SSS_songBuffer      fptr 0          ; fptr to song buffer
    SSS_songPointer     nptr 0          ; current place in song
SoundSimpleStatus           ends

Library: sound.def


SoundStreamDeltaTimeType

SoundStreamDeltaTimeType        etype word, SoundStreamEvent, 2
    SSDTT_MSEC          enum SoundStreamDeltaTimeType
    SSDTT_TICKS         enum SoundStreamDeltaTimeType
    SSDTT_TEMPO         enum SoundStreamDeltaTimeType   

Between each event is the delay time from the current event to the next event. The value can be either in msec (giving a maximum delay of 65.535 seconds, in ticks (giving a maximum delay of ~18 minutes, or in 1/64th notes (depends on the tempo).

Library: sound.def


SoundStreamEvent

SoundStreamEvent        etype word, 0, 2
    SSE_VOICE_ON            enum SoundStreamEvent
    SSE_VOICE_OFF           enum SoundStreamEvent
    SSE_CHANGE              enum SoundStreamEvent
    SSE_GENERAL             enum SoundStreamEvent

A sound stream is just made up of a bunch of events.

Library: sound.def


SoundStreamSize

SoundStreamSize     etype   word
    SSS_ONE_SHOT        enum    SoundStreamSize, 128; bytes
    SSS_SMALL           enum    SoundStreamSize, 256; bytes
    SSS_MEDIUM          enum    SoundStreamSize, 512; bytes
    SSS_LARGE           enum    SoundStreamSize, 1024; bytes

Library: sound.def


SoundStreamState

SoundStreamState    record
    SSS_active          :1  ; does a reader exist?
    SSS_destroying      :1  ; is it being destroyed?
    SSS_locked          :1  ; still an outstanding lock?
                        :5
SoundStreamState    end

Library: sound.def


SoundStreamStatus

SoundStreamStatus       struct
    SSS_streamToken         word 0              ; stream handle
    SSS_streamSegment       word 0              ; stream segment
    SSS_dataSem             Semaphore <1,>      ; all data on stream?
    SSS_activeReaderSem     Semaphore <1,>      ; reader currently on?
    SSS_writerSem           Semaphore <1,>      ; writer mutEx sem
    SSS_buffer              fptr 0              ; fptr to buffer
    SSS_dataRemaining       word 0              ; Number of bytes left
    SSS_dataOnStream        word 0              ; Number of events/samples
    SSS_streamState         SoundStreamState    ; state of stream
SoundStreamStatus       ends

Library: sound.def


SoundType

SoundType       etype word, 0, 2
    ST_SIMPLE_FM            enum SoundType
    ST_STREAM_FM            enum SoundType
    ST_SIMPLE_DAC           enum SoundType
    ST_STREAM_DAC           enum SoundType

There are a couple of different types of sounds. The first category is where it is stored. A simple sound is played from fixed memory. Simple. A stream sound is played from a stream. The second category is the type of sound. Currently, two formats can’t be mixed. A sound can be a Frequency Modulation sound. A sound can also be a store digitally and converted to analog.

Library: sound.def


SoundVoiceStatus

SoundVoiceStatus        struct
    SVS_instrument          fptr.InstrumentEnvelope 0
    SVS_physicalVoice       word 0
                            word 0
SoundVoiceStatus        ends

For every FM sound, whether simple or stream, the VoiceManager must be able to tell what the current instrument is and which voice (if any) the stream is currently using. It needs to do this for two reasons:
1) whenever a note gets played the voice has to be initialized to match what the stream thinks is on the voice.
2) when a stream issues a voice off command, the stream manager needs to know which voice to actually turn off.

The SoundVoiceStatus structure stores these two pieces of information.

Library: sound.def


SpecAttrs

SpecAttrs       record
    SA_ATTACHED                     :1
    SA_REALIZABLE                   :1
    SA_BRANCH_MINIMIZED             :1
    SA_USES_DUAL_BUILD              :1
    SA_CUSTOM_VIS_PARENT            :1
    SA_SIMPLE_GEN_OBJ               :1
    SA_CUSTOM_VIS_PARENT_FOR_CHILD  :1
    SA_TREE_BUILT_BUT_NOT_REALIZED  :1
SpecAttrs       end

SA_ATTACHED
For WIN_GROUP’s only (Ignored if non-WIN-GROUP object). Set for normal operation, clear if application is being shutdown, & therefore windows should be closed down, even if the VA_VISIBLE bit is set.

SA_REALIZABLE
For WIN_GROUP’s only (Ignored if non-WIN_GROUP object). Set to indicate that the specific UI think’s it is OK to make this object visual. It will not be set visual until the object is also USABLE and ATTACHED. This is the “specific UI’s vote” for whether or not this WIN_GROUP should appear on screen.

SA_BRANCH_MINIMIZED
Set if this generic object is “minimized” and specific UI wants to force all generic children in the branch to become non-visible. If this bit is set, the no objects in the generic branch below this point which have WIN_GROUP parts will be allowed to be visible.

SA_USES_DUAL_BUILD
Set for objects which behave as both a non-WIN_GROUP and a WIN_GROUP, and thus require two separate visible builds in order to get built. This is done by allowing it to act as both a WIN_GROUP object, which gets its own SPEC_BUILD, & as a simple object, which will receive a SPEC_BUILD from up above itself in the hierarchy.

SA_CUSTOM_VIS_PARENT
Set for generic objects which will not just be attached visually to their generic parent. Causes a MSG_SPEC_GET_VIS_PARENT to be sent out to determine what visual object the object should be placed on (in the default MSG_SPEC_BUILD handler)

SA_SIMPLE_GEN_OBJ
Set for generic objects which become a single visible object, via the Vis/ Specific/Gen master class scheme. If this bit is set, then MSG_GEN_GET_SPECIFIC_VIS_OBJECT need not sent out to determine what visible object the gen object has/will become. is both a generic & visual object.

SA_CUSTOM_VIS_PARENT_FOR_CHILD
Set for objects who want to use a different visual parent for their generic children than themselves. If this bit is set, children will send out a MSG_SPEC_DETERMINE_VIS_PARENT_FOR_CHILD to this object.

SA_TREE_BUILT_BUT_NOT_REALIZED
For WIN_GROUP’s only, this bit is set whenever the tree has been specifically built, but is now unrealized. The object is not actually in a visible composite when this bit is set, although it appears this way, since the object is given a one-way visible link upward. Having a one-way link is far superior to our old message of removing the WIN_GROUP from the visible tree, as this required an exception handling when setting an object immediately under a WIN_GROUP usable, in trying to figure out whether we needed to SPEC_BUILD it right away (the old message never did work). This way, if VI_link is non-zero, then the whole tree (all usable objects) is vis-built, and should be maintained that way. Also, this makes for quicker setting of such a WIN_GROUP to be realized again, as we can just add the object to the parent link stored in VI_link, without having to send a recursive MSG_SPEC_BUILD_BRANCH down the tree.

Library: Objects/visC.def


SpecBuildFlags

SpecBuildFlags      record
    SBF_IN_UPDATE_WIN_GROUP                         :1
    SBF_WIN_GROUP                                   :1
    SBF_TREE_BUILD                                  :1
    SBF_VIS_PARENT_WITHIN_SCOPE_OF_TREE_BUILD       :1
    SBF_SKIP_CHILD                                  :1
    SBF_FIND_LAST                                   :1
    SBF_VIS_PARENT_UNBUILDING                       :1
    SBF_VIS_PARENT_FULLY_ENABLED                    :1
                                                    :6
    SBF_UPDATE_MODE                                 :2
SpecBuildFlags      end

SBF_IN_UPDATE_WIN_GROUP Used for Building only (Not used in Unbuilding). Set if SPEC_BUILD is being sent from within the MSG_VIS_VUP_UPDATE_WIN_GROUP. This lets the object being called know that the tree is being updated now, & that if the SBF_WIN_GROUP flag is not set, then it is the WIN_GROUP that it’s parent is in is the one which is being updated.

SBF_WIN_GROUP
Valid for non-branch (MSG_SPEC_BUILD & MSG_SPEC_UNBUILD) messages only. Used for both Building & Unbuilding. Set if object being asked to visually build is a WIN_GROUP, & it is the head object being built. The flag is used by objects having DUAL_BUILD, so that they can tell whether their being asked to be built as the WIN_GROUP object, or as the non-WIN_GROUP portion of the object.

SBF_TREE_BUILD
Used for Building only (Not used in Unbuilding). This optimization flag is set automatically when MSG_SPEC_BUILD_BRANCH is sent on to generic children of an object being built. Indicates the object’s generic parent & all siblings are being built at once. If so, VisAddChildRelativeToGen may assume that there no specifically built generic objects to the right of object currently being built.

SBF_VIS_PARENT_WITHIN_SCOPE_OF_TREE_BUILD
Used for Building only (Not used in Unbuilding). This optimization bit is set for the current object only if its visible parent turns out to be the generic parent, but may also be set for a branch by the specific UI in SPEC_BUILD handlers if it is sure no objects below that point will end up visually higher than the top generic. Used by VisAddChildRelativeToGen to avoid the mess of work required to carefully position a new object within existing visual objects (When building within tree, all objects may just be added at the end, in the order encountered)

SBF_SKIP_CHILD
INTERNAL flag.

SBF_FIND_LAST
INTERNAL flag.

SBF_VIS_PARENT_UNBUILDING
Valid for MSG_SPEC_UNBUILD and MSG_SPEC_UNBUILD_BRANCH only. Used for unbuilding, is set if the object receiving MSG_SPEC_UNBUILD_BRANCH not because of a generic parent somewhere up the line being set NOT_USABLE, but instead because a visual parent somewhere up the line is being unbuilt. This can happen when generic objects build themselves visually on a window other than the one their parent sits on.The difference in the unbuild is threefold:

1) MSG_SPEC_UNBUILD_BRANCH is passed on down to visible children only, with this same flag set.

2) Only effected portions of object are unbuilt (i.e. only one of WIN_GROUP/non-WIN_GROUP piece for dual-build objects).

3) Dual-build objects must be careful to unbuild such that the remaining “side” continues to function, and the unbuilt side can re-build correctly and continue to work with the already built side.

SBF_VIS_PARENT_FULLY_ENABLED
Passed to tell child object if its parent was fully enabled. Speeds up figuring out whether our object should be set fully enabled.

SBF_UPDATE_MODE
VisUpdateMode to use.

Library: Objects/visC.def


SpecChildCount

SpecChildCount      record
    SCC_DATA        :16
SpecChildCount      end

Library: Objects/visC.def


SpecHeight

SpecHeight      record
    SH_TYPE         SpecSizeType:6
    SH_DATA         :10
SpecHeight      end

Library: Objects/visC.def


SpecialChar

SpecialChar     etype word, 0, 2
    SC_WILDCARD             enum    SpecialChar
    SC_WILDCHAR             enum    SpecialChar
    SC_GRAPHIC              enum    SpecialChar
    SC_CR                   enum    SpecialChar
    SC_PAGE_BREAK           enum    SpecialChar
    SC_TAB                  enum    SpecialChar

Library: Objects/Text/tCtrlC.def


SpecialFunction

SpecialFunction     etype word, 0, 2
    SF_FILENAME         enum SpecialFunction
    SF_PAGE             enum SpecialFunction
    SF_PAGES            enum SpecialFunction

Library: parse.def


SpecQueryVisParentType

SpecQueryVisParentType              etype word
    SQT_VIS_PARENT_FOR_FIELD        enum SpecQueryVisParentType
    SQT_VIS_PARENT_FOR_APPLICATION  enum SpecQueryVisParentType
    SQT_VIS_PARENT_FOR_PRIMARY      enum SpecQueryVisParentType
    SQT_VIS_PARENT_FOR_DISPLAY      enum SpecQueryVisParentType
    SQT_VIS_PARENT_FOR_POPUP        enum SpecQueryVisParentType
    SQT_VIS_PARENT_FOR_URGENT       enum SpecQueryVisParentType
    SQT_VIS_PARENT_FOR_SYS_MODAL    enum SpecQueryVisParentType

Library: Objects/visC.def


SpecSizeArgs

SpecSizeArgs        struct
    SSA_minWidth            sword       ; HINT_MINIMUM_SIZE
    SSA_minHeight           sword
    SSA_minNumChildren      sword
    SSA_maxWidth            sword       ; HINT_MAXIMUM_SIZE
    SSA_maxHeight           sword
    SSA_maxNumChildren      sword
    SSA_initWidth           sword       ; HINT_INITIAL_SIZE
    SSA_initHeight          sword
    SSA_initNumChildren     sword
    SSA_fixedWidth          sword       ; HINT_FIXED_SIZE
    SSA_fixedHeight         sword
    SSA_fixedNumChildren    sword
SpecSizeArgs        ends

This structure is filled in by VisSetupSizeArgs, finding all the desired size hints and converting them as appropriate. You can then pass the results to VisApplyInitialSizeArgs, VisApplySizeArgsToWidth, or VisApplySizeArgsToHeight, which each limit MSG_VIS_RECALC_SIZE suggested size arguments in various ways.

Library: Objects/visC.def


SpecSizeSpec

SpecSizeSpec            record
    SSS_TYPE        SpecSizeType:6
    SSS_DATA        :10
SpecSizeSpec            end

Library: Objects/visC.def


SpecSizeType

SpecSizeType        etype byte
    SST_PIXELS                      enum SpecSizeType
    SST_COUNT                       enum SpecSizeType
    SST_PCT_OF_FIELD_WIDTH          enum SpecSizeType
    SST_PCT_OF_FIELD_HEIGHT         enum SpecSizeType
                        PCT_0       equ 0000000000b
                        PCT_5       equ 0000110011b
                        PCT_10      equ 0001100110b
                        PCT_15      equ 0010011001b
                        PCT_20      equ 0011001100b
                        PCT_25      equ 0100000000b
                        PCT_30      equ 0100110011b
                        PCT_35      equ 0101100110b
                        PCT_40      equ 0110011001b
                        PCT_45      equ 0111001100b
                        PCT_50      equ 1000000000b
                        PCT_55      equ 1000110011b
                        PCT_60      equ 1001100110b
                        PCT_65      equ 1010011001b
                        PCT_70      equ 1011001100b
                        PCT_75      equ 1100000000b
                        PCT_80      equ 1100110011b
                        PCT_85      equ 1101100110b
                        PCT_90      equ 1110011001b
                        PCT_95      equ 1111001100b
                        PCT_100     equ 1111111111b
    SST_AVG_CHAR_WIDTHS             enum SpecSizeType
    SST_WIDE_CHAR_WIDTHS            enum SpecSizeType
    SST_LINES_OF_TEXT               enum SpecSizeType

SST_PIXELS
Size in pixels. This can be 0 through 1023. This also may imply that it’s an already converted desired size.

SST_COUNT
This type is not a “size” type proper, and is the only exception to the general rule that any SpecSizeSpec word may be converted by VisConvertSpecSizeSpec (Which will FATAL_ERROR if passed this). This is offered because some generic objects would like to provide a “Count” option in addition to having an actual distance. An example is a scrolling list, where we want to have both a SpecSizeSpec to indicate the height of each moniker, and one more to indicate how tall we want the scrolling list to be. A nice option for how tall the scrolling list should be is to provide a “count” of how many list entries we’d like to display.

SST_PCT_OF_FIELD_WIDTH
Percentage of screen width, where 10-bit value is a fraction, which is multiplied by the width of the screen. For a list of predefined fractions, see below. If you wish to calculate your own fraction, use a 10-bit value, where each bit has the fractional value: Bn = 2 ^ -n, where n = bit position MSB = 1, LSB = 10.

SST_PCT_OF_FIELD_HEIGHT
Percentage of screen height.

SST_AVG_CHAR_WIDTHS
Data is number to multiply by the width of the average character in the font being used. This may be 0 to 1023.

SST_WIDE_CHAR_WIDTHS
Data is number to multiply by the width of the widest character in the set of the font being used. To be used in cases where we want to ensure that “any 8 characters” for example, could be displayed in the space allocated. This may be 0 to 1023.

SST_LINES_OF_TEXT
Data is the # to multiply times the height of a line of text in the font being used. Typically used with a value of 1, as multiple lines of text are normally only handled by the text object.

Library: Objects/visC.def


SpecUINavigationID

SpecUINavigationID      etype word, NAVIGATION_ID_UI_START

Library: Objects/genC.def


SpecWidth

SpecWidth           record
    SW_TYPE     SpecSizeType:6
    SW_DATA     :10
SpecWidth           end

Library: Objects/visC.def


SpecWinSizePair

SpecWinSizePair     struct
    SWSP_x  SpecWinSizeSpec
    SWSP_y  SpecWinSizeSpec
SpecWinSizePair     ends

This structure stores an (x,y) pair of SpecWinSIzeSpec structures. This structure allows us to represent the generic position and size of a windowed object.

Library: Objects/visC.def


SpecWinSizeSpec

SpecWinSizeSpec     record
    SWSS_RATIO      :1      ;TRUE if value is ratio. If FALSE,
                            ;bits 14-0 contain signed pixel value.
                            ;(need to extend sign to bit 15)
    SWSS_SIGN       :1      ;sign of ratio (MUST BE BIT 14)
    SWSS_MANTISSA   :4      ;integer portion: 0-15
    SWSS_FRACTION   :10     ;fractional portion: 1/1024 to 1023/1024.
SpecWinSizeSpec     end

Library: Objects/visC.def


SpellCheckFromOffsetFlags

SpellCheckFromOffsetFlags               record
    SCFOF_CHECK_NUM_CHARS           :1
SpellCheckFromOffsetFlags               end

SCFOF_CHECK_NUM_CHARS
If set, VisTextSpellCheckFromOffset will check the passed number of characters.

Library: Objects/vTextC.def


SpellCheckFromOffsetStruct

SpellCheckFromOffsetStruct              struct
    SCFOS_ICBuff                hptr
    SCFOS_flags                 SpellCheckFromOffsetFlags
    SCFOS_numChars              dword
    SCFOS_offset                dword
    SCFOS_replyOptr             optr
    even
SpellCheckFromOffsetStruct              ends

SCFOS_ICBuff stores the ICBuff to pass to the spell check library.

SCFOS_flags stores flags which specify whether or not to skip the next word in the document.

SCFOS_numChars stores the number of characters to spell check in total (if we want to skip the next word, the size of that word is deducted from this total).

SCFOS_offset stores the offset into the text to begin spell checking.

SCFOS_replyOptr stores the optr that object reply messages (such as SPELL_CHECK_COMPLETED) should be sent to.

Library: Objects/vTextC.def


SpoolFileName

SpoolFileName       struct
    SFN_base    char "spool"
    SFN_num     char "000"
    SFN_ext     char ".dat",0
SpoolFileName       ends

This structure stores the default names to attach to spool files.

Library: spool.def


SpoolInfoType

SpoolInfoType       etype word, 0, 2
    SIT_JOB_INFO                enum SpoolInfoType
    SIT_QUEUE_INFO              enum SpoolInfoType

Library: spool.def


SpoolOpStatus

SpoolOpStatus       etype word, 0, 1
    SPOOL_OPERATION_SUCCESSFUL          enum SpoolOpStatus
    SPOOL_JOB_NOT_FOUND                 enum SpoolOpStatus
    SPOOL_QUEUE_EMPTY                   enum SpoolOpStatus
    SPOOL_QUEUE_NOT_EMPTY               enum SpoolOpStatus
    SPOOL_QUEUE_NOT_FOUND               enum SpoolOpStatus
    SPOOL_CANT_VERIFY_PORT              enum SpoolOpStatus
    SPOOL_OPERATION_FAILED              enum SpoolOpStatus

Library: spool.def


SpoolTimeStruct

SpoolTimeStruct     struct
    STS_second      byte        ; second of the minute (0-59)
    STS_minute      byte        ; minute of the hour (0-59)
    STS_hour        byte        ; hour of the day (0-23)
SpoolTimeStruct     ends

This structure holds the time stamp for a print spool job.

Library: spool.def


SRCFeatures

SRCFeatures     record
    SRCF_CLOSE                      :1
    SRCF_FIND_NEXT                  :1
    SRCF_FIND_PREV                  :1
    SRCF_REPLACE_CURRENT            :1
    SRCF_REPLACE_ALL_IN_SELECTION   :1
    SRCF_REPLACE_ALL                :1
    SRCF_PARTIAL_WORDS              :1
    SRCF_IGNORE_CASE                :1
    SRCF_WILDCARDS                  :1
    SRCF_SPECIAL_CHARS              :1
SRCFeatures     end

Library: Objects/Text/tCtrlC.def


SRCToolboxFeatures

SRCToolboxFeatures      record
    SRCTF_SEARCH_REPLACE        :1
SRCToolboxFeatures      end

Library: Objects/Text/tCtrlC.def


StandardArrowheadType

StandardArrowheadType           record
    SAT_LENGTH                          :6
    SAT_FILLED                          :1
    SAT_FILL_WITH_AREA_ATTRIBUTES       :1
    SAT_ANGLE                           :8
StandardArrowheadType           end

Library: grobj.def


StandardDialogOptrParams

StandardDialogOptrParams                struct
    SDOP_customFlags            CustomDialogBoxFlags
    SDOP_customString           optr
    SDOP_stringArg1             optr
    SDOP_stringArg2             optr
    SDOP_customTriggers         fptr.StandardDialogResponseTriggerTable
    SDOP_helpContext            fptr
StandardDialogOptrParams                ends

This structure stores parameters passed to the UserStandardDialogOptr routine. These entries must be in the same order as StandardDialogParams.

Library: uDialog.def


StandardDialogParams

StandardDialogParams            struct
    SDP_customFlags         CustomDialogBoxFlags
    SDP_customString        fptr
    SDP_stringArg1          fptr
    SDP_stringArg2          fptr
    SDP_customTriggers      fptr.StandardDialogResponseTriggerTable
    SDP_helpContext         fptr
StandardDialogParams            ends

This structure stores parameters passed to UserStandardDialog and MSG_GEN_APPLICATION_DO_STANDARD_DIALOG.

Library: uDialog.def


StandardDialogResponseTriggerEntry

StandardDialogResponseTriggerEntry  struct
    SDRTE_moniker               optr
    SDRTE_responseValue         word
StandardDialogResponseTriggerEntry  ends

This structure defines a custom trigger for a GenInteraction of type GIT_MULTIPLE_RESPONSE initiated through UserStandardDialog. This entry structure is placed within a StandardDialogResponseTriggerTable.

SDRTE_moniker stores an optr to a moniker for the trigger to exhibit.

SDRTE_responseValue stores the ATTR_GEN_TRIGGER_INTERACTION_COMMAND or custom defined response value.

Library: uDialog.def


StandardDialogResponseTriggerTable

StandardDialogResponseTriggerTable  struct
    SDRTT_numTriggers       word
    SDRTT_triggers          label StandardDialogResponseTriggerEntry
StandardDialogResponseTriggerTable  ends

This structure stores a table of custom response triggers for a GenInteraction of type GIT_MULTIPLE_RESPONSE initiated through UserStandardDialog.

Library: uDialog.def


StandardLanguage

StandardLanguage        etype byte, 0, 1
    SL_UNIVERSAL            enum StandardLanguage,0 ; Universal Language code

    SL_FRENCH           enum StandardLanguage,5     ; French
    SL_GERMAN           enum StandardLanguage,6     ; German
    SL_SWEDISH          enum StandardLanguage,7     ; Swedish
    SL_SPANISH          enum StandardLanguage,8     ; Spanish
    SL_ITALIAN          enum StandardLanguage,9     ; Italian
    SL_DANISH           enum StandardLanguage,10    ; Danish
    SL_DUTCH            enum StandardLanguage,11    ; Dutch
    SL_PORTUGUESE       enum StandardLanguage,12    ; Portuguese
    SL_NORWEGIAN        enum StandardLanguage,13    ; Norwegian Becalm
    SL_FINNISH          enum StandardLanguage,14    ; Finnish
    SL_SWISS            enum StandardLanguage,15    ; Swiss
    SL_ENGLISH          enum StandardLanguage,16    ; English
    SL_ARABIC           enum StandardLanguage,20    ; Arabic
    SL_AUSTRALIAN       enum StandardLanguage,21    ; Australian
    SL_CHINESE          enum StandardLanguage,22    ; Chines (Pinyon)
    SL_GAELIC           enum StandardLanguage,23    ; Gallic
    SL_GREEK            enum StandardLanguage,24    ; Greek
    SL_HEBREW           enum StandardLanguage,25    ; Hebrew
    SL_HUNGARIAN        enum StandardLanguage,26    ; Hungarian (Meager)
    SL_JAPANESE         enum StandardLanguage,27    ; Japanese
    SL_POLISH           enum StandardLanguage,28    ; Polish
    SL_SERBO_CROATN     enum StandardLanguage,29    ; Sorb-Creatine
    SL_SLOVAK           enum StandardLanguage,30    ; Slovak/Czech (Czechoslovakia)
    SL_RUSSIAN          enum StandardLanguage,31    ; Russian
    SL_TURKISH          enum StandardLanguage,32    ; Turkish
    SL_URDU             enum StandardLanguage,33    ; Rudy/Hindu
    SL_AFRIKAANS        enum StandardLanguage,34    ; Afrikaans
    SL_BASQUE           enum StandardLanguage,35    ; Basque
    SL_CATALAN          enum StandardLanguage,36    ; Chatelaine
    SL_CANADIAN         enum StandardLanguage,37    ; Canadian
    SL_FLEMISH          enum StandardLanguage,38    ; Flemish
    SL_HAWAIIAN         enum StandardLanguage,39    ; Hawaiian
    SL_KOREAN           enum StandardLanguage,40    ; Korean (Angel)
    SL_LATIN            enum StandardLanguage,41    ; Latin
    SL_MAORI            enum StandardLanguage,42    ; Mario
    SL_NZEALAND         enum StandardLanguage,43    ; New Sealant
    SL_BRITISH          enum StandardLanguage,44    ; U.K. English

    SL_DEFAULT          equ SL_ENGLISH

Library: sllang.def


StandardPath

StandardPath        etype word, 1, 2
    SP_NOT_STANDARD_PATH        enum StandardPath,0
    SP_TOP                      enum StandardPath,1
    SP_APPLICATION              enum StandardPath
    SP_DOCUMENT                 enum StandardPath
    SP_SYSTEM                   enum StandardPath
    SP_PRIVATE_DATA             enum StandardPath
    SP_STATE                    enum StandardPath
    SP_FONT                     enum StandardPath
    SP_SPOOL                    enum StandardPath
    SP_SYS_APPLICATION          enum StandardPath
    SP_USER_DATA                enum StandardPath
    SP_MOUSE_DRIVERS            enum StandardPath
    SP_PRINTER_DRIVERS          enum StandardPath
    SP_FILE_SYSTEM_DRIVERS      enum StandardPath
    SP_VIDEO_DRIVERS            enum StandardPath
    SP_SWAP_DRIVERS             enum StandardPath
    SP_KEYBOARD_DRIVERS         enum StandardPath
    SP_FONT_DRIVERS             enum StandardPath
    SP_IMPORT_EXPORT_DRIVERS    enum StandardPath
    SP_TASK_SWITCH_DRIVERS      enum StandardPath
    SP_HELP_FILES               enum StandardPath
    SP_TEMPLATE                 enum StandardPath
    SP_POWER_DRIVERS            enum StandardPath
    SP_DOS_ROOM                 enum StandardPath
    SP_HWR                      enum StandardPath
    SP_WASTE_BASKET             enum StandardPath
    SP_BACKUP                   enum StandardPath
    SP_PAGER_DRIVERS            enum StandardPath

    SP_TEMP_FILES       equ SP_WASTE_BASKET

SP_NOT_STANDARD_PATH
Not a standard path.

SP_TOP
Top level directory. (Location of GEOS.EXE and GEOS.INI files.) Generally C:/GEOWORKS.

SP_APPLICATION
Application directory. (Location of all applications.) Default is WORLD.

SP_DOCUMENT
Document directory. (Location of all application datafiles.) Default is DOCUMENT.

SP_SYSTEM
System directory. (Location of drivers, libraries, TOKEN.DB.) Default is SYSTEM.

SP_PRIVATE_DATA
Private data. Default is PRIVDATA.

SP_STATE
State directory. (Location of state files.) Default is PRIVDATA/STATE.

SP_FONT
Font directory. (Location of all fonts.) Default is USERDATA/FONT.

SP_SPOOL
Spool directory. (Location of application spool files.) Default is PRIVDATA/SPOOL.

SP_SYS_APPLICATION
Secondary application directory. (Location of GCM apps, welcome, applications that should not be launched by the user.) Default is SYSTEM/SYSAPPL.

SP_USER_DATA
Public data. Default is USERDATA

SP_MOUSE_DRIVERS
Mouse drivers. Default is SYSTEM/MOUSE

SP_PRINTER_DRIVERS
Printer drivers. Default is SYSTEM/PRINTER.

SP_FILE_SYSTEM_DRIVERS
File system drivers. Default is SYSTEM/FS.

SP_VIDEO_DRIVERS
Video drivers. Default is SYSTEM/VIDEO.

SP_SWAP_DRIVERS
Swap drivers. Default is SYSTEM/SWAP.

SP_KEYBOARD_DRIVERS
Keyboard drivers. Default is SYSTEM/KBD.

SP_FONT_DRIVERS
Font drivers. Default is SYSTEM/FONT.

SP_IMPORT_EXPORT_DRIVERS
Import/export libraries. Default is SYSTEM/IMPEX.

SP_TASK_SWITCH_DRIVERS
Task-switching drivers. Default is SYSTEM/TASK.

SP_HELP_FILES
Help files. Default is USERDATA/HELP.

SP_TEMPLATE
Template files. Default is USERDATA/TEMPLATE.

SP_POWER_DRIVERS
Power-management drivers. Default is SYSTEM/POWER.

SP_DOS_ROOM
Where DOS Launchers default to and where Welcome looks to give user a list of buttons. Default is DOSROOM.

SP_HWR
HandWritingRecognition drivers. Default is SYSTEM/HWR.

SP_WASTE_BASKET
This is where discarded files go. Default is PRIVDATA/WASTE.

SP_BACKUP
his is where backup files go. Default is PRIVDATA/BACKUP.

Library: file.def


StandardPathByte

StandardPathByte        record
    SPB_SP      StandardPath:8
StandardPathByte        end

Library: file.def


StandardSoundType

StandardSoundType       etype word
    SST_ERROR               enum StandardSoundType
    SST_WARNING             enum StandardSoundType
    SST_NOTIFY              enum StandardSoundType
    SST_NO_INPUT            enum StandardSoundType
    SST_KEY_CLICK           enum StandardSoundType
    SST_ALARM               enum StandardSoundType
    SST_CUSTOM_SOUND        equ 0xfffd
    SST_CUSTOM_BUFFER       equ 0xfffe  
    SST_CUSTOM_NOTE         equ 0xffff

SST_ERROR
Sound produced when an Error box comes up.

SST_WARNING
General warning beep sound.

SST_NOTIFY
General notify beep.

SST_NO_INPUT
Sound produced when the users keystrokes/mouse presses are not going anywhere (if the user clicks off a modal dialog box, or clicks on the field or something).

SST_KEY_CLICK
Sound produced when the keyboard is pressed, or when the user clicks on a floating keyboard.

SST_CUSTOM_SOUND
Allows applications to play a custom sound handle and does all the checking for sound being off, etc. This is not a part of the enumerated type to simplify error checking later.

SST_CUSTOM_BUFFER
Allows applications to play a custom sound buffer and does all the checking for sound being off, etc. This is not a part of the enumerated type to simplify error checking later.

SST_CUSTOM_NOTE
Allows applications to play a custom note and does all the checking for sound being off, etc. This is not a part of the enumerated type to simplify error checking later.

All sounds are given the following defaults:

TEMPO = 1 msec per 64th note
PRIORITY = SYSTEM_IMMEDIATE.

Library: ui.def


StartUndoChainStruct

StartUndoChainStruct            struct
    SUCS_owner          optr
    SUCS_title          optr
StartUndoChainStruct            ends

SUCS_owner stores the owner of this action.

SUCS_title stores the null-terminated title of this action. If null, then the title of the undo action will be the title passed with the next MSG_GEN_PROCESS_UNDO_START_CHAIN.

Library: Objects/gProcC.def


SubscriptPosition

SubscriptPosition       etype byte
    SBP_CHEMICAL                enum SubscriptPosition, 30
    SBP_DENOMINATOR             enum SubscriptPosition, 0
    SBP_DEFAULT                 enum SubscriptPosition, 50

Library: font.def


SubscriptSize

SubscriptSize       etype byte
    SBS_CHEMICAL                enum SubscriptSize, 65
    SBS_DENOMINATOR             enum SubscriptSize, 60
    SBS_DEFAULT                 enum SubscriptSize, 50

Library: font.def


SuperscriptPosition

SuperscriptPosition         etype byte
    SPP_DISPLAY         enum SuperscriptPosition, 50
    SPP_FOOTNOTE        enum SuperscriptPosition, 40
    SPP_ALPHA           enum SuperscriptPosition, 45
    SPP_NUMERATOR       enum SuperscriptPosition, 50
    SPP_DEFAULT         enum SuperscriptPosition, 50

Library: font.def


SuperscriptSize

SuperscriptSize     etype byte
    SPS_DISPLAY         enum SuperscriptSize, 55
    SPS_FOOTNOTE        enum SuperscriptSize, 65
    SPS_ALPHA           enum SuperscriptSize, 75
    SPS_NUMERATOR       enum SuperscriptSize, 60
    SPS_DEFAULT         enum SuperscriptSize, 50

Library: font.def


SysConfigFlags

SysConfigFlags      record
    SCF_UNDER_SWAT  :1, ; Non-zero if kernel started by Swat stub
    SCF_2ND_IC      :1, ; Non-zero if second 8259 present
    SCF_RTC         :1, ; Non-zero if real-time clock around
    SCF_COPROC      :1, ; Non-zero if math coprocessor present
    SCF_RESTARTED   :1  ; Non-zero if restarted from our tsr
    SCF_CRASHED     :1  ; Non-zero if we crashed the last time we ran
    SCF_MCA         :1  ; Non-zero if we're on a Micro Channel machine
    SCF_LOGGING     :1  ; Non-zero if we're writing log messages
SysConfigFlags      end

Library: system.def


SysDrawMask

SysDrawMask     record
    SDM_INVERSE     :1                  ; bit 7: 0 for mask as is
                                        ; 1 for inverse of mask
    SDM_MASK        SystemDrawMask:7    ; bits 6-0: draw mask number
                                        ; 0x7f to set custom mask
SysDrawMask     end

Library: graphics.def


SysGetInfoType

SysGetInfoType      etype word, 0, 2
    SGIT_TOTAL_HANDLES          enum SysGetInfoType
    SGIT_HEAP_SIZE              enum SysGetInfoType
    SGIT_LARGEST_FREE_BLOCK     enum SysGetInfoType
    SGIT_TOTAL_COUNT            enum SysGetInfoType
    SGIT_NUMBER_OF_VOLUMES      enum SysGetInfoType
    SGIT_TOTAL_GEODES           enum SysGetInfoType
    SGIT_NUMBER_OF_PROCESSES    enum SysGetInfoType
    SGIT_NUMBER_OF_LIBRARIES    enum SysGetInfoType
    SGIT_NUMBER_OF_DRIVERS      enum SysGetInfoType
    SGIT_CPU_SPEED              enum SysGetInfoType
    SGIT_SYSTEM_DISK            enum SysGetInfoType
    SGIT_UI_PROCESS             enum SysGetInfoType

Library: sysstats.def


SysInitialTextMode

SysInitialTextMode      etype   byte, 0
    SITM_UNKNOWN                enum SysInitialTextMode, 0
    SITM_TEXT_80_25_16_COLOR    enum SysInitialTextMode, 3
    SITM_TEXT_80_25_MONO        enum SysInitialTextMode, 7

Library: system.def


SysMachineType

SysMachineType      etype byte, 0
    SMT_UNKNOWN         enum SysMachineType
    SMT_PC              enum SysMachineType
    SMT_PC_CONV         enum SysMachineType
    SMT_PC_JR           enum SysMachineType
    SMT_PC_XT           enum SysMachineType
    SMT_PC_XT_286       enum SysMachineType
    SMT_PC_AT           enum SysMachineType
    SMT_PS2_30          enum SysMachineType
    SMT_PS2_50          enum SysMachineType
    SMT_PS2_60          enum SysMachineType
    SMT_PS2_80          enum SysMachineType
    SMT_PS1             enum SysMachineType

Library: system.def


SysNotifyFlags

SysNotifyFlags          record
    SNF_RETRY       :1, ; Retry the operation.
    SNF_EXIT        :1, ; Shutdown the system.
    SNF_ABORT       :1, ; Abort the operation.
    SNF_CONTINUE    :1, ; Continue when done. This is different from
                        ; SNF_RETRY as it implies the notification is
                        ; not for a real error, but just to notify
                        ; the user of something.
    SNF_REBOOT      :1, ; Hard exit -- dirty shutdown followed by
                        ; reload/restart of GEOS
    SNF_BIZARRE     :1, ; Indicates notice is unexpected and user
                        ; should be directed to the trouble-shooting
                        ; guide.
                    :10
SysNotifyFlags          end

Library: system.def


SysProcessorType

SysProcessorType        etype byte, 0
    SPT_8088            enum SysProcessorType
    SPT_8086            enum SysProcessorType, SPT_8088
    SPT_80186           enum SysProcessorType
    SPT_80286           enum SysProcessorType
    SPT_80386           enum SysProcessorType
    SPT_80486           enum SysProcessorType

Library: system.def


SysShutdownType

SysShutdownType     etype word
    SST_CLEAN           enum SysShutdownType
    SST_CLEAN_FORCED    enum SysShutdownType
    SST_DIRTY           enum SysShutdownType
    SST_PANIC           enum SysShutdownType
    SST_REBOOT          enum SysShutdownType
    SST_RESTART         enum SysShutdownType
    SST_FINAL           enum SysShutdownType
    SST_SUSPEND         enum SysShutdownType
    SST_CONFIRM_START   enum SysShutdownType
    SST_CONFIRM_END     enum SysShutdownType

Note: SysNotify depends on these things increasing in severity as the number increases. Place any new modes in the proper order.

SST_CLEAN
Shut down applications cleanly, allowing ones that wish to abort the shutdown to do so. MSG_META_CONFIRM_SHUTDOWN is sent out via the MANUFACTURER_ID_GEOWORKS: GCNSLT_SHUTDOWN_CONTROL list.
Pass:
^lcx:dx - object to notify when everything’s been confirmed; or 0:0 to simply notify the UI in the standard fashion (via MSG_META_DETACH).
bp - message to send it. When the message is sent, cx will be 0 if the shutdown request has been denied; non-zero if the shutdown may proceed.
Return: - carry set if another shutdown is already in-progress

SST_CLEAN_FORCED
Shut down applications cleanly, but do not send out MSG_META_CONFIRM_SHUTDOWN.
Pass: - nothing.
Return: - nothing.

SST_DIRTY
Do not shut down applications. Attempt to exit device drivers and close all open files, however.
Pass:
ds:si - reason for the shutdown (null-terminated string).
si - -1 if no reason to give the user.
Return: - doesn’t.

SST_PANIC
Do not shut down applications. Do not close files. Only exit device drivers marked with GA_SYSTEM. This can be really bad for the system and should be used only in dire straits.
Pass: - nothing.
Return: - doesn’t.

SST_REBOOT
Like SST_DIRTY, but warm-boots the machine, rather than just exiting to DOS.
Pass: - nothing.
Return: - doesn’t.

SST_RESTART
Like SST_CLEAN_FORCED, but reload the system, rather than exiting to DOS.
Pass: - nothing.
Return: - only if couldn’t set up for restart (e.g. loader.exe wasn’t found).

SST_FINAL
Perform the final phase of an SST_CLEAN or SST_CLEAN_FORCED shutdown.
Pass:
ds:si - reason for shutdown (si = -1 if no reason to give).
Return: - doesn’t.

SST_SUSPEND
Suspend system operation in preparation for switching to a new DOS task. Broadcasts MSG_META_CONFIRM_SHUTDOWN through the system’s MANUFACTURER_ID_GEOWORKS: GCNSLT_SHUTDOWN_CONTROL list.
Pass:
^lcx:dx - object to notify when everything’s been confirmed
bp - message to send it. When the message is sent, cx will be 0 if the shutdown request has been denied; non-zero if the shutdown may proceed.
Return: - carry set if another shutdown is already in-progress.

SST_CONFIRM_START
Called by the recipient of a MSG_META_CONFIRM_SHUTDOWN so there’s some order to the way confirmation boxes are presented to the user. Only one thread may be confirming the shutdown at a time. The caller will block until it is given permission. SysShutdown will return carry set to indicate that some other thread has already canceled the shutdown and the caller should not put up its confirmation box. It need not call SysShutdown again.
Pass: - nothing.
Return: - carry set if some other object has already denied the shutdown request. Caller should do nothing further.

SST_CONFIRM_END
Finishes the handling of a MSG_META_CONFIRM_SHUTDOWN.
Pass:
cx - 0 to deny the shutdown.

  • non-zero to allow the shutdown.
    Return: - nothing.

Library: system.def


SysSimpleGraphicsMode

SysSimpleGraphicsMode   etype   byte, 0
    SSGM_NONE               enum    SysSimpleGraphicsMode, 0
    SSGM_VGA                enum    SysSimpleGraphicsMode, 1
    SSGM_EGA                enum    SysSimpleGraphicsMode, 2
    SSGM_MCGA               enum    SysSimpleGraphicsMode, 3
    SSGM_HGC                enum    SysSimpleGraphicsMode, 4
    SSGM_CGA                enum    SysSimpleGraphicsMode, 5
    SSGM_SPECIAL            enum    SysSimpleGraphicsMode, 6
    SSGM_SVGA_VESA          enum    SysSimpleGraphicsMode, 7

Library: system.def


SysStats

SysStats        struct
    SS_idleCount            dword
    SS_swapOuts             SysSwapInfo
    SS_swapIns              SysSwapInfo
    SS_contextSwitches      word
    SS_interrupts           word
    SS_runQueue             word
SysStats        ends

This structure is returned by SysStatistics and stores the current performance statistics of GEOS.

SS_idleCount stores the number of idle ticks during the last second.

SS_swapOuts stores the outward-bound swapping activity (SysSwapInfo).

SS_swapIns stores the inward-bound swapping activity (SysSwapInfo).

SS_contextSwitches stores the number of context switches that occurred during the last second.

SS_interrupts stores the number of interrupts that occurred during the last second.

SS_runQueue stores the number of runnable threads at the end of the last second.

Library: sysstats.def


SysSwapInfo

SysSwapInfo     struct
    SSI_paragraphs      word
    SSI_blocks          word
SysSwapInfo     ends

This structure stores the current swap activity of the system. This swap information is used in the SysStats structure.

SSI_paragraph stores the number of “paragraphs” swapped.

SSI_blocks stores the number of blocks swapped.

Library: sysstats.def


SystemAttrs

SystemAttrs     record
    SA_NOT                  :1  ;Any following set bits must be OFF for hints
                                ;to be included, rather than on.
    SA_TINY                 :1  ;If set, screen must be either horizontally or
                                ;vertically tiny for hints to be included.
    SA_HORIZONTALLY_TINY    :1  ;If set, screen must be horizontally tiny for
                                ;hints to be included.
    SA_VERTICALLY_TINY      :1  ;If set, screen must be vertically tiny for
                                ;hints to be included.
    SA_COLOR                :1  ;If set, must be a color screen for hints to
                                ;be included.
    SA_PEN_BASED            :1  ;If set, system must be pen based for hints
                                ;to be included.
    SA_KEYBOARD_ONLY        :1  ;If set, system must be set keyboard-only for
                                ;hints to be included.
    SA_NO_KEYBOARD          :1  ;If set, system must be set no-keyboard for
                                ;hints to be included.
        :8
SystemAttrs     end

Library: genC.def


SystemBitmap

SystemBitmap        etype byte

Library: graphics.def


SystemDrawMask

SystemDrawMask       etype byte
    SDM_TILE        enum SystemDrawMask     ; tile pattern
    SDM_SHADED_BAR  enum SystemDrawMask     ; shaded bar
    SDM_HORIZONTAL  enum SystemDrawMask     ; horizontal lines
    SDM_VERTICAL    enum SystemDrawMask     ; vertical lines
    SDM_DIAG_NE     enum SystemDrawMask     ; diagonal lines going up to NorthEast
    SDM_DIAG_NW     enum SystemDrawMask     ; diagonal lines going up to NorthWest
    SDM_GRID        enum SystemDrawMask     ; checkerboard
    SDM_BIG_GRID    enum SystemDrawMask     ; larger checkerboard
    SDM_BRICK       enum SystemDrawMask     ; brick wall
    SDM_SLANT_BRICK enum SystemDrawMask     ; slanted brick wall

    SDM_0           enum SystemDrawMask, 89     ; all zeroes
    SDM_12_5        enum SystemDrawMask, 81
    SDM_25          enum SystemDrawMask, 73
    SDM_37_5        enum SystemDrawMask, 65
    SDM_50          enum SystemDrawMask, 57
    SDM_62_5        enum SystemDrawMask, 49
    SDM_75          enum SystemDrawMask, 41
    SDM_87_5        enum SystemDrawMask, 33
    SDM_100         enum SystemDrawMask, 25     ; all ones
    SDM_CUSTOM      enum SystemDrawMask, 0x7f   ; setting a custom mask
    SET_CUSTOM_PATTERN = SDM_CUSTOM

Library: graphics.def


SystemHatch

SystemHatch     etype byte
SH_VERTICAL         enum SystemHatch    ; vertical lines
SH_HORIZONTAL       enum SystemHatch    ; horizontal lines
SH_45_DEGREE        enum SystemHatch    ; lines at 45 degrees
SH_135_DEGREE       enum SystemHatch    ; lines at 135 degrees
SH_BRICK            enum SystemHatch    ; basic brick
SH_SLANTED_BRICK    enum SystemHatch    ; basic brick, slanted

Library: graphics.def


SystemVMID

SystemVMID      etype word, 0xff00
    SVMID_RANGE_DBASE   equ 0xff00          ;Reserved for DB code

    DB_MAP_ID           enum SystemVMID     ; ID for DB map block
    DB_GROUP_ID         enum SystemVMID     ; ID for new DB group
    DB_ITEM_BLOCK_ID    enum SystemVMID     ; ID for new DB item block
    SVMID_HA_DIR_ID     enum SystemVMID     ; ID for HugeArray dir blocks
    SVMID_HA_BLOCK_ID   enum SystemVMID     ; ID for HugeArray data blocks

Library: vm.def

Structures N-R <– Table of Contents    –> Structures T-U