/************************************************************************ ** ** FILE : kawinok.c ** ** ZWECK : ** ** AUTOR : Michael C. Ancutici ** Universitaet Stuttgart, Fakultaet Informatik ** ** DATUM : 14.03.93 ** *************************************************************************/ #include "kawin.H" #include #include "haka.H" #include "ka.h" #include "hawin.h" /************************************************************************* ** FUNKTION: KaWinSayOK ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void KaWinSayOK( w, client_data, call_data) Widget w; XtPointer client_data, call_data; { String text; int i; Boolean state; char typ; int DeltaNeu = KaWinKante->delta; if (KaWinNegativOn) typ = STneg_TYP; else { XtVaGetValues( KaTransToggle, XtNstate, &state, NULL); typ = (state) ? ST_TYP : TS_TYP; XtVaGetValues( KaGewichtText, XtNstring, &text, NULL); if ((sscanf( text, "%d",&i)) && (i > 0)) DeltaNeu = (typ == TS_TYP) ? i : -i; } DeltaNeu = (DeltaNeu == KaWinKante->delta) ? 0 : DeltaNeu; if (KaWinTyp == typ) { if (DeltaNeu) if (typ == ST_TYP) { HaKaSTDReplX( KaWinSpec.SNr, KaWinSpec.TNr, DeltaNeu); HaKaRedraw(); } else if (typ == TS_TYP) { HaKaTSDReplX( KaWinSpec.SNr, KaWinSpec.TNr, DeltaNeu); HaKaRedraw(); } } else { switch (KaWinTyp) { case ST_TYP: switch (typ) { case STneg_TYP: HaKaChange_ST_STneg( KaWinSpec.SNr, KaWinSpec.TNr); break; case TS_TYP: HaKaChange_ST_TS( KaWinSpec.SNr, KaWinSpec.TNr, DeltaNeu); break; } break; case STneg_TYP: switch (typ) { case ST_TYP: HaKaChange_STneg_ST( KaWinSpec.SNr, KaWinSpec.TNr, DeltaNeu); break; case TS_TYP: HaKaChange_ST_TS( KaWinSpec.SNr, KaWinSpec.TNr, DeltaNeu); break; } break; case TS_TYP: switch (typ) { case ST_TYP: HaKaChange_TS_ST( KaWinSpec.SNr, KaWinSpec.TNr, DeltaNeu); break; case STneg_TYP: HaKaChange_TS_STneg( KaWinSpec.SNr, KaWinSpec.TNr); break; } break; } HaKaRedraw(); } KaWinPopdown(); }