//*********************************************************************
//*                  Microsoft Windows                               **
//*            Copyright(c) Microsoft Corp., 1993                    **
//*********************************************************************

#include "admincfg.h"

extern BOOL fInfLoaded;

INT_PTR CALLBACK TemplateOptDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
	LPARAM lParam);
VOID InitTemplateOptDlg(HWND hDlg);

BOOL OnTemplateOptions(HWND hwndApp)
{
	return (BOOL)DialogBoxParam(ghInst,MAKEINTRESOURCE(DLG_TEMPLATEOPT),hwndApp,
		TemplateOptDlgProc,(LPARAM) hwndApp);
}


INT_PTR CALLBACK TemplateOptDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
	LPARAM lParam)
{

   int i;

	switch (uMsg) {

		case WM_INITDIALOG:
			SetWindowLongPtr(hDlg,DWLP_USER,lParam);
			InitTemplateOptDlg(hDlg);
			return TRUE;

		case WM_COMMAND:
			switch (LOWORD(wParam)) {
				
				case IDD_TEMPLATELIST:
				    if ((HIWORD(wParam) == LBN_SETFOCUS) && (dwAppState & AS_CANOPENTEMPLATE))
                        EnableDlgItem(hDlg,IDD_CLOSETEMPLATE,TRUE);

					break;

				case IDOK:
				    if (LoadTemplatesFromDlg(hDlg) == ERROR_SUCCESS)
					{
					    EndDialog(hDlg, TRUE);
					}
					break;

				case IDCANCEL:
					EndDialog(hDlg,TRUE);
					break;

				case IDD_CLOSETEMPLATE:

                    i = (int)SendDlgItemMessage(hDlg, IDD_TEMPLATELIST, LB_GETCURSEL,0,0);

					if (i != LB_ERR)
					    SendDlgItemMessage(hDlg, IDD_TEMPLATELIST, LB_DELETESTRING, i, 0);
					
                    EnableDlgItem(hDlg,IDD_CLOSETEMPLATE,FALSE);
	
					if (SendDlgItemMessage(hDlg, IDD_TEMPLATELIST, LB_GETCOUNT, 0,0) == 0)
		            {
		                fInfLoaded = FALSE;
		                dwAppState &= ~AS_CANHAVEDOCUMENT;
						EnableMenuItems((HWND) GetWindowLongPtr(hDlg,DWLP_USER), dwAppState);
					}
				    break;

				case IDD_OPENTEMPLATE:
					OnOpenTemplate(hDlg,(HWND) GetWindowLongPtr(hDlg,DWLP_USER));
			
					break;
			}

			break;
			
	}

	return FALSE;
}


VOID InitTemplateOptDlg(HWND hDlg)
{
	// if template loaded, display the name in the dialog
	if (fInfLoaded)
	{
		TCHAR *p = pbufTemplates;
		while (*p)
		{
            SendDlgItemMessage(hDlg, IDD_TEMPLATELIST, LB_ADDSTRING, 0,(LPARAM) p);
			p += lstrlen(p)+1;
		}
	}

	if (dwAppState & AS_CANOPENTEMPLATE) {
		EnableDlgItem(hDlg,IDD_OPENTEMPLATE,TRUE);
		// hide the text telling you why button is disabled (since it isn't)
		ShowWindow(GetDlgItem(hDlg,IDD_TXTEMPLATE),SW_HIDE);
	}

}