Aros/Developer/Scalos
Introduction
[edit | edit source]This is an incomplete guide, please support
- scalos.library - This library is used as application interface for the Scalos Workbench replacement
- scalosgfx.library - This documentation gives you information about scalosgfx.library
- scalos API - This documentation gives you information on how to communicate with Scalos and its windowtasks
- Scalos devicelist - This class is used to generate a list of all currently available devices
- Scalos devicewindow - This class implements the main Workbench (= root) window, which shows the icons for the mounted devices and volumes
- Scalos filetrans - This class is used to display a progress window showing the user what is currently going on while copying or moving files/directories
- Scalos root - This class is used for some fundamental message and event handling
- Scalos window - This class implements all common window functionality used for icon windows, text windows and device windows
- Scalos iconwindow - This class implements the functionality for the common Workbench icon windows
- Scalos textwindow - This class implements the text-only Scalos windows
- Scalos title - This class implements the screen title and window title functionality
- preferences.library - This library provides a convenient way to store the preferences for your program
- iconobject.library - This library is an interface to the iconobject.datatype
- iconobject.datatype - The iconobject.datatype has a special API to work with icons. makes both images, tooltypes and many more
AROS icon.library won't work on Scalos. Scalos uses its own iconobject.library and an iconobject datatype system enable the support for icon.library or other icons somewhere in the Scalos menu
Developer Docs
[edit | edit source]Scalos
[edit | edit source]--background SCA_AddBob SCA_AllocMessage SCA_AllocNode SCA_AllocStdNode SCA_CountWBArgs SCA_DisposeScalosObject SCA_DrawDrag SCA_EndDrag SCA_FreeAllNodes SCA_FreeMessage SCA_FreeNode SCA_FreeScalosClass SCA_FreeWBArgs SCA_GetDefIconObject SCA_InitDrag SCA_LockDrag SCA_LockWindowList SCA_MakeScalosClass SCA_MakeWBArgs SCA_MoveNode SCA_NewAddAppIcon SCA_NewAddAppMenuItem SCA_NewAddAppWindow SCA_NewScalosObject SCA_OpenDrawerByName SCA_OpenIconWindow SCA_RemoveAppObject SCA_ScalosControlA SCA_ScreenTitleMsg SCA_SortNodes SCA_SwapNodes SCA_UnlockDrag SCA_UnLockWindowList SCA_UpdateIcon SCA_WBStart
NAME
--background
DESCRIPTION This library is used as application interface for the Scalos workbenchreplacement. It's only available if Scalos is running. This means if the library-open fails Scalos isn't running.
For information about NodeList see SCA_SortNodes() and Node see SCA_AllocStdNode().
NAME
SCA_WBStart
SYNOPSIS
succ SCA_WBStart (ArgArray, Taglist, NumArgs ) A0 A1 D0
BOOL SCA_WBStart ( struct WBArg *ArgArray , const struct TagItem *Taglist, ULONG NumArgs );
BOOL SCA_WBStartTags( struct WBArg *ArgArray , ULONG NumArgs, ULONG FirstTag, ... );
FUNCTION The first argument is used as filename for the to started program. The Locks inside the ArgArray are automatically unlocked (use DupLock) and the strings are copied. The first element in ArgArray must contain the directory lock and name of the icon to start.
INPUTS ArgArray - Standard Workbench Args NumArgs - Number of Args in the ArgArray. This must be at least one. Taglist - Pointer to a taglist.
TAGS SCA_IconObject (Object *) - iconobject.library - IconObject to get information from it. No icon will be loaded.
SCA_Priority (LONG) - priority for the newly started process
SCA_Stacksize (ULONG) - stack size if no icon is available
SCA_WaitTimeout (ULONG) - wait timeout in seconds
SCA_Flags (ULONG) - Flags SCAF_WBStart_NoIcon - don't read an icon. SCAF_WBStart_Wait - wait until the program returns SCAF_WBStart_PathSearch - search through paths SCAF_WBStart_NoIconCheck - don't check icon type
RESULT succ - FALSE if the start fails. It only fails if not enough memory available or the WBL task couldn't be started. If the program couldn't be loaded it will return TRUE, because of it doesn't wait for the returncode of WBL task.
NOTE Locks will *NOT* be unlocked if this function fails!
SEE ALSO diskobject.library
NAME
SCA_SortNodes
SYNOPSIS
SCA_SortNodes (NodeList, CompareFunc, SortType) A0 A1 D0
void SCA_SortNodes ( struct ScalosNodeList *, struct Hook *, ULONG SortType);
FUNCTION Sorts a list of MinNodes and uses the CompareFunc to find differences between to nodes. NodeList is a pointer to a APTR which points to the first node. The first node has as mln_succ a NULL and the last node has as mln_pred a NULL. Only mln_succ, mln_pred and the address of the first will changed. Nothing will be reallocated or freed.
The CompareFunc will be called with a pointer to one node in A1 (Node0) and a pointer to second node in A2 (Node1). You have to return a specific value in D0: 0 if Node0 = Node1 1 if Node0 < Node1 -1 if Node0 > Node1
INPUTS NodeList - Pointer to an APTR which is a pointer to the first node CompareFunc - Pointer to a Hook structure for the compare function SortType - SCA_SortType_Bubble : enhanced BubbleSort SCA_SortType_Selection : SelectionSort SCA_SortType_Insertion : InsertionSort SCA_SortType_Quick : QuickSort SCA_SortType_Best : The nodes will be counted and then the best SortType will be used. SEE ALSO SCA_AllocNode(), SCA_AllocStdNode(), SCA_FreeNode(), SCA_FreeAllNodes(), SCA_MoveNode(), SCA_SwapNodes()
NAME
SCA_NewAddAppIcon SCA_NewAddAppIconTags
SYNOPSIS
AppObject = SCA_NewAddAppIcon (ID, UserData, IconObject, MessagePort, D0 D0 D1 A0 A1 Taglist) A2
struct AppObject *SCA_NewAddAppIcon( ULONG ID, ULONG UserData, struct IconObject *, struct MsgPort *, const struct TagItem *Taglist);
struct AppObject *SCA_NewAddAppIconTags( ULONG ID, ULONG UserData, struct IconObject *, struct MsgPort *, ULONG FirstTag, ...);
FUNCTION Adds an icon to the mainwindow of the Scalos-screen. See workbench.library/AddAppIconA() for more information.
INPUTS ID, UserData - will be passed through the AppMessage IconObject - diskobject.library - IconObject, IDTM_Layout should not to be done. MessagePort - a MsgPort where you will receive the AppMessage Taglist - pointer to a taglist.
TAGS Currently no tags are defined. With wb39.plugin, however, most of the V44 workbench tags are supported.
RESULT AppObject - a private structure to be pass to SCA_RemoveAppObject() or NULL after failure
SEE ALSO SCA_NewAddAppWindow(), SCA_NewAddAppMenuItem(), SCA_RemoveAppObject() workbench.library/AddAppIconA()
NAME
SCA_NewAddAppWindow SCA_NewAddAppWindowTags
SYNOPSIS
AppObject = SCA_NewAddAppWindow (ID, UserData, Window, MessagePort, D0 D0 D1 A0 A1 Taglist) A2
struct AppObject *SCA_NewAddAppWindow( ULONG ID, ULONG UserData, struct Window *, struct MsgPort *, const struct TagItem *Taglist);
struct AppObject *SCA_NewAddAppWindowTags( ULONG ID, ULONG UserData, struct Window *, struct MsgPort *, ULONG FirstTag, ...);
FUNCTION Same as workbench.library/AddAppWindowA(). See there for further information.
INPUTS ID, UserData - will be passed through the AppMessage Window - Intuition Window MessagePort - a MsgPort where you will receive the AppMessage Taglist - pointer to a taglist.
TAGS Currently no tags are defined.
RESULT AppObject - a private structure to be pass to SCA_RemoveAppObject or NULL on failure
SEE ALSO SCA_NewAddAppIcon(), SCA_NewAddAppMenuItem(), SCA_RemoveAppObject() workbench.library/AddAppWindowA()
NAME
SCA_NewAddAppMenuItem SCA_NewAddAppMenuItemTags
SYNOPSIS
AppObject = SCA_NewAddAppMenuItem (ID, UserData, Text, MessagePort, D0 D0 D1 A0 A1 Taglist) A2
struct AppObject *SCA_NewAddAppMenuItem ( ULONG ID, ULONG UserData, CONST_STRPTR Text, struct MsgPort *, const struct TagItem *Taglist);
struct AppObject *SCA_NewAddAppMenuItemTags( ULONG ID, ULONG UserData, CONST_STRPTR Text, struct MsgPort *, ULONG FirstTag, ...);
FUNCTION Same as workbench.library/AddAppMenuItemA(). See there for further information.
INPUTS ID, UserData - will be passed through the AppMessage Text - a pointer to the menutext. Starting with V40, any menu text consisting entirely of '-', '_' or '~' characters will result in a separator bar to be added. MessagePort - a MsgPort where you will receive the AppMessage Taglist - pointer to a taglist.
TAGS WBAPPMENUA_CommandKeyString (STRPTR) -- Command key to assign to this AppMenu. This must be a NUL-terminated string. If the string is empty, it will be ignored. Also, if the command key is already in use by a different menu item it will be ignored, too. In any case, only the first character of the string will be used (V40).
This tag defaults to NULL.
WBAPPMENUA_GetKey (ULONG *) -- To add menus with sub menu items, you need to add a menu item first which the sub items will be added to later. In order to do this, add the item the sub items should be attached to and use the WBAPPMENUA_GetKey tag to obtain a key value. This key value is to be used later with the WBAPPMENUA_UseKey tag (V40.20).
This feature was introduced in Scalos 40.20, it does not work in any of the older Scalos releases.
This tag defaults to NULL.
WBAPPMENUA_GetTitleKey (ULONG *) -- To add new entries to the Scalos menu strip you first need to create a new title to which the new menu items can be attached later. To do this, first create a new menu entry and use the WBAPPMENUA_GetTitleKey tag to obtain a key value. This key value is to be used later with the WBAPPMENUA_UseKey tag (V40.20).
This tag defaults to NULL.
WBAPPMENUA_UseKey (ULONG) -- When adding a menu item with the WBAPPMENUA_UseKey tag, using a key value obtained by a previous invocation of AddAppMenuItemA(), the new menu item will be added as a sub item (V40.20).
If the key you provide was obtained via the WBAPPMENUA_GetTitleKey tag, then the item you add will be attached to the respective menu entry (V40.20).
This tag defaults to NULL.
RESULT AppObject - a private structure to be pass to SCA_RemoveAppObject or NULL on failure
Starting with V40, NULL will be returned if you attempt to add an AppMenu item to a menu which already contains 63 menu items. Only a maximum of 15 sub items can be added to a menu item.
SEE ALSO SCA_NewAddAppIcon(), SCA_NewAddAppWindow(), SCA_RemoveAppObject() workbench.library/AddAppMenuItemA()
NAME
SCA_RemoveAppObject
SYNOPSIS
succ = SCA_RemoveAppObject (AppObject) D0 A0
BOOL SCA_RemoveAppObject (struct AppObject *);
FUNCTION Removes an AppObject from Scalos. This could be an Icon, a Window or a MenuItem.
INPUTS AppObject - result from SCA_NewAddAppIcon(), SCA_NewAddAppWindow() or SCA_NewAddAppMenuItem()
RESULT succ - currently it always returns TRUE
SEE ALSO SCA_NewAddAppIcon(), SCA_NewAddAppWindow(), SCA_NewAddAppMenuItem()
NAME
SCA_AllocStdNode
SYNOPSIS
Node = SCA_AllocStdNode (NodeList, NodeType) D0 A0 D0
struct MinNode *SCA_AllocStdNode (struct ScalosNodeList *, ULONG NodeType);
FUNCTION Allocates a standard Scalos-node. It's the only compatible why to allocate one of the standard nodes. NEVER allocate a node yourself and pass it to Scalos! The scalos.library will use a memorypool for all nodes to decrease the memoryfragmentation. The new node will be the last in your NodeList and it is cleared public memory. Don't change mln_succ and mln_pred yourself, use the node function instead. See SCA_SortNodes() for information about the NodeList.
INPUTS NodeList - Pointer to an APTR which is a pointer to the first node NodeType - see scalos.(h|i)
RESULT Node - Node at the end or the NodeList or NULL on failure.
NOTE Node *MUST* be freed with SCA_FreeNode() or SCA_FreeAllNodes() This function preserves all registers except D0.
SEE ALSO SCA_AllocNode(), SCA_FreeNode(), SCA_FreeAllNodes(), SCA_MoveNode(), SCA_SortNodes(), SCA_SwapNodes()
NAME
SCA_AllocNode
SYNOPSIS
Node = SCA_AllocNode (NodeList, Size) D0 A0 D0
struct MinNode *SCA_AllocNode (struct ScalosNodeList *, ULONG Size);
FUNCTION Allocates a node and inserts it at the end of the NodeList. Use this function only for your own node-handling. Never allocate a standard Scalos-node, use SCA_AllocStdNode() instead. Size is the number of bytes that allocated after the the MinNode. This means the memsize of node is size+MLN_SIZE. See SCA_AllocStdNode() for further information.
INPUTS NodeList - Pointer to an APTR which is a pointer to the first node Size - bytes after MLN_SIZE
RESULT Node - Node at the end or the NodeList or NULL on failure.
NOTE Node *MUST* be freed with SCA_FreeNode() or SCA_FreeAllNodes() ! This function preserves all registers except D0.
SEE ALSO SCA_AllocStdNode(), SCA_FreeNode(), SCA_FreeAllNodes(), SCA_MoveNode(), SCA_SortNodes(), SCA_SwapNodes()
NAME
SCA_FreeNode
SYNOPSIS
SCA_FreeNode (NodeList, Node) A0 A1
void SCA_FreeNode (struct ScalosNodeList *, struct MinNode *);
FUNCTION Removes the Node out of the NodeList and Frees a node allocated with SCA_AllocStdNode() or SCA_AllocNode().
INPUTS NodeList - pointer to an APTR which is a pointer to the first node Node - node to remove and free
NOTE Node *MUST* be part of NodeList! This function preserves all registers.
SEE ALSO SCA_AllocStdNode(), SCA_AllocNode(), SCA_FreeAllNodes(), SCA_MoveNode(), SCA_SortNodes(), SCA_SwapNodes()
NAME
SCA_FreeAllNodes
SYNOPSIS
SCA_FreeAllNodes (NodeList) A0
void SCA_FreeAllNodes (struct ScalosNodeList *);
FUNCTION Will free the whole list of nodes.
INPUTS NodeList - pointer to an APTR which is a pointer to the first node
NOTE This function preserves all registers.
SEE ALSO SCA_AllocStdNode(), SCA_AllocNode(), SCA_FreeNode(), SCA_MoveNode(), SCA_SortNodes(), SCA_SwapNodes()
NAME
SCA_MoveNode
SYNOPSIS
SCA_MoveNode (SrcNodeList, DestNodeList, Node) A0 A1 D0
void SCA_MoveNode (struct ScalosNodeList *, struct ScalosNodeList *, struct MinNode *);
FUNCTION Will remove the Node from SrcNodeList and will insert the Node at the end of DestNodeList.
INPUTS SrcNodeList - pointer to an APTR which is a pointer to the first node DestNodeList - pointer to an APTR which is a pointer to the first node Node - MinNode
NOTE This function preserves all registers. WARNING: Node *MUST* be member of SrcNodeList or very nasty things will happen !!
SEE ALSO SCA_AllocStdNode(), SCA_AllocNode(), SCA_FreeNode(), SCA_FreeAllNodes(), SCA_SortNodes(), SCA_SwapNodes()
NAME
SCA_SwapNodes
SYNOPSIS
SCA_SwapNodes ( SrcNode, DestNode, NodeList) A0 A1 A2
void SCA_SwapNodes (struct MinNode *, struct MinNode *, struct ScalosNodeList *);
FUNCTION Swaps the positions of SrcNode and DestNode inside the NodeList.
INPUTS SrcNode - MinNode DestNode - MinNode NodeList - pointer to an APTR which is a pointer to the first node
NOTE SrcNode and DestNode *MUST* be part of NodeList!
SEE ALSO SCA_AllocStdNode(), SCA_AllocNode(), SCA_FreeNode(), SCA_FreeAllNodes(), SCA_MoveNode(), SCA_SortNodes()
NAME
SCA_OpenIconWindow SCA_OpenIconWindowTags
SYNOPSIS
succ SCA_OpenIconWindow ( TagList ) D0 A0
BOOL SCA_OpenIconWindow ( const struct TagItem *TagList );
BOOL SCA_OpenIconWindowTags(ULONG, ...);
FUNCTION opens a windowtask filled with icons. All information will be given as tags, see below.
INPUTS TagList - pointer to a taglist.
TAGS SCA_IconNode (struct ScaIconNode *) - fullfilled ScaIconNode
SCA_IconObject (Object *) - iconobject.library - iconobject
SCA_Path (CONST_STRPTR) - the path to open
SCA_MessagePort (struct MsgPort *) - Message port for reply to startup message of new icon window process, or NULL.
SCA_WindowTitle (CONST_STRPTR) - windowtitle parsestring ( take a look at the prefsprogram for info)
SCA_WindowRect (struct IBox *) - rectangle with window dimensions (see diskobject.library).
SCA_XOffset,SCA_YOffset (LONG) - virtual position
SCA_PatternNumber (ULONG) - background pattern number which is configured in "Scalos Pattern" prefs
SCA_ShowAllFiles (ULONG) - TRUE or FALSE deprecated, use SCA_ShowAllMode instead!
SCA_ShowAllMode (ULONG) - DDFLAGS_SHOWDEFAULT, DDFLAGS_SHOWICONS, or DDFLAGS_SHOWALL.
SCA_ViewModes (ULONG) - view modes for the window SCAV_ViewModes_Icon SCAV_ViewModes_Name SCAV_ViewModes_Size SCAV_ViewModes_Date SCAV_ViewModes_Time SCAV_ViewModes_Comment SCAV_ViewModes_Protection SCAV_ViewModes_Owner SCAV_ViewModes_Group
SCA_Flags (ULONG) - none available yet
SCA_Iconify (ULONG) - TRUE or FALSE for open iconified
SCA_NoActivateWindow (ULONG) - TRUE or FALSE. The new window will not be activated if this tag is set to TRUE. Defaults to FALSE.
SCA_WindowStruct (struct ScaWindowStruct **) - The pointer to the ScaWindowStruct of the new generated Scalos window will be returned. If the new Scalos window couldn't be opened, NULL is returned.
SCA_BrowserMode (ULONG) - TRUE or FALSE. The window will be opened in browser mode if set to TRUE.
SCA_NoStatusBar (ULONG) - TRUE or FALSE. The status bar will not be present in the new window if set to TRUE, overriding the global setting for status bar.
SCA_CheckOverlappingIcons (ULONG) - TRUE or FALSE. Defines whether icon windows check for overlapping icons. If enabled, an icon overlapping any other is repositioned on directory scan. Default value is TRUE for MorphOS, FALSE for all other platforms.
SCA_TransparencyActive (ULONG) - degree of opacity in active window state, 0=transparent, 100=opaque. Semi-transparent windows are not supported on all platforms.
SCA_TransparencyInactive (ULONG) - degree of opacity in inactive window state, 0=transparent, 100=opaque Semi-transparent windows are not supported on all platforms.
RESULT succ - Success
NOTE One of SCA_IconNode, SCA_IconObject or SCA_Path must be given!
SEE ALSO
NAME
SCA_LockDrag
SYNOPSIS
SCA_LockDrag ( draghandle ) D0
void SCA_LockDrag ( APTR draghandle );
FUNCTION Locks the screen layer info that is connected to the draghandle. Main purpose is to temporarily unlock and lock again the screen layers during a dragging operiation, in order to allow some drawing to happen.
INPUTS draghandle - That drag handle that is to be locked.
SEE ALSO SCA_UnLockDrag(), SCA_InitDrag(), SCA_EndDrag(), SCA_DrawDrag()
NAME
SCA_LockWindowList
SYNOPSIS
Windowlist SCA_LockWindowList ( accessmode ) D0 D0
struct ScaWindowList *SCA_LockWindowList ( LONG accessmode );
FUNCTION Locks the windowlist and returns. This function is a main interface of the Scalos-API. The messageport should be used to comunicate with a windowtask. No window can be closed while the windowlist is locked. For more information take a look at the ScalosAPI documentation.
INPUTS accessmode - SCA_LockWindowList_Shared - locks the window list for a read- only access. Shared access is sufficient if you just want to traverse the window list, and make sure nobody modifies the list inbetween. SCA_LockWindowList_Exclusiv - locks the window list exclusively for read-write access. Exclusive mode is required if windows are to be created or removed. SCA_LockWindowList_AttemptShared - tries to acquire a shared lock on the window list for read-only access. NULL is returned if the list cannot be locked, e.g. because someone else holds an exclusive lock on the list. SCA_LockWindowList_AttemptExclusive - try to acquire an exclusive lock on the window list. NULL is returned if the list cannot be locked, e.g. because someone else holds a lock on the list.
RESULT windowlist - a struct ScaWindowList * - With the SCA_LockWindowList_Attempt*** values, it is possible that NULL is returned if the window list cannot be locked.
NOTE Normally you should not use the SCA_LockWindowList_Exclusiv. If you lock the windowlist exclusiv you should NEVER use intuition calls!
SEE ALSO SCA_UnLockWindowList()
NAME
SCA_UnLockWindowList
SYNOPSIS
SCA_UnLockWindowList ()
void SCA_UnLockWindowList ( void );
FUNCTION Unlocks a with SCA_LockWindowList() locked windowlist.
SEE ALSO SCA_LockWindowList()
NAME
SCA_AllocMessage
SYNOPSIS
ScalosMessage SCA_AllocMessage( messagetype, additional_size) D0 D0 D1
struct ScalosMessage *SCA_AllocMessage ( ULONG messagetype, UWORD additional_size );
FUNCTION Allocates a message which could be sent to Scalos. It's the only future-compatible way to do this. The scalos message signature and the the message type will be set and the returned memory is cleared.
INPUTS messagetype - see ScalosAPI.doc additional_size - number of bytes that will be added to the size of the message. Normally this should be 0.
RESULT ScalosMessage - a full-filled ScalosMessage of the selected type or NULL
NOTE Never try to free a message yourself, it will cause a memory trashing! Scalos uses fast memorypool functions for its messages.
SEE ALSO SCA_FreeMessage()
NAME
SCA_FreeMessage
SYNOPSIS
SCA_FreeMessage( message ) A1
void SCA_FreeMessage ( struct ScalosMessage *);
FUNCTION Frees a with SCA_AllocMessage() allocated message.
INPUTS message - struct ScalosMessage (returned from SCA_AllocMessage())
SEE ALSO SCA_AllocMessage()
NAME
SCA_InitDrag
SYNOPSIS
DragHandle SCA_InitDrag( Screen ) D0 A0
struct DragHandle *SCA_InitDrag ( struct Screen *);
FUNCTION Inits special bobroutines. This routines are easy to use and support 24bit bobs.
INPUTS Screen - the screen to use for the bobs or NULL for the default Scalos screen
RESULT DragHandle - a private structure to pass it to the other Drag functions or NULL on failure.
SEE ALSO SCA_DrawDrag(), SCA_EndDrag(), SCA_LockDrag(), SCA_UnlockDrag()
NAME
SCA_EndDrag
SYNOPSIS
SCA_EndDrag( DragHandle ) A0
void SCA_EndDrag ( struct DragHandle *);
FUNCTION Removes all bobs from screen and frees it, if nessesary it unlocks the layers.
INPUTS DragHandle - result from SCA_InitDrag()
SEE ALSO SCA_DrawDrag(), SCA_InitDrag(), SCA_LockDrag(), SCA_UnlockDrag()
NAME
SCA_AddBob
SYNOPSIS
succ SCA_AddBob( DragHandle, Bitmap, Mask, Width, Height, D0 A0 A1 A2 D0 D1 XOffset, YOffset ) D2 D3
BOOL SCA_AddBob ( struct DragHandle *, struct BitMap *, APTR Mask, ULONG Width, ULONG Height, LONG XOffset, LONG YOffset );
FUNCTION Addes a bitmap to the Boblist. Bitmap and Mask will be copied, it can be freed after calling this function. Mask is a planar bitplane the width divided by 8 and height. It must be in Chipram. X and Y offsets are the offset from movepoint give in SCA_DrawDrag(). Normaly it's the relative position to the mouse pointer.
INPUTS DragHandle - result from SCA_InitDrag() Bitmap - a standard bitmap structure, any depth allowed Mask - width/8 * height mask for the bitmap Width - width in pixels Height - height in pixels XOffset - relative x-position to the move point YOffset - relative y-position to the move point
RESULT succ - TRUE if anything went well, FALSE if some problem occured
SEE ALSO
NAME
SCA_DrawDrag
SYNOPSIS
SCA_DrawDrag( DragHandle, X, Y, Flags ) A0 D0 D1 D2
void SCA_DrawDrag ( struct DragHandle *, LONG X, LONG Y, ULONG Flags );
FUNCTION Blits the bobs to the selected screen relative to the given position.
INPUTS DragHandle - result from SCA_InitDrag() X - movepoint x direction Y - movepoint y direction Flags - SCAF_Drag_Transparent - draw all bobs transparent, normally it's a raster ("ghosted") SCAF_Drag_IndicateCopy - draw all bobs plus "copy" indicator SCAF_Drag_NoDropHere - draw all bobs plus "no drop" indicator SCAF_Drag_Hide - hide bobs SCAF_Drag_IndicateMakeLink - draw all bobs plus "make link" indicator SCAF_Drag_NoDrawDrag - (internal use only)
NOTE Transparent drawing only works with CyberGfx installed and a workbench screen of more than 256 colors (depth > 8).
SEE ALSO SCA_InitDrag(), SCA_EndDrag(), SCA_LockDrag(), SCA_UnlockDrag()
NAME
SCA_UpdateIcon
SYNOPSIS
SCA_UpdateIcon( WindowType, SCA_UpdateIcon, UpdateIcon_Size ) D0 A0 D1
void SCA_UpdateIcon ( UBYTE WindowType, struct ScaUpdateIcon_IW *, ULONG ui_SIZE );
FUNCTION Refreshes an icon specified in SCA_UpdateIcon structure. The icon will be loaded, removed or reloaded. The SCA_UpdateIcon struct depends on the windowtype.
INPUTS WindowType - windowtype which should be updated SCA_UpdateIcon - special information, depents on WindowType UpdateIcon_Size - size of the SCA_UpdateIcon structure in bytes
SEE ALSO
NAME
SCA_MakeWBArgs
SYNOPSIS
number = SCA_MakeWBArgs( Buffer, Iconnode, ArgsSize ) A0 A1 D0
ULONG SCA_MakeWBArgs ( struct WBArg *Buffer, struct ScaIconNode *Iconnode, ULONG ArgsSize);
FUNCTION Generates a WBArgs Array from all selected icons except the given Iconode. It is recommended to determine the required buffer size with SCA_CountWBArgs().
INPUTS Buffer - Array of WBArg structures to save the Lock and Name pointers Iconnode - an iconnode to exclude or NULL ArgsSize - Number of WBArg's the buffer has room for
RESULT number - number of args generated
SEE ALSO SCA_FreeWBArgs() SCA_CountWBArgs()
NAME
SCA_FreeWBArgs
SYNOPSIS
number = SCA_FreeWBArgs( Buffer, Number, Flags ) A0 D0 D1
void SCA_FreeWBArgs ( struct WBArg *Buffer, ULONG Number, ULONG Flags);
FUNCTION Frees a WBArg array generated with SCA_MakeWBArgs.
INPUTS Buffer - Array with WBArg structures Number - Number of WBArg's to free Flags - SCAB_FreeLocks - free the Locks SCAB_FreeName - free the namefields
SEE ALSO SCA_MakeWBArgs(); SCA_CountWBArgs();
NAME
SCA_CountWBArgs
SYNOPSIS
number = SCA_CountWBArgs( Iconnode ) A0
ULONG SCA_CountWBArgs( struct ScaIconNode *Iconnode );
FUNCTION Determines required size for WBArgs Array from all selected icons except the given Iconode. The returned count can be used to allocate a WBArg array for SCA_MakeWBArgs().
INPUTS Iconnode - an iconnode to exclude or NULL
RESULT number - number of args that will be generated by SCA_MakeWBArgs().
SEE ALSO SCA_FreeWBArgs() SCA_MakeWBArgs()
NAME
SCA_ScreenTitleMsg
SYNOPSIS
SCA_ScreenTitleMsg( Format, Args ) A0 A1
void SCA_ScreenTitleMsg ( CONST_STRPTR Format, APTR Args);
void SCA_ScreenTitleMsgArgs( CONST_STRPTR Format, ...);
FUNCTION Show a message on ScreenTitle of all Scalos windows.
INPUTS Format - FormatString. All RawDoFmt() args are allowed. special values : NULL to recover the standard title. ~0 to recover the last non-standard title (message). Args - the arguments for the formatstring
SEE ALSO exec.library/RawDoFmt
NAME
SCA_MakeScalosClass
SYNOPSIS
ScalosClass ( ClassName, SuperClassName, InstSize, DispFunc ) D0 A0 A1 D0 A2
struct ScalosClass *SCA_MakeScalosClass ( CONST_STRPTR ClassName, CONST_STRPTR SuperClassName, UWORD InstSize, APTR DispFunc);
FUNCTION Addes a new BOOPSI Class to the internal classlist. ClassName may be a new name or a classname that's already available. In this case the class will replace or enhance a known class.
INPUTS ClassName - name of the new class or NULL for a private class SuperClassName - name of the super class for the new class InstSize - size of the instance variables DispFunc - pointer to your Dispatcher function
RESULT ScalosClass - a ScalosClass structure or NULL if it fails
NOTE If you like a add a subclass to your private class then use the intuition class functions.
SEE ALSO SCA_FreeScalosClass(), intuition.library/MakeClass
NAME
SCA_FreeScalosClass
SYNOPSIS
scc SCA_FreeScalosClass( ScalosClass ) D0 A0
BOOL SCA_FreeScalosClass ( struct ScalosClass *);
FUNCTION Removes a ScalosClass from the internal classlist.
INPUTS ScalosClass - return value from SCA_MakeScalosClass()
RESULT succ - FALSE if the class couldn't be removed, else TRUE
SEE ALSO SCA_MakeScalosClass(), FreeClass()
NAME
SCA_NewScalosObject SCA_NewScalosObjectTags
SYNOPSIS
Object SCA_NewScalosObject( ClassName, TagList ) D0 A0 A1
Object *SCA_NewScalosObject ( CONST_STRPTR ClassName, const struct TagItem *TagList);
Object *SCA_NewScalosObjectTags( CONST_STRPTR ClassName, ULONG FirstTag, ...);
FUNCTION Allocates and inits a new BOOPSI Object.
INPUTS ClassName - Scalos Classname TagList - taglist (depends on the class)
RESULT Object - new BOOPSI Object or NULL
SEE ALSO SCA_DisposeScalosObject(), NewObject()
NAME
SCA_DisposeScalosObject
SYNOPSIS
SCA_DisposeScalosObject( Object ) A0
void SCA_DisposeScalosObject (Object *);
FUNCTION Disposes a object created with SCA_NewScalosObject().
INPUTS Object - BOOPSI Object
SEE ALSO SCA_NewScalosObject(), DisposeObject()
NAME
SCA_ScalosControlA -- Query or modify Scalos options (V40) SCA_ScalosControl
SYNOPSIS
ULONG SCA_ScalosControlA( Name, TagList ) D0 A0 A1
ULONG SCA_ScalosControlA( CONST_STRPTR Name, const struct TagItem *TagList);
ULONG SCA_ScalosControl( CONST_STRPTR Name, ULONG FirstTag, ...);
FUNCTION With this function you can query or modify global Scalos parameters.
INPUTS name -- Name of an object to query or modify.
tags -- Additional options.
TAGS SCALOSCTRLA_GetDefaultStackSize (ULONG *) -- Get the default stack size used by Scalos when launching Shell programs or programs without a valid stack size number.
The default stack size is 8192 bytes.
SCALOSCTRLA_SetDefaultStackSize (ULONG) -- Set the default stack size used by Scalos when launching Shell programs or programs without a valid stack size number. You cannot set a stack size number smaller than 8192 bytes.
SCALOSCTRLA_GetProgramList (struct List **) -- You can obtain a list of currently running Workbench programs; every entry of this list will have the complete path to the program and the program name in its Node->ln_Name. When you no longer need the list, don't forget to free it again using the tag WBCTRLA_FreeProgramList.
SCALOSCTRLA_FreeProgramList (struct List *) -- With this tag you can free the list allocated by the SCALOSCTRLA_GetProgramList tag.
SCALOSCTRLA_GetCloseWBDisabled (ULONG *) -- Get the current disable state for the intuition.library/CloseWorkBench() function. If TRUE, intuition.library/CloseWorkBench() always returns FALSE and Scalos will never close.
SCALOSCTRLA_SetCloseWBDisabled (ULONG) -- Set the disable state for the intuition.library/CloseWorkBench() function. If TRUE, intuition.library/CloseWorkBench() always returns FALSE and Scalos will never close.
SCALOSCTRLA_GetSplashEnable (ULONG *) -- Get the current disable state for the Scalos startup splash window. If TRUE, Scalos shows its splash window on startup.
SCALOSCTRLA_SetSplashEnable (ULONG) -- Set the disable state for the Scalos startup splash window. If TRUE, Scalos shows its splash window on startup.
SCALOSCTRLA_GetToolTipEnable (ULONG *) -- Get the current enable state for icon tool tips. If TRUE, icon tool tips will show up if the mouse pointer kept over an icon for some seconds.
SCALOSCTRLA_SetToolTipEnable (ULONG) -- Set the enabled state for icon tool tips. If TRUE, icon tool tips will show up if the mouse pointer kept over an icon for some seconds.
SCALOSCTRLA_GetToolTipDelay (ULONG *) -- Set the delay time until the icon tool tips pop up (in seconds).
SCALOSCTRLA_SetToolTipDelay (ULONG) -- Set the delay time until the icon tool tips pop up (in seconds). You must specify a number between 1 and 599 seconds. Default delay time is 2 seconds.
SCALOSCTRLA_GetOldDragIconMode (ULONG *) -- Enable old (workbench- like) icon dragging mode, i.e. all icons are visibly dragged. If turned OFF (=0), the new "icon stack" method is used. Default value is OFF (0).
SCALOSCTRLA_SetOldDragIconMode (ULONG) -- Get the current icon dragging mode. 0 New "icon stack" icon dragging method is used. 1 Old (workbench-like) icon dragging mode, i.e. all icons are visibly dragged
SCALOSCTRLA_GetTypeRestartTime (ULONG *) -- Get the number of seconds that have to pass before typing the next character in a drawer window will restart with a new file name.
SCALOSCTRLA_SetTypeRestartTime (ULONG) -- Set the number of seconds that have to pass before typing the next character in a drawer window will restart with a new file name. You must specify a number greater than 0. Default type restart time is 3 seconds.
SCALOSCTRLA_GetEmulationMode (ULONG *) -- get a BOOL variable telling whether which mode Scalos is running in. TRUE emulation mode FALSE preview mode
SCALOSCTRLA_GetStatusBarEnable (ULONG *) -- get a BOOL variable telling whether Scalos displays a status bar in every non-backdrop window.
SCALOSCTRLA_SetStatusBarEnable (ULONG) -- Telling whether Scalos to display a status bar in every non-backdrop window (any non-zero value) or to display no status bars. Changes only apply to windows opened thereafter. TRUE show status bar FALSE don't show status bar NOTE: Changes only apply to windows opened thereafter.
SCALOSCTRLA_GetStripedTextWindows (ULONG *) -- get a BOOL variable telling whether Scalos displays horizontally striped lines in text windows.
SCALOSCTRLA_SetStripedTextWindows (ULONG) -- Tell whether Scalos to display horizontally striped lines in text windows. TRUE show stripes in text window FALSE show standard background. NOTE: Changes only apply to windows opened thereafter.
SCALOSCTRLA_GetDisplayDragCount (ULONG *) -- get a BOOL variable telling whether Scalos shows the number of dragged objects during Drag and Drop.
SCALOSCTRLA_SetDisplayDragCount (ULONG) -- Tell whether Scalos to display the number of dragged objects during Drag and Drop. TRUE show number of objects while dragging FALSE don't show number of objects
SCALOSCTRLA_GetWindowDropMarkMode (ULONG *) - get a ULONG variable telling when Scalos shows window drop marks during D&D IDTV_WinDropMark_Never - never IDTV_WinDropMark_WindowedOnly - only on non-backdrop windows IDTV_WinDropMark_Always - always
SCALOSCTRLA_SetWindowDropMarkMode (ULONG) - Set when Scalos will show window drop marks during D&D IDTV_WinDropMark_Never - never IDTV_WinDropMark_WindowedOnly - only on non-backdrop windows IDTV_WinDropMark_Always - always
SCALOSCTRLA_GetCopyHook (struct Hook **) - Obtain the current hook that will be invoked when Scalos starts copying files and data (V40).
SCALOSCTRLA_SetCopyHook (struct Hook *) - Install a new hook that will be invoked when Scalos starts copying files and data (V40). The hook will be invoked exactly the same way as Workbench does with its WBCTRLA_SetCopyHook hook.
SCALOSCTRLA_GetDeleteHook (struct Hook **) - Obtain the current hook that will be invoked when Scalos deletes files and drawers or empties the trashcan (V40).
SCALOSCTRLA_SetDeleteHook (struct Hook *) - Install a new hook that will be invoked when Scalos deletes files and drawers or empties the trashcan (V40). The hook will be invoked exactly the same way as Workbench does with its WBCTRLA_SetDeleteHook hook. NOTE: this hook will take precedence over the installed "Delete.module".
SCALOSCTRLA_GetTextInputHook (struct Hook **) - Obtain the current hook that will be invoked when Scalos requests the user to enter text, i.e. when a file is to be renamed or a new drawer is to be created (V40).
SCALOSCTRLA_SetTextInputHook (struct Hook *) - Install a new hook that will be invoked when Scalos requests the user to enter text, i.e. when a file is to be renamed or a new drawer is to be created (V40). The hook will be invoked exactly the same way as Workbench does with its WBCTRLA_SetTextInputHook hook. NOTE: this hook will take precedence over the installed "NewDrawer.module", "Execute.module" and "Rename.module".
SCALOSCTRLA_AddCloseWBHook (struct Hook *) - Add a hook that will be invoked when Scalos is about to close (cleanup), and when Scalos has opened again (setup) (V40). The hook will be invoked exactly the same way as Workbench does with its WBCTRLA_AddSetupCleanupHook hook.
SCALOSCTRLA_RemCloseWBHook (struct Hook *) - Remove a hook that has been installed with the SCALOSCTRLA_AddCloseWBHook tag (V40).
SCALOSCTRLA_GetSupportedIconTypes (ULONG *) - Get bit mask of all currently enabled icon types IDTV_IconType_NewIcon - display NewIcons IDTV_IconType_ColorIcon - display OS3.5 color icons
SCALOSCTRLA_SetSupportedIconTypes (ULONG) - Select which icon types are enabled : IDTV_IconType_NewIcon - display NewIcons IDTV_IconType_ColorIcon - display OS3.5 color icons
SCALOSCTRLA_GetMenuCommandList (struct List **) -- You can obtain a list of all supported menu command names. When you no longer need the list, don't forget to free it again using the tag WBCTRLA_FreeMenuCommandList.
SCALOSCTRLA_FreeMenuCommandList (struct List *) -- With this tag you can free the list allocated by the SCALOSCTRLA_GetMenuCommandList tag.
SCALOSCTRLA_GetCopyBuffSize (ULONG *) -- Query the size of the buffer used for moving and copying files.
SCALOSCTRLA_SetCopyBuffSize (ULONG) -- Set the size of the buffer used for moving and copying files. The size can be changed between 4 KBytes and 4 MBytes (40.30).
RESULT Returns the number of tags successfully processed. If the returned value is less than the number of tags supplied, you can query the error code using dos.library/IoErr().
NOTES This function may only be called by a Process.
SEE ALSO dos.library/IoErr <dos/dosextens.h>
NAME
SCA_GetDefIconObject SCA_GetDefIconObjectA SCA_GetDefIconObjectTags
SYNOPSIS
IconObject SCA_GetDefIconObject( dirLock, name ) D0 A0 A1 IconObject SCA_GetDefIconObjectA( dirLock, name, tagList ) D0 A0 A1 A2
Object *SCA_GetDefIconObject(BPTR dirLock, CONST_STRPTR name) Object *SCA_GetDefIconObjectA(BPTR dirLock, CONST_STRPTR name, struct TagItem *tagList) Object *SCA_GetDefIconObjectTags(BPTR dirLock, CONST_STRPTR name, ...)
FUNCTION Returns default IconObject for the file system object (tool/project/drawer/device) described by dirLock and name. A filetype-specific default icon is selected according to the object type.
INPUTS dirlock - Lock on the parent directory of the object. name - Name of the object. tagList - additional tags for creation of IconObject. RESULT IconObject - new IconObject or NULL
NAME
SCA_OpenDrawerByName SCA_OpenDrawerByNameTags
SYNOPSIS
ScaWindow = SCA_OpenDrawerByName( path, tagList ) D0 A0 A1
struct ScaWindowStruct *SCA_OpenDrawerByName(CONST_STRPTR path, struct TagItem *tagList);
struct ScaWindowStruct *SCA_OpenDrawerByNameTags(CONST_STRPTR path, ULONG firstTag, ...);
FUNCTION Tries to open the named drawer.
INPUTS path - Full path name of the drawer to be opened. TagList - taglist
RESULT ScaWindow - ScaWindowStruct of the newly opened drawer window or NULL.
SEE ALSO SCA_OpenIconWindow()
NAME
SCA_UnlockDrag
SYNOPSIS
wasLocked = SCA_UnlockDrag ( draghandle ) D0
ULONG SCA_LockDrag ( APTR draghandle );
FUNCTION Unlocks the screen layer info that is connected to the draghandle. Main purpose is to temporarily unlock and lock again the screen layers during a dragging operiation, in order to allow some drawing to happen.
INPUTS draghandle - That drag handle that is to be locked.
RESULT wasLocked - Flag that indicated whether the screen layer was locked before calling. The result can be used to decide if you need to call SCA_LockDrag() when you are finished drawing.
SEE ALSO SCA_LockDrag(), SCA_InitDrag(), SCA_EndDrag(), SCA_DrawDrag()
Scalos GFX
[edit | edit source]ScalosGfxCreateEmptySAC ScalosGfxCreateSAC ScalosGfxFreeSAC ScalosGfxCreateARGB ScalosGfxFreeARGB ScalosGfxARGBSetAlpha ScalosGfxARGBSetAlphaMask ScalosGfxCreateARGBFromBitMap ScalosGfxFillARGBFromBitMap ScalosGfxWriteARGBToBitMap ScalosGfxMedianCut ScalosGfxScaleARGBArray ScalosGfxScaleBitMap ScalosGfxCalculateScaleAspect ScalosGfxBlitARGB ScalosGfxFillRectARGB ScalosGfxSetARGB ScalosGfxNewColorMap ScalosGfxARGBRectMult ScalosGfxBlitARGBAlpha ScalosGfxBlitARGBAlphaTagList ScalosGfxBlitIcon
NAME
ScalosGfxCreateEmptySAC -- Allocate an empty ScalosBitMapAndColor
SYNOPSIS
sac = ScalosGfxCreateEmptySAC( ) D0
struct ScalosBitMapAndColor *ScalosGfxCreateEmptySAC( void );
FUNCTION Allocates an empty ScalosBitMapAndColor structure, with NULL sca_BitMap and sac_ColorTable.
INPUTS none
RESULT sac - new created ScalosBitMapAndColor, or NULL on failure
SEE ALSO ScalosGfxFreeSAC(), ScalosGfxCreateSAC()
NAME
ScalosGfxCreateSAC -- Allocate ScalosBitMapAndColor
SYNOPSIS
sac = ScalosGfxCreateSAC(width, height, depth, friendBM, tagList); D0 D0 D1 D2 A0 A1
struct ScalosBitMapAndColor *ScalosGfxCreateSAC(ULONG, ULONG, ULONG, struct BitMap *, struct TagItem *)
struct ScalosBitMapAndColor *ScalosGfxCreateSACTags(ULONG, ULONG, ULONG, struct BitMap *, ULONG, ...)
FUNCTION Allocate a ScalosBitMapAndColor structure. sac_BitMap and sac_ColorTable are allocated according to specified dimensions.
INPUTS width - Desired width of new ScalosBitMapAndColor BitMap. height - Desired height of new ScalosBitMapAndColor BitMap. depth - Desired depth of new ScalosBitMapAndColor BitMap. Must be less than 256. sac_ColorTable will be allocated to hold 2^depth entries. friendBM - Friend BitMap to use for BitMap allocation. tagList - pointer to list of Tags, or NULL.
TAGS None defined yet.
RESULT sac - new created ScalosBitMapAndColor, or NULL on failure
SEE ALSO ScalosGfxFreeSAC(), ScalosGfxCreateEmptySAC()
NAME
ScalosGfxFreeSAC -- free a previously allocated ScalosBitMapAndColor
SYNOPSIS
ScalosGfxFreeSAC(sac); A0
void ScalosGfxFreeSAC((struct ScalosBitMapAndColor *);
FUNCTION Frees and deallocates a previously allocated ScalosBitMapAndColor, including sac_BitMap and sac_ColorTable.
INPUTS sac - previously allocated ScalosBitMapAndColor, or NULL
RESULT nothing
SEE ALSO ScalosGfxCreateSAC(), ScalosGfxCreateEmptySAC()
NAME
ScalosGfxCreateARGB -- Allocate a gfxARGB with specified size
SYNOPSIS
argb = ScalosGfxCreateARGB(width, height, tagList) D0 D0 D1 A0
struct gfxARGB *ScalosGfxCreateARGB(ULONG, ULONG, struct TagItem *)
FUNCTION Allocates an array of struct gfxARGB with sufficient size for specified width and height.
INPUTS width - width of gfxARGB array height - height of gfxARGB array tagList - pointer to list of Tags, or NULL.
TAGS None defined yet.
RESULT argb - new allocated gfxARGB, or NULL on failure.
SEE ALSO
NAME
ScalosGfxFreeARGB -- Free a previously allocated gfxARGB
SYNOPSIS
ScalosGfxFreeARGB(argb) D0 A0
VOID ScalosGfxFreeARGB(struct gfxARGB **)
FUNCTION
INPUTS argb - pointer to storage of previously allocated gfxARGB. argb may point to NULL.
RESULT nothing
SEE ALSO ScalosGfxCreateARGB()
NAME
ScalosGfxARGBSetAlpha -- Set all pixels to specified Alpha value.
SYNOPSIS
ScalosGfxARGBSetAlpha(src, alpha); A0 D0
VOID ScalosGfxARGBSetAlpha(struct ARGBHeader *, UBYTE)
FUNCTION Alpha value of all pixels in the ARGBHeader and its previously allocated gfxARGB array is set to the specified value.
INPUTS src - Header of gfxARGB rectangle to modify. alpha - Alpha (transparency) value to set.
RESULT
SEE ALSO ScalosGfxARGBSetAlphaMask()
NAME
ScalosGfxARGBSetAlphaMask -- Set alpha value according to mask plane
SYNOPSIS
ScalosGfxARGBSetAlphaMask(argbh, maskPlane) A0 A1
VOID ScalosGfxARGBSetAlphaMask(struct ARGBHeader *, PLANEPTR)
FUNCTION Alpha values of all pixels in the ARGBHeader and its previously allocated gfxARGB array are set according to mask plane, i.e. for every bit set in mask plane, alpha is maximum (255), and for every cleared bit, alpha is set to minimum (0).
INPUTS argbh - Header of gfxARGB rectangle to modify. maskPlane - Single bit mask plane. Dimensions must match size of argbh, with width rounded up to next 16-bit.
RESULT nothing
SEE ALSO ScalosGfxARGBSetAlpha()
NAME
ScalosGfxCreateARGBFromBitMap -- Create gfxARGB array from a BitMap
SYNOPSIS
argb = ScalosGfxCreateARGBFromBitMap(bm, width, height, numberOfColors, colorTable, maskPlane D0 A0 D0 D1 D2 A1 A2
struct gfxARGB *ScalosGfxCreateARGBFromBitMap(struct BitMap *, ULONG, ULONG, ULONG, const ULONG *, PLANEPTR)
FUNCTION Allocates and a gfxARGB array with specified dimensions, and fills it from provided BitMap, with optional mask plane. Works only with standard BitMaps with less than 256 colors.
INPUTS bm - source BitMap to fill gfxARGB array from, Depth must be less than 256 colors. width - Width of gfxARGB array height - Height of gfxARGB array numberOfColors - number of entries in colorTable colorTable - Color table to use for BitMap maskPlane - Single bit mask plane. Dimensions must match width and height, with width rounded up to next 16-bit. May be NULL. RESULT argb - allocated gfxARGB array or NULL on failure.
NOTES Use ScalosGfxFillARGBFromBitMap() for high-color or true-color BitMaps.
SEE ALSO ScalosGfxFillARGBFromBitMap()
NAME
ScalosGfxFillARGBFromBitMap -- Fill previously allocated gfxARGB array from CGFX BitMap
SYNOPSIS
ScalosGfxFillARGBFromBitMap(argbh, srcBM, maskPlane) A0 A1 A2
VOID ScalosGfxFillARGBFromBitMap(struct ARGBHeader *, struct BitMap *, PLANEPTR)
FUNCTION Fill a previously allocated gfxARGB array from a CyberGraphics BitMap. Can only be used for high-color or true-color BitMaps. If maskPlane if given, alpha information in argbh is created from maskPlane. If maskPlane if NULL, alpha channel from source BitMap is used if available, otherwise alpha is set to opaque.
INPUTS argbh - completely initialized gfxARGB array srcBM - source BitMap to use for filling, depth must be at least 65536 colors maskPlane - Single bit mask plane. Dimensions must match width and height, with width rounded up to next 16-bit. May be NULL. RESULT nothing
NOTES Use ScalosGfxARGBSetAlpha() for standard BitMaps (i.e. less than 256 colors).
SEE ALSO ScalosGfxCreateARGBFromBitMap()
NAME
ScalosGfxWriteARGBToBitMap -- Copy gfxARGB array to BitMap
SYNOPSIS
ScalosGfxWriteARGBToBitMap(argbh, bm, numberOfColors, colorTable) A0 A1 D0 A2)
VOID ScalosGfxWriteARGBToBitMap(struct ARGBHeader *, struct BitMap *, ULONG, const ULONG *)
FUNCTION Creates a copy of gfxARGB array in destination BitMap, using pre-defined colorTable. Works only with standard BitMaps, i.e. with less than 256 colors. No sophisticated color reduction is performed, but bit-fit pens are decided via FindBestPen().
INPUTS argbh - gfxARGB array to read from bm - Standard BitMap to write to. BitMap must have less than 256 colors. numberOfColors - Number of entries in colorTable colorTable - color table to use for BitMap.
RESULT nothing
SEE ALSO
NAME
ScalosGfxMedianCut -- Create color-reduced BitMap from gfxARGB array
SYNOPSIS
sac = ScalosGfxMedianCut(argbh, depth, tagList) D0 A0 D0 A1
struct ScalosBitMapAndColor *ScalosGfxMedianCut(struct ARGBHeader *, ULONG, struct TagItem *)
struct ScalosBitMapAndColor *ScalosGfxMedianCutTags(struct ARGBHeader *, ULONG, ULONG, ...)
FUNCTION Allocate and fill a color-reduced BitMap and a best-match color table from gfxARGB array. Either ordered dithering or Floyd-Steinberg dithering will be used for best results.
INPUTS argbh - gfxARGB array to read from depth - desired depth of generated BitMap, must be less than 256. tagList - array of tagItems, as desribed below, or NULL.
TAGS SCALOSGFX_MedianCutFlags - Flags as described below. SCALOSGFX_MedianCutFriendBitMap - struct BitMap *, friend BitMap to use for allocating result BitMap SCALOSGFX_MedianCutReservedColors - ULONG, number of reserved (unused) color entries at start of generated color table.
FLAGS SCALOSGFXFLAGF_MedianCut_FloydSteinberg - If set, Floyd-Steinberg dithering will be used for color reduction.
RESULT sac - created ScalosBitMapAndColor pointer, or NULL on failure.
SEE ALSO
NAME
ScalosGfxScaleARGBArray -- Scale given gfxARGB array
SYNOPSIS
argb = ScalosGfxScaleARGBArray(src, destWidth, destHeight, tagList) D0 A0 A1 A2 A3
struct gfxARGB *ScalosGfxScaleARGBArray(const struct ARGBHeader *, ULONG *, ULONG *, struct TagItem *)
struct gfxARGB *ScalosGfxScaleARGBArrayTags(const struct ARGBHeader *, ULONG *, ULONG *, ULONG, ...)
FUNCTION Scales given gfxARGB array to a new size. Supports both enlarging and shrinking gfxARGB arrays.
INPUTS src - source gfxARGB array, will not be modified destWidth - desired width, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. destHeight - desired height, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. tagList - pointer to list of Tags, or NULL.
TAGS SCALOSGFX_ScaleARGBArrayFlags - ULONG, specify some operation flags as listed below.
FLAGS SCALEFLAGF_BICUBIC - allow bicubic scaling SCALEFLAGF_BILINEAR - allow bilinear scaling SCALEFLAGF_AVERAGE - allow average scaling SCALEFLAGF_DOUBLESIZE - allow intermediate step via double size, to improve quality SCALEFLAGF_CORRECTASPECT - allow correction of destWidth and destHeight to meet source aspect ratio.
RESULT argb - Scaled copy of the source gfxARGB array
SEE ALSO
NAME
ScalosGfxScaleBitMap -- Scale given BitMap
SYNOPSIS
bm = ScalosGfxScaleBitMap(sbma, tagList) D0 A0 A1
struct BitMap *ScalosGfxScaleBitMap(struct ScaleBitMapArg *, struct TagItem *)
struct BitMap *ScalosGfxScaleBitMapTags(struct ScaleBitMapArg *, ULONG, ...)
FUNCTION Scales given gfxARGB array to a new size. Supports both enlarging and shrinking gfxARGB arrays. INPUTS sbma - Structure with scaling parameters: sbma_SourceBM - The original BitMap. This BitMap is not modified. sbma_SourceWidth - Width of the source BitMap. sbma_SourceHeight - Height of the source BitMap sbma_DestWidth - Pointer to Width of resized BitMap, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. sbma_DestHeight - Pointer to Height of resized BitMap, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. sbma_NumberOfColors - number of entries in color table sbma_ColorTable - Color table for both source and resized BitMap. sbma_Flags - scaling flags: SCALEFLAGF_BICUBIC - allow bicubic scaling SCALEFLAGF_BILINEAR - allow bilinear scaling SCALEFLAGF_AVERAGE - allow average scaling SCALEFLAGF_DOUBLESIZE - allow intermediate scaling step with double size, to improve quality SCALEFLAGF_CORRECTASPECT - allow correction of destWidth and destHeight to meet source aspect ratio. sbma_ScreenBM - Firend BitMap used when allocating resized BitMap. tagList - pointer to list of Tags, or NULL.
TAGS none defined yet.
RESULT bm - Scaled copy of the original BitMap
SEE ALSO
NAME
ScalosGfxCalculateScaleAspect -- Adjust scaling dimensions to source aspect
SYNOPSIS
ScalosGfxCalculateScaleAspect(sourceWidth, sourceHeight, *destWidth, *destHeight) D0 D1 A0 A1
VOID ScalosGfxCalculateScaleAspect(ULONG, ULONG, ULONG *, ULONG *)
FUNCTION Adjusts either destWidth or destHeight according to aspect ratio of sourceWidth and soureHeight.
INPUTS sourceWidth - Unscaled width. sourceHeight - Unscaled Height; destWidth - Pointer to desired scaled width. destHeight - Pointer to desired scaled width.
RESULT nothing
SEE ALSO
NAME
ScalosGfxBlitARGB -- Blit rectangle between two gfxARGB array rectangles.
SYNOPSIS
ScalosGfxBlitARGB(destARGB, srcARGB, destLeft, destTop, srcLeft, srcTop, width, height) A0 A1 D0 D1 D2 D3 D4 D5
VOID ScalosGfxBlitARGB(struct ARGBHeader *, const struct ARGBHeader *, LONG, LONG, LONG, LONG, LONG, LONG)
FUNCTION Blits user-defined rectangle from srcARGB at specified position into destARGB. No alpha handling is performed, destination pixel values are simply replaced by source pixels.
INPUTS destARGB - destination gfxARGB array srcARGB - source gfxARGB array destLeft - Left start position in destARGB. destTop - Top start position in destARGB. srcLeft - Left start position in srcARGB. srcTop - Top start position in srcARGB. width - Width of blitted rectangle. height - Height of blitted rectangle.
RESULT nothing
SEE ALSO
NAME
ScalosGfxFillRectARGB -- Blit two gfxARGB array rectangles
SYNOPSIS
ScalosGfxFillRectARGB(destARGB, fillARGB, left, top, width, height) A0 A1 D0 D1 D2 D3
VOID ScalosGfxFillRectARGB(struct ARGBHeader *, const struct gfxARGB *, LONG, LONG, LONG, LONG)
FUNCTION Blits fillARGB at specified position into destARGB. No alpha handling is performed, destination pixel values are just replaced by source pixels. Blit always starts at (0,0) in fillARGB.
INPUTS destARGB - destination gfxARGB array. fillARGB - source gfxARGB array. left - Left start position in destARGB. top - Top start position in destARGB. width - Width of blitted rectangle. height - Height of blitted rectangle.
RESULT nothing
SEE ALSO
NAME
ScalosGfxSetARGB -- Set entire gfxARGB array to given ARGB color
SYNOPSIS
ScalosGfxSetARGB(destARGB, fillARGB) A0 A1
VOID ScalosGfxSetARGB(struct ARGBHeader *, const struct gfxARGB *)
FUNCTION Set all pixels in entire gfxARGB array to the given ARGB color.
INPUTS destARGB - gfxARGB array to be changed. fillARGB - ARGB value to set pixels to.
RESULT nothing
SEE ALSO
NAME
ScalosGfxNewColorMap -- Allocate new color table for ScalosBitMapAndColor
SYNOPSIS
success = ScalosGfxNewColorMap(sac, colorMap, colorEntries) D0 A0 A1 D0
BOOL ScalosGfxNewColorMap(struct ScalosBitMapAndColor *, const ULONG *, ULONG)
FUNCTION Allocates a new color table for ScalosBitMapAndColor. The new color table is filled with the RGB values from colorMap. Any previously color table in ScalosBitMapAndColor is freed.
INPUTS sac - ScalosBitMapAndColor where to store new color table. colorMap - RGB values for new color table colorEntries - Desired number of entries in new color table
RESULT success - TRUE if new color table was successfully allocated, FALSE on failure.
SEE ALSO
NAME
ScalosGfxARGBRectMult -- Multiply RGB value with given factor
SYNOPSIS
ScalosGfxARGBRectMult(rp, numerator, denominator, xMin, yMin, xMax, yMax) A0 A1 A2 D0 D1 D2 D3
VOID ScalosGfxARGBRectMult(struct RastPort *, const struct gfxARGB *, const struct gfxARGB *, WORD, WORD, WORD, WORD)
FUNCTION Multiplies RGB values of pixels within a specified rectangle with (numerator/denominator). Overflow is clipped to maximum RGB value (255). Works only with CyberGraphics generated, high-color or true-color BitMaps. Takes Layers in RastPort into account.
INPUTS rp - RastPort with the BitMap to be modified. numerator - Scaling factor as numerator:denominator denominator - Scaling factor as numerator:denominator xMin - Left start of modified rectangle. yMin - Top start of modified rectangle. xMax - Right end of modified rectangle. yMax - Bottom end of modified rectangle.
RESULT nothing
SEE ALSO
NAME
ScalosGfxBlitARGBAlpha -- Alpha blit from gfxARGB array into RastPort
SYNOPSIS
ScalosGfxBlitARGBAlpha(rp, srcH, destLeft, destTop, srcLeft, srcTop, width, height) A0 A1 D0 D1 D2 D3 D4 D5
VOID ScalosGfxBlitARGBAlpha (struct RastPort *, const struct ARGBHeader *, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG)
FUNCTION Blit a rectangular area from source gfxARGB array into destination RastPort. Alpha (transparency) information in source gfxARGB array is fully accounted for. Destination RastPort may have Layers.
INPUTS rp - Destination, this RastPort is been drawn to. srcH - Source gfxARGB array destLeft - Left offset in destination RastPort. destTop - Top offset in destination RastPort. srcLeft - Left offset in source gfxARGB array. srcTop - Left offset in source gfxARGB array. width - Width of blit rectangle. height - Height of blit rectangle.
RESULT nothing
NOTES
SEE ALSO ScalosGfxBlitARGBAlphaTagList()
NAME
ScalosGfxBlitARGBAlphaTagList -- Alpha blit from gfxARGB array into RastPort
SYNOPSIS
ScalosGfxBlitARGBAlphaTagList(rp, srcH, destLeft, destTop, srcSize, tagList) A0 A1 D0 D1 A3 A2
VOID ScalosGfxBlitARGBAlphaTagList(struct RastPort *, const struct ARGBHeader *, ULONG, ULONG, const struct IBox *, struct TagItem *)
VOID ScalosGfxBlitARGBAlphaTags(struct RastPort *, const struct ARGBHeader *, ULONG, ULONG, const struct IBox *, ULONG, ...)
FUNCTION
INPUTS rp - Destination, this RastPort is been drawn to. srcH - Source gfxARGB array destLeft - Left offset in destination RastPort. destTop - Top offset in destination RastPort. srcSize - IBox defining both left/top offset in source gfxARGB array, and size of blit rectangle. tagList - pointer to list of Tags, or NULL.
TAGS SCALOSGFX_BlitIconHilight - const struct ARGB *, ARGB value to use for highlighting.Its RGB values are added to the destination pixels, with clipping to 0..255 range. SCALOSGFX_BlitIconAlpha - const UBYTE *, specify alpha array for icon. SCALOSGFX_BlitIconTransparency - ULONG, specify alpha for icon, 0...255. RESULT nothing
SEE ALSO ScalosGfxBlitARGBAlpha()
NAME
ScalosGfxBlitIcon -- Alpha blit from RastPort to RastPort
SYNOPSIS
ScalosGfxBlitIcon(rpBackground, rpIcon, left, top, width, height, tagList) A0 A1 D0 D1 D2 D3 A2
VOID ScalosGfxBlitIcon(struct RastPort *, struct RastPort *, ULONG, ULONG, ULONG, ULONG, struct TagItem *)
VOID ScalosGfxBlitIconTags(struct RastPort *, struct RastPort *, ULONG, ULONG, ULONG, ULONG, ULONG, ...)
FUNCTION Blit a rectangular area from rpIcon into rpBackground, with full alpha (transparency) support. This function supports RastPorts with Layers.
INPUTS rpBackground - Target RastPort. rpIcon - Source RastPort. The BitMap of this RastPort is not modified. left - left start of blit in rpBackground top - top start of blit in rpBackground width - width of the blitting rectangle height - height of the blitting rectangle tagList - pointer to list of Tags, or NULL.
TAGS SCALOSGFX_BlitIconHilight - const struct ARGB *, ARGB value to use for highlighting. Its RGB values are added to the destination pixels, with clipping to 0..255 range. SCALOSGFX_BlitIconAlpha - const UBYTE *, specify alpha array for icon. SCALOSGFX_BlitIconTransparency - ULONG, specify alpha for icon, 0...255.
RESULT nothing
SEE ALSO
Scalos API
[edit | edit source]--background --Scalos_Message --Modules --PlugIn's --MenuPlugIn's SM_AddIcon SM_AppSleep SM_AppWakeup SM_CloseWindow SM_DeltaMove SM_DoPopupMenu SM_Iconify SM_NewPreferences SM_NewPattern SM_NewWindowPath SM_PrefsChanged SM_Redraw SM_RedrawIcon SM_RedrawIconObj SM_RemIcon SM_Requester SM_RunMenuCmd SM_RunProcess SM_SetThumbnailImage_ARGB SM_SetThumbnailImage_Remapped SM_ShowPopupMenu SM_ShowStatusBar SM_ShowTitle SM_Sleep SM_UnIconify SM_Update SM_UpdateIcon SM_Wakeup
NAME
--background
DESCRIPTION This documentation gives you information how to communicate with Scalos and its windowtasks. There are not many MessageTypes currently available, but it will be more in future.
NAME
--Scalos_Message
DESCRIPTION If you send a message to scalos you should use the SCA_AllocMessage() and SCA_FreeMessage() calls from the scalos.library. The returned message will look like this:
struct ScalosMessage { struct Message sm_Message; ULONG sm_Signature; /* "IMSG" */ ULONG sm_MessageType; };
The message ports where to sent the messages to are available via the SCA_LockWindowList() / SCA_UnLockWindowList() calls from scalos.library.
Additional data depends upon MessageType. SYNOPSIS will give you information about this data. INPUTS means the message for PutMsg() and RESULT the one that was replied.
NAME
--Modules
DESCRIPTION Modules are programs with a standard wb-start enviroment. The arguments are additional values (e.g. Execute_Command: the dir and the filename as default value for the string-gadget).
NAME
--PlugIn's
DESCRIPTION PlugIn's are external BOOPSI Classes that will enhance or replace internal classes. The only thing you have to do is to write a little shared library with only one offset. The library base should have at least a structure of a Library structure followed by a longword (four bytes). These four bytes are used to store an identifier so that Scalos can know that it is a Scalos plugin. The value for these four bytes should be 'PLUG' (which you should set in the initialisation routine of your plugin, or the auto initialisation).
The one specific offset (it must be the first public function of your library if you decide to have more functions) has to return a ScaClassInfo struct. Your PlugIn can be added automatically on startup if you add it to the PlugIn list in Scalos Prefs.
SYNOPSIS
ScaClassInfo SCAGetClassInfo() D0
struct ScaClassInfo *SCAGetClassInfo( void );
NAME
--MenuPlugIn's
DESCRIPTION A MenuPlugIn is a little library with one function. As with the standard plugins, your plugin function must be the first public function of the library. Menu plugins also require an identifier in the four bytes following the Library structure of the library base. In the case of menu plugins, the value for these four bytes should be 'OOPP'.
This functions have to be full reentrant. The windowtask is blocked until your function returns. Never open a requester or block the task for a long time use SCCM_AsyncRoutine instead.
SYNOPSIS
SCAMenuFunction( WindowTask, IconNode) A0 A1
void SCAMenuFunction( struct ScaWindowTask *, struct ScaIconNode *);
NOTES In order to get a pointer to the IconNode, your plugin must be called from an popup menu. When called from a screen menu, the IconNode pointer is always NULL.
NAME
SM_DeltaMove
SYNOPSIS
LONG smdm_DeltaX; LONG smdm_DeltaY; ULONG smdm_AdjustSlider;
FUNCTION
Moves window interior by (deltaX,deltaY) and adjusts scrollers accordingly.
INPUTS
smdm_DeltaX - number of pixels to scroll the window contents in horizontal direction. smdm_DeltaY - number of pixels to scroll the window contents in vertical direction. smdm_AdjustSlider - Flags to use for correction of virtual size SETVIRTF_AdjustRightSlider = adjust right (vertical) slider SETVIRTF_AdjustBottomSlider = set bottom (horizontal) slider
RESULT
nothing
SEE ALSO
IconWindow.sca/SCCM_IconWin_DeltaMove IconWindow.sca/SCCM_IconWin_SetVirtSize
NAME
SM_CloseWindow
SYNOPSIS
FUNCTION
Closes the window of the selected messageport.
INPUTS
none
RESULT
nothing
SEE ALSO
NAME
SM_DoPopupMenu
SYNOPSIS
FUNCTION
Trigger opening of a window or icon popup menu.
INPUTS
smdpm_InputEvent - InputEvent that triggered the popup menu. The mouse coordinates from the InputEvent are ignored, and the screen->MouseX, MouseY are used instead.
RESULT
nothing
SEE ALSO
NAME
SM_NewPattern
SYNOPSIS
APTR nmnp_PatternNode
FUNCTION
Sets a new pattern for the window
INPUTS
snmp_PatternNode - the new pattern or NULL for no pattern.
RESULT
nothing
SEE ALSO
NAME
SM_NewWindowPath
SYNOPSIS
FUNCTION
Change contents in existing window to display the given new path.
INPUTS
STRPTR smnwp_Path - Path of the new drawer to display in the window struct TagItem *smnwp_TagList - additional tags
Supported tags are: SCA_ShowAllMode - one of the workbench DDFLAGS_* values. SCA_ViewModes - one of the workbench DDVM_BY* values SCA_XOffset - (LONG) Window X offset SCA_YOffset - (LONG) Window Y offset SCA_IconList - (struct ScaIconNode *) pregenerated icon list
RESULT
nothing
SEE ALSO
IconWindow.sca/SCCM_IconWin_NewPath
NAME
SM_PrefsChanged
SYNOPSIS
ULONG Flags
FUNCTION
Inform existing window about changed preferences. The window is responsible to perform any required updating.
INPUTS
ULONG Flags - future flags. Set to 0 for upwards compatibility.
RESULT
nothing
SEE ALSO
NAME
SM_Sleep
SYNOPSIS
FUNCTION
The windowtask that receives this message will be sleep. Only the window will be closed, no icon will be displayed.
INPUTS
none
RESULT
nothing
NOTES Never send this message to a the main_messageport!
SEE ALSO
SM_Wakeup
NAME
SM_Wakeup
SYNOPSIS
ULONG smwu_ReLayout
FUNCTION
Wakeup the selected window_task. It's the opposite to SM_Sleep.
INPUTS
smwu_ReLayout - BOOL TRUE if all icons of the window should be relayouted. This is especially important when WorkBench screen has changed.
RESULT
nothing
NOTES Never send this message to a the main_messageport!
SEE ALSO
SM_Sleep
NAME
SM_AppSleep
SYNOPSIS
FUNCTION
All windowtasks and all ScalosApplications will fall asleep.
INPUTS
none
RESULT
nothing
NOTES This message must be sent to the main_messageport!
SEE ALSO
SM_AppWakeup
NAME
SM_AppWakeup
SYNOPSIS
ULONG smaw_ReLayout
FUNCTION
Wakeup all thing that sleeps since SM_AppSleep.
INPUTS
smaw_ReLayout - TRUE if all icons should be relayouted. This is especially important when WorkBench screen has changed.
RESULT
nothing
NOTES This message must be sent to the main_messageport!
SEE ALSO
SM_AppSleep
NAME
SM_Redraw
SYNOPSIS
ULONG smmr_Flags
FUNCTION
Redraws the icons inside of the window. This method could be uses to refresh the window after adding or selecting/deselecting icons.
INPUTS
smmr_Flags - REDRAWB_DontEraseWindow : don't erase window before redraw REDRAWB_ReLayoutIcons : relayout icons
RESULT
nothing
SEE ALSO
NAME
SM_RedrawIcon
SYNOPSIS
struct ScaIconObject *smri_Icon
FUNCTION
Redraws the specified icon inside of the window. The window icon list semaphore must not be kept locked for this message to work! Before actually trying to redraw, an explicit check is done whether the icon is really member of the window's icon list.
INPUTS
smri_Icon - the icvon to be redrawn
RESULT
nothing
SEE ALSO
NAME
SM_RedrawIconObj
SYNOPSIS
Object *smrio_IconObject ULONG smrio_Flags
FUNCTION
Redraws the specified iconobject inside of the window. The window icon list semaphore must not be kept locked for this message to work! Before actually trying to redraw, an explicit check is done whether the icon is really member of the window's icon list. Optionally, the icon can be explicitly erased before redrawing, and a new icon icon layout may be requested (IDTM_FreeLayout / IDTM_Layout).
INPUTS
smrio_IconObject - the iconobject to be redrawn smrio_Flags SMRIOFLAGF_EraseIcon - the iconobject is erased before redraw SMRIOFLAGF_FreeLayout - the iconobject is forced to refresh its layout (with IDTM_FreeLayout and IDTM_Layout). SMRIOFLAGF_Highlight - indicates that there is only a change in icon highlighting state. SMRIOFLAGF_IconListLocked - the window icon list is currently locked. SMRIOFLAGB_HightlightOn - set ICONOBJ_USERFLAGF_DrawHighlite before drawing. Useful in combination with SMRIOFLAGF_Highlight. SMRIOFLAGB_HightlightOff - clear ICONOBJ_USERFLAGF_DrawHighlite before drawing. Useful in combination with SMRIOFLAGF_Highlight.
RESULT
nothing
SEE ALSO
NAME
SM_SetThumbnailImage_ARGB
SYNOPSIS
Object *smtia_IconObject struct ARGBHeader smtia_NewImage
FUNCTION
Attach a new ARGB image to an existing icon. The sender of this message is responsible to make sure that destination icon is able to handle true-color ARGB images.
INPUTS
smtia_IconObject - the icon to attach the new image to. smtia_NewImage -- the new ARGB image. ARGBHeader contents (BitMap) is supposed to be freed by message receiver.
RESULT
nothing
SEE ALSO
NAME
SM_SetThumbnailImage_Remapped
SYNOPSIS
Object *smtir_IconObject; // the icon to attach the new image to struct ScalosBitMapAndColor *smtir_NewImage; // the new image. ScalosBitMapAndColor contents is freed by message handler
FUNCTION
Attach a new color-mapped image to an existing icon. The sender of this message is responsible to make sure that destination icon is able to handle the color-mapped image.
INPUTS
smtir_IconObject -- the icon to attach the new image to. smtir_NewImage -- the new image. ScalosBitMapAndColor contents is supposed to be freed by message receiver.
RESULT
nothing
SEE ALSO
NAME
SM_ShowPopupMenu
SYNOPSIS
struct PopupMenu *pm struct ScaIconNode *in ULONG Flags struct FileTypeDef *fType
FUNCTION
Show a popup menu and execute the user's menu command.
INPUTS
pm - Popup menu to display. in - Scalos icon node the popup menu should be associated to. Can be NULL for window popup menus. Flags - Show which items are still locked and HAVE TO BE UNLOCKED during processing. SHOWPOPUPFLGF_IconSemaLocked - wt_IconSemaphore is still locked SHOWPOPUPFLGF_WinListLocked - Scalos window list is still locked. fType - Private data structure for support of file type specific popup menus. Should be NULL if unused.
RESULT
nothing
SEE ALSO
NAME
SM_ShowStatusBar
SYNOPSIS
BOOL Visible
FUNCTION
Show or hide the status bar on a Scalos window.
INPUTS
Visible - TRUE to display the status bar, FALSE to hide it.
RESULT
nothing
SEE ALSO
NAME
SM_Update
SYNOPSIS
FUNCTION
Causes the window to reread its icons.
INPUTS
none
RESULT
nothing
SEE ALSO
NAME
SM_UpdateIcon
SYNOPSIS
BPTR smui_DirLock CONST_STRPTR smui_IconName
FUNCTION
Refresh a selected icon.
INPUTS
smui_DirLock - Lock to parent dir of icon. smui_IconName - Name of the icon.
RESULT
nothing
NOTES You must create copies of smui_DirLock and smui_IconName before sending this message. Those copies will be deleted by Scalos.
Example: smui_DirLock = DupLock(myLock); smui_IconName = AllocVec(1 + strlen(myName), MEMF_PUBLIC);
SEE ALSO
scalos.library/SCA_UpdateIcon()
NAME
SM_AddIcon
SYNOPSIS
UWORD smai_x UWORD smai_y BPTR smai_DirLock STRPTR smai_IconName
FUNCTION
Causes a window task to load a selected icon.
INPUTS
smai_x smai_y - the position where the icon should appear or 0x8000 for any smai_DirLock - Lock to parent dir of icon. smai_IconName - Name of the icon.
RESULT
nothing
SEE ALSO
NAME
SM_RemIcon
SYNOPSIS
BPTR smri_DirLock STRPTR smri_IconName
FUNCTION
Removes an icon from window.
INPUTS
smri_DirLock - Lock to parent dir of icon. smri_IconName - Name of the icon.
RESULT
nothing
SEE ALSO
NAME
SM_Iconify
SYNOPSIS
FUNCTION
Set the window to sleep and adds an icon to the main window.
INPUTS
none
NOTES Never send this message to the main window!
RESULT
nothing
SEE ALSO
SM_UnIconify
NAME
SM_UnIconify
SYNOPSIS
FUNCTION
Removes the appicon from main window and reopens the window.
INPUTS
none
RESULT
nothing
NOTES Never send this message to the main window!
SEE ALSO
SM_Iconify
NAME
SM_RunMenuCmd
SYNOPSIS
APTR smrm_MenuItem struct ScaIconNode *smrm_IconNode ULONG smrm_Flags
FUNCTION
This message is used to execute a Scalos menu command in some other window task's context.
INPUTS
smrm_MenuItem - internal Scalos menu item descriptor smrm_IconNode - Iconnode to execute the command with. smrm_Flags - none defined yet.
RESULT
nothing
SEE ALSO
NAME
SM_ShowTitle
SYNOPSIS
ULONG smst_showTitle
FUNCTION
This message is used to set the screen title bar display mode.
INPUTS
smst_showTitle - Screen title bar mode If TRUE, the screen's title bar will be shown in front of WFLG_BACKDROP windows. If FALSE, the title bar will be rendered behind all windows.
RESULT
nothing
SEE ALSO
NAME
SM_Requester
SYNOPSIS
union { ULONG smrq_ReqResult; struct Window *smrq_ParentWindow; }; APTR smrq_ArgList; struct EasyStruct smrq_ez; UBYTE smrq_ArgListBuffer[0];
FUNCTION
Asynchronously pops up a requester and returns the result.
INPUTS
smrq_ParentWindow - designates which screen to open the requester on. smrq_ReqResult - Here the result from EaysRequest() is returned. smrq_ArgList - pointer to ArgList for EasyRequestArgs(). smrq_ez - Contains information for EasyRequestArgs() smrq_ArgListBuffer - buffer for ArgList - allocated as large as needed. Put the required buffer length into the additional_size parameter of the SCA_AllocMessage() call.
RESULT
nothing
SEE ALSO
intuition.library/EasyRequestArgs() scalos/SCA_AllocMessage()
NAME
SM_NewPreferences
SYNOPSIS
ULONG smnp_PrefsFlags
FUNCTION
Triggers re-reading and checking of preferences files used by Scalos. Multiple invocations of SM_NewPreferences accumulate the bits for changes subsystems. When there are no more SM_NewPreferences for 0.5s, all marked preferences are re-read and check for changes. If changes are detected, Scalos reinitializes subsystems as required by the preferences changes.
INPUTS
smnp_PrefsFlags - Bitmask with one bit set for each changed preferences file. .
RESULT
nothing
SEE ALSO
Device List
[edit | edit source]--background SCCM_DeviceList_Generate SCCM_DeviceList_FreeDevNode SCCM_DeviceList_Filter
NAME
--background
DESCRIPTION This class is used to generate a list of all currently available devices. The list will be used to load or update diskicons. You may use this class to filter the devices.
NAME
SCCM_DeviceList_Generate
SYNOPSIS
DoMethod(obj,SCCM_DeviceList_Generate,APTR NodeList);
FUNCTION Generates the full list of devices. Scans through the DosList and adds a ScaDeviceIcon to the NodeList for every appropriate device/volume found. When finished scanning, applies SCCM_DeviceList_Filter to the NodeList of generated icons.
INPUTS NodeList - pointer to an empty ScalosNodeList
SEE ALSO
NAME
SCCM_DeviceList_FreeDevNode
SYNOPSIS
DoMethod(obj,SCCM_DeviceList_FreeDevNode,APTR Node);
FUNCTION Frees anything inside of this node, but not the node itself.
INPUTS Node - DeviceNode
SEE ALSO
NAME
SCCM_DeviceList_Filter
SYNOPSIS
DoMethod(obj,SCCM_DeviceList_Filter,APTR NodeList);
FUNCTION Filters the list of DeviceNodes. You can hide some devices or restore the nodelist. Default: all DOS-Devices without a volume will be filtered. Checkout the flags field in the DeviceNode structure.
INPUTS NodeList - pointer to a ScalosNodeList
SEE ALSO
Device Windows
[edit | edit source]Content-Type: text/html DeviceWin.sca
--background SCCM_DeviceWin_ReadIcon SCCM_DeviceWin_RemIcon
NAME
--background
DESCRIPTION This class implements the main Workbench (= root) window, which shows the icons for the mounted devices and volumes.
NAME
SCCM_DeviceWin_ReadIcon
SYNOPSIS
void DoMethod(obj,SCCM_DeviceWin_ReadIcon, struct ScaDeviceIcon *DeviceNode);
FUNCTION Read icon for device (DeviceNode) into window. Depending on prefs settings "DefIcons First", it tries to read :
DefIconsFirst enabled: 1. default volume icon "<DefIconPath>/def_<VolumeName>.info" 2. default device icon "<DefIconPath>/def_<DeviceName>.info" 3. disk icon "<VolumeName>:disk.info"
DefIconsFirst disabled: 1. disk icon "<VolumeName>:disk.info" 2. default volume icon "<DefIconPath>/def_<VolumeName>.info" 3. default device icon "<DefIconPath>/def_<DeviceName>.info"
If everything else fails, a default icon if type WBDISK is read.
INPUTS DeviceNode - info about what device to read icon for.
RESULT nothing
SEE ALSO
NAME
SCCM_DeviceWin_RemIcon
SYNOPSIS
void DoMethod(obj,SCCM_DeviceWin_RemIcon,struct ScaIconNode *icon);
FUNCTION Remove specified icon from window
INPUTS icon - Icon to remove from window
RESULT nothing
SEE ALSO
filetrans
[edit | edit source]root
[edit | edit source]window
[edit | edit source]--background SCCM_Window_ChangeWindow SCCM_Window_Close SCCM_Window_DynamicResize SCCM_Window_GetIconFileType SCCM_Window_Iconify SCCM_Window_InitClipRegion SCCM_Window_LockUpdate SCCM_Window_NewPath SCCM_Window_RemClipRegion SCCM_Window_Open SCCM_Window_SetTitle SCCM_Window_SetInnerSize SCCM_Window_UnIconify SCCM_Window_UnlockUpdate
NAME
--background
DESCRIPTION This class implements all common window functionality used for icon windows, text windows and device windows.
All window methods are invoked with mt_WindowObject.
NAME
SCCM_Window_ChangeWindow
SYNOPSIS
DoMethod(obj,SCCM_Window_ChangeWindow);
FUNCTION Notifies that a Scalos window may have changed either position, or size, or both.
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_Window_Close
SYNOPSIS
DoMethod(obj,SCCM_Window_Close);
FUNCTION Closes a scalos window
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_Window_DynamicResize
SYNOPSIS
DoMethod(obj,SCCM_Window_DynamicResize);
FUNCTION Handles dynamic window resizing, including recalculation of window inner size, and re-sorting of unpositioned icons (if enabled).
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_Window_GetIconFileType
SYNOPSIS
DoMethod(obj,SCCM_Window_GetIconFileType, struct ScaIconNode *in);
FUNCTION Fills the in_FileType element of the Scalos icon with a TypeNode according to the file type of the icon.
INPUTS in - Scalos icon that gets its in_FileType updated.
RESULT nothing
SEE ALSO
NAME
SCCM_Window_Iconify
SYNOPSIS
DoMethod(obj,SCCM_Window_Iconify);
FUNCTION Iconifies a scalos window
INPUTS none
RESULT TRUE if window could be iconified successfully or has already been iconified. FALSE if something went wrong.
SEE ALSO
NAME
SCCM_Window_UnIconify
SYNOPSIS
DoMethod(obj,SCCM_Window_UnIconify);
FUNCTION Uniconifies an iconified scalos window
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_Window_InitClipRegion
SYNOPSIS
struct Region *oldRegion = DoMethod(obj,SCCM_Window_InitClipRegion);
FUNCTION Initializes window clip region so that all rendering is limited to the window interior. All window drawing - especially icon rendering - should be done inside a SCCM_Window_InitClipRegion / SCCM_Window_RemClipRegion call.
INPUTS none
RESULT oldRegion - original clip region (to be supplied to SCCM_Window_RemClipRegion)
SEE ALSO SCCM_Window_RemClipRegion
NAME
SCCM_Window_LockUpdate
SYNOPSIS
void DoMethod(obj,SCCM_Window_LockUpdate)
FUNCTION Holds all icon updates for that window.
INPUTS none
RESULT nothing
SEE ALSO SCCM_Window_UnlockUpdate
NAME
SCCM_Window_NewPath
SYNOPSIS
void DoMethod(obj,SCCM_Window_NewPath,CONST_STRPTR path,ULONG tags,...);
FUNCTION Inform window object about new path. No-op in standard window classes.
INPUTS path - command name tags - tag list. Supported tags are: SCA_ShowAllMode - one of the workbench DDFLAGS_* values. SCA_ViewModes - one of the workbench DDVM_BY* values SCA_XOffset - (LONG) Window X offset SCA_YOffset - (LONG) Window Y offset SCA_IconList - (struct ScaIconNode *) pregenerated icon list
RESULT Success - FALSE on failure, TRUE to indiciate success.
SEE ALSO scalosAPI/SM_NewWindowPath IconWindow.sca/SCCM_IconWin_NewPath
NAME
SCCM_Window_RemClipRegion
SYNOPSIS
void DoMethod(obj,SCCM_Window_RemClipRegion, struct Region *oldRegion);
FUNCTION Resets window clip region to oldRegion.
INPUTS oldRegion - original clip region (Result from SCCM_Window_InitClipRegion)
RESULT nothing
SEE ALSO SCCM_Window_InitClipRegion
NAME
SCCM_Window_Open
SYNOPSIS
struct Window *win = DoMethod(obj,SCCM_Window_Open);
FUNCTION Opens a scalos window
INPUTS none
RESULT win - Pointer to Intuition Window if window could be opened, NULL if something went wrong.
SEE ALSO
NAME
SCCM_Window_SetTitle
SYNOPSIS
void DoMethod(obj,SCCM_Window_SetTitle, CONST_STRPTR title)
FUNCTION Sets window title to (title).
INPUTS title - window title string.
RESULT nothing
SEE ALSO
NAME
SCCM_Window_SetInnerSize
SYNOPSIS
void DoMethod(obj,SCCM_Window_SetInnerSize)
FUNCTION Update internal Scalos variables according to the current window size and setup a new window clip region.
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_Window_UnlockUpdate
SYNOPSIS
void DoMethod(obj,SCCM_Window_UnlockUpdate)
FUNCTION Enabled window updates stopped by SCCM_Window_LockUpdate.
INPUTS none
RESULT nothing
SEE ALSO SCCM_Window_LockUpdate
iconwindow
[edit | edit source]--background SCCM_IconWin_ActivateIconDown SCCM_IconWin_ActivateIconLeft SCCM_IconWin_ActivateIconNext SCCM_IconWin_ActivateIconPrevious SCCM_IconWin_ActivateIconRight SCCM_IconWin_ActivateIconUp SCCM_IconWin_AddGadget SCCM_IconWin_AddIcon SCCM_IconWin_AddToControlBar SCCM_IconWin_AddToStatusBar SCCM_IconWin_Browse SCCM_IconWin_CleanUp SCCM_IconWin_CleanUpByDate SCCM_IconWin_CleanUpByName SCCM_IconWin_CleanUpBySize SCCM_IconWin_CleanUpByType SCCM_IconWin_ClearIconFileTypes SCCM_IconWin_CountWBArg SCCM_IconWin_DeltaMove SCCM_IconWin_DragDrop SCCM_IconWin_DragEnter SCCM_IconWin_DragQuery SCCM_IconWin_DragLeave SCCM_IconWin_DrawIcon SCCM_IconWin_GetDefIcon SCCM_IconWin_GetIconFileType SCCM_IconWin_History_Back SCCM_IconWin_History_Forward SCCM_IconWin_ImmediateCheckUpdate SCCM_IconWin_LayoutIcon SCCM_IconWin_MakeWBArg SCCM_IconWin_MenuCommand SCCM_IconWin_NewPath SCCM_IconWin_NewPatternNumber SCCM_IconWin_NewViewMode SCCM_IconWin_Open SCCM_IconWin_RawKey SCCM_IconWin_ReadIcon SCCM_IconWin_ReadIconList SCCM_IconWin_Redraw SCCM_IconWin_RemFromControlBar SCCM_IconWin_RemFromStatusBar SCCM_IconWin_RemIcon SCCM_IconWin_ScheduleUpdate SCCM_IconWin_SetVirtSize SCCM_IconWin_ShowGadgetToolTip SCCM_IconWin_ShowIconToolTip SCCM_IconWin_ShowPopupMenu SCCM_IconWin_Sleep SCCM_IconWin_StartNotify SCCM_IconWin_Update SCCM_IconWin_UpdateIcon SCCM_IconWin_UpdateControlBar SCCM_IconWin_UpdateStatusBar SCCM_IconWin_WakeUp
NAME
--background
DESCRIPTION This class implements the functionality for the common workbench icon windows.
ATTRIBUTES SCCA_IconWin_Reading - (BOOL) [SG] currently reading directory
SCCA_IconWin_SelectedCount - (ULONG) [SG] number of selected icons in window
SCCA_IconWin_Typing - (BOOL) [SG] user is currently tying icon name
SCCA_IconWin_ShowType - (ULONG) [SG] DDFLAGS_SHOWDEFAULT, DDFLAGS_SHOWICONS, or DDFLAGS_SHOWALL
SCCA_IconWin_InnerWidth - (ULONG) [.G] icon window inner width
SCCA_IconWin_InnerHeight - (ULONG) [.G] icon window inner height
SCCA_IconWin_IconFont - (struct TextFont *) [.G] icon window icon font
SCCA_IconWin_LayersLocked - (ULONG) [.G] Flag: icon window has Layers locked
SCCA_IconWin_StatusBar - (BOOL) [SG] Flag: Status bar is present
SCCA_IconWin_ThumbnailView - (ULONG) [SG] Thumbnail display mode. One of THUMBNAILS_Never, THUMBNAILS_Always, or THUMBNAILS_AsDefault. Any other value makes the window use the default value, as set in Scalos preferences.
NAME
SCCM_IconWin_ActivateIconDown
SYNOPSIS
DoMethod(obj,SCCM_IconWin_ActivateIconDown);
FUNCTION Starting from the first icon currently selected, the icon located directly below the selected will be activated. If there is no icon selected, or the selected icon is located in the bottommost row, the method is a no-op.
INPUTS None
RESULT nothing
SEE ALSO SCCM_IconWin_ActivateIconUp SCCM_IconWin_ActivateIconLeft SCCM_IconWin_ActivateIconRight
NAME
SCCM_IconWin_ActivateIconLeft
SYNOPSIS
DoMethod(obj,SCCM_IconWin_ActivateIconLeft);
FUNCTION Starting from the first icon currently selected, the icon located directly left of the selected will be activated. If there is no icon selected, or the selected icon is located in the leftmost column, the method is a no-op.
INPUTS None
RESULT nothing
SEE ALSO SCCM_IconWin_ActivateIconDown SCCM_IconWin_ActivateIconUp SCCM_IconWin_ActivateIconRight
NAME
SCCM_IconWin_ActivateIconNext
SYNOPSIS
DoMethod(obj,SCCM_IconWin_ActivateIconNext);
FUNCTION Starting from the first icon currently selected, the icon which alphabetically follows the name of the selected one will be activated. If there is no icon selected, the alphabetically first icon will be selected. If the currently activated icon is the alphabetically last one in the window, this method will wrap around and activate the alphabetically first one.
INPUTS None
RESULT nothing
SEE ALSO SCCM_IconWin_ActivateIconPrevious
NAME
SCCM_IconWin_ActivateIconPrevious
SYNOPSIS
DoMethod(obj,SCCM_IconWin_ActivateIconPrevious);
FUNCTION Starting from the first icon currently selected, the icon which alphabetically precedes the name of the selected one will be activated. If there is no icon selected, the alphabetically last icon will be selected. If the currently activated icon is the alphabetically first one in the window, this method will wrap around and activate the alphabetically last one.
INPUTS None
RESULT nothing
SEE ALSO SCCM_IconWin_ActivateIconNext
NAME
SCCM_IconWin_ActivateIconRight
SYNOPSIS
DoMethod(obj,SCCM_IconWin_ActivateIconRight);
FUNCTION Starting from the first icon currently selected, the icon located directly right of the selected will be activated. If there is no icon selected, or the selected icon is located in the rightmost column, the method is a no-op.
INPUTS None
RESULT nothing
SEE ALSO SCCM_IconWin_ActivateIconDown SCCM_IconWin_ActivateIconUp SCCM_IconWin_ActivateIconLeft
NAME
SCCM_IconWin_ActivateIconUp
SYNOPSIS
DoMethod(obj,SCCM_IconWin_ActivateIconUp);
FUNCTION Starting from the first icon currently selected, the icon located directly above the selected will be activated. If there is no icon selected, or the selected icon is located in the topmost row, the method is a no-op.
INPUTS None
RESULT nothing
SEE ALSO SCCM_IconWin_ActivateIconDown SCCM_IconWin_ActivateIconLeft SCCM_IconWin_ActivateIconRight
NAME
SCCM_IconWin_AddGadget
SYNOPSIS
DoMethod(obj,SCCM_IconWin_AddGadget,struct Gadget *g);
FUNCTION Inserts a user-supplied Intuition Gadget at the front of the internal Gadget list.
INPUTS Gadget - User-supplied Gadget
SEE ALSO
NAME
SCCM_IconWin_AddIcon
SYNOPSIS
struct ScaIconNode *icon = DoMethod(obj,SCCM_IconWin_AddIcon, WORD x,WORD y,BPTR Lock,CONST_STRPTR Name);
FUNCTION Causes a window task to load the specified selected icon.
INPUTS x - icon x position or $8000 for any position y - icon y position Lock - Lock on icon directory Name - icon name
RESULT icon - newly added ScaIconNode or NULL if something went wrong.
SEE ALSO
NAME
SCCM_IconWin_AddToControlBar
SYNOPSIS
DoMethod(obj,SCCM_IconWin_AddToControlBar,struct Gadget *g, ULONG Tag, ...);
FUNCTION Adds a new BOOPSI gadget to the window control bar.
INPUTS g - new Gadget to be added Tag - Taglist
RESULT nothing
SEE ALSO SCCM_IconWin_RemFromControlBar
NAME
SCCM_IconWin_AddToStatusBar
SYNOPSIS
DoMethod(obj,SCCM_IconWin_AddToStatusBar,struct Gadget *g, ULONG Tag, ...);
FUNCTION Adds a new BOOPSI gadget to the window status bar.
INPUTS g - new Gadget to be added Tag - Taglist
RESULT nothing
SEE ALSO SCCM_IconWin_RemFromStatusBar
NAME
SCCM_IconWin_Browse
SYNOPSIS
DoMethod(obj,SCCM_IconWin_Browse);
FUNCTION Opens an ASL requester that allows selection of a new path to display in the current window.
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_ScheduleUpdate
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_ScheduleUpdate);
FUNCTION Schedule a check of the window for updated files and perform updates, including adding and removing icons. This real update check will be delayed for about 2 seconds in order to avoid many rapidly repeated window updates, and is done via the SCCM_IconWin_ImmediateCheckUpdate method. These 2 seconds are restarted with each new SCCM_IconWin_ScheduleUpdate invokation.
INPUTS none
RESULT nothing
SEE ALSO SCCM_IconWin_ImmediateCheckUpdate
NAME
SCCM_IconWin_CleanUp
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_CleanUp);
FUNCTION Fits all window icons to free positions, including icons in wt_LateIconList. Prevents icons from overlapping each other.
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_CleanUpByDate
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_CleanUpByDate);
FUNCTION Sorts all window icons descending by date, and fits them to free positions, including icons in wt_LateIconList. Prevents icons from overlapping each other.
INPUTS none
RESULT nothing
SEE ALSO SCCM_IconWin_CleanUpByName SCCM_IconWin_CleanUpBySize SCCM_IconWin_CleanUpByType
NAME
SCCM_IconWin_CleanUpByName
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_CleanUpByName);
FUNCTION Sorts all window icons ascending by name, and fits them to free positions, including icons in wt_LateIconList. Prevents icons from overlapping each other.
INPUTS none
RESULT nothing
SEE ALSO SCCM_IconWin_CleanUpByDate SCCM_IconWin_CleanUpBySize SCCM_IconWin_CleanUpByType
NAME
SCCM_IconWin_CleanUpBySize
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_CleanUpBySize);
FUNCTION Sorts all window icons ascending by size, and fits them to free positions, including icons in wt_LateIconList. Prevents icons from overlapping each other.
INPUTS none
RESULT nothing
SEE ALSO SCCM_IconWin_CleanUpByDate SCCM_IconWin_CleanUpByName SCCM_IconWin_CleanUpByType
NAME
SCCM_IconWin_CleanUpByType
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_CleanUpByType);
FUNCTION Sorts all window icons ascending by type, and fits them to free positions, including icons in wt_LateIconList. Prevents icons from overlapping each other.
INPUTS none
RESULT nothing
SEE ALSO SCCM_IconWin_CleanUpByDate SCCM_IconWin_CleanUpByName SCCM_IconWin_CleanUpBySize
NAME
SCCM_IconWin_ClearIconFileTypes
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_ClearIconFileTypes);
FUNCTION Clears the filetype information for all windows in the icon window. Useful if filetype information hasd changed and has to be re-read.
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_CountWBArg
SYNOPSIS
ULONG Count = DoMethod(obj,SCCM_IconWin_CountWBArg, struct ScaIconNode *icon);
FUNCTION Count arguments that will be crated by SCCM_IconWin_MakeWBArg. Useful to allocate a WBArg buffer for SCCM_IconWin_MakeWBArg.
INPUTS icon - icon to make WBArg from if icon = NULL, return WBArg with wa_Lock = copy of window lock and wa_Name = NULL
RESULT Count - number of WBArg's that SCCM_IconWin_MakeWBArg will create
SEE ALSO SCCM_IconWin_MakeWBArg
NAME
SCCM_IconWin_DeltaMove
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_DeltaMove,LONG deltaX,LONG deltaY);
FUNCTION Moves window interior by (deltaX,deltaY) and adjusts scrollers accordingly.
INPUTS deltaX - movement in horizontal direction deltaY - movement in vertical direction
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_DragDrop
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_DragDrop,struct Window *dropWindow, ULONG mouseX,ULONG mouseY,ULONG Qualifier);
FUNCTION Drops all dragged icons into (dropWindow) at coordinates (mouseX,MouseY).
INPUTS dropWindow - Intuition window to drop in mouseX - mouse x position from IntuiMessage mouseY - mouse y position from IntuiMessage Qualifier - qualifier position from IntuiMessage
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_DragEnter
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_DragEnter, struct ScaWindowStruct *StartWin, struct ScaIconNode *Icon, ULONG MouseX, ULONG MouseY)
FUNCTION Signals destination window that mouse pointer with attached icons has entered the window area (drage_Icon = NULL) or now points to icon (drage_Icon).
INPUTS StartWin - scalos window from which dragging started Icon -icon under mouse pointer MouseX, MouseY - mouse coordinates.
RESULT nothing
NOTE It is VERY IMPORTANT that every SCCM_IconWin_DragEnter (icon or window) is paired with a corresponding SCCM_IconWin_DragLeave method (icon or window) call !!!
SEE ALSO SCCM_IconWin_DragLeave
NAME
SCCM_IconWin_DragQuery
SYNOPSIS
BOOL DoMethod(obj,SCCM_IconWin_DragQuery, struct ScaWindowStruct *StartWin, struct ScaIconNode *Icon, ULONG MouseX, ULONG MouseY)
FUNCTION Check whether icons may be dropped into our window or onto specified icon.
INPUTS StartWin - scalos window from which dragging started Icon -icon under mouse pointer MouseX, MouseY - mouse coordinates.
RESULT BOOL TRUE yes, we may drop here FALSE no, dropping not allowed
SEE ALSO
NAME
SCCM_IconWin_DragLeave
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_DragLeave, struct ScaWindowStruct *StartWin, struct ScaIconNode *Icon, ULONG MouseX, ULONG MouseY);
FUNCTION Signals destination window that mouse pointer with attached icons has left the window area (drage_Icon = NULL) or now points no longer to icon (drage_Icon).
INPUTS StartWin - scalos window from which dragging started Icon -icon under mouse pointer MouseX, MouseY - mouse coordinates.
RESULT nothing
NOTE It is VERY IMPORTANT that every SCCM_IconWin_DragEnter (icon or window) is paired with a corresponding SCCM_IconWin_DragLeaveDrag method (icon or window) call !!!
SEE ALSO SCCM_IconWin_DragEnter
NAME
SCCM_IconWin_DrawIcon
SYNOPSIS
ULONG Result = DoMethod(obj,SCCM_IconWin_DrawIcon,Object *IconObject);
FUNCTION Draws (IconObject) in window by invoking IDTM_Draw method with icon
INPUTS IconObject - Icon to be drawn
RESULT Result - result from IDTM_Draw
SEE ALSO
NAME
SCCM_IconWin_GetDefIcon
SYNOPSIS
Object *icon = DoMethod(obj,SCCM_IconWin_GetDefIcon,CONST_STRPTR Name, LONG Type,ULONG Protection);
FUNCTION Tries to get a default icon for the specified file. Calls iconobject.library/GetDefIconObject and returns result.
INPUTS Name - file name Type - file type (fib_DirEntryType from FileInfoBlock) Protection - file protection (fib_Protection from FileInfoBlock)
RESULT icon - default Icon IconObject
SEE ALSO iconobject.library/GetDefIconObject
NAME
SCCM_IconWin_GetIconFileType
SYNOPSIS
Object *icon = DoMethod(obj,SCCM_IconWin_GetIconFileType, struct ScaIconNode *icon);
FUNCTION Identifies object for icon, find the appropriate filetype and setup the in_FileType member of ScaIconNode.
INPUTS icon - icon to find filetype for.
RESULT icon - default Icon IconObject
SEE ALSO iconobject.library/GetDefIconObject
NAME
SCCM_IconWin_History_Back
SYNOPSIS
Object *icon = DoMethod(obj,SCCM_IconWin_History_Back);
FUNCTION Move one step backwards in the history of the window contents, and switch to display the contents of the path from the history using the current view mode. Does nothing if the current view is already the oldest one in the window history.
INPUTS None.
RESULT None.
SEE ALSO SCCM_IconWin_History_Forward
NAME
SCCM_IconWin_History_Forward
SYNOPSIS
Object *icon = DoMethod(obj,SCCM_IconWin_History_Forward);
FUNCTION Move one step forward in the history of the window contents, and switch to display the contents of the path from the history using the current view mode. Does nothing if the current view is already the most recent one in the window history.
INPUTS None.
RESULT None.
SEE ALSO SCCM_IconWin_History_Back
NAME
SCCM_IconWin_ImmediateCheckUpdate
SYNOPSIS
Object *icon = DoMethod(obj,SCCM_IconWin_ImmediateCheckUpdate);
FUNCTION Scan directory associated to this window and check for any changes between the display and the disk contents. If any changes are found, icons are added, removed, or replaced as necessary.
INPUTS None
SEE ALSO SCCM_IconWin_ScheduleUpdate
NAME
SCCM_IconWin_LayoutIcon
SYNOPSIS
ULONG Result = DoMethod(obj,SCCM_IconWin_LayoutIcon,Object *IconObject, ULONG LayoutFlags);
FUNCTION Prepares an IconObject to be rendered.
INPUTS IconObject - icon to be layouted LayoutFlags IOLAYOUTB_NormalImage // Layout normal Image IOLAYOUTB_SelectedImage // Layout selected Image
RESULT Result - result from IDTM_Layout
SEE ALSO
NAME
SCCM_IconWin_MakeWBArg
SYNOPSIS
ULONG Count = DoMethod(obj,SCCM_IconWin_MakeWBArg, struct ScaIconNode *icon, struct WBArg *Buffer);
FUNCTION Fill a WBArg structure (wa_Lock and wa_Name) from the given icon or from the window.
INPUTS icon - icon to make WBArg from if icon = NULL, return WBArg with wa_Lock = copy of window lock and wa_Name = NULL Buffer - Result buffer with at least enough room for one WBArg.
RESULT Count - number of successfully created WBArg's in (Buffer)
SEE ALSO SCCM_IconWin_CountWBArg
NAME
SCCM_IconWin_MenuCommand
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_MenuCommand,CONST_STRPTR CmdName, struct ScaIconNode *icon, BOOL state);
FUNCTION
INPUTS CmdName - command name icon - icon to apply command to state - ?
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_NewPath
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_NewPath,CONST_STRPTR path,ULONG tags,...);
FUNCTION Change contents in existing window to display the given new path.
INPUTS path - command name tags - tag list. Supported tags are: SCA_ShowAllMode - one of the workbench DDFLAGS_* values. SCA_ViewModes - one of the workbench DDVM_BY* values SCA_XOffset - (LONG) Window X offset SCA_YOffset - (LONG) Window Y offset SCA_IconList - (struct ScaIconNode *) pregenerated icon list
RESULT Success - FALSE on failure, TRUE to indiciate success.
SEE ALSO scalosAPI/SM_NewWindowPath
NAME
SCCM_IconWin_NewPatternNumber
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_NewPatternNumber,ULONG NewPatternNumber);
FUNCTION
INPUTS NewPatternNumber - Instruct Scalos to use a new background for the current icon window. Special constant can be specified to use one of the predefined default patterns:
PATTERNNR_WorkbenchDefault use default Workbench window background. PATTERNNR_IconWindowDefault use default icon window background pattern. PATTERNNR_TextWindowDefault use default text window pattern.
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_NewViewMode
SYNOPSIS
Object *WindowObj = DoMethod(obj,SCCM_IconWin_NewViewMode, ULONG ViewMode);
FUNCTION changes window view mode from text to icon and vice versa.
INPUTS ViewMode - new window view mode
RESULT WindowObj - IconWindow.sca subclass object if window class changes from text to icon or vice versa NULL if window class is not changed.
SEE ALSO
NAME
SCCM_IconWin_Open
SYNOPSIS
BOOL Success = DoMethod(obj, SCCM_IconWin_Open, struct ScaIconNode *icon, ULONG Flags);
FUNCTION perform "open" function on (icon)
INPUTS icon - icon to open Flags - ICONWINOPENF_IgnoreFileTypes -- always OPEN icon, ignore file type settings. ICONWINOPENF_NewWindow -- open drawers in new window, regardless of browser mode.
RESULT Success - TRUE if new window could be opened FALSE if anything went wrong
SEE ALSO
NAME
SCCM_IconWin_RawKey
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_RawKey,struct IntuiMessage *iMsg);
FUNCTION Processes Intuition IDCMP_RAWKEY events.
INPUTS iMsg - IntuiMessage
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_ReadIcon
SYNOPSIS
struct ScaIconNode *icon = DoMethod(obj,SCCM_IconWin_ReadIcon, CONST_STRPTR name, struct ScaReadIconArg *ria);
FUNCTION Read one icon, add it to the window icon list, and display it. If an icon with the same name already exists it is replaced. If no icon could be created, i.e. because the file system object is no longer present, any existing icon is removed from the window. The intended use of this method is to update icon window after change in file system, i.e. add file, remove file, or change file.
INPUTS name - name of the icon ria - pointer to struct ScaReadIconArg with information about x/y icon position, and optional Lock on parent directory. ria may be NULL.
RESULT icon - newly created ScaIconNode or NULL if something went wrong.
SEE ALSO
NAME
SCCM_IconWin_ReadIconList
SYNOPSIS
BOOL Error = DoMethod(obj,SCCM_IconWin_ReadIconList,ULONG flags);
FUNCTION Read all icons in directory into window.
INPUTS flags - SCCV_IconWin_ReadIconList_ShowAll = show all files
RESULT Error - non-zero value if anything went wrong
SEE ALSO
NAME
SCCM_IconWin_Redraw
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_Redraw,ULONG flags);
FUNCTION redraws window
INPUTS flags REDRAWB_DontEraseWindow : don't erase window before redraw REDRAWB_ReLayoutIcons : relayout icons REDRAWB_DontRefreshWindowFrame : do not refresh window frame
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_RemIcon
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_RemIcon,BPTR Lock, CONSTR_STRPTR Name);
FUNCTION Remove specified icon from window
INPUTS Lock - Lock on icon directory Name - Name of icon to remove
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_RemFromControlBar
SYNOPSIS
DoMethod(obj,SCCM_IconWin_RemFromControlBar,struct Gadget *g);
FUNCTION Remove specified Gadget from window control bar, and disposes it.
INPUTS g - Gadget to remove from control bar
SEE ALSO SCCM_IconWin_AddToControlBar
NAME
SCCM_IconWin_RemFromStatusBar
SYNOPSIS
DoMethod(obj,SCCM_IconWin_RemFromStatusBar,struct Gadget *g);
FUNCTION Remove specified Gadget from window status bar, and disposes it.
INPUTS g - Gadget to remove from status bar
SEE ALSO SCCM_IconWin_AddToStatusBar
NAME
SCCM_IconWin_SetVirtSize
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_SetVirtSize,ULONG Flags);
FUNCTION Calculate bounding rectangle of all icons in window and optionally adjust window scrollers accordingly.
INPUTS Flags SETVIRTF_AdjustRightSlider = adjust right (vertical) slider SETVIRTF_AdjustBottomSlider = set bottom (horizontal) slider
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_ShowIconToolTip
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_ShowGadgetToolTip, ULONG gadgetID);
FUNCTION Display tool tip window for (gadgetID).
INPUTS gadgetID - GadgetID of gadget to display tool tip for.
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_ShowIconToolTip
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_ShowIconToolTip, struct ScaIconNode *icon);
FUNCTION Display icon tool tip window for (icon).
INPUTS icon - icon to display tool tip for.
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_Sleep
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_Sleep);
FUNCTION Iconify window and add AppIcon to Workbench.
INPUTS none
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_StartNotify
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_StartNotify);
FUNCTION Cancel any existing drawer notification for this window, and install a new notification.
INPUTS none
RESULT Success - TRUE if notification successfully started, FALSE on failure.
SEE ALSO
NAME
SCCM_IconWin_Update
SYNOPSIS
DoMethod(obj,SCCM_IconWin_Update);
FUNCTION Re-read all icons into window and redraw window.
INPUTS none
RESULT ?
SEE ALSO
NAME
SCCM_IconWin_UpdateIcon
SYNOPSIS
DoMethod(obj,SCCM_IconWin_UpdateIcon,BPTR Lock,CONST_STRPTR Name);
FUNCTION Update and redisplay icon.
INPUTS Lock - Lock to icon directory Name - name of icon
RESULT ?
SEE ALSO
NAME
SCCM_IconWin_UpdateControlBar
SYNOPSIS
DoMethod(obj,SCCM_IconWin_UpdateControlBar,struct Gadget *g,ULONG Tags,...);
FUNCTION Update window control bar member gadget. Applies OM_SET method with the supplied taglist to member gadget.
INPUTS g - Control bar member gadget to update Tags - Taglist
SEE ALSO
NAME
SCCM_IconWin_UpdateStatusBar
SYNOPSIS
DoMethod(obj,SCCM_IconWin_UpdateStatusBar,struct Gadget *g,ULONG Tags,...);
FUNCTION Update window status bar member gadget. Applies OM_SET method with the supplied taglist to member gadget.
INPUTS g - Status bar member gadget to update Tags - Taglist
SEE ALSO
NAME
SCCM_IconWin_WakeUp
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_WakeUp,ULONG ReLayout);
FUNCTION Uniconify and open iconified window.
INPUTS ReLayout - TRUE if all icons of the window should be relayouted
RESULT nothing
SEE ALSO
NAME
SCCM_IconWin_ShowPopupMenu
SYNOPSIS
void DoMethod(obj,SCCM_IconWin_ShowPopupMenu, struct PopupMenu *pm, struct ScaIconNode *in, ULONG Flags, struct FileTypeDef *fType);
FUNCTION Show a popup menu and execute the user's menu command.
INPUTS pm - Popup menu to display. in - Scalos icon node the popup menu should be associated to. Can be NULL for window popup menus. Flags - Show which items are still locked and HAVE TO BE UNLOCKED during processing. SHOWPOPUPFLGF_IconSemaLocked - wt_IconSemaphore is still locked SHOWPOPUPFLGF_WinListLocked - Scalos window list is still locked. fType - Private data structure for support of file type specific popup menus. Should be NULL if unused.
RESULT nothing
SEE ALSO
textwindow
[edit | edit source]--background SCCM_TextWin_BeginUpdate SCCM_TextWin_DrawColumnHeaders SCCM_TextWin_EndUpdate SCCM_TextWin_InsertIcon SCCM_TextWin_ReAdjust
NAME
--background
DESCRIPTION This class implements the text-only Scalos windows. Most functionality is derived from IconWindow.sca but there are some special methods described below.
NAME
SCCM_TextWin_BeginUpdate
SYNOPSIS
DoMethod(obj,SCCM_TextWin_BeginUpdate);
FUNCTION hold all visible updates until SCCM_TextWin_EndUpdate
INPUTS none
RESULT nothing
SEE ALSO SCCM_TextWin_EndUpdate
NAME
SCCM_TextWin_DrawColumnHeaders
SYNOPSIS
DoMethod(obj,SCCM_TextWin_DrawColumnHeaders);
FUNCTION Redraws text window column headers.
INPUTS nothing
RESULT nothing
SEE ALSO
NAME
SCCM_TextWin_EndUpdate
SYNOPSIS
DoMethod(obj,SCCM_TextWin_EndUpdate,ULONG RefreshFlag);
FUNCTION Unlock window updates and optionally rebuild window contents.
INPUTS RefreshFlag - if TRUE, forces window to perform SCCM_TextWin_ReAdjust.
RESULT nothing
SEE ALSO SCCM_TextWin_BeginUpdate
NAME
SCCM_TextWin_InsertIcon
SYNOPSIS
DoMethod(obj,SCCM_TextWin_InsertIcon,struct ScaIconNode *in);
FUNCTION The ScaIconNode is inserted into the text window icon list, according to the current sorting order. If an icon with the same name already exists, it is replaced.
INPUTS in - ScaIconNode which is to inserted into the sorted icon list if the text window.
RESULT nothing
NAME
SCCM_TextWin_ReAdjust
SYNOPSIS
void DoMethod(obj,SCCM_TextWin_ReAdjust);
FUNCTION Rebuilds text window. Entries are re-sorted, all column headers and text gadgets are redrawn and the scrollers are adjusted.
INPUTS none
RESULT nothing
SEE ALSO
title
[edit | edit source]--background SCCM_Title_Generate SCCM_Title_Query SCCM_Title_QueryTitle SCCM_Title_Translate
NAME
--background
DESCRIPTION This class implements the screen title and window title functionality.
TAGS SCCA_Title_Format (CONST_STRPTR) -- Format string for the title. This string is processed, replacing all the "%" variables with their values.
Standard title variables:
"%os" Kickstart release (e.g. "3.1") "%wb" Scalos release (e.g. "1.3") "%ov" Kickstart version (e.g. "40.68") "%wv" Scalos version (e.g. "40.6") "%fc" * Free chip RAM in bytes "%ff" * Free fast RAM in bytes "%ft" * Total free RAM in bytes "%pa" Window's path "%df" * Free disk space in bytes "%DF" Free disk space, displayed in GBytes/MBytes/KBytes "%du" * Used disk space in bytes "%DU" Used disk space, displayed in GBytes/MBytes/KBytes "%d(" start: don't show if no disk inserted "%d)" stop: don't show if no disk inserted "%dp" percentage of disk space used "%cs" Chip set "%cp" Processor "%pr" CoProzessor "%nt" number of tasks "%nl" number of libraries "%np" number of message ports "%nd" number of devices "%ns" number of screens
Variables marked with "*" may optionally immediately be followed by a scaling modifier "0" .. "6" : 0 Values is displayed in bytes. 1 Values is displayed in KBytes. 2 Values is displayed in MBytes. 3 Values is displayed in GBytes. 4 Values is displayed in TBytes. 5 Values is displayed in PBytes. 6 Values is displayed in HBytes.
Applicability is (IS).
SCCA_Title_Type (ULONG) -- type of title
SCCV_Title_Type_Screen -- Screen title (default) SCCV_Title_Type_Window -- Window title
Applicability is (I).
NAME
SCCM_Title_Generate
SYNOPSIS
STRPTR GeneratedTitle = DoMethod(obj,SCCM_Title_Generate);
FUNCTION Parses internal TitleFormat string and generates ready-to-use title text in internal buffer.
INPUTS -
RESULT GeneratedTitle - String pointer to generated title
SEE ALSO
NAME
SCCM_Title_Query
SYNOPSIS
BOOL NeedRefresh = DoMethod(obj,SCCM_Title_Query, UWORD ParseID);
FUNCTION Check whether variable text has changed and needs to be refreshed.
INPUTS ParseID - contains the two-character variable name, e.g. "os"
RESULT NeedRefresh - non-zero value if title string has changed, i.e. needs to be refreshed.
SEE ALSO
NAME
SCCM_Title_QueryTitle
SYNOPSIS
BOOL NeedRefresh = DoMethod(obj,SCCM_Title_QueryTitle);
FUNCTION Check whether title has changed and needs to bed refreshed.
INPUTS -
RESULT NeedRefresh - non-zero value if title string has changed, i.e. needs to be refreshed.
SEE ALSO
NAME
SCCM_Title_Translate
SYNOPSIS
BOOL Success = DoMethod(obj,SCCM_Title_Translate, STRPTR Buffer, CONST_STRPTR TitleFormat, UWORD ParseID, UWORD Length);
FUNCTION Processes one title format variable and generates expanded text into buffer provided by caller.
INPUTS Buffer - Pointer to a buffer where the expanded text will be stored. This pointer gets updated during method execution !! TitleFormat - pointer into title format string, immediately after the variable name. This pointer gets updated during method execution !! ParseID - contains the two-character variable name, e.g. "os" Length - The number of bytes that fit into Buffer. Beware of writing more than (Length) Bytes into Buffer!
RESULT Success - a non-zero value indicates translation was successful. a zero value signals some kind of error (e.g. unknown ParseID or insufficient Length).
SEE ALSO
preferences.library
[edit | edit source]iconobject.library
[edit | edit source]iconobject.datatype
[edit | edit source]A technical overview of AROS
[edit | edit source]History
[edit | edit source]Additions/changes: 40.32 20040917 JL - Bugfix: simple-refresh window redraw failed when issueing some menu commands, e.g. "open parent". 20040908 JL - Bugfix: renaming left-out icons sometimes caused random memory to be trashed. fixed. - Bugfix: renaming left-out icons caused Scalos processes to hang due to semaphore deadlocks. - Bugfix: cured semaphore deadlock that sometimes occured when automatic window update collided with some user action, e.g. opening a popup menu. 20040828 JL - Bugfix: with TrueType fonts, having one softlink in a text window caused all entries to be displayed underlined. - Added new internal commands "iconproperties" and "windowproperties" (Requires iconproperties.module and windowproperties.nodule). - Bugfix: drag&drop left garbage on screen if custom bob routines were used and "special" bob (e.g. "forbidden" or "copying") was visible and was larger than main bob. 20040716 JL - Added new qualifier during D&D to force moving of file system objects (instead of copying). - Implemented the long-planned "Create link" on D&D feature. - Bugfix: default icons were not shown transparent if D&D "real transparency" wasn't turned on. 20040625 JL - When copying icons, the "replace all", "skip all", and "abort" buttons of the overwrite request didn't work. 20040612 JL - Automatic update of windows caused enforcer hit and crashes if the modified files containes special pattern-matching characters in their names (e.g. "()[]#?|"). 20040602 JL - Fixed long-standing bug that caused Scalos to lockup when an icon was selected while a new window was initially reading its icons. - About dialog sometimes opened with maximum screen width, but without any contents in the scrolling field. Fixed. 20040527 JL - Closing an icon window while it was initially reading its directory caused Enforcer hits and crashed Scalos. Fixed. 20040523 JL - Added TrueType font support. TT Fonts can be used for icons, text windows, tooltips, and the "About" window. 20040519 JL - Menu selection "leave out" (not from popup menu) caused enforcer hits when issued from "View all" text window. Fixed. 20040425 JL - Added CRC checks over prefs files. Now writing a prefs file only causes re-reading of prefs and reinitialization if file contents has actually changed. 20040424 JL - Disk Read-Only status display is now updated when disk is inserted. 20040419 JL - Icons without associated object were displayed incorrectly after window update. Fixed. - Bumped revision to 40.32. 40.31 20040322 JL - Default icons were not recognized on main window. This bug could show up after dragging default icons from some drawer window onto the desktop. 20040221 JL - Improved caching of filetype descriptors. With "env-handler", all filetypes were flushed from cache whenever a new filetype was loaded from ENVARC: to ENV:. 20040216 JL - Internal command "reset" didn't work correctly. Fixed. 20040214 JL - Icons were not updated correctly after change of file comment of rename with change of case only (e.g. "amiga" to "Amiga"). 20040211 JL - Icon selection marks for popup menu could be drawn in incorrect window when "Apply to every selected icon" is enabled. - Fixed various problems with left-out icons (different icons with same name were not handled correctly, left-out icons were not updated as intended). 20040210 JL - "Mac-like selection" was broken. Fixed. 20040206 JL - "Snapshot window" didn't work if there was no icon present for window. 20040126 JL - Main window didn't allow multiple icons with same name (e.g. left-out icons from different paths). Fixed. - Bumped revision to 40.31. 40.30 20040123 JL - In "view all" text windows, "Leave out" icon "xxx" now removes both "xxx" and "xxx.info" from text window, and "Put away" causes both entries to reappear. - Now text window SCCM_IconWin_ReadIcon method correctly handles increase in column width. - All "cleanup**" menu commands are now disabled in text windows. - Fixed enable/disable state of "leave out" and "put away" menu commands for "view all" text windows. - "selectall" menu command is now disabled if all icons are selected. - "clearselection" menu command is now disabled if no icon is selected. 20040122 JL - Text windows now automatically update object associated entries if an icon is removed or added. 20040118 JL - Fixed internal locking during reading and parsing of Scalos filetypes descriptions. - AppIcons no longer can get "Default Icon" attribute. 20040111 JL - Default icons may be drawn with adjustable degree of transparency. - Added support for MorphOS-style iconify gadgets. This fixed any visual distortion of iconify Gadgets under MorphOS. 20040109 JL - When loading default icons, Scalos now adds information about the original object (Path+Name) for usage by the iconobject datatypes. 20040105 JL - Made icon dd_Flags handling more flexible, so OS3.9 CD drawers open with correct viewmodes (WB handles invalid values of "3" like DDFLAGS_SHOWALL). - Scalos didn't handle default icons from icon drawer (e.g. def_drawer.info) correctly. Without separate DefIcons installed, only the icon.library built-in icons were used. 20040104 JL - Added "skip all" gadget to standard copy/move "replace" dialog. - Fixed enforcer hits/crashes when starting Scalos while Scalos is already running. - Added new ScalosControlA() tags SCALOSCTRLA_GetCopyBuffSize and SCALOSCTRLA_SetCopyBuffSize. 20040101 JL - Added preferences item to set default stack size. - FileTypes code assumed that popupmenu.library was open, leading to crashes on machines where that library was not installed. - Bumped revision to 40.30. 40.29 20031230 JL - Added full support for alpha channel icon drawing, including drag&drop ("Custom" bob routines only). - Memory for default action in filetype descriptions was freed while not in use. Fixed. - Filetype descriptions are now cached, in order to improve performance. - Starting WB programs left 2 locks dangling. Fixed. 20031226 JL - updated "%os" title function to recognize OS 3.5 and OS 3.9. - Made localizable string for "BUSY" disks. - Popupmenu items now show default action (the action that is taken upon double-click) in bold text. 20031222 JL - Optimization of Drag-and-Drop bobs was broken, leading to very sluggish drawing of bobs when dragging multiple icons. 20031208 JL - Changed directory for Scalos filetype descriptors from "Scalos:FileTypes/" to "ENV:Scalos/FileTypes/". For compatibility, Scalos still looks in the old place if the new directory cannot be found. 20031202 JL - In Text window, icon update erroneously changed type from "WBGARBAGE" to "WBDRAWER". 20031117 JL - Fixed incorrect update of icons in text windows in "view all" mode. 20030727 JL - To provide a visual hint that popup menu commands only apply to the icon under the pointer, all other selected icons are temporarily deselected while the popup menu is open. - Added keyboard qualifier to apply popup menu commands to every selected icon, instead of only the icon under the mouse pointer. 20030711 JL - Fixed long delay upon startup when splash window was turned off. - Bugfix: selecting an icon in one window, then changing to another window, and hitting "enter" caused Scalos to crash with "invalid semaphore state" errors. 20030628 JL - Fixed several memory leaks associated with filetype-dependent popup menus and tooltips. 20030618 JL - In Window popup menus, "view by text/name" never displayed a checkmark. 20030616 JL - Drawers opened from text view windows did not correctly inherit the "view all" attribute. - Corrected minor typo in About window "100%" was lacking the percent sign. 20030615 JL - Bumped revision to 40.29. 40.28 20030612 JL - Major improvement in text view window update - now works the same way as icon window update, only the changed items are redrawn. 20030531 JL - Bugfix; In text view windows, it was erronously possible to "snapshot" and "unsnapshot" icons. 20030529 JL - Bugfix: In text view windows, no file comments were displayed. 20030525 JL - In text view windows, Scalos had problems recognizing default tool entries for project icons. Fixed. 20030517 JL - Text icon IDTA_Type returned wrong icon type for WBGARBAGE (Trashcan) icons. 20030502 JL - Major improvements to SCA_OpenIconWindow(). Now Scalos tries hard to find the appropriate icon for the window to be opened. If an icon is to be found, the window settings are taken from the icon. 20030423 JL - Text windows didn't recognize window resize events during reading of icons. Fixed. 20030421 JL - Rewrote context-sensitive disabling of menu items. 20030420 JL - Added requester to ask user what to do when a project icon without default tool is encountered. - Added Polish catalog to developer archive, translation by Paweî Szczodry. 20030418 JL - Fixed file count routine in filetransclass. The bug caused incorrect calculation of total byte/item count and lead to display of more than 100% completion with nonsense values for "remaining time". - Removed display of every single item copied in filetrans copy/move requester. This optimization greatly improved copying speed. 20030327 JL - Added new method "SCCM_FileTrans_OverwriteRequest" for FileTrans.sca class. 20030301 JL - Bugfix: Filetype wasn't set correctly for trashcan. - Bugfix: AsyncWB hook wasn't called correctly for "Empty Trashcan". 20030218 JL - Bugfix: Program name wasn't handed over to execute_command.module on icon double-click. 20030216 JL - Bugfix: Improved window clipping, now application-drawn AppIcons no longer draw across non-backdrop Workbench window border. 20030211 JL - Bugfix: When a drawer window was created in iconified state, it could not be uniconified by double-clicking its parent drawer. 20030208 JL - Bugfix: In 40.27, WBStartup execution of ARexx type icons was broken. Fixed. - Feature: Added display of estimated remaining time to file copy/move progress dialog. - Bumped revision to 40.28. 40.27 20030130 JL - Bugfix: Window backfill pattern re-layout didn't occur when "backdrop" was turned on and off. 20030129 JL - Bugfix: fixed enforcer hits/crashes during window zoom/resize when "always relayout" was enabled (code tried to use ptn_bitmap after FreeBitMap()). 20030126 JL - Bugfix: added locking mechanism for asynchronous backfill to avoid crashes when windows are closed while async backfill process hasn't finished. 20030118 JL - Bugfix: fixed enforcer hits when CLI project icon contained no default tool. - Improvement: Program list now contains full path for each program started instead of only program name. - New feature: Added SCA_ScalosControl() subcommand to get/free list of menu commands. 20030111 JL - Bugfix: Cut+Paste didn't work when AsyncWB was installed. Fixed. - New features: Added new FONT and VALIGN attributes to TOOLTIP STRING. - Bumped revision to 40.27. 40.26 20030104 JL - Bugfix: "about" produced 2 enforcer hits when no Scalos logo found. - Bugfix: Splash resizing / text positioning was broken when no Scalos logo was found. - Bugfix: window process hung when one of the standard modules could not be started. 20030103 JL - Bugfix: Snapshotting a window which had no icon created an ".info" instead of an icon with the drawer's name. - Bugfix: Windows with virtual width or height > 32768 could produce problems from graphical screen corruption to system crash. 20030102 JL - New feature: Icon tooltips can now be user-defined in the file type description files. Scalos now supports file type information plugins, e.g. to display size information about image files. 20021221 JL - Bugfix: During file copy operations, icons could be overwritten without warning. 20021209 JL - Bugfix: TextInputHook wasn't used to run program without icon - instead always execute_command.module was called. - Bugfix: automatic disabling didn't work for some main menu items (e.g. "sizetofit" didn't get disabled in backdrop root window). - Bumped revision to 40.26. 40.25 20021206 JL - Added "viewbytype", "cleanupbyname", "cleanupbydate", "cleanupbysize", and "cleanupbytype" menu commands. 20021205 JL - Fixed Enforcer hits which occured when an ARexx program ended that had been started from an icon window, and the icon window had been closed. 20021130 JL - Added support for cyling through icons in window via TAB key. - Rebuilt about window code to make use of the TT layout engine. - Fixed bug in SCA_SortNode() - lists with less than 3 entries were not sorted. 20021116 JL - Fixed broken close-window abort recognition during GenerateIcons() icon drawing in window. 20021019 JL - The user-defined path for default icons was never used for iconified Scalos window icons. Now it is taken as fall-back if there are no theme-specific icons. 20021018 JL - Changed sizing method for splash window. 20021014 JL - Added new methods SCCM_AddToClipboard and SCCM_ClearClipboard to root class. 20021013 JL - Copy/paste didn't work for volumes/disks. Fixed. - Fixed another source for erroneous error messages during SCCM_FileTrans_Copy and SCCM_FileTrans_Move operations. 20021009 JL - Changes in icon font were not recognized in desktop window. Fixed. - The menu "copy" and "paste" commands trashed the destination file name. Fixed. 20021008 JL - Fixed some enforcer hits and crashed when selecting some device icons, and then pressing "enter" twice. 20021006 JL - Changed location of icons for iconified Scalos window from "ENV:Sys/def_iconify" to "THEME:window/def_iconify". - LoadWB.scalos now waits until Scalos opens its first window on the Workbench screen before exiting. - Now Scalos first tries to load deficons from "THEME:DefIcons/". If that fails, the standard path "ENV:Sys/" is used. 20021003 JL - Now uses "titlebarimageclass" for iconify image if available. - changed all makefiles to work with GNU make. - Bumped revision to 40.25. 40.24 20021003 JL - Fixed broken ARexx menu command support. 20021003 JL - Major improvement of Tooltip layout engine. - Added tooltips for several Scalos gadgets, including the status bar images. 20020929 JL - Fixed menu bug where every menu item got a hotkey mark. Now only the menu items which have got hotkeys are shown with hotkey marks. - Icon positions were messed up during "cut", "copy" and "paste" operations. Fixed. - Changed file name for default device icons from ".info" to "def_.info" in order to match OS3.9 behaviour. - Changed file name for default volume icons from ".info" to "def_.info" in order to match OS3.9 behaviour. - Added missing SHADOWPEN vertical line to the left of the window iconify image. - The assign "THEME:" isn't touched any more if it exists prior to Scalos startup. - The assign "Scalos:" is created (pointing to PROGDIR:) on startup if it doesn't exist. - Tooltips are no longer displayed if ICandy == 0. - Bumped revision to 40.24. 40.23 20020928 JL - Improved handling of "cut" icons (shadowed display got corrupted). Needs iconobject.datatype 40.7 . 20020926 JL - Fixed bug that caused Scalos to crash when an icon was removed during Drag&Drop (e.g. an AppIcon was removed by its application). 20020923 JL - Changed default setting for icon frame type from MF_FRAME_BUTTON to MF_FRAME_NONE. 20020921 JL - Moved special pointer icons ("forbidden", "copying", "makelink") from ENV:Scalos/ to THEME:PointerIcons/. 20020915 JL - Environment variable "scalos/icandy" is recognized if set before Scalos startup. ATM, icandy < 2 turns off splash screen and window status bars. If not set, "Scalos/icandy" gets set with a default value of "2". 20020914 JL - Changing "Fullbench" and "Poptitle" now works on-the-fly and doesn't require rebooting anymore. - Locale (language) preferences can now be changed on-the-fly, no reboot required anymore. 20020913 JL - Fixed erronous message "This drawer cannot be opened" when trying to open a drawer which is already open. 20020831 JL - Icon position now always is set to NO_ICON_POSITION for default icons loaded via DefIcons. 20020825 JL - Changed default for Workbench "backdrop" to TRUE. - Changed tool tip placement - now tool tips are displayed below mouse pointer if space allows. 20020822 JL - Added optional process priority field for filetype specific popup menu commands. 20020817 JL - Bugfix in FileCommands.c: since ExNext() result ERROR_NO_MORE_ENTRIES was erronously remembered as error, an incorrect error reason could be displayed when a "real" error occured. - Bumped revision to 40.23. 40.22 20020812 JL - Bugfix with "Show All" windows: icon list was read before window was opened, leading to problems with icon layout (invisible icons). 20020803 JL - Fixed problems with file type-specific popup menus and STACK parameter. 20020801 JL - Finished conversion of Scalos Pattern Prefs from ASM to C. 20020720 JL - First implementation of new filetype-specific popup menu system. - Removed obsoleted scalos.library function SCA_RemapBitmap(). 20020711 JL - CheckMouseIcon() didn't take window borders into account, i.e. clicking on window border could cause icon to be selected. 20020703 JL - Text icon font changes now take effect immediately, Reboot is not required anymore. 20020624 JL - Fixed problem in wbl.c - spawned processes incorrectly inherited the ConsoleTask pointer. 20020623 JL - Now SCCM_IconWin_Redraw also refreshes window frame and status bar. 20020622 JL - Added image "THEME:Window/StatusBar/ShowAll" to status bar, which visualises the "Show All Files" window setting. 20020612 JL - Fixed bug introduced by optimized pen allocation. 20020601 JL - Improved pen allocation in LockScalosPens() - pens which are members of dri_Pens are no longer allocated a second time. - Upon startup, Scalos should give a warning Requester if not all defined pens could be allocated. 20020529 dm - Finished converting cleanup code to C. 20020526 JL - Fixed bug in the scalos.library expunge code which was trying to FreeMem() an incorrect library base pointer when quitting Scalos. - When "quit Scalos" is requested, memory is flushed before checking scalos.library open count, so unused libraries still resident in memory no longer prevent Scalos from closing. - Added optional background image for tooltips "THEME:TooltipBackground". - Added optional background image for window status bar "THEME:Window/StatusBar/Background". - Added forgotten "PDTA_DestMode, PMODE_V43" in about.c and GadgetBarImageClass.c. Now the entries for the Scalos processes in "PicTD" prefs are no longer required. 20020525 JL - Fixed a serious bug in the new C SCA_MoveNode() function which caused Scalos to crash when trying to "cleanup" a window which had already been cleaned up. 20020513 JL - Fixed an icon drag bug: When an icon was clicked with LMB and the mouse button held for several seconds without moving the icon, a DisplayBeep() was triggered when the mouse button was released. 20020504 JL - Many minor changes to allow Scalos to cpiled with GCC. - Replaced handmade CLI startup detaching code by standard cback.o and detach.o mdoules. 20020414 JL - Corrected error in scalos_lib.sfd - order of parameters for SCA_WBStartTags() was incorrect. 20020412 JL - When icons were selected purely via keyboard, the "IconActive" variable was not updated and selected icons could not be opened by pressing "return". - When trying to open an disk/drawer icon via wb39/ARexx, under certain circumstances the Scalos main task could hang, waiting for a message reply. Fixed. 20020405 JL - When prefEnableSplash was turned off after splash window has opened, the splash window never closed. Fixed. - After removing an entry from the hidden device list, that device used to appear multiple times on the Scalos screen. Fixed. 20020404 JL - When AppIcon was replaced via AppChange, Scalos tried to free invalid memory while removing AppIcon. Fixed. 20020403 JL - ScalosMain() was called with seglist in d1 instead of d0, leading to enforcer hits or crash on exit when started from workbench via icon double-click. - Bumped revision to 40.22. 40.21 20020402 JL - Fixed lockup problem when a window opened or closed during drag/drop operations. 20020329 JL - Fixed problem in scalos library code - Expunge() never got called. - Fixed init problem with prefTextModeTextAttr.ta_Name, after unsuccessful startup, Scalos tried to FreeVecPooled() static string. - Added safeguard to AllocVecPooled() and FreeVecPooled() against being called with MemPool of NULL. 20020309 JL - SCCM_DeviceList_Generate now works fully asynchronous way, avoiding most sources of hangs connected to weird file systems. 20020212 JL - Finished converting Scalos startup and shutdown code to C. 20020209 JL - DefIcons support now integrated into Scalos, including automatic reload of DefIcons.prefs after external changes. Filetypes.plugin and Deficons.plugin are now obsolete. 20020204 JL - Programs started by Scalos were never removed from the internal program list. Fixed. 20020203 JL - Now displays message on screen title when user tries to double-click a drawer icon without associated directory. 20020202 JL - ToolTip sometimes didn't show used/total/percent correctly for disk icons. Fixed. - Bumped revision to 40.21. 40.20 20020201 JL - Dragged icons were corrupted on screens with interleaved bitmaps. Fixed. - Dragging icons with text didn't always work, depending on icon text colour settings. Fixed. 20020127 JL - UnSnapshot function was thoroughly broken - Should now again work as expected. 20020126 JL - Now supports adding submenus and new menus via SCA_NewAddAppMenuItem(). - The Rename() patch now tries to update (i.e. remove) the old object's icon. - CopyCommand() now quietly returns OK if source of copy operation cannot be found, so copying of orphan icons (icons w/o associated objects) should work now. 20020125 JL - Plugged memory leak when reloading menu prefs. - Bumped revision to 40.20. 40.19 20020121 JL - Snapshot/Unsnapshot didn't free Lock on icons. Fixed. - Unsnapshot failed to move icon to wt_LateIconList. Fixed. 20020119 JL - ReLayoutIcons() forgot to update IDTA_TextPenShadow and IDTA_TextPenOutline pens. Fixed. - SCA_ScreenTitleMsg() was broken and couldn't display the last message. Fixed. 20020115 JL - Fixed problem in DragDropBobs.c : newiconobject.library didn't return image mask for special icons because IDTM_Layout was only called for normal image and IDTM_Mask_Selected was requested. Fixed. 20020114 JL - Fixed problem with MOS and SameLock() NULL Locks in Functions.c. Now it should be possible to open SYS: volume. - Bumped revision to 40.19. 40.18 20020113 JL - Undid most changes in DragDropBobs.c from 40.17. Now frames around icons work in a more compatible way, together with 40.2 icon datatypes. 20020109 JL - Commands "rename", "execute", "newdrawer" now support global TextInputHook. 20020107 JL - Built .sfd files for all Scalos components. All pragma and proto includes and .fd files are now created from those .sfd files. 20020106 JL - Several window backfill functions didn't check properly for non-existing background images (FileTransfer, Splash). Fixed. - INF_File was not set for text icons when file system returned non-standard fib_DirEntryType. Now INF_File is always set if fib_DirEntryType < 0. - The PenArray delivered by the workbench OpenScreen patch always contained -1 in the first entry, rendering it pretty useless. Fixed. - Adapted to now (NDK3.9) officially supported Workbench hooks (CopyHook, DeleteHook, SetupCleanupHook). - Now requires includes Release 45.1 to compile. - "Empty Trash" menu command now uses DeleteHook if available. - The PenArray delivered by the workbench OpenScreen patch always contained -1 in the first entry, rendering it pretty useless. Fixed. 20020105 JL - When changing icon attributes (e.g. border), AppIcons didn't get refreshed properly. Fixed. 20020104 JL - Automatic icon update on file system notification didn't work properly for left-out icons. Fixed. - Bumped revision to 40.18. 40.17 20020101 JL - Added separate pens for selected icon text, icon text outline, and icon text shadow. 20011231 JL - Several changes in DragDropBobs.c to enable frames around masked icons. Requires latest icon datatypes!!! 20011229 JL - Device icons got a name of "" (empty string) when tool type SCALOS_NOTEXT was found, whereas other icons got NULL. Fixed. 20011228 JL - When Scalos tries to quit and there were still foreign windows on WB screen, a retry requester occurs. After clicking "Retry", Scalos tried to free PenShareMap more than once. Fixed. 20011225 JL - Non-DOS disk icons are now ghosted (just like WB3.9). - Many menu items (e.g. "Open", "Information") are now disabled for non-DOS disks. - Unreadable disks are now labeled as "DF0:Unreadable" instead of "DF0:????". 20011221 JL - OpenWorkBench() return ULONG instead of Workbench screen address in case of success. Fixed. - Window status bar text now always uses text window font. 20011215 JL - Many changes and fixes in FileCommand.c (File moving/copying code). Moving objects to a different volume (copy-and-delete) now works. 20011214 JL - Added timeout (default=10s) to file transfer counting. - Added Win***s-like "Copy", "Cut", "Paste" menu commands to transfer files. 20011213 JL - Added workaround kludge for broken "delete.module" implementations that rely on wa_Name being empty for directories. - Fixed a memory trashing bug in CLIStart(). Only occured when file name was longer than default tool name. 20011212 JL - LeaveOutIcon() trashed the CurrentDir of the Scalos window task. Fixed. - Scalos window tasks now have their directory namess appended to the task name, e.g. "Scalos_Window_Task ". - (old) SCA_RemoveAppObject() failed to remove icons in wt_LateIconList, leading to crashes with MUI applications on CloseWorkBench()/OpenWorkBench(). Fixed. - Added new pen for status bar text. 20011208 JL - Popup menus now can also be opened by keyboard (Right Alt +Right Amiga). - SCCM_IconWin_CheckUpdate did not recognize changes between default icon and non-default icon (e.g. an icon associated to an object was deleted - display didn't change). Fixed. - Added optional THEME:FileTransBackground background image to copy/move progress window. - Display of window drop marks is now settable into 3 modes - none, non-backdrop windows only, always. - Added GBTDTA_SoftStyle to set text style for GadgetBarTextClass gadgets. - Bumped revision to 40.17. 40.16 20011207 JL - Scalos.c/RefreshTextWindow didn't check if window exists. Fixed. - Scalos.c/ReportError didn't propagate RESULT_UserAborted if the user clicked the "Abort" button. Should be fixed now. - Major rewrite of FileTransfer class. Redesigned copy/move progress window with progress gauge and cancel button. 20011205 JL - Fixed another bug in window backfilling - filled area was exactly 1 pixel too small in x- and y-direction. - With window scrollbar arrows, the detection of shift key was reversed. Fixed. - Changed scrolling step for window scrollbar arrows to 10 pixel. 20011204 JL - Added SCCM_IconWin_AddToStatusBar, SCCM_IconWin_RemFromStatusBar, and SCCM_IconWin_UpdateStatusBar methods to make status bar interfacing easier. - More changes in OpenWorkBench() / CloseWorkBench(). Now also uses icon.library V44+ ICONCTRLA_SetGlobalScreen tag. Closing/reopening Scalos (e.g. via screen mode change) should now work. 20011203 JL - Rewrote OpenWorkBench() / CloseWorkBench() patches in C. Problems with wrong colors after OpenWorkBench() should now be fixed. 20011202 JL - Added support for WB3.9-compatible (undocumented) CloseWB hook. Now e.g. AmiDock iconifies automagically on CloseWorkbench() and uniconifies afer OpenWorkBench(). - With status bar enabled, Scalos window heights grew each time a window was iconified and re-opened. Fixed. 20011201 JL - Fixed broken FreePatternNode() - now reloading pattern prefs should work again. - Finally fixed long-standing bug in icon update code that sometimes lead to duplicate icons. 20011130 JL - Disk without icons now get default icon of type WBDISK instead of WBKICK. - Fixed problem with removed nodes in SCCM_DeviceList_Generate, leading to corrupted device icon list. 20011129 JL - Added file version information to tooltips. 20011128 JL - Implemented global copy and delete hooks for compatibility with AsyncWB. - Fixed inverted NoRemap checking in backfill functions. 20011127 JL - Finished converting all menu functions to C. 20011124 JL - Fixed wrong SCA_FreeNode() parameter in DevListClass_Generate(). - LockScalosPens() produces lots of enforcer hits when no palette prefs could be found. Fixed. 20011123 JL - Finished converting all IDCMP handlers to C. 20011120 JL - Completed converting window background rendering code to C. 20011117 JL - Menu command "backdrop" didn't work. Fixed. 20011116 JL - Fixed missing Argument for WaitReply() in A5. This resulted in crashes when running modules with simple refresh windows. - Bumped revision to 40.16. 40.15 20011113 JL - INF_File was not set for backdrop icons. Fixed. - Devices are now counted and displayed separately during D&D. 20011112 JL - Changed screen pop-title algorithm so it should always get switched on if necessary. - Changed rendering of Logo in splash window back from DTM_DRAW to blitting functions. - Fixed error in DevListClass_Filter() - missing parentheses lead to wrong exception calculation. - Bumped revision to 40.15. 40.15 20011112 JL - Changed path for status bar images to "THEME:Window/StatusBar/". 20011111 JL - Added SCA_NoStatusBar attribute to SCA_OpenWindow() library function and SCALOS_NOSTATUSBAR tooltype to suppress status bar display on a single window. 20011110 JL - Fixed most serious error : failed to reserve memory for IconWindowClass instance data. 20011108 JL - Fixed wrong position for "iconify" gadget (overlapped zip gadget). - Horizontal scroller height was too small. Fixed. - Added special detection of Screen titlebar to circumvent problem with MagicMenu which lead to screen bar staying visible in spite of cleared SHOWTITLE flag. 20011107 JL - Added "Typing" symbol to status bar. - Icon selection by typing icon name didn't work for AppIcons and device icons. Fixed. - Removed LockIBase() in Window.c/QueryObjectUnderPointer(), hopefully avoiding window lockups. - Converted automatic Screen bar switching code to C (see Scalos_Cx.c). Added additional checks for locked Layers to avoid deadlocks. 20011106 DM - Added two new preference variables, prefWindowHScroll and prefWindowVScroll for the default distances of scrolling icon windows by the keyboard (main_prefs.s, variables.h, imports.i, exports.i). - Added parts of cleanup code converted to C to the source files (cleanup.c, main_subroutines.s) - Added two missing includes to scalos_structures.h file (graphics/gels.h and workbench/startup.h) - Can use shift+cursor keys in icon windows to scroll by a whole page (well, inner height and width of icon window - IconWindowClass.c) - Can also use Return to open active icon in icon windows (IconWindowClass.c) - Fixed problem with reading Workbench preferences and then showing Scalos main window in wrong mode/sizes (WindowClass.c) 20011104 JL - Icon menu didn't get enabled when icon was selected via keyboard input (first letter(s) of icon name). Fixed. 20011102 JL - Replaced blitting function in Splash.c by DTM_DRAW. - Fixed old problems with pen allocations - ObtainPen() didn't check for success. 20011101 JL - Bumped revision to 40.14. 40.13 20011020 JL - During D&D, window dropmarks are no longer erased when mouse is over icon, but remain visible until mouse leaves window. - Added SCALOSCTRLA_GetEmulationMode tag for ScalosControl(). 20011013 JL - Now MenuItems get disabled if they have SubItems and every SubItem is disabled. - Since redrawing of partially overlapped icons seems to work well, I disabled the strict icon overlap checking while D&D. 20011012 JL - Added support for AppIcons sending select/unselect notification messages and WBAPPICONA_NotifySelectState tag. - CLIStart() didn't work with WBPROJECT icons. Fixed. 20011011 JL - Icon window crashed after D&D when redrawing previously obscured icons - Fixed. - Sometimes IDCMP_INTUITICKS messages were not replied. Fixed. - Automatic change of default window patterns failed when switching between icon and text mode. Pattern numbers sometimes were treated as unsigned instead of signed numbers. Fixed. 20011010 JL - Added new Tags SCALOSCTRLA_GetTypeRestartTime and SCALOSCTRLA_SetTypeRestartTime for ScalosControl(). 20011008 JL - Menu commands "snapshotwindow" and "snapshotall" stayed disabled forever. Fixed name compare error in Prefs.c/CompareCommand(). - Replaced remaining 64bit integer arithmetic code by C version. 20011007 JL - Finished converting "Title.sca" to C. - Updated SCA_Title" autodocs for "Title.sca" class. 20011006 JL - Finished converting "FileTransfer.sca" to C. 20011005 JL - Replaced fixed version/revision strings in about window by text macros "%v" and "%r". - Added feature: Icons may now be selected by typing the first character(s) of their names, just as in WB 3.9. - Added feature: Cursors key can be used to select icon right/left/below/above the currently selected one. - Finished converting "DeviceList.SCA" to C. 20011005 JL - Bumped revision to 40.13. 40.12 20011004 JL - When converting WindowClass to C, I somehow dropped one line of code and forgot to clear a window's UserPort before closing the window. So it could happen that IntuiMessages in the wt_IconPort already had got freed by Intuition on closing the corresponding window, leading to corrupted messages. 20011001 JL - SCA_WBStart() didn't work for icons with "CLI" or "REXX" tooltypes. Fixed. 20010930 JL - Wbstartup sometimes skiped icons with free positions (Unshapshot). Fixed. 20010929 JL - Finished converting Root class to C. 20010928 JL - Now all window, menu and wbl processes inherit the original workbench path. 20010926 JL - Added support for WBAPPMENUA_CommandKeyString (OS3.9) and separator bars to SCA_NewAddAppMenuItem(). 20010924 JL - Finished converting TextWindow class to C. 20010922 JL - Finished converting IconWindow class to C. 20010916 JL - Finally fixed long-standing problems with simultaneous multiple window updates (Enforcer hits, icons appearing twice, etc.). 20010910 JL - Fixed problem reading large directories containing icons with both fixed and free positions. Icons with "free" positions were placed at the end of each block read, and could be overlapped by an icon read later with a fixed position. 20010908 JL - Bumped revision to 40.12. 40.11 20010907 JL - In Icon windows, icons without associated objects were not displayed with "Show all files" setting. Fixed. 20010906 JL - Text windows now show "Trashcan" in size column for trashcan drawers. - Icons of type WBDISK are hidden in text windows with "Show only icons". 20010904 JL - Major changes in text window directory scanning. Now icons without associated object are displayed in text windows with "Show only icons". 20010903 JL - Text windows now show "Drawer" in the size column for drawers. 20010902 JL - Changed number format for file sizes to "%lU", using localized display format. - Finished converting window class to C. - Finished converting text icon class to C. 20010901 JL - Deleting left-out object now always updates ".backdrop" files. - Left-out icons got the "put away" menu item disabled when updated (e.g. by adding tooltypes). Fixed. 20010831 JL - Windows can now be scrolled with the arrow keys (only if no icons are selected in window). 20010830 JL - Did some changes to the asm class macros to make the class engine more "C-friendly". 20010828 JL - Moved Scalos .catalog files in archive from catalogs// to catalogs//Scalos/. - Now .catalog files are ignored if their version is <40, avoiding trouble with wrong messages. 20010819 JL - Added distinct pens for the dragging info text. - Additional checks on plugin initialization - Now erroneously added menu plugins should no longer cause Scalos to crash on startup. - CloseWorkBench() from VisualPrefs Task didn't work. Fixed. - CloseWorkBench() will not close Scalos while there are active "Scalos_Async_Backfill" processes. - Bumped revision to 40.11. 40.10 20010817 JL - Repaired bug in updateicon which sometimes caused icons to appear in incorrect windows. 20010815 JL - Duplicating/cloning items now pops up the file copying progress window. - Dragging multiple icons now shows one or two text lines under pointer telling how many files and drawers are being dragged. - Fixed severe bug in wbl.c : WBNode's were allocated with AllocVecPooled() and freed with FreeVec(). 20010814 JL - Added a varargs version of SCA_ScreenTitleMsg(). - Added flag to switch between Flag: old dragging (all icons visible) and new "icon stack". - Added new SCA_ScalosControl() tags SCALOSCTRLA_GetOldDragIconMode and SCALOSCTRLA_SetOldDragIconMode. - IconWinCheckUpdate() now correctly updates INF_DefaultIcon flag and INF_SupportsLeaveOut attribute. 20010811 JL - Missed a CurrentDir() when renaming objects, leading to a directory lock getting never UnLock()ed. - When D&D copying or moving icons, "Replace All" and "Abort" now should work correctly. - Message strings "xxx already exists" are now different when moving and copying objects. - When moving icons inside window and new position overlaps other icon, the moved icons now jump back to their original positions. - Bumped revision to 40.10. 40.9 20010811 JL - THEME:SplashBackground was never freed, leaving a Lock on it. Fixed. - CLI and ARexx default tools icons didn't work in text windows. fixed. 20010809 JL - Enabled deadlock detection for lasso operations. 20010808 JL - Additional check for NULL wt_LateIconList in cleanup(). - Text windows now again display "#?.info" files (icons). - Forbid drag-copying or -moving icon into own sibling window or on sibling icon to avoid move errors or endless recursion. 20010807 JL - Fixed multiple problems with text window updates. 20010806 JL - Added semaphore locking to protect from two or more Scalos tasks opening or closing windows at the same time. - Fixed broken "copy by dragging on drawer icon". - Added additional checking to prefs file notification. - Bumped revision to 40.9. 40.8 20010804 JL - Worked around semaphore deadlock in SetIconMenuOnOff(). This one occured when copying multiple directories between text windows. 20010803 JL - Copying/moving of (left-out) drawers, tools, or projects from main window to any drawer window didn't work. Fixed. - Dragging a device icon into an icon window (copying device into directory) no longer results in requester "DEVICE: already exists ....". - Bug #29 : Dragging a device icon into an icon window where a drawer with the name of the device (w/o ":") already existed: Nothing happened. Fixed. - left-out icons no longer show up in text icon windows. - "leave out" and "put away" now correctly update text windows. - Increased size of text window + tooltip date and time fields from 16 to 80 bytes. - Added date/time string length checking to ScaFormatDate(). 20010802 JL - Fixed a race condition between DrawDrag() and DragEnter() that could block window when trying to auto-remove icons. - Finally fixed icon masking problem with PAL Hires-Laced screen. When "Auto Remove Icons" was turned on, dragged icons left garbage at their original position until finally dropped. Problem finally solved without setting friend BitMap to NULL. 20010731 JL - Added preferences selectable pens for ToolTip text and background. - Due to an incompatibility in Palette.prefs, I renamed it to "Palette13.prefs" . Scalos uses old "Palette.prefs" if no "Palette13.prefs" found. To create new prefs file, either copy old "Palette.prefs" to new "Palette13.prefs" or load Palette prefs editor and use "Save" button to generate new "Palette13.prefs". 20010729 JL - Added check for deleting files of an undefined DirEntryType. - For SoftLinks, ToolTips showed name of link target instead of link name. Fixed. - Bumped revision to 40.8. 40.7 20010729 JL - Dropped Popupmenu.library for icon ToolTip display and added own layouting and rendering code. 20010728 DM + Added check for copying files of a non-specific DirEntryType. Copies files correctly across Samba network, deleting files seems to work OK with the current code. 20010728 JL - Moved ToolTip display to separate task. 20010727 DM + Fixed corrupt logo and text in about and splash windows by setting all allocated bitmaps to have no friend bitmap 20010726 JL - Added AttempLockLayerRom() around icon ToolTip display routine in order to avoid deadlocks. 20010724 JL - Due to Mike's request, increased minimum window width by 20. 20010723 JL - Added "scalos/icandy" environment variable on startup and set contents to "2". - Changed every copyright string to "© 1999-2001 The Scalos Team". - Added "About" function to Menu and Palette preferences. 20010722 JL - Changing palette prefs now closes and reopens Scalos, no matter if the "DisableCloseWorkbench" flag is set. 20010721 JL - "put away" command didn't work with icons without associated objects. Fixed. - "Scalos Menu" : added new menu commands "viewbysize" and "viewbydate". - "Disk.info" icons of type WBDISK will no longer appear inside drawer windows. - Switching window view mode while window is reading icons no longer causes window to close. - SCCM_IconWin_RemIcon now updates window's virtual size and adjusts sliders. 20010720 JL - Bumped revision to 40.7. 40.6 20010718 JL - Double-clicking tool icons in text windows didn't start execute command. Recognition of default icons in text windows didn't work when starting programs. Fixed. 20010717 JL - Found a icon masking problem with PAL Hires-Laced screen. When "auto remove icons" was turned on, dragged icons left garbage at their original position until finally dropped. Problem (mask BitMap and icon BitMap having different format, recognizable by different "BytesPerRow" values for equeal width) at least partially solved by setting friend BitMap to NULL if (Depth <= 8). 20010716 JL - Empty lines in ".backdrop" files should be ignored now. - CloseWorkBench() from IPrefs Task didn't work. Fixed. 20010715 JL - Text windows sometimes swallowed first character of file comment. Fixed. 20010713 JL - "Replace All" now works when drag-copying multiple objects. 20010712 JL - "select contents" now deselects all icons in non-selected windows. - "clear selection" now deselects all icons in all windows. 20010711 JL - Plugin libraries are now flushed on scalos exit. - Fixed possible problem with missing ScaWindowTask parameter on FreeIconList(). - Bumped revision to 40.6. 40.5 20010708 JL - CheckMouseIcon() didn't work with negative coordinates. Fixed. - text windows initially opened with do_CurrentX < 0 in icon displayed icon text at incorrect position. Fixed. 20010707 JL - When reading a directory, icons are no longer checked if they overlap each other. - converted SCA_OpenIconWindow() to C. - Bumped revision to 40.5. 40.4 20010706 JL - Enabled "snapshot window" and "snapshot all" for root window again. 20010705 JL - Changed locking in DrawDrag() - first call. When "Auto remove icons" was enabled, Icons sometimes didn't get ghosted properly due to DRAGFLAGF_WindowLocked set. - Changed initial value for unused oldDir Locks from NULL to $ffffffff, to avoid trouble with pr_CurrentDir = NULL (at the end of functions, CurrentDir() never got reset to initial value when that value was NULL). - AmigaDos menu commands failed to skip trailing '"' if command name is surrounded by '"', e.g. "SYS:xyz" executed with '"' as first argument. 20010704 JL - AmigaDos menu commands now inherit the workbench path. - Bumped revision to 40.4. 40.3 20010704 JL - ReadIcon() didn't respect the "show only icons" setting for text windows, so all files appeared after automatic window update. 20010703 JL - changed detection for WMFLAG_IsVirtualSize (sizetofit menu command enabling), now also enabled if window is larger than necessary to hold icons. 20010702 JL - Screen menu items are now enabled/disabled each time SCCM_IconWin_SetVirtSize is applied (i.e. after any change in window size). 20010630 JL - Forgot to set Flag in ReadTextWindowIconList(), so all text icons were treated as if on a write-protected disk. - Bumped revision to 40.3. 40.2 20010629 JL - Fixed more problems run AmigaDOS menu commands without path. 20010628 JL - SnapshotWindow() sometimes wrote icon to wrong directory. Fixed. - Added wt_UpdateSemaphore locking for "update" command. - Bumped revision to 40.2. 40.1 20010627 JL - BltMaskBitMapRastPort() used incorrect MinTerm so Masking didn't work correctly. (e.g. logos in splash and about window on non-cybergraphics screen). 20010626 JL - CheckMouseIcon() didn't work when "Non-masked click area" was checked. Fixed. - Splash window didn't adjust logo when window was resized due to long message. Fixed. - ReadDatatypesImage() returned the original BitMap (PDTA_BitMap) instead of the remapped one (PDTA_DestBitMap). 20010624 JL - Due to extended library functions, bumped version to 40.1. 39.234 20010623 JL - Added SCA_ScalosControl() call to scalos.library. Only 3 tags supported yet, documentation still missing. 20010620 JL - About and Splash window can may load different logo images "THEME:ScalosSplashLogo" and "THEME:ScalosAboutLogo". If those files are not found, both windows fall back to "THEME:ScalosLogo". 20010617 JL - Due to an incompatibility in menu.prefs, I renamed it to "menu13.prefs" . Scalos uses old "menu.prefs" if no "menu13.prefs" found. To create new prefs file, either copy old "menu.prefs" to new "menu13.prefs" or load old "menu.prefs" in menu prefs editor and use "Save" button to generate new "menu13.prefs". 20010616 JL - Added new popup menu class for AppIcons. - "System Info" button in About window is disabled if sysinfo module cannot be found. - Opening new icon windows in iconified state could lead to each icon appearing twice after uniconifying window - Fixed. Now wt_LateIconList is cleared at the beginning of ReadIconList(). 20010615 JL - Fixed enforcer hits in about window when no scalos logo could be loaded. - RunMenuCommand() didn't work with CLI (=AmigaDos) commands without path, i.e. only filename specified. Fixed. - Icon tooltips no longer pop up when non-Scalos window is active. - Icon position for iconified Scalos windows can be specified in window icon with SCALOS_ICONIFIED_XPOS and SCALOS_ICONIFIED_YPOS. - Bumped revision to 39.234. 39.233 20010614 JL - AppIcon menu commands now support all WB3.5+ AMCLASSICON_... AppMessage class codes (e.g. Benchtrash information/snapshot/unsnapshot works). 20010613 JL - Due to common request, Bob functions now don't use chip memory if port "FBlit" is available. 20010610 JL - AppIcons always got IDTV_TextMode_Normal (no outline, no shadow). Fixed. 20010609 JL - ARexx menu commands now may have selected items as arguments. - Bumped revision to 39.233. 39.232 20010608 JL - Enabling/disabling popup menus now works correctly with nested sub-menus. 20010607 JL - Scalos now does a "Update all" instead of "Redraw" when detecting changed main prefs. 20010606 JL - Softlink sometimes could not be copied due to incorrect parent directory - Fixed. 20010605 JL - Fixed nasty bug in AllocVecPooled()/FreeVecPooled() : a6 was overwritten. - In text windows with "Show only Icons", non-existing objects (i.e. icons without corresponding objects) are no longer displayed (e.g. "disk"). - Disabled "Leave Out" for default icons. - Changed locking in TestPopup() to prevent deadlocks. 20010603 JL - Bug #4. Fixed crash when executing ARexx menu command. 20010602 JL - No tooltips are displayed for icon after clicking or double-clicking it. - Menu command "sizetofit" now also shrinks windows if appropriate. - Bumped revision to 39.232. 39.231 20010601 JL - Text windows with "Show only Icons" displayed data for icons instead of objects. Fixed. - Bug #13. Drawers inside of text windows no longer open always in text mode, but use the drawer icon settings instead. 20010530 JL - checkmouseicon() and QueryObjectUnderPointer() now take "Non-masked click area" setting into account. 20010529 JL - Fixed possible race condition with QueryObjectUnderPointer() by extending window list and wt_IconSemaphore locking. 20010526 JL - AppIcons now have popup menus (currently the same as tool icons) if is not 0. - Tooltips now recognize iconified scalos windows. 20010525 JL - Iconified window appIcons get the "WBAPPICONA_SupportsOpen, TRUE" Attribute. - Fixed error in SCA_NewAddAppIcon() - WBAPPICONA_Supports... tags didn't work. - Bumped revision to 39.231. 39.230 20010524 JL - No icon tool tips are displayed if icon has tooltype "SCALOS_NOTOOLTIPS". - Added new menu commands "sizetofit" and "clearselection". 20010523 JL - Scalos now passes a copy of the window lock as wa_Lock and wa_Name=NULL when no icons are selected (now OS3.9 Find work just as with Workbench). - Fixed a couple of problems with the new tooltip function. 20010519 JL - Bumped revision to 39.230. 39.229 20010519 JL - Fixed bug in QueryObjectUnderPointer() - did not work correctly if Workbench screen wasn't frontmost screen. 20010517 JL - Added check for ST_LINKFILE, ST_LINKDIR, ST_SOFTLINK before calling isLink(). - (OLD) After updating left-out (backdrop) icon, updating the associated disk icon created a new backdrop icon instead of refreshing the old one. Fixed. 20010515 JL - Replaced IDCMP_VANILLAKEY handling by IDCMP_RAWKEY in order to receive "key up" events. - Drag&Drag indicators (copy etc.) are now updated immediately when pressing or releasing qualifier key. 20010512 JL - About window now supports optional background image "THEME:AboutBackground". 20010510 JL - Added support for wheel mouse (icon/text window scrolling). 20010509 JL - Text windows didn't get refreshed properly after deleting icons. Fixed. 20010508 JL - Icon tooltypes sometimes were not recognized correctly. Fixed. - Bumped revision to 39.229. 39.228 20010507 JL - Changed method of soft link detection to a more system-friendly one. - Bumped revision to 39.228. 39.227 20010506 JL - Scalos no longer tries to load appchange'd AppIcons when their name contains invalid characters, i.e. ":/". - Scalos now uses AddPart() to add the name of the AppIcon to the "Default icons" path, to make sure there is always a "/" between path and file name. - Converted WBLtask to C. The "unable to load your tool ..." Request now offers to select a different tool via ASL requester. 20010504 JL - "Leave Out" didn't work for icons without associated files or drawers. Fixed. 20010501 JL - Icon menu items weren't enabled correctly in text windows. Fixed. - "View All" wasn't recognized when initially opening text windows. Fixed. 20010430 JL - Softlinks are now displayed with underlined names. This feature work only with iconobject.datatype 39.33 and later. (I saw that feature at Workbench 3.9 (with BoingBag 1) and immediately liked it). 20010429 JL - Text windows now distinguish between "Show All Files" and "Show Only Icons". - Bumped revision to 39.227. 39.226 20010428 JL - Splash window : added 10" timeout when waiting for update message reply. 20010427 JL - AppIcons now support the WBAPPICONA_Supports... tags. - Icon menu items are now enabled/disabled according to the icons properties, e.g. for icons on read-only media "delete" and "rename" is disabled. - Splash window now supports optional background image "THEME:SplashBackground". 20010424 JL - Fixed Enforcer hit in file/directory copying code when FileTransClassInstance was NULL. - CopyCommand didn't work with DestName != NULL (to perform "Copy As" function). Fixed. - Objects can now get duplicated (cloned) via D&D into same window with Control key held down. 20010422 JL - Window.c/QueryObjectUnderPointer() could crash if PtrLayer->Window was empty (NULL). Fixed. - Path Assign "THEME:" is set on program start to "Scalos:themes/default". - Bumped revision to 39.226. 39.225 20010421 JL - Fixed enforcer hits/crash opening window popup menu with empty (NULL) ws_Name. - MoveCommand() no longer complains when trying to move non-existing object. - Bumped revision to 39.225. 39.224 20010420 JL - Dropped drop zone rendering in separate layers and returned to complement drawing due to lack of performance. 20010417 JL - Logo gets loaded by datatypes.library from THEME:ScalosLogo - Defined C names for all library bases. 20010415 JL - Region didn't get freed in class.c/SameWindow() if no icon was moved. Fixed. - Additional check for NULL window pointer in Scalos.c/LassoInit(). - moving icons in same window with "AutoRemove Icons = Off" didn't work properly because registers were trashed in main_subroutines.s/checkposition. Fixed. - Bumped revision to 39.224. 39.223 20010415 JL - Due to Mike's request, bumped revision to 39.223. 222x26 - Removed locking with DragDropSemaphore due to deadlock problems. - Changed rendering of window/icon drop zones from complement drawing to separate layers (in Requesters), hopefully eliminating all problems with garbage left in windows. 20010414 JL - Changed to utilize CatComp and its automatically generated locale header files. All localized string are now in "Scalos.cd". Tested with CatComp 44.6. 20010413 JL - Bumped version to 222x26. 222x25 20010413 JL - Fixed crash when icon window was closed or iconified while reading icons and drawer contained more than 20 icons. 20010412 JL - (OLD) Fixed another icon window cleanup bug - icons were incorrectly positioned under certain conditions so that icon text could overlap other icons. 20010411 JL - Lasso selection didn't respect window limits when selecting icons. Fixed. 20010410 JL - CLIStart() crashed with type WBTOOL icons. Fixed. - (OLD) SCA_OpenIconWindow() didn't work with SCA_Iconify tag. Fixed. 20010409 JL - Lasso didn't correctly calculate window left and top offsets. Fixed. - Popup menus now have two title lines, with the type of object in the first line and the name of the object in the second one. 20010407 JL - File move and copy routiones rewritten from scratch. Extensive error checking when moving/copying objects. Requester when trying to overwrite existing objects while moving/copying. - Created locking mechanism (via DragDropSemaphore) to prevent window updates during D&D. 20010404 JL - Renaming left-out icons will no longer lose their position. 20010403 JL - Changed window refresh after file system notify : icon update is held back until 2s after last update request. Fixes lengthy repeated icon window updates after changing many items (e.g. "Select All", then "UnShapshot"). - Implemented drag threshold, i.e. icons have to be moved more than 4 pixels until drop zone indicator is drawn. THE AMOUNT OF 4 PIXELS SHOULD BE MADE USER SELECTABLE IN PREFERENCES. 20010402 JL - When modifying icons, Icons used to disappear if no associated file existed. Fixed. 20010401 JL - Icon just left out did not disappear from desktop when volume (disk) was removed. Fixed. - Icons could be "left out" multiple times, leaving several lines in ".backdrop". Fixed. 20010331 JL - Fixed bug #25 - D&D didn't copy to drawer icon left out on the desktop. 20010330 JL - Bumped version to 222x25. 222x24 20010329 JL - (OLD) ".backdrop" files are now updated when renaming objects. Fixed bug #22. 20010328 JL - Fixed OLD bug in root_handlemessages - stack could be corrupted if message without handler routine was encountered. Possibly also fixes long-standing bug #21. 20010327 JL - Text mode windows used to show "#?.info" files when UseExAll was off. Fixed. 20010325 JL - (OLD) Fixed enforcer hits/Alerts with "leave out" and "put away". - (OLD) Leave out didn't work if .backdrop had a length of 0 bytes. Fixed. 20010325 JL - Bumped version to 222x24. 222x23 20010324 JL - Rename.module, newdrawer.module and delete.module now trigger window updates on completion. - On completion of rename.module, objects are checked if they have been renamed and window names are adjusted if necessary (bug #16 finally wiped out). 20010323 JL - Lasso selection now only affects visible icons (same behaviour as Scalos 2.1d) 20010321 JL - Hopefully fixed multiple text window refresh problems. - Removed forced D&D source update. 20010320 JL - Window drop box was drawn incorrectly for text windows. Fixed. - Added new text window methods : SCCM_TextWin_BeginUpdate, SCCM_TextWin_EndUpdate. - Changed text window method SCCM_IconWin_RemIcon from no-op to working icon removal. 20010319 JL - Fixed serious bug in GetTextIcon_Fib() : Drop on text window icon caused many enforcer hits. - D&D onto text icon drawers didn't work. Fixed. - IconWinCheckUpdate() now also works work text windows. 20010318 JL - Converted text window icon reading code to C. - Text windows displayed date+time incorrectly : last digit was shown twice. Fixed. - Text window columns now always are wide enough to show column title (e.g. empty drawer in text mode only used to show the last column spanning all window width) - IconActive flag didn't get updated corrected when lasso-selecting icons. Fixed. - Left mousebutton click toggles icon selection state when shift pressed. 20010317 JL - Bumped version to 222x23. 222x22 20010317 JL - Text mode windows used incorrect font. Inserted missing SetFont() in DrawTextGadgets(). Special indicator bobs were broken with system bob routines. Fixed. 20010317 JL - Bumped version to 222x22. 222x21 20010317 JL - ReadIconList() failed when called from different WindowTask (e.g. activate Window #1, RMB click Window #2, select "Update" via popup menu). Fixed. - Icons in backdrop windows could be dragged to overlap each other. Fixed. - At D&D operations, the first argument (file/drawer) didnþt get freed. Fixed. 20010316 JL - Prefs option "Hide hidden files" now hides files starting with "." (only in functions converted to C yet). - Drag/Drop copy/move forces check for update on source. - Changed D&D special indicator handling: * special bobs initially added to separate list instead of adding to srgh_boblist and then moved to special bob list. * drgh_boblist protected by semaphore to prevent DrawDrag() until InitDrag() finishes. 20010315 JL - Icon drop marks during menu popup didn't get erased properly in simple-refresh windows. fixed. 20010314 JL - Fixed directory-reading bug with empty file names or files ".info". - special D&D indicators are now always drawn solid. 20010313 JL - Fixed (self-introduced) Bug in DragDropBobs.c : BlitTrans() handled masks incorrectly when width was a multiple of 16. - Bob functions now don't use chip memory if CyberGfxBase is available. 20010312 JL - Squished Bug #17 : Text window column headers no longer flicker when MMB is held down and mouse is moved. 20010310 JL - Removed layout bug in iconwindow cleanup (icons did overlap). 20010305 JL - Lasso() now always uses Screen->MouseX/MouseY coordinates. No more offsets between mouse position and lasso corner ! 222x20 20010303 JL - PopupMenu now visually indicates selected icon. - Popup menus work without selecting window now (if any Scalos window is selected) 20010227 JL - finished converting main_dragdropbobs.s to C. - During D&D, special indicators show if icon may not be dropped or icons are going to be copied. - During D&D, holding CTRL key forces copy (instead of move). 20010221 JL - During D&D, Icons leave a "shadow" at their original position if "Auto remove icons" is enabled. This Shadow is truly transparent if possible (CyberGfx + Screen depth > 8) and enabled in preferences, else it is drawn "ghosted". 20010220 JL - Removed old bug in copyfiles - after a read error, Scalos didn't stop, but tried to write 0xffffffff bytes to the destination. 222x17 20010217 JL - ported all xxxDrop() stuff to C. Changed ScaBob and ScaBob2 member names to avoid conflicts with Gels Bobs. 20010216 JL - Fixed old bug in execomprog, formatdiskprog, shutdownprog, renameprog, newdrawerprog, deleteprog, emptytrashprog : TagList for SBA_WBStart() wasn't set, a1 contained garbage. 20010211 JL - Bug #30: Removed GM_HITTEST from TextIconClass. Now TextIcons can be selected Bug #19: Text window cleanup now works. - by clicking anywhere in the line, not only the name field. 20010209 JL - Fixed bug Scalos crashing on quit with drawer windows open 20010207 JL - Pulled nasty bug introduced by early plugin init in ReadDiskPlugin1 20010129 JL - Added new IconWindow methods SCCM_IconWin_DragEnter, SCCM_IconWin_DragLeave, SCCM_IconWin_DragQuery. - Added Qualifier to SCCM_IconWin_DragDrop. - Added global Variable "Default_StackSize". - Added Support for ToolType "DONOTPROMPT" in conjunction with old ToolType "CLI". - Moved all datat structure definitions to file "scalos_structures.i". - Created C header file "scalos_structures.h". - Actual Plugin Data (e.g. instance size) is read before MakeClass() - Changed view of dragging selected icons to dragging a "stack" of max. 3 icons - When dragging, icons/windows indicate where things may be dropped. - Lasso activates icons on the fly now. - Popup menu titles reflect icon names. 20010113 JL - Ported to assemble with PhxAss. PhxAss doesn't like constructs like "iconnode\.node" so I put a prefix on all structure members e.g. "in_node". 39.220 20010111 DM - Converted Juergen's fixes to values instead of constants, AsmOne seems to not like some of the included OS files - in various files 20001231 MC0002 - Added includes for various lvo/#?.i 20001230 MC0001 - Added exec/libraries.i for LIB_VERSION() macro and OS3.5 asm includes for workbench.library, imageclass.i 20001217 DM000A - Removed include file main_about.s - all code now in C! 20001212 DM0009 - Added some code for calling debug startup/shutdown C functions 20001122 DM0007 - Removed about_pattern from main_tables.s and put into about.c (the only place that was using it) All logo stuff moved from main_scalos.s to main_about.s (only place it is used) 2000 DM0006 2000 DM0005 20001114 DM0004 - started converting the about requester and related code to C as a test of how painful this is going to be :) 20001107 DM0003 - added the includes imports.i and exports.i. used for when combining with C code. Also added workaround for symbol export bug in AsmXXX 20000903 DM0002 - Bumped version and date to 39.220 (1.2c) and 3/9/00 - Fixed enforcer hit when there is no main menu prefs file on startup - Noticed that main menu prefs aren't read in with prefslib! 39.219 20000726 DM0001 - Altered some lines in readmainprefs routine so that scratch registers are reloaded before use 19991130 CDH0001 - Added code for new "formatdisk" command from Menu Prefs 19991204 CDH0002 - Added code for "SystemInfo.module" from About requester 19991205 CDH0003 - Added code for new "shutdown" command from Menu Prefs Scalos main Preferences 40.13 20040827 +jl+ - Added passing of tooltypes on to prefs plugins. 40.12 20040718 +jl+ - Added font preview for icon font, and text window font. - In the "drag and drop" section, added new qualifier input field for "Create links" and "Force move". - On the "Miscellaneous" page, added a cycle gadget to select the type of links Scalos generates. 40.11 20040516 +jl+ - Added new prefs page for TrueType font settings. TT Font selection is available for icons, text windows and tooltips and the "About" window ("Screen font"). - Added checking for custom MUI MCCs and MCC versions. - Enabled "Multiple Lines" switch for icon text. 40.10 +jl+ - Rearranged prefs pages - created new prefs group "Drag and Drop". 40.9 40.8 20040111 +jl+ - Added slider for degree of default icon drawing transparency. - Transparency settings and "Custom" bob routines are now disabled when noo CyberGfx library found or when Workbench screen has no more than 256 colours. 40.7 20040107 +jl+ - Several Datatypes images were no longer visible after iconify/uniconify. Fixed. - Added icon for iconified state. 40.6 20040101 +JL+ - Added gadget to adjust Scalos default stack size. 40.5 20031227 +jl+ - Replaced MUI NFloattext class by Floattext. 40.4 20031218 +jl+ - Updated Scalos URL to "scalos.noname.fr". 40.3 20031216 +jl+ - Added missing load/save functions for Tooltip delay 40.2 20031117 +jl+ - "Add plugin" command erroneously cleared internal plugin list. - Changed module image display from TransferAnimObject to DataTypesMCCObject. 40.1 20030104 +jl+ - Rewritten from scratch, based on code by Budda. 20030710 +JL+ - Initial release 40.1 Scalos FileTypes Preferences 40.6 20041111 +jl+ - Replaced Assembler library startup code by C. No functional changes. 40.5 20040828 +jl+ - Added menu option and tooltype to hide all empty filetype entries. 40.4 20040703 +jl+ - Added font preview to TTTFONT editing window. 40.3 20040222 +jl+ - Changing the "create icons" menu item had no effect. - Added TrueType font support for ToolTips (new TTFONT attribute for STRING). 40.2 20040108 +jl+ - Added icon for iconified state. - Bugfix: Fixed handling of internal "modified" flag. - Added lamp indicator for "modified" flags. 40.1 20031211 +JL+ - Initial release 40.1 Scalos Menu Preferences 40.12 20041111 +jl+ - Replaced Assembler library startup code by C. No functional changes. 40.10 20040424 +jl+ - Bugfix: Fixed handling of internal "modified" flag. - Added lamp indicator for "modified" flags. - Menu command "Merge" erroneously cleared the existing entries before importing the new ones. Fixed. 40.9 20040222 +jl+ - Changing the "create icons" menu item had no effect. 40.8 20040108 +jl+ - Added icon for iconified state. 40.7 20030831 +JL+ - Moved core functionaility to "MenuPrefs.prefsplugin". 40.6 20030712 JL - Bugfix: Removed memory leak in CLI startup code. 40.5 20030531 JL - Bugfix: Popup button for IconWindow command entries now only accepts directories. - Bugfix: Closing command popup ASL requester with "Ok" button failed to enter filename into Listview element. - Improvement: command popup ASL requester now defaults to "Scalos:Plugins/Menu/" directory for menu plugins. 40.4 20030424 JL - Several bugfixes that affect renaming of menu items. - for Workbench commands, stack size and priority are taken from icon, if available. 40.2 20030223 JL - Added checking of menu level and number of menu items. It is no longer possible to add a new menu to a SubMenu, or to add more than 64 MenuItems to a menu, or to add more than 32 Entries to a sub menu. 40.1 20021226 JL - Rewritten from scratch in C. Scalos Palette Preferences 40.7 20041111 +jl+ - Replaced Assembler library startup code by C. No functional changes. 40.6 20040424 +jl+ - Bugfix: Fixed handling of internal "modified" flag. - Added lamp indicator for "modified" flags. - Changing the "create icons" menu item had no effect. 40.5 20040121 +jl+ - Number of allocatable pens was too small by 1. Fixed. 40.4 20040108 +jl+ - Added icon for iconified state. 40.3 20030831 JL - Moved core functionaility to "PalettePrefs.prefsplugin". 40.2 20030712 JL - Bugfix: Removed memory leak in CLI startup code. 40.1 20020601 JL - Added display for number of currently allocated and available pens. 20011225 JL - Rewritten from scratch in C. - Added separate pens for selected icon text, icon text outline, and icon text shadow. Scalos Pattern Preferences 40.8 20041111 +jl+ - Replaced Assembler library startup code by C. No functional changes. 40.6 20040426 +jl+ - Bugfix: Fixed handling of internal "modified" flag. - Added lamp indicator for "modified" flags. - Changing the "create icons" menu item had no effect. 40.5 20040108 +jl+ - Added icon for iconified state. 40.4 20030831 +JL+ - Moved core functionality to "PatternPrefs.prefsplugin". 40.3 20030712 +JL+ - Bugfix: Removed memory leak in CLI startup code. 40.2 20030129 +JL+ - Bugfix: Bubble for preview gadget was broken. - Bugfix: switching between "tiled" and "fit size" didn't work. - Rewritten from scratch in C. Scalos LoadWB 1.4 20040108 jl - The functionality to wait until Scalos opens its first Window on the workbench screen can now be suppressed with NOWAIT. 1.3 20021005 JL - LoadWB now waits until Scalos opened its first Window on the workbench screen. This is to avoid problems with Birdie. picturedimensions.plugin 40.3 20040117 +jl+ +Added localization for message strings. 40.2 20030628 +jl+ +Fixed several memory leaks. 40.1 20021231 +jl+ +Initial release drawercontents.plugin 40.3 20040117 +jl+ +Added localization for message strings. 40.2 20030628 +jl+ +Fixed several memory leaks. 40.1 20030104 +jl+ +Initial release amigaiconobj35.datatype 40.7 20031220 jl +changed library from "struct Library" to "struct ClassLibrary" 40.6 20030420 jl +Added support for "borderless" flag. 40.5 20021201 jl +Enhanced cleanup - now does RemLibrary() on iconobject.datatype. 40.4 20020815 jl +Fixed possible enforcer hits in Expunge() 40.3 20020131 jl +Object pointer in A2 might have been set incorrectly under certain circumstances in OM_NEW/SetSuperImgBorders. 40.2 20020112 jl +Always sets IDTA_InnerLeft, IDTA_InnerTop, IDTA_InnerRight and IDTA_InnerBottom to 0 if icon has a RenderHook. 40.1 20020101 jl +Removed IDTA_InnerLeft and IDTA_InnerTop checks to enable frames around masked icons +Added support for IDTA_SupportedIconTypes tag. 39.31 20010627 jl +Fixed wrong register for GetCyberMapAttr() Attribute parameter. 39.30 20010508 jl +some instance data is now longword aligned 39.29 20010207 jl +fixed 2 byte memory overwrite error in ClearMemory 39.28 20010128 jl +Added Semaphore protection for memory pools 39.27 20010117 jl +Begin revision history amigaiconobject.datatype 40.5 20031220 +jl+ +changed library from "struct Library" to "struct ClassLibrary" 40.4 20021201 +jl+ +Enhanced cleanup - now does RemLibrary() on iconobject.datatype. 40.3 20020815 +jl+ +Fixed possible enforcer hits in Expunge() 40.2 20020113 +jl+ +More changes for enhanced compatibility for icons with borders. 40.1 20020101 +jl+ +Removed IDTA_InnerLeft and IDTA_InnerTop checks to enable frames around masked icons 39.24 20010514 +jl+ +fixed mean bug in clLayout - somehow two lines had disappeared. 39.23 20010511 +jl+ +fixed serious bug in clWrite. 39.22 20010508 +jl+ +some instance data is now longword aligned 39.21 20010128 +jl+ +Added Semaphore protection for memory pools 39.20 20010117 +jl+ +All memory allocations are now being done via memory pools. iconobject.datatype 40.12 20040814 +jl+ +Added support for new IODRAWF_NoEraseBg flag. 40.11 20040524 +jl+ +Added functionality to support TrueType fonts for icon text 20040611 +jl+ +Added support for splitting of icon text into multiple lines 20040611 +jl+ +Added support for transparent rendering of icon label shadow and outline (TrueType fonts only). 40.10 20031220 +jl+ +changed library from "struct Library" to "struct ClassLibrary" 40.9 20030420 +jl+ +Added support for per-icon "borderless" flag 40.7 20020928 +jl+ +Added IDTA_UserFlags get/set tag. 40.6 20020815 +jl+ +Fixed possible enforcer hits in Expunge() 40.5 20020321 dm +Fixed crash when GM_HITTEST was invoked with icon mask of NULL. 40.4 20020320 +jl+ +GM_HITTEST was broken when icon borders were > 0. 40.3 20020201 +jl+ +Added attribute tags IDTA_MaskBM_Normal and IDTA_MaskBM_Selected. 40.2 20020113 +jl+ +More changes for enhanced compatibility for icons with borders. 40.1 20020101 +jl+ +Added separate pens for selected icon text, icon text outline, and icon text shadow. 39.38 20011230 +jl+ +Major changes to support borders around os3.5 icons and NewIcons. 39.37 20010818 +jl+ +Added IDTA_Font attribute 39.36 20010617 +jl+ +SetAttr(IDTA_ToolTypes) now stores a COPY of the provided tooltype array. Copy gets freed on Dispose. 39.35 20010613 +jl+ +checks for "FBlit" on OpenLibrary and doesn't use any chip memory if found. 39.34 20010508 +jl+ +longword-aligned structure IconObjectInst. 39.33 20010429 +jl+ +Displays underlined text if IDTA_isLink is TRUE. 39.32 20010311 +jl+ +Uses no chip mem if cybergraphics is found. 39.31 20010209 +jl+ +Added missing "ret" in LibClose ... fixes crash on Scalos closing. 39.30 20010128 +jl+ +Added Semaphore protection for memory pools 39.29 20010117 +jl+ +All memory allocations are now being done via memory pools. 39.28 20010114 +jl+ +fixed memory leak with iobj_name newiconobject.datatype 40.5 20031220 +jl+ +changed library from "struct Library" to "struct ClassLibrary" 40.4 20021201 +jl+ +Enhanced cleanup - now does RemLibrary() on iconobject.datatype. 40.3 20020815 +jl+ +Fixed possible enforcer hits in Expunge() 40.2 20020113 +jl+ +More changes for enhanced compatibility for icons with borders. 40.1 20020101 +jl+ +Removed IDTA_InnerLeft and IDTA_InnerTop checks to enable frames around masked icons 39.24 20011206 +jl+ +Fixed reversed check for IOFREELAYOUTB_ScreenAvailable in idtm_freelayout. 39.23 20010714 +jl+ +Fixed bug in DTM_Write with IDTA_ToolTypes. 39.22 20010627 +jl+ +Fixed wrong register for GetCyberMapAttr() Attribute parameter. 39.21 20010508 +jl+ +some instance data is now longword aligned 39.20 20010128 +jl+ +Added Semaphore protection for memory pools 39.19 20010120 +jl+ +All memory allocations are now being done via memory pools. pngiconobject.datatype 40.12 20041111 +jl+ +Replaced Assembler library startup code by C. No functional changes. 40.11 20040915 +jl+ +Bugfix: icon mask generation clipped some pixels at right border. Fixed. 40.10 20040801 +jl+ +Default icons were not saved to the correct path. 40.9 20040523 +jl+ +Fixed severe memory trashing. Datatype used to overwrite random memory with some icons. 40.8 20040429 +jl+ +Datatype now correctly recognizes and renders AppIcons generated by PowerIcons. 40.7 20040226 +jl+ +Plugged several memory holes. 40.6 20040111 +jl+ +Added support for default icons via IDTA_DefType tag. 40.5 20040109 +jl+ +Now supports extra information about original object (Path+Name) for the determination of icon type. 40.4 20040105 +jl+ +Iconobjects now use DrawerData defaults from icon.library default icon of the same type. 40.3 20040104 +jl+ +Fixed severe bug that trashed random memory. Only occured with icons without fixed position. 40.2 20040102 +jl+ +Added optimization in alpha-blending routines. +Fixed trashing of icon image data during IDTM_Write. +Disk icons (WBDISK) were not recognized properly. 40.1 20011221 +jl+ +Initial version iconobject.library 40.4 20041110 +jl+ - Removed Assembler library startup code. No functional changes. 40.3 20021201 +jl+ - Improved cleanup code: FreeClassList() now calls RemLibrary() for each datatype. - Added capability to copy/cut/paste attributes. 40.2 20020815 +jl+ - Fixed possible Enforcer hit in Expunge() 40.1 20020101 +jl+ - Added new library function Convert2IconObjectA() wbrexx.plugin 39.18 20041113 jl +Replaced Assembler library startup functions by C code. No functional changes. 39.17 20031222 JL +Changed "OpenDrawerByName()" to make use of the Scalos iconobject datatypes. 39.16 20030112 JL +Removed some dependencies on undocumented internal Scalos data structures. 39.15 20021206 JL +Added "MENU INVOKE WINDOW.CLEANUPBY.NAME/DATE" "/SIZE/TYPE" functions. +Added "ICON MOVE IN/OUT" functions. +Added "MENU INVOKE WINDOW.RESIZETOFIT" function. 39.14 20021130 JL +Added "ICON ACTIVATE UP/DOWN/LEFT/RIGHT" functions. +Fixed order of which icons get select with "ICON CYCLE NEXT/PREV" function. 39.13 20020927 JL +Fixed bug in AddMenuItem() and AddKeyboardCommand() which could lead to crashed when trying to add items with already exiting names. 39.12 20020131 JL +Now supports adding menu subitems and new menus. Using this new features requires Scalos V40.20. 39.11 20011030 JL +Fixed serious initialisation problem in Scalos preview mode, leading to crash on any keyboard input. 39.10 20011020 JL +No longer initializes if Scalos is running in preview mode. 39.9 20011008 JL +Changed priority to -79 in order to make it work for text windows. +"ICON MAKEVISIBLE" didn't always work correctly for text windows. Fixed. 39.8 20010927 JL +Added missing MENU and KEYBOARD functions. +Fixed several bugs GETATTR function. 39.7 20010719 JL +Forgot to UnLock() lock in FindWindowByName(). Fixed. 39.6 20010718 JL +Changed matching algorithm in FindWindowByName(), important for all WINDOW commands. wb39.plugin 45.28 20041113 jl +Replaced Assembler library startup functions by C code. No functional changes. 45.27 20040612 JL +Fixed enforcer hits when text window icons were renamed with AsyncWB (Added translation of text icon types in ChangeWorkbenchSelectionA() ). 45.26 20040103 JL +Added several undocumented WorkbenchControl() tags, WBCtrl doesn't fail, however, not all values are used. +MaxCopyMem can now be changed via WorkbenchControlA() calls. 45.25 20031222 JL +Changed "OpenDrawerByName()" to make use of the Scalos iconobject datatypes. 45.24 20030112 JL +Removed some dependencies on undocumented internal Scalos data structures. 45.23 20020914 JL +Added support for V45 WBOPENA_Show and WBOPENA_ViewBy tags to OpenWorkbenchObjectA emulation. 45.22 20020110 JL +The AMTYPE_APPWINDOW AppMessages generated in AppWindow.c had wrong mn_Replyport. Fixed. 45.21 20011231 JL +Added support for "No Color Icons" and "No NewIcons" workbench prefs settings. 45.20 20011223 JL +Avoid excessive Scalos root window updates with AddHiddenDevice/RemHiddenDevice. 45.19 20011204 JL +Added support for (undocumented) CloseWB/OpenWB hook list. +Added Support for (undocumented) set/clear icon.library global screen. 45.18 20011129 JL +Added support for getting and setting delete, copy, and text input hooks (undocumented). 45.17 20011116 JL +fVolumeGauge was not longer checked. Fixed. +WB prefs are now checked each time a new device window is opened. 45.16 20011020 JL +No longer installs patches if Scalos is running in preview mode. 45.15 20011010 JL +Added proper handling for WorkbenchControl() tags WBCTRLA_SetTypeRestartTime and WBCTRLA_GetTypeRestartTime. 20011008 JL +Changed priority to -89. 45.14 20010714 JL After WBCTRLA_AddHiddenDeviceName and WBCTRLA_RemoveHiddenDeviceName, now does SCCM_IconWin_Update on root window. 45.13 20010708 JL When opening drawer windows, DDVM_BYICON now gets translated into IDTV_ViewModes_Icon. 20010623 JL Added full Support for WBCTRLA_GetDefaultStackSize and WBCTRLA_GetProgramList, using new SCA_ScalosControl() call. 20010524 JL HiddenDeviceList entries now get ln_Type=0x67 so Workbench prefs/IPrefs correctly removes old entries from list. 20010523 JL Added additional argument checking to myWorkbenchControlA() Added Semaphore protection for HiddenDeviceList 20010520 DM Some other small fixes 20010518 DM Hidden device list completely supported (needs devicefilter.plugin to actually hide devices). Hidden devices read from workbench prefs file (scalos_helper.c) 20010124 JL Fixed Malfunction of AddAppWindowDropZoneA() with WBDZA_Box persist.plugin 39.19 20041113 jl + Replaced Assembler library startup functions by C code. No functional changes. 39.18 20031222 JL - Changed "OpenDrawerByName()" to make use of the Scalos iconobject datatypes. 39.17 20020501 JL - "Persistant_Windows" file no longer is deleted during initialization. The advantage is, if Scalos crashed before the first window gets re-opened, the Persistant_Windows file is untouched. As soon as the first window opens, the Persistant_Windows file is rewritten. - The re-opened windows won't get activated (works with Scalos V40.22+). 39.16 20011228 JL - Disabled some Printf() calls. 39.15 20010803 JL - Reversed order in which windows are reopened. 39.14 20010730 JL - Changed name of prefs file from "ENVARC:Scalos/Persist.config" to "ENV:Scalos/Persist.prefs". - "Use_SCA_Iconify" now default to "1" if scalos.library version is at least 40. 39.13 JL - Name of persistant windows status file is now configurable in "ENVARC:Scalos/Persist.config". 39.12 JL - When re-opening drawer windows, DDVM_BYICON now gets translated into IDTV_ViewModes_Icon. 39.11 JL - when re-opening window in iconified state, now immediately adds entry in persist file (no SCCM_Window_Open will occur, so otherwise no entry would be generated at all). 39.10 JL - prefs file may contain comment lines beginning with "#". empty lines in prefs file will be ignored. iconified windows are remembered and re-iconified on startup. volumegauge.plugin 39.6 20041113 jl +Replaced Assembler library startup functions by C code. No functional changes. 39.5 20030112 JL +Removed some dependencies on undocumented internal Scalos data structures. 39.4 20011110 - some changes for compatibility with Scalos 40.14. deficons.plugin ./. 20031231 JL - Depracated since functionality has been integrated into Scalos main program. 45.6 20011230 JL - OpenLibraries was called twice. Fixed. - Added support for individually enabled/disabled icon types. xtwindows.plugin 40.5 20040102 JL - Adapted to changed OpenDrawerByName() function, now uses iconobject.library instead of icon.library. ScalosCtrl 40.16 20040104 JL + Added new CBS=COPYBUFFSIZE parameter. 20040102 - Added "QUERY" command line switch.
Content-Type: text/html scalosgfx.library ScalosGfxCreateEmptySAC ScalosGfxCreateSAC ScalosGfxFreeSAC ScalosGfxCreateARGB ScalosGfxFreeARGB ScalosGfxARGBSetAlpha ScalosGfxARGBSetAlphaMask ScalosGfxCreateARGBFromBitMap ScalosGfxFillARGBFromBitMap ScalosGfxWriteARGBToBitMap ScalosGfxMedianCut ScalosGfxScaleARGBArray ScalosGfxScaleBitMap ScalosGfxCalculateScaleAspect ScalosGfxBlitARGB ScalosGfxFillRectARGB ScalosGfxSetARGB ScalosGfxNewColorMap ScalosGfxARGBRectMult ScalosGfxBlitARGBAlpha ScalosGfxBlitARGBAlphaTagList ScalosGfxBlitIcon NAME ScalosGfxCreateEmptySAC -- Allocate an empty ScalosBitMapAndColor SYNOPSIS sac = ScalosGfxCreateEmptySAC( ) D0 struct ScalosBitMapAndColor *ScalosGfxCreateEmptySAC( void ); FUNCTION Allocates an empty ScalosBitMapAndColor structure, with NULL sca_BitMap and sac_ColorTable. INPUTS none RESULT sac - new created ScalosBitMapAndColor, or NULL on failure SEE ALSO ScalosGfxFreeSAC(), ScalosGfxCreateSAC() NAME ScalosGfxCreateSAC -- Allocate ScalosBitMapAndColor SYNOPSIS sac = ScalosGfxCreateSAC(width, height, depth, friendBM, tagList); D0 D0 D1 D2 A0 A1 struct ScalosBitMapAndColor *ScalosGfxCreateSAC(ULONG, ULONG, ULONG, struct BitMap *, struct TagItem *) struct ScalosBitMapAndColor *ScalosGfxCreateSACTags(ULONG, ULONG, ULONG, struct BitMap *, ULONG, ...) FUNCTION Allocate a ScalosBitMapAndColor structure. sac_BitMap and sac_ColorTable are allocated according to specified dimensions. INPUTS width - Desired width of new ScalosBitMapAndColor BitMap. height - Desired height of new ScalosBitMapAndColor BitMap. depth - Desired depth of new ScalosBitMapAndColor BitMap. Must be less than 256. sac_ColorTable will be allocated to hold 2^depth entries. friendBM - Friend BitMap to use for BitMap allocation. tagList - pointer to list of Tags, or NULL. TAGS None defined yet. RESULT sac - new created ScalosBitMapAndColor, or NULL on failure SEE ALSO ScalosGfxFreeSAC(), ScalosGfxCreateEmptySAC() NAME ScalosGfxFreeSAC -- free a previously allocated ScalosBitMapAndColor SYNOPSIS ScalosGfxFreeSAC(sac); A0 void ScalosGfxFreeSAC((struct ScalosBitMapAndColor *); FUNCTION Frees and deallocates a previously allocated ScalosBitMapAndColor, including sac_BitMap and sac_ColorTable. INPUTS sac - previously allocated ScalosBitMapAndColor, or NULL RESULT nothing SEE ALSO ScalosGfxCreateSAC(), ScalosGfxCreateEmptySAC() NAME ScalosGfxCreateARGB -- Allocate a gfxARGB with specified size SYNOPSIS argb = ScalosGfxCreateARGB(width, height, tagList) D0 D0 D1 A0 struct gfxARGB *ScalosGfxCreateARGB(ULONG, ULONG, struct TagItem *) FUNCTION Allocates an array of struct gfxARGB with sufficient size for specified width and height. INPUTS width - width of gfxARGB array height - height of gfxARGB array tagList - pointer to list of Tags, or NULL. TAGS None defined yet. RESULT argb - new allocated gfxARGB, or NULL on failure. SEE ALSO NAME ScalosGfxFreeARGB -- Free a previously allocated gfxARGB SYNOPSIS ScalosGfxFreeARGB(argb) D0 A0 VOID ScalosGfxFreeARGB(struct gfxARGB **) FUNCTION INPUTS argb - pointer to storage of previously allocated gfxARGB. argb may point to NULL. RESULT nothing SEE ALSO ScalosGfxCreateARGB() NAME ScalosGfxARGBSetAlpha -- Set all pixels to specified Alpha value. SYNOPSIS ScalosGfxARGBSetAlpha(src, alpha); A0 D0 VOID ScalosGfxARGBSetAlpha(struct ARGBHeader *, UBYTE) FUNCTION Alpha value of all pixels in the ARGBHeader and its previously allocated gfxARGB array is set to the specified value. INPUTS src - Header of gfxARGB rectangle to modify. alpha - Alpha (transparency) value to set. RESULT SEE ALSO ScalosGfxARGBSetAlphaMask() NAME ScalosGfxARGBSetAlphaMask -- Set alpha value according to mask plane SYNOPSIS ScalosGfxARGBSetAlphaMask(argbh, maskPlane) A0 A1 VOID ScalosGfxARGBSetAlphaMask(struct ARGBHeader *, PLANEPTR) FUNCTION Alpha values of all pixels in the ARGBHeader and its previously allocated gfxARGB array are set according to mask plane, i.e. for every bit set in mask plane, alpha is maximum (255), and for every cleared bit, alpha is set to minimum (0). INPUTS argbh - Header of gfxARGB rectangle to modify. maskPlane - Single bit mask plane. Dimensions must match size of argbh, with width rounded up to next 16-bit. RESULT nothing SEE ALSO ScalosGfxARGBSetAlpha() NAME ScalosGfxCreateARGBFromBitMap -- Create gfxARGB array from a BitMap SYNOPSIS argb = ScalosGfxCreateARGBFromBitMap(bm, width, height, numberOfColors, colorTable, maskPlane D0 A0 D0 D1 D2 A1 A2 struct gfxARGB *ScalosGfxCreateARGBFromBitMap(struct BitMap *, ULONG, ULONG, ULONG, const ULONG *, PLANEPTR) FUNCTION Allocates and a gfxARGB array with specified dimensions, and fills it from provided BitMap, with optional mask plane. Works only with standard BitMaps with less than 256 colors. INPUTS bm - source BitMap to fill gfxARGB array from, Depth must be less than 256 colors. width - Width of gfxARGB array height - Height of gfxARGB array numberOfColors - number of entries in colorTable colorTable - Color table to use for BitMap maskPlane - Single bit mask plane. Dimensions must match width and height, with width rounded up to next 16-bit. May be NULL. RESULT argb - allocated gfxARGB array or NULL on failure. NOTES Use ScalosGfxFillARGBFromBitMap() for high-color or true-color BitMaps. SEE ALSO ScalosGfxFillARGBFromBitMap() NAME ScalosGfxFillARGBFromBitMap -- Fill previously allocated gfxARGB array from CGFX BitMap SYNOPSIS ScalosGfxFillARGBFromBitMap(argbh, srcBM, maskPlane) A0 A1 A2 VOID ScalosGfxFillARGBFromBitMap(struct ARGBHeader *, struct BitMap *, PLANEPTR) FUNCTION Fill a previously allocated gfxARGB array from a CyberGraphics BitMap. Can only be used for high-color or true-color BitMaps. If maskPlane if given, alpha information in argbh is created from maskPlane. If maskPlane if NULL, alpha channel from source BitMap is used if available, otherwise alpha is set to opaque. INPUTS argbh - completely initialized gfxARGB array srcBM - source BitMap to use for filling, depth must be at least 65536 colors maskPlane - Single bit mask plane. Dimensions must match width and height, with width rounded up to next 16-bit. May be NULL. RESULT nothing NOTES Use ScalosGfxARGBSetAlpha() for standard BitMaps (i.e. less than 256 colors). SEE ALSO ScalosGfxCreateARGBFromBitMap() NAME ScalosGfxWriteARGBToBitMap -- Copy gfxARGB array to BitMap SYNOPSIS ScalosGfxWriteARGBToBitMap(argbh, bm, numberOfColors, colorTable) A0 A1 D0 A2) VOID ScalosGfxWriteARGBToBitMap(struct ARGBHeader *, struct BitMap *, ULONG, const ULONG *) FUNCTION Creates a copy of gfxARGB array in destination BitMap, using pre-defined colorTable. Works only with standard BitMaps, i.e. with less than 256 colors. No sophisticated color reduction is performed, but bit-fit pens are decided via FindBestPen(). INPUTS argbh - gfxARGB array to read from bm - Standard BitMap to write to. BitMap must have less than 256 colors. numberOfColors - Number of entries in colorTable colorTable - color table to use for BitMap. RESULT nothing SEE ALSO NAME ScalosGfxMedianCut -- Create color-reduced BitMap from gfxARGB array SYNOPSIS sac = ScalosGfxMedianCut(argbh, depth, tagList) D0 A0 D0 A1 struct ScalosBitMapAndColor *ScalosGfxMedianCut(struct ARGBHeader *, ULONG, struct TagItem *) struct ScalosBitMapAndColor *ScalosGfxMedianCutTags(struct ARGBHeader *, ULONG, ULONG, ...) FUNCTION Allocate and fill a color-reduced BitMap and a best-match color table from gfxARGB array. Either ordered dithering or Floyd-Steinberg dithering will be used for best results. INPUTS argbh - gfxARGB array to read from depth - desired depth of generated BitMap, must be less than 256. tagList - array of tagItems, as desribed below, or NULL. TAGS SCALOSGFX_MedianCutFlags - Flags as described below. SCALOSGFX_MedianCutFriendBitMap - struct BitMap *, friend BitMap to use for allocating result BitMap SCALOSGFX_MedianCutReservedColors - ULONG, number of reserved (unused) color entries at start of generated color table. FLAGS SCALOSGFXFLAGF_MedianCut_FloydSteinberg - If set, Floyd-Steinberg dithering will be used for color reduction. RESULT sac - created ScalosBitMapAndColor pointer, or NULL on failure. SEE ALSO NAME ScalosGfxScaleARGBArray -- Scale given gfxARGB array SYNOPSIS argb = ScalosGfxScaleARGBArray(src, destWidth, destHeight, tagList) D0 A0 A1 A2 A3 struct gfxARGB *ScalosGfxScaleARGBArray(const struct ARGBHeader *, ULONG *, ULONG *, struct TagItem *) struct gfxARGB *ScalosGfxScaleARGBArrayTags(const struct ARGBHeader *, ULONG *, ULONG *, ULONG, ...) FUNCTION Scales given gfxARGB array to a new size. Supports both enlarging and shrinking gfxARGB arrays. INPUTS src - source gfxARGB array, will not be modified destWidth - desired width, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. destHeight - desired height, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. tagList - pointer to list of Tags, or NULL. TAGS SCALOSGFX_ScaleARGBArrayFlags - ULONG, specify some operation flags as listed below. FLAGS SCALEFLAGF_BICUBIC - allow bicubic scaling SCALEFLAGF_BILINEAR - allow bilinear scaling SCALEFLAGF_AVERAGE - allow average scaling SCALEFLAGF_DOUBLESIZE - allow intermediate step via double size, to improve quality SCALEFLAGF_CORRECTASPECT - allow correction of destWidth and destHeight to meet source aspect ratio. RESULT argb - Scaled copy of the source gfxARGB array SEE ALSO NAME ScalosGfxScaleBitMap -- Scale given BitMap SYNOPSIS bm = ScalosGfxScaleBitMap(sbma, tagList) D0 A0 A1 struct BitMap *ScalosGfxScaleBitMap(struct ScaleBitMapArg *, struct TagItem *) struct BitMap *ScalosGfxScaleBitMapTags(struct ScaleBitMapArg *, ULONG, ...) FUNCTION Scales given gfxARGB array to a new size. Supports both enlarging and shrinking gfxARGB arrays. INPUTS sbma - Structure with scaling parameters: sbma_SourceBM - The original BitMap. This BitMap is not modified. sbma_SourceWidth - Width of the source BitMap. sbma_SourceHeight - Height of the source BitMap sbma_DestWidth - Pointer to Width of resized BitMap, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. sbma_DestHeight - Pointer to Height of resized BitMap, might be internally corrected if SCALEFLAGF_CORRECTASPECT is set. sbma_NumberOfColors - number of entries in color table sbma_ColorTable - Color table for both source and resized BitMap. sbma_Flags - scaling flags: SCALEFLAGF_BICUBIC - allow bicubic scaling SCALEFLAGF_BILINEAR - allow bilinear scaling SCALEFLAGF_AVERAGE - allow average scaling SCALEFLAGF_DOUBLESIZE - allow intermediate scaling step with double size, to improve quality SCALEFLAGF_CORRECTASPECT - allow correction of destWidth and destHeight to meet source aspect ratio. sbma_ScreenBM - Firend BitMap used when allocating resized BitMap. tagList - pointer to list of Tags, or NULL. TAGS none defined yet. RESULT bm - Scaled copy of the original BitMap SEE ALSO NAME ScalosGfxCalculateScaleAspect -- Adjust scaling dimensions to source aspect SYNOPSIS ScalosGfxCalculateScaleAspect(sourceWidth, sourceHeight, *destWidth, *destHeight) D0 D1 A0 A1 VOID ScalosGfxCalculateScaleAspect(ULONG, ULONG, ULONG *, ULONG *) FUNCTION Adjusts either destWidth or destHeight according to aspect ratio of sourceWidth and soureHeight. INPUTS sourceWidth - Unscaled width. sourceHeight - Unscaled Height; destWidth - Pointer to desired scaled width. destHeight - Pointer to desired scaled width. RESULT nothing SEE ALSO NAME ScalosGfxBlitARGB -- Blit rectangle between two gfxARGB array rectangles. SYNOPSIS ScalosGfxBlitARGB(destARGB, srcARGB, destLeft, destTop, srcLeft, srcTop, width, height) A0 A1 D0 D1 D2 D3 D4 D5 VOID ScalosGfxBlitARGB(struct ARGBHeader *, const struct ARGBHeader *, LONG, LONG, LONG, LONG, LONG, LONG) FUNCTION Blits user-defined rectangle from srcARGB at specified position into destARGB. No alpha handling is performed, destination pixel values are simply replaced by source pixels. INPUTS destARGB - destination gfxARGB array srcARGB - source gfxARGB array destLeft - Left start position in destARGB. destTop - Top start position in destARGB. srcLeft - Left start position in srcARGB. srcTop - Top start position in srcARGB. width - Width of blitted rectangle. height - Height of blitted rectangle. RESULT nothing SEE ALSO NAME ScalosGfxFillRectARGB -- Blit two gfxARGB array rectangles SYNOPSIS ScalosGfxFillRectARGB(destARGB, fillARGB, left, top, width, height) A0 A1 D0 D1 D2 D3 VOID ScalosGfxFillRectARGB(struct ARGBHeader *, const struct gfxARGB *, LONG, LONG, LONG, LONG) FUNCTION Blits fillARGB at specified position into destARGB. No alpha handling is performed, destination pixel values are just replaced by source pixels. Blit always starts at (0,0) in fillARGB. INPUTS destARGB - destination gfxARGB array. fillARGB - source gfxARGB array. left - Left start position in destARGB. top - Top start position in destARGB. width - Width of blitted rectangle. height - Height of blitted rectangle. RESULT nothing SEE ALSO NAME ScalosGfxSetARGB -- Set entire gfxARGB array to given ARGB color SYNOPSIS ScalosGfxSetARGB(destARGB, fillARGB) A0 A1 VOID ScalosGfxSetARGB(struct ARGBHeader *, const struct gfxARGB *) FUNCTION Set all pixels in entire gfxARGB array to the given ARGB color. INPUTS destARGB - gfxARGB array to be changed. fillARGB - ARGB value to set pixels to. RESULT nothing SEE ALSO NAME ScalosGfxNewColorMap -- Allocate new color table for ScalosBitMapAndColor SYNOPSIS success = ScalosGfxNewColorMap(sac, colorMap, colorEntries) D0 A0 A1 D0 BOOL ScalosGfxNewColorMap(struct ScalosBitMapAndColor *, const ULONG *, ULONG) FUNCTION Allocates a new color table for ScalosBitMapAndColor. The new color table is filled with the RGB values from colorMap. Any previously color table in ScalosBitMapAndColor is freed. INPUTS sac - ScalosBitMapAndColor where to store new color table. colorMap - RGB values for new color table colorEntries - Desired number of entries in new color table RESULT success - TRUE if new color table was successfully allocated, FALSE on failure. SEE ALSO NAME ScalosGfxARGBRectMult -- Multiply RGB value with given factor SYNOPSIS ScalosGfxARGBRectMult(rp, numerator, denominator, xMin, yMin, xMax, yMax) A0 A1 A2 D0 D1 D2 D3 VOID ScalosGfxARGBRectMult(struct RastPort *, const struct gfxARGB *, const struct gfxARGB *, WORD, WORD, WORD, WORD) FUNCTION Multiplies RGB values of pixels within a specified rectangle with (numerator/denominator). Overflow is clipped to maximum RGB value (255). Works only with CyberGraphics generated, high-color or true-color BitMaps. Takes Layers in RastPort into account. INPUTS rp - RastPort with the BitMap to be modified. numerator - Scaling factor as numerator:denominator denominator - Scaling factor as numerator:denominator xMin - Left start of modified rectangle. yMin - Top start of modified rectangle. xMax - Right end of modified rectangle. yMax - Bottom end of modified rectangle. RESULT nothing SEE ALSO NAME ScalosGfxBlitARGBAlpha -- Alpha blit from gfxARGB array into RastPort SYNOPSIS ScalosGfxBlitARGBAlpha(rp, srcH, destLeft, destTop, srcLeft, srcTop, width, height) A0 A1 D0 D1 D2 D3 D4 D5 VOID ScalosGfxBlitARGBAlpha (struct RastPort *, const struct ARGBHeader *, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG) FUNCTION Blit a rectangular area from source gfxARGB array into destination RastPort. Alpha (transparency) information in source gfxARGB array is fully accounted for. Destination RastPort may have Layers. INPUTS rp - Destination, this RastPort is been drawn to. srcH - Source gfxARGB array destLeft - Left offset in destination RastPort. destTop - Top offset in destination RastPort. srcLeft - Left offset in source gfxARGB array. srcTop - Left offset in source gfxARGB array. width - Width of blit rectangle. height - Height of blit rectangle. RESULT nothing NOTES SEE ALSO ScalosGfxBlitARGBAlphaTagList() NAME ScalosGfxBlitARGBAlphaTagList -- Alpha blit from gfxARGB array into RastPort SYNOPSIS ScalosGfxBlitARGBAlphaTagList(rp, srcH, destLeft, destTop, srcSize, tagList) A0 A1 D0 D1 A3 A2 VOID ScalosGfxBlitARGBAlphaTagList(struct RastPort *, const struct ARGBHeader *, ULONG, ULONG, const struct IBox *, struct TagItem *) VOID ScalosGfxBlitARGBAlphaTags(struct RastPort *, const struct ARGBHeader *, ULONG, ULONG, const struct IBox *, ULONG, ...) FUNCTION INPUTS rp - Destination, this RastPort is been drawn to. srcH - Source gfxARGB array destLeft - Left offset in destination RastPort. destTop - Top offset in destination RastPort. srcSize - IBox defining both left/top offset in source gfxARGB array, and size of blit rectangle. tagList - pointer to list of Tags, or NULL. TAGS SCALOSGFX_BlitIconHilight - const struct ARGB *, ARGB value to use for highlighting.Its RGB values are added to the destination pixels, with clipping to 0..255 range. SCALOSGFX_BlitIconAlpha - const UBYTE *, specify alpha array for icon. SCALOSGFX_BlitIconTransparency - ULONG, specify alpha for icon, 0...255. RESULT nothing SEE ALSO ScalosGfxBlitARGBAlpha() NAME ScalosGfxBlitIcon -- Alpha blit from RastPort to RastPort SYNOPSIS ScalosGfxBlitIcon(rpBackground, rpIcon, left, top, width, height, tagList) A0 A1 D0 D1 D2 D3 A2 VOID ScalosGfxBlitIcon(struct RastPort *, struct RastPort *, ULONG, ULONG, ULONG, ULONG, struct TagItem *) VOID ScalosGfxBlitIconTags(struct RastPort *, struct RastPort *, ULONG, ULONG, ULONG, ULONG, ULONG, ...) FUNCTION Blit a rectangular area from rpIcon into rpBackground, with full alpha (transparency) support. This function supports RastPorts with Layers. INPUTS rpBackground - Target RastPort. rpIcon - Source RastPort. The BitMap of this RastPort is not modified. left - left start of blit in rpBackground top - top start of blit in rpBackground width - width of the blitting rectangle height - height of the blitting rectangle tagList - pointer to list of Tags, or NULL. TAGS SCALOSGFX_BlitIconHilight - const struct ARGB *, ARGB value to use for highlighting. Its RGB values are added to the destination pixels, with clipping to 0..255 range. SCALOSGFX_BlitIconAlpha - const UBYTE *, specify alpha array for icon. SCALOSGFX_BlitIconTransparency - ULONG, specify alpha for icon, 0...255. RESULT nothing SEE ALSO