1 /* odlbox.h 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information (NCBI) 6 * 7 * This software/database is a "United States Government Work" under the 8 * terms of the United States Copyright Act. It was written as part of 9 * the author's official duties as a United States Government employee and 10 * thus cannot be copyrighted. This software/database is freely available 11 * to the public for use. The National Library of Medicine and the U.S. 12 * Government do not place any restriction on its use or reproduction. 13 * We would, however, appreciate having the NCBI and the author cited in 14 * any work or product based on this material 15 * 16 * Although all reasonable efforts have been taken to ensure the accuracy 17 * and reliability of the software and data, the NLM and the U.S. 18 * Government do not and cannot warrant the performance or results that 19 * may be obtained by using this software or data. The NLM and the U.S. 20 * Government disclaim all warranties, express or implied, including 21 * warranties of performance, merchantability or fitness for any particular 22 * purpose. 23 * 24 * =========================================================================== 25 * 26 * File Name: odlbox.h 27 * 28 * Author: Patrick Durand 29 * 30 * Version Creation Date: 5/3/99 31 * 32 * $Revision: 6.2 $ 33 * 34 * File Description: 35 * 36 * Modifications: 37 * -------------------------------------------------------------------------- 38 * $Log: odlbox.h,v $ 39 * Revision 6.2 1999/06/07 15:41:31 durand 40 * add LOG line to keep track of the history 41 * 42 * 43 * 44 * ========================================================================== 45 */ 46 47 #ifndef _ODLBOX_ 48 #define _ODLBOX_ 49 50 #ifdef __cplusplus 51 extern "C" { 52 #endif 53 54 /******************************************************************************* 55 56 DEFINES 57 58 *******************************************************************************/ 59 /*messages*/ 60 #define ODLB_DrawItem 1 61 #define ODLB_MeasureItem 2 62 #define ODLB_SelectItem 3 63 64 /******************************************************************************* 65 66 callback for the user 67 68 *******************************************************************************/ 69 /*WindoW: lbox handle ; Int2: message ; Pointer : data*/ 70 /*Msg managed by the user, he must return TRUE, otherwise FALSE*/ 71 typedef Boolean (*OwnerDrawLboxFunc) (WindoW,Int2,Pointer); 72 73 /******************************************************************************* 74 75 STRUCTURES 76 77 *******************************************************************************/ 78 /*struture passed through the callback*/ 79 typedef struct midata {/*MeasureItem data struct*/ 80 WindoW Parent; /*Parent of the listbox*/ 81 RecT rcP; /*size of the listbox*/ 82 RecT rcItem; /*size of the item*/ 83 Pointer Data; /*user data*/ 84 Boolean Selected; /*TRUE: item is selected*/ 85 FonT f; /*user font*/ 86 Int2 cxChar; 87 Int2 cyChar; 88 } MIData, PNTR MIDataPtr; 89 90 /******************************************************************************* 91 92 FUNCTIONS DECLARATION 93 (see .c module for a complete description) 94 95 *******************************************************************************/ 96 NLM_EXTERN WindoW OwnerDrawLbox_Create(WindoW Parent, 97 Int2 x,Int2 y, Int2 cx,Int2 cy, OwnerDrawLboxFunc MsgFunc,FonT f, 98 Int2 cxChar,Int2 cyChar); 99 NLM_EXTERN void OwnerDrawLbox_MoveWindow(WindoW lbox, 100 Int2 x,Int2 y, Int2 cx,Int2 cy); 101 NLM_EXTERN Boolean OwnerDrawLbox_AddItem(WindoW lbox,Pointer item); 102 NLM_EXTERN void OwnerDrawLbox_SelectItem(WindoW lbox,Int4 item); 103 NLM_EXTERN Int4 OwnerDrawLbox_GetCurSel(WindoW lbox); 104 NLM_EXTERN Int4 OwnerDrawLbox_GetNentry(WindoW lbox); 105 NLM_EXTERN Pointer OwnerDrawLbox_GetCurData(WindoW lbox); 106 NLM_EXTERN Pointer OwnerDrawLbox_GetData(WindoW lbox,Int4 item); 107 NLM_EXTERN void OwnerDrawLbox_ResetLBContent(WindoW lbox); 108 109 110 #ifdef __cplusplus 111 } 112 #endif 113 114 #endif /* ndef _ODLBOX_ */ 115 116