/* Copyright 1996 Acorn Computers Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* File: objsupport.h * Purpose: Standard Dialogue support library. * Author: Neil Kelleher * History: 5-Jul-1994 : NK: created */ #include "stddef.h" #include "objects.toolbox.h" #include "objects.window.h" /* copies named template to a buffer, returns NULL if can't find or no memory */ char *copy_template(char *name); /* creates object from buffer then frees it */ _kernel_oserror *create_from_template(char *template_id, ObjectID *handle); /* zaps gadget attributes, NOTE: use macro form below */ _kernel_oserror *__zap_gadget(char *tm,ComponentID id,int off,int val); _kernel_oserror *__zap_gadget_string(char *tm,ComponentID id,int off,const char* val,int offlen); int *__read_gadget(char *tm,ComponentID id,int off); /* zaps window template, NOTE: use macro form below */ _kernel_oserror *__zap_window(char *tm,int off,int val); int *__read_window(char *tm,int off); /* deletes a gadget from a template */ _kernel_oserror *delete_gadget(char *tm,ComponentID id); /* zap_gadget(char *template,typedef GadgetType, ComponentID component, structure member, value */ #define zap_gadget(a,b,c,d,e) __zap_gadget(a,c,sizeof(GadgetHeader) + offsetof(b,d),(int) (e)) /* zap_gadget_string(char *template,typedef GadgetType, ComponentID component, structure member, value, structure member (length) * This is used to up the max buffer length if the string was too long to fit in the buffer. * This avoids problems of too small buffer lengths in Res files causing problems. */ #define zap_gadget_string(a,b,c,d,e,f) __zap_gadget_string(a,c,sizeof(GadgetHeader) + offsetof(b,d),(e), sizeof(GadgetHeader)+offsetof(b,f)) #define zap_gadget_header(a,c,d,e) __zap_gadget(a,c, offsetof(GadgetHeader,d),(int) (e)) /* zap_window(char *template,WindowTemplate structure member,value) */ #define zap_window(a,d,e) __zap_window(a,offsetof(WindowTemplate,d),(int) (e)) #define read_gadget(a,b,c,d) __read_gadget(a,c,sizeof(GadgetHeader) + offsetof(b,d)) #define read_gadget_header(a,c,d) __read_gadget(a,c, offsetof(GadgetHeader,d)) #define read_window(a,d) __read_window(a,offsetof(WindowTemplate,d))