Ejemplo n.º 1
0
ULONG POPUPMENU_NEW_Gadget(piClass *cl,piObject *o,struct piSet *msg)
{
	struct Node_Gadget *ng;
	piObject *obj;
	struct TagItem ti[]={
		GAOBJ_Type,GTYPE_BOOPSI,
		GAOBJ_NumTags,GSIZE_NUMTAGS,
		GAOBJ_NumOwnTags,GSIZE_NUMOWNTAGS,
		GAOBJ_TagTypes,(ULONG)PopUpMenuTagsTypes,
		GAOBJ_OwnTagTypes,(ULONG)PopUpMenuOwnTagsTypes,
		GAOBJ_ID,POPUPMENU_ID,
		OBJ_Properties,(ULONG)PAGES_PROPERTIES_PG_PUPM_PAGES,
		GAOBJLIST_List,1,
		GAOBJLIST_Active,2,
		GAOBJLIST_Tags,0,
		TAG_DONE};

	if(obj=(piObject *)piDoSuperMethod(cl,o,OM_NEW,ti))
	{
		ng=(struct Node_Gadget *)OBJECT_DATA(obj);

		CopyTagItems(PopUpMenuTags,ng->ng_Tags,ng->ng_NumTags);
		CopyTagItems(PopUpMenuOwnTags,ng->ng_OwnTags,ng->ng_NumOwnTags);
		FindTagItem(PUMG_Labels,ng->ng_Tags)->ti_Data=(ULONG)MyAllocVec(sizeof(struct List),MEMF_PUBLIC);
		NewList(List(FindTagItem(PUMG_Labels,ng->ng_Tags)->ti_Data));
		return (ULONG)obj;
	}
	return FALSE;
}
Ejemplo n.º 2
0
int FN_ChangeWindow_TB_Pointer()
{
	GUI.gui_Prefs->pr_WinPos[WIN_TOOLBAR_IMAGE].X=TB_PointerWnd->LeftEdge;
	GUI.gui_Prefs->pr_WinPos[WIN_TOOLBAR_IMAGE].Y=TB_PointerWnd->TopEdge;
	FindTagItem(WA_Left,(struct TagItem *)TB_PointerWTags)->ti_Data=GUI.gui_Prefs->pr_WinPos[WIN_TOOLBAR_IMAGE].X;
	FindTagItem(WA_Top,(struct TagItem *)TB_PointerWTags)->ti_Data=GUI.gui_Prefs->pr_WinPos[WIN_TOOLBAR_IMAGE].Y;
	return 1;
}
Ejemplo n.º 3
0
ULONG TAPEDECK_APPLY_Gadget(piClass *cl,piObject *o,Msg msg)
{
	struct Node_Gadget *ng;

	piGetAttr(o,OBJ_Node,(ULONG *)&ng);
	piDoSuperMethodA(cl,o,msg);

	FindTagItem(TDECK_Frames,ng->ng_Tags)->ti_Data=GetInteger(PG_TDEK_FlagsGadgets[GD_PG_TDEK_FLAGS_FRAMES]);
	FindTagItem(TDECK_CurrentFrame,ng->ng_Tags)->ti_Data=GetInteger(PG_TDEK_FlagsGadgets[GD_PG_TDEK_FLAGS_CURRENT]);
	return TRUE;
}
Ejemplo n.º 4
0
ULONG TEXT_APPLY_Gadget(piClass *cl,piObject *o,Msg msg)
{
	struct Node_Gadget *ng;

	piGetAttr(o,OBJ_Node,(ULONG *)&ng);
	piDoSuperMethodA(cl,o,msg);

	if(FindTagItem(GTTX_Text,ng->ng_Tags)->ti_Data) MyFreeVec((APTR)FindTagItem(GTTX_Text,ng->ng_Tags)->ti_Data);
	FindTagItem(GTTX_Text,ng->ng_Tags)->ti_Data=NULL;
	if(FindTagItem(GTTX_Text,ng->ng_Tags)->ti_Data=(ULONG)MyAllocVec(strlen(GetString(PG_TEXT_FlagsGadgets[GD_PG_TEXT_FLAGS_DEFAULT]))+1,MEMF_PUBLIC))
		strcpy((char *)((struct TagItem *)FindTagItem(GTTX_Text,ng->ng_Tags)->ti_Data),GetString(PG_TEXT_FlagsGadgets[GD_PG_TEXT_FLAGS_DEFAULT]));

	return TRUE;
}
Ejemplo n.º 5
0
int FN_PG_TEXT_FLAGS_JUSTIFICATION_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	switch(PropertiesMsg.Code)
	{
		case 0: FindTagItem(GTTX_Justification,ti)->ti_Data=GTJ_LEFT; break;
		case 1: FindTagItem(GTTX_Justification,ti)->ti_Data=GTJ_RIGHT; break;
		case 2: FindTagItem(GTTX_Justification,ti)->ti_Data=GTJ_CENTER; break;
	}
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 6
0
int FN_PG_PALT_FLAGS_TYPE_Clicked( void )
{
	UBYTE old;
	struct TagItem *ti,*oti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	piGetAttr(CurrentGadget,GAOBJ_OwnTags,(ULONG *)&oti);

	old=FindTagItem(OWNTAG_Color,oti)->ti_Data;
	FindTagItem(OWNTAG_Color,oti)->ti_Data=PropertiesMsg.Code;
	switch(PropertiesMsg.Code)
	{
		case 0:
			ti[1].ti_Tag=TAG_IGNORE;
			ti[2].ti_Tag=GTPA_Depth;
			if(old==1) 
			{
				switch(ti[1].ti_Data)
				{
					case 256: ti[2].ti_Data=8; break;
					case 128: ti[2].ti_Data=7; break;
					case 64: ti[2].ti_Data=6; break;
					case 32: ti[2].ti_Data=5; break;
					case 16: ti[2].ti_Data=4; break;
					case 8: ti[2].ti_Data=3; break;
					case 4: ti[2].ti_Data=2; break;
					case 2: ti[2].ti_Data=1; break;
				}
			}
			SetInteger(PropertiesWnd,PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR],GetTagData(GTPA_Depth,0,ti));
			DisableGadget(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR],PropertiesWnd,FALSE);
			break;	
		case 1:
			ti[1].ti_Tag=GTPA_NumColors;
			ti[2].ti_Tag=TAG_IGNORE;
			if(old!=PropertiesMsg.Code) ti[1].ti_Data=2<<(ti[2].ti_Data-1);
			SetInteger(PropertiesWnd,PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR],GetTagData(GTPA_NumColors,0,ti));
			DisableGadget(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR],PropertiesWnd,FALSE);
			break;	
		case 2:
			ti[1].ti_Tag=TAG_IGNORE;
			ti[2].ti_Tag=GTPA_Depth;
			DisableGadget(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR],PropertiesWnd,TRUE);
			break;	
	}
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 7
0
ULONG NUMBER_READ_Gadget(piClass *cl,piObject *o,struct piIO *msg)
{
	if(CurrentChunk(msg->IFFh)->cn_Type==ID_GXGA && CurrentChunk(msg->IFFh)->cn_ID==ID_GADA)
	{
		struct TagItem *ti,*oti,tag,*sti;
		struct Node_Gadget *ng;
		int a;

		piGetAttr(o,GAOBJ_Tags,(ULONG *)&ti);
		piGetAttr(o,GAOBJ_OwnTags,(ULONG *)&oti);
		piGetAttr(o,OBJ_Node,(ULONG *)&ng);

		for(a=0;a<ng->ng_Type-1;a++)
		{
			ReadChunkBytes(msg->IFFh,(APTR)&tag,sizeof(struct TagItem));
			switch(tag.ti_Tag)
			{
				case GTNM_Format: break;
				default:
					if(sti=FindTagItem(tag.ti_Tag,ti)) sti->ti_Data=tag.ti_Data;
					break;
			}
		}
		return 0;
	}
	else
		return piDoSuperMethodA(cl,o,(Msg)msg);
}
Ejemplo n.º 8
0
int FN_PG_PALT_FLAGS_SHOWSELECTED_Clicked( void )
{
	struct TagItem *ti,*oti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	piGetAttr(CurrentGadget,GAOBJ_OwnTags,(ULONG *)&oti);
	FindTagItem(OWNTAG_ShowSelected,oti)->ti_Data=PropertiesMsg.Code;
	switch(PropertiesMsg.Code)
	{
		case 0:
			ti[3].ti_Tag=TAG_IGNORE;
			ti[4].ti_Tag=TAG_IGNORE;
			DisableGadget(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_SHOWSELECTED_VAR],PropertiesWnd,TRUE);
			break;	
		case 1:
			ti[3].ti_Tag=GTPA_IndicatorWidth;
			ti[4].ti_Tag=TAG_IGNORE;
			DisableGadget(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_SHOWSELECTED_VAR],PropertiesWnd,FALSE);
			break;	
		case 2:
			ti[3].ti_Tag=TAG_IGNORE;
			ti[4].ti_Tag=GTPA_IndicatorHeight;
			DisableGadget(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_SHOWSELECTED_VAR],PropertiesWnd,FALSE);
			break;	
	}
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 9
0
int FN_PG_PUPM_FLAGS_NEWLOOK_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	FindTagItem(PUMG_NewLook,ti)->ti_Data=PropertiesMsg.Code?TRUE:FALSE;
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 10
0
static ULONG
MUIPC_LButton__OM_SET(struct IClass *CLASS,Object *self,struct opSet *message)
{
    struct MiamiPanelLButtonClass_DATA    *data = INST_DATA(CLASS,self);
    struct TagItem *tag;

    if (tag = FindTagItem(MPA_LButton_State,message->ops_AttrList))
    {
        UBYTE  *text;
        ULONG  color, dis;

        switch (tag->ti_Data)
        {
            case MIAMIPANELV_AddInterface_State_GoingOnline:
                color = MUIV_Lamp_Color_Error;
                text  = offs;
                dis   = FALSE;
                break;

            case MIAMIPANELV_AddInterface_State_GoingOffline:
                color = MUIV_Lamp_Color_Warning;
                text  = ons;
                dis   = TRUE;
                break;

            case MIAMIPANELV_AddInterface_State_Suspending:
                color = MUIV_Lamp_Color_FatalError;
                text  = NULL;
                dis   = TRUE;
                break;

            case MIAMIPANELV_AddInterface_State_Online:
                color = MUIV_Lamp_Color_Ok;
                text  = offs;
                dis   = FALSE;
                break;

            case MIAMIPANELV_AddInterface_State_Suspended:
                color = MUIV_Lamp_Color_Processing;
                text  = NULL;
                dis   = TRUE;
                break;

            default:
                color = MUIV_Lamp_Color_Off;
                text  = ons;
                dis   = FALSE;
                break;
        }

        if (data->lamp) set(data->lamp,MUIA_Lamp_Color,color);
        if (text) set(data->text,MUIA_Text_Contents,text);
        SetSuperAttrs(CLASS,self,MUIA_Disabled,dis,TAG_DONE);
    }

    return DoSuperMethodA(CLASS,self,(Msg)message);
}
Ejemplo n.º 11
0
int FN_PG_STRG_FLAGS_TABCYCLE_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	FindTagItem(GA_TabCycle,ti)->ti_Data=PropertiesMsg.Code?TRUE:FALSE;
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 12
0
int FN_PG_STRG_FLAGS_REPLACEMODE_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	FindTagItem(STRINGA_ReplaceMode,ti)->ti_Data=PropertiesMsg.Code?TRUE:FALSE;
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 13
0
STATIC ULONG SingleString_Set(struct IClass *cl,Object *obj, struct opSet *msg)
{
	struct SingleString_Data *data = (struct SingleString_Data*)INST_DATA(cl,obj);
	struct TagItem *ti = FindTagItem(MUIA_SingleString_Event,msg->ops_AttrList);
	if (ti)
		data->event = ti->ti_Data;

	return DoSuperMethodA(cl,obj,(Msg)msg);
}
Ejemplo n.º 14
0
int FN_PG_NUMB_FLAGS_BORDER_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	FindTagItem(GTNM_Border,ti)->ti_Data=PropertiesMsg.Code?TRUE:FALSE;
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 15
0
int FN_PG_TEXT_FLAGS_DISABLED_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	FindTagItem(GA_Disabled,ti)->ti_Data=PropertiesMsg.Code?TRUE:FALSE;
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 16
0
xadUINT32 GetTagData(xadTag tagValue, xadUINT32 defVal, xadTAGPTR tagList)
{
  xadTAGPTR ti;

  if(tagList == NULL)
    return defVal;

  if((ti = FindTagItem(tagValue, tagList)) == NULL)
    return defVal;

  return ti->ti_Data;
}
Ejemplo n.º 17
0
IPTR MenuBarLabelClass__OM_SET(Class *cl, struct Image *im, struct opSet *msg)
{
    struct TagItem *ti;

    if ((ti = FindTagItem(SYSIA_DrawInfo, msg->ops_AttrList)))
    {
        struct MenuBarLabelData *data = INST_DATA(cl, im);

        data->dri = (struct DrawInfo *)ti->ti_Data;
    }

    return DoSuperMethodA(cl, (Object *)im, (Msg)msg);
}
Ejemplo n.º 18
0
ULONG POPUPMENU_DISPOSE_Gadget(piClass *cl,piObject *o,Msg msg)
{
	struct TagItem *ti;
	struct List *l;
	struct Node *n;

	piGetAttr(o,GAOBJ_Tags,(ULONG *)&ti);
	l=(struct List *)FindTagItem(PUMG_Labels,ti)->ti_Data;
	while(n=RemTail(l))
	{
		if(n->ln_Name) MyFreeVec(n->ln_Name);
		MyFreeVec(n);
	}
	MyFreeVec(l);
	return piDoSuperMethodA(cl,o,msg);
}
Ejemplo n.º 19
0
static IPTR mLampSets(struct IClass *cl, Object *obj, struct opSet *msg)
{
    struct lampData *data = INST_DATA(cl,obj);
    struct TagItem  *tag;

    if((tag = FindTagItem(MUIA_Lamp_Disabled,msg->ops_AttrList)))
    {
        if (tag->ti_Data)
            SET_FLAG(data->flags, FLG_LampDisabled);
        else
            CLEAR_FLAG(data->flags, FLG_LampDisabled);

        /* Of course, we don't redraw here */
    }

    return DoSuperMethodA(cl,obj,(Msg)msg);
}
Ejemplo n.º 20
0
void ApplyTagChanges (TagItem *list, TagItem *changeList)
{
   TagItem *ti_list = NULL;       /* TagItem from the tagList */
   TagItem *ti_change = NULL;     /* TagItem from the changeList */
   TagItem *tl_copy = changeList; /* copy of changeList pointer */

   if (list || changeList)
      return;
   while ((ti_change = NextTagItem(&tl_copy)) != NULL)
   {
      ti_list = FindTagItem(ti_change->ti_Tag, list);
      if (!ti_list)
         continue;
      ti_list->ti_Data = ti_change->ti_Data;
   }
   return;
}
Ejemplo n.º 21
0
ULONG NUMBER_APPLY_Gadget(piClass *cl,piObject *o,Msg msg)
{
	struct Node_Gadget *ng;

	piGetAttr(o,OBJ_Node,(ULONG *)&ng);
	piDoSuperMethodA(cl,o,msg);

	FindTagItem(GTNM_Number,ng->ng_Tags)->ti_Data=GetInteger(PG_NUMB_FlagsGadgets[GD_PG_NUMB_FLAGS_DEFAULT]);
	FindTagItem(GTNM_MaxNumberLen,ng->ng_Tags)->ti_Data=GetInteger(PG_NUMB_FlagsGadgets[GD_PG_NUMB_FLAGS_MAXNUMLEN]);
	if(FindTagItem(GTNM_Format,ng->ng_Tags)->ti_Data) MyFreeVec((APTR)FindTagItem(GTNM_Format,ng->ng_Tags)->ti_Data);
	FindTagItem(GTNM_Format,ng->ng_Tags)->ti_Data=NULL;
	if(FindTagItem(GTNM_Format,ng->ng_Tags)->ti_Data=(ULONG)MyAllocVec(strlen(GetString(PG_NUMB_FlagsGadgets[GD_PG_NUMB_FLAGS_FORMAT]))+1,MEMF_PUBLIC))
		strcpy((char *)((struct TagItem *)FindTagItem(GTNM_Format,ng->ng_Tags)->ti_Data),GetString(PG_NUMB_FlagsGadgets[GD_PG_NUMB_FLAGS_FORMAT]));

	return TRUE;
}
Ejemplo n.º 22
0
int FN_PG_TDEK_FLAGS_TAPE_Clicked( void )
{
	struct TagItem *ti;
	piGetAttr(CurrentGadget,GAOBJ_Tags,(ULONG *)&ti);
	FindTagItem(TDECK_Tape,ti)->ti_Data=PropertiesMsg.Code?TRUE:FALSE;
	if(PropertiesMsg.Code)
	{
		DisableGadget(PG_TDEK_FlagsGadgets[GD_PG_TDEK_FLAGS_FRAMES],PropertiesWnd,TRUE);
		DisableGadget(PG_TDEK_FlagsGadgets[GD_PG_TDEK_FLAGS_CURRENT],PropertiesWnd,TRUE);
	}
	else
	{
		DisableGadget(PG_TDEK_FlagsGadgets[GD_PG_TDEK_FLAGS_FRAMES],PropertiesWnd,FALSE);
		DisableGadget(PG_TDEK_FlagsGadgets[GD_PG_TDEK_FLAGS_CURRENT],PropertiesWnd,FALSE);
	}
	PropertiesChanged=TRUE;
	FN_PROPERTIES_APPLY_Clicked();
	return 1;
}
Ejemplo n.º 23
0
ULONG STRING_APPLY_Gadget(piClass *cl,piObject *o,Msg msg)
{
	struct Node_Gadget *ng;

	piGetAttr(o,OBJ_Node,(ULONG *)&ng);
	piDoSuperMethodA(cl,o,msg);

	if(FindTagItem(GTST_String,ng->ng_Tags)->ti_Data) MyFreeVec((APTR)FindTagItem(GTST_String,ng->ng_Tags)->ti_Data);
	FindTagItem(GTST_String,ng->ng_Tags)->ti_Data=NULL;
	if(FindTagItem(GTST_String,ng->ng_Tags)->ti_Data=(ULONG)MyAllocVec(strlen(GetString(PG_STRG_VarGadgets[GD_PG_STRG_VAR_STRING]))+1,MEMF_PUBLIC))
		strcpy((char *)FindTagItem(GTST_String,ng->ng_Tags)->ti_Data,GetString(PG_STRG_VarGadgets[GD_PG_STRG_VAR_STRING]));
	FindTagItem(GTST_MaxChars,ng->ng_Tags)->ti_Data=GetInteger(PG_STRG_VarGadgets[GD_PG_STRG_VAR_MAXCHARS]);
	return TRUE;
}
Ejemplo n.º 24
0
ULONG SET_Frame(piClass *cl,piObject *o,struct piSet *msg)
{
	struct TagItem *t;
	struct Node_Frame *nf;

	piGetAttr(o,OBJ_Node,(ULONG *)&nf);

	if(t=FindTagItem(GA_Left,msg->Tags)) nf->nf_X=t->ti_Data;
	if(t=FindTagItem(GA_Top,msg->Tags)) nf->nf_Y=t->ti_Data;
	if(t=FindTagItem(GA_Width,msg->Tags)) nf->nf_Width=t->ti_Data;
	if(t=FindTagItem(GA_Height,msg->Tags)) nf->nf_Height=t->ti_Data;
	if(t=FindTagItem(FROBJ_Type,msg->Tags)) nf->nf_FrameType=t->ti_Data;
	if(t=FindTagItem(OBJ_Select,msg->Tags)) nf->nf_Selected=t->ti_Data;
	return TRUE;
}
Ejemplo n.º 25
0
static ULONG
mSets(struct IClass *cl,Object *obj,struct opSet *msg)
{
    struct TagItem *tag;

    if (tag = FindTagItem(MUIA_Calendar_StartDay,msg->ops_AttrList))
    {
        struct data *data = INST_DATA(cl,obj);
        ULONG       wsd = tag->ti_Data;
        int         i;

        if (wsd>6) wsd = 6;

        for (i = 0; i<7; i++) if (i!=wsd) nnset(data->days[i],MUIA_Selected,FALSE);
        nnset(data->days[wsd],MUIA_Selected,TRUE);

        data->wsd = wsd;
    }

    return 0;
}
Ejemplo n.º 26
0
ULONG FilterTagItems(TagItem *tagList, Tag *filterArray, ULONG logic)
{
   ULONG numValid = 0;
   TagItem *ti_tmp;
   TagItem *tmp_list = tagList;

   if (!tagList)
      return 0;
   while ((ti_tmp = NextTagItem(&tmp_list)) != NULL)
      numValid++;
   switch (logic)
   {
    case TAGFILTER_AND:
      tmp_list = tagList;
      while ((ti_tmp = NextTagItem(&tmp_list)) != NULL)
      {
         if (!TagInArray(ti_tmp->ti_Tag, filterArray))
         {
            ti_tmp->ti_Tag = TAG_IGNORE;
            numValid--;
         }
      }
      break;

    case TAGFILTER_NOT:
      if (!filterArray)
         break;
      while (*filterArray != TAG_DONE)
      {
         ti_tmp = FindTagItem(*filterArray++, tagList);
         if (ti_tmp)
            ti_tmp->ti_Tag = TAG_IGNORE;
      }
   }
   return numValid;
}
Ejemplo n.º 27
0
ULONG PALETTE_READ_Gadget(piClass *cl,piObject *o,struct piIO *msg)
{
	if(CurrentChunk(msg->IFFh)->cn_Type==ID_GXGA && CurrentChunk(msg->IFFh)->cn_ID==ID_GADA)
	{
		struct TagItem *ti,*oti,tag,*sti;
		struct Node_Gadget *ng;
		int a;

		piGetAttr(o,GAOBJ_Tags,(ULONG *)&ti);
		piGetAttr(o,GAOBJ_OwnTags,(ULONG *)&oti);
		piGetAttr(o,OBJ_Node,(ULONG *)&ng);

		for(a=0;a<ng->ng_Type-1;a++)
		{
			ReadChunkBytes(msg->IFFh,(APTR)&tag,sizeof(struct TagItem));
			switch(tag.ti_Tag)
			{
				case GT_Underscore:
					ti[0].ti_Tag=GT_Underscore;
					ti[0].ti_Data='_';
					break;
				case GTPA_NumColors:
					ti[1].ti_Tag=GTPA_NumColors;
					ti[1].ti_Data=tag.ti_Data;
					ti[2].ti_Tag=TAG_IGNORE;
					break;
				default:
					if(sti=FindTagItem(tag.ti_Tag,ti)) sti->ti_Data=tag.ti_Data;
					break;
			}
		}
		return 0;
	}
	else
		return piDoSuperMethodA(cl,o,(Msg)msg);
}
Ejemplo n.º 28
0
ULONG STRING_READ_Gadget(piClass *cl,piObject *o,struct piIO *msg)
{
	if(CurrentChunk(msg->IFFh)->cn_Type==ID_GXGA && CurrentChunk(msg->IFFh)->cn_ID==ID_GADA)
	{
		struct TagItem *ti,tag,*sti;
		struct Node_Gadget *ng;
		int a;
		UWORD lenstr;

		piGetAttr(o,GAOBJ_Tags,(ULONG *)&ti);
		piGetAttr(o,OBJ_Node,(ULONG *)&ng);

		for(a=0;a<ng->ng_Type-1;a++)
		{
			ReadChunkBytes(msg->IFFh,(APTR)&tag,sizeof(struct TagItem));
			switch(tag.ti_Tag)
			{
				case GT_Underscore:
					ti[0].ti_Tag=GT_Underscore;
					ti[0].ti_Data='_';
					break;
				case GTST_String: break;
				default:
					if(sti=FindTagItem(tag.ti_Tag,ti)) sti->ti_Data=tag.ti_Data;
					break;
			}
		}
		for(;a<7;a++) ReadChunkBytes(msg->IFFh,(APTR)&tag,sizeof(struct TagItem));
		ReadChunkBytes(msg->IFFh,(APTR)&lenstr,sizeof(UWORD));
		if(lenstr)
		{
			if(FindTagItem(GTST_String,ng->ng_Tags)->ti_Data) MyFreeVec((APTR)FindTagItem(GTST_String,ng->ng_Tags)->ti_Data);
			FindTagItem(GTST_String,ng->ng_Tags)->ti_Data=NULL;
			if(FindTagItem(GTST_String,ng->ng_Tags)->ti_Data=(ULONG)MyAllocVec(lenstr,MEMF_PUBLIC))
				ReadChunkBytes(msg->IFFh,(APTR)FindTagItem(GTST_String,ng->ng_Tags)->ti_Data,lenstr);
		}
		return 0;
	}
	else
		return piDoSuperMethodA(cl,o,(Msg)msg);
}
Ejemplo n.º 29
0
ULONG PALETTE_APPLY_Gadget(piClass *cl,piObject *o,Msg msg)
{
	struct Node_Gadget *ng;

	piGetAttr(o,OBJ_Node,(ULONG *)&ng);
	piDoSuperMethodA(cl,o,msg);

	switch(GetTagData(OWNTAG_Color,0,ng->ng_OwnTags))
	{
		case 0: FindTagItem(GTPA_Depth,ng->ng_Tags)->ti_Data=GetInteger(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR]); break;
		case 1: FindTagItem(GTPA_NumColors,ng->ng_Tags)->ti_Data=GetInteger(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_COLOR]); break;
		case 2: FindTagItem(GTPA_Depth,ng->ng_Tags)->ti_Data=Scr->BitMap.Depth;
	}
	switch(GetTagData(OWNTAG_ShowSelected,0,ng->ng_OwnTags))
	{
		case 1: FindTagItem(GTPA_IndicatorWidth,ng->ng_Tags)->ti_Data=GetInteger(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_SHOWSELECTED_VAR]); break;
		case 2: FindTagItem(GTPA_IndicatorHeight,ng->ng_Tags)->ti_Data=GetInteger(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_SHOWSELECTED_VAR]); break;
	}
	FindTagItem(GTPA_ColorOffset,ng->ng_Tags)->ti_Data=GetInteger(PG_PALT_FlagsGadgets[GD_PG_PALT_FLAGS_OFFSET]);
	return TRUE;
}
Ejemplo n.º 30
0
BOOL makescrollergadget(struct ScrollerGadget *scrollergad, struct LayoutData *ld,
			struct TagItem *tags, struct AslBase_intern *AslBase)
{
    struct TagItem extraproptags[] =
    {
    	{PGA_NotifyBehaviour, PG_BEHAVIOUR_NICE},
	{PGA_RenderBehaviour, PG_BEHAVIOUR_NICE},
	{TAG_MORE   	    , 0     	       }
    };
    
    struct TagItem *ti, *h_ti, *w_ti;
    WORD x, y, w, h, aw, ah;
    UWORD flags = 0;
    BOOL freehoriz = (GetTagData(PGA_Freedom, FREEVERT, tags) == FREEHORIZ);
    BOOL result = FALSE;
    
    if ((ti = FindTagItem(GA_Left, tags)))
    {
        x = ti->ti_Data;
    } else if ((ti = FindTagItem(GA_RelRight, tags)))
    {
        x = ti->ti_Data; flags |= GFLG_RELRIGHT;
    }
    
    if ((ti = FindTagItem(GA_Top, tags)))
    {
        y = ti->ti_Data;
    } else if ((ti = FindTagItem(GA_RelBottom, tags)))
    {
        y = ti->ti_Data; flags |= GFLG_RELBOTTOM;
    }
    
    if ((w_ti = FindTagItem(GA_Width, tags)))
    {
        w = w_ti->ti_Data;
    } else if ((w_ti = FindTagItem(GA_RelWidth, tags)))
    {
        w = w_ti->ti_Data; flags |= GFLG_RELWIDTH;
    }
    
    if ((h_ti = FindTagItem(GA_Height, tags)))
    {
        h = h_ti->ti_Data;
    } else if ((h_ti = FindTagItem(GA_RelHeight, tags)))
    {
        h = h_ti->ti_Data; flags |= GFLG_RELHEIGHT;
    }
    
    if (freehoriz)
    {
        aw = h; ah = h;
	w -= aw * 2;
	if (w_ti) w_ti->ti_Data = w;
    } else {
        aw = w; ah = w;
	h -= ah * 2;
	if (h_ti) h_ti->ti_Data = h; 
    }
    
    extraproptags[2].ti_Data = (IPTR)tags;
    if ((scrollergad->prop = NewObjectA(AslBase->aslpropclass, NULL, extraproptags)))
    {
        struct TagItem arrow_tags[] =
	{
	    {GA_Left		, freehoriz ? x + w - 1 : x	},
	    {GA_Top		, freehoriz ? y : y + h - 1	},
	    {GA_Width		, aw				},
	    {GA_Height		, ah				},
	    {GA_RelVerify	, TRUE				},
	    {GA_Immediate	, TRUE				},
	    {GA_Previous	, (IPTR)scrollergad->prop	},
	    {GA_ID		, ID_ARROWDEC			},
	    {TAG_DONE						}	    
	};
	
	if (flags & GFLG_RELRIGHT) arrow_tags[0].ti_Tag = GA_RelRight;
	if (flags & GFLG_RELWIDTH)
	{
	    arrow_tags[0].ti_Tag = GA_RelRight;
	    if (freehoriz) arrow_tags[0].ti_Data += 2;
	}
	
	if (flags & GFLG_RELBOTTOM) arrow_tags[1].ti_Tag = GA_RelBottom;
	if (flags & GFLG_RELHEIGHT)	
	{
	    arrow_tags[1].ti_Tag = GA_RelBottom;
	    if (!freehoriz) arrow_tags[1].ti_Data += 2;
	}
	
	if ((scrollergad->arrow1 = NewObjectA(AslBase->aslarrowclass, NULL, arrow_tags)))
	{
	    if (freehoriz)
	    {		
	        arrow_tags[0].ti_Data += aw;
	    } else {
	        arrow_tags[1].ti_Data += ah;
	    }
	    arrow_tags[6].ti_Data = (IPTR)scrollergad->arrow1;
	    arrow_tags[7].ti_Data = ID_ARROWINC;
	    
	    if ((scrollergad->arrow2 = NewObjectA(AslBase->aslarrowclass, NULL, arrow_tags)))
	    {
	        struct TagItem image_tags[] =
		{
		    {SYSIA_Which	, freehoriz ? LEFTIMAGE : UPIMAGE	},
		    {SYSIA_DrawInfo	, (IPTR)ld->ld_Dri			},
		    {SYSIA_Style	, SYSISTYLE_GADTOOLS			},
		    {IA_Width		, aw					},
		    {IA_Height		, ah					},
		    {TAG_DONE							}		
		};
	        struct Image *im;
	    	
		if ((im = NewObjectA(NULL, SYSICLASS, image_tags)))
		{
		    SetAttrs(scrollergad->arrow1, GA_Image, (IPTR)im,
		    				  TAG_DONE);
						  
		    image_tags[0].ti_Data = (freehoriz ? RIGHTIMAGE : DOWNIMAGE);
		    
		    if ((im = NewObjectA(NULL, SYSICLASS, image_tags)))
		    {
		    #if USE_SAFE_NOTIFYING
		    	struct TagItem ic_tags [] =
			{
			    {ICA_MAP , (IPTR) prop_to_lv },
			    {TAG_DONE	    	    	 }
			};
			
			if ((scrollergad->prop_ic = NewObjectA(NULL, ICCLASS, ic_tags)))
			{
			    ic_tags[0].ti_Data = (IPTR)lv_to_prop;
			    
			    if ((scrollergad->listview_ic = NewObjectA(NULL, ICCLASS, ic_tags)))			    
			    {
		    #endif			    	 
		        	struct TagItem set_tags [] =
				{
				    {ICA_TARGET	, (IPTR) scrollergad->prop	},
				    {ICA_MAP    , (IPTR) arrowdec_to_prop	},
				    {TAG_DONE					}
				};

		        	SetAttrs(scrollergad->arrow2, GA_Image, (IPTR)im,
							      TAG_DONE);

				SetAttrsA(scrollergad->arrow1, set_tags);
				set_tags[1].ti_Data = (IPTR)arrowinc_to_prop;
				SetAttrsA(scrollergad->arrow2, set_tags);

				result = TRUE;
				
		    #if USE_SAFE_NOTIFYING
		    
			    } /* if ((scrollergad->listview_ic = NewObjectA(NULL, ICCLASS, ic_tags))) */
			    
			} /* if ((scrollergad->prop_ic = NewObjectA(NULL, ICCLASS, ic_tags))) */
			
		    #endif
			
		    } /* if ((im = NewObjectA(NULL, SYSICLASS, image_tags))) */
		    
		} /* if ((im = NewObject(NULL, SYSICLASS, image_tags))) */
		
	    } /* if ((scrollergad->arrow2 = NewObjectA(NULL, BUTTONGCLASS, arrow_tags))) */
	    
	} /* if (scrollergad->arrow1 = NewObjectA(NULL, BUTTONGCLASS, arrow_tags)) */
	
    } /* if ((scrollergad->prop = NewObjectA(AslBase->aslpropclass, NULL, tags))) */
    
    if (!result) killscrollergadget(scrollergad, AslBase);
    
    return result;
}