/*
 * Copyright (C) 2008 Vijay Kiran Kamuju
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

/* Header Control */
#define HDS_HORZ        0x0000
#define HDS_BUTTONS     0x0002
#define HDS_HOTTRACK    0x0004
#define HDS_HIDDEN      0x0008
#define HDS_DRAGDROP    0x0040
#define HDS_FULLDRAG    0x0080
#define HDS_FILTERBAR   0x0100
#define HDS_FLAT        0x0200

/* Rebar Control */
#define RBS_TOOLTIPS        0x0100
#define RBS_VARHEIGHT       0x0200
#define RBS_BANDBORDERS     0x0400
#define RBS_FIXEDORDER      0x0800
#define RBS_REGISTERDROP    0x1000
#define RBS_AUTOSIZE        0x2000
#define RBS_VERTICALGRIPPER 0x4000
#define RBS_DBLCLKTOGGLE    0x8000

/*Tool tips */
#define TTS_ALWAYSTIP       0x01
#define TTS_NOPREFIX        0x02
#define TTS_NOANIMATE       0x10
#define TTS_NOFADE          0x20
#define TTS_BALLOON         0x40
#define TTS_CLOSE           0x80

/* Statusbar Control */
#define SBARS_SIZEGRIP      0x0100
#define SBARS_TOOLTIPS      0x0800
#define SBT_TOOLTIPS        0x0800

/* Toolbar Control */
#define TBS_BOTTOM          0x0000
#define TBS_HORZ            0x0000
#define TBS_RIGHT           0x0000
#define TBS_AUTOTICKS       0x0001
#define TBS_VERT            0x0002
#define TBS_LEFT            0x0004
#define TBS_TOP             0x0004
#define TBS_BOTH            0x0008
#define TBS_NOTICKS         0x0010
#define TBS_ENABLESELRANGE  0x0020
#define TBS_FIXEDLENGTH     0x0040
#define TBS_NOTHUMB         0x0080
#define TBS_TOOLTIPS        0x0100
#define TBS_REVERSED        0x0200
#define TBS_DOWNISLEFT      0x0400

/* UpDown Control */
#define UDS_WRAP            0x0001
#define UDS_SETBUDDYINT     0x0002
#define UDS_ALIGNRIGHT      0x0004
#define UDS_ALIGNLEFT       0x0008
#define UDS_AUTOBUDDY       0x0010
#define UDS_ARROWKEYS       0x0020
#define UDS_HORZ            0x0040
#define UDS_NOTHOUSANDS     0x0080
#define UDS_HOTTRACK        0x0100

/* Progressbar Control */
#define PBS_SMOOTH          0x01
#define PBS_VERTICAL        0x04

/* Common Control Styles */
#define CCS_TOP             0x00000001L
#define CCS_NOMOVE          0x00000002L
#define CCS_BOTTOM          0x00000003L
#define CCS_NORESIZE        0x00000004L
#define CCS_NOPARENTALIGN   0x00000008L
#define CCS_ADJUSTABLE      0x00000020L
#define CCS_NODIVIDER       0x00000040L
#define CCS_VERT            0x00000080L
#define CCS_LEFT            (CCS_VERT | CCS_TOP)
#define CCS_RIGHT           (CCS_VERT | CCS_BOTTOM)
#define CCS_NOMOVEX         (CCS_VERT | CCS_NOMOVEY)

/* Listview Control */
#define LVS_ALIGNTOP        0x0000
#define LVS_ICON            0x0000
#define LVS_REPORT          0x0001
#define LVS_SMALLICON       0x0002
#define LVS_LIST            0x0003
#define LVS_TYPEMASK        0x0003
#define LVS_SINGLESEL       0x0004
#define LVS_SHOWSELALWAYS   0x0008
#define LVS_SORTASCENDING   0x0010
#define LVS_SORTDESCENDING  0x0020
#define LVS_SHAREIMAGELISTS 0x0040
#define LVS_NOLABELWRAP     0x0080
#define LVS_AUTOARRANGE     0x0100
#define LVS_EDITLABELS      0x0200
#define LVS_OWNERDRAWFIXED  0x0400
#define LVS_ALIGNLEFT       0x0800
#define LVS_ALIGNMASK       0x0c00
#define LVS_OWNERDATA       0x1000
#define LVS_NOSCROLL        0x2000
#define LVS_NOCOLUMNHEADER  0x4000
#define LVS_NOSORTHEADER    0x8000
#define LVS_TYPESTYLEMASK   0xfc00

/* Treeview Control */
#define TVS_HASBUTTONS      0x0001
#define TVS_HASLINES        0x0002
#define TVS_LINESATROOT     0x0004
#define TVS_EDITLABELS      0x0008
#define TVS_DISABLEDRAGDROP 0x0010
#define TVS_SHOWSELALWAYS   0x0020
#define TVS_RTLREADING      0x0040
#define TVS_NOTOOLTIPS      0x0080
#define TVS_CHECKBOXES      0x0100
#define TVS_TRACKSELECT     0x0200
#define TVS_SINGLEEXPAND    0x0400
#define TVS_INFOTIP         0x0800
#define TVS_FULLROWSELECT   0x1000
#define TVS_NOSCROLL        0x2000
#define TVS_NONEVENHEIGHT   0x4000
#define TVS_NOHSCROLL       0x8000

/* Tab Control */
#define TCS_RIGHTJUSTIFY        0x0000
#define TCS_SINGLELINE          0x0000
#define TCS_TABS                0x0000
#define TCS_SCROLLOPPOSITE      0x0001
#define TCS_BOTTOM              0x0002
#define TCS_RIGHT               0x0002
#define TCS_MULTISELECT         0x0004
#define TCS_FLATBUTTONS         0x0008
#define TCS_FORCEICONLEFT       0x0010
#define TCS_FORCELABELLEFT      0x0020
#define TCS_HOTTRACK            0x0040
#define TCS_VERTICAL            0x0080
#define TCS_BUTTONS             0x0100
#define TCS_MULTILINE           0x0200
#define TCS_FIXEDWIDTH          0x0400
#define TCS_RAGGEDRIGHT         0x0800
#define TCS_FOCUSONBUTTONDOWN   0x1000
#define TCS_OWNERDRAWFIXED      0x2000
#define TCS_TOOLTIPS            0x4000
#define TCS_FOCUSNEVER          0x8000

/* Animate Control */
#define ACS_CENTER          0x0001
#define ACS_TRANSPARENT     0x0002
#define ACS_AUTOPLAY        0x0004
#define ACS_TIMER           0x0008

/* Month Calendar Control */
#define MCS_DAYSTATE        0x0001
#define MCS_MULTISELECT     0x0002
#define MCS_WEEKNUMBERS     0x0004
#define MCS_NOTODAYCIRCLE   0x0008
#define MCS_NOTODAY         0x0010

/* Datetime Control */
#define DTS_SHORTDATEFORMAT        0x0000
#define DTS_UPDOWN                 0x0001
#define DTS_SHOWNONE               0x0002
#define DTS_LONGDATEFORMAT         0x0004
#define DTS_TIMEFORMAT             0x0009
#define DTS_SHORTDATECENTURYFORMAT 0x000C
#define DTS_APPCANPARSE            0x0010
#define DTS_RIGHTALIGN             0x0020

/* Pager Control */
#define PGS_VERT            0x00000000
#define PGS_HORZ            0x00000001
#define PGS_AUTOSCROLL      0x00000002
#define PGS_DRAGNDROP       0x00000004

/* Native Font Control */
#define NFS_EDIT            0x0001
#define NFS_STATIC          0x0002
#define NFS_LISTCOMBO       0x0004
#define NFS_BUTTON          0x0008
#define NFS_ALL             0x0010
#define NFS_USEFONTASSOC    0x0020
