home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 May
/
Pcwk5b98.iso
/
Borland
/
Cplus45
/
BC45
/
OWLINC.PAK
/
STATUSBA.H
< prev
next >
Wrap
C/C++ Source or Header
|
1995-08-29
|
3KB
|
98 lines
//----------------------------------------------------------------------------
// 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