Update of /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Constants/t
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23641/Win32-GUI-Constants/t

Added Files:
        01_load.t 02_default.t 03_inline.t 04_noexport.t 
        05_export_byname.t 06_export_bytag.t 07_nothing.t 
        08_exportpkg.t 09_autoload.t 10_inherit.t 
        50_tags_compatability_win32_gui.t 51_tags_all.t 52_tags.t 
        70_values.t 71_invalid_values.t 98_pod.t 99_pod_coverage.t 
Log Message:
Add Win32-GUI-Constants directory and module code

--- NEW FILE: 99_pod_coverage.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 99_pod_coverage.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check we have coverage of all defined functions/methods

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More;
eval "use Test::Pod::Coverage 1.04";
plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" 
if $@;
plan skip_all => "Pod Coverage tests for Win32::GUI::DropFiles done by core" if 
$ENV{W32G_CORE};

plan tests => 2;

pod_coverage_ok(
        "Win32::GUI::Constants",
        "Win32::GUI::Constansts covered by POD");

pod_coverage_ok(
        "Win32::GUI::Constants::Tags",
        { also_private => [ qr(^tag$) ], },
        "Win32::GUI::Constants::Tags covered by POD");


--- NEW FILE: 52_tags.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 52_tags.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check a single constant export

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

# Check that the rest of the tags don't change from release to release
# without us knowing. IF YOU HAVE CHANGED THE TAG DEFINITIONS, THEN UPDATE
# THIS TEST FILE TO REFLECT THE CHANGES.

use Test::More;

my @tags = qw( common customdraw stockobjects accelerator animation bitmap brush
button class combobox cursor datetime dc font header icon imagelist label 
listbox listview
mdi menu monthcal notifyicon pen progressbar rebar region richedit scrollbar 
slider
splitter statusbar tabstrip textfield timer toolbar tooltip treeview updown 
window );

plan tests => (2 * @tags);

my %RESULTS = (
  common => [ qw( CW_USEDEFAULT ) ],
  customdraw => [
qw( CDDS_ITEM CDDS_ITEMPOSTERASE CDDS_PREERASE CDDS_POSTERASE CDDS_ITEMPOSTPAINT
    CDDS_ITEMPREERASE CDDS_SUBITEM CDDS_ITEMPREPAINT CDDS_POSTPAINT 
CDDS_PREPAINT
    CDRF_NOTIFYITEMDRAW CDRF_NEWFONT CDRF_SKIPDEFAULT CDRF_NOTIFYPOSTPAINT
    CDRF_NOTIFYSUBITEMDRAW CDRF_DODEFAULT CDRF_NOTIFYPOSTERASE ) ],
  stockobjects => [
qw( WHITE_BRUSH LTGRAY_BRUSH GRAY_BRUSH DKGRAY_BRUSH BLACK_BRUSH NULL_BRUSH 
HOLLOW_BRUSH
    WHITE_PEN BLACK_PEN NULL_PEN OEM_FIXED_FONT ANSI_FIXED_FONT ANSI_VAR_FONT 
SYSTEM_FONT
    DEVICE_DEFAULT_FONT DEFAULT_PALETTE SYSTEM_FIXED_FONT DEFAULT_GUI_FONT 
DC_BRUSH
    DC_PEN ) ],
  accelerator => [
qw( VK_OEM_PERIOD VK_VOLUME_DOWN VK_NUMLOCK VK_NONAME VK_LMENU VK_KANA 
VK_OEM_FINISH VK_V
    VK_F16 VK_ADD VK_OEM_RESET VK_END VK_LCONTROL VK_OEM_FJ_ROYA VK_NUMPAD0 
VK_NEXT VK_O
    VK_OEM_PA1 VK_CANCEL VK_SLEEP VK_RIGHT VK_RETURN VK_F2 VK_LAUNCH_MAIL 
VK_BACK VK_F20
    VK_Z VK_ESCAPE VK_CAPITAL VK_M VK_PRINT VK_NONCONVERT VK_H VK_SHIFT 
VK_SPACE VK_F19
    VK_EREOF VK_3 VK_I VK_EXSEL VK_KANJI VK_LAUNCH_APP2 VK_F9 VK_NUMPAD9 
VK_CONTROL
    VK_RWIN VK_VOLUME_MUTE VK_F10 VK_CRSEL VK_PA1 VK_B VK_F4 VK_PLAY VK_DIVIDE
    VK_OEM_COPY VK_SUBTRACT VK_DELETE VK_8 VK_NUMPAD5 VK_OEM_WSCTRL VK_NUMPAD2 
VK_F24
    VK_LAUNCH_MEDIA_SELECT VK_OEM_ATTN VK_OEM_1 VK_JUNJA VK_F17 VK_F12 
VK_OEM_CUSEL VK_A
    VK_HANGUL VK_ICO_HELP VK_R VK_OEM_5 VK_APPS VK_OEM_FJ_TOUROKU VK_OEM_PA2
    VK_OEM_NEC_EQUAL VK_F6 VK_LBUTTON VK_PRIOR VK_OEM_3 VK_F8 VK_UP VK_NUMPAD3 
VK_C
    VK_SEPARATOR VK_MENU VK_SELECT VK_HANGEUL VK_X VK_INSERT VK_HELP VK_1 
VK_BROWSER_HOME
    VK_F22 VK_DECIMAL VK_XBUTTON2 VK_F13 VK_OEM_AX VK_F VK_OEM_7 VK_OEM_FJ_LOYA 
VK_P
    VK_ZOOM VK_E VK_OEM_COMMA VK_OEM_FJ_MASSHOU VK_RMENU VK_RBUTTON 
VK_MEDIA_NEXT_TRACK
    VK_ICO_00 VK_OEM_ENLW VK_EXECUTE VK_F7 VK_OEM_BACKTAB VK_XBUTTON1 VK_F15
    VK_BROWSER_FORWARD VK_4 VK_NUMPAD8 VK_6 VK_N VK_T VK_PAUSE VK_LEFT VK_U
    VK_BROWSER_STOP VK_F3 VK_SNAPSHOT VK_F1 VK_ACCEPT VK_PACKET VK_MULTIPLY 
VK_G VK_ATTN
    VK_PROCESSKEY VK_K VK_LWIN VK_BROWSER_FAVORITES VK_NUMPAD1 VK_CONVERT 
VK_HOME
    VK_OEM_AUTO VK_RCONTROL VK_SCROLL VK_OEM_FJ_JISHO VK_OEM_6 VK_ICO_CLEAR VK_5
    VK_OEM_MINUS VK_L VK_F5 VK_S VK_TAB VK_OEM_CLEAR VK_OEM_PA3 VK_OEM_102 
VK_RSHIFT
    VK_OEM_PLUS VK_LAUNCH_APP1 VK_BROWSER_SEARCH VK_MEDIA_PLAY_PAUSE VK_OEM_2 
VK_CLEAR
    VK_9 VK_NUMPAD7 VK_NUMPAD6 VK_FINAL VK_MEDIA_STOP VK_2 VK_F21 VK_Y VK_F18 
VK_Q VK_D
    VK_DOWN VK_F23 VK_F11 VK_OEM_8 VK_7 VK_0 VK_J VK_MEDIA_PREV_TRACK 
VK_MBUTTON VK_F14
    VK_BROWSER_REFRESH VK_BROWSER_BACK VK_VOLUME_UP VK_OEM_JUMP VK_NUMPAD4 
VK_HANJA VK_W
    VK_LSHIFT VK_OEM_4 VK_MODECHANGE ) ],
  animation => [ qw( ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAY ACS_TIMER ) ],
  bitmap => [ qw(  ) ],
  brush => [ qw(  ) ],
  button => [
qw( BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON 
BS_3STATE
    BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_PUSHBOX 
BS_OWNERDRAW
    BS_TYPEMASK BS_LEFTTEXT BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT 
BS_CENTER BS_TOP
    BS_BOTTOM BS_VCENTER BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT 
BS_RIGHTBUTTON
    IMAGE_CURSOR IMAGE_BITMAP IMAGE_ENHMETAFILE IMAGE_ICON ) ],
  class => [
qw( COLOR_WINDOW COLOR_BACKGROUND COLOR_3DHIGHLIGHT COLOR_MENUTEXT 
COLOR_WINDOWTEXT
    COLOR_BTNSHADOW COLOR_GRAYTEXT COLOR_INACTIVEBORDER COLOR_BTNHIGHLIGHT 
COLOR_INFOTEXT
    COLOR_BTNTEXT COLOR_SCROLLBAR COLOR_MENUHILIGHT COLOR_CAPTIONTEXT 
COLOR_3DSHADOW
    COLOR_HOTLIGHT COLOR_MENUBAR COLOR_INACTIVECAPTIONTEXT COLOR_HIGHLIGHTTEXT
    COLOR_BTNHILIGHT COLOR_HIGHLIGHT COLOR_GRADIENTINACTIVECAPTION COLOR_MENU
    COLOR_BTNFACE COLOR_ACTIVECAPTION COLOR_3DDKSHADOW COLOR_ACTIVEBORDER
    COLOR_WINDOWFRAME COLOR_INACTIVECAPTION COLOR_INFOBK COLOR_APPWORKSPACE
    COLOR_GRADIENTACTIVECAPTION COLOR_DESKTOP COLOR_3DFACE COLOR_3DHILIGHT 
COLOR_3DLIGHT
    CS_DROPSHADOW CS_PARENTDC CS_NOCLOSE CS_VREDRAW CS_BYTEALIGNCLIENT CS_OWNDC
    CS_CLASSDC CS_BYTEALIGNWINDOW CS_DBLCLKS CS_IME CS_HREDRAW CS_SAVEBITS
    CS_GLOBALCLASS ) ],
  combobox => [
qw( CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED 
CBS_OWNERDRAWVARIABLE
    CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHT
    CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASE CBES_EX_NOEDITIMAGE
    CBES_EX_NOEDITIMAGEINDENT CBES_EX_PATHWORDBREAKPROC CBES_EX_NOSIZELIMIT
    CBES_EX_CASESENSITIVE ) ],
  cursor => [
qw( IDC_HAND IDC_IBEAM IDC_CROSS IDC_SIZE IDC_SIZEWE IDC_WAIT IDC_ARROW 
IDC_APPSTARTING
    IDC_HELP IDC_SIZENESW IDC_SIZENWSE IDC_ICON IDC_NO IDC_SIZENS IDC_UPARROW
    IDC_SIZEALL ) ],
  datetime => [
qw( DTS_LONGDATEFORMAT DTS_APPCANPARSE DTS_TIMEFORMAT DTS_SHORTDATEFORMAT 
DTS_UPDOWN
    DTS_RIGHTALIGN DTS_SHORTDATECENTURYFORMAT DTS_SHOWNONE ) ],
  dc => [
qw( OPAQUE TRANSPARENT BDR_OUTER BDR_INNER BDR_SUNKENOUTER BDR_RAISED BDR_SUNKEN
    BDR_SUNKENINNER BDR_RAISEDINNER BDR_RAISEDOUTER EDGE_SUNKEN EDGE_ETCHED 
EDGE_BUMP
    EDGE_RAISED BF_FLAT BF_DIAGONAL_ENDBOTTOMRIGHT BF_MIDDLE 
BF_DIAGONAL_ENDTOPLEFT
    BF_DIAGONAL_ENDTOPRIGHT BF_LEFT BF_DIAGONAL_ENDBOTTOMLEFT BF_SOFT 
BF_DIAGONAL
    BF_RECT BF_MONO BF_RIGHT BF_TOPLEFT BF_BOTTOM BF_ADJUST BF_TOP BF_TOPRIGHT
    BF_BOTTOMRIGHT BF_BOTTOMLEFT CLR_INVALID HWND_DESKTOP DFC_SCROLL DFC_CAPTION
    DFC_MENU DFC_BUTTON DFC_POPUPMENU DFCS_SCROLLSIZEGRIP DFCS_PUSHED 
DFCS_SCROLLDOWN
    DFCS_MENUARROWRIGHT DFCS_SCROLLRIGHT DFCS_SCROLLCOMBOBOX DFCS_FLAT 
DFCS_BUTTONRADIO
    DFCS_CAPTIONRESTORE DFCS_CAPTIONCLOSE DFCS_CHECKED DFCS_BUTTONRADIOMASK
    DFCS_BUTTON3STATE DFCS_BUTTONPUSH DFCS_ADJUSTRECT DFCS_SCROLLUP 
DFCS_MENUCHECK
    DFCS_HOT DFCS_CAPTIONHELP DFCS_BUTTONRADIOIMAGE DFCS_INACTIVE 
DFCS_CAPTIONMAX
    DFCS_TRANSPARENT DFCS_SCROLLLEFT DFCS_SCROLLSIZEGRIPRIGHT DFCS_MONO 
DFCS_MENUARROW
    DFCS_CAPTIONMIN DFCS_BUTTONCHECK DFCS_MENUBULLET DT_WORDBREAK DT_BOTTOM 
DT_SINGLELINE
    DT_CALCRECT DT_RIGHT DT_EXPANDTABS DT_TOP DT_INTERNAL DT_EDITCONTROL 
DT_MODIFYSTRING
    DT_PREFIXONLY DT_PATH_ELLIPSIS DT_NOPREFIX DT_EXTERNALLEADING DT_RTLREADING
    DT_NOCLIP DT_TABSTOP DT_HIDEPREFIX DT_WORD_ELLIPSIS DT_CENTER DT_LEFT
    DT_NOFULLWIDTHCHARBREAK DT_END_ELLIPSIS DT_VCENTER FLOODFILLBORDER 
FLOODFILLSURFACE
    OBJ_PEN OBJ_MEMDC OBJ_BRUSH OBJ_DC OBJ_METAFILE OBJ_METADC OBJ_ENHMETADC 
OBJ_REGION
    OBJ_COLORSPACE OBJ_BITMAP OBJ_EXTPEN OBJ_PAL OBJ_FONT OBJ_ENHMETAFILE 
R2_NOT R2_BLACK
    R2_MERGENOTPEN R2_NOTXORPEN R2_XORPEN R2_WHITE R2_NOTMERGEPEN R2_MASKPEN
    R2_MASKPENNOT R2_COPYPEN R2_MERGEPENNOT R2_NOTCOPYPEN R2_NOP R2_MASKNOTPEN
    R2_NOTMASKPEN R2_MERGEPEN SRCCOPY SRCPAINT SRCAND SRCINVERT SRCERASE 
NOTSRCCOPY
    NOTSRCERASE MERGECOPY MERGEPAINT PATCOPY PATPAINT PATINVERT DSTINVERT 
BLACKNESS
    WHITENESS NOMIRRORBITMAP CAPTUREBLT ERROR NULLREGION SIMPLEREGION 
COMPLEXREGION
    RGN_DIFF RGN_AND RGN_MIN RGN_MAX RGN_XOR RGN_COPY RGN_ERROR RGN_OR BS_SOLID 
BS_NULL
    BS_HOLLOW BS_HATCHED BS_PATTERN BS_INDEXED BS_DIBPATTERN BS_DIBPATTERNPT
    BS_PATTERN8X8 BS_DIBPATTERN8X8 BS_MONOPATTERN HS_VERTICAL HS_CROSS 
HS_HORIZONTAL
    HS_DIAGCROSS HS_FDIAGONAL HS_BDIAGONAL PS_JOIN_BEVEL PS_ENDCAP_MASK 
PS_DASHDOT
    PS_ENDCAP_FLAT PS_STYLE_MASK PS_DASHDOTDOT PS_COSMETIC PS_INSIDEFRAME 
PS_TYPE_MASK
    PS_SOLID PS_JOIN_MITER PS_ENDCAP_SQUARE PS_JOIN_ROUND PS_ENDCAP_ROUND 
PS_DASH
    PS_JOIN_MASK PS_GEOMETRIC PS_DOT PS_USERSTYLE PS_NULL PS_ALTERNATE 
BLACKONWHITE
    WHITEONBLACK COLORONCOLOR HALFTONE STRETCH_ORSCANS STRETCH_HALFTONE
    STRETCH_DELETESCANS STRETCH_ANDSCANS ) ],
  font => [ qw(  ) ],
  header => [
qw( HDS_HORZ HDS_BUTTONS HDS_HOTTRACK HDS_HIDDEN HDS_DRAGDROP HDS_FULLDRAG 
HDS_FILTERBAR
    HDS_FLAT ) ],
  icon => [
qw( IDI_EXCLAMATION IDI_ASTERISK IDI_APPLICATION IDI_HAND IDI_INFORMATION 
IDI_ERROR
    IDI_QUESTION IDI_WARNING IDI_WINLOGO ) ],
  imagelist => [
qw( ILC_COLOR16 ILC_MIRROR ILC_COLOR24 ILC_COLORDDB ILC_COLOR8 ILC_COLOR
    ILC_PERITEMMIRROR ILC_MASK ILC_COLOR32 ILC_PALETTE ILC_COLOR4 ILD_ROP 
ILD_OVERLAYMASK
    ILD_BLEND25 ILD_PRESERVEALPHA ILD_DPISCALE ILD_SELECTED ILD_BLEND50 
ILD_FOCUS
    ILD_BLEND ILD_TRANSPARENT ILD_SCALE ILD_NORMAL ILD_IMAGE ILD_MASK ILS_ALPHA
    ILS_SATURATE ILS_GLOW ILS_NORMAL ILS_SHADOW CLR_NONE CLR_DEFAULT 
IMAGE_CURSOR
    IMAGE_BITMAP IMAGE_ENHMETAFILE IMAGE_ICON ) ],
  label => [ qw( IMAGE_CURSOR IMAGE_BITMAP IMAGE_ENHMETAFILE IMAGE_ICON ) ],
  listbox => [
qw( LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXED 
LBS_OWNERDRAWVARIABLE
    LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHT LBS_MULTICOLUMN 
LBS_WANTKEYBOARDINPUT
    LBS_EXTENDEDSEL LBS_DISABLENOSCROLL LBS_NODATA LBS_NOSEL LBS_COMBOBOX 
LBS_STANDARD   ) ],
  listview => [
qw( LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL 
LVS_SHOWSELALWAYS
    LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAP 
LVS_AUTOARRANGE
    LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK LVS_ALIGNTOP 
LVS_ALIGNLEFT
    LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER 
LVS_EX_GRIDLINES
    LVS_EX_SUBITEMIMAGES LVS_EX_CHECKBOXES LVS_EX_TRACKSELECT 
LVS_EX_HEADERDRAGDROP
    LVS_EX_FULLROWSELECT LVS_EX_ONECLICKACTIVATE LVS_EX_TWOCLICKACTIVATE 
LVS_EX_FLATSB
    LVS_EX_REGIONAL LVS_EX_INFOTIP LVS_EX_UNDERLINEHOT LVS_EX_UNDERLINECOLD
    LVS_EX_MULTIWORKAREAS LVS_EX_LABELTIP LVS_EX_BORDERSELECT 
LVS_EX_DOUBLEBUFFER
    LVS_EX_HIDELABELS LVS_EX_SINGLEROW LVS_EX_SNAPTOGRID LVS_EX_SIMPLESELECT 
LVIS_FOCUSED
    LVIS_SELECTED LVIS_CUT LVIS_DROPHILITED LVIS_GLOW LVIS_ACTIVATING 
LVIS_OVERLAYMASK
    LVIS_STATEIMAGEMASK CLR_NONE ) ],
  mdi => [ qw(  ) ],
  menu => [
qw( MF_STRING MF_POPUP MF_BYCOMMAND MF_RIGHTJUSTIFY MF_USECHECKBITMAPS 
MF_MENUBREAK
    MF_SEPARATOR MF_BITMAP MF_HILITE MF_BYPOSITION MF_SYSMENU MF_APPEND 
MF_DELETE
    MF_DEFAULT MF_CHECKED MF_DISABLED MF_UNCHECKED MF_CHANGE MF_MOUSESELECT 
MF_GRAYED
    MF_REMOVE MF_OWNERDRAW MF_MENUBARBREAK MF_HELP MF_UNHILITE MF_ENABLED 
SC_VSCROLL
    SC_HOTKEY SC_MOUSEMENU SC_CONTEXTHELP SC_RESTORE SC_NEXTWINDOW SC_KEYMENU 
SC_MAXIMIZE
    SC_ARRANGE SC_CLOSE SC_MINIMIZE SC_MONITORPOWER SC_ZOOM SC_MOVE SC_TASKLIST
    SC_HSCROLL SC_ICON SC_DEFAULT SC_SEPARATOR SC_PREVWINDOW SC_SIZE 
SC_SCREENSAVE
    TPM_VERPOSANIMATION TPM_CENTERALIGN TPM_NONOTIFY TPM_HORPOSANIMATION 
TPM_NOANIMATION
    TPM_RETURNCMD TPM_HORNEGANIMATION TPM_HORIZONTAL TPM_TOPALIGN TPM_VERTICAL
    TPM_LAYOUTRTL TPM_RIGHTALIGN TPM_VERNEGANIMATION TPM_VCENTERALIGN 
TPM_BOTTOMALIGN
    TPM_LEFTBUTTON TPM_RIGHTBUTTON TPM_LEFTALIGN TPM_RECURSE ) ],
  monthcal => [
qw( MCS_DAYSTATE MCS_MULTISELECT MCS_WEEKNUMBERS MCS_NOTODAYCIRCLE MCS_NOTODAY
    MCSC_TITLEBK MCSC_BACKGROUND MCSC_TRAILINGTEXT MCSC_TITLETEXT MCSC_MONTHBK
    MCSC_TEXT ) ],
  notifyicon => [ qw(  ) ],
  pen => [
qw( PS_JOIN_BEVEL PS_ENDCAP_MASK PS_DASHDOT PS_ENDCAP_FLAT PS_STYLE_MASK 
PS_DASHDOTDOT
    PS_COSMETIC PS_INSIDEFRAME PS_TYPE_MASK PS_SOLID PS_JOIN_MITER 
PS_ENDCAP_SQUARE
    PS_JOIN_ROUND PS_ENDCAP_ROUND PS_DASH PS_JOIN_MASK PS_GEOMETRIC PS_DOT 
PS_USERSTYLE
    PS_NULL PS_ALTERNATE ) ],
  progressbar => [ qw( CLR_DEFAULT ) ],
  rebar => [
qw( CLR_DEFAULT RBBS_GRIPPERALWAYS RBBS_FIXEDBMP RBBS_VARIABLEHEIGHT RBBS_BREAK
    RBBS_USECHEVRON RBBS_TOPALIGN RBBS_HIDETITLE RBBS_NOVERT RBBS_NOGRIPPER
    RBBS_FIXEDSIZE RBBS_CHILDEDGE RBBS_HIDDEN ) ],
  region => [ qw( RGN_DIFF RGN_AND RGN_MIN RGN_MAX RGN_XOR RGN_COPY RGN_ERROR 
RGN_OR ) ],
  richedit => [
qw( CP_MACCP CP_UTF8 CP_OEMCP CP_SYMBOL CP_ACP CP_UTF7 CP_THREAD_ACP 
EM_GETWORDBREAKPROC
    EM_LINEFROMCHAR EM_GETMARGINS EM_SETIMESTATUS EM_POSFROMCHAR EM_GETSEL 
EM_SETMODIFY
    EM_GETFIRSTVISIBLELINE EM_SETHANDLE EM_EMPTYUNDOBUFFER EM_GETMODIFY 
EM_FMTLINES
    EM_GETIMESTATUS EM_SETREADONLY EM_GETLIMITTEXT EM_LINESCROLL EM_GETLINE 
EM_SETSEL
    EM_LINEINDEX EM_REPLACESEL EM_GETPASSWORDCHAR EM_LIMITTEXT 
EM_SETPASSWORDCHAR
    EM_SCROLLCARET EM_UNDO EM_SETTABSTOPS EM_SETRECTNP EM_GETLINECOUNT 
EM_SETLIMITTEXT
    EM_GETHANDLE EM_SCROLL EM_LINELENGTH EM_SETWORDBREAKPROC EM_CHARFROMPOS 
EM_CANUNDO
    EM_SETMARGINS EM_GETTHUMB EM_GETRECT EM_SETRECT ENM_CHANGE ENM_MOUSEEVENTS
    ENM_KEYEVENTS ENM_PROTECTED ENM_PARAGRAPHEXPANDED ENM_LANGCHANGE ENM_UPDATE
    ENM_SCROLLEVENTS ENM_REQUESTRESIZE ENM_LINK ENM_SCROLL ENM_PAGECHANGE 
ENM_NONE
    ENM_OBJECTPOSITIONS ENM_CORRECTTEXT ENM_SELCHANGE ENM_LOWFIRTF 
ENM_DRAGDROPDONE
    ENM_DROPFILES ENM_IMECHANGE ES_AUTOHSCROLL ES_CENTER ES_OEMCONVERT 
ES_AUTOVSCROLL
    ES_NUMBER ES_RIGHT ES_READONLY ES_MULTILINE ES_PASSWORD ES_LOWERCASE ES_LEFT
    ES_NOHIDESEL ES_UPPERCASE ES_WANTRETURN GT_DEFAULT GT_RAWTEXT 
GT_NOHIDDENTEXT
    GT_USECRLF GT_SELECTION SF_NCRFORNONASCII SF_TEXT SF_TEXTIZED SF_RTFVAL 
SF_UNICODE
    SF_RTF SF_RTFNOOBJS SF_USECODEPAGE SFF_PLAINRTF SFF_PWD SFF_SELECTION
    SFF_WRITEXTRAPAR SFF_PERSISTVIEWSCALE SFF_KEEPDOCINFO ) ],
  scrollbar => [
qw( SB_THUMBTRACK SB_LINEUP SB_BOTTOM SB_LEFT SB_ENDSCROLL SB_PAGEUP SB_HORZ 
SB_BOTH
    SB_THUMBPOSITION SB_PAGELEFT SB_LINERIGHT SB_LINELEFT SB_VERT SB_RIGHT 
SB_CTL
    SB_PAGEDOWN SB_TOP SB_LINEDOWN SB_PAGERIGHT ) ],
  slider => [ qw( TBTS_BOTTOM TBTS_LEFT TBTS_RIGHT TBTS_TOP ) ],
  splitter => [ qw(  ) ],
  statusbar => [
qw( CLR_DEFAULT SBT_NOBORDERS SBT_POPOUT SBT_OWNERDRAW SBT_NOTABPARSING
    SBT_RTLREADING ) ],
  tabstrip => [ qw(  ) ],
  textfield => [
qw( EM_GETWORDBREAKPROC EM_LINEFROMCHAR EM_GETMARGINS EM_SETIMESTATUS 
EM_POSFROMCHAR
    EM_GETSEL EM_SETMODIFY EM_GETFIRSTVISIBLELINE EM_SETHANDLE 
EM_EMPTYUNDOBUFFER
    EM_GETMODIFY EM_FMTLINES EM_GETIMESTATUS EM_SETREADONLY EM_GETLIMITTEXT 
EM_LINESCROLL
    EM_GETLINE EM_SETSEL EM_LINEINDEX EM_REPLACESEL EM_GETPASSWORDCHAR 
EM_LIMITTEXT
    EM_SETPASSWORDCHAR EM_SCROLLCARET EM_UNDO EM_SETTABSTOPS EM_SETRECTNP 
EM_GETLINECOUNT
    EM_SETLIMITTEXT EM_GETHANDLE EM_SCROLL EM_LINELENGTH EM_SETWORDBREAKPROC
    EM_CHARFROMPOS EM_CANUNDO EM_SETMARGINS EM_GETTHUMB EM_GETRECT EM_SETRECT
    ES_AUTOHSCROLL ES_CENTER ES_OEMCONVERT ES_AUTOVSCROLL ES_NUMBER ES_RIGHT 
ES_READONLY
    ES_MULTILINE ES_PASSWORD ES_LOWERCASE ES_LEFT ES_NOHIDESEL ES_UPPERCASE
    ES_WANTRETURN ) ],
  timer => [ qw(  ) ],
  toolbar => [
qw( BTNS_WHOLEDROPDOWN BTNS_DROPDOWN BTNS_NOPREFIX BTNS_GROUP BTNS_SHOWTEXT
    BTNS_CHECKGROUP BTNS_SEP BTNS_AUTOSIZE BTNS_BUTTON BTNS_CHECK 
TBSTATE_CHECKED
    TBSTATE_ELLIPSES TBSTATE_WRAP TBSTATE_MARKED TBSTATE_HIDDEN TBSTATE_PRESSED
    TBSTATE_ENABLED TBSTATE_INDETERMINATE TBSTYLE_EX_HIDECLIPPEDBUTTONS
    TBSTYLE_TRANSPARENT TBSTYLE_CHECK TBSTYLE_FLAT TBSTYLE_LIST 
TBSTYLE_CHECKGROUP
    TBSTYLE_SEP TBSTYLE_BUTTON TBSTYLE_DROPDOWN TBSTYLE_ALTDRAG TBSTYLE_TOOLTIPS
    TBSTYLE_EX_DRAWDDARROWS TBSTYLE_REGISTERDROP TBSTYLE_GROUP 
TBSTYLE_EX_DOUBLEBUFFER
    TBSTYLE_AUTOSIZE TBSTYLE_NOPREFIX TBSTYLE_EX_MIXEDBUTTONS TBSTYLE_WRAPABLE
    TBSTYLE_CUSTOMERASE I_IMAGENONE I_IMAGECALLBACK CLR_DEFAULT TRANSPARENT 
OPAQUE
    HINST_COMMCTRL ) ],
  tooltip => [ qw(  ) ],
  treeview => [
qw( CLR_DEFAULT TVGN_PREVIOUS TVGN_DROPHILITE TVGN_PREVIOUSVISIBLE TVGN_CHILD 
TVGN_ROOT
    TVGN_NEXTVISIBLE TVGN_PARENT TVGN_LASTVISIBLE TVGN_FIRSTVISIBLE TVGN_NEXT
    TVGN_CARET ) ],
  updown => [ qw(  ) ],
  window => [
qw( DS_CENTERMOUSE DS_CENTER DS_FIXEDSYS DS_CONTROL DS_SETFOREGROUND
    DS_3DLOOK DS_NOIDLEMSG DS_SETFONT DS_LOCALEDIT DS_CONTEXTHELP DS_SHELLFONT
    DS_MODALFRAME DS_NOFAILCREATE DS_ABSALIGN DS_SYSMODAL IDYES IDABORT 
IDCONTINUE IDNO
    IDIGNORE IDTIMEOUT IDTRYAGAIN IDOK IDCLOSE IDHELP IDCANCEL IDRETRY 
MA_NOACTIVATE
    MA_NOACTIVATEANDEAT MA_ACTIVATEANDEAT MA_ACTIVATE MK_XBUTTON1 MK_LBUTTON 
MK_CONTROL
    MK_XBUTTON2 MK_RBUTTON MK_SHIFT MK_MBUTTON NM_RCLICK NM_RELEASEDCAPTURE 
NM_RDBLCLK
    NM_LDOWN NM_KILLFOCUS NM_TOOLTIPSCREATED NM_SETCURSOR NM_SETFOCUS 
NM_THEMECHANGED
    NM_OUTOFMEMORY NM_CUSTOMDRAW NM_CLICK NM_RDOWN NM_CHAR NM_HOVER NM_DBLCLK
    NM_NCHITTEST NM_RETURN NM_KEYDOWN RDW_NOINTERNALPAINT RDW_ERASENOW 
RDW_UPDATENOW
    RDW_NOCHILDREN RDW_NOFRAME RDW_VALIDATE RDW_ERASE RDW_INVALIDATE RDW_NOERASE
    RDW_FRAME RDW_INTERNALPAINT RDW_ALLCHILDREN SIZE_MAXIMIZED SIZE_RESTORED
    SIZE_MAXSHOW SIZE_MINIMIZED SIZE_MAXHIDE SW_SHOWNORMAL SW_HIDE SW_NORMAL
    SW_SHOWMINIMIZED SW_SHOWMAXIMIZED SW_SHOW SW_FORCEMINIMIZE SW_RESTORE 
SW_SHOWDEFAULT
    SW_MAXIMIZE SW_MINIMIZE SW_SHOWNOACTIVATE SW_SHOWMINNOACTIVE SW_SHOWNA 
WA_INACTIVE
    WA_ACTIVE WA_CLICKACTIVE WM_NCACTIVATE WM_SYSKEYUP WM_ERASEBKGND 
WM_CHANGEUISTATE
    WM_USERCHANGED WM_NOTIFYFORMAT WM_CHARTOITEM WM_MDIICONARRANGE 
WM_QUERYENDSESSION
    WM_APPCOMMAND WM_NCMOUSELEAVE WM_MOUSEMOVE WM_SETCURSOR WM_TIMER 
WM_WININICHANGE
    WM_MDINEXT WM_IME_CONTROL WM_COMPACTING WM_DRAWCLIPBOARD WM_FONTCHANGE 
WM_PRINTCLIENT
    WM_MDIMAXIMIZE WM_MDISETMENU WM_MDIREFRESHMENU WM_SHOWWINDOW WM_XBUTTONUP
    WM_SYSCOLORCHANGE WM_UNDO WM_CTLCOLORDLG WM_RBUTTONDBLCLK WM_INPUT 
WM_CTLCOLORSTATIC
    WM_MDICREATE WM_PAINTCLIPBOARD WM_CHILDACTIVATE WM_MEASUREITEM WM_DESTROY 
WM_NCCREATE
    WM_MOUSEFIRST WM_MOUSELAST WM_TABLET_LAST WM_QUIT WM_MENUCOMMAND
    WM_IME_STARTCOMPOSITION WM_MDIACTIVATE WM_SYSDEADCHAR WM_USER WM_SYNCPAINT
    WM_MOVING WM_NCMOUSEHOVER WM_KEYFIRST WM_MBUTTONDOWN WM_SYSCHAR 
WM_MBUTTONDBLCLK
    WM_CHANGECBCHAIN WM_PALETTECHANGED WM_GETTEXT WM_CLOSE WM_RENDERFORMAT 
WM_SETFONT
    WM_SIZING WM_RBUTTONUP WM_CTLCOLORBTN WM_INPUTLANGCHANGEREQUEST 
WM_CONTEXTMENU
    WM_WINDOWPOSCHANGING WM_CTLCOLORSCROLLBAR WM_KILLFOCUS WM_DROPFILES
    WM_WTSSESSION_CHANGE WM_MDIDESTROY WM_VSCROLLCLIPBOARD WM_NCHITTEST 
WM_ENDSESSION
    WM_IME_KEYLAST WM_HELP WM_TABLET_FIRST WM_IME_KEYDOWN WM_ACTIVATE 
WM_MOUSEHOVER
    WM_MOUSELEAVE WM_IME_CHAR WM_DISPLAYCHANGE WM_INPUTLANGCHANGE WM_NCLBUTTONUP
    WM_SETICON WM_NULL WM_AFXLAST WM_KEYUP WM_DELETEITEM WM_RENDERALLFORMATS
    WM_ICONERASEBKGND WM_MOUSEWHEEL WM_ACTIVATEAPP WM_NOTIFY WM_IME_COMPOSITION
    WM_THEMECHANGED WM_IME_COMPOSITIONFULL WM_SYSKEYDOWN WM_NCXBUTTONDBLCLK
    WM_XBUTTONDOWN WM_IME_SETCONTEXT WM_COMMAND WM_SIZE WM_LBUTTONDBLCLK 
WM_ENABLE
    WM_NEXTDLGCTL WM_MDITILE WM_KEYLAST WM_GETHOTKEY WM_CTLCOLOREDIT 
WM_PALETTEISCHANGING
    WM_DEVMODECHANGE WM_INITMENUPOPUP WM_WINDOWPOSCHANGED WM_SIZECLIPBOARD 
WM_INITDIALOG
    WM_PARENTNOTIFY WM_MDIGETACTIVE WM_QUEUESYNC WM_MOVE WM_DEADCHAR 
WM_NCLBUTTONDBLCLK
    WM_NCLBUTTONDOWN WM_MENUGETOBJECT WM_NCDESTROY WM_GETDLGCODE WM_HOTKEY
    WM_DESTROYCLIPBOARD WM_QUERYOPEN WM_IME_ENDCOMPOSITION WM_COPY WM_MENUCHAR
    WM_TIMECHANGE WM_IME_NOTIFY WM_HANDHELDFIRST WM_NCCALCSIZE WM_CTLCOLORMSGBOX
    WM_MENURBUTTONUP WM_LBUTTONUP WM_RBUTTONDOWN WM_EXITSIZEMOVE WM_SETTEXT 
WM_GETOBJECT
    WM_VKEYTOITEM WM_NCXBUTTONDOWN WM_EXITMENULOOP WM_SYSCOMMAND WM_COPYDATA 
WM_VSCROLL
    WM_LBUTTONDOWN WM_NEXTMENU WM_CLEAR WM_KEYDOWN WM_CUT WM_QUERYUISTATE
    WM_ASKCBFORMATNAME WM_QUERYDRAGICON WM_NCRBUTTONDBLCLK WM_PRINT 
WM_HSCROLLCLIPBOARD
    WM_CANCELJOURNAL WM_PENWINFIRST WM_MENUSELECT WM_UNINITMENUPOPUP 
WM_IME_SELECT
    WM_CREATE WM_UPDATEUISTATE WM_ENTERMENULOOP WM_SETREDRAW WM_PASTE 
WM_DRAWITEM
    WM_MOUSEACTIVATE WM_SETFOCUS WM_NCRBUTTONDOWN WM_ENTERSIZEMOVE 
WM_STYLECHANGING
    WM_INITMENU WM_CTLCOLORLISTBOX WM_GETICON WM_AFXFIRST WM_NCMOUSEMOVE 
WM_SETTINGCHANGE
    WM_STYLECHANGED WM_PAINT WM_NCMBUTTONUP WM_HSCROLL WM_XBUTTONDBLCLK
    WM_QUERYNEWPALETTE WM_MBUTTONUP WM_SETHOTKEY WM_APP WM_POWER 
WM_DEVICECHANGE WM_TCARD
    WM_GETMINMAXINFO WM_CANCELMODE WM_NCMBUTTONDOWN WM_GETFONT 
WM_POWERBROADCAST WM_CHAR
    WM_MDICASCADE WM_IME_KEYUP WM_COMPAREITEM WM_NCPAINT WM_NCMBUTTONDBLCLK
    WM_CAPTURECHANGED WM_UNICHAR WM_IME_REQUEST WM_NCXBUTTONUP WM_MENUDRAG
    WM_SPOOLERSTATUS WM_COMMNOTIFY WM_MDIRESTORE WM_PENWINLAST WM_NCRBUTTONUP
    WM_HANDHELDLAST WM_ENTERIDLE WM_PAINTICON WM_GETTEXTLENGTH WS_EX_TOPMOST
    WS_EX_ACCEPTFILES WS_CHILDWINDOW WS_EX_RIGHT WS_EX_LAYERED 
WS_EX_PALETTEWINDOW
    WS_EX_CLIENTEDGE WS_EX_WINDOWEDGE WS_EX_STATICEDGE WS_MAXIMIZE 
WS_EX_OVERLAPPEDWINDOW
    WS_TILEDWINDOW WS_EX_LEFT WS_CHILD WS_POPUP WS_TABSTOP WS_BORDER 
WS_CLIPSIBLINGS
    WS_HSCROLL WS_EX_TRANSPARENT WS_EX_LEFTSCROLLBAR WS_SYSMENU WS_DISABLED 
WS_TILED
    WS_CLIPCHILDREN WS_EX_CONTEXTHELP WS_EX_LAYOUTRTL WS_EX_NOINHERITLAYOUT
    WS_EX_APPWINDOW WS_CAPTION WS_EX_DLGMODALFRAME WS_MINIMIZEBOX 
WS_EX_CONTROLPARENT
    WS_VSCROLL WS_POPUPWINDOW WS_EX_TOOLWINDOW WS_EX_LTRREADING WS_VISIBLE
    WS_EX_COMPOSITED WS_EX_NOPARENTNOTIFY WS_EX_RIGHTSCROLLBAR WS_EX_RTLREADING
    WS_MAXIMIZEBOX WS_EX_NOACTIVATE WS_EX_MDICHILD WS_ICONIC WS_SIZEBOX
    WS_OVERLAPPEDWINDOW WS_THICKFRAME WS_DLGFRAME WS_OVERLAPPED WS_MINIMIZE 
WS_GROUP ) ],
);

require Win32::GUI::Constants::Tags;

for my $tag (@tags) {
        my @TAGS = @{Win32::GUI::Constants::Tags::tag($tag)};
        my @REQUIRED = @{$RESULTS{$tag}};

        #both lists the same size?
        ok(@TAGS == @REQUIRED, ":$tag is correct size");

        #both lists contain the same items?
        my %h;
        for my $item (@TAGS, @REQUIRED) {
                $h{$item}++;
        }
        my @errors;
        for my $item (keys %h) {
                next if $h{$item} == 2;
                push @errors, $item;
        }
        ok([EMAIL PROTECTED], "Lists have no differing items (@errors)");
}

--- NEW FILE: 04_noexport.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 04_noexport.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check inlining a single non-exported constant

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 2;

use Win32::GUI::Constants qw(-noexport CW_USEDEFAULT);

# Test exporting of constant
ok(!main->can("CW_USEDEFAULT"), "Default symbol not exported");

# If the function is defined at this stage it can be inlined
ok(defined(&Win32::GUI::Constants::CW_USEDEFAULT),"symbol will be inlined");

--- NEW FILE: 71_invalid_values.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 71_invalid_values.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - test that the constants sub returns undef and sets
#   $! and $^E on non-existant comstants

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More;
use Win32::GUI::Constants();

my @tests = qw(THIS_DOES_NOT_EXITS NOR_DOES_THIS);

plan tests => 3 * @tests;

# Useful Constants:
sub EINVAL() {22}
sub ERROR_INVALID_ARGUMENT() {87}

# On cygwin, $^E == $! (no OS extended errors)
my $EXPECTED_E = ERROR_INVALID_ARGUMENT;
if(lc $^O eq "cygwin") {
    $EXPECTED_E = EINVAL;
}


for my $c (@tests) {
    my($r, $e);
    $!=0;$^E=0;
    $r = Win32::GUI::Constants::constant($c);
    $e = $^E;  # record $^E immediately
    is($r , undef, "Constant $c does not exist");
    cmp_ok($!, "==", EINVAL, "Errno set to EINVAL");
    cmp_ok($e, "==", $EXPECTED_E, "LastError set to ERROR_INVALID_ARGUMENT");
}
  

--- NEW FILE: 98_pod.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 98_pod.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check POD syntax

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More;
eval "use Test::Pod 1.14";
plan skip_all => "Test::Pod 1.14 required for testing POD" if $@;
plan skip_all => "Pod tests for Win32::GUI::DropFiles done by core" if 
$ENV{W32G_CORE};
all_pod_files_ok();

--- NEW FILE: 05_export_byname.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 05_export_byname.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check exporting constants by name

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 8;

use Win32::GUI::Constants qw(ES_WANTRETURN ERROR);

# Test exporting
can_ok("main", "ES_WANTRETURN");
can_ok("main", "ERROR");

ok(!defined(&ES_WANTRETURN), "ES_WANTRETURN constant not defined");
is(ES_WANTRETURN, 4096, "correct value");
ok(defined(&ES_WANTRETURN), "ES_WANTRETURN constant defined after calling it");

ok(!defined(&ERROR), "ERROR constant not defined");
is(ERROR, 0, "correct value");
ok(defined(&ERROR), "ERROR constant defined after calling it");

--- NEW FILE: 50_tags_compatability_win32_gui.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 50_tags_compatability_win32_gui.t,v 1.1 2006/05/13 15:39:30 robertemay 
Exp $
#

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

# Check that the :compatability_win32_gui export tag actually exports
# the same symbols as Win32::GUI currently does.

use Test::More tests => 2;

require Win32::GUI::Constants::Tags;

my @W32G_NEW = @{Win32::GUI::Constants::Tags::tag('compatibility_win32_gui')};

# Copied from GUI.pm, with DS_RECURSE removed, as it doesn't seem to exist
my @W32G_ORIG =  qw(
    BS_3STATE
    BS_AUTO3STATE
    BS_AUTOCHECKBOX
    BS_AUTORADIOBUTTON
    BS_CHECKBOX
    BS_DEFPUSHBUTTON
    BS_GROUPBOX
    BS_LEFTTEXT
    BS_NOTIFY
    BS_OWNERDRAW
    BS_PUSHBUTTON
    BS_RADIOBUTTON
    BS_USERBUTTON
    BS_BITMAP
    BS_BOTTOM
    BS_CENTER
    BS_ICON
    BS_LEFT
    BS_MULTILINE
    BS_RIGHT
    BS_RIGHTBUTTON
    BS_TEXT
    BS_TOP
    BS_VCENTER

    COLOR_3DFACE
    COLOR_ACTIVEBORDER
    COLOR_ACTIVECAPTION
    COLOR_APPWORKSPACE
    COLOR_BACKGROUND
    COLOR_BTNFACE
    COLOR_BTNSHADOW
    COLOR_BTNTEXT
    COLOR_CAPTIONTEXT
    COLOR_GRAYTEXT
    COLOR_HIGHLIGHT
    COLOR_HIGHLIGHTTEXT
    COLOR_INACTIVEBORDER
    COLOR_INACTIVECAPTION
    COLOR_MENU
    COLOR_MENUTEXT
    COLOR_SCROLLBAR
    COLOR_WINDOW
    COLOR_WINDOWFRAME
    COLOR_WINDOWTEXT

    DS_3DLOOK
    DS_ABSALIGN
    DS_CENTER
    DS_CENTERMOUSE
    DS_CONTEXTHELP
    DS_CONTROL
    DS_FIXEDSYS
    DS_LOCALEDIT
    DS_MODALFRAME
    DS_NOFAILCREATE
    DS_NOIDLEMSG
    DS_SETFONT
    DS_SETFOREGROUND
    DS_SYSMODAL

    DTS_UPDOWN
    DTS_SHOWNONE
    DTS_SHORTDATEFORMAT
    DTS_LONGDATEFORMAT
    DTS_TIMEFORMAT
    DTS_APPCANPARSE
    DTS_RIGHTALIGN

    ES_AUTOHSCROLL
    ES_AUTOVSCROLL
    ES_CENTER
    ES_LEFT
    ES_LOWERCASE
    ES_MULTILINE
    ES_NOHIDESEL
    ES_NUMBER
    ES_OEMCONVERT
    ES_PASSWORD
    ES_READONLY
    ES_RIGHT
    ES_UPPERCASE
    ES_WANTRETURN

    GW_CHILD
    GW_HWNDFIRST
    GW_HWNDLAST
    GW_HWNDNEXT
    GW_HWNDPREV
    GW_OWNER

    IMAGE_BITMAP
    IMAGE_CURSOR
    IMAGE_ICON

    IDABORT
    IDCANCEL
    IDIGNORE
    IDNO
    IDOK
    IDRETRY
    IDYES

    LR_DEFAULTCOLOR
    LR_MONOCHROME
    LR_COLOR
    LR_COPYRETURNORG
    LR_COPYDELETEORG
    LR_LOADFROMFILE
    LR_LOADTRANSPARENT
    LR_DEFAULTSIZE
    LR_LOADMAP3DCOLORS
    LR_CREATEDIBSECTION
    LR_COPYFROMRESOURCE
    LR_SHARED

    MB_ABORTRETRYIGNORE
    MB_OK
    MB_OKCANCEL
    MB_RETRYCANCEL
    MB_YESNO
    MB_YESNOCANCEL
    MB_ICONEXCLAMATION
    MB_ICONWARNING
    MB_ICONINFORMATION
    MB_ICONASTERISK
    MB_ICONQUESTION
    MB_ICONSTOP
    MB_ICONERROR
    MB_ICONHAND
    MB_DEFBUTTON1
    MB_DEFBUTTON2
    MB_DEFBUTTON3
    MB_DEFBUTTON4
    MB_APPLMODAL
    MB_SYSTEMMODAL
    MB_TASKMODAL
    MB_DEFAULT_DESKTOP_ONLY
    MB_HELP
    MB_RIGHT
    MB_RTLREADING
    MB_SETFOREGROUND
    MB_TOPMOST
    MB_SERVICE_NOTIFICATION
    MB_SERVICE_NOTIFICATION_NT3X

    MF_STRING
    MF_POPUP

    RBBS_BREAK
    RBBS_CHILDEDGE
    RBBS_FIXEDBMP
    RBBS_FIXEDSIZE
    RBBS_GRIPPERALWAYS
    RBBS_HIDDEN
    RBBS_NOGRIPPER
    RBBS_NOVERT
    RBBS_VARIABLEHEIGHT

    SB_LINEUP
    SB_LINELEFT
    SB_LINEDOWN
    SB_LINERIGHT
    SB_PAGEUP
    SB_PAGELEFT
    SB_PAGEDOWN
    SB_PAGERIGHT
    SB_THUMBPOSITION
    SB_THUMBTRACK
    SB_TOP
    SB_LEFT
    SB_BOTTOM
    SB_RIGHT
    SB_ENDSCROLL

    SBT_POPOUT
    SBT_RTLREADING
    SBT_NOBORDERS
    SBT_OWNERDRAW

    SM_ARRANGE
    SM_CLEANBOOT
    SM_CMOUSEBUTTONS
    SM_CXBORDER
    SM_CYBORDER
    SM_CXCURSOR
    SM_CYCURSOR
    SM_CXDLGFRAME
    SM_CYDLGFRAME
    SM_CXDOUBLECLK
    SM_CYDOUBLECLK
    SM_CXDRAG
    SM_CYDRAG
    SM_CXEDGE
    SM_CYEDGE
    SM_CXFIXEDFRAME
    SM_CYFIXEDFRAME
    SM_CXFRAME
    SM_CYFRAME
    SM_CXFULLSCREEN
    SM_CYFULLSCREEN
    SM_CXHSCROLL
    SM_CYHSCROLL
    SM_CXHTHUMB
    SM_CXICON
    SM_CYICON
    SM_CXICONSPACING
    SM_CYICONSPACING
    SM_CXMAXIMIZED
    SM_CYMAXIMIZED
    SM_CXMAXTRACK
    SM_CYMAXTRACK
    SM_CXMENUCHECK
    SM_CYMENUCHECK
    SM_CXMENUSIZE
    SM_CYMENUSIZE
    SM_CXMIN
    SM_CYMIN
    SM_CXMINIMIZED
    SM_CYMINIMIZED
    SM_CXMINSPACING
    SM_CYMINSPACING
    SM_CXMINTRACK
    SM_CYMINTRACK
    SM_CXSCREEN
    SM_CYSCREEN
    SM_CXSIZE
    SM_CYSIZE
    SM_CXSIZEFRAME
    SM_CYSIZEFRAME
    SM_CXSMICON
    SM_CYSMICON
    SM_CXSMSIZE
    SM_CYSMSIZE
    SM_CXVSCROLL
    SM_CYVSCROLL
    SM_CYCAPTION
    SM_CYKANJIWINDOW
    SM_CYMENU
    SM_CYSMCAPTION
    SM_CYVTHUMB
    SM_DBCSENABLED
    SM_DEBUG
    SM_MENUDROPALIGNMENT
    SM_MIDEASTENABLED
    SM_MOUSEPRESENT
    SM_MOUSEWHEELPRESENT
    SM_NETWORK
    SM_PENWINDOWS
    SM_SECURE
    SM_SHOWSOUNDS
    SM_SLOWMACHINE
    SM_SWAPBUTTON

    TPM_LEFTBUTTON
    TPM_RIGHTBUTTON
    TPM_LEFTALIGN
    TPM_CENTERALIGN
    TPM_RIGHTALIGN
    TPM_TOPALIGN
    TPM_VCENTERALIGN
    TPM_BOTTOMALIGN
    TPM_HORIZONTAL
    TPM_VERTICAL
    TPM_NONOTIFY
    TPM_RETURNCMD
    TPM_RECURSE

    TBSTATE_CHECKED
    TBSTATE_ELLIPSES
    TBSTATE_ENABLED
    TBSTATE_HIDDEN
    TBSTATE_INDETERMINATE
    TBSTATE_MARKED
    TBSTATE_PRESSED
    TBSTATE_WRAP

    TBSTYLE_ALTDRAG
    TBSTYLE_CUSTOMERASE
    TBSTYLE_FLAT
    TBSTYLE_LIST
    TBSTYLE_REGISTERDROP
    TBSTYLE_TOOLTIPS
    TBSTYLE_TRANSPARENT
    TBSTYLE_WRAPABLE

    BTNS_AUTOSIZE
    BTNS_BUTTON
    BTNS_CHECK
    BTNS_CHECKGROUP
    BTNS_DROPDOWN
    BTNS_GROUP
    BTNS_NOPREFIX
    BTNS_SEP
    BTNS_SHOWTEXT
    BTNS_WHOLEDROPDOWN

    TBSTYLE_AUTOSIZE
    TBSTYLE_BUTTON
    TBSTYLE_CHECK
    TBSTYLE_CHECKGROUP
    TBSTYLE_DROPDOWN
    TBSTYLE_GROUP
    TBSTYLE_NOPREFIX
    TBSTYLE_SEP

    TBSTYLE_EX_DRAWDDARROWS
    TBSTYLE_EX_HIDECLIPPEDBUTTONS
    TBSTYLE_EX_MIXEDBUTTONS

    TBTS_TOP
    TBTS_LEFT
    TBTS_BOTTOM
    TBTS_RIGHT

    TVGN_CARET
    TVGN_CHILD
    TVGN_DROPHILITE
    TVGN_FIRSTVISIBLE
    TVGN_NEXT
    TVGN_NEXTVISIBLE
    TVGN_PARENT
    TVGN_PREVIOUS
    TVGN_PREVIOUSVISIBLE
    TVGN_ROOT

    WM_CREATE
    WM_DESTROY
    WM_MOVE
    WM_SIZE
    WM_ACTIVATE
    WM_SETFOCUS
    WM_KILLFOCUS
    WM_ENABLE
    WM_SETREDRAW
    WM_COMMAND
    WM_KEYDOWN
    WM_SETCURSOR
    WM_KEYUP

    WS_BORDER
    WS_CAPTION
    WS_CHILD
    WS_CHILDWINDOW
    WS_CLIPCHILDREN
    WS_CLIPSIBLINGS
    WS_DISABLED
    WS_DLGFRAME
    WS_GROUP
    WS_HSCROLL
    WS_ICONIC
    WS_MAXIMIZE
    WS_MAXIMIZEBOX
    WS_MINIMIZE
    WS_MINIMIZEBOX
    WS_OVERLAPPED
    WS_OVERLAPPEDWINDOW
    WS_POPUP
    WS_POPUPWINDOW
    WS_SIZEBOX
    WS_SYSMENU
    WS_TABSTOP
    WS_THICKFRAME
    WS_TILED
    WS_TILEDWINDOW
    WS_VISIBLE
    WS_VSCROLL

    WS_EX_ACCEPTFILES
    WS_EX_APPWINDOW
    WS_EX_CLIENTEDGE
    WS_EX_CONTEXTHELP
    WS_EX_CONTROLPARENT
    WS_EX_DLGMODALFRAME
    WS_EX_LEFT
    WS_EX_LEFTSCROLLBAR
    WS_EX_LTRREADING
    WS_EX_MDICHILD
    WS_EX_NOPARENTNOTIFY
    WS_EX_OVERLAPPEDWINDOW
    WS_EX_PALETTEWINDOW
    WS_EX_RIGHT
    WS_EX_RIGHTSCROLLBAR
    WS_EX_RTLREADING
    WS_EX_STATICEDGE
    WS_EX_TOOLWINDOW
    WS_EX_TOPMOST
    WS_EX_TRANSPARENT
    WS_EX_WINDOWEDGE
);

#both lists the same size?
ok(@W32G_ORIG == @W32G_NEW, "Old and new export lists are the same size");

#both lists contain the same items?
my %h;
for my $item (@W32G_ORIG, @W32G_NEW) {
        $h{$item}++;
}
my @errors;
for my $item (keys %h) {
        next if $h{$item} == 2;
        push @errors, $item;
}
ok([EMAIL PROTECTED], "Lists have no differing items (@errors)");



--- NEW FILE: 03_inline.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 03_inline.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check inlining a single constant export

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 3;

use Win32::GUI::Constants qw(-inline CW_USEDEFAULT);

# Test exporting of constant
can_ok("main", "CW_USEDEFAULT");

# If the function is defined at this stage it can be inlined
ok(defined(&CW_USEDEFAULT), "exported symbol will be inlined");
ok(defined(&Win32::GUI::Constants::CW_USEDEFAULT),"symbol will be inlined");

--- NEW FILE: 02_default.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 02_default.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check a single constant export

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 8;

use Win32::GUI::Constants qw(CW_USEDEFAULT);

# Test exporting of constant
can_ok("main", "CW_USEDEFAULT");

ok(!defined(&CW_USEDEFAULT), "default constant not defined");
is(CW_USEDEFAULT, 2147483648, "correct value");
ok(defined(&CW_USEDEFAULT), "default constant defined after calling it");

# Test other symbol not exported
ok(!main->can("ES_WANTRETURN"), "main->can('ES_WANTRETURTN') failed");

# Test autoloading of constant
ok(!defined(&Win32::GUI::Constants::ES_WANTRETURN), "constant not defined");
is(Win32::GUI::Constants::ES_WANTRETURN(), 4096, "correct value");
ok(defined(&Win32::GUI::Constants::ES_WANTRETURN),"constant defined after 
calling it");

--- NEW FILE: 10_inherit.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 10_inherit.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - test that we can inherit from Win32::GUI::Constants

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 8;

package Win32::ABC;

# We're not allowed to inherit AUTOLOAD for non-methods,
# or we get this warning:
# "Use of inherited AUTOLOAD for non-method Win32::ABC::CW_USEDEFAULT() is 
deprecated ... "
# so we explicitly import it.
use Win32::GUI::Constants(-autoload);
our @ISA = qw(Win32::GUI::Constants);

package main;

#use Win32::ABC qw(CW_USEDEFAULT);
Win32::ABC->import qw(CW_USEDEFAULT);  # Equililent to use() when package 
doesn't come from seperate file

# Test exporting of default constant
can_ok("main", "CW_USEDEFAULT");

ok(!defined(&CW_USEDEFAULT), "default constant not defined");
is(CW_USEDEFAULT(), 2147483648, "correct value");
ok(defined(&CW_USEDEFAULT), "default constant defined after calling it");

# Test other symbol not exported
ok(!main->can("ES_WANTRETURN"), "main->can('ES_WANTRETURTN') failed");

# Test exporting of default constant
ok(!defined(&Win32::ABC::ES_WANTRETURN), "constant not defined");
ok(Win32::ABC::ES_WANTRETURN() == 4096, "correct value");
ok(defined(&Win32::ABC::ES_WANTRETURN),"constant defined after calling it");


--- NEW FILE: 07_nothing.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 07_nothing.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check that we can export nothing

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 6;

use Win32::GUI::Constants ();

# Test exporting of constant
ok(!main->can("CW_USEDEFAULT"), "a symbol not exported");

# Test calling pkg directly
ok(!Win32::GUI::Constants->can("ES_WANTRETURN"), "ES_WANTRETURN not available");
ok(!defined(&Win32::GUI::Constants::ES_WANTRETURN), "constant not defined");
is(Win32::GUI::Constants::ES_WANTRETURN(), 4096, "correct value");
ok(defined(&Win32::GUI::Constants::ES_WANTRETURN),"constant defined after 
calling it");
can_ok("Win32::GUI::Constants", "ES_WANTRETURN");

--- NEW FILE: 09_autoload.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 09_autoload.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check exporting of AUTOLOAD

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 5;

use Win32::GUI::Constants qw(-autoload);

ok(!main->can('ES_WANTRETURN'), "not autoloaded yet");
ok(!defined(&ES_WANTRETURN), "not defined");
is(ES_WANTRETURN(), 4096, "correct value autoloaded");
ok(defined(&ES_WANTRETURN),"constant defined after calling it");
can_ok('main', 'ES_WANTRETURN');

--- NEW FILE: 70_values.t ---
#!perl -w
# Win32::GUI::Constants test suite
# $Id: 70_values.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check that every constant has the expected value

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More;

use FindBin;
my $file = "$FindBin::Bin/70_values.def";

# See if we have the tests, written by the build process:
if(-f $file) {
    do $file;
}
else {
    # The build process should have created the tests
    plan tests => 1;
    fail("Missing test definition file: $file");
}

--- NEW FILE: 01_load.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 01_load.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check pre-requsites
# - check module loads
# - check module has a version

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

# Pre-requisites: Bail out if we havent got Test::More
eval "use Test::More";
if($@) {
    # As we haven't got Test::More, can't use diag()
    print "#\n# Test::More required to perform any Win32::GUI::DragDrop test\n";
    chomp $@;
    $@ =~ s/^/# /gm;
    print "[EMAIL PROTECTED]";
    print "Bail Out! Test::More not available\n";
    exit(1);
}

plan( tests => 3 );

# Pre-requisites: Check that we're on windows or cygwin
# bail out if we're not
if ( not ($^O =~ /MSwin32|cygwin/i)) {
    diag("\nWin32::GUI can only run on MSWin32 or cygwin, not '$^O'");
    print "Bail out! Incompatible Operating System\n";
}
pass("Correct OS: $^O");
    
# Check that Win32::GUI::Constants loads, and bail out of all
# tests if it doesn't
use_ok('Win32::GUI::Constants')
  or print STDOUT "Bail out! Can't load Win32::GUI::Constants";

# Check that Win32::GUI::Constants has a version
ok(defined $Win32::GUI::Constants::VERSION, "Win32::GUI::Constants version 
check");

--- NEW FILE: 06_export_bytag.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 06_export_bytag.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check exporting by tag

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 8;

use Win32::GUI::Constants qw(:all);

# Test exporting
can_ok("main", "ES_WANTRETURN");
can_ok("main", "ERROR");

ok(!defined(&ES_WANTRETURN), "ES_WANTRETURN constant not defined");
is(ES_WANTRETURN, 4096, "correct value");
ok(defined(&ES_WANTRETURN), "ES_WANTRETURN constant defined after calling it");

ok(!defined(&ERROR), "ERROR constant not defined");
is(ERROR, 0, "correct value");
ok(defined(&ERROR), "ERROR constant defined after calling it");

--- NEW FILE: 51_tags_all.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 51_tags_all.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

# Check that the :all export tag actually exports all the tags

use Test::More tests => 2;

require Win32::GUI::Constants::Tags;
require Win32::GUI::Constants;

my @TAGS = @{Win32::GUI::Constants::Tags::tag('all')};
my @ALL = @{Win32::GUI::Constants::_export_ok()};

#both lists the same size?
ok(@TAGS == @ALL, ":all is correct size");

#both lists contain the same items?
my %h;
for my $item (@TAGS, @ALL) {
        $h{$item}++;
}
my @errors;
for my $item (keys %h) {
        next if $h{$item} == 2;
        push @errors, $item;
}
ok([EMAIL PROTECTED], "Lists have no differing items (@errors)");

--- NEW FILE: 08_exportpkg.t ---
#!perl -wT
# Win32::GUI::Constants test suite
# $Id: 08_exportpkg.t,v 1.1 2006/05/13 15:39:30 robertemay Exp $
#
# - check we can export to a specified package

use strict;
use warnings;

BEGIN { $| = 1 } # Autoflush

use Test::More tests => 4;

use Win32::GUI::Constants (-exportpkg => 'Cnst', 'CW_USEDEFAULT');

# Test exporting of constant
can_ok("Cnst", "CW_USEDEFAULT");

ok(!defined(&Cnst::CW_USEDEFAULT), "default constant not defined");
is(Cnst::CW_USEDEFAULT, 2147483648, "correct value");
ok(defined(&Cnst::CW_USEDEFAULT), "default constant defined after calling it");


Reply via email to