1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/attr.e,v 1.8 2011/05/16 16:21:56 william Exp $ 19 */ 20 21#ifndef _ATTR_E_ 22#define _ATTR_E_ 23 24typedef struct tagAttrGroupInfo { 25 char *group_name; 26 char *group_value; 27 char *displayed_names; /* better looking group_value */ 28 int num_attrs; 29 char **attr_name; /* just pointers, do not free */ 30} AttrGroupInfo; 31 32extern int dropObsIconAttrWhenUpdate; 33extern int maxAttrGroups; 34 35extern AttrGroupInfo **gAttrGroupInfo; 36extern EditAttrInfo *gpEditAttrInEditorAttrInfo; 37 38#ifdef _INCLUDE_FROM_ATTR_C_ 39#undef extern 40#define extern 41#endif /*_INCLUDE_FROM_ATTR_C_*/ 42 43extern void LinkInAttr ARGS_DECL((struct AttrRec *, struct AttrRec *, 44 struct AttrRec *)); 45extern void FreeAttr ARGS_DECL((struct AttrRec *)); 46extern void UnlinkAttr ARGS_DECL((struct AttrRec *)); 47extern void UpdAttrOwner ARGS_DECL((struct AttrRec *first_attr, 48 struct ObjRec *owner_obj)); 49extern void ParseAttrStr ARGS_DECL((char *buf, char *name, int name_sz, 50 char *value, int value_sz)); 51extern void UpdateAttr ARGS_DECL((struct TextRec *, struct AttrRec *)); 52extern void DrawAttrs ARGS_DECL((Window, int X, int Y, struct AttrRec *)); 53extern void MoveAttrs ARGS_DECL((struct AttrRec *, int Dx, int Dy)); 54extern void DelAllAttrs ARGS_DECL((struct AttrRec *)); 55extern struct AttrRec * AddAttrByNameAndValue ARGS_DECL((struct ObjRec *, 56 char *AttrName, 57 char *AttrValue)); 58extern void DupAttrs ARGS_DECL((struct ObjRec *From, struct ObjRec *To)); 59extern void AddAttrs ARGS_DECL((void)); 60extern void SaveAttrs ARGS_DECL((FILE *, struct AttrRec *)); 61extern char * ReadAttrString ARGS_DECL((char *)); 62extern int ReadAttr ARGS_DECL((FILE *, struct AttrRec **)); 63extern struct ObjRec *FindTopLevelObjWithType ARGS_DECL((char*)); 64extern void ShowAllAttrNames ARGS_DECL((void)); 65extern void ShowAllAttrs ARGS_DECL((void)); 66extern void HideAllAttrs ARGS_DECL((void)); 67extern void HideAllAttrNames ARGS_DECL((void)); 68extern void DetachGroupAttrs ARGS_DECL((struct ObjRec *, 69 struct SelRec **Top, 70 struct SelRec **Bot)); 71extern void DetachAllObjAttrs ARGS_DECL((struct ObjRec *, 72 struct SelRec **Top, 73 struct SelRec **Bot)); 74extern void DetachAttrs ARGS_DECL((void)); 75extern void UpdAttr ARGS_DECL((struct AttrRec *)); 76extern TgMenu *CreateAttrMenu ARGS_DECL((TgMenu*, int x, int y, int num_items, 77 char **menu_strings, 78 char **status_strings, int *pixels)); 79extern void FreeEditAttrInfo ARGS_DECL((EditAttrInfo*)); 80extern int HasEditAttrsInContextMenu ARGS_DECL((struct ObjRec *, 81 struct AttrRec **)); 82extern void FreeRestrictedAttrNames ARGS_DECL((char **ppsz_restricted, 83 int num_restricted)); 84extern void GetRestrictedAttrNames ARGS_DECL((struct ObjRec *, 85 char ***pppsz_restricted, 86 int *pn_num_restricted)); 87extern void GetAttrGroupAttrNames ARGS_DECL((struct ObjRec *, 88 int group_index, 89 char ***pppsz_restricted, 90 int *pn_num_restricted)); 91extern int IsRestrictedAttr ARGS_DECL((char *attr_name, 92 char **ppsz_restricted, 93 int num_restricted)); 94extern EditAttrInfo *CreateEditAttrInfo ARGS_DECL((struct ObjRec *)); 95extern EditAttrInfo *CreateEditAttrGroupInfo ARGS_DECL((struct ObjRec *)); 96extern void MoveAttr ARGS_DECL((void)); 97extern void CopyAndUpdateAttrs ARGS_DECL((struct ObjRec *To, 98 struct ObjRec *From)); 99extern void ToggleNamedAttrShown ARGS_DECL((char *)); 100extern void ToggleEqAttrShown ARGS_DECL((void)); 101extern void AddFileAttrs ARGS_DECL((void)); 102extern void DetachFileAttrs ARGS_DECL((void)); 103extern int BlankStr ARGS_DECL((char*)); 104extern void EditFileAttrs ARGS_DECL((void)); 105extern void EditAttrs ARGS_DECL((void)); 106 107extern void CleanUpAttr ARGS_DECL((void)); 108extern int InitAttr ARGS_DECL((void)); 109 110#ifdef _INCLUDE_FROM_ATTR_C_ 111#undef extern 112#ifndef _NO_RECURSIVE_EXTERN 113#define extern extern 114#endif /* ~_NO_RECURSIVE_EXTERN */ 115#endif /*_INCLUDE_FROM_ATTR_C_*/ 116 117#endif /*_ATTR_E_*/ 118