VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtChannelKeywordGridLines.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Copyright (c) 2011 MAK Technologies, Inc.
00003  * All rights reserved.
00004  *****************************************************************************/
00005 /*****************************************************************************
00006  * $RCSfile: DtChannelKeywordGridLines.h,v $ $Revision: 1.11 $ $State: Exp $
00007  *****************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvCore/vrvCore.h>
00016 
00017 #include <makArchives/DtGridLinesSettingsRecord.h>
00018 
00019 #include <vrvUtil/DtSignalConnectionManager.h>
00020 
00021 #include <vrvCore/DtChannelKeywordObject.h>
00022 
00023 #include <string>
00024 
00025 namespace makVrv
00026 {
00027 
00028    class DtDe;
00029    class DtChannelConfiguration;
00030    class DtWindowConfiguration;
00031    class DtChannelGridLinesAgent;
00032    class DtObserver;
00033    class DtInputDriver;
00034 
00037    class DT_DLL_VRVCORE DtChannelKeywordGridLines : public DtChannelKeywordObject
00038    {
00039    public:
00040 
00042       friend class DtChannelKeywordGridLinesCreator;
00043 
00045       virtual ~DtChannelKeywordGridLines();
00046    
00050       virtual void channelNameChanged( const std::string& displayName, 
00051          const std::string& windowName,  const std::string& channelName );
00052 
00055       virtual void channelConfigurationChanged( 
00056          const DtChannelConfiguration& config );
00057 
00060       virtual void windowConfigurationChanged( 
00061          const DtWindowConfiguration& config ) {}
00062 
00063    protected:
00064         
00065       // Slots for responding to observer-related signals
00066 
00069       virtual void slot_observerCreated( DtInputDriver*, DtObserver* observer );
00070       
00073       virtual void slot_observerToBeDestroyed( DtInputDriver*, DtObserver* observer );
00074       
00077       virtual void slot_observerModeChanged( DtObserver* observer, int newMode );
00078 
00082       virtual void slot_observerModeSettingChanged( int mode, int setting );
00083 
00085       virtual void slot_coordinateSystemChanged( const std::string&, const std::string& );
00086 
00088       virtual void slot_autoSpacingSet( bool );
00089 
00091       virtual void slot_fixedSpacingAmountSet( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits, double );
00092 
00094       virtual void slot_fixedAngularSpacingAmountSet( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits, double );
00095 
00097       virtual void slot_gridTypeSet( makArchives::DtDisplayUnitsSettingsRecord::CoordSys );
00098 
00100       virtual void slot_unitTypeSet( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits );
00101 
00103       virtual void slot_angularUnitTypeSet( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits );
00104 
00106       virtual void slot_minSpacingSet( int );
00107 
00109       virtual void slot_xOffsetSet( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits, double );
00110 
00112       virtual void slot_yOffsetSet( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits, double );
00113 
00115       virtual void slot_longitudeOffsetSet( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits, double );
00116 
00118       virtual void slot_latitudeOffsetSet( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits, double );
00119 
00121       virtual void slot_decimalPlacesSet( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits, unsigned );
00122 
00124       virtual void slot_angularDecimalPlacesSet( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits, unsigned );
00125 
00126       // Helper methods
00127 
00128       // Set myObserver to the specified observer and connect to the observerModeChanged
00129       // signal
00130       virtual void connectToObserver( DtObserver* observer );
00131 
00132       // Look up the observer by name, cache the observer name, and call connectToObserver
00133       // with the found observer
00134       virtual void connectToObserver( const std::string& observerName );
00135 
00136       // Disconnect from the current observer's observerModeChanged signal, delete the
00137       // the grid line agent if it exists, and set myObserver and myGridLineAgent
00138       // to Null
00139       virtual void disconnectFromObserver();
00140 
00141       // This function looks up the display grid lines observer setting value and creates 
00142       // or destroys a grid line object as needed
00143       virtual void updateGridLinesState();
00144 
00148       virtual bool validateGridType();
00149 
00153       virtual bool validateUnitType();
00154 
00155    protected:
00156 
00158       DtChannelKeywordGridLines( DtDe& de, const std::string& keyword,
00159          const std::string& displayName, const std::string& windowName,
00160          const DtChannelConfiguration& channelConfig );
00161 
00162       makArchives::DtDisplayUnitsSettingsRecord::CoordSys defaultForCoordSys( 
00163          const std::string& type );
00164 
00165       // Returns true if we are currently using this unit type
00166       bool currentUnits( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ) const;
00167       bool currentUnits( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit ) const;
00168 
00169    protected:
00170 
00171       DtChannelGridLinesAgent* myGridLinesAgent;
00172       std::string myObserverName;
00173       DtObserver* myObserver;
00174       std::string myKeyword;
00175       std::string myDisplayName;
00176       std::string myWindowName;
00177       std::string myChannelName;
00178       DtSignalConnectionManager myConnections;
00179       makArchives::DtDisplayUnitsSettingsRecord::CoordSys myGridType;
00180    };
00181 
00184    class DT_DLL_VRVCORE DtChannelKeywordGridLinesCreator
00185       : public DtChannelKeywordObjectCreator
00186    {
00187    public:
00188 
00190       DtChannelKeywordGridLinesCreator();
00191 
00193       virtual ~DtChannelKeywordGridLinesCreator();
00194 
00196       virtual DtChannelKeywordObject* createChannelKeywordObject(DtDe& de,
00197          const std::string& displayName, const std::string& windowName,
00198          const DtChannelConfiguration& channelConfig );
00199 
00200    public:
00201 
00202       static std::string keyword();
00203 
00204    protected:
00205 
00206       std::string myKeyword;
00207 
00208    };
00209 
00210 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)