//--------------------------------------------------------------------------- #ifndef StyleSelFormUnitH #define StyleSelFormUnitH //--------------------------------------------------------------------------- #include #include #include #include #include #include #include "PNGButton.hpp" #include "StyleSelListBoxUnit.h" #include "TransparentEditUnit.h" #include "PopMenuUnit.h" #include "SkinHintWindow.h" #include #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& vcIndexID,int & iPageIndex); void RefreshAllStylesState(); void DuplicateComposeStages( COMPOSESTAGELIST& lstComposeStages, int idStyle ); }; //--------------------------------------------------------------------------- extern PACKAGE TStyleSelForm *StyleSelForm; //--------------------------------------------------------------------------- #endif