#pragma once #include "singleton.h" #include #include "SH_AI.h" class CAskAIPalette : public CAdUiPalette { DECLARE_DYNAMIC(CAskAIPalette) public: CAskAIPalette(); ~CAskAIPalette(); public: void sendTextToAnswer(LPCTSTR lpszText); void setFocusToAsk(); void refreshAiCloud(); static CSize getControlWndTextSize(CWnd *pS, CFont &font, LPCTSTR psz = NULL); private: virtual void GetFloatingMinSize(long *pnMinWidth, long *pnMinHeight); virtual BOOL PreTranslateMessage(MSG* pMsg); virtual bool CanFrameworkTakeFocus(); DECLARE_MESSAGE_MAP() afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos); afx_msg void OnPaint(); afx_msg void OnBtnClickNewChat(); afx_msg void OnBtnClickUpload(); afx_msg void OnBtnClickTranslate(); afx_msg void OnBtnClickExport(); afx_msg void OnBtnClickSend(); afx_msg void OnBtnClickSetting(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnComboBoxModelListSelChange(); afx_msg void OnComboBoxModelListDropDown(); void CalcCtrlPosition(); bool hasActiveRequest(); private: // 答案窗口 CEdit *m_pEdAnswer; // 提问窗口 CEdit *m_pEdAsk; // 新建聊天 CAcUiBitmapButton *m_pBtnNewChat; // 上传文件 CAcUiBitmapButton *m_pBtnUploadFile; // 翻译 CAcUiBitmapButton *m_pBtnTranslate; // 导出记录 CAcUiBitmapButton *m_pBtnExport; // 发送 CAcUiBitmapButton *m_pBtnSend; // 设置 CAcUiBitmapButton *m_pBtnSetting; // 云供应商 CStatic *m_pStaticCloudName; // 模型列表 CAcUiComboBox *m_pComboModelList; CFont m_fontEdit; CFont m_fontBTN; // chat 配置 SHAI::ChatConfig m_chatConfig; // 供应商配置 SHAI::AICloud *m_pAiCloud; }; class CAskAIPaletteSet: public CAdUiPaletteSet { DECLARE_DYNAMIC(CAskAIPaletteSet); public: CAskAIPaletteSet(); ~CAskAIPaletteSet(); bool CreatePaletteSet(LPCTSTR pszTitle); DECLARE_MESSAGE_MAP() afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnDestroy(); virtual BOOL PreTranslateMessage(MSG* pMsg); protected: virtual bool OnClosing(); virtual void GetFloatingMinSize(long *plMinWidth, long *plMinHeight); virtual void SizeChanged(CRect *lpRect, BOOL bFloating, int flags); virtual void GetMinimumSize(CSize &size); virtual void GetMaximumSize(CSize &size); public: void sendTextToAnswer(LPCTSTR lpszText); void setFocusToAsk(); void refreshAiCloud(); private: CAskAIPalette *m_pAiPalette; public: static void start(); static void setAiCloud(); }; typedef Singleton g_aiPaletteSet;