Files
TeslaRel410/BORLAND/BC45/INCLUDE/OWL/STATUSBA.H
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- 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>
2026-07-19 07:33:26 -05:00

98 lines
3.1 KiB
C++

//----------------------------------------------------------------------------
// ObjectWindows
// (C) Copyright 1992, 1994 by Borland International, All Rights Reserved
//
// Class TStatusBar.
//----------------------------------------------------------------------------
#if !defined(OWL_STATUSBA_H)
#define OWL_STATUSBA_H
#if !defined(OWL_MESSAGEB_H)
# include <owl/messageb.h>
#endif
#if !defined(OWL_TEXTGADG_H)
# include <owl/textgadg.h>
#endif
//
// class TStatusBar
// ----- ----------
//
// status bars have more options than a plain message bar: you can have
// multiple text gadgets, different style borders, and you can reserve space
// for mode indicators
//
class _OWLCLASS TStatusBar : public TMessageBar {
public:
enum TModeIndicator {
ExtendSelection = 1,
CapsLock = 1 << 1,
NumLock = 1 << 2,
ScrollLock = 1 << 3,
Overtype = 1 << 4,
RecordingMacro = 1 << 5
};
TStatusBar(TWindow* parent = 0,
TGadget::TBorderStyle borderStyle = TGadget::Recessed,
uint modeIndicators = 0,
TFont* font = new TGadgetWindowFont,
TModule* module = 0);
//
// by default, adds "gadget" after the existing text gadgets and before
// the mode indicator gadgets. sets the border style to the style specified
// during construction.
//
void Insert(TGadget& gadget, TPlacement = After, TGadget* sibling = 0);
TGadget* operator [](uint index); // can't access mode indicator gadgets
//
// in order for the mode indicator status to appear you must have
// specified the mode when the window was constructed
//
bool GetModeIndicator(TModeIndicator i) const
{return (ModeIndicatorState & i) ? 1 : 0;}
void SetModeIndicator(TModeIndicator, bool state);
void ToggleModeIndicator(TModeIndicator);
struct TSpacing {
TMargins::TUnits Units;
int Value;
TSpacing() {Units = TMargins::LayoutUnits; Value = 0;}
};
//
// sets the spacing to be used between mode indicator gadgets
//
void SetSpacing(TSpacing& spacing) {Spacing = spacing;}
protected:
TGadget::TBorderStyle BorderStyle;
TSpacing Spacing;
uint NumModeIndicators;
uint ModeIndicators;
uint ModeIndicatorState;
void PositionGadget(TGadget* previous, TGadget* next, TPoint& point);
bool PreProcessMsg(MSG& msg);
bool IdleAction(long);
private:
bool GetGadgetAndStrings(TModeIndicator mode, TTextGadget*& gadget,
const char*& strOn, const char*& strOff);
bool IsModeIndicator(TGadget* gadget);
//
// hidden to prevent accidental copying or assignment
//
TStatusBar(const TStatusBar&);
TStatusBar& operator =(const TStatusBar&);
DECLARE_CASTABLE;
};
#endif // OWL_STATUSBA_H