- 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>
87 lines
2.8 KiB
C++
87 lines
2.8 KiB
C++
//----------------------------------------------------------------------------
|
|
// ObjectWindows
|
|
// (C) Copyright 1992, 1994 by Borland International, All Rights Reserved
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
#if !defined(OWL_DECFRAME_H)
|
|
#define OWL_DECFRAME_H
|
|
|
|
#if !defined(OWL_FRAMEWIN_H)
|
|
# include <owl/framewin.h>
|
|
#endif
|
|
#if !defined(OWL_LAYOUTWI_H)
|
|
# include <owl/layoutwi.h>
|
|
#endif
|
|
|
|
const int IDW_TOOLBAR = 32041; // Standard toolbar child window ID
|
|
|
|
//
|
|
// class TDecoratedFrame
|
|
// ----- ---------------
|
|
//
|
|
// automatically positions its client window(you must supply a client window)
|
|
// so that it is the same size as the client rect
|
|
//
|
|
// you can add additional decorations like toolbars and status lines
|
|
//
|
|
class _OWLCLASS TDecoratedFrame : virtual public TFrameWindow, public TLayoutWindow {
|
|
public:
|
|
TDecoratedFrame(TWindow* parent,
|
|
const char far* title,
|
|
TWindow* clientWnd,
|
|
bool trackMenuSelection = false,
|
|
TModule* module = 0);
|
|
|
|
enum TLocation {Top = 0x0100, Bottom = 0x0200,
|
|
Left = 0x0400, Right = 0x0800};
|
|
|
|
virtual void Insert(TWindow& decoration, TLocation = Top);
|
|
|
|
//
|
|
// override TFrameWindow member function to give decorations an opportunity
|
|
// to do pre-processing (e.g. mnemonic access)
|
|
//
|
|
bool PreProcessMsg(MSG& msg);
|
|
TWindow* SetClientWindow(TWindow* clientWnd);
|
|
|
|
protected:
|
|
bool TrackMenuSelection;
|
|
uint MenuItemId;
|
|
|
|
void SetupWindow();
|
|
|
|
void RemoveChild(TWindow* child);
|
|
|
|
//
|
|
// automatic showing/hiding of tool bars and status bars
|
|
//
|
|
LRESULT EvCommand(uint id, HWND hWndCtl, uint notifyCode);
|
|
void EvCommandEnable(TCommandEnabler& ce);
|
|
|
|
//
|
|
// message response functions
|
|
//
|
|
void EvMenuSelect(uint menuItemId, uint flags, HMENU hMenu);
|
|
void EvEnterIdle(uint source, HWND hWndDlg);
|
|
void EvSize(uint sizeType, TSize& size) {TLayoutWindow::EvSize(sizeType, size);}
|
|
|
|
private:
|
|
void InsertAtTop(TWindow& decoration, TWindow* insertAbove);
|
|
void InsertAtBottom(TWindow& decoration, TWindow* insertBelow);
|
|
void InsertAtLeft(TWindow& decoration, TWindow* insertLeftOf);
|
|
void InsertAtRight(TWindow& decoration, TWindow* insertRightOf);
|
|
|
|
bool SettingClient;
|
|
|
|
//
|
|
// hidden to prevent accidental copying or assignment
|
|
//
|
|
TDecoratedFrame(const TDecoratedFrame&);
|
|
TDecoratedFrame& operator =(const TDecoratedFrame&);
|
|
|
|
DECLARE_RESPONSE_TABLE(TDecoratedFrame);
|
|
DECLARE_STREAMABLE(_OWLCLASS, TDecoratedFrame, 1);
|
|
};
|
|
|
|
#endif // OWL_DECFRAME_H
|