/*ScianTemplates.c Template routines for SciAn controls Maintained by tl command Eric Pepke August 10, 1992 */ #include "Scian.h" #include "ScianIDs.h" #include "ScianTypes.h" #include "ScianControls.h" #include "ScianButtons.h" #include "ScianSliders.h" #include "ScianTextBoxes.h" #include "ScianTitleBoxes.h" #include "ScianTemplates.h" #include "ScianTemplateHelper.h" #include "ScianTemplateLib.h" #include "ScianColors.h" #ifdef PROTO Bool GetTemplateBounds(TemplatePtr template, char *name, int *l, int *r, int *b, int *t) #else Bool GetTemplateBounds(template, name, l, r, b, t) TemplatePtr template; char *name; int *l, *r, *b, *t; #endif /*Gets the bounds of the given template, returns true if there.*/ { int k; for (k = 0; ; ++k) { if (template[k] . name[0] == 0) { /*End of the line*/ return false; } if (0 == strcmp2(template[k] . name, name)) { /*Bingo*/ *l = template[k] . l; *r = template[k] . r; *b = template[k] . b; *t = template[k] . t; return true; } } } #ifdef PROTO ObjPtr TemplateSlider(TemplatePtr template, char *name, int style) #else ObjPtr TemplateSlider(template, name, style) TemplatePtr template; char *name; int style; #endif /*Returns a templated slider*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewSlider(l, r, b, t, style, name); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateSlider", errStr); } } #ifdef PROTO ObjPtr TemplateIconButton(TemplatePtr template, char *name, int whichIcon, int hiColor, int style) #else ObjPtr TemplateIconButton(template, name, whichIcon, hiColor, style) TemplatePtr template; char *name; int whichIcon, hiColor, style; #endif /*Returns a templated icon button*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewIconButton(l, r, b, t, whichIcon, hiColor, name, style); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateSlider", errStr); } } #ifdef PROTO ObjPtr TemplateColorWheel(TemplatePtr template, char *name) #else ObjPtr TemplateColorWheel(template, name) TemplatePtr template; char *name; #endif /*Returns a templated color wheel*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewColorWheel(l, r, b, t, name); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateSlider", errStr); } } #ifdef PROTO ObjPtr TemplateTitleBox(TemplatePtr template, char *name) #else ObjPtr TemplateTitleBox(template, name) TemplatePtr template; char *name; #endif /*Returns a templated title box*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewTitleBox(l, r, b, t, name); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateTitleBox", errStr); } } #ifdef PROTO ObjPtr TemplateColorBar(TemplatePtr template, char *name) #else ObjPtr TemplateColorBar(template, name) TemplatePtr template; char *name; #endif /*Returns a templated color bar*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewColorBar(l, r, b, t, name); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateColorBar", errStr); } } #ifdef PROTO ObjPtr TemplateRadioButton(TemplatePtr template, char *name) #else ObjPtr TemplateRadioButton(template, name) TemplatePtr template; char *name; #endif /*Returns a templated radio button*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewRadioButton(l, r, b, t, name); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateRadioButton", errStr); } } #ifdef PROTO ObjPtr TemplateButton(TemplatePtr template, char *name) #else ObjPtr TemplateButton(template, name) TemplatePtr template; char *name; #endif /*Returns a templated button*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewButton(l, r, b, t, name); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateButton", errStr); } } #ifdef PROTO ObjPtr TemplateCheckBox(TemplatePtr template, char *name, Bool value) #else ObjPtr TemplateCheckBox(template, name, value) TemplatePtr template; char *name; Bool value; #endif /*Returns a templated check box*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewCheckBox(l, r, b, t, name, value); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateCheckBox", errStr); } } #ifdef PROTO ObjPtr TemplateTextBox(TemplatePtr template, char *name, int style, char *value) #else ObjPtr TemplateTextBox(template, name, style, value) TemplatePtr template; char *name; int style; char *value; #endif /*Returns a templated text box*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewTextBox(l, r, b, t, style, name, value); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateTextBox", errStr); } } #ifdef PROTO ObjPtr TemplatePanel(TemplatePtr template, char *name) #else ObjPtr TemplatePanel(template, name) TemplatePtr template; char *name; #endif /*Returns a templated panel*/ { ObjPtr retVal; int l, r, b, t; if (GetTemplateBounds(template, name, &l, &r, &b, &t)) { retVal = NewPanel(greyPanelClass, l, r, b, t); SetVar(retVal, NAME, NewString(name)); return retVal; } else { char errStr[256]; sprintf(errStr, "Template '%s' not found", name); ReportError("TemplateTextBox", errStr); } }