/* ----------- box.c ------------ */

#include "dflat32/dflat.h"

int BoxProc(DFWINDOW wnd, DFMESSAGE msg, PARAM p1, PARAM p2)
{
	int rtn;
	DFWINDOW oldFocus;
	CTLWINDOW *ct = GetControl(wnd);
	static BOOL SettingFocus = FALSE;
	if (ct != NULL)
	{
		switch (msg)
		{
			case SETFOCUS:
				SettingFocus = isVisible(wnd);
				rtn = BaseWndProc(BOX, wnd, msg, p1, p2);
				SettingFocus = FALSE;
				return rtn;

            case PAINT:
                return FALSE;
            case LEFT_BUTTON:
            case DFM_BUTTON_RELEASED:
                return DfSendMessage(GetParent(wnd), msg, p1, p2);
            case BORDER:
				if (SettingFocus)
					return TRUE;
				oldFocus = inFocus;
				inFocus = NULL;
				rtn = BaseWndProc(BOX, wnd, msg, p1, p2);
				inFocus = oldFocus;
                if (ct != NULL)
                    if (ct->itext != NULL)
                        writeline(wnd, ct->itext, 1, 0, FALSE);
				return rtn;
            default:
                break;
        }
    }
    return BaseWndProc(BOX, wnd, msg, p1, p2);
}

/* EOF */
