home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / term43-source.lha / Extras / Source / gtlayout-Source.lha / LTP_CreateIncrementer.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-01  |  1.8 KB  |  68 lines

  1. /*  GadTools layout toolkit
  2. **
  3. **  Copyright © 1993-1994 by Olaf `Olsen' Barthel
  4. **  Freely distributable.
  5. */
  6.  
  7. #include "gtlayout_global.h"
  8.  
  9. struct Gadget * __regargs
  10. LTP_CreateIncrementer(LayoutHandle *handle,ObjectNode *parentNode,struct Gadget *parentGadget,struct NewGadget *ng,BOOLEAN leftDirection,LONG incAmount)
  11. {
  12.     ObjectNode    *node;
  13.     struct Gadget    *incer;
  14.  
  15.     if(node = LTP_CreateObjectNode(handle,INCREMENTER_KIND,parentGadget -> GadgetID,NULL))
  16.     {
  17.         ng -> ng_LeftEdge    = ng -> ng_LeftEdge + ng -> ng_Width;
  18.         ng -> ng_Width        = 4 + handle -> GlyphWidth + 4;
  19.         ng -> ng_GadgetText    = "";
  20.         ng -> ng_UserData    = node;
  21.         ng -> ng_Flags        = NULL;
  22.  
  23.         node -> Special . Incrementer . Amount = incAmount;
  24.  
  25.         if(leftDirection)
  26.         {
  27.             node -> Special . Incrementer . Image = NewObject(LTP_ImageClass,NULL,
  28.                 IIA_ImageType,    IMAGECLASS_LEFTINCREMENTER,
  29.                 IA_Width,    ng -> ng_Width,
  30.                 IA_Height,    ng -> ng_Height,
  31.             TAG_DONE);
  32.         }
  33.         else
  34.         {
  35.             node -> Special . Incrementer . Image = NewObject(LTP_ImageClass,NULL,
  36.                 IIA_ImageType,    IMAGECLASS_RIGHTINCREMENTER,
  37.                 IA_Width,    ng -> ng_Width,
  38.                 IA_Height,    ng -> ng_Height,
  39.             TAG_DONE);
  40.         }
  41.  
  42.         if(node -> Special . Incrementer . Image)
  43.         {
  44.             if(incer = CreateGadgetA(GENERIC_KIND,handle -> Previous,ng,NULL))
  45.             {
  46.                 incer -> GadgetType    |= GTYP_BOOLGADGET;
  47.                 incer -> Flags        |= GFLG_GADGIMAGE | GFLG_GADGHIMAGE;
  48.                 incer -> Activation    |= GACT_IMMEDIATE | GACT_RELVERIFY;
  49.                 incer -> GadgetRender     = node -> Special . Incrementer . Image;
  50.                 incer -> SelectRender     = node -> Special . Incrementer . Image;
  51.  
  52.                 if(parentNode -> Disabled)
  53.                     incer -> Flags |= GFLG_DISABLED;
  54.  
  55.                 node -> Host = incer;
  56.  
  57.                 node -> Special . Incrementer . Parent = parentGadget;
  58.  
  59.                 return(incer);
  60.             }
  61.             else
  62.                 LTP_DeleteObjectNode(handle,node);
  63.         }
  64.     }
  65.  
  66.     return(NULL);
  67. }
  68.