Files
AccompanyCube/ComposePanelUnit.h
2026-06-13 00:10:11 +08:00

86 lines
2.6 KiB
C++

//---------------------------------------------------------------------------
#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