blob: 4b7ea489d3e4b800d5e405ccce734011e74a127f [file] [log] [blame]
Alexandre Julliard0e607781993-11-03 19:23:37 +00001/*
2 * Combo box definitions
3 */
4
Alexandre Julliarddf2673b1997-03-29 17:20:20 +00005#ifndef __WINE_COMBO_H
6#define __WINE_COMBO_H
Alexandre Julliard0e607781993-11-03 19:23:37 +00007
Patrik Stridvall1ed4ecf1999-06-26 14:58:24 +00008#include "windef.h"
9
10struct tagWND;
11
Alexandre Julliarddf2673b1997-03-29 17:20:20 +000012#define ID_CB_LISTBOX 1000
13#define ID_CB_EDIT 1001
14
15/* Internal flags */
16
17#define CBF_DROPPED 0x0001
18#define CBF_BUTTONDOWN 0x0002
19#define CBF_NOROLLUP 0x0004
20#define CBF_MEASUREITEM 0x0008
21#define CBF_FOCUSED 0x0010
22#define CBF_CAPTURE 0x0020
23#define CBF_EDIT 0x0040
24#define CBF_NORESIZE 0x0080
Alexandre Julliard670cdc41997-08-24 16:00:30 +000025#define CBF_NOTIFY 0x0100
Alexandre Julliarde658d821997-11-30 17:45:40 +000026#define CBF_NOREDRAW 0x0200
Alex Korobka311d3291999-01-01 18:40:02 +000027#define CBF_SELCHANGE 0x0400
Francis Beaudet6ec3eaf1999-06-12 10:51:19 +000028#define CBF_NOEDITNOTIFY 0x1000
Alexandre Julliarddf2673b1997-03-29 17:20:20 +000029#define CBF_EUI 0x8000
30
31/* Combo state struct */
32
33typedef struct
34{
Patrik Stridvall1ed4ecf1999-06-26 14:58:24 +000035 struct tagWND *self;
Alexandre Julliarda3960291999-02-26 11:11:13 +000036 HWND owner;
37 UINT dwStyle;
38 HWND hWndEdit;
39 HWND hWndLBox;
40 UINT wState;
41 HFONT hFont;
Francis Beaudetf585c611999-04-02 10:37:42 +000042 RECT textRect;
43 RECT buttonRect;
44 RECT droppedRect;
Francis Beaudet6ec3eaf1999-06-12 10:51:19 +000045 INT droppedIndex;
Francis Beaudetf585c611999-04-02 10:37:42 +000046 INT fixedOwnerDrawHeight;
Alexandre Julliarda3960291999-02-26 11:11:13 +000047 INT droppedWidth; /* last two are not used unless set */
48 INT editHeight; /* explicitly */
Alexandre Julliard2787be81995-05-22 18:23:01 +000049} HEADCOMBO,*LPHEADCOMBO;
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000050
Alexandre Julliarddf2673b1997-03-29 17:20:20 +000051/*
52 * Note, that CBS_DROPDOWNLIST style is actually (CBS_SIMPLE | CBS_DROPDOWN)!
53 */
54
55#define CB_GETTYPE( lphc ) ((lphc)->dwStyle & (CBS_DROPDOWNLIST))
56#define CB_DISABLED( lphc ) ((lphc)->self->dwStyle & WS_DISABLED)
57#define CB_OWNERDRAWN( lphc ) ((lphc)->dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE))
58#define CB_HASSTRINGS( lphc ) ((lphc)->dwStyle & CBS_HASSTRINGS)
59#define CB_HWND( lphc ) ((lphc)->self->hwndSelf)
60
Patrik Stridvall1ed4ecf1999-06-26 14:58:24 +000061LRESULT WINAPI ComboWndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
62
Alexandre Julliarda3960291999-02-26 11:11:13 +000063BOOL COMBO_FlipListbox( LPHEADCOMBO, BOOL );
Patrik Stridvall1ed4ecf1999-06-26 14:58:24 +000064HWND COMBO_GetLBWindow( struct tagWND * );
Alexandre Julliarda3960291999-02-26 11:11:13 +000065LRESULT COMBO_Directory( LPHEADCOMBO, UINT, LPSTR, BOOL );
Alexandre Julliarddf2673b1997-03-29 17:20:20 +000066
67#endif /* __WINE_COMBO_H */
68