home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
misc
/
wingnuplot
/
source.lha
/
source
/
Hooks.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-04-14
|
6KB
|
292 lines
#include "struct.c"
#include "WinPlot.h"
/* Contruct Entry for FontListView */
static __saveds __asm char *ConFont(register __a0 struct Hook *hook,
register __a2 APTR mem_pool,
register __a1 struct FileInfoBlock *fib)
{
char pattern[14];
ParsePatternNoCase("#?.otag", pattern, 14);
if (fib->fib_DirEntryType < 0)
{
if (MatchPatternNoCase(pattern, fib->fib_FileName))
{
char *entry;
int len;
len = strlen(fib->fib_FileName)-5;
if (entry = LibAllocPooled(mem_pool, len+1))
{
fib->fib_FileName[len] = '\0';
strcpy(entry, fib->fib_FileName);
return entry;
}
}
}
return NULL;
}
struct Hook ConFontHook =
{
{
NULL, NULL
},
(void *)ConFont,
NULL, NULL
};
/* Deconstruct FontListView Entry */
static __saveds __asm void DesFont(register __a0 struct Hook *hook,
register __a2 APTR mem_pool,
register __a1 char *line)
{
LibFreePooled(mem_pool, line, strlen(line)+1);
}
struct Hook DesFontHook =
{
{
NULL, NULL
},
(void *)DesFont,
NULL, NULL,
};
static __saveds __asm void RexxCommandFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
SendRexxMsg(param[0]);
}
struct Hook RexxCommandHook =
{
{
NULL, NULL
},
(void *)RexxCommandFunc,
NULL, NULL
};
static __saveds __asm void StringCommandFunc(register __a0 struct Hook *hook,
register __a2 APTR object)
{
char *Command;
get(object, MUIA_String_Contents, &Command);
SendRexxMsg(Command);
}
struct Hook StringCommandHook =
{
{
NULL, NULL
},
(void *)StringCommandFunc,
NULL, NULL
};
static __saveds __asm void CheckFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
char Command[255];
ULONG Selected;
get(object, MUIA_Selected, &Selected);
sprintf(Command, param[0], Selected ? "" : "no");
SendRexxMsg(Command);
}
struct Hook CheckHook =
{
{
NULL, NULL,
},
(void *)CheckFunc,
NULL, NULL
};
static __saveds __asm void RangeFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
struct RangeObject *ro;
char *s, *Buffer, Command[255];
double min, max;
ro = (struct RangeObject *)param[0];
s = (char *)param[1];
get(ro->Min, MUIA_String_Contents, &Buffer);
sscanf(Buffer, "%lg", &min);
get(ro->Max, MUIA_String_Contents, &Buffer);
sscanf(Buffer, "%lg", &max);
sprintf(Command, "set %s [%g:%g]", s, min, max);
SendRexxMsg(Command);
}
struct Hook RangeHook =
{
{
NULL, NULL
},
(void *)RangeFunc,
NULL, NULL
};
static __saveds __asm void LogScaleFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
struct LogScaleObject *lco;
char *s, *Buffer, Command[255];
ULONG Selected;
lco = (struct LogScaleObject *)param[0];
s = (char *)param[1];
get(lco->LogScale, MUIA_Selected, &Selected);
if (Selected)
{
get(lco->Base, MUIA_String_Contents, &Buffer);
sprintf(Command, s, "", Buffer);
}
else
sprintf(Command, s, "no", "");
SendRexxMsg(Command);
}
struct Hook LogScaleHook =
{
{
NULL, NULL
},
(void *)LogScaleFunc,
NULL, NULL
};
static __saveds __asm void StyleFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
char *s, Command[255];
ULONG ca;
s = (char *)param[0];
get(object, MUIA_Cycle_Active, &ca);
sprintf(Command, s, StyleEntries[ca]);
SendRexxMsg(Command);
}
struct Hook StyleHook =
{
{
NULL, NULL,
},
(void *)StyleFunc,
NULL, NULL
};
static __saveds __asm void LabelFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
struct LabelObject *lo;
char *Title, *Label, *XOff, *YOff, Command[255];
lo = (struct LabelObject *)param[0];
Title = (char *)param[1];
get(lo->Label, MUIA_String_Contents, &Label);
get(lo->XOff, MUIA_String_Contents, &XOff);
get(lo->YOff, MUIA_String_Contents, &YOff);
sprintf(Command, "set %s \"%s\" %s,%s", Title, Label, XOff, YOff);
SendRexxMsg(Command);
}
struct Hook LabelHook =
{
{
NULL, NULL,
},
(void *)LabelFunc,
NULL, NULL
};
static __saveds __asm void ViewFunc(register __a0 struct Hook *hook,
register __a2 APTR object,
register __a1 APTR param[])
{
char *s, Command[255];
get(object, MUIA_String_Contents, &s);
sprintf(Command, param[0], s);
SendRexxMsg(Command);
}
struct Hook ViewHook =
{
{
NULL, NULL,
},
(void *)ViewFunc,
NULL, NULL
};
/* Construct Entry for VarListView */
static __saveds __asm char *ConVar(register __a0 struct Hook *hook,
register __a2 APTR mem_pool,
register __a1 udvt_entry *udvt)
{
char *entry, Buffer[255];
int len;
switch(udvt->udv_value.type)
{
case INTGR:
len = sprintf(Buffer, "%s=%d", udvt->udv_name, udvt->udv_value.v.int_val);
break;
case CMPLX:
len = sprintf(Buffer, "%s={%f, %f}", udvt->udv_name,
udvt->udv_value.v.cmplx_val.real,
udvt->udv_value.v.cmplx_val.imag);
break;
}
entry = LibAllocPooled(mem_pool, len+1);
strcpy(entry, Buffer);
return entry;
}
struct Hook ConVarHook =
{
{
NULL, NULL
},
(void *)ConVar,
NULL, NULL
};
/* Deconstruct VarListView Entry */
static __saveds __asm void DesVar(register __a0 struct Hook *hook,
register __a2 APTR mem_pool,
register __a1 char *entry)
{
LibFreePooled(mem_pool, entry, strlen(entry)+1);
}
struct Hook DesVarHook =
{
{
NULL, NULL
},
(void *)DesVar,
NULL, NULL,
};