/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ #ifndef __FORM_TEXT_H #define __FORM_TEXT_H // This file is dedicated to form type select one elements // otherwise known as list boxes on windows and // their implementation as requried by the XP layout // library. // Required includes. #include "fmabstra.h" #include "odctrl.h" class CFormText : public CFormElement { // Construction/destruction. // Do not construct directly, use GetFormElement instead. protected: friend CFormElement; CFormText(); virtual ~CFormText(); // The form element we represent. // This can be called at various times, so always update // our information when this function is called // (refresh cached or calculated XP data). protected: virtual void SetElement(LO_FormElementStruct *pFormElement); // This is called to inform us of the owning context. // Once set, we should query it to decide how we will represent our // selves (printing through a DC, existing as a window, etc). protected: virtual void SetContext(CAbstractCX *pCX); // Actions that we've been told to take. public: virtual void DisplayFormElement(LTRB& Rect); protected: // Destroy the widget (window) implemenation of the form. virtual void DestroyWidget(); // Create the widget (window) implementation of the form // but DO NOT DISPLAY. virtual void CreateWidget(); // Copy the current data out of the layout struct into the form // widget, or mark that you should represent using the current data. virtual void UseCurrentData(); // Copy the default data out of the layout struct into the form // widget, or mark that you should represent using the default data. virtual void UseDefaultData(); // Fill in the layout size information in the layout struct regarding // the dimensions of the widget. virtual void FillSizeInfo(); // Copy the current data out of the form element back into the // layout struct. virtual void UpdateCurrentData(BOOL bSubmit); public: virtual HWND GetRaw(); // The edit field. private: CODNetscapeEdit *m_pWidget; // a windproc for taking extra control of the associated widget public: static LRESULT CALLBACK EXPORT TempWndProc(HWND,UINT,WPARAM,LPARAM); private: WNDPROC mRealWndProc; }; #endif // __FORM_TEXT_H