232 lines
7.0 KiB
C++
232 lines
7.0 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#ifndef StyleSelFormUnitH
|
|
#define StyleSelFormUnitH
|
|
//---------------------------------------------------------------------------
|
|
#include <System.Classes.hpp>
|
|
#include <Vcl.Controls.hpp>
|
|
#include <Vcl.StdCtrls.hpp>
|
|
#include <Vcl.Forms.hpp>
|
|
#include <Vcl.ExtCtrls.hpp>
|
|
#include <Vcl.Graphics.hpp>
|
|
#include "PNGButton.hpp"
|
|
#include "StyleSelListBoxUnit.h"
|
|
#include "TransparentEditUnit.h"
|
|
#include "PopMenuUnit.h"
|
|
#include "SkinHintWindow.h"
|
|
#include <Vcl.Imaging.pngimage.hpp>
|
|
#define RADIO_NUM 13
|
|
#define CHECK_NUM 12
|
|
//---------------------------------------------------------------------------
|
|
class TStyleSelForm : public TForm
|
|
{
|
|
__published: // IDE-managed Components
|
|
TImage *m_ImgBkg;
|
|
TPNGButton *m_btnFind;
|
|
TPNGButton *m_btnPlay;
|
|
TPNGButton *m_btnCollect;
|
|
TPNGButton *m_btnRecord;
|
|
TPNGButton *m_btnTry;
|
|
TPaintBox *m_pbBase1;
|
|
TPaintBox *m_pbBase2;
|
|
TPaintBox *m_pbBase3;
|
|
TPaintBox *m_pbBase4;
|
|
TPaintBox *m_pbInt1;
|
|
TPaintBox *m_pbInt2;
|
|
TPaintBox *m_pbInt3;
|
|
TPaintBox *m_pbInt4;
|
|
TPaintBox *m_pbEnd1;
|
|
TPaintBox *m_pbEnd2;
|
|
TPaintBox *m_pbEnd3;
|
|
TPaintBox *m_pbEnd4;
|
|
TPaintBox *m_pbFull;
|
|
TPNGButton *m_btnClose;
|
|
TPNGButton *m_btnHeadPage;
|
|
TPNGButton *m_btnUpPage;
|
|
TPNGButton *m_btnNextPage;
|
|
TPNGButton *m_btnEndPage;
|
|
TPaintBox *m_pbPageNum;
|
|
TImage *m_ImgFind;
|
|
TPNGButton *m_btnPageGo;
|
|
TPaintBox *m_pbPages;
|
|
TransparentEditUnit::TEdit *m_edtPageGo;
|
|
TPNGButton *m_btnStop;
|
|
TPNGButton *m_btnRecommand;
|
|
TPNGButton *m_btnPngSearch;
|
|
TTimer *Timer2;
|
|
Vcl::Stdctrls::TEdit *m_edSearch;
|
|
TImage *m_imgSrearch;
|
|
StyleSelectListBoxUnit::TListBox *m_lbStyle;
|
|
TPaintBox *m_pbClassical;
|
|
TPaintBox *m_pbSamba;
|
|
TPaintBox *m_pbFolk;
|
|
TPaintBox *m_pbRock;
|
|
TPaintBox *m_pbPop;
|
|
TPaintBox *m_pbJazz;
|
|
TPaintBox *m_pbDance;
|
|
TPaintBox *m_pbWaltz;
|
|
TPaintBox *m_pbBlus;
|
|
TPaintBox *m_pbInverts;
|
|
TPaintBox *m_pbOthStyle;
|
|
TPaintBox *m_pbFree;
|
|
TLabel *m_lblTitle;
|
|
void __fastcall FormCreate(TObject *Sender);
|
|
void __fastcall RadioStylePaint(TObject *Sender);
|
|
void __fastcall RadioStyleMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall PageNumPaint(TObject *Sender);
|
|
void __fastcall PageNumMouseMove(TObject *Sender, TShiftState Shift, int X,
|
|
int Y);
|
|
void __fastcall PageNumMouseLeave(TObject *Sender);
|
|
void __fastcall PageNumMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall BtnStepPageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall FormDestroy(TObject *Sender);
|
|
void __fastcall BtnHeadOrEndPageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall CheckStylePaint(TObject *Sender);
|
|
void __fastcall CheckStyleMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall LstStyleMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall m_pbPagesPaint(TObject *Sender);
|
|
void __fastcall EdtPageGoChange(TObject *Sender);
|
|
void __fastcall FindClick(TObject *Sender);
|
|
void __fastcall CollectClick(TObject *Sender);
|
|
void __fastcall RecordClick(TObject *Sender);
|
|
void __fastcall PlayClick(TObject *Sender);
|
|
void __fastcall TryClick(TObject *Sender);
|
|
void __fastcall PageGoClick(TObject *Sender);
|
|
void __fastcall LstStyleMouseLeave(TObject *Sender);
|
|
void __fastcall LstStyleMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
|
|
void __fastcall StopClick(TObject *Sender);
|
|
void __fastcall LstStyleMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
|
|
int X, int Y);
|
|
void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
|
|
void __fastcall RecommandClick(TObject *Sender);
|
|
void __fastcall OnSearchStyles(TObject *Sender);
|
|
void __fastcall m_edSearchChange(TObject *Sender);
|
|
void __fastcall OnTimerDraw(TObject *Sender);
|
|
void __fastcall FormActivate(TObject *Sender);
|
|
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
|
|
|
|
private: // User declarations
|
|
|
|
bool m_bActiveHappened; //add by tj 2014/7/2
|
|
int m_iBtnState;
|
|
// TBitmap *m_pImgBtnState;
|
|
|
|
//单选框
|
|
TBitmap *m_pImgRadioDown,
|
|
*m_pImgRadioUp;
|
|
//多选框
|
|
TBitmap *m_pImgCheckDown,
|
|
*m_pImgCheckUp;
|
|
|
|
//视听Radio
|
|
int m_baRadio[RADIO_NUM];
|
|
TPaintBox *m_pbRadio[RADIO_NUM];
|
|
|
|
//查找Check
|
|
TPaintBox *m_pbChecks[CHECK_NUM];
|
|
int m_baChecks[CHECK_NUM];
|
|
|
|
COLORREF m_clFont,
|
|
m_clBox;
|
|
|
|
TPNGButton *m_btnPages[4];
|
|
TPopMenu * m_pPopMenu;
|
|
|
|
TTimer *m_pTimerHint;
|
|
TSkinHintWindow * m_pShowHint;
|
|
int m_iHitItemIndex;
|
|
int m_xPos;
|
|
int m_yPos;
|
|
|
|
//页码显示相关
|
|
struct {
|
|
int iSelectPage; //选择页码
|
|
int iMovingPage; //鼠标在上时的页码
|
|
int iStartPage; //第1个位置显示的页码
|
|
int iCurrentPos; //当前选中的页码位置
|
|
int iMovingPos; //鼠标在上时的页码位置
|
|
bool bShowDots; //页码益出显示省略
|
|
} m_stPageNum;
|
|
|
|
//风格选择相关
|
|
struct {
|
|
int iOldSelectPage; //已选择的风格页码
|
|
int iOldSelectItemIndex; //已选择的风格页码下的相对索引值
|
|
int iSelect; //已选择的风格页码下的绝对索引值
|
|
int iIdCollect; //收藏风格的ID
|
|
bool bPlay;
|
|
}m_stLstSelect;
|
|
|
|
//当前总页数
|
|
int m_nPageNum;
|
|
|
|
int m_iDownItemIndex;
|
|
int m_iOldItemIndex;
|
|
int m_iOldItemState;
|
|
int m_iDwnLdgIndex;
|
|
|
|
//删除收藏有关
|
|
bool m_bCollectDelete;
|
|
int m_iCollectDelete;
|
|
//ListBox加载页码
|
|
void AddPageItem(int iPage);
|
|
// int GetStyleHeadParam(int ID,TSTYLE_HEAD_PRAME *ts);
|
|
|
|
void RefreshSearchStyles(const String strStyleName);
|
|
|
|
void __fastcall OnCollect( TObject* Sender );
|
|
void __fastcall OnDownLoadStyle( TObject* Sender );
|
|
void __fastcall HintTimerProc(TObject* Sender);
|
|
|
|
//消息处理
|
|
void __fastcall WMNCHitTest(TWMNCHitTest &Msg);
|
|
MESSAGE void __fastcall OnNetworkMessage(TMessage &msg);
|
|
MESSAGE void __fastcall OnPlayOver(TMessage &msg);
|
|
|
|
BEGIN_MESSAGE_MAP
|
|
MESSAGE_HANDLER(MSG_PLAY_END, TMessage, OnPlayOver)
|
|
MESSAGE_HANDLER(WM_NCHITTEST, TWMNCHitTest, WMNCHitTest)
|
|
MESSAGE_HANDLER(MSG_NETWORKMESSAGE, TMessage, OnNetworkMessage)
|
|
END_MESSAGE_MAP(TForm)
|
|
|
|
public: // User declarations
|
|
__fastcall TStyleSelForm(TComponent* Owner);
|
|
|
|
bool m_bBase; //是否基本编曲窗
|
|
int m_iSelStage; //指定分段
|
|
int m_iChordType; //指定大小调
|
|
int m_idSelected; //选中的风格ID
|
|
int m_iSegType; //选中的片段
|
|
int m_iSegNo; //选中的片段号
|
|
string m_strName;
|
|
|
|
private:
|
|
void Play();
|
|
void Stop();
|
|
int GetStyle();
|
|
int FindStyle();
|
|
void ShowStyle();
|
|
void OnShowStyle();
|
|
void Closing();
|
|
//int IdToType( int id);
|
|
|
|
//Set button postion by logon state
|
|
void SetBtnPosByLogState(const bool bIsLog);
|
|
|
|
//Draw Pay-Line
|
|
void RefreshAllItem(vector<int>& vcIndexID,int & iPageIndex);
|
|
void RefreshAllStylesState();
|
|
|
|
void DuplicateComposeStages( COMPOSESTAGELIST& lstComposeStages, int idStyle );
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
extern PACKAGE TStyleSelForm *StyleSelForm;
|
|
//---------------------------------------------------------------------------
|
|
#endif
|