/*************************************************************************
 *
 *  $RCSfile: wintypes.hxx,v $
 *
 *  $Revision: 1.14 $
 *
 *  last change: $Author: vg $ $Date: 2003/04/11 17:27:04 $
 *
 *  The Contents of this file are made available subject to the terms of
 *  either of the following licenses
 *
 *         - GNU Lesser General Public License Version 2.1
 *         - Sun Industry Standards Source License Version 1.1
 *
 *  Sun Microsystems Inc., October, 2000
 *
 *  GNU Lesser General Public License Version 2.1
 *  =============================================
 *  Copyright 2000 by Sun Microsystems, Inc.
 *  901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License version 2.1, as published by the Free Software Foundation.
 *
 *  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., 59 Temple Place, Suite 330, Boston,
 *  MA  02111-1307  USA
 *
 *
 *  Sun Industry Standards Source License Version 1.1
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.1 (the "License"); You may not use this file
 *  except in compliance with the License. You may obtain a copy of the
 *  License at http://www.openoffice.org/license.html.
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *  Copyright: 2000 by Sun Microsystems, Inc.
 *
 *  All Rights Reserved.
 *
 *  Contributor(s): _______________________________________
 *
 *
 ************************************************************************/

#ifndef _SV_WINTYPES_HXX
#define _SV_WINTYPES_HXX

#ifndef _SV_SV_H
#include <vcl/sv.h>
#endif
#ifndef _SAL_TYPES_H_
#include <sal/types.h>
#endif

// ----------------
// - Window-Types -
// ----------------

typedef USHORT WindowType;
#define WINDOW_BASE 				0x0100
#define WINDOW_FIRST				(WINDOW_BASE + 0x30)
#define WINDOW_MESSBOX				(WINDOW_FIRST)
#define WINDOW_INFOBOX				(WINDOW_FIRST + 0x01)
#define WINDOW_WARNINGBOX			(WINDOW_FIRST + 0x02)
#define WINDOW_ERRORBOX 			(WINDOW_FIRST + 0x03)
#define WINDOW_QUERYBOX 			(WINDOW_FIRST + 0x04)
#define WINDOW_WINDOW				(WINDOW_FIRST + 0x05)
#define WINDOW_SYSWINDOW			(WINDOW_FIRST + 0x06)
#define WINDOW_WORKWINDOW			(WINDOW_FIRST + 0x07)
// #define WINDOW_MDIWINDOW 		   (WINDOW_FIRST + 0x08)
#define WINDOW_FLOATINGWINDOW		(WINDOW_FIRST + 0x09)
#define WINDOW_DIALOG				(WINDOW_FIRST + 0x0a)
#define WINDOW_MODELESSDIALOG		(WINDOW_FIRST + 0x0b)
#define WINDOW_MODALDIALOG			(WINDOW_FIRST + 0x0c)
#define WINDOW_SYSTEMDIALOG 		(WINDOW_FIRST + 0x0d)
#define WINDOW_PATHDIALOG			(WINDOW_FIRST + 0x0e)
#define WINDOW_FILEDIALOG			(WINDOW_FIRST + 0x0f)
#define WINDOW_PRINTERSETUPDIALOG	(WINDOW_FIRST + 0x10)
#define WINDOW_PRINTDIALOG			(WINDOW_FIRST + 0x11)
#define WINDOW_COLORDIALOG			(WINDOW_FIRST + 0x12)
#define WINDOW_FONTDIALOG			(WINDOW_FIRST + 0x13)
#define WINDOW_CONTROL				(WINDOW_FIRST + 0x14)
#define WINDOW_BUTTON				(WINDOW_FIRST + 0x15)
#define WINDOW_PUSHBUTTON			(WINDOW_FIRST + 0x16)
#define WINDOW_OKBUTTON 			(WINDOW_FIRST + 0x17)
#define WINDOW_CANCELBUTTON 		(WINDOW_FIRST + 0x18)
#define WINDOW_HELPBUTTON			(WINDOW_FIRST + 0x19)
#define WINDOW_IMAGEBUTTON			(WINDOW_FIRST + 0x1a)
#define WINDOW_MENUBUTTON			(WINDOW_FIRST + 0x1b)
#define WINDOW_MOREBUTTON			(WINDOW_FIRST + 0x1c)
#define WINDOW_SPINBUTTON			(WINDOW_FIRST + 0x1d)
#define WINDOW_RADIOBUTTON			(WINDOW_FIRST + 0x1e)
#define WINDOW_IMAGERADIOBUTTON 	(WINDOW_FIRST + 0x1f)
#define WINDOW_CHECKBOX 			(WINDOW_FIRST + 0x20)
#define WINDOW_TRISTATEBOX			(WINDOW_FIRST + 0x21)
#define WINDOW_EDIT 				(WINDOW_FIRST + 0x22)
#define WINDOW_MULTILINEEDIT		(WINDOW_FIRST + 0x23)
#define WINDOW_COMBOBOX 			(WINDOW_FIRST + 0x24)
#define WINDOW_LISTBOX				(WINDOW_FIRST + 0x25)
#define WINDOW_MULTILISTBOX 		(WINDOW_FIRST + 0x26)
#define WINDOW_FIXEDTEXT			(WINDOW_FIRST + 0x27)
#define WINDOW_FIXEDLINE			(WINDOW_FIRST + 0x28)
#define WINDOW_FIXEDBITMAP			(WINDOW_FIRST + 0x29)
#define WINDOW_FIXEDIMAGE			(WINDOW_FIRST + 0x2a)
#define WINDOW_GROUPBOX 			(WINDOW_FIRST + 0x2c)
#define WINDOW_SCROLLBAR			(WINDOW_FIRST + 0x2d)
#define WINDOW_SCROLLBARBOX 		(WINDOW_FIRST + 0x2e)
#define WINDOW_SPLITTER 			(WINDOW_FIRST + 0x2f)
#define WINDOW_SPLITWINDOW			(WINDOW_FIRST + 0x30)
#define WINDOW_SPINFIELD			(WINDOW_FIRST + 0x31)
#define WINDOW_PATTERNFIELD 		(WINDOW_FIRST + 0x32)
#define WINDOW_NUMERICFIELD 		(WINDOW_FIRST + 0x33)
#define WINDOW_METRICFIELD			(WINDOW_FIRST + 0x34)
#define WINDOW_CURRENCYFIELD		(WINDOW_FIRST + 0x35)
#define WINDOW_DATEFIELD			(WINDOW_FIRST + 0x36)
#define WINDOW_TIMEFIELD			(WINDOW_FIRST + 0x37)
#define WINDOW_PATTERNBOX			(WINDOW_FIRST + 0x38)
#define WINDOW_NUMERICBOX			(WINDOW_FIRST + 0x39)
#define WINDOW_METRICBOX			(WINDOW_FIRST + 0x3a)
#define WINDOW_CURRENCYBOX			(WINDOW_FIRST + 0x3b)
#define WINDOW_DATEBOX				(WINDOW_FIRST + 0x3c)
#define WINDOW_TIMEBOX				(WINDOW_FIRST + 0x3d)
#define WINDOW_LONGCURRENCYFIELD	(WINDOW_FIRST + 0x3e)
#define WINDOW_LONGCURRENCYBOX		(WINDOW_FIRST + 0x3f)
#define WINDOW_TOOLBOX				(WINDOW_FIRST + 0x41)
#define WINDOW_DOCKINGWINDOW		(WINDOW_FIRST + 0x42)
#define WINDOW_STATUSBAR			(WINDOW_FIRST + 0x43)
#define WINDOW_TABPAGE				(WINDOW_FIRST + 0x44)
#define WINDOW_TABCONTROL			(WINDOW_FIRST + 0x45)
#define WINDOW_TABDIALOG			(WINDOW_FIRST + 0x46)
#define WINDOW_BORDERWINDOW 		(WINDOW_FIRST + 0x47)
#define WINDOW_BUTTONDIALOG 		(WINDOW_FIRST + 0x48)
#define WINDOW_SYSTEMCHILDWINDOW	(WINDOW_FIRST + 0x49)
#define WINDOW_FIXEDBORDER			(WINDOW_FIRST + 0x4a)
#define WINDOW_SLIDER				(WINDOW_FIRST + 0x4b)
#define WINDOW_MENUBARWINDOW        (WINDOW_FIRST + 0x4c)
#define WINDOW_TREELISTBOX	        (WINDOW_FIRST + 0x4d)
#define WINDOW_HELPTEXTWINDOW		(WINDOW_FIRST + 0x4e)
#define WINDOW_INTROWINDOW		    (WINDOW_FIRST + 0x4f)
#define WINDOW_LAST 				(WINDOW_INTROWINDOW)

// ---------------
// - Window-Bits -
// ---------------

// By changes you must also change: tools/vclrsc.hxx
typedef sal_Int64 WinBits;

// Window-Bits fuer Window
#define WB_CLIPCHILDREN 		((WinBits)0x00000001)
#define WB_DIALOGCONTROL		((WinBits)0x00000002)
#define WB_NODIALOGCONTROL		((WinBits)0x00000004)
#define WB_BORDER				((WinBits)0x00000008)
#define WB_NOBORDER 			((WinBits)0x00000010)
#define WB_SIZEABLE 			((WinBits)0x00000020)
#define WB_3DLOOK				((WinBits)0x00000040)
#define WB_AUTOSIZE 			((WinBits)0x00000080)

// Window-Bits fuer SystemWindows
#define WB_MOVEABLE 			((WinBits)0x00000100)
#define WB_ROLLABLE 			((WinBits)0x00000200)
#define WB_CLOSEABLE			((WinBits)0x00000400)
#define WB_STANDALONE			((WinBits)0x00000800)
#define WB_APP					((WinBits)0x00001000)
#define WB_PINABLE				((WinBits)0x00002000)
#define WB_SYSTEMWINDOW 		((WinBits)0x40000000)
#define WB_SIZEMOVE 			(WB_SIZEABLE | WB_MOVEABLE)

// Standard-Window-Bits fuer ChildWindows
#define WB_TABSTOP				((WinBits)0x00000100)
#define WB_NOTABSTOP			((WinBits)0x00000200)
#define WB_GROUP				((WinBits)0x00000400)
#define WB_NOGROUP				((WinBits)0x00000800)
#define WB_HORZ 				((WinBits)0x00001000)
#define WB_VERT 				((WinBits)0x00002000)
#define WB_LEFT 				((WinBits)0x00004000)
#define WB_CENTER				((WinBits)0x00008000)
#define WB_RIGHT				((WinBits)0x00010000)
#define WB_TOP					((WinBits)0x00020000)
#define WB_VCENTER				((WinBits)0x00040000)
#define WB_BOTTOM				((WinBits)0x00080000)
#define WB_DRAG 				((WinBits)0x00100000)
#define WB_SPIN 				((WinBits)0x00200000)
#define WB_REPEAT				((WinBits)0x00400000)
#define WB_NOPOINTERFOCUS		((WinBits)0x00800000)
#define WB_WORDBREAK			((WinBits)0x01000000)
#define WB_NOLABEL				((WinBits)0x02000000)
#define WB_SORT 				((WinBits)0x04000000)
#define WB_DROPDOWN 			((WinBits)0x08000000)
#define WB_AUTOHSCROLL			((WinBits)0x10000000)
#define WB_DOCKABLE 			((WinBits)0x20000000)

// system floating window
#define WB_SYSTEMFLOATWIN		((WinBits)0x100000000)
#define WB_INTROWIN            ((WinBits)0x200000000)
#define WB_NOSHADOW            ((WinBits)0x400000000)
#define WB_TOOLTIPWIN          ((WinBits)0x800000000)

#define WB_HIDE 				((WinBits)0x80000000)
#define WB_HSCROLL				WB_HORZ
#define WB_VSCROLL				WB_VERT
#define WB_TOPIMAGE 			WB_TOP

// Window-Bits for PushButtons
#define WB_DEFBUTTON			((WinBits)0x10000000)
#define WB_NOLIGHTBORDER		((WinBits)0x20000000)
#define WB_RECTSTYLE			((WinBits)0x08000000)
#define WB_SMALLSTYLE			((WinBits)0x04000000)

// Window-Bits for FixedText
#define WB_INFO 				((WinBits)0x20000000)
#define WB_PATHELLIPSIS 		((WinBits)0x00100000)
#define WB_NOMULTILINE			((WinBits)0x10000000)

// Window-Bits for Edit
#define WB_PASSWORD 			((WinBits)0x01000000)
#define WB_READONLY 			((WinBits)0x02000000)
#define WB_NOHIDESELECTION		((WinBits)0x40000000)

// Window-Bits for MultiLineEdit
#define WB_IGNORETAB			((WinBits)0x20000000)

// Window-Bits for ListBox and MultiListBox
#define WB_SIMPLEMODE			((WinBits)0x20000000)

// Window-Bits for FixedBitmap
#define WB_FAST 				((WinBits)0x04000000)
#define WB_SCALE				((WinBits)0x08000000)
#define WB_TOPLEFTVISIBLE		((WinBits)0x10000000)

// Window-Bits for ToolBox
#define WB_LINESPACING			((WinBits)0x01000000)
#define WB_SCROLL				((WinBits)0x02000000)

// Window-Bits for TabControl
#define WB_SINGLELINE			((WinBits)0x02000000)

// Window-Bits for DockingWindows
#define WB_DOCKBORDER			((WinBits)0x00001000)

// Window-Bits for SplitWindow
#define WB_NOSPLITDRAW			((WinBits)0x01000000)
#define WB_FLATSPLITDRAW		((WinBits)0x02000000)

// Window-Bits for MessageBoxen
#define WB_OK					((WinBits)0x00100000)
#define WB_OK_CANCEL			((WinBits)0x00200000)
#define WB_YES_NO				((WinBits)0x00400000)
#define WB_YES_NO_CANCEL		((WinBits)0x00800000)
#define WB_RETRY_CANCEL 		((WinBits)0x01000000)
#define WB_DEF_OK				((WinBits)0x02000000)
#define WB_DEF_CANCEL			((WinBits)0x04000000)
#define WB_DEF_RETRY			((WinBits)0x08000000)
#define WB_DEF_YES				((WinBits)0x10000000)
#define WB_DEF_NO				((WinBits)0x20000000)

// Standard-WinBits
#define WB_STDWORK				(WB_SIZEMOVE | WB_CLOSEABLE)
#define WB_STDDOCKWIN			(WB_DOCKABLE | WB_MOVEABLE | WB_CLOSEABLE)
#define WB_STDFLOATWIN			(WB_SIZEMOVE | WB_CLOSEABLE | WB_ROLLABLE)
#define WB_STDDIALOG			(WB_MOVEABLE | WB_CLOSEABLE)
#define WB_STDMODELESS			(WB_STDDIALOG)
#define WB_STDMODAL 			(WB_STDDIALOG)
#define WB_STDTABDIALOG 		(WB_STDDIALOG)
#define WB_STDTABCONTROL		0

// For TreeListBox
#define WB_HASBUTTONS			((WinBits)0x00800000)
#define WB_HASLINES 			((WinBits)0x01000000)
#define WB_HASLINESATROOT		((WinBits)0x02000000)

// For FileOpen Dialog
#define WB_PATH 				((WinBits)0x00100000)
#define WB_OPEN 				((WinBits)0x00200000)
#define WB_SAVEAS				((WinBits)0x00400000)

#ifndef NOOLDSV
#define WB_SVLOOK				WB_3DLOOK
#define WB_MINABLE				0
#define WB_MAXABLE				0
#define WB_MINMAX				(WB_MINABLE | WB_MAXABLE)
#define WB_HIDEWHENDEACTIVATE	0
#define WB_ENABLERESIZING		0
#define WB_SYSMODAL 			0
#define WB_DDEXTRAWIDTH 		0
#define WB_LEFTLABEL			0
#endif

// ---------------
// - WindowAlign -
// ---------------

// By changes you must also change: tools/vclrsc.hxx
enum WindowAlign { WINDOWALIGN_LEFT, WINDOWALIGN_TOP, WINDOWALIGN_RIGHT, WINDOWALIGN_BOTTOM };
enum ImageAlign { IMAGEALIGN_LEFT, IMAGEALIGN_TOP, IMAGEALIGN_RIGHT, IMAGEALIGN_BOTTOM };

#ifndef NOOLDSV
#define ToolBoxAlign		WindowAlign
#define BOXALIGN_LEFT		WINDOWALIGN_LEFT
#define BOXALIGN_TOP		WINDOWALIGN_TOP
#define BOXALIGN_RIGHT		WINDOWALIGN_RIGHT
#define BOXALIGN_BOTTOM 	WINDOWALIGN_BOTTOM
#endif

// ------------
// - TriState -
// ------------

// By changes you must also change: tools/vclrsc.hxx
enum TriState { STATE_NOCHECK, STATE_CHECK, STATE_DONTKNOW };

// ----------------------
// - ButtonDialog-Types -
// ----------------------

typedef USHORT StandardButtonType;
#define BUTTON_OK			((StandardButtonType)0)
#define BUTTON_CANCEL		((StandardButtonType)1)
#define BUTTON_YES			((StandardButtonType)2)
#define BUTTON_NO			((StandardButtonType)3)
#define BUTTON_RETRY		((StandardButtonType)4)
#define BUTTON_HELP 		((StandardButtonType)5)
#define BUTTON_CLOSE		((StandardButtonType)6)
#define BUTTON_MORE 		((StandardButtonType)7)
#define BUTTON_IGNORE 		((StandardButtonType)8)
#define BUTTON_ABORT 		((StandardButtonType)9)
#define BUTTON_COUNT		10

#endif // _SV_WINTYPES_HXX
