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