#ifndef _c_Broadcasting_Table_Selectors_h #define _c_Broadcasting_Table_Selectors_h // =========================================================================== // cBroadcastingTableSelectors.cpp Version 1.0 ©1998 Joakim Braun All rights reserved. // =========================================================================== // // Two subclasses of LBroadcaster and, respectively, LTableSingleSelector and LTableMultiSelector. // Classes broadcasts a message every time table selection is about to change, // and another message every time selection has changed. Messages are customizable. // Useful if you have an LTableView and clicking in it causes entry data to be // made available for the user to edit. When you receive mAboutToChangeMsg, // you know it's time to retrieve the data shown and prepare to show another entry's data. // cBroadcastingTableSelectors is free for any and all use. // Do not distribute modified source code under my name. // No support promised, no liability accepted. Provided "as is". // That said, I can be reached at braun@swipnet.se. // Change history: // 1.0 June 4, 1998 First release #include #include #include class cBroadcastingSingleSelector : public LTableSingleSelector, public LBroadcaster { public: cBroadcastingSingleSelector(LTableView *inTableView); cBroadcastingSingleSelector(LTableView *inTableView, MessageT inAboutToChangeMessage, MessageT inChangedMsg); virtual void SelectCell( const STableCell &inCell); virtual void UnselectCell( const STableCell &inCell); void SetMessages(MessageT inAboutToChangeMessage, MessageT inChangedMsg); void GetMessages(MessageT& outAboutToChangeMessage, MessageT& outChangedMsg); protected: MessageT mAboutToChangeMsg, mChangedMsg; }; class cBroadcastingMultiSelector : public LTableMultiSelector, public LBroadcaster { public: cBroadcastingMultiSelector(LTableView *inTableView); cBroadcastingMultiSelector(LTableView *inTableView, MessageT inAboutToChangeMessage, MessageT inChangedMsg); virtual void SelectCell( const STableCell &inCell); virtual void UnselectCell( const STableCell &inCell); void SetMessages(MessageT inAboutToChangeMessage, MessageT inChangedMsg); void GetMessages(MessageT& outAboutToChangeMessage, MessageT& outChangedMsg); protected: MessageT mAboutToChangeMsg, mChangedMsg; }; #endif