home *** CD-ROM | disk | FTP | other *** search
- /* GadTools layout toolkit
- **
- ** Copyright © 1993-1995 by Olaf `Olsen' Barthel
- ** Freely distributable.
- */
-
- #include "gtlayout_global.h"
-
- VOID __regargs
- LTP_GetStorage(ObjectNode *Node)
- {
- if(Node -> Storage)
- {
- LONG Number = 0;
- STRPTR String = NULL;
-
- switch(Node -> StorageType)
- {
- case STORAGE_BYTE:
-
- Number = *(BYTE *)Node -> Storage;
- break;
-
- case STORAGE_UBYTE:
-
- Number = *(UBYTE *)Node -> Storage;
- break;
-
- case STORAGE_WORD:
-
- Number = *(WORD *)Node -> Storage;
- break;
-
- case STORAGE_UWORD:
-
- Number = *(UWORD *)Node -> Storage;
- break;
-
- case STORAGE_LONG:
-
- Number = *(LONG *)Node -> Storage;
- break;
-
- case STORAGE_ULONG:
-
- Number = *(ULONG *)Node -> Storage;
- break;
-
- case STORAGE_STRPTR:
-
- String = Node -> Storage;
- break;
- }
-
- switch(Node -> Type)
- {
- case CHECKBOX_KIND:
- case LISTVIEW_KIND:
- case MX_KIND:
- case CYCLE_KIND:
- case PALETTE_KIND:
- case SLIDER_KIND:
- case SCROLLER_KIND:
- #if defined(DO_POPUP_KIND) && defined(DO_BOOPSI_KIND)
- case POPUP_KIND:
- #endif
- #if defined(DO_TAB_KIND) && defined(DO_BOOPSI_KIND)
- case TAB_KIND:
- #endif
- #ifdef DO_GAUGE_KIND
- case GAUGE_KIND:
- #endif
-
- #ifdef DO_TAPEDECK_KIND
- case TAPEDECK_KIND:
- #endif /* DO_TAPEDECK_KIND */
-
- #ifdef DO_FRACTION_KIND
- case FRACTION_KIND:
- #endif
- Node -> Current = Number;
- break;
-
- case STRING_KIND:
- #ifdef DO_PASSWORD_KIND
- case PASSWORD_KIND:
- #endif
- Node -> Special . String . String = String;
- break;
-
- case INTEGER_KIND:
-
- Node -> Special . Integer . Number = Number;
- break;
- #ifdef DO_LEVEL_KIND
- case LEVEL_KIND:
-
- Node -> Special . Level . Level = Number;
- break;
- #endif /* DO_LEVEL_KIND */
- }
- }
- }
-
-
- /*****************************************************************************/
-
-
- VOID __regargs
- LTP_PutStorage(ObjectNode *Node)
- {
- if(Node -> Storage)
- {
- LONG Number = 0;
- STRPTR String = NULL;
-
- switch(Node -> Type)
- {
- case CHECKBOX_KIND:
- case LISTVIEW_KIND:
- case MX_KIND:
- case CYCLE_KIND:
- case PALETTE_KIND:
- case SLIDER_KIND:
- case SCROLLER_KIND:
- #if defined(DO_POPUP_KIND) && defined(DO_BOOPSI_KIND)
- case POPUP_KIND:
- #endif
- #if defined(DO_TAB_KIND) && defined(DO_BOOPSI_KIND)
- case TAB_KIND:
- #endif
- #ifdef DO_GAUGE_KIND
- case GAUGE_KIND:
- #endif
-
- #ifdef DO_TAPEDECK_KIND
- case TAPEDECK_KIND:
- #endif /* DO_TAPEDECK_KIND */
- Number = Node -> Current;
- break;
-
- #ifdef DO_FRACTION_KIND
- case FRACTION_KIND:
-
- if(Node -> Host)
- Number = (LONG)LT_String2Fixed(((struct StringInfo *)Node -> Host -> SpecialInfo) -> Buffer);
- else
- Number = Node -> Current;
-
- break;
- #endif
-
- #ifdef DO_PASSWORD_KIND
- case PASSWORD_KIND:
-
- String = Node -> Special . String . Original;
- break;
- #endif
-
- case STRING_KIND:
-
- if(Node -> Host)
- String = ((struct StringInfo *)Node -> Host -> SpecialInfo) -> Buffer;
- else
- String = Node -> Special . String . String;
-
- break;
-
- case INTEGER_KIND:
-
- if(Node -> Host)
- Number = ((struct StringInfo *)Node -> Host -> SpecialInfo) -> LongInt;
- else
- Number = Node -> Special . Integer . Number;
-
- break;
- #ifdef DO_LEVEL_KIND
- case LEVEL_KIND:
-
- Number = Node -> Special . Level . Level;
- break;
- #endif /* DO_LEVEL_KIND */
- }
-
- switch(Node -> StorageType)
- {
- case STORAGE_BYTE:
-
- if(!String)
- *(BYTE *)Node -> Storage = (BYTE)Number;
-
- break;
-
- case STORAGE_UBYTE:
-
- if(!String)
- *(UBYTE *)Node -> Storage = (UBYTE)Number;
-
- break;
-
- case STORAGE_WORD:
-
- if(!String)
- *(WORD *)Node -> Storage = (WORD)Number;
-
- break;
-
- case STORAGE_UWORD:
-
- if(!String)
- *(UWORD *)Node -> Storage = (UWORD)Number;
-
- break;
-
- case STORAGE_LONG:
-
- if(!String)
- *(LONG *)Node -> Storage = (LONG)Number;
-
- break;
-
- case STORAGE_ULONG:
-
- if(!String)
- *(ULONG *)Node -> Storage = (ULONG)Number;
-
- break;
-
- case STORAGE_STRPTR:
-
- if(String)
- strcpy(Node -> Storage,String);
-
- break;
- }
- }
- }
-