|
|
@@ -0,0 +1,786 @@
|
|
|
+#include "../pch/pch.h"
|
|
|
+#include "CGengduoPageUI.h"
|
|
|
+
|
|
|
+#include "../control/ControlEx.h"
|
|
|
+
|
|
|
+#include "../wnd/CHuiyuanChongzhiWnd.h"
|
|
|
+#include "../wnd/CHuiyuanAddWnd.h"
|
|
|
+
|
|
|
+CGengduoPageUI::CGengduoPageUI()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+CGengduoPageUI::~CGengduoPageUI()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
|
|
|
+void CGengduoPageUI::InitShow()
|
|
|
+{
|
|
|
+ //根据当前数据库里面对功能的配置,来初始化显示
|
|
|
+ m_changyongString = CSetting::GetParam("setting_gongneng_changyong_string");
|
|
|
+
|
|
|
+ m_gengduoString = CSetting::GetParam("setting_gongneng_gengduo_string");
|
|
|
+
|
|
|
+ Refresh();
|
|
|
+}
|
|
|
+
|
|
|
+//处理按钮点击类事件
|
|
|
+void CGengduoPageUI::HandleClickMsg(TNotifyUI& msg)
|
|
|
+{
|
|
|
+ CDuiString name = msg.pSender->GetName();
|
|
|
+
|
|
|
+ if (name == L"front")
|
|
|
+ {
|
|
|
+ QianYi(msg.pSender);
|
|
|
+ }
|
|
|
+ else if (name == L"back")
|
|
|
+ {
|
|
|
+ HouYi(msg.pSender);
|
|
|
+ }
|
|
|
+ else if (name == L"exchange")
|
|
|
+ {
|
|
|
+ Jiaohuan(msg.pSender);
|
|
|
+ }
|
|
|
+ else if (name == L"gengduo_front")
|
|
|
+ {
|
|
|
+ GengduoQianYi(msg.pSender);
|
|
|
+ }
|
|
|
+ else if (name == L"gengduo_back")
|
|
|
+ {
|
|
|
+ GengduoHouYi(msg.pSender);
|
|
|
+ }
|
|
|
+ else if (name == L"gengduo_exchange")
|
|
|
+ {
|
|
|
+ GengduoJiaohuan(msg.pSender);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//处理option切换事件
|
|
|
+void CGengduoPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//处理下拉框、radio的切换事件
|
|
|
+void CGengduoPageUI::HandleItemSelectMsg(TNotifyUI& msg)
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//处理编辑框输入内容改变事件
|
|
|
+void CGengduoPageUI::HandleTextChangedMsg(TNotifyUI& msg)
|
|
|
+{
|
|
|
+ DuiLib::CDuiString senderName = msg.pSender->GetName();
|
|
|
+
|
|
|
+ if (senderName == L"huiyuan_page_shoujihao_edit")
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//处理扫码枪捕捉到的扫码信息
|
|
|
+void CGengduoPageUI::HandleTextCapture(std::string content)
|
|
|
+{
|
|
|
+ if (m_is_show_modal_wnd == true)
|
|
|
+ {
|
|
|
+ m_curModalWnd->HandleTextCapture(content);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+bool CGengduoPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
|
+{
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::Refresh()
|
|
|
+{
|
|
|
+ //先渲染常用
|
|
|
+ std::vector<string> changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* changyongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_changyong_layout"));
|
|
|
+ changyongLayout->RemoveAll();
|
|
|
+
|
|
|
+ for (std::vector<string>::iterator it = changyongVector.begin(); it != changyongVector.end(); it++)
|
|
|
+ {
|
|
|
+ CDialogBuilder builder;
|
|
|
+ CDialogBuilderCallbackEx cb;
|
|
|
+
|
|
|
+ CVerticalLayoutUI* pItem = static_cast<CVerticalLayoutUI*>(builder.Create(_T("gengduo_item.xml"), (UINT)0, &cb, m_pManager));
|
|
|
+
|
|
|
+ CControlUI* pTitle = pItem->FindSubControl(L"title");
|
|
|
+ CControlUI* pImage = pItem->FindSubControl(L"image");
|
|
|
+
|
|
|
+ if (*it == "diandan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"点单");
|
|
|
+ pImage->SetBkImage(L"main_diandan.png");
|
|
|
+ pItem->SetName(L"diandan");
|
|
|
+ }
|
|
|
+ else if (*it == "dingdan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"订单");
|
|
|
+ pImage->SetBkImage(L"main_waimai.png");
|
|
|
+ pItem->SetName(L"dingdan");
|
|
|
+ }
|
|
|
+ else if (*it == "huiyuan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"会员");
|
|
|
+ pImage->SetBkImage(L"main_huiyuan.png");
|
|
|
+ pItem->SetName(L"huiyuan");
|
|
|
+ }
|
|
|
+ else if (*it == "baobiao")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"报表");
|
|
|
+ pImage->SetBkImage(L"main_baobiao.png");
|
|
|
+ pItem->SetName(L"baobiao");
|
|
|
+ }
|
|
|
+ else if (*it == "jiaoban")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"交班");
|
|
|
+ pImage->SetBkImage(L"main_jiaoban.png");
|
|
|
+ pItem->SetName(L"jiaoban");
|
|
|
+ }
|
|
|
+ else if (*it == "shezhi")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"设置");
|
|
|
+ pImage->SetBkImage(L"main_setting.png");
|
|
|
+ pItem->SetName(L"shezhi");
|
|
|
+ }
|
|
|
+ else if (*it == "shangpin")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"商品");
|
|
|
+ pImage->SetBkImage(L"main_shangpin.png");
|
|
|
+ pItem->SetName(L"shangpin");
|
|
|
+ }
|
|
|
+ else if (*it == "kucun")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"库存");
|
|
|
+ pImage->SetBkImage(L"main_kucun.png");
|
|
|
+ pItem->SetName(L"kucun");
|
|
|
+ }
|
|
|
+ else if (*it == "caigou")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"采购");
|
|
|
+ pImage->SetBkImage(L"main_caigou.png");
|
|
|
+ pItem->SetName(L"caigou");
|
|
|
+ }
|
|
|
+ else if (*it == "zhengcan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"桌台");
|
|
|
+ pImage->SetBkImage(L"main_zhengcan.png");
|
|
|
+ pItem->SetName(L"zhengcan");
|
|
|
+ }
|
|
|
+ else if (*it == "saomashouyin")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"收银");
|
|
|
+ pImage->SetBkImage(L"main_saomashouyin.png");
|
|
|
+ pItem->SetName(L"saomashouyin");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ changyongLayout->Add(pItem);
|
|
|
+ }
|
|
|
+
|
|
|
+ //再渲染更多
|
|
|
+ std::vector<string> gengduoVector = CLewaimaiString::Split(m_gengduoString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* gengduoLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_gengduo_layout"));
|
|
|
+ gengduoLayout->RemoveAll();
|
|
|
+
|
|
|
+ for (std::vector<string>::iterator it = gengduoVector.begin(); it != gengduoVector.end(); it++)
|
|
|
+ {
|
|
|
+ CDialogBuilder builder;
|
|
|
+ CDialogBuilderCallbackEx cb;
|
|
|
+
|
|
|
+ CVerticalLayoutUI* pItem = static_cast<CVerticalLayoutUI*>(builder.Create(_T("gengduo_item.xml"), (UINT)0, &cb, m_pManager));
|
|
|
+
|
|
|
+ CControlUI* pTitle = pItem->FindSubControl(L"title");
|
|
|
+ CControlUI* pImage = pItem->FindSubControl(L"image");
|
|
|
+
|
|
|
+ CControlUI* pFront = pItem->FindSubControl(L"front");
|
|
|
+ CControlUI* pBack = pItem->FindSubControl(L"back");
|
|
|
+ CControlUI* pExchange = pItem->FindSubControl(L"exchange");
|
|
|
+
|
|
|
+ if (*it == "diandan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"点单");
|
|
|
+ pImage->SetBkImage(L"main_diandan.png");
|
|
|
+ pItem->SetName(L"diandan");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "dingdan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"订单");
|
|
|
+ pImage->SetBkImage(L"main_waimai.png");
|
|
|
+ pItem->SetName(L"dingdan");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "huiyuan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"会员");
|
|
|
+ pImage->SetBkImage(L"main_huiyuan.png");
|
|
|
+ pItem->SetName(L"huiyuan");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "baobiao")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"报表");
|
|
|
+ pImage->SetBkImage(L"main_baobiao.png");
|
|
|
+ pItem->SetName(L"baobiao");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "jiaoban")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"交班");
|
|
|
+ pImage->SetBkImage(L"main_jiaoban.png");
|
|
|
+ pItem->SetName(L"jiaoban");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "shezhi")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"设置");
|
|
|
+ pImage->SetBkImage(L"main_setting.png");
|
|
|
+ pItem->SetName(L"shezhi");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "shangpin")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"商品");
|
|
|
+ pImage->SetBkImage(L"main_shangpin.png");
|
|
|
+ pItem->SetName(L"shangpin");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "kucun")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"库存");
|
|
|
+ pImage->SetBkImage(L"main_kucun.png");
|
|
|
+ pItem->SetName(L"kucun");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "caigou")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"采购");
|
|
|
+ pImage->SetBkImage(L"main_caigou.png");
|
|
|
+ pItem->SetName(L"caigou");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "zhengcan")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"桌台");
|
|
|
+ pImage->SetBkImage(L"main_zhengcan.png");
|
|
|
+ pItem->SetName(L"zhengcan");
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else if (*it == "saomashouyin")
|
|
|
+ {
|
|
|
+ pTitle->SetText(L"收银");
|
|
|
+ pImage->SetBkImage(L"main_saomashouyin.png");
|
|
|
+ pItem->SetName(L"saomashouyin");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ gengduoLayout->Add(pItem);
|
|
|
+ }
|
|
|
+
|
|
|
+ UpdateItemPos();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::UpdateItemPos()
|
|
|
+{
|
|
|
+ if (m_changyongString != "")
|
|
|
+ {
|
|
|
+ //先更新常用的位置
|
|
|
+ CHorizontalLayoutUI* changyongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_changyong_layout"));
|
|
|
+
|
|
|
+ int nWidth = m_nPageWidth;
|
|
|
+ if (nWidth == 0)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ std::vector<string> changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+
|
|
|
+ //根据宽度计算每行显示的数量
|
|
|
+ int nMeihangNum = (nWidth) / 135;
|
|
|
+ if (nMeihangNum == 0)
|
|
|
+ {
|
|
|
+ nMeihangNum = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ int num = 0;
|
|
|
+
|
|
|
+ for (size_t i = 0; i < changyongVector.size(); i++)
|
|
|
+ {
|
|
|
+ CVerticalLayoutUI* curItem = static_cast<CVerticalLayoutUI*>(changyongLayout->GetItemAt(i));
|
|
|
+
|
|
|
+ int curRow = num / nMeihangNum + 1;
|
|
|
+ int curCol = num % nMeihangNum + 1;
|
|
|
+
|
|
|
+ RECT rect;
|
|
|
+ rect.left = (curCol - 1) * 135 + 15;
|
|
|
+ rect.right = rect.left + 120;
|
|
|
+ rect.top = (curRow - 1) * 175 + 15;
|
|
|
+ rect.bottom = rect.top + 160;
|
|
|
+
|
|
|
+ curItem->SetFloat(true);
|
|
|
+ curItem->SetPos(rect);
|
|
|
+
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+
|
|
|
+ //调整区域高度
|
|
|
+ int lastRow = (num - 1) / nMeihangNum + 1;
|
|
|
+ changyongLayout->SetFixedHeight(lastRow * 175 + 15);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_gengduoString != "")
|
|
|
+ {
|
|
|
+ //再更新更多的位置
|
|
|
+ CHorizontalLayoutUI* gengduoLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_gengduo_layout"));
|
|
|
+
|
|
|
+ int nWidth = m_nPageWidth;
|
|
|
+ if (nWidth == 0)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ std::vector<string> gengduoVector = CLewaimaiString::Split(m_gengduoString, ",");
|
|
|
+
|
|
|
+ //根据宽度计算每行显示的数量
|
|
|
+ int nMeihangNum = (nWidth) / 135;
|
|
|
+ if (nMeihangNum == 0)
|
|
|
+ {
|
|
|
+ nMeihangNum = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ int num = 0;
|
|
|
+
|
|
|
+ for (size_t i = 0; i < gengduoVector.size(); i++)
|
|
|
+ {
|
|
|
+ CVerticalLayoutUI* curItem = static_cast<CVerticalLayoutUI*>(gengduoLayout->GetItemAt(i));
|
|
|
+
|
|
|
+ int curRow = num / nMeihangNum + 1;
|
|
|
+ int curCol = num % nMeihangNum + 1;
|
|
|
+
|
|
|
+ RECT rect;
|
|
|
+ rect.left = (curCol - 1) * 135 + 15;
|
|
|
+ rect.right = rect.left + 120;
|
|
|
+ rect.top = (curRow - 1) * 175 + 15;
|
|
|
+ rect.bottom = rect.top + 160;
|
|
|
+
|
|
|
+ curItem->SetFloat(true);
|
|
|
+ curItem->SetPos(rect);
|
|
|
+
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+
|
|
|
+ //调整区域高度
|
|
|
+ int lastRow = (num - 1) / nMeihangNum + 1;
|
|
|
+ gengduoLayout->SetFixedHeight(lastRow * 175 + 15);
|
|
|
+ }
|
|
|
+
|
|
|
+ //还要调整左侧的显示
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::SetPos(RECT rc, bool bNeedInvalidate)
|
|
|
+{
|
|
|
+ m_nPageWidth = rc.right - rc.left;
|
|
|
+
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ CContainerUI::SetPos(rc, bNeedInvalidate);
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::QianYi(CControlUI* pSender)
|
|
|
+{
|
|
|
+ CControlUI* pItem = pSender->GetParent()->GetParent();
|
|
|
+
|
|
|
+ std::wstring ws_name = pItem->GetName();
|
|
|
+ std::string name = CLewaimaiString::UnicodeToUTF8(ws_name.c_str());
|
|
|
+
|
|
|
+ std::vector<string> changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* changyongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_changyong_layout"));
|
|
|
+
|
|
|
+ for (size_t i = 0; i < changyongVector.size(); i++)
|
|
|
+ {
|
|
|
+ if (changyongVector[i] == name)
|
|
|
+ {
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ //本来就是第一个了
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //找到了当前点击的是这个
|
|
|
+ changyongLayout->RemoveAt(i, true);
|
|
|
+
|
|
|
+ //把控件添加到前面去
|
|
|
+ changyongLayout->AddAt(pItem, i - 1);
|
|
|
+
|
|
|
+ //修改vector
|
|
|
+ std::string tmp = name;
|
|
|
+
|
|
|
+ changyongVector[i] = changyongVector[i - 1];
|
|
|
+ changyongVector[i - 1] = name;
|
|
|
+
|
|
|
+ //然后修改字符串
|
|
|
+ m_changyongString = CLewaimaiString::Merge(changyongVector, ",");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //控件交换了位置,字符串也交换了位置,这个时候刷新位置显示
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ Save();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::HouYi(CControlUI* pSender)
|
|
|
+{
|
|
|
+ CControlUI* pItem = pSender->GetParent()->GetParent();
|
|
|
+
|
|
|
+ std::wstring ws_name = pItem->GetName();
|
|
|
+ std::string name = CLewaimaiString::UnicodeToUTF8(ws_name.c_str());
|
|
|
+
|
|
|
+ std::vector<string> changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* changyongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_changyong_layout"));
|
|
|
+
|
|
|
+ for (size_t i = 0; i < changyongVector.size(); i++)
|
|
|
+ {
|
|
|
+ if (changyongVector[i] == name)
|
|
|
+ {
|
|
|
+ if (i == changyongVector.size() - 1)
|
|
|
+ {
|
|
|
+ //本来就是最后一个了
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //找到了当前点击的是这个
|
|
|
+ changyongLayout->RemoveAt(i, true);
|
|
|
+
|
|
|
+ //把控件添加到后面去
|
|
|
+ changyongLayout->AddAt(pItem, i + 1);
|
|
|
+
|
|
|
+ //修改vector
|
|
|
+ std::string tmp = name;
|
|
|
+
|
|
|
+ changyongVector[i] = changyongVector[i + 1];
|
|
|
+ changyongVector[i + 1] = name;
|
|
|
+
|
|
|
+ //然后修改字符串
|
|
|
+ m_changyongString = CLewaimaiString::Merge(changyongVector, ",");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //控件交换了位置,字符串也交换了位置,这个时候刷新位置显示
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ Save();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::Jiaohuan(CControlUI* pSender)
|
|
|
+{
|
|
|
+ CVerticalLayoutUI* pItem = static_cast<CVerticalLayoutUI*>(pSender->GetParent()->GetParent());
|
|
|
+
|
|
|
+ std::wstring ws_name = pItem->GetName();
|
|
|
+ std::string name = CLewaimaiString::UnicodeToUTF8(ws_name.c_str());
|
|
|
+
|
|
|
+ std::vector<string> changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* changyongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_changyong_layout"));
|
|
|
+
|
|
|
+ for (size_t i = 0; i < changyongVector.size(); i++)
|
|
|
+ {
|
|
|
+ if (changyongVector[i] == name)
|
|
|
+ {
|
|
|
+ //找到了当前点击的是这个,先从常用里面删除
|
|
|
+ changyongLayout->RemoveAt(i, true);
|
|
|
+
|
|
|
+ //然后把这个添加到更多的最下面去,添加之前先修改一些属性
|
|
|
+ CControlUI* pFront = pItem->FindSubControl(L"front");
|
|
|
+ CControlUI* pBack = pItem->FindSubControl(L"back");
|
|
|
+ CControlUI* pExchange = pItem->FindSubControl(L"exchange");
|
|
|
+
|
|
|
+ pExchange->SetText(L"上移");
|
|
|
+
|
|
|
+ pFront->SetName(L"gengduo_front");
|
|
|
+ pBack->SetName(L"gengduo_back");
|
|
|
+ pExchange->SetName(L"gengduo_exchange");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* gengduoLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_gengduo_layout"));
|
|
|
+ gengduoLayout->Add(pItem);
|
|
|
+
|
|
|
+ //修改vector
|
|
|
+ changyongVector.erase(changyongVector.begin() + i);
|
|
|
+
|
|
|
+ std::vector<string> gengduoVector;
|
|
|
+ if (m_gengduoString == "")
|
|
|
+ {
|
|
|
+ gengduoVector.push_back(name);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ gengduoVector = CLewaimaiString::Split(m_gengduoString, ",");
|
|
|
+ gengduoVector.push_back(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ //然后修改字符串
|
|
|
+ m_changyongString = CLewaimaiString::Merge(changyongVector, ",");
|
|
|
+ m_gengduoString = CLewaimaiString::Merge(gengduoVector, ",");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //控件交换了位置,字符串也交换了位置,这个时候刷新位置显示
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ Save();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::GengduoQianYi(CControlUI* pSender)
|
|
|
+{
|
|
|
+ CControlUI* pItem = pSender->GetParent()->GetParent();
|
|
|
+
|
|
|
+ std::wstring ws_name = pItem->GetName();
|
|
|
+ std::string name = CLewaimaiString::UnicodeToUTF8(ws_name.c_str());
|
|
|
+
|
|
|
+ std::vector<string> gengduoVector = CLewaimaiString::Split(m_gengduoString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* gengduoLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_gengduo_layout"));
|
|
|
+
|
|
|
+ for (size_t i = 0; i < gengduoVector.size(); i++)
|
|
|
+ {
|
|
|
+ if (gengduoVector[i] == name)
|
|
|
+ {
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ //本来就是第一个了
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //找到了当前点击的是这个
|
|
|
+ gengduoLayout->RemoveAt(i, true);
|
|
|
+
|
|
|
+ //把控件添加到前面去
|
|
|
+ gengduoLayout->AddAt(pItem, i - 1);
|
|
|
+
|
|
|
+ //修改vector
|
|
|
+ std::string tmp = name;
|
|
|
+
|
|
|
+ gengduoVector[i] = gengduoVector[i - 1];
|
|
|
+ gengduoVector[i - 1] = name;
|
|
|
+
|
|
|
+ //然后修改字符串
|
|
|
+ m_gengduoString = CLewaimaiString::Merge(gengduoVector, ",");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //控件交换了位置,字符串也交换了位置,这个时候刷新位置显示
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ Save();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::GengduoHouYi(CControlUI* pSender)
|
|
|
+{
|
|
|
+ CControlUI* pItem = pSender->GetParent()->GetParent();
|
|
|
+
|
|
|
+ std::wstring ws_name = pItem->GetName();
|
|
|
+ std::string name = CLewaimaiString::UnicodeToUTF8(ws_name.c_str());
|
|
|
+
|
|
|
+ std::vector<string> gengduoVector = CLewaimaiString::Split(m_gengduoString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* gengduoLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_gengduo_layout"));
|
|
|
+
|
|
|
+ for (size_t i = 0; i < gengduoVector.size(); i++)
|
|
|
+ {
|
|
|
+ if (gengduoVector[i] == name)
|
|
|
+ {
|
|
|
+ if (i == gengduoVector.size() - 1)
|
|
|
+ {
|
|
|
+ //本来就是最后一个了
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //找到了当前点击的是这个
|
|
|
+ gengduoLayout->RemoveAt(i, true);
|
|
|
+
|
|
|
+ //把控件添加到后面去
|
|
|
+ gengduoLayout->AddAt(pItem, i + 1);
|
|
|
+
|
|
|
+ //修改vector
|
|
|
+ std::string tmp = name;
|
|
|
+
|
|
|
+ gengduoVector[i] = gengduoVector[i + 1];
|
|
|
+ gengduoVector[i + 1] = name;
|
|
|
+
|
|
|
+ //然后修改字符串
|
|
|
+ m_gengduoString = CLewaimaiString::Merge(gengduoVector, ",");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //控件交换了位置,字符串也交换了位置,这个时候刷新位置显示
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ Save();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::GengduoJiaohuan(CControlUI* pSender)
|
|
|
+{
|
|
|
+ {
|
|
|
+ std::vector<string> changyongVector;
|
|
|
+ if (m_changyongString == "")
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (changyongVector.size() >= 6)
|
|
|
+ {
|
|
|
+ m_pMainWnd->ShowToast(L"常用功能最多只能设置5个");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ CVerticalLayoutUI* pItem = static_cast<CVerticalLayoutUI*>(pSender->GetParent()->GetParent());
|
|
|
+
|
|
|
+ std::wstring ws_name = pItem->GetName();
|
|
|
+ std::string name = CLewaimaiString::UnicodeToUTF8(ws_name.c_str());
|
|
|
+
|
|
|
+ std::vector<string> gengduoVector = CLewaimaiString::Split(m_gengduoString, ",");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* gengduoLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_gengduo_layout"));
|
|
|
+
|
|
|
+ for (size_t i = 0; i < gengduoVector.size(); i++)
|
|
|
+ {
|
|
|
+ if (gengduoVector[i] == name)
|
|
|
+ {
|
|
|
+ //找到了当前点击的是这个,先从常用里面删除
|
|
|
+ gengduoLayout->RemoveAt(i, true);
|
|
|
+
|
|
|
+ //然后把这个添加到更多的最下面去,添加之前先修改一些属性
|
|
|
+ CControlUI* pFront = pItem->FindSubControl(L"gengduo_front");
|
|
|
+ CControlUI* pBack = pItem->FindSubControl(L"gengduo_back");
|
|
|
+ CControlUI* pExchange = pItem->FindSubControl(L"gengduo_exchange");
|
|
|
+
|
|
|
+ pExchange->SetText(L"下移");
|
|
|
+
|
|
|
+ pFront->SetName(L"front");
|
|
|
+ pBack->SetName(L"back");
|
|
|
+ pExchange->SetName(L"exchange");
|
|
|
+
|
|
|
+ CHorizontalLayoutUI* changyongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"gengduo_page_changyong_layout"));
|
|
|
+ changyongLayout->Add(pItem);
|
|
|
+
|
|
|
+ //修改vector
|
|
|
+ gengduoVector.erase(gengduoVector.begin() + i);
|
|
|
+
|
|
|
+ std::vector<string> changyongVector;
|
|
|
+ if (m_changyongString == "")
|
|
|
+ {
|
|
|
+ changyongVector.push_back(name);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ changyongVector = CLewaimaiString::Split(m_changyongString, ",");
|
|
|
+ changyongVector.push_back(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ //然后修改字符串
|
|
|
+ m_changyongString = CLewaimaiString::Merge(changyongVector, ",");
|
|
|
+ m_gengduoString = CLewaimaiString::Merge(gengduoVector, ",");
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //控件交换了位置,字符串也交换了位置,这个时候刷新位置显示
|
|
|
+ UpdateItemPos();
|
|
|
+
|
|
|
+ Save();
|
|
|
+}
|
|
|
+
|
|
|
+void CGengduoPageUI::Save()
|
|
|
+{
|
|
|
+ CSetting::SetParam("setting_gongneng_changyong_string", m_changyongString);
|
|
|
+
|
|
|
+ CSetting::SetParam("setting_gongneng_gengduo_string", m_gengduoString);
|
|
|
+}
|