- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
125 lines
3.6 KiB
C++
125 lines
3.6 KiB
C++
//----------------------------------------------------------------------------
|
|
// ObjectWindows
|
|
// (C) Copyright 1994 by Borland International, All Rights Reserved
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
#if !defined(OWL_OLEVIEW_H)
|
|
#define OWL_OLEVIEW_H
|
|
|
|
#if !defined(OWL_OLEWINDO_H)
|
|
# include <owl/olewindo.h>
|
|
#endif
|
|
#if !defined(OWL_DOCVIEW_H)
|
|
# include <owl/docview.h>
|
|
#endif
|
|
|
|
//--------------------- Additional notification messages ---------------------
|
|
//
|
|
const int vnInvalidate = 9; // a rect in view needs repaint
|
|
const int vnLinkView = 10; // find view with matched TOcLinkView
|
|
const int vnLinkMoniker = 11; // find view with matched moniker
|
|
|
|
NOTIFY_SIG(vnInvalidate, TRect&)
|
|
NOTIFY_SIG(vnLinkView, TOcLinkView&)
|
|
NOTIFY_SIG(vnLinkMoniker, TString&)
|
|
|
|
#define EV_VN_INVALIDATE VN_DEFINE(vnInvalidate, VnInvalidate, long)
|
|
#define EV_VN_LINKVIEW VN_DEFINE(vnLinkView, VnLinkView, long)
|
|
#define EV_VN_LINKMONIKER VN_DEFINE(vnLinkMoniker, VnLinkMoniker, long)
|
|
|
|
//
|
|
// class TOleView
|
|
// ----- --------
|
|
//
|
|
// The ole 2 window view class. Used as a view in doc/view model
|
|
//
|
|
class _USERCLASS TOleView : public TOleWindow, public TView {
|
|
public:
|
|
TOleView(TDocument& doc, TWindow* parent = 0);
|
|
~TOleView();
|
|
|
|
static const char far* StaticName() {return "Ole View";}
|
|
|
|
// Inherited virtuals from TView
|
|
//
|
|
const char far* GetViewName() {return StaticName();}
|
|
TWindow* GetWindow() {return (TWindow*)this;}
|
|
bool SetDocTitle(const char far* docname, int index)
|
|
{return TWindow::SetDocTitle(docname, index);}
|
|
bool OleShutDown();
|
|
|
|
protected:
|
|
bool CanClose();
|
|
TOcView* CreateOcView(TRegLink* link, bool isEmbedded, IUnknown* outer);
|
|
void CleanupWindow();
|
|
bool OtherViewExists();
|
|
|
|
// View notifications
|
|
//
|
|
bool VnInvalidate(TRect& rect);
|
|
bool VnDocOpened(int omode);
|
|
bool VnDocClosed(int omode);
|
|
|
|
TMenuDescr* GetViewMenu();
|
|
|
|
bool EvOcViewPartInvalid(TOcPartChangeInfo& changeInfo);
|
|
// uint32 EvOcViewDiscardUndo(void far* undo);
|
|
|
|
// Container specific messages
|
|
//
|
|
// bool EvOcAppInsMenus(TOcMenuDescr far&);
|
|
|
|
// Server specific messages
|
|
//
|
|
bool EvOcViewClose();
|
|
bool EvOcViewSavePart(TOcSaveLoad far& ocSave);
|
|
bool EvOcViewLoadPart(TOcSaveLoad far& ocLoad);
|
|
bool EvOcViewOpenDoc(const char far* path);
|
|
bool EvOcViewInsMenus(TOcMenuDescr far& sharedMenu);
|
|
bool EvOcViewAttachWindow(bool attach);
|
|
bool EvOcViewSetLink(TOcLinkView& view);
|
|
bool EvOcViewBreakLink(TOcLinkView& view);
|
|
bool EvOcViewGetItemName(TOcItemName& item);
|
|
|
|
private:
|
|
bool Destroying;
|
|
|
|
// event handlers
|
|
//
|
|
bool VnIsWindow(HWND hWnd);
|
|
|
|
DECLARE_RESPONSE_TABLE(TOleView);
|
|
DECLARE_STREAMABLE(_OWLCLASS, TOleView,1);
|
|
};
|
|
|
|
|
|
//===================== TOleLinkView =======================================
|
|
|
|
class _DOCVIEWCLASS TOleLinkView : public TView {
|
|
public:
|
|
TOleLinkView(TDocument& doc, TOcLinkView& view);
|
|
~TOleLinkView();
|
|
|
|
virtual bool VnLinkView(TOcLinkView& view);
|
|
virtual bool VnLinkMoniker(TString& moniker);
|
|
virtual bool UpdateLinks();
|
|
TString& GetMoniker();
|
|
|
|
static const char far* StaticName()
|
|
{
|
|
return "Link View";
|
|
}
|
|
|
|
const char far* GetViewName()
|
|
{
|
|
return StaticName();
|
|
}
|
|
|
|
protected:
|
|
TOcLinkView& OcLinkView; // TOcLinkView partner for this view
|
|
|
|
DECLARE_RESPONSE_TABLE(TOleLinkView);
|
|
};
|
|
|
|
#endif // OWL_OLEVIEW_H
|