home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / pOSxA.lzx / pOSxA / clib / gadtools_protos.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-12  |  6.7 KB  |  230 lines

  1. #ifndef __INC_POSA_CLIB_GADTOOLS_PROTOS_C
  2. #define __INC_POSA_CLIB_GADTOOLS_PROTOS_C
  3. /*******************************************************************
  4.  $CRT 10 Nov 1996 : hb
  5.  
  6.  $AUT Holger Burkarth
  7.  $DAT >>gadtools_protos.c<<   30 Jan 1997    18:52:57 - (C) ProDAD
  8. *******************************************************************/
  9. #pragma -
  10.  
  11. #define NOMYDEBUG
  12.  
  13. #ifndef  EXEC_TYPES_H
  14. #include <exec/types.h>
  15. #endif
  16. #ifndef  INTUITION_INTUITION_H
  17. #include <intuition/intuition.h>
  18. #endif
  19. #ifndef  UTILITY_TAGITEM_H
  20. #include <utility/tagitem.h>
  21. #endif
  22. #ifndef  LIBRARIES_GADTOOLS_H
  23. #include <libraries/gadtools.h>
  24. #endif
  25.  
  26. #include <p:pIntui/Tags.h>
  27. #include <p:pScreen/Screen.h>
  28. #include <p:proto/pExec2.h>
  29. #include <p:proto/pGfx2.h>
  30. #include <p:proto/pLayer2.h>
  31. #include <p:proto/pIntui2.h>
  32. #include <p:proto/pGadget2.h>
  33. #include <p:proto/pUtil2.h>
  34.  
  35.  
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. /*----------------------------------
  42. -----------------------------------*/
  43. struct Gadget *CreateGadgetA(ULONG kind, struct Gadget *gad,struct NewGadget *ng,struct TagItem *taglist)
  44.   {
  45.     pOS_Gadget *Gadget=0;
  46.     pOS_TagItem Tags1[]={
  47.       ICLTAG_Left,     ng->ng_LeftEdge,           // 0
  48.       ICLTAG_Top,      ng->ng_TopEdge,            // 1
  49.       ICLTAG_Width,    ng->ng_Width,              // 2
  50.       ICLTAG_Height,   ng->ng_Height,             // 3
  51.       ICLTAG_DrawInfo, (ULONG)ng->ng_VisualInfo,
  52.       ICLTAG_ID,       (ULONG)ng->ng_GadgetID,
  53.       TAG_MORE,        (ULONG)taglist
  54.     };
  55.  
  56.  
  57.     switch(kind) {
  58.       case BUTTON_KIND:
  59.         Gadget=(pOS_Gadget*)pOS_NewIObject(NULL,"buttongad.class",0,
  60.           IOBJTAG_String,   (ULONG)ng->ng_GadgetText,
  61.           ICLTAG_RelVerify, TRUE,
  62.           TAG_MORE, (ULONG)Tags1);
  63.         break;
  64.  
  65.       case INTEGER_KIND:
  66.       case STRING_KIND:
  67.         if(Tags1[3].ti_Data==0) {
  68.           struct pOS_DrawInfo *Dri=(struct pOS_DrawInfo*)ng->ng_VisualInfo;
  69.           Tags1[3].ti_Data=Dri->dri_StdHeight+2;
  70.         }
  71.         Gadget=(pOS_Gadget*)pOS_NewIObject(NULL,"strgad.class",0,
  72.           TAG_MORE, (ULONG)Tags1);
  73.         break;
  74.     }
  75.  
  76.     if(Gadget) gad->U.NextGadget=(APTR)Gadget;
  77.     return((APTR)Gadget);
  78.   }
  79.  
  80. struct Gadget *CreateGadget(ULONG kind,struct Gadget *gad,struct NewGadget *ng,Tag tag1,...)
  81.   { return( CreateGadgetA(kind,gad,ng,(TagItem*)&tag1));}
  82.  
  83. void FreeGadgets( struct Gadget *gad )
  84.   {
  85.     struct Gadget *Next;
  86.     for(; gad; gad=Next) {
  87.       Next=gad->U.NextGadget;
  88.       pOS_DisposeIObject(gad);
  89.     }
  90.   }
  91.  
  92. void GT_SetGadgetAttrsA(struct Gadget *gad,struct Window *win,struct Requester*,struct TagItem *taglist)
  93.   { pOS_SetGadgetAttrsA((APTR)win,(APTR)gad,(APTR)taglist) }
  94.  
  95. void GT_SetGadgetAttrs(struct Gadget *gad,struct Window *win,struct Requester*,Tag tag1,...)
  96.   { pOS_SetGadgetAttrsA((APTR)win,(APTR)gad,(APTR)&tag1) }
  97.  
  98. /*----------------------------------
  99. -----------------------------------*/
  100. struct Menu *CreateMenusA(struct NewMenu *newmenu,APTR dri,struct TagItem *taglist)
  101.   {
  102.     struct NewMenu *NM;
  103.     for(NM=newmenu; NM->nm_Type; ++NM) {
  104.       NM->nm_Tags=NULL;
  105.       if(NM->nm_Label==(CHAR*)~0) {
  106.         UBYTE Type =NM->nm_Type & ~(NM_MENUDISABLED | NM_ITEMDISABLED);
  107.         UBYTE Flags=NM->nm_Type & (NM_MENUDISABLED | NM_ITEMDISABLED);
  108.         if(Type==MENUTAGTYP_Item) NM->nm_Type=MENUTAGTYP_ItemBar;
  109.         if(Type==MENUTAGTYP_Sub)  NM->nm_Type=MENUTAGTYP_SubBar;
  110.  
  111.         if(Flags & (NM_MENUDISABLED | NM_ITEMDISABLED))
  112.             NM->nm_Flags |= MENUITF_Disabled;
  113.       }
  114.     }
  115.     return((APTR)pOS_CreateMenuTagA((APTR)dri,(APTR)newmenu,0));
  116.   }
  117.  
  118. struct Menu *CreateMenus(struct NewMenu *newmenu,APTR dri,Tag tag1, ... )
  119.   { return( CreateMenusA(newmenu,dri,(struct TagItem*)&tag1));}
  120.  
  121. void FreeMenus( struct Menu *menu )
  122.   { pOS_DeleteMenu((APTR)menu); }
  123.  
  124. BOOL LayoutMenusA( struct Menu *firstmenu, APTR vi, struct TagItem *taglist )
  125. { pOS_PreLayoutMenu((APTR)firstmenu,vi); return(TRUE);}
  126.  
  127. BOOL LayoutMenus( struct Menu *firstmenu, APTR vi, Tag tag1, ... )
  128.   { return( LayoutMenusA(firstmenu,vi,(APTR)&tag1));}
  129.  
  130. struct IntuiMessage *GT_GetIMsg( struct MsgPort *iport )
  131.   {
  132.     return( (struct IntuiMessage*)pOS_GetMsg((APTR)iport));
  133.   }
  134.  
  135. void GT_ReplyIMsg( struct IntuiMessage *imsg )
  136.   {
  137.     struct IntuiMessage *Msg=(struct IntuiMessage*)imsg;
  138.  
  139.     if(!(Msg->Class==IDCMP_NEWSIZE || Msg->Class==IDCMP_CHANGEWINDOW || Msg->Class==IDCMP_REFRESHWINDOW))
  140.     {
  141.       if(pOS_SysIMessage((struct pOS_IntuiMessage*)Msg)) Msg=NULL;
  142.     }
  143.     if(Msg) pOS_ReplyMsg((APTR)imsg);
  144.   }
  145.  
  146. void GT_RefreshWindow( struct Window *win, struct Requester *req )
  147.   { pOS_RefreshWindowFrame((APTR)win); }
  148.  
  149. void GT_BeginRefresh( struct Window *win )
  150.   {
  151.     pOS_BeginRefresh((APTR)win,NULL);
  152.   }
  153.  
  154. void GT_EndRefresh(struct Window *win,long complete )
  155.   {
  156.     if(complete) pOS_RefreshGadgets((struct pOS_Window*)win,NULL,~0);
  157.     pOS_EndRefresh((APTR)win,complete);
  158.   }
  159.  
  160. struct Gadget *CreateContext(struct Gadget **glistptr)
  161. {
  162.   struct Gadget *Gad;
  163.   Gad=(struct Gadget*)pOS_NewIObjectA(NULL,"gadget.class",0,NULL);
  164.   *glistptr=Gad;
  165.   return(Gad);
  166. }
  167.  
  168. void DrawBevelBoxA(struct RastPort *rport,long left,long top,long width,long height,struct TagItem *taglist)
  169.   {
  170.     pOS_Rectangle Rect={left,top,left+width-1,top+height-1};
  171.     struct pOS_DrawInfo* Dri=(struct pOS_DrawInfo*)pOS_FindTagData(GT_VisualInfo,(struct pOS_TagItem*)taglist,NULL);
  172.     ULONG Type=pOS_FindTagData(GTBB_Recessed,(struct pOS_TagItem*)taglist,0);
  173.     if(Type) Type=GADBORTYP_BevelDownBox;
  174.     else     Type=GADBORTYP_BevelUpBox;
  175.  
  176.     pOS_DrawBorderBox((struct pOS_RastPort*)rport,Dri,Type,&Rect);
  177.   }
  178.  
  179.  
  180. void DrawBevelBox(struct RastPort *rport,long left,long top,long width,long height,Tag tag1,...)
  181.   { DrawBevelBoxA(rport,left,top,width,height,(struct TagItem*)&tag1); }
  182.  
  183. APTR GetVisualInfoA( struct Screen *screen, struct TagItem *taglist )
  184.   { return((APTR) ((pOS_Screen*)screen)->scr_DrawInfo );}
  185.  
  186. APTR GetVisualInfo( struct Screen *screen, Tag tag1, ... )
  187.   { return((APTR) ((pOS_Screen*)screen)->scr_DrawInfo );}
  188.  
  189. void FreeVisualInfo( APTR vi )
  190.   {}
  191.  
  192. LONG GT_GetGadgetAttrsA(struct Gadget *gad,struct Window *win,struct Requester*,struct TagItem *taglist)
  193.   { return( GT_GetGadgetAttrsA(gad,win,NULL,(struct TagItem*)taglist));}
  194.  
  195. LONG GT_GetGadgetAttrs(struct Gadget *gad,struct Window *win,struct Requester*,Tag tag1,...)
  196.   { return( GT_GetGadgetAttrsA(gad,win,NULL,(struct TagItem*)&tag1));}
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207. #ifdef __IGNORE_NOT_SUPPORTED__
  208.  
  209. BOOL LayoutMenuItemsA( struct MenuItem *firstitem, APTR vi,struct TagItem *taglist )
  210. {return(0);}
  211. BOOL LayoutMenuItems( struct MenuItem *firstitem, APTR vi, Tag tag1, ... )
  212. {return(0);}
  213. struct IntuiMessage *GT_FilterIMsg( struct IntuiMessage *imsg )
  214. {return(0);}
  215. struct IntuiMessage *GT_PostFilterIMsg( struct IntuiMessage *imsg )
  216. {return(0);}
  217.  
  218. #endif  /** __IGNORE_NOT_SUPPORTED__ **/
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225. #ifdef __cplusplus
  226. }
  227. #endif
  228.  
  229. #endif     /* CLIB_GADTOOLS_PROTOS_H */
  230.