Пример #1
0
/*************
 * DESCRIPTION:   this method is called whenever the user presses return in
 *    the float string object
 * INPUT:         cl       class
 *                obj      object
 *                msg      message
 * OUTPUT:
 *************/
static ULONG StringAck(struct IClass *cl,Object *obj,struct opGet *msg)
{
    struct Float_Data *data = (struct Float_Data *)INST_DATA(cl,obj);
    char *s;
    float value;
    char buffer[32];

    GetAttr(MUIA_String_Contents,data->fs_gadget,(ULONG*)&s);

    value = atof(s);
    if(data->lowerbound && (((value < data->lower) && data->lowerinside) || ((value <= data->lower) && !data->lowerinside)))
    {
        value = data->value;
        Float2String(value, buffer);
        SetAttrs(data->fs_gadget, MUIA_String_Contents, buffer, TAG_DONE);
        DisplayBeep(_screen(obj));
    }
    if(data->upperbound && (((value > data->upper) && data->upperinside) || ((value >= data->upper) && !data->upperinside)))
    {
        value = data->value;
        Float2String(value, buffer);
        SetAttrs(data->fs_gadget, MUIA_String_Contents, buffer, TAG_DONE);
        DisplayBeep(_screen(obj));
    }
    data->value = value;

    return 0;
}
Пример #2
0
/*************
 * DESCRIPTION:   OM_SET method
 * INPUT:         cl       class
 *                obj      object
 *                msg      message
 * OUTPUT:
 *************/
static ULONG Set(struct IClass *cl,Object *obj,struct opSet *msg)
{
    struct Float_Data *data = (struct Float_Data *)INST_DATA(cl,obj);
    struct TagItem *tags,*tag;
    char buffer[32];

    tags=msg->ops_AttrList;
    do
    {
        tag = WARPOS_PPC_FUNC(NextTagItem)(&tags);
        if(tag)
        {
            switch (tag->ti_Tag)
            {
            case MUIA_Float_Value:
                data->value = *(float*)tag->ti_Data;
                Float2String(data->value, buffer);
                SetAttrs(data->fs_gadget, MUIA_String_Contents, buffer, TAG_DONE);
                break;
            }
        }
    }
    while(tag);

    return(DoSuperMethodA(cl,obj,(Msg)msg));
}
Пример #3
0
char *  Freq2String(float freq, bool alwaysSign, char bufferOut[20])
{
    bufferOut[0] = 0;
    char *suffix = 0;
    if(freq == ERROR_VALUE_FLOAT)
    {
        strcat(bufferOut, ERROR_STRING_VALUE);
        return bufferOut;
    }
    if(freq >= 1e6)
    {
        suffix = set.common.lang == Russian ? "ÌÃö" : "MHz";
        freq /= 1e6;
    }
    else if (freq >= 1e3)
    {
        suffix = set.common.lang == Russian ? "êÃö" : "kHz";
        freq /= 1e3;
    }
    else
    {
        suffix = set.common.lang == Russian ? "Ãö" : "Hz";
    }
    char buffer[20];
    strcat(bufferOut, Float2String(freq, false, 4, buffer));
    strcat(bufferOut, suffix);
    return bufferOut;
}
Пример #4
0
char* Time2String(float time, bool alwaysSign, char buffer[20])
{
    buffer[0] = 0;
    char *suffix = 0;
    if(time == ERROR_VALUE_FLOAT)
    {
        strcat(buffer, ERROR_STRING_VALUE);
        return buffer;
    }
    else if(fabs(time) + 0.5e-10 < 1e-6)
    {
        suffix = set.common.lang == Russian ? "íñ" : "ns";
        time *= 1e9;
    }
    else if(fabs(time) + 0.5e-7 < 1e-3)
    {
        suffix = set.common.lang == Russian ? "ìêñ" : "us";
        time *= 1e6;
    }
    else if(fabs(time) + 0.5e-3 < 1)
    {
        suffix = set.common.lang == Russian ? "ìñ" : "ms";
        time *= 1e3;
    }
    else
    {
        suffix = set.common.lang == Russian ? "ñ" : "s";
    }

    char bufferOut[20];
    strcat(buffer, Float2String(time, alwaysSign, 4, bufferOut));
    strcat(buffer, suffix);
    return buffer;
}
Пример #5
0
char* Float2Db(float value, int numDigits, char bufferOut[20])
{
    bufferOut[0] = 0;
    char buffer[20];
    strcat(bufferOut, Float2String(value, false, numDigits, buffer));
    strcat(bufferOut, "äÁ");
    return bufferOut;
}
Пример #6
0
/*************
 * DESCRIPTION:   do initialations for float subclass
 * INPUT:         cl       class
 *                obj      object
 *                msg      message
 * OUTPUT:        created object or 0 if failed
 *************/
static ULONG New(struct IClass *cl,Object *obj,struct opSet *msg)
{
    struct Float_Data *data,databuf;
    char buffer[32];
    float value;

    obj = (Object *)DoSuperNew(cl,obj,
                               MUIA_Group_Horiz, TRUE,
                               Child, KeyFloatString(
                                   databuf.fs_gadget,
                                   GetTagData(MUIA_Float_Label,NULL,msg->ops_AttrList),
                                   NULL,
                                   GetTagData(MUIA_Float_ControlChar,NULL,msg->ops_AttrList)),
                               End,
                               TAG_MORE,msg->ops_AttrList);
    if(obj)
    {
        data = (struct Float_Data*)INST_DATA(cl,obj);
        *data = databuf;
        value = (float)WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_Value,1,msg->ops_AttrList);
        data->lower = WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_Min,1,msg->ops_AttrList);
        data->upper = WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_Max,100,msg->ops_AttrList);
        data->lowerbound = (BOOL)WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_LowerBound,FALSE,msg->ops_AttrList);
        data->upperbound = (BOOL)WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_UpperBound,FALSE,msg->ops_AttrList);
        data->lowerinside = (BOOL)WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_LowerInside,FALSE,msg->ops_AttrList);
        data->upperinside = (BOOL)WARPOS_PPC_FUNC(GetTagData)(MUIA_Float_UpperInside,FALSE,msg->ops_AttrList);

        Float2String(value,buffer);
        SetAttrs(data->fs_gadget, MUIA_String_Contents, buffer, TAG_DONE);

        DOMETHOD(data->fs_gadget, MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
                 obj, 1, MUIM_Float_StringAck);

        return((ULONG)obj);
    }
    return(0);
}
Пример #7
0
char*    Voltage2String(float voltage, bool alwaysSign, char buffer[20])
{
    buffer[0] = 0;
    char *suffix;
    if(voltage == ERROR_VALUE_FLOAT)
    {
        strcat(buffer, ERROR_STRING_VALUE);
        return buffer;
    }
    else if(fabs(voltage) + 0.5e-4 < 1e-3)
    {
        suffix = set.common.lang == Russian ? "\x10ìêÂ" : "\x10uV";
        voltage *= 1e6;
    }
    else if(fabs(voltage) + 0.5e-4 < 1)
    {
        suffix = set.common.lang == Russian ? "\x10ìÂ" : "\x10mV" ;
        voltage *= 1e3;
    }
    else if(fabs(voltage) + 0.5e-4 < 1000)
    {
        suffix = set.common.lang == Russian ? "\x10Â" : "\x10V";
    }
    else
    {
        suffix = set.common.lang == Russian ? "\x10êÂ" : "\x10kV";
        voltage *= 1e-3;
    }

    char bufferOut[20];

    Float2String(voltage, alwaysSign, 4, bufferOut);
    strcat(buffer, bufferOut);
    strcat(buffer, suffix);
    return buffer;
}
Пример #8
0
TiXmlElement * AddDouble(TiXmlNode * node, const char * name, double num)
{
	return AddString(node, name, Float2String(num).c_str());
}
Пример #9
0
char* Phase2String(float phase, bool empty, char bufferOut[20])
{
    char buffer[20];
    sprintf(bufferOut, "%s\xa8", Float2String(phase, false, 4, buffer));
    return bufferOut;
}
Пример #10
0
char* FloatFract2String(float value, bool alwaysSign, char bufferOut[20])
{
    return Float2String(value, alwaysSign, 4, bufferOut);
}