home *** CD-ROM | disk | FTP | other *** search
- //----------------------------------------------------------------------------
- // ObjectWindows - (C) Copyright 1991, 1993 by Borland International
- //
- // Peeper is a program that allows the user to select some windows and
- // perform one or more actions on those windows. Actions include:
- // . Changing the window text (caption).
- // . Sending messages.
- //
- // The windows that are selected are put into a list which can be cleared
- // at any time to start over.
- //
- // To choose a window click on the 'Peep!' button and when the mouse if over
- // a window that you want to choose, click the left mouse button. To stop
- // 'peeping' click the right mouse button. You can't peep Peeper.
- //----------------------------------------------------------------------------
- #if !defined(__PEEPER_H)
- #define __PEEPER_H
-
- #include <owl\applicat.h>
- #include <owl\dialog.h>
- #include <classlib\vectimp.h>
- #include "peeper.rh"
-
- //
- // global functions used with ForEach():
- //
- void SendWMSetText(HWND& hWnd, void* p);
- void SendSysMessage(HWND& hWnd, void* p);
- void SendWMMessage(HWND& hWnd, void* p);
-
- //////////////////////////////////////////////////////////////////////
-
- //
- // Handles the 'peeping' process by capturing, tracking and releasing
- // the mouse.
- //
- class TClientWindow : public TWindow {
- public:
- TClientWindow() : TWindow(0, "") {}
-
- protected:
- void DisplayWinInfo();
- void EvLButtonDown(UINT mod_keys, TPoint& point);
- void EvRButtonDown(UINT mod_keys, TPoint& point);
-
- DECLARE_RESPONSE_TABLE(TClientWindow);
- };
-
- //////////////////////////////////////////////////////////////////////
-
- // Transfer buffer for the messages dialog.
- struct MessagesTB {
- MessagesTB()
- {
- MaxCB = MinCB = PaintCB = RestoreCB = PasteCB = CloseCB = FALSE;
- }
-
- BOOL MaxCB, MinCB, PaintCB, RestoreCB, PasteCB, CloseCB;
- };
-
- //
- // Dialog that contains checkboxs that reprsent the messages the user wants
- // to send to the selected windows.
- //
- class TMessagesDialog : public TDialog {
- public:
- TMessagesDialog(TWindow* parent, MessagesTB* mtb)
- : TDialog(parent, IDD_MESSAGES)
- {
- MaximizeCB = new TCheckBox(this, IDC_MAXIMIZE);
- MinimizeCB = new TCheckBox(this, IDC_MINIMIZE);
- PaintCB = new TCheckBox(this, IDC_PAINT);
- RestoreCB = new TCheckBox(this, IDC_RESTORE);
- PasteCB = new TCheckBox(this, IDC_PASTE);
- CloseCB = new TCheckBox(this, IDC_CLOSE);
- SetTransferBuffer(mtb);
- }
-
- private:
- TCheckBox* MaximizeCB;
- TCheckBox* MinimizeCB;
- TCheckBox* PaintCB;
- TCheckBox* RestoreCB;
- TCheckBox* PasteCB;
- TCheckBox* CloseCB;
- };
-
- //////////////////////////////////////////////////////////////////////
-
- //
- // Peeper application. Handles most of the messages.
- //
- class TPeeper : public TApplication {
- public:
- TPeeper() : TApplication("Peeper") {}
- ~TPeeper() { delete WindowList; }
-
- void InitMainWindow();
-
- private:
- TWindow* Client;
- TStatic* SelWinText;
- TListBox* SelectedWindows;
- TControlBar* Actions;
- TMessageBar* StatusLine;
- TCVectorImp<HWND>* WindowList;
-
- void CmPeeping();
- void CmChangeCaption();
- void CmClearWindowList();
- void CmSendMessage();
- void CmHelp();
-
- friend class TClientWindow;
-
- DECLARE_RESPONSE_TABLE(TPeeper);
- };
-
- #endif
-