Commit 70c9e095 authored by Alexandre Julliard's avatar Alexandre Julliard

Removed all non-standard common control headers from the include

directory.
parent 6113975a
...@@ -19,13 +19,58 @@ ...@@ -19,13 +19,58 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "animate.h" #include "vfw.h"
#include "mmsystem.h" #include "mmsystem.h"
#include "services.h" #include "services.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(animate); DEFAULT_DEBUG_CHANNEL(animate);
typedef struct
{
/* pointer to msvideo functions. it's easier to put them here.
* to be correct, they should be defined on a per process basis, but
* this would required a per process storage. We're using a per object
* storage instead, which is not efficient on memory usage, but
* will lead to less bugs in the future
*/
HIC WINAPI (*fnICOpen)(DWORD, DWORD, UINT);
LRESULT WINAPI (*fnICClose)(HIC);
LRESULT WINAPI (*fnICSendMessage)(HIC, UINT, DWORD, DWORD);
DWORD WINAPIV (*fnICDecompress)(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
HMMIO WINAPI (*fnmmioOpenA)(LPSTR,MMIOINFO*,DWORD);
MMRESULT WINAPI (*fnmmioClose)(HMMIO,UINT);
UINT WINAPI (*fnmmioAscend)(HMMIO,MMCKINFO*,UINT);
UINT WINAPI (*fnmmioDescend)(HMMIO,MMCKINFO*,const MMCKINFO*,UINT);
LONG WINAPI (*fnmmioSeek)(HMMIO,LONG,INT);
LONG WINAPI (*fnmmioRead)(HMMIO,HPSTR,LONG);
/* reference to input stream (file or resource) */
HGLOBAL hRes;
HMMIO hMMio; /* handle to mmio stream */
HWND hWnd;
/* information on the loaded AVI file */
MainAVIHeader mah;
AVIStreamHeader ash;
LPBITMAPINFOHEADER inbih;
LPDWORD lpIndex;
/* data for the decompressor */
HIC hic;
LPBITMAPINFOHEADER outbih;
LPVOID indata;
LPVOID outdata;
/* data for the background mechanism */
CRITICAL_SECTION cs;
HANDLE hService;
UINT uTimer;
/* data for playing the file */
int nFromFrame;
int nToFrame;
int nLoop;
int currFrame;
} ANIMATE_INFO;
#define ANIMATE_GetInfoPtr(hWnd) ((ANIMATE_INFO *)GetWindowLongA(hWnd, 0)) #define ANIMATE_GetInfoPtr(hWnd) ((ANIMATE_INFO *)GetWindowLongA(hWnd, 0))
HMODULE hModWinmm; HMODULE hModWinmm;
......
...@@ -18,10 +18,16 @@ ...@@ -18,10 +18,16 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "comboex.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(comboex) DEFAULT_DEBUG_CHANNEL(comboex);
typedef struct
{
HIMAGELIST himl;
HWND hwndCombo;
DWORD dwExtStyle;
} COMBOEX_INFO;
#define ID_CB_EDIT 1001 #define ID_CB_EDIT 1001
......
...@@ -11,30 +11,51 @@ ...@@ -11,30 +11,51 @@
#include "winbase.h" #include "winbase.h"
#include "heap.h" #include "heap.h"
#include "commctrl.h" #include "commctrl.h"
#include "animate.h"
#include "comboex.h"
#include "datetime.h"
#include "flatsb.h"
#include "header.h"
#include "hotkey.h"
#include "ipaddress.h"
#include "listview.h"
#include "monthcal.h"
#include "nativefont.h"
#include "pager.h"
#include "progress.h"
#include "rebar.h"
#include "status.h"
#include "tab.h"
#include "toolbar.h"
#include "tooltips.h"
#include "trackbar.h"
#include "treeview.h"
#include "updown.h"
#include "debugtools.h" #include "debugtools.h"
#include "winerror.h" #include "winerror.h"
DEFAULT_DEBUG_CHANNEL(commctrl) DEFAULT_DEBUG_CHANNEL(commctrl);
extern void ANIMATE_Register(void);
extern void ANIMATE_Unregister(void);
extern void COMBOEX_Register(void);
extern void COMBOEX_Unregister(void);
extern void DATETIME_Register(void);
extern void DATETIME_Unregister(void);
extern void FLATSB_Register(void);
extern void FLATSB_Unregister(void);
extern void HEADER_Register(void);
extern void HEADER_Unregister(void);
extern void HOTKEY_Register(void);
extern void HOTKEY_Unregister(void);
extern void IPADDRESS_Register(void);
extern void IPADDRESS_Unregister(void);
extern void LISTVIEW_Register(void);
extern void LISTVIEW_Unregister(void);
extern void MONTHCAL_Register(void);
extern void MONTHCAL_Unregister(void);
extern void NATIVEFONT_Register(void);
extern void NATIVEFONT_Unregister(void);
extern void PAGER_Register(void);
extern void PAGER_Unregister(void);
extern void PROGRESS_Register(void);
extern void PROGRESS_Unregister(void);
extern void REBAR_Register(void);
extern void REBAR_Unregister(void);
extern void STATUS_Register(void);
extern void STATUS_Unregister(void);
extern void TAB_Register(void);
extern void TAB_Unregister(void);
extern void TOOLBAR_Register(void);
extern void TOOLBAR_Unregister(void);
extern void TOOLTIPS_Register(void);
extern void TOOLTIPS_Unregister(void);
extern void TRACKBAR_Register(void);
extern void TRACKBAR_Unregister(void);
extern void TREEVIEW_Register(void);
extern void TREEVIEW_Unregister(void);
extern void UPDOWN_Register(void);
extern void UPDOWN_Unregister(void);
HANDLE COMCTL32_hHeap = (HANDLE)NULL; HANDLE COMCTL32_hHeap = (HANDLE)NULL;
......
...@@ -19,12 +19,77 @@ ...@@ -19,12 +19,77 @@
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "wingdi.h"
#include "commctrl.h" #include "commctrl.h"
#include "datetime.h"
#include "monthcal.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(datetime); DEFAULT_DEBUG_CHANNEL(datetime);
typedef struct
{
HWND hMonthCal;
HWND hUpdown;
SYSTEMTIME date;
BOOL dateValid;
HWND hwndCheckbut;
RECT rcClient; /* rect around the edge of the window */
RECT rcDraw; /* rect inside of the border */
RECT checkbox; /* checkbox allowing the control to be enabled/disabled */
RECT calbutton; /* button that toggles the dropdown of the monthcal control */
BOOL bCalDepressed; /* TRUE = cal button is depressed */
int select;
HFONT hFont;
int nrFieldsAllocated;
int nrFields;
int haveFocus;
int *fieldspec;
RECT *fieldRect;
int *buflen;
char textbuf[256];
POINT monthcal_pos;
} DATETIME_INFO, *LPDATETIME_INFO;
/* in monthcal.c */
extern const int mdays[];
extern const char * const monthtxt[];
/* this list of defines is closely related to `allowedformatchars' defined
* in datetime.c; the high nibble indicates the `base type' of the format
* specifier.
* Do not change without first reading DATETIME_UseFormat.
*
*/
#define DT_END_FORMAT 0
#define ONEDIGITDAY 0x01
#define TWODIGITDAY 0x02
#define THREECHARDAY 0x03
#define FULLDAY 0x04
#define ONEDIGIT12HOUR 0x11
#define TWODIGIT12HOUR 0x12
#define ONEDIGIT24HOUR 0x21
#define TWODIGIT24HOUR 0x22
#define ONEDIGITMINUTE 0x31
#define TWODIGITMINUTE 0x32
#define ONEDIGITMONTH 0x41
#define TWODIGITMONTH 0x42
#define THREECHARMONTH 0x43
#define FULLMONTH 0x44
#define ONEDIGITSECOND 0x51
#define TWODIGITSECOND 0x52
#define ONELETTERAMPM 0x61
#define TWOLETTERAMPM 0x62
#define ONEDIGITYEAR 0x71
#define TWODIGITYEAR 0x72
#define FULLYEAR 0x73
#define FORMATCALLBACK 0x81 /* -> maximum of 0x80 callbacks possible */
#define FORMATCALLMASK 0x80
#define DT_STRING 0x0100
#define DTHT_DATEFIELD 0xff /* for hit-testing */
#define DTHT_NONE 0
#define DTHT_CHECKBOX 0x200 /* these should end at '00' , to make */
#define DTHT_MCPOPUP 0x300 /* & DTHT_DATEFIELD 0 when DATETIME_KeyDown */
#define DTHT_GOTFOCUS 0x400 /* tests for date-fields */
#define DATETIME_GetInfoPtr(hwnd) ((DATETIME_INFO *)GetWindowLongA (hwnd, 0)) #define DATETIME_GetInfoPtr(hwnd) ((DATETIME_INFO *)GetWindowLongA (hwnd, 0))
......
...@@ -18,11 +18,14 @@ ...@@ -18,11 +18,14 @@
#include "winbase.h" #include "winbase.h"
#include "winerror.h" #include "winerror.h"
#include "commctrl.h" #include "commctrl.h"
#include "flatsb.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(commctrl) DEFAULT_DEBUG_CHANNEL(commctrl);
typedef struct
{
DWORD dwDummy; /* just to keep the compiler happy ;-) */
} FLATSB_INFO, *LPFLATSB_INFO;
#define FlatSB_GetInfoPtr(hwnd) ((FLATSB_INFO*)GetWindowLongA (hwnd, 0)) #define FlatSB_GetInfoPtr(hwnd) ((FLATSB_INFO*)GetWindowLongA (hwnd, 0))
......
...@@ -23,10 +23,48 @@ ...@@ -23,10 +23,48 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "header.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(header) DEFAULT_DEBUG_CHANNEL(header);
typedef struct
{
INT cxy;
HBITMAP hbm;
LPWSTR pszText;
INT fmt;
LPARAM lParam;
INT iImage;
INT iOrder; /* see documentation of HD_ITEM */
BOOL bDown; /* is item pressed? (used for drawing) */
RECT rect; /* bounding rectangle of the item */
} HEADER_ITEM;
typedef struct
{
UINT uNumItem; /* number of items (columns) */
INT nHeight; /* height of the header (pixels) */
HFONT hFont; /* handle to the current font */
HCURSOR hcurArrow; /* handle to the arrow cursor */
HCURSOR hcurDivider; /* handle to a cursor (used over dividers) <-|-> */
HCURSOR hcurDivopen; /* handle to a cursor (used over dividers) <-||-> */
BOOL bCaptured; /* Is the mouse captured? */
BOOL bPressed; /* Is a header item pressed (down)? */
BOOL bTracking; /* Is in tracking mode? */
BOOL bUnicode; /* Unicode flag */
INT iMoveItem; /* index of tracked item. (Tracking mode) */
INT xTrackOffset; /* distance between the right side of the tracked item and the cursor */
INT xOldTrack; /* track offset (see above) after the last WM_MOUSEMOVE */
INT nOldWidth; /* width of a sizing item after the last WM_MOUSEMOVE */
INT iHotItem; /* index of hot item (cursor is over this item) */
HIMAGELIST himl; /* handle to a image list (may be 0) */
HEADER_ITEM *items; /* pointer to array of HEADER_ITEM's */
BOOL bRectsValid; /* validity flag for bounding rectangles */
LPINT pOrder; /* pointer to order array */
} HEADER_INFO;
#define VERT_BORDER 4 #define VERT_BORDER 4
......
...@@ -15,11 +15,16 @@ ...@@ -15,11 +15,16 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "hotkey.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(hotkey) DEFAULT_DEBUG_CHANNEL(hotkey);
typedef struct tagHOTKEY_INFO
{
HFONT hFont;
BOOL bFocus;
INT nHeight;
} HOTKEY_INFO;
#define HOTKEY_GetInfoPtr(hwnd) ((HOTKEY_INFO *)GetWindowLongA (hwnd, 0)) #define HOTKEY_GetInfoPtr(hwnd) ((HOTKEY_INFO *)GetWindowLongA (hwnd, 0))
......
...@@ -22,22 +22,14 @@ ...@@ -22,22 +22,14 @@
* limited in functionality too. * limited in functionality too.
*/ */
/* This must be defined because the HIMAGELIST type is just a pointer
* to the _IMAGELIST data structure. But M$ does not want us to know
* anything about its contents. Applications just see a pointer to
* an empty structure. It's just to keep compatibility.
*/
#define __WINE_IMAGELIST_C
#include "wine/obj_base.h" #include "wine/obj_base.h"
#include "wine/obj_storage.h" #include "wine/obj_storage.h"
#include "imagelist.h"
#include "commctrl.h" #include "commctrl.h"
#include "imagelist.h"
#include "debugtools.h" #include "debugtools.h"
#include "winerror.h" #include "winerror.h"
DEFAULT_DEBUG_CHANNEL(imagelist) DEFAULT_DEBUG_CHANNEL(imagelist);
#define _MAX(a,b) (((a)>(b))?(a):(b)) #define _MAX(a,b) (((a)>(b))?(a):(b))
......
...@@ -39,8 +39,6 @@ struct _IMAGELIST ...@@ -39,8 +39,6 @@ struct _IMAGELIST
INT nOvlIdx[15]; INT nOvlIdx[15];
}; };
typedef struct _IMAGELIST *HIMAGELIST;
/* Header used by ImageList_Read() and ImageList_Write() */ /* Header used by ImageList_Read() and ImageList_Write() */
typedef struct _ILHEAD typedef struct _ILHEAD
{ {
......
...@@ -27,12 +27,29 @@ ...@@ -27,12 +27,29 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "ipaddress.h"
#include "heap.h" #include "heap.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(ipaddress); DEFAULT_DEBUG_CHANNEL(ipaddress);
typedef struct
{
BYTE LowerLimit[4];
BYTE UpperLimit[4];
RECT rcClient;
INT uFocus;
} IPADDRESS_INFO;
typedef struct
{
WNDPROC wpOrigProc[4];
HWND hwndIP[4];
IPADDRESS_INFO *infoPtr;
HWND hwnd;
UINT uRefCount;
} IP_SUBCLASS_INFO, *LPIP_SUBCLASS_INFO;
#define IPADDRESS_GetInfoPtr(hwnd) ((IPADDRESS_INFO *)GetWindowLongA (hwnd, 0)) #define IPADDRESS_GetInfoPtr(hwnd) ((IPADDRESS_INFO *)GetWindowLongA (hwnd, 0))
static BOOL static BOOL
......
...@@ -46,11 +46,86 @@ ...@@ -46,11 +46,86 @@
#include "winbase.h" #include "winbase.h"
#include "heap.h" #include "heap.h"
#include "commctrl.h" #include "commctrl.h"
#include "listview.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(listview); DEFAULT_DEBUG_CHANNEL(listview);
/* Some definitions for inline edit control */
typedef BOOL (*EditlblCallback)(HWND, LPSTR, DWORD);
typedef struct tagEDITLABEL_ITEM
{
WNDPROC EditWndProc;
DWORD param;
EditlblCallback EditLblCb;
} EDITLABEL_ITEM;
typedef struct tagLISTVIEW_SUBITEM
{
LPSTR pszText;
INT iImage;
INT iSubItem;
} LISTVIEW_SUBITEM;
typedef struct tagLISTVIEW_ITEM
{
UINT state;
LPSTR pszText;
INT iImage;
LPARAM lParam;
INT iIndent;
POINT ptPosition;
} LISTVIEW_ITEM;
typedef struct tagLISTVIEW_SELECTION
{
DWORD lower;
DWORD upper;
} LISTVIEW_SELECTION;
typedef struct tagLISTVIEW_INFO
{
COLORREF clrBk;
COLORREF clrText;
COLORREF clrTextBk;
HIMAGELIST himlNormal;
HIMAGELIST himlSmall;
HIMAGELIST himlState;
BOOL bLButtonDown;
BOOL bRButtonDown;
INT nFocusedItem;
HDPA hdpaSelectionRanges;
INT nItemHeight;
INT nItemWidth;
INT nSelectionMark;
INT nHotItem;
SHORT notifyFormat;
RECT rcList;
RECT rcView;
SIZE iconSize;
SIZE iconSpacing;
UINT uCallbackMask;
HWND hwndHeader;
HFONT hDefaultFont;
HFONT hFont;
BOOL bFocus;
DWORD dwExStyle; /* extended listview style */
HDPA hdpaItems;
PFNLVCOMPARE pfnCompare;
LPARAM lParamSort;
HWND hwndEdit;
INT nEditLabelItem;
EDITLABEL_ITEM *pedititem;
DWORD dwHoverTime;
WPARAM charCode; /* Added */
CHAR szSearchParam[ MAX_PATH ]; /* Added */
DWORD timeSinceLastKeyPress; /* Added */
INT nSearchParamLength; /* Added */
} LISTVIEW_INFO;
/* /*
* constants * constants
*/ */
...@@ -1028,7 +1103,7 @@ static void LISTVIEW_PrintSelectionRanges(hwnd) ...@@ -1028,7 +1103,7 @@ static void LISTVIEW_PrintSelectionRanges(hwnd)
* <0 : if Item 2 > Item 1 * <0 : if Item 2 > Item 1
* 0 : if Item 1 == Item 2 * 0 : if Item 1 == Item 2
*/ */
static INT LISTVIEW_CompareSelectionRanges(LPVOID range1, LPVOID range2, static INT CALLBACK LISTVIEW_CompareSelectionRanges(LPVOID range1, LPVOID range2,
LPARAM flags) LPARAM flags)
{ {
int l1 = ((LISTVIEW_SELECTION*)(range1))->lower; int l1 = ((LISTVIEW_SELECTION*)(range1))->lower;
......
...@@ -26,11 +26,71 @@ ...@@ -26,11 +26,71 @@
#include "winnls.h" #include "winnls.h"
#include "commctrl.h" #include "commctrl.h"
#include "comctl32.h" #include "comctl32.h"
#include "monthcal.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(monthcal); DEFAULT_DEBUG_CHANNEL(monthcal);
#define MC_SEL_LBUTUP 1 /* Left button released */
#define MC_SEL_LBUTDOWN 2 /* Left button pressed in calendar */
#define MC_PREVPRESSED 4 /* Prev month button pressed */
#define MC_NEXTPRESSED 8 /* Next month button pressed */
#define MC_NEXTMONTHDELAY 350 /* when continuously pressing `next */
/* month', wait 500 ms before going */
/* to the next month */
#define MC_NEXTMONTHTIMER 1 /* Timer ID's */
#define MC_PREVMONTHTIMER 2
typedef struct
{
COLORREF bk;
COLORREF txt;
COLORREF titlebk;
COLORREF titletxt;
COLORREF monthbk;
COLORREF trailingtxt;
HFONT hFont;
HFONT hBoldFont;
int textHeight;
int textWidth;
int height_increment;
int width_increment;
int left_offset;
int top_offset;
int firstDayplace; /* place of the first day of the current month */
int delta; /* scroll rate; # of months that the */
/* control moves when user clicks a scroll button */
int visible; /* # of months visible */
int firstDay; /* Start month calendar with firstDay's day */
int monthRange;
MONTHDAYSTATE *monthdayState;
SYSTEMTIME todaysDate;
DWORD currentMonth;
DWORD currentYear;
int status; /* See MC_SEL flags */
int curSelDay; /* current selected day */
int firstSelDay; /* first selected day */
int maxSelCount;
SYSTEMTIME minSel;
SYSTEMTIME maxSel;
DWORD rangeValid;
SYSTEMTIME minDate;
SYSTEMTIME maxDate;
RECT rcClient; /* rect for whole client area */
RECT rcDraw; /* rect for drawable portion of client area */
RECT title; /* rect for the header above the calendar */
RECT titlebtnnext; /* the `next month' button in the header */
RECT titlebtnprev; /* the `prev month' button in the header */
RECT titlemonth; /* the `month name' txt in the header */
RECT titleyear; /* the `year number' txt in the header */
RECT prevmonth; /* day numbers of the previous month */
RECT nextmonth; /* day numbers of the next month */
RECT days; /* week numbers at left side */
RECT weeknums; /* week numbers at left side */
RECT today; /* `today: xx/xx/xx' text rect */
} MONTHCAL_INFO, *LPMONTHCAL_INFO;
/* take #days/month from ole/parsedt.c; /* take #days/month from ole/parsedt.c;
* we want full month-names, and abbreviated weekdays, so these are * we want full month-names, and abbreviated weekdays, so these are
* defined here */ * defined here */
...@@ -40,7 +100,7 @@ const int mdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0}; ...@@ -40,7 +100,7 @@ const int mdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0};
const char * const monthtxt[] = {"January", "February", "March", "April", "May", const char * const monthtxt[] = {"January", "February", "March", "April", "May",
"June", "July", "August", "September", "October", "June", "July", "August", "September", "October",
"November", "December"}; "November", "December"};
const char * const daytxt[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; static const char * const daytxt[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
static const int DayOfWeekTable[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; static const int DayOfWeekTable[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
...@@ -103,7 +163,7 @@ void MONTHCAL_CopyTime(const SYSTEMTIME *from, SYSTEMTIME *to) ...@@ -103,7 +163,7 @@ void MONTHCAL_CopyTime(const SYSTEMTIME *from, SYSTEMTIME *to)
/* returns the day in the week(0 == sunday, 6 == saturday) */ /* returns the day in the week(0 == sunday, 6 == saturday) */
/* day(1 == 1st, 2 == 2nd... etc), year is the year value */ /* day(1 == 1st, 2 == 2nd... etc), year is the year value */
int MONTHCAL_CalculateDayOfWeek(DWORD day, DWORD month, DWORD year) static int MONTHCAL_CalculateDayOfWeek(DWORD day, DWORD month, DWORD year)
{ {
year-=(month < 3); year-=(month < 3);
......
...@@ -15,17 +15,18 @@ ...@@ -15,17 +15,18 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "nativefont.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(nativefont) DEFAULT_DEBUG_CHANNEL(nativefont);
typedef struct
{
DWORD dwDummy; /* just to keep the compiler happy ;-) */
} NATIVEFONT_INFO;
#define NATIVEFONT_GetInfoPtr(hwnd) ((NATIVEFONT_INFO *)GetWindowLongA (hwnd, 0)) #define NATIVEFONT_GetInfoPtr(hwnd) ((NATIVEFONT_INFO *)GetWindowLongA (hwnd, 0))
static LRESULT static LRESULT
NATIVEFONT_Create (HWND hwnd, WPARAM wParam, LPARAM lParam) NATIVEFONT_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
{ {
......
...@@ -15,11 +15,22 @@ ...@@ -15,11 +15,22 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "pager.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(pager) DEFAULT_DEBUG_CHANNEL(pager);
typedef struct
{
HWND hwndChild;
COLORREF clrBk;
INT nBorder;
INT nButtonSize;
INT nPos;
BOOL bForward;
INT nChildSize;
} PAGER_INFO;
#define PAGER_GetInfoPtr(hwnd) ((PAGER_INFO *)GetWindowLongA(hwnd, 0)) #define PAGER_GetInfoPtr(hwnd) ((PAGER_INFO *)GetWindowLongA(hwnd, 0))
......
...@@ -8,11 +8,20 @@ ...@@ -8,11 +8,20 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "progress.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(progress) DEFAULT_DEBUG_CHANNEL(progress);
typedef struct
{
INT CurVal; /* Current progress value */
INT MinVal; /* Minimum progress value */
INT MaxVal; /* Maximum progress value */
INT Step; /* Step to use on PMB_STEPIT */
COLORREF ColorBar; /* Bar color */
COLORREF ColorBk; /* Background color */
HFONT hFont; /* Handle to font (not unused) */
} PROGRESS_INFO;
/* Control configuration constants */ /* Control configuration constants */
......
...@@ -23,10 +23,63 @@ ...@@ -23,10 +23,63 @@
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "wingdi.h"
#include "commctrl.h" #include "commctrl.h"
#include "rebar.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(rebar) DEFAULT_DEBUG_CHANNEL(rebar);
typedef struct
{
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
INT iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
UINT uMinHeight;
UINT fDraw; /* drawing flags */
RECT rcBand; /* calculated band rectangle */
RECT rcGripper; /* calculated gripper rectangle */
RECT rcCapImage; /* calculated caption image rectangle */
RECT rcCapText; /* calculated caption text rectangle */
RECT rcChild; /* calculated child rectangle */
LPWSTR lpText;
HWND hwndPrevParent;
} REBAR_BAND;
typedef struct
{
COLORREF clrBk; /* background color */
COLORREF clrText; /* text color */
HIMAGELIST himl; /* handle to imagelist */
UINT uNumBands; /* number of bands in the rebar */
HWND hwndToolTip; /* handle to the tool tip control */
HWND hwndNotify; /* notification window (parent) */
HFONT hFont; /* handle to the rebar's font */
SIZE imageSize; /* image size (image list) */
SIZE calcSize; /* calculated rebar size */
BOOL bAutoResize; /* auto resize deadlock flag */
BOOL bUnicode; /* Unicode flag */
HCURSOR hcurArrow; /* handle to the arrow cursor */
HCURSOR hcurHorz; /* handle to the EW cursor */
HCURSOR hcurVert; /* handle to the NS cursor */
HCURSOR hcurDrag; /* handle to the drag cursor */
INT iVersion; /* version number */
REBAR_BAND *bands; /* pointer to the array of rebar bands */
} REBAR_INFO;
/* fDraw flags */ /* fDraw flags */
......
...@@ -14,11 +14,33 @@ ...@@ -14,11 +14,33 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "status.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(statusbar) DEFAULT_DEBUG_CHANNEL(statusbar);
typedef struct
{
INT x;
INT style;
RECT bound;
LPWSTR text;
HICON hIcon;
} STATUSWINDOWPART;
typedef struct
{
UINT16 numParts;
UINT16 textHeight;
UINT height;
BOOL simple;
HWND hwndToolTip;
HFONT hFont;
HFONT hDefaultFont;
COLORREF clrBk; /* background color */
BOOL bUnicode; /* unicode flag */
STATUSWINDOWPART part0; /* simple window */
STATUSWINDOWPART *parts;
} STATUSWINDOWINFO;
/* /*
* Run tests using Waite Group Windows95 API Bible Vol. 1&2 * Run tests using Waite Group Windows95 API Bible Vol. 1&2
......
...@@ -15,12 +15,51 @@ ...@@ -15,12 +15,51 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "tab.h"
#include "debugtools.h" #include "debugtools.h"
#include "cache.h" #include "cache.h"
#include "win.h" #include "win.h"
DEFAULT_DEBUG_CHANNEL(tab) DEFAULT_DEBUG_CHANNEL(tab);
typedef struct
{
UINT mask;
DWORD dwState;
LPSTR pszText;
INT cchTextMax;
INT iImage;
LPARAM lParam;
RECT rect; /* bounding rectangle of the item relative to the
* leftmost item (the leftmost item, 0, would have a
* "left" member of 0 in this rectangle)
*
* additionally the top member hold the row number
* and bottom is unused and should be 0 */
} TAB_ITEM;
typedef struct
{
UINT uNumItem; /* number of tab items */
UINT uNumRows; /* number of tab rows */
INT tabHeight; /* height of the tab row */
INT tabWidth; /* width of tabs */
HFONT hFont; /* handle to the current font */
HCURSOR hcurArrow; /* handle to the current cursor */
HIMAGELIST himl; /* handle to a image list (may be 0) */
HWND hwndToolTip; /* handle to tab's tooltip */
UINT cchTextMax;
INT leftmostVisible; /* Used for scrolling, this member contains
* the index of the first visible item */
INT iSelected; /* the currently selected item */
INT iHotTracked; /* the highlighted item under the mouse */
INT uFocus; /* item which has the focus */
TAB_ITEM* items; /* pointer to an array of TAB_ITEM's */
BOOL DoRedraw; /* flag for redrawing when tab contents is changed*/
BOOL needsScrolling; /* TRUE if the size of the tabs is greater than
* the size of the control */
BOOL fSizeSet; /* was the size of the tabs explicitly set? */
HWND hwndUpDown; /* Updown control used for scrolling */
} TAB_INFO;
/****************************************************************************** /******************************************************************************
* Positioning constants * Positioning constants
......
...@@ -33,12 +33,69 @@ ...@@ -33,12 +33,69 @@
#include "wingdi.h" #include "wingdi.h"
#include "winuser.h" #include "winuser.h"
#include "commctrl.h" #include "commctrl.h"
#include "imagelist.h"
#include "cache.h" #include "cache.h"
#include "comctl32.h" #include "comctl32.h"
#include "toolbar.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(toolbar) DEFAULT_DEBUG_CHANNEL(toolbar);
typedef struct
{
INT iBitmap;
INT idCommand;
BYTE fsState;
BYTE fsStyle;
DWORD dwData;
INT iString;
BOOL bHot;
INT nRow;
RECT rect;
} TBUTTON_INFO;
typedef struct
{
DWORD dwStructSize; /* size of TBBUTTON struct */
INT nHeight; /* height of the toolbar */
INT nWidth; /* width of the toolbar */
INT nButtonHeight;
INT nButtonWidth;
INT nBitmapHeight;
INT nBitmapWidth;
INT nIndent;
INT nRows; /* number of button rows */
INT nMaxTextRows; /* maximum number of text rows */
INT cxMin; /* minimum button width */
INT cxMax; /* maximum button width */
INT nNumButtons; /* number of buttons */
INT nNumBitmaps; /* number of bitmaps */
INT nNumStrings; /* number of strings */
BOOL bUnicode; /* ASCII (FALSE) or Unicode (TRUE)? */
BOOL bCaptured; /* mouse captured? */
INT nButtonDown;
INT nOldHit;
INT nHotItem; /* index of the "hot" item */
HFONT hFont; /* text font */
HIMAGELIST himlInt; /* image list created internally */
HIMAGELIST himlDef; /* default image list */
HIMAGELIST himlHot; /* hot image list */
HIMAGELIST himlDis; /* disabled image list */
HWND hwndToolTip; /* handle to tool tip control */
HWND hwndNotify; /* handle to the window that gets notifications */
BOOL bTransparent; /* background transparency flag */
BOOL bAutoSize; /* auto size deadlock indicator */
BOOL bAnchor; /* anchor highlight enabled */
DWORD dwExStyle; /* extended toolbar style */
DWORD dwDTFlags; /* DrawText flags */
COLORREF clrInsertMark; /* insert mark color */
RECT rcBound; /* bounding rectangle */
INT iVersion;
TBUTTON_INFO *buttons; /* pointer to button array */
LPWSTR *strings; /* pointer to string array */
} TOOLBAR_INFO;
#define SEPARATOR_WIDTH 8 #define SEPARATOR_WIDTH 8
#define TOP_BORDER 2 #define TOP_BORDER 2
......
...@@ -61,10 +61,53 @@ ...@@ -61,10 +61,53 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "tooltips.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(tooltips) DEFAULT_DEBUG_CHANNEL(tooltips);
typedef struct
{
WNDPROC wpOrigProc;
HWND hwndToolTip;
UINT uRefCount;
} TT_SUBCLASS_INFO, *LPTT_SUBCLASS_INFO;
typedef struct
{
UINT uFlags;
HWND hwnd;
UINT uId;
RECT rect;
HINSTANCE hinst;
LPWSTR lpszText;
LPARAM lParam;
} TTTOOL_INFO;
typedef struct
{
WCHAR szTipText[INFOTIPSIZE];
BOOL bActive;
BOOL bTrackActive;
UINT uNumTools;
COLORREF clrBk;
COLORREF clrText;
HFONT hFont;
INT xTrackPos;
INT yTrackPos;
INT nMaxTipWidth;
INT nTool;
INT nCurrentTool;
INT nTrackTool;
INT nReshowTime;
INT nAutoPopTime;
INT nInitialTime;
RECT rcMargin;
BOOL bNotifyUnicode;
TTTOOL_INFO *tools;
} TOOLTIPS_INFO;
#define ID_TIMERSHOW 1 /* show delay timer */ #define ID_TIMERSHOW 1 /* show delay timer */
#define ID_TIMERPOP 2 /* auto pop timer */ #define ID_TIMERPOP 2 /* auto pop timer */
......
...@@ -25,11 +25,39 @@ ...@@ -25,11 +25,39 @@
#include "winbase.h" #include "winbase.h"
#include "commctrl.h" #include "commctrl.h"
#include "trackbar.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(trackbar); DEFAULT_DEBUG_CHANNEL(trackbar);
typedef struct
{
INT nRangeMin;
INT nRangeMax;
INT nLineSize;
INT nPageSize;
INT nSelMin;
INT nSelMax;
INT nPos;
UINT uThumbLen;
UINT uNumTics;
UINT uTicFreq;
HWND hwndNotify;
HWND hwndToolTip;
HWND hwndBuddyLA;
HWND hwndBuddyRB;
INT fLocation;
COLORREF clrBk;
INT flags;
BOOL bFocus;
RECT rcChannel;
RECT rcSelection;
RECT rcThumb;
INT dragPos;
LPLONG tics;
} TRACKBAR_INFO;
/* #define TB_REFRESH_TIMER 1 */
/* #define TB_REFRESH_DELAY 1 */
#define TRACKBAR_GetInfoPtr(wndPtr) ((TRACKBAR_INFO *)GetWindowLongA (hwnd,0)) #define TRACKBAR_GetInfoPtr(wndPtr) ((TRACKBAR_INFO *)GetWindowLongA (hwnd,0))
......
...@@ -43,11 +43,10 @@ ...@@ -43,11 +43,10 @@
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "wingdi.h"
#include "commctrl.h" #include "commctrl.h"
#include "treeview.h"
#include "comctl32.h" #include "comctl32.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(treeview) DEFAULT_DEBUG_CHANNEL(treeview);
/* ffs should be in <string.h>. */ /* ffs should be in <string.h>. */
...@@ -58,6 +57,103 @@ DEFAULT_DEBUG_CHANNEL(treeview) ...@@ -58,6 +57,103 @@ DEFAULT_DEBUG_CHANNEL(treeview)
#define tv_set_bit(nr,bf) ((LPBYTE)bf)[nr>>3]|=(1<<(nr&7)) #define tv_set_bit(nr,bf) ((LPBYTE)bf)[nr>>3]|=(1<<(nr&7))
#define tv_clear_bit(nr,bf) ((LPBYTE)bf)[nr>>3]&=~(1<<(nr&7)) #define tv_clear_bit(nr,bf) ((LPBYTE)bf)[nr>>3]&=~(1<<(nr&7))
#define MINIMUM_INDENT 10
#define TV_REFRESH_DELAY 100 /* 100 ms delay between two refreshes */
#define TV_DEFAULTITEMHEIGHT 16
#define TVITEM_ALLOC 16 /* default nr of items to allocate at first try */
/* internal structures */
typedef struct {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
int iIntegral;
int iLevel; /* indentation level:0=root level */
COLORREF clrText;
HTREEITEM parent; /* handle to parent or 0 if at root*/
HTREEITEM firstChild; /* handle to first child or 0 if no child*/
HTREEITEM sibling; /* handle to next item in list, 0 if last */
HTREEITEM upsibling; /* handle to previous item in list, 0 if first */
int visible;
RECT rect;
RECT text;
RECT expandBox; /* expand box (+/-) coordinate */
RECT bitmap;
RECT statebitmap;
} TREEVIEW_ITEM;
typedef struct
{
UINT uInternalStatus;
UINT bAutoSize; /* merge with uInternalStatus */
INT Timer;
UINT uNumItems; /* number of valid TREEVIEW_ITEMs */
UINT uNumPtrsAlloced;
HTREEITEM uMaxHandle; /* needed for delete_item */
HTREEITEM TopRootItem; /* handle to first item in treeview */
INT cdmode; /* last custom draw setting */
UINT uScrollTime; /* max. time for scrolling in milliseconds*/
UINT uItemHeight; /* item height, -1 for default item height */
UINT uRealItemHeight;/* current item height in pixels */
UINT uVisibleHeight; /* visible height of treeview in pixels */
UINT uTotalHeight; /* total height of treeview in pixels */
UINT uVisibleWidth;
UINT uTotalWidth;
UINT uIndent; /* indentation in pixels */
HTREEITEM selectedItem; /* handle to selected item or 0 if none */
HTREEITEM focusItem; /* handle to item that has focus, 0 if none */
HTREEITEM hotItem; /* handle currently under cursor, 0 if none */
HTREEITEM editItem; /* handle to item currently editted, 0 if none */
HTREEITEM firstVisible; /* handle to first visible item */
HTREEITEM dropItem; /* handle to item selected by drag cursor */
HTREEITEM insertMarkItem; /* item after which insertion mark is placed */
BOOL insertBeforeorAfter; /* flag used by TVM_SETINSERTMARK */
HIMAGELIST dragList; /* Bitmap of dragged item */
INT cx,cy; /* current x/y place in list */
COLORREF clrBk;
COLORREF clrText;
COLORREF clrLine;
COLORREF clrInsertMark;
HFONT hFont;
HFONT hBoldFont;
HWND hwndToolTip;
HWND hwndEdit;
WNDPROC wpEditOrig; /* needed for subclassing edit control */
HIMAGELIST himlNormal;
HIMAGELIST himlState;
LPTVSORTCB pCallBackSort; /* ptr to TVSORTCB struct for callback sorting */
TREEVIEW_ITEM *items; /* itemlist */
INT *freeList; /* bitmap indicating which elements are valid */
/* 1=valid, 0=free; */
/* size of list= uNumPtrsAlloced/32 */
} TREEVIEW_INFO;
/* bitflags for infoPtr->uInternalStatus */
#define TV_HSCROLL 0x01 /* treeview too large to fit in window */
#define TV_VSCROLL 0x02 /* (horizontal/vertical) */
#define TV_LDRAG 0x04 /* Lbutton pushed to start drag */
#define TV_LDRAGGING 0x08 /* Lbutton pushed, mouse moved. */
#define TV_RDRAG 0x10 /* dito Rbutton */
#define TV_RDRAGGING 0x20
/* bitflags for infoPtr->timer */
#define TV_REFRESH_TIMER 1
#define TV_EDIT_TIMER 2
#define TV_REFRESH_TIMER_SET 1
#define TV_EDIT_TIMER_SET 2
#define TREEVIEW_GetInfoPtr(hwnd) \ #define TREEVIEW_GetInfoPtr(hwnd) \
((TREEVIEW_INFO *) GetWindowLongA( hwnd, 0)) ((TREEVIEW_INFO *) GetWindowLongA( hwnd, 0))
......
...@@ -37,11 +37,32 @@ ...@@ -37,11 +37,32 @@
#include "winuser.h" #include "winuser.h"
#include "commctrl.h" #include "commctrl.h"
#include "winnls.h" #include "winnls.h"
#include "updown.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(updown); DEFAULT_DEBUG_CHANNEL(updown);
#define UPDOWN_BUDDYCLASSNAMELEN 40
typedef struct
{
UINT AccelCount; /* Number of elements in AccelVect */
UDACCEL* AccelVect; /* Vector containing AccelCount elements */
INT Base; /* Base to display nr in the buddy window */
INT CurVal; /* Current up-down value */
INT MinVal; /* Minimum up-down value */
INT MaxVal; /* Maximum up-down value */
HWND Buddy; /* Handle to the buddy window */
CHAR szBuddyClass[UPDOWN_BUDDYCLASSNAMELEN]; /* Buddy window class name */
INT Flags; /* Internal Flags FLAG_* */
} UPDOWN_INFO;
typedef struct tagNM_UPDOWN
{
NMHDR hdr;
int iPos;
int iDelta;
} NM_UPDOWN;
/* Control configuration constants */ /* Control configuration constants */
#define INITIAL_DELAY 500 /* initial timer until auto-increment kicks in */ #define INITIAL_DELAY 500 /* initial timer until auto-increment kicks in */
......
...@@ -26,10 +26,9 @@ ...@@ -26,10 +26,9 @@
#include "winreg.h" #include "winreg.h"
#include "syslevel.h" #include "syslevel.h"
#include "shlwapi.h" #include "shlwapi.h"
#include "imagelist.h"
DEFAULT_DEBUG_CHANNEL(shell) DEFAULT_DEBUG_CHANNEL(shell);
DECLARE_DEBUG_CHANNEL(exec) DECLARE_DEBUG_CHANNEL(exec);
/* .ICO file ICONDIR definitions */ /* .ICO file ICONDIR definitions */
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#ifndef __WINE_SHELL_MAIN_H #ifndef __WINE_SHELL_MAIN_H
#define __WINE_SHELL_MAIN_H #define __WINE_SHELL_MAIN_H
#include "imagelist.h"
#include "commctrl.h" #include "commctrl.h"
#include "shell.h" #include "shell.h"
#include "docobj.h" #include "docobj.h"
......
/*
* Animation class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_ANIMATE_H
#define __WINE_ANIMATE_H
#include "windef.h"
#include "winbase.h"
#include "vfw.h"
typedef struct tagANIMATE_INFO
{
/* pointer to msvideo functions. it's easier to put them here.
* to be correct, they should be defined on a per process basis, but
* this would required a per process storage. We're using a per object
* storage instead, which is not efficient on memory usage, but
* will lead to less bugs in the future
*/
HIC WINAPI (*fnICOpen)(DWORD, DWORD, UINT);
LRESULT WINAPI (*fnICClose)(HIC);
LRESULT WINAPI (*fnICSendMessage)(HIC, UINT, DWORD, DWORD);
DWORD WINAPIV (*fnICDecompress)(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
HMMIO WINAPI (*fnmmioOpenA)(LPSTR,MMIOINFO*,DWORD);
MMRESULT WINAPI (*fnmmioClose)(HMMIO,UINT);
UINT WINAPI (*fnmmioAscend)(HMMIO,MMCKINFO*,UINT);
UINT WINAPI (*fnmmioDescend)(HMMIO,MMCKINFO*,const MMCKINFO*,UINT);
LONG WINAPI (*fnmmioSeek)(HMMIO,LONG,INT);
LONG WINAPI (*fnmmioRead)(HMMIO,HPSTR,LONG);
/* reference to input stream (file or resource) */
HGLOBAL hRes;
HMMIO hMMio; /* handle to mmio stream */
HWND hWnd;
/* information on the loaded AVI file */
MainAVIHeader mah;
AVIStreamHeader ash;
LPBITMAPINFOHEADER inbih;
LPDWORD lpIndex;
/* data for the decompressor */
HIC hic;
LPBITMAPINFOHEADER outbih;
LPVOID indata;
LPVOID outdata;
/* data for the background mechanism */
CRITICAL_SECTION cs;
HANDLE hService;
UINT uTimer;
/* data for playing the file */
int nFromFrame;
int nToFrame;
int nLoop;
int currFrame;
} ANIMATE_INFO;
extern VOID ANIMATE_Register (VOID);
extern VOID ANIMATE_Unregister (VOID);
#endif /* __WINE_ANIMATE_H */
/*
* ComboBoxEx class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_COMBOEX_H
#define __WINE_COMBOEX_H
#include "commctrl.h"
#include "windef.h"
typedef struct tagCOMBOEX_INFO
{
HIMAGELIST himl;
HWND hwndCombo;
DWORD dwExtStyle;
} COMBOEX_INFO;
extern VOID COMBOEX_Register (VOID);
extern VOID COMBOEX_Unregister (VOID);
#endif /* __WINE_COMBOEX_H */
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "wingdi.h" #include "wingdi.h"
#include "winuser.h" #include "winuser.h"
#include "winnls.h" #include "winnls.h"
#include "imagelist.h"
#include "prsht.h" #include "prsht.h"
#ifdef __cplusplus #ifdef __cplusplus
...@@ -376,11 +375,9 @@ typedef struct ...@@ -376,11 +375,9 @@ typedef struct
/* ImageList */ /* ImageList */
/*
#if !defined(__WINE__) || !defined(__WINE_IMAGELIST_C)
struct _IMAGELIST; struct _IMAGELIST;
typedef struct _IMAGELIST *HIMAGELIST; typedef struct _IMAGELIST *HIMAGELIST;
#endif */ /* __WINE__ */
#define CLR_NONE 0xFFFFFFFF #define CLR_NONE 0xFFFFFFFF
#define CLR_DEFAULT 0xFF000000 #define CLR_DEFAULT 0xFF000000
......
/*
* Date and time picker class extra info
*
* Copyright 1998 Eric Kohl
* Copyright 1999 Alex Priem
*/
#ifndef __WINE_DATETIME_H
#define __WINE_DATETIME_H
#include "windef.h"
#include "winbase.h"
typedef struct tagDATETIME_INFO
{
HWND hMonthCal;
HWND hUpdown;
SYSTEMTIME date;
BOOL dateValid;
HWND hwndCheckbut;
RECT rcClient; /* rect around the edge of the window */
RECT rcDraw; /* rect inside of the border */
RECT checkbox; /* checkbox allowing the control to be enabled/disabled */
RECT calbutton; /* button that toggles the dropdown of the monthcal control */
BOOL bCalDepressed; /* TRUE = cal button is depressed */
int select;
HFONT hFont;
int nrFieldsAllocated;
int nrFields;
int haveFocus;
int *fieldspec;
RECT *fieldRect;
int *buflen;
char textbuf[256];
POINT monthcal_pos;
} DATETIME_INFO, *LPDATETIME_INFO;
extern VOID DATETIME_Register (VOID);
extern VOID DATETIME_Unregister (VOID);
/* this list of defines is closely related to `allowedformatchars' defined
* in datetime.c; the high nibble indicates the `base type' of the format
* specifier.
* Do not change without first reading DATETIME_UseFormat.
*
*/
#define DT_END_FORMAT 0
#define ONEDIGITDAY 0x01
#define TWODIGITDAY 0x02
#define THREECHARDAY 0x03
#define FULLDAY 0x04
#define ONEDIGIT12HOUR 0x11
#define TWODIGIT12HOUR 0x12
#define ONEDIGIT24HOUR 0x21
#define TWODIGIT24HOUR 0x22
#define ONEDIGITMINUTE 0x31
#define TWODIGITMINUTE 0x32
#define ONEDIGITMONTH 0x41
#define TWODIGITMONTH 0x42
#define THREECHARMONTH 0x43
#define FULLMONTH 0x44
#define ONEDIGITSECOND 0x51
#define TWODIGITSECOND 0x52
#define ONELETTERAMPM 0x61
#define TWOLETTERAMPM 0x62
#define ONEDIGITYEAR 0x71
#define TWODIGITYEAR 0x72
#define FULLYEAR 0x73
#define FORMATCALLBACK 0x81 /* -> maximum of 0x80 callbacks possible */
#define FORMATCALLMASK 0x80
#define DT_STRING 0x0100
#define DTHT_DATEFIELD 0xff /* for hit-testing */
#define DTHT_NONE 0
#define DTHT_CHECKBOX 0x200 /* these should end at '00' , to make */
#define DTHT_MCPOPUP 0x300 /* & DTHT_DATEFIELD 0 when DATETIME_KeyDown */
#define DTHT_GOTFOCUS 0x400 /* tests for date-fields */
#endif /* __WINE_DATETIME_H */
/*
* Flat scroll bar class extra info
*
* Copyright 1998 Eric Kohl
* Copyright 1999 Alex Priem
*/
#ifndef __WINE_FLATSB_H
#define __WINE_FLATSB_H
#include "windef.h"
typedef struct tagFLATSB_INFO
{
DWORD dwDummy; /* just to keep the compiler happy ;-) */
} FLATSB_INFO, *LPFLATSB_INFO;
extern VOID FLATSB_Register (VOID);
extern VOID FLATSB_Unregister (VOID);
#endif /* __WINE_FLATSB_H */
/*
* Header window definitions
*
* Copyright 1998 Eric Kohl
*
*/
#ifndef __WINE_HEADER_H_
#define __WINE_HEADER_H_
#include "commctrl.h"
#include "windef.h"
typedef struct
{
INT cxy;
HBITMAP hbm;
LPWSTR pszText;
INT fmt;
LPARAM lParam;
INT iImage;
INT iOrder; /* see documentation of HD_ITEM */
BOOL bDown; /* is item pressed? (used for drawing) */
RECT rect; /* bounding rectangle of the item */
} HEADER_ITEM;
typedef struct
{
UINT uNumItem; /* number of items (columns) */
INT nHeight; /* height of the header (pixels) */
HFONT hFont; /* handle to the current font */
HCURSOR hcurArrow; /* handle to the arrow cursor */
HCURSOR hcurDivider; /* handle to a cursor (used over dividers) <-|-> */
HCURSOR hcurDivopen; /* handle to a cursor (used over dividers) <-||-> */
BOOL bCaptured; /* Is the mouse captured? */
BOOL bPressed; /* Is a header item pressed (down)? */
BOOL bTracking; /* Is in tracking mode? */
BOOL bUnicode; /* Unicode flag */
INT iMoveItem; /* index of tracked item. (Tracking mode) */
INT xTrackOffset; /* distance between the right side of the tracked item and the cursor */
INT xOldTrack; /* track offset (see above) after the last WM_MOUSEMOVE */
INT nOldWidth; /* width of a sizing item after the last WM_MOUSEMOVE */
INT iHotItem; /* index of hot item (cursor is over this item) */
HIMAGELIST himl; /* handle to a image list (may be 0) */
HEADER_ITEM *items; /* pointer to array of HEADER_ITEM's */
BOOL bRectsValid; /* validity flag for bounding rectangles */
LPINT pOrder; /* pointer to order array */
} HEADER_INFO;
extern VOID HEADER_Register (VOID);
extern VOID HEADER_Unregister (VOID);
#endif /* __WINE_HEADER_H_ */
/*
* Hotkey class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_HOTKEY_H
#define __WINE_HOTKEY_H
#include "windef.h"
typedef struct tagHOTKEY_INFO
{
HFONT hFont;
BOOL bFocus;
INT nHeight;
} HOTKEY_INFO;
extern VOID HOTKEY_Register (VOID);
extern VOID HOTKEY_Unregister (VOID);
#endif /* __WINE_HOTKEY_H */
/*
* IP Address class extra info
*
* Copyright 1998 Eric Kohl
* Copyright 1998 Alex Priem
*/
#ifndef __WINE_IPADDRESS_H
#define __WINE_IPADDRESS_H
#include "windef.h"
typedef struct tagIPADDRESS_INFO
{
BYTE LowerLimit[4];
BYTE UpperLimit[4];
RECT rcClient;
INT uFocus;
} IPADDRESS_INFO;
typedef struct tagIP_SUBCLASS_INFO
{
WNDPROC wpOrigProc[4];
HWND hwndIP[4];
IPADDRESS_INFO *infoPtr;
HWND hwnd;
UINT uRefCount;
} IP_SUBCLASS_INFO, *LPIP_SUBCLASS_INFO;
extern void IPADDRESS_Register (void);
extern void IPADDRESS_Unregister (void);
#endif /* __WINE_IPADDRESS_H */
/*
* Listview class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_LISTVIEW_H
#define __WINE_LISTVIEW_H
#include "commctrl.h"
#include "windef.h"
#include "wingdi.h"
/* Some definitions for inline edit control */
typedef BOOL (*EditlblCallback)(HWND, LPSTR, DWORD);
typedef struct tagEDITLABEL_ITEM
{
WNDPROC EditWndProc;
DWORD param;
EditlblCallback EditLblCb;
} EDITLABEL_ITEM;
typedef struct tagLISTVIEW_SUBITEM
{
LPSTR pszText;
INT iImage;
INT iSubItem;
} LISTVIEW_SUBITEM;
typedef struct tagLISTVIEW_ITEM
{
UINT state;
LPSTR pszText;
INT iImage;
LPARAM lParam;
INT iIndent;
POINT ptPosition;
} LISTVIEW_ITEM;
typedef struct tagLISTVIEW_SELECTION
{
DWORD lower;
DWORD upper;
} LISTVIEW_SELECTION;
typedef struct tagLISTVIEW_INFO
{
COLORREF clrBk;
COLORREF clrText;
COLORREF clrTextBk;
HIMAGELIST himlNormal;
HIMAGELIST himlSmall;
HIMAGELIST himlState;
BOOL bLButtonDown;
BOOL bRButtonDown;
INT nFocusedItem;
HDPA hdpaSelectionRanges;
INT nItemHeight;
INT nItemWidth;
INT nSelectionMark;
INT nHotItem;
SHORT notifyFormat;
RECT rcList;
RECT rcView;
SIZE iconSize;
SIZE iconSpacing;
UINT uCallbackMask;
HWND hwndHeader;
HFONT hDefaultFont;
HFONT hFont;
BOOL bFocus;
DWORD dwExStyle; /* extended listview style */
HDPA hdpaItems;
PFNLVCOMPARE pfnCompare;
LPARAM lParamSort;
HWND hwndEdit;
INT nEditLabelItem;
EDITLABEL_ITEM *pedititem;
DWORD dwHoverTime;
WPARAM charCode; /* Added */
CHAR szSearchParam[ MAX_PATH ]; /* Added */
DWORD timeSinceLastKeyPress; /* Added */
INT nSearchParamLength; /* Added */
} LISTVIEW_INFO;
extern VOID LISTVIEW_Register (VOID);
extern VOID LISTVIEW_Unregister (VOID);
#endif /* __WINE_LISTVIEW_H */
/*
* Month calendar class extra info
*
* Copyright 1998 Eric Kohl
* Copyright 1999 Alex Priem
*/
#ifndef __WINE_MONTHCAL_H
#define __WINE_MONTHCAL_H
#include "commctrl.h"
#include "windef.h"
#include "wingdi.h"
#define MC_SEL_LBUTUP 1 /* Left button released */
#define MC_SEL_LBUTDOWN 2 /* Left button pressed in calendar */
#define MC_PREVPRESSED 4 /* Prev month button pressed */
#define MC_NEXTPRESSED 8 /* Next month button pressed */
#define MC_NEXTMONTHDELAY 350 /* when continuously pressing `next */
/* month', wait 500 ms before going */
/* to the next month */
#define MC_NEXTMONTHTIMER 1 /* Timer ID's */
#define MC_PREVMONTHTIMER 2
typedef struct tagMONTHCAL_INFO
{
COLORREF bk;
COLORREF txt;
COLORREF titlebk;
COLORREF titletxt;
COLORREF monthbk;
COLORREF trailingtxt;
HFONT hFont;
HFONT hBoldFont;
int textHeight;
int textWidth;
int height_increment;
int width_increment;
int left_offset;
int top_offset;
int firstDayplace; /* place of the first day of the current month */
int delta; /* scroll rate; # of months that the */
/* control moves when user clicks a scroll button */
int visible; /* # of months visible */
int firstDay; /* Start month calendar with firstDay's day */
int monthRange;
MONTHDAYSTATE *monthdayState;
SYSTEMTIME todaysDate;
DWORD currentMonth;
DWORD currentYear;
int status; /* See MC_SEL flags */
int curSelDay; /* current selected day */
int firstSelDay; /* first selected day */
int maxSelCount;
SYSTEMTIME minSel;
SYSTEMTIME maxSel;
DWORD rangeValid;
SYSTEMTIME minDate;
SYSTEMTIME maxDate;
RECT rcClient; /* rect for whole client area */
RECT rcDraw; /* rect for drawable portion of client area */
RECT title; /* rect for the header above the calendar */
RECT titlebtnnext; /* the `next month' button in the header */
RECT titlebtnprev; /* the `prev month' button in the header */
RECT titlemonth; /* the `month name' txt in the header */
RECT titleyear; /* the `year number' txt in the header */
RECT prevmonth; /* day numbers of the previous month */
RECT nextmonth; /* day numbers of the next month */
RECT days; /* week numbers at left side */
RECT weeknums; /* week numbers at left side */
RECT today; /* `today: xx/xx/xx' text rect */
} MONTHCAL_INFO, *LPMONTHCAL_INFO;
extern void MONTHCAL_CopyTime (const SYSTEMTIME *from, SYSTEMTIME *to);
extern int MONTHCAL_CalculateDayOfWeek (DWORD day, DWORD month, DWORD year);
extern const int mdays[];
extern const char * const daytxt[];
extern const char * const monthtxt[];
extern void MONTHCAL_Register (void);
extern void MONTHCAL_Unregister (void);
#endif /* __WINE_MONTHCAL_H */
/*
* Native font class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_NATIVEFONT_H
#define __WINE_NATIVEFONT_H
#include "windef.h"
typedef struct tagNATIVEFONT_INFO
{
DWORD dwDummy; /* just to keep the compiler happy ;-) */
} NATIVEFONT_INFO;
extern VOID NATIVEFONT_Register (VOID);
extern VOID NATIVEFONT_Unregister (VOID);
#endif /* __WINE_NATIVEFONT_H */
/*
* Pager class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_PAGER_H
#define __WINE_PAGER_H
#include "windef.h"
#include "wingdi.h"
typedef struct tagPAGER_INFO
{
HWND hwndChild;
COLORREF clrBk;
INT nBorder;
INT nButtonSize;
INT nPos;
BOOL bForward;
INT nChildSize;
} PAGER_INFO;
extern VOID PAGER_Register (VOID);
extern VOID PAGER_Unregister (VOID);
#endif /* __WINE_PAGER_H */
/*
* Progress class extra info
*
* Copyright 1997 Dimitrie O. Paun
*/
#ifndef __WINE_PROGRESS_H
#define __WINE_PROGRESS_H
#include "windef.h"
#include "wingdi.h"
typedef struct
{
INT CurVal; /* Current progress value */
INT MinVal; /* Minimum progress value */
INT MaxVal; /* Maximum progress value */
INT Step; /* Step to use on PMB_STEPIT */
COLORREF ColorBar; /* Bar color */
COLORREF ColorBk; /* Background color */
HFONT hFont; /* Handle to font (not unused) */
} PROGRESS_INFO;
extern VOID PROGRESS_Register (VOID);
extern VOID PROGRESS_Unregister (VOID);
#endif /* __WINE_PROGRESS_H */
/*
* Rebar class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_REBAR_H
#define __WINE_REBAR_H
#include "commctrl.h"
#include "windef.h"
#include "wingdi.h"
typedef struct tagREBAR_BAND
{
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
INT iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
UINT uMinHeight;
UINT fDraw; /* drawing flags */
RECT rcBand; /* calculated band rectangle */
RECT rcGripper; /* calculated gripper rectangle */
RECT rcCapImage; /* calculated caption image rectangle */
RECT rcCapText; /* calculated caption text rectangle */
RECT rcChild; /* calculated child rectangle */
LPWSTR lpText;
HWND hwndPrevParent;
} REBAR_BAND;
typedef struct tagREBAR_INFO
{
COLORREF clrBk; /* background color */
COLORREF clrText; /* text color */
HIMAGELIST himl; /* handle to imagelist */
UINT uNumBands; /* number of bands in the rebar */
HWND hwndToolTip; /* handle to the tool tip control */
HWND hwndNotify; /* notification window (parent) */
HFONT hFont; /* handle to the rebar's font */
SIZE imageSize; /* image size (image list) */
SIZE calcSize; /* calculated rebar size */
BOOL bAutoResize; /* auto resize deadlock flag */
BOOL bUnicode; /* Unicode flag */
HCURSOR hcurArrow; /* handle to the arrow cursor */
HCURSOR hcurHorz; /* handle to the EW cursor */
HCURSOR hcurVert; /* handle to the NS cursor */
HCURSOR hcurDrag; /* handle to the drag cursor */
INT iVersion; /* version number */
REBAR_BAND *bands; /* pointer to the array of rebar bands */
} REBAR_INFO;
extern VOID REBAR_Register (VOID);
extern VOID REBAR_Unregister (VOID);
#endif /* __WINE_REBAR_H */
/*
* Status window definitions
*
* Copyright 1996 Bruce Milner
*/
#ifndef __WINE_STATUS_H
#define __WINE_STATUS_H
#include "windef.h"
#include "wingdi.h"
typedef struct
{
INT x;
INT style;
RECT bound;
LPWSTR text;
HICON hIcon;
} STATUSWINDOWPART;
typedef struct
{
UINT16 numParts;
UINT16 textHeight;
UINT height;
BOOL simple;
HWND hwndToolTip;
HFONT hFont;
HFONT hDefaultFont;
COLORREF clrBk; /* background color */
BOOL bUnicode; /* unicode flag */
STATUSWINDOWPART part0; /* simple window */
STATUSWINDOWPART *parts;
} STATUSWINDOWINFO;
extern VOID STATUS_Register (VOID);
extern VOID STATUS_Unregister (VOID);
#endif /* __WINE_STATUS_H */
/*
* Tab control class extra info
*
* Copyright 1998 Anders Carlsson
*/
#ifndef __WINE_TAB_H
#define __WINE_TAB_H
#include "commctrl.h"
#include "windef.h"
typedef struct tagTAB_ITEM
{
UINT mask;
DWORD dwState;
LPSTR pszText;
INT cchTextMax;
INT iImage;
LPARAM lParam;
RECT rect; /* bounding rectangle of the item relative to the
* leftmost item (the leftmost item, 0, would have a
* "left" member of 0 in this rectangle)
*
* additionally the top member hold the row number
* and bottom is unused and should be 0 */
} TAB_ITEM;
typedef struct tagTAB_INFO
{
UINT uNumItem; /* number of tab items */
UINT uNumRows; /* number of tab rows */
INT tabHeight; /* height of the tab row */
INT tabWidth; /* width of tabs */
HFONT hFont; /* handle to the current font */
HCURSOR hcurArrow; /* handle to the current cursor */
HIMAGELIST himl; /* handle to a image list (may be 0) */
HWND hwndToolTip; /* handle to tab's tooltip */
UINT cchTextMax;
INT leftmostVisible; /* Used for scrolling, this member contains
* the index of the first visible item */
INT iSelected; /* the currently selected item */
INT iHotTracked; /* the highlighted item under the mouse */
INT uFocus; /* item which has the focus */
TAB_ITEM* items; /* pointer to an array of TAB_ITEM's */
BOOL DoRedraw; /* flag for redrawing when tab contents is changed*/
BOOL needsScrolling; /* TRUE if the size of the tabs is greater than
* the size of the control */
BOOL fSizeSet; /* was the size of the tabs explicitly set? */
HWND hwndUpDown; /* Updown control used for scrolling */
} TAB_INFO;
extern VOID TAB_Register (VOID);
extern VOID TAB_Unregister (VOID);
#endif /* __WINE_TAB_H */
/*
* Toolbar class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_TOOLBAR_H
#define __WINE_TOOLBAR_H
#include "commctrl.h"
#include "windef.h"
typedef struct tagTBUTTON_INFO
{
INT iBitmap;
INT idCommand;
BYTE fsState;
BYTE fsStyle;
DWORD dwData;
INT iString;
BOOL bHot;
INT nRow;
RECT rect;
} TBUTTON_INFO;
typedef struct tagTOOLBAR_INFO
{
DWORD dwStructSize; /* size of TBBUTTON struct */
INT nHeight; /* height of the toolbar */
INT nWidth; /* width of the toolbar */
INT nButtonHeight;
INT nButtonWidth;
INT nBitmapHeight;
INT nBitmapWidth;
INT nIndent;
INT nRows; /* number of button rows */
INT nMaxTextRows; /* maximum number of text rows */
INT cxMin; /* minimum button width */
INT cxMax; /* maximum button width */
INT nNumButtons; /* number of buttons */
INT nNumBitmaps; /* number of bitmaps */
INT nNumStrings; /* number of strings */
BOOL bUnicode; /* ASCII (FALSE) or Unicode (TRUE)? */
BOOL bCaptured; /* mouse captured? */
INT nButtonDown;
INT nOldHit;
INT nHotItem; /* index of the "hot" item */
HFONT hFont; /* text font */
HIMAGELIST himlInt; /* image list created internally */
HIMAGELIST himlDef; /* default image list */
HIMAGELIST himlHot; /* hot image list */
HIMAGELIST himlDis; /* disabled image list */
HWND hwndToolTip; /* handle to tool tip control */
HWND hwndNotify; /* handle to the window that gets notifications */
BOOL bTransparent; /* background transparency flag */
BOOL bAutoSize; /* auto size deadlock indicator */
BOOL bAnchor; /* anchor highlight enabled */
DWORD dwExStyle; /* extended toolbar style */
DWORD dwDTFlags; /* DrawText flags */
COLORREF clrInsertMark; /* insert mark color */
RECT rcBound; /* bounding rectangle */
INT iVersion;
TBUTTON_INFO *buttons; /* pointer to button array */
LPWSTR *strings; /* pointer to string array */
} TOOLBAR_INFO;
extern BOOL WINAPI TBARCUST_DialogProc (HWND, UINT, WPARAM, LPARAM);
extern VOID TOOLBAR_Register (VOID);
extern VOID TOOLBAR_Unregister (VOID);
#endif /* __WINE_TOOLBAR_H */
/*
* Tool tips class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_TOOLTIPS_H
#define __WINE_TOOLTIPS_H
#include "commctrl.h"
#include "windef.h"
#include "wingdi.h"
typedef struct tagTT_SUBCLASS_INFO
{
WNDPROC wpOrigProc;
HWND hwndToolTip;
UINT uRefCount;
} TT_SUBCLASS_INFO, *LPTT_SUBCLASS_INFO;
typedef struct tagTTTOOL_INFO
{
UINT uFlags;
HWND hwnd;
UINT uId;
RECT rect;
HINSTANCE hinst;
LPWSTR lpszText;
LPARAM lParam;
} TTTOOL_INFO;
typedef struct tagTOOLTIPS_INFO
{
WCHAR szTipText[INFOTIPSIZE];
BOOL bActive;
BOOL bTrackActive;
UINT uNumTools;
COLORREF clrBk;
COLORREF clrText;
HFONT hFont;
INT xTrackPos;
INT yTrackPos;
INT nMaxTipWidth;
INT nTool;
INT nCurrentTool;
INT nTrackTool;
INT nReshowTime;
INT nAutoPopTime;
INT nInitialTime;
RECT rcMargin;
BOOL bNotifyUnicode;
TTTOOL_INFO *tools;
} TOOLTIPS_INFO;
extern VOID TOOLTIPS_Register (VOID);
extern VOID TOOLTIPS_Unregister (VOID);
#endif /* __WINE_TOOLTIPS_H */
/*
* Trackbar class extra info
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_TRACKBAR_H
#define __WINE_TRACKBAR_H
#include "windef.h"
#include "wingdi.h"
typedef struct tagTRACKBAR_INFO
{
INT nRangeMin;
INT nRangeMax;
INT nLineSize;
INT nPageSize;
INT nSelMin;
INT nSelMax;
INT nPos;
UINT uThumbLen;
UINT uNumTics;
UINT uTicFreq;
HWND hwndNotify;
HWND hwndToolTip;
HWND hwndBuddyLA;
HWND hwndBuddyRB;
INT fLocation;
COLORREF clrBk;
INT flags;
BOOL bFocus;
RECT rcChannel;
RECT rcSelection;
RECT rcThumb;
INT dragPos;
LPLONG tics;
} TRACKBAR_INFO;
/* #define TB_REFRESH_TIMER 1 */
/* #define TB_REFRESH_DELAY 1 */
extern VOID TRACKBAR_Register (VOID);
extern VOID TRACKBAR_Unregister (VOID);
#endif /* __WINE_TRACKBAR_H */
/*
* Treeview class extra info
*
* Copyright 1998 Eric Kohl
* Copyright 1998 Alex Priem
*/
#ifndef __WINE_TREEVIEW_H
#define __WINE_TREEVIEW_H
#include "commctrl.h"
#define MINIMUM_INDENT 10
#define TV_REFRESH_DELAY 100 /* 100 ms delay between two refreshes */
#define TV_DEFAULTITEMHEIGHT 16
#define TVITEM_ALLOC 16 /* default nr of items to allocate at first try */
/* internal structures */
typedef struct {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
int iIntegral;
int iLevel; /* indentation level:0=root level */
COLORREF clrText;
HTREEITEM parent; /* handle to parent or 0 if at root*/
HTREEITEM firstChild; /* handle to first child or 0 if no child*/
HTREEITEM sibling; /* handle to next item in list, 0 if last */
HTREEITEM upsibling; /* handle to previous item in list, 0 if first */
int visible;
RECT rect;
RECT text;
RECT expandBox; /* expand box (+/-) coordinate */
RECT bitmap;
RECT statebitmap;
} TREEVIEW_ITEM;
typedef struct tagTREEVIEW_INFO
{
UINT uInternalStatus;
UINT bAutoSize; /* merge with uInternalStatus */
INT Timer;
UINT uNumItems; /* number of valid TREEVIEW_ITEMs */
UINT uNumPtrsAlloced;
HTREEITEM uMaxHandle; /* needed for delete_item */
HTREEITEM TopRootItem; /* handle to first item in treeview */
INT cdmode; /* last custom draw setting */
UINT uScrollTime; /* max. time for scrolling in milliseconds*/
UINT uItemHeight; /* item height, -1 for default item height */
UINT uRealItemHeight;/* current item height in pixels */
UINT uVisibleHeight; /* visible height of treeview in pixels */
UINT uTotalHeight; /* total height of treeview in pixels */
UINT uVisibleWidth;
UINT uTotalWidth;
UINT uIndent; /* indentation in pixels */
HTREEITEM selectedItem; /* handle to selected item or 0 if none */
HTREEITEM focusItem; /* handle to item that has focus, 0 if none */
HTREEITEM hotItem; /* handle currently under cursor, 0 if none */
HTREEITEM editItem; /* handle to item currently editted, 0 if none */
HTREEITEM firstVisible; /* handle to first visible item */
HTREEITEM dropItem; /* handle to item selected by drag cursor */
HTREEITEM insertMarkItem; /* item after which insertion mark is placed */
BOOL insertBeforeorAfter; /* flag used by TVM_SETINSERTMARK */
HIMAGELIST dragList; /* Bitmap of dragged item */
INT cx,cy; /* current x/y place in list */
COLORREF clrBk;
COLORREF clrText;
COLORREF clrLine;
COLORREF clrInsertMark;
HFONT hFont;
HFONT hBoldFont;
HWND hwndToolTip;
HWND hwndEdit;
WNDPROC wpEditOrig; /* needed for subclassing edit control */
HIMAGELIST himlNormal;
HIMAGELIST himlState;
LPTVSORTCB pCallBackSort; /* ptr to TVSORTCB struct for callback sorting */
TREEVIEW_ITEM *items; /* itemlist */
INT *freeList; /* bitmap indicating which elements are valid */
/* 1=valid, 0=free; */
/* size of list= uNumPtrsAlloced/32 */
} TREEVIEW_INFO;
/* bitflags for infoPtr->uInternalStatus */
#define TV_HSCROLL 0x01 /* treeview too large to fit in window */
#define TV_VSCROLL 0x02 /* (horizontal/vertical) */
#define TV_LDRAG 0x04 /* Lbutton pushed to start drag */
#define TV_LDRAGGING 0x08 /* Lbutton pushed, mouse moved. */
#define TV_RDRAG 0x10 /* dito Rbutton */
#define TV_RDRAGGING 0x20
/* bitflags for infoPtr->timer */
#define TV_REFRESH_TIMER 1
#define TV_EDIT_TIMER 2
#define TV_REFRESH_TIMER_SET 1
#define TV_EDIT_TIMER_SET 2
extern VOID TREEVIEW_Register (VOID);
extern VOID TREEVIEW_Unregister (VOID);
#endif /* __WINE_TREEVIEW_H */
/*
* Up-down class extra info
*
* Copyright 1997 Dimitrie O. Paun
*/
#ifndef __WINE_UPDOWN_H
#define __WINE_UPDOWN_H
#include "windef.h"
#include "commctrl.h"
#define UPDOWN_BUDDYCLASSNAMELEN 40
typedef struct
{
UINT AccelCount; /* Number of elements in AccelVect */
UDACCEL* AccelVect; /* Vector containing AccelCount elements */
INT Base; /* Base to display nr in the buddy window */
INT CurVal; /* Current up-down value */
INT MinVal; /* Minimum up-down value */
INT MaxVal; /* Maximum up-down value */
HWND Buddy; /* Handle to the buddy window */
CHAR szBuddyClass[UPDOWN_BUDDYCLASSNAMELEN]; /* Buddy window class name */
INT Flags; /* Internal Flags FLAG_* */
} UPDOWN_INFO;
typedef struct tagNM_UPDOWN
{
NMHDR hdr;
int iPos;
int iDelta;
} NM_UPDOWN;
extern VOID UPDOWN_Register (VOID);
extern VOID UPDOWN_Unregister (VOID);
#endif /* __WINE_UPDOWN_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment