#include <Common.h>
#include <System/sysAll.h>
#include <UI/UIAll.h>
#include "Misc.h"
void SetFieldText(Word fieldID, CharPtr text)
{
VoidHand handle;
VoidPtr ptr;
FieldPtr field;
FormPtr form;
handle = MemHandleNew(StrLen(text) + 1);
if (handle) {
ptr = MemHandleLock(handle);
StrCopy(ptr, text);
MemHandleUnlock(handle);
form = FrmGetActiveForm();
field = FrmGetObjectPtr(form, FrmGetObjectIndex(form, fieldID));
FldFreeMemory(field);
FldSetTextHandle(field, (Handle)handle);
FldDrawField(field);
}
}
VoidPtr GetObjectPtr(Int objectID)
{
FormPtr form = FrmGetActiveForm();
return (FrmGetObjectPtr(form, FrmGetObjectIndex(form, objectID)));
}
void UpdateScrollBar(Int fieldID, Int scrollbarID)
{
Word CurrPos;
Word TextHeight;
Word FieldHeight;
Short MaxVal;
FieldPtr field = GetObjectPtr(fieldID);
ScrollBarPtr scrollbar = GetObjectPtr(scrollbarID);
FldGetScrollValues(field, &CurrPos, &TextHeight, &FieldHeight);
if (TextHeight > FieldHeight) {
MaxVal = TextHeight - FieldHeight + 1; /* last term is OVERLAP */
} else if (CurrPos > 0) {
MaxVal = CurrPos;
} else {
MaxVal = 0;
}
SclSetScrollBar(scrollbar, CurrPos, 0, MaxVal, FieldHeight - 1);
}
void ScrollLines(Int n, Int fieldID)
{
FieldPtr field = GetObjectPtr(fieldID);
if (n > 0) {
FldScrollField(field, n, down);
} else if (n < 0) {
FldScrollField(field, -n, up);
}
}
void AssignPopupListPtr(PopupListPtrType* popuplistptr,
Word popupID, Word listID)
{
popuplistptr->control = GetObjectPtr(popupID);
popuplistptr->list = GetObjectPtr(listID);
}
void SetPopupListSelection(PopupListPtrType* popuplistptr, Word selection)
{
LstSetSelection(popuplistptr->list, selection);
CtlSetLabel(popuplistptr->control,
LstGetSelectionText(popuplistptr->list, selection));
}
Word GetPopupListSelection(PopupListPtrType* popuplistptr)
{
return LstGetSelection(popuplistptr->list);
}
void SkipLeadingSpace(CharPtr* p)
{
while((**p == ' ') || (**p == '\t')) (*p)++;
}
void ChopTrailingSpace(CharPtr p)
{
Int s = StrLen(p);
CharPtr p0 = p;
if (s == 0) return;
p += s - 1;
while ((p >= p0) && ((*p == ' ') || (*p == '\t'))) *(p--) = '\0';
}