//===============================================================================
// Xe UI toolkit
//
// Dialog box internal stuff
//
// AUTHOR:  Gabor Nagy
// DATE:    2018-Apr-01 22:39:40
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//===============================================================================
#ifndef _XeDialogI_h
#define _XeDialogI_h

#include <Xe/ShellI.h>
#include <Xe/Dialog.h>

#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
extern "C" {
#endif


//------------------------------------------------------------------------
// Temporary resource values, used by XeDialog_New
//------------------------------------------------------------------------
#define _XeDialogArgsCore\
	_XeShellArgsCore;\
	int            MarginSizeX, MarginSizeY;\
	int            ShadowThickness;\
	int            WorkAreaType;\
	int            ButtonAlignment, ButtonSpacing;\
	EBool          CreateButtons, ButtonsStretch, ButtonsUniformWidth;\
	EBool          CreateMessageLabel, CreateSeparator;\
	EpImage*       Image;\
	const char*    MessageString;\
	XeColor        ForegroundColor, ButtonColor, TroughColor, HighlightColor;\
\
/* Connection dialog box */\
	char**         ConnectionMessages;\
	int            HostListVisibleItemCount

typedef struct
{
	_XeDialogArgsCore;
} _XeDialogArgs;


extern void  _XeDialogInitArgs(_XeDialogArgs* PDialogArgs, const int PType);
extern void  _XeDialogGetArgs(_XeDialogArgs* PDialogArgs, const EArg* PArgs, const int PArgN);
extern void  _XeDialogGetArgsVa(_XeDialogArgs* PDialogArgs, va_list PDArgs);



#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
}	// Close scope of 'extern "C"' declaration
#endif

#endif // _XeDialogI_h
