220 lines
7.2 KiB
C++
220 lines
7.2 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#ifndef ComposeFormUnitH
|
|
#define ComposeFormUnitH
|
|
//---------------------------------------------------------------------------
|
|
#include <System.Classes.hpp>
|
|
#include <Vcl.Controls.hpp>
|
|
#include <Vcl.StdCtrls.hpp>
|
|
#include <Vcl.Forms.hpp>
|
|
#include <Vcl.ExtCtrls.hpp>
|
|
#include <Vcl.Imaging.jpeg.hpp>
|
|
#include <Vcl.Imaging.pngimage.hpp>
|
|
#include "PNGButton.hpp"
|
|
#include "ComposePanelUnit.h"
|
|
#include <Vcl.Graphics.hpp>
|
|
#include "PopMenuUnit.h"
|
|
#include "ComposeListBoxUnit.h"
|
|
#include "SkinHintWindow.h"
|
|
#include "BackgroundForm.h"
|
|
|
|
//---------------------------------------------------------------------------
|
|
class TComposeForm : public TBackgroundForm
|
|
{
|
|
__published: // IDE-managed Components
|
|
// TImage *m_imgBk;
|
|
// TImage *m_imgBottomSide;
|
|
// TImage *m_imgLeftBottomConner;
|
|
// TImage *m_imgRightSide;
|
|
// TImage *m_imgRightBottomConner;
|
|
TImage *m_imgBreakH;
|
|
TImage *m_imgBreakI;
|
|
TImage *m_imgBreakR;
|
|
|
|
TPNGButton *m_btnNextStep;
|
|
TPNGButton *m_btnPrevStep;
|
|
TPNGButton *m_btnRecord;
|
|
TPNGButton *m_btnStop;
|
|
TPNGButton *m_btnPlay;
|
|
TPNGButton *m_btnPause;
|
|
|
|
ComposePanelUnit::TPanel *m_panelBarsShow;
|
|
TPNGButton *m_btnVolAudioSet;
|
|
Vcl::Extctrls::TPanel *m_panelAudioVolSet;
|
|
TImage *m_imgAudioVolSet;
|
|
TPNGButton *m_btnAudioVolPos;
|
|
|
|
TPNGButton *m_btnVolMusicSet;
|
|
Vcl::Extctrls::TPanel *m_panelMusicVolSet;
|
|
TImage *m_imgMusicVolSet;
|
|
TPNGButton *m_btnMusicVolPos;
|
|
|
|
TPNGButton *m_btnStyleChange;
|
|
Vcl::Extctrls::TPanel *m_panelStyleName;
|
|
TImage *m_imgStyleNameBk;
|
|
|
|
Vcl::Extctrls::TPanel *m_panelMusicInfo;
|
|
TImage *m_imgMusicInfoBk;
|
|
TLabel *m_lblPlayTime;
|
|
TLabel *m_lblBeat;
|
|
TLabel *m_lblTempo;
|
|
TLabel *m_lblKey;
|
|
TLabel *m_lblDiao;
|
|
TLabel *m_lblStyleName;
|
|
|
|
ComposeListBoxUnit::TListBox *m_lbResource;
|
|
ComposeListBoxUnit::TListBox *m_lbCompose;
|
|
TImage *m_imgResourceHead;
|
|
TImage *m_imgComposeHead;
|
|
TImage *m_imgComposeTool;
|
|
Vcl::Extctrls::TPanel *m_panelResource;
|
|
Vcl::Extctrls::TPanel *m_panelCompose;
|
|
TPNGButton *m_btnAdd;
|
|
TPNGButton *m_btnMoveUp;
|
|
TPNGButton *m_btnMoveDown;
|
|
TPNGButton *m_btnComposeMin;
|
|
TPNGButton *m_btnResourceMin;
|
|
TPNGButton *m_btnResourceClose;
|
|
TPNGButton *m_btnComposeClose;
|
|
TPNGButton *m_btnComposeMax;
|
|
TPNGButton *m_btnResourceMax;
|
|
Vcl::Extctrls::TPanel *m_panelComposeBottom;
|
|
Vcl::Extctrls::TPanel *m_panelListIcon;
|
|
TImage *m_imgResourceIcon;
|
|
TImage *m_imgComposeIcon;
|
|
TPNGButton *m_btnResourceOpen;
|
|
TPNGButton *m_btnComposeOpen;
|
|
TImage *m_imgDelete;
|
|
TPNGButton *m_btnAudioEffect;
|
|
TPNGButton *m_btnMicSet;
|
|
|
|
void __fastcall FormCreate(TObject *Sender);
|
|
void __fastcall FormDestroy(TObject *Sender);
|
|
void __fastcall FormResize(TObject *Sender);
|
|
|
|
void __fastcall FormActivate(TObject *Sender);
|
|
void __fastcall StepClick(TObject *Sender);
|
|
|
|
void __fastcall PlayClick(TObject *Sender);
|
|
void __fastcall StopClick(TObject *Sender);
|
|
void __fastcall PauseClick(TObject *Sender);
|
|
|
|
void __fastcall PlayTimeClick(TObject *Sender);
|
|
|
|
void __fastcall BtnVolSetClick(TObject *Sender);
|
|
void __fastcall ImgVolSetMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
void __fastcall BtnVolPosMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
void __fastcall BtnVolPosMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
|
|
void __fastcall BtnVolPosMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
|
|
void __fastcall BarsShowMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
void __fastcall ListBoxMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
void __fastcall StageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
|
|
void __fastcall StageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
// void __fastcall LBFontSelectMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
|
|
void __fastcall StageMouseLeave(TObject *Sender);
|
|
void __fastcall BtnListMinClick(TObject *Sender);
|
|
void __fastcall BtnListMaxClick(TObject *Sender);
|
|
void __fastcall BtnListCloseClick(TObject *Sender);
|
|
void __fastcall BtnListShowClick(TObject *Sender);
|
|
void __fastcall BtnAddClick(TObject *Sender);
|
|
void __fastcall BtnMoveClick(TObject *Sender);
|
|
void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
|
|
void __fastcall BtnStyleChangeClick(TObject *Sender);
|
|
// void __fastcall BtnFontChangeClick(TObject *Sender);
|
|
void __fastcall FormDeactivate(TObject *Sender);
|
|
void __fastcall AudioEffectClick(TObject *Sender);
|
|
void __fastcall MicSetClick(TObject *Sender);
|
|
|
|
private: // User declarations
|
|
//音量相关
|
|
int m_nAudioVolPos,
|
|
m_nMusicVolPos,
|
|
m_yPosDragBegin;
|
|
bool m_bPosDraging;
|
|
|
|
//播放/显示相关
|
|
int m_iStartBar,
|
|
m_iLastStartBar,
|
|
m_nTotalBarNum;
|
|
double m_dblStartPoint,
|
|
m_dblLastStartPoint;
|
|
UINT m_tTimer, m_tAccuracy, m_tMusicLen;
|
|
|
|
//编曲相关
|
|
int m_iLastStyleID;
|
|
|
|
//菜单操作相关
|
|
TPopMenu * m_pPopMenu;
|
|
int m_iPopBar, m_iPopPoint;
|
|
|
|
//拖动操作相关
|
|
TImage *m_imgDrag;
|
|
bool m_bDraging;
|
|
int m_iDragingIndex,
|
|
m_xImgDrag,
|
|
m_yImgDrag; //透明图片相对于鼠标的位置
|
|
TBitmap *m_bmpDeleteNormal,
|
|
*m_bmpDeleteHover;
|
|
|
|
//信息显示相关
|
|
int m_iHintStage;
|
|
TSkinHintWindow *m_pStageInfoWnd;
|
|
TTimer *m_pTimerHint;
|
|
TObject *m_pHintObject;
|
|
|
|
//列表位置相关
|
|
int m_iResListTop,
|
|
m_nResListHeight,
|
|
m_iComListTop,
|
|
m_nComListHeight;
|
|
|
|
// void AutoCompose();
|
|
void InitResourceList();
|
|
void ResetComposeList();
|
|
void CalcListSize();
|
|
void CheckOperationState();
|
|
void DrawDragImg( TObject* Sender, int iSelIndex );
|
|
void AddStage( int iMelodyStage );
|
|
void DeleteStage( int iComposeStage );
|
|
// bool Compose(bool bCombineSong);
|
|
void ShowPlayTime();
|
|
void SetFocusStage( int iSelIndex );
|
|
|
|
void BarsLButtonDown( int iHitType, int iHitBar, int iHitPoint, int X, int Y );
|
|
void BarsRButtonDown( int iHitType, int iHitBar, int iHitPoint, int X, int Y );
|
|
|
|
void __fastcall HintTimerProc(TObject* Sender);
|
|
void __fastcall OnSelectStageVar( TObject* Sender );
|
|
void __fastcall OnSelectBarFill( TObject* Sender );
|
|
void __fastcall OnAddStage( TObject* Sender );
|
|
void __fastcall OnDeleteStage( TObject* Sender );
|
|
void __fastcall OnSetStageStyle( TObject* Sender );
|
|
|
|
MESSAGE void __fastcall UMMediaTime(TMessage &Message);
|
|
// MESSAGE void __fastcall UMEnableReload(TMessage &Message);
|
|
MESSAGE void __fastcall UMSelectStyle(TMessage &msg);
|
|
MESSAGE void __fastcall UMReload(TMessage &msg);
|
|
MESSAGE void __fastcall UMSetFontPosition(TMessage &msg);
|
|
MESSAGE void __fastcall UMHidePopControl(TMessage &msg);
|
|
|
|
BEGIN_MESSAGE_MAP
|
|
MESSAGE_HANDLER(MSG_MEDIATIME, TMessage, UMMediaTime)
|
|
// MESSAGE_HANDLER(UM_ENABLERELOAD, TMessage, UMEnableReload)
|
|
MESSAGE_HANDLER(UM_SELECTSTYLE, TMessage, UMSelectStyle)
|
|
MESSAGE_HANDLER(UM_RELOAD, TMessage, UMReload)
|
|
MESSAGE_HANDLER(UM_SETFONTPOSITION, TMessage, UMSetFontPosition)
|
|
MESSAGE_HANDLER(UM_HIDEPOPCONTROL, TMessage, UMHidePopControl)
|
|
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
|
|
END_MESSAGE_MAP(TForm)
|
|
|
|
public: // User declarations
|
|
__fastcall TComposeForm(TComponent* Owner);
|
|
|
|
void __fastcall ChangeChordMode( bool bAlpha );
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
extern PACKAGE TComposeForm *ComposeForm;
|
|
//---------------------------------------------------------------------------
|
|
#endif
|