Beispiel #1
0
IPTR Pendisplay__MUIM_Setup(struct IClass *cl, Object *obj, struct MUIP_Setup *msg)
{
    struct Pendisplay_DATA *data = INST_DATA(cl,obj);

    if (!(DoSuperMethodA(cl, obj, (Msg)msg))) return 0;

    if (!data->refobj)
    {
    	data->pen = MUI_ObtainPen(muiRenderInfo(obj), &data->penspec, 0);
    }
    
    return 1;
}
Beispiel #2
0
static IPTR mLampSetup(struct IClass *cl, Object *obj, struct MUIP_Setup *msg)
{
    struct lampData *data = INST_DATA(cl,obj);
    if (!DoSuperMethodA(cl,obj,(APTR)msg)) return FALSE;

    if (MUIMasterBase->lib_Version<20)
	{
    	data->enabled  = MUI_ObtainPen(muiRenderInfo(obj),(APTR)"r00000000,ffffffff,00000000",0);
	    data->disabled = MUI_ObtainPen(muiRenderInfo(obj),(APTR)"rffffffff,00000000,00000000",0);
	    data->detail   = MUI_ObtainPen(muiRenderInfo(obj),(APTR)"r00000000,00000000,00000000",0);
    }
	else
    {
    	data->enabled  = MUI_ObtainPen(muiRenderInfo(obj),(APTR)"r02ff00",0);
   		data->disabled = MUI_ObtainPen(muiRenderInfo(obj),(APTR)"rff0000",0);
		data->detail   = MUI_ObtainPen(muiRenderInfo(obj),(APTR)"r000000",0);
	}

    SET_FLAG(data->flags, FLG_LampSetup);

    return TRUE;
}
Beispiel #3
0
IPTR Pendisplay__OM_SET(struct IClass *cl, Object *obj, struct opSet *msg)
{
    struct Pendisplay_DATA   *data;
    const struct TagItem    	*tags;
    struct TagItem  	    	*tag;
    BOOL    	    	    	 newcol = FALSE;
    IPTR    	    	    	 retval;
    
    data = INST_DATA(cl, obj);

    for (tags = msg->ops_AttrList; (tag = NextTagItem(&tags)); )
    {
	switch (tag->ti_Tag)
	{
	    case MUIA_Pendisplay_Reference:
	    	if (data->refobj)
		{
		    DoMethod(data->refobj, MUIM_KillNotifyObj, MUIA_Pendisplay_Spec, (IPTR)obj);
		}

	    	data->refobj = (Object *)tag->ti_Data;
		
		if (data->refobj)
		{
		    DoMethod(data->refobj, MUIM_Notify, MUIA_Pendisplay_Spec, MUIV_EveryTime,
		    	     (IPTR)obj, 3, MUIM_Set, MUIA_Pendisplay_Spec, MUIV_TriggerValue);
		}
		newcol = TRUE;
		break;

	    case MUIA_Pendisplay_RGBcolor:
	    	{
		    struct MUI_RGBcolor *rgb = (struct MUI_RGBcolor *)tag->ti_Data;

	    	    snprintf(data->penspec.ps_buf, sizeof(data->penspec.ps_buf),
			     "%lc%08lx,%08lx,%08lx", (LONG)PST_RGB, rgb->red, rgb->green, rgb->blue);
		}
		newcol = TRUE;
		break;
		
	    case MUIA_Pendisplay_Spec:
		if (tag->ti_Data)
		{
		    data->penspec = *(struct MUI_PenSpec *)tag->ti_Data;
		    newcol = TRUE;
		}
		break;

		
    	}
    }

    retval = DoSuperMethodA(cl, obj, (Msg)msg);
    
    if (newcol && (_flags(obj) & MADF_SETUP))
    {
    	if (data->pen != -1)
	{
	    MUI_ReleasePen(muiRenderInfo(obj), data->pen);
	    data->pen = -1;
	}
	
	if (!data->refobj)
	{
	    data->pen = MUI_ObtainPen(muiRenderInfo(obj), &data->penspec, 0);
	}
	
	MUI_Redraw(obj, MADF_DRAWUPDATE);
    }
    
    return retval;
}