home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-04-27 | 6.4 KB | 244 lines | [TEXT/CWIE] |
- // ===========================================================================
- // SliderTestApp.cp ©1995 Scott Squires
- // ===========================================================================
- //
-
-
- // Test application class to demo Slider.cp
-
-
- #include "SliderTestApp.h"
-
- #include <LWindow.h>
- #include <PP_Messages.h>
- #include <PP_Resources.h>
- #include <URegistrar.h>
- #include <PPobClasses.h>
- #include <LGrowZone.h>
- #include <UMemoryMgr.h>
- #include <UPowerTools.h>
-
- #include "Slider.h"
- #include "SliderTestView.h"
-
-
-
-
- #define SliderWindowID 2000
-
- #define SliderTestViewID 2001
- #define StdHorzSliderID 2002
- #define GraySliderID 2003
- #define BulbSliderID 2004
- #define CloudSliderID 2005
- #define BearSliderID 2006
- #define StdVertSliderID 2007
-
- // ===========================================================================
- // • Main Program
- // ===========================================================================
-
- void main(void)
- {
- // Set Debugging options
- #ifdef Debug_Throw
- gDebugThrow = debugAction_Alert;
- #endif
-
- #ifdef Debug_Signal
- gDebugSignal = debugAction_Alert;
- #endif
-
- InitializeHeap(4);
- InitializeToolbox();
- new LGrowZone(20000);
-
- SliderTestApp theApp;
- theApp.Run();
- }
-
-
- // ---------------------------------------------------------------------------
- // • SliderTestApp
- // ---------------------------------------------------------------------------
- // Constructor
-
- SliderTestApp::SliderTestApp()
- {
- // Minimal classes to keep application small
-
- URegistrar::RegisterClass(LPane::class_ID, LPane::CreatePaneStream);
- URegistrar::RegisterClass(LView::class_ID, LView::CreateViewStream);
- URegistrar::RegisterClass(LWindow::class_ID, LWindow::CreateWindowStream);
-
- URegistrar::RegisterClass(HorzSlider::class_ID, HorzSlider::CreateHorzSliderStream);
- URegistrar::RegisterClass(VertSlider::class_ID, VertSlider::CreateVertSliderStream);
- URegistrar::RegisterClass(SliderView::class_ID, SliderView::CreateSliderTestStream);
-
- MakeNewDocument(); // create a window at startup
- }
-
-
- // ---------------------------------------------------------------------------
- // • ~SliderTestApp
- // ---------------------------------------------------------------------------
- // Destructor
- //
-
- SliderTestApp::~SliderTestApp()
- {
- }
-
-
- void SliderTestApp::MakeNewDocument(void)
- {
- LWindow * theWindow;
- // SliderWindowID is a PPob, ResIDT defined above
- theWindow = LWindow::CreateWindow(SliderWindowID, this);
- SliderView * theView = (SliderView *)theWindow->FindPaneByID(SliderTestViewID);
-
- // All of these sliders are PPobs in window
- // each still needs to be assigned picture#s, Inited, and assigned message values
- // Typical case would be to save Slider pointers in the view class
- HorzSlider * StdHSlider = (HorzSlider *)theView->FindPaneByID(StdHorzSliderID);
- if (StdHSlider) {
- StdHSlider->SetPicts(200, 201, 202);
- StdHSlider->SetMinMax(0, 100);
- StdHSlider->SetValueMessage(StdHorzSliderID);
-
- if (StdHSlider->MakeSlider())
- StdHSlider->AddListener(theView);
- else
- delete StdHSlider; // delete if couldn't be created
- }
-
- HorzSlider * GraySlider = (HorzSlider *)theView->FindPaneByID(GraySliderID);
- if (GraySlider) {
- GraySlider->SetPicts(400, 401,402);
- GraySlider->SetMinMax(0, 1000);
- GraySlider->SetValueMessage(GraySliderID);
- // GraySlider->SetSliderOnlyFlag(true); // Only activate slider itself
- if (GraySlider->MakeSlider()) {
- GraySlider->OffsetSlider(0, 25); // place slider within base pict
- GraySlider->AddListener(theView);
- } else
- delete GraySlider; // delete if couldn't be created
-
- }
- HorzSlider * BulbSlider = (HorzSlider *)theView->FindPaneByID(BulbSliderID);
- if (BulbSlider) {
- BulbSlider->SetPicts(500, 501, 502);
- BulbSlider->SetMinMax(0, 100);
- BulbSlider->SetCursorFlag(false); // hide cursor when clicked
- BulbSlider->SetValueMessage(BulbSliderID);
-
- if (BulbSlider->MakeSlider())
- BulbSlider->AddListener(theView);
- else
- delete BulbSlider; // delete if couldn't be created
- }
-
- HorzSlider * CloudSlider = (HorzSlider *)theView->FindPaneByID(CloudSliderID);
- if (CloudSlider) {
- CloudSlider->SetPicts(600, 601);
- CloudSlider->SetMinMax(-100, 100);
- CloudSlider->SetValueMessage(CloudSliderID);
-
- if (CloudSlider->MakeSlider())
- CloudSlider->AddListener(theView);
- else
- delete CloudSlider; // delete if couldn't be created
- }
-
- HorzSlider * BearSlider = (HorzSlider *)theView->FindPaneByID(BearSliderID);
- if (BearSlider) {
- BearSlider->SetPicts(700, 701, 702);
- BearSlider->SetMinMax(100, 200);
- BearSlider->SetCursorFlag(false); // hide cursor when clicked
- BearSlider->SetValueMessage(BearSliderID);
-
- if (BearSlider->MakeSlider())
- BearSlider->AddListener(theView);
- else
- delete BearSlider; // delete if couldn't be created
-
- }
-
- VertSlider * StdVSlider = (VertSlider *)theView->FindPaneByID(StdVertSliderID);
- if (StdVSlider) {
- StdVSlider->SetPicts(300, 301); // no selection slider pict
- StdVSlider->SetMinMax(0, 65535); // full color range
- StdVSlider->SetValueMessage(StdVertSliderID);
-
- if (StdVSlider->MakeSlider())
- StdVSlider->AddListener(theView);
- else
- delete StdVSlider; // delete if couldn't be created
-
- }
- theWindow->Show();
- // Preset some of sliders
- if (GraySlider) GraySlider->SetSliderValue(243);
- if (BearSlider) BearSlider->SetSliderValue(175);
- if (StdVSlider) StdVSlider->SetSliderValue(30000);
-
-
- }
-
- // ---------------------------------------------------------------------------
- // • ObeyCommand
- // ---------------------------------------------------------------------------
- // Respond to commands
-
- Boolean SliderTestApp::ObeyCommand(CommandT inCommand, void *ioParam)
- {
- Boolean cmdHandled = true;
-
- switch (inCommand) {
-
- case cmd_New:
- MakeNewDocument();
-
- break;
-
-
- default:
- cmdHandled = LApplication::ObeyCommand(inCommand, ioParam);
- break;
- }
-
- return cmdHandled;
- }
-
- // ---------------------------------------------------------------------------
- // • FindCommandStatus
- // ---------------------------------------------------------------------------
- // This function enables menu commands.
- //
-
- void
- SliderTestApp::FindCommandStatus(
- CommandT inCommand,
- Boolean&outEnabled,
- Boolean&outUsesMark,
- Char16&outMark,
- Str255 outName)
- {
-
- switch (inCommand) {
-
- case cmd_New:
- outEnabled = true; // enable the New command
- outUsesMark = false; // but it doesn't have a checkmark etc.
- break;
-
-
-
- default:
- LApplication::FindCommandStatus(inCommand, outEnabled, outUsesMark, outMark, outName);
- break;
- }
- }
-
-
-