//--------------------------------------------------------------------------- #ifndef ComposePanelUnitH #define ComposePanelUnitH //--------------------------------------------------------------------------- #include "ShowBarsPanelUnit.h" //#include "BackupUnit.h" namespace ComposePanelUnit { //--------------------------------------------------------------------------- class TPanel : public TShowBarsPanel { __published: void __fastcall StageHeaderMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); private: TComponentList * m_lstStageHeader; // TComposeBackup m_bkCompose; // TMelodyBackup m_bkMelody; TImage *m_imgDrag; int m_xImgDrag, m_yImgDrag, m_iDragOverPos, m_iDragingStage; bool m_bDraging, m_bAddStage; int m_nChordWidth, m_nChordHeight, m_iFocusStage; TImage * NewStageHeader( int iStage ); void UpdateStageHeader( int iStage ); void AddStageHeader( int iInsStage, int iShowBar, int iComposeStage ); void RemoveStageHeader( int iDelStage ); void UpdateDragOverPos( int iNewPos ); int FirstBar( int iStage ); void InvalidateStage( int iStage, int iArea=BAR_DATA ); void UpdateHeaders( int iStart=0 ); protected: virtual void __fastcall CreateWnd(); virtual void __fastcall Paint(void); virtual void __fastcall SetBarTitle( int iBar, String& strText ); virtual void __fastcall DrawBarBkgnd( int iBar, int left, int top ); virtual void __fastcall DrawBarContext( int iBar, int left, int top ); virtual void __fastcall DrawBarOperation( int iBar, int left, int top ); virtual void __fastcall BarPosChanged(); // DYNAMIC void __fastcall KeyDown(System::Word &Key, System::Classes::TShiftState Shift); public: __fastcall virtual TPanel(System::Classes::TComponent* AOwner); __fastcall ~TPanel(); void InitialVars(); int ComposeBarCount(){ return m_nBarNum; }; // BOOL CheckModify( int iCheckType=CHECK_ALL ); // void BackupModify(); // void RestoreModify(); int FindStage( int iBar, int *piFirstBar=NULL ); void SetFocusStage( int iStage ); void SetBarFill( int iBar, int iFill ); void SetStageVar( int iStage, int iVar ); void SetStageStyle( int iStage, int idStyle ); void SetDragImage( TImage* img ){ m_imgDrag = img; }; void SetDragState( bool bDraging ); void SetDragStage( bool bAdd, int iStage ); void SetDragImgPos( int X, int Y ); BOOL SetDragingPoint( int X, int Y ); int SetDropPoint( int X, int Y ); void InsertStage( int iStage, int iInsertPos ); void AddStage( int iStage ); void DeleteStage( int iStage ); void MoveStage( int iSource, int iDest ); }; } using namespace ComposePanelUnit; #endif