/* @(#) 1.3 com/src/samples/staff/iodstaff.idl, odstaffpart, od96nt, odnt9712d 11/1/96 21:01:01 [3/21/97 17:38:14] */
//#====START_GENERATED_PROLOG======================================
//#
//#
//#   COMPONENT_NAME: odother
//#
//#   CLASSES: none
//#
//#   ORIGINS: 82,27
//#
//#
//#   (C) COPYRIGHT International Business Machines Corp. 1995,1996
//#   All Rights Reserved
//#   Licensed Materials - Property of IBM
//#   US Government Users Restricted Rights - Use, duplication or
//#   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//#   	
//#   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
//#   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
//#   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
//#   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
//#   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
//#   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
//#   OR PERFORMANCE OF THIS SOFTWARE.
//#
//#====END_GENERATED_PROLOG========================================
//#
//======================================================================
//
//                      StaffPart IDL
//
//======================================================================


#ifndef _STAFFPART_
#define _STAFFPART_

#ifndef _CONTAINER_
#include <iodbasec.idl>
#endif



//======================================================================
// Classes defined in this interface
//======================================================================

interface  StaffPart;
interface  M_StaffPart;

//======================================================================
// Classes used by this interface
//======================================================================

interface  BaseContainer;
interface  M_BaseContainer;
interface  ODFacet;
interface  ODMenuBar;
interface  ODSession;



//======================================================================
// Implementation Types
//======================================================================

#ifdef __PRIVATE__

typedef somToken        StaffModel;

#endif          // end of __PRIVATE__



//======================================================================
// StaffPart Implementation
//======================================================================

interface StaffPart : BaseContainer
{


        // exported method prototypes go here
        void    PlaySong        ();
        void    ToStaffPart     (       in ODFrame frame,
                                        in short cmd,
                                        in short noteType,
                                        in short keyPress );

#ifdef __SOMIDL__
  implementation
        {
        dllname         = "iodstaff.dll";
        functionprefix  = StaffPart;
        metaclass       = M_StaffPart;

        override:
                somInit,
                somUninit,
                Draw,
                Initialize,
                HasExtension,
                ReadContents,
                WriteContents,
                HandleMouseUp,
                HandleMenuEvent;

        releaseorder:
                // exported method names go here
                PlaySong,
                ToStaffPart;




        majorversion = 0;
        minorversion = 0;



#ifdef __PRIVATE__

        StaffModel*     fStaffModel;

        char*           fStaffMsg;             // Piano Title msg
        char*           fStatusMsg;            // Piano Status msg

        short           fOctaves;              // defined in Initialize
        short           fWhiteKeys;            // computed from fOctaves*7

        float           fLineSpace;            // depends on window size
        float           fMeasureSpace;        // depends on window size


        ODPlatformMenu  fStaffMenu;            // new / quit
        ODMenuBar       fMenuBar;              // Base Menubar
        ODSession       fSession;
        ODPart          fPartWrapper;


#endif //__PRIVATE__

  }; // end implementation section

#endif //__SOMIDL__

}; // end interface definition


// ******************************************************************

interface M_StaffPart : M_BaseContainer
{

#ifdef __SOMIDL__
  implementation
  {
    functionprefix = M_StaffPart;

    override:
        clsGetODPartHandlerName,
        clsGetODPartHandlerDisplayName,
        clsGetODPartKinds,
        clsGetOLE2ClassId,
        clsGetWindowsIconFileName;
  };

#endif  // _SOMIDL__
};

#endif //_STAFFPART_

