//===========================================================================// // File: mode.hpp // // Project: MUNGA Brick: Controls Module // // Contents: Interface specification for Controls/Gauges modules // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- -----------------------------------------------------------// // 2/13/96 CPB Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1996, Virtual World Entertainment, Inc. All rights reserved // // PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(MODE_HPP) # define MODE_HPP # if !defined(STYLE_HPP) # include # endif //######################################################################## //############################ Basic typedefs ############################ //######################################################################## typedef unsigned long ModeMask; //######################################################################### //############################## ModeManager ############################## //######################################################################### class ModeManager SIGNATURED { public: enum { nextModeBit=0 }; enum { ModeAlwaysActive = -1L // WARNING! Assumed to be 32 bits!!! }; //------------------------------------------------------------------- // Construction/destruction/verification //------------------------------------------------------------------- public: ModeManager(ModeMask initial_mask); ~ModeManager(); Logical TestInstance() const; //------------------------------------------------------------------- // Mode mask accessor //------------------------------------------------------------------- public: void AddModeMask(ModeMask mode_mask) { Check(this); previousModeMask = modeMask; modeMask |= mode_mask; Check_Fpu(); } void RemoveModeMask(ModeMask mode_mask) { Check(this); previousModeMask = modeMask; modeMask &= ~mode_mask; Check_Fpu(); } void ReplaceModeMask(ModeMask mode_mask) { Check(this); previousModeMask = modeMask; modeMask = mode_mask; Check_Fpu(); } ModeMask GetModeMask() { Check(this); Check_Fpu(); return modeMask; } ModeMask GetPreviousModeMask() { Check(this); Check_Fpu(); return previousModeMask; } //------------------------------------------------------------------- // String-to-Mode lookup //------------------------------------------------------------------- public: virtual Logical ModeStringLookup(const char *name, ModeMask *returned_value); protected: ModeMask modeMask, previousModeMask; }; #endif