home *** CD-ROM | disk | FTP | other *** search
- #include <owl\owlpch.h>
- #include <owl\applicat.h>
- #include <owl\framewin.h>
- #include <owl\vbxctl.h>
- #include "..\..\..\include\awareowl.h"
- #include "awclock.h"
-
- //////////////////////////////////////////////////////////////////////
- //
- // The following class implements the Clock application's about box.
- //
-
- class TAboutDlg : public TDialog
- {
- protected :
- CAwareClock* pClock;
-
- public :
- TAboutDlg(TWindow* parent);
- ~TAboutDlg();
-
- protected :
- virtual void SetupWindow();
- };
-
- //////////////////////////////////////////////////////////////////////
-
- TAboutDlg::TAboutDlg(TWindow* parent)
- : TDialog(parent, "AboutDialog")
- {
- pClock = new CAwareClock(this, IDC_CLOCK);
- }
-
- //////////////////////////////////////////////////////////////////////
-
- TAboutDlg::~TAboutDlg()
- {
- delete pClock;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void TAboutDlg::SetupWindow()
- {
- TDialog::SetupWindow();
- pClock->SetAnalogTicks(CLK_ANALOGTICKS_HOUR);
- pClock->SetClockStyle(CLK_CLOCKSTYLE_ANALOG);
- }
-
- //////////////////////////////////////////////////////////////////////
- //
- // The following class implements the Clock application's main window.
- //
-
- class TClockWnd : public TFrameWindow, public TVbxEventHandler
- {
- protected :
- CAwareClock* pClock;
-
- public :
- TClockWnd();
- ~TClockWnd();
-
- protected :
- virtual void SetupWindow();
- void EvSize(UINT sizeType, TSize& size);
- void EvClick(VBXEVENT far* event);
-
- DECLARE_RESPONSE_TABLE(TClockWnd);
- };
-
- //////////////////////////////////////////////////////////////////////
-
- DEFINE_RESPONSE_TABLE2(TClockWnd, TFrameWindow, TVbxEventHandler)
- EV_WM_SIZE,
- EV_VBXEVENTNAME (IDC_CLOCK, "Click", EvClick),
- END_RESPONSE_TABLE;
-
- //////////////////////////////////////////////////////////////////////
-
- TClockWnd::TClockWnd()
- : TFrameWindow(0, "Aware/VBX Clock")
- {
- AssignMenu("MainMenu");
- pClock = new CAwareClock(this, IDC_CLOCK, "", 10, 10, 100, 40);
- }
-
- //////////////////////////////////////////////////////////////////////
-
- TClockWnd::~TClockWnd()
- {
- delete pClock;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void TClockWnd::SetupWindow()
- {
- TWindow::SetupWindow();
- pClock->SetAllowMoveHand(CLK_ALLOWMOVEHAND_LEFT_BUTTON);
- pClock->SetBorderStyle(CLK_BORDERSTYLE_NO_BORDER);
- pClock->SetClockStyle(CLK_CLOCKSTYLE_ANALOG);
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void TClockWnd::EvClick(VBXEVENT far* event)
- {
- int iButton = CLK_CLICK_BUTTON(event);
- ENUM enumAnalogTicks;
-
- if( iButton == 2 ) // if right button click
- {
- pClock->GetAnalogTicks(enumAnalogTicks);
- switch( enumAnalogTicks )
- {
- case CLK_ANALOGTICKS_NONE :
- pClock->SetAnalogTicks(CLK_ANALOGTICKS_HOUR);
- break;
- case CLK_ANALOGTICKS_HOUR :
- pClock->SetAnalogTicks(CLK_ANALOGTICKS_MINUTE);
- break;
- case CLK_ANALOGTICKS_MINUTE :
- pClock->SetAnalogTicks(CLK_ANALOGTICKS_BOTH);
- break;
- case CLK_ANALOGTICKS_BOTH :
- pClock->SetAnalogTicks(CLK_ANALOGTICKS_NONE);
- break;
- }
- }
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void TClockWnd::EvSize(UINT /*sizeType*/, TSize& size)
- {
- pClock->MoveWindow(0, 0, size.cx, size.cy);
- }
-
- //////////////////////////////////////////////////////////////////////
- //
- // The following class implements the Clock application.
- //
-
- class TClockApp : public TApplication
- {
- private:
- void InitMainWindow();
-
- protected :
- void CmAbout();
-
- DECLARE_RESPONSE_TABLE(TClockApp);
- };
-
- //////////////////////////////////////////////////////////////////////
-
- DEFINE_RESPONSE_TABLE1(TClockApp, TApplication)
- EV_COMMAND(CM_ABOUT, CmAbout),
- END_RESPONSE_TABLE;
-
- //////////////////////////////////////////////////////////////////////
-
- void TClockApp::InitMainWindow()
- {
- MainWindow = new TClockWnd;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void TClockApp::CmAbout()
- {
- TAboutDlg(this->MainWindow).Execute();
- }
-
- //////////////////////////////////////////////////////////////////////
- //
- // The OWL application's main procedure.
- //
-
- int OwlMain(int /*argc*/, char* /*argv*/ [])
- {
- TClockApp theApp;
-
- TBIVbxLibrary vbxLib;
- return theApp.Run();
- }
-