root/crypto/krb5/src/windows/leash/LeashFrame.cpp
//      **************************************************************************************
//      File:                   LeashFrame.cpp
//      By:                             Arthur David Leather
//      Created:                12/02/98
//      Copyright               @1998 Massachusetts Institute of Technology - All rights reserved.
//      Description:    CPP file for LeashFrame.h. Contains variables and functions
//                                      for Leash
//
//      History:
//
//      MM/DD/YY        Inits   Description of Change
//      12/02/98        ADL             Original
//      **************************************************************************************


#include "stdafx.h"
#include "LeashFrame.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
///////////////////////////////////////////////////////////////
// CLeashFrame

const CRect CLeashFrame::s_rectDefault(0, 0, 740, 400);  // static public (l,t,r,b)
const char CLeashFrame::s_profileHeading[] = "Window size";
const char CLeashFrame::s_profileRect[] = "Rect";
const char CLeashFrame::s_profileIcon[] = "icon";
const char CLeashFrame::s_profileMax[] = "max";
const char CLeashFrame::s_profileTool[] = "tool";
const char CLeashFrame::s_profileStatus[] = "status";

IMPLEMENT_DYNAMIC(CLeashFrame, CFrameWndEx)

BEGIN_MESSAGE_MAP(CLeashFrame, CFrameWndEx)
        //{{AFX_MSG_MAP(CLeashFrame)
        ON_WM_DESTROY()
        //}}AFX_MSG_MAP
END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////
CLeashFrame::CLeashFrame()
{
    m_bFirstTime = TRUE;
}

///////////////////////////////////////////////////////////////
CLeashFrame::~CLeashFrame()
{
}

///////////////////////////////////////////////////////////////
void CLeashFrame::OnDestroy()
{
        CString strText;
        BOOL bIconic, bMaximized;

        WINDOWPLACEMENT wndpl;
        wndpl.length = sizeof(WINDOWPLACEMENT);
        // gets current window position and
        //  iconized/maximized status
        BOOL bRet = GetWindowPlacement(&wndpl);
        if (wndpl.showCmd == SW_SHOWNORMAL)
        {
                bIconic = FALSE;
                bMaximized = FALSE;
        }
        else if (wndpl.showCmd == SW_SHOWMAXIMIZED)
        {
                bIconic = FALSE;
                bMaximized = TRUE;
        }
        else if (wndpl.showCmd == SW_SHOWMINIMIZED)
        {
                bIconic = TRUE;
                if (wndpl.flags)
                {
                        bMaximized = TRUE;
                }
                else
                {
                        bMaximized = FALSE;
                }
        }

        strText.Format("%04d %04d %04d %04d",
                       wndpl.rcNormalPosition.left,
                       wndpl.rcNormalPosition.top,
                       wndpl.rcNormalPosition.right,
                       wndpl.rcNormalPosition.bottom);

        AfxGetApp()->WriteProfileString(s_profileHeading,
                                        s_profileRect, strText);

        AfxGetApp()->WriteProfileInt(s_profileHeading,
                                     s_profileIcon, bIconic);

        AfxGetApp()->WriteProfileInt(s_profileHeading,
                                     s_profileMax, bMaximized);

        SaveBarState(AfxGetApp()->m_pszProfileName);

        CFrameWndEx::OnDestroy();
}

///////////////////////////////////////////////////////////////
void CLeashFrame::ActivateFrame(int nCmdShow)
{

    if (m_bFirstTime)
        {
                m_bFirstTime = FALSE;

    }

        CFrameWndEx::ActivateFrame(nCmdShow);
}