home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * REGION.C
- */
-
- #include "defs.h"
-
- Prototype void UpdateTplRegion(TplRegion *);
- Prototype TplRegion *AllocTplRegion(void);
- Prototype void DeleteTplRegion(TplRegion *);
-
-
- TplRegion *
- AllocTplRegion()
- {
- TplRegion *rg = zalloc(sizeof(TplRegion));
-
- NewList(&rg->rg_ListSet);
- rg->rg_Id = ++IdNo;
- rg->rg_TextAttr = *Scr->Font;
- AddTail(&RegList, &rg->rg_Node);
- return(rg);
- }
-
- void
- UpdateTplRegion(rg)
- TplRegion *rg;
- {
- if (rg->rg_Gad) {
- GT_SetGadgetAttrs(rg->rg_Gad, Win, NULL,
- GA_Disabled, 1,
- TAG_END
- );
- }
- if (NewType == RGT_ENTRY)
- rg->rg_MaxBufLen = atoi(MaxName);
-
- if (rg->rg_DefText)
- free(rg->rg_DefText);
- rg->rg_DefText = (DefName[0]) ? strdup(DefName) : (char *)NULL;
-
- if (rg->rg_LabText)
- free(rg->rg_LabText);
- rg->rg_LabText = (LabName[0]) ? strdup(LabName) : (char *)NULL;
-
- if (rg->rg_Node.ln_Name)
- free(rg->rg_Node.ln_Name);
- rg->rg_Node.ln_Name = strdup(RegName);
-
- if (rg->rg_Gad && (rg->rg_Type == RGT_CYCLE || rg->rg_Type == RGT_SELLIST)) {
- GT_SetGadgetAttrs(rg->rg_Gad, Win, NULL,
- GTLV_Labels, -1,
- TAG_END
- );
- }
- {
- MaxNode *mn;
- while (mn = RemHead(&rg->rg_ListSet)) {
- free(mn->ln_Name);
- free(mn);
- }
- if (rg->rg_CycleAry) {
- free(rg->rg_CycleAry);
- rg->rg_CycleAry = NULL;
- }
- }
- if (NewType == RGT_CYCLE || NewType == RGT_SELLIST) {
- MaxNode *mn;
- short cnt = 0;
-
- for (mn = GetHead(&EList); mn; mn = GetSucc(mn)) {
- AddNode(&rg->rg_ListSet, mn->ln_Name, 1);
- ++cnt;
- }
- rg->rg_CycleAry = zalloc(sizeof(char *) * (cnt + 1));
- cnt = 0;
- for (mn = GetHead(&rg->rg_ListSet); mn; mn = GetSucc(mn))
- rg->rg_CycleAry[cnt++] = mn->ln_Name;
- }
- rg->rg_Flags = NewFlags;
- rg->rg_Type = NewType;
- }
-
- void
- DeleteTplRegion(rg)
- TplRegion *rg;
- {
- Remove(&rg->rg_Node);
- ClearLinks(rg);
-
- if (rg->rg_Node.ln_Name)
- free(rg->rg_Node.ln_Name);
- if (rg->rg_Gad && (rg->rg_Type == RGT_CYCLE || rg->rg_Type == RGT_SELLIST)) {
- GT_SetGadgetAttrs(rg->rg_Gad, Win, NULL,
- GTLV_Labels, -1,
- TAG_END
- );
- }
- if (rg->rg_DataBase)
- free(rg->rg_DataBase);
- if (rg->rg_ListRef)
- free(rg->rg_ListRef);
- if (rg->rg_CycleAry)
- free(rg->rg_CycleAry);
- {
- MaxNode *mn;
- while (mn = RemHead(&rg->rg_ListSet)) {
- free(mn->ln_Name);
- free(mn);
- }
- }
- if (rg->rg_DefText)
- free(rg->rg_DefText);
- if (rg->rg_LabText)
- free(rg->rg_LabText);
- free(rg);
- SetCurRegion(NULL);
- }
-
-