zoukankan      html  css  js  c++  java
  • CSectsInfomation.cpp文件

    #include "SectsInfomation.h"
    #include "WidgetMgr.h"
    #include "XButton.h"
    #include "XSroll.h"
    #include "Config.h"
    #include "XCommon.h"
    #include "XStatic.h"
    #include "XImage.h"
    
    
    #if(CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    #include "GameCenter.h"
    #include "AppExtra.h"
    #endif
    /*******************************
    *函数名称:CSectsInfomation
    *函数功能:构造函数
    *函数参数:void
    *函数返回值:void
    *备注:
    *******************************/
    CSectsInfomation::CSectsInfomation(void)
    {
        m_pBtnExit = NULL;
        m_pSta = NULL;
        m_PageNum = 1;
        m_FirstId = 1002;
        m_PageTotal = 0;
        CCLabelTTF *pLabel = NULL;
        memset(acPage,0,10);
    }
    
    
    CSectsInfomation::~CSectsInfomation(void)
    {
    }
    /*******************************
    *函数名称:init
    *函数功能:初始化函数
    *函数参数:void
    *函数返回值:true--初始化成功;false--初始化失败
    *备注:
    *******************************/
    bool CSectsInfomation::init()
    {
        bool bRet = false;
    
        CWidgetMgr::getInstance()->loadWidget(this, _IDD_CSectsInfomation);
        CWidgetMgr::getInstance()->addWnd(this);
        
        for (deque<CXWindow*>::const_iterator it = this->getDequeWnd().begin(); it != this->getDequeWnd().end(); it++)
        {
            //给按钮添加响应函数
            if (UI_BUTTON == (*it)->getUIType())
            {
                (*it)->setClickListener(this, callfuncO_selector(CSectsInfomation::btnMsgCallback));
            }
            //通过id中的第三位映射到相应的图片,每个按钮的id都加上200就是对应要显示的图片
            int iNum = (*it)->getId();
            iNum = (*it)->getId() / 100;
            iNum = iNum % 10;
            if (iNum >= 2)
            {
                (*it)->setVisible(false);
                m_vecImage.push_back(*it);
            }
            //显示第一页
            iNum = (*it)->getId();
            iNum = (*it)->getId() / 1000;
            if (iNum != 1)
            {
                (*it)->setVisible(false);
            }
            //保存最大页码
            if (iNum > m_PageTotal)
            {
                m_PageTotal = iNum;
            }
            //第一张任务图片要显示
            if ((*it)->getId() == 1202)
            {
                (*it)->setVisible(true);
            }
        }
        //显示页码
        m_pSta = (CXStatic*)(this->getCtrl(1034));
        char acTemp[10] = {0};
        strcpy(acPage,"1/");
        itoa(m_PageTotal,acTemp,10);
        strcat(acPage,acTemp);
        pLabel = CCLabelTTF::create(acPage,"Gautami",30);
        m_pSta->setLabel(pLabel);
        m_pSta->setPosition(420,20);
        m_pSta->setVisible(true);
        //选中框的图片
        m_pImg = (CXImage*)(this->getCtrl(1004));
        this->setVisible(false);
        return true;
    }
    
    /*******************************
    *函数名称:btnMsgCallback
    *函数功能:按钮的响应函数
    *函数参数:CCObject* pSender--这里传进来的是this指针
    *函数返回值:void
    *备注:这里处理四种情况:
    1.上一页
    2.下一页
    3.返回
    4.点击任务列表中某项的响应
    这里不做页面循环,当到最后一页时取消下一页按钮的响应
    当到了第一页时取消上一页按钮的响应
    *******************************/
    void CSectsInfomation::btnMsgCallback(CCObject* pSender)
    {
        int iAddNum = 0;
        CXImage *pImage = NULL;
        CXButton *pButton = (CXButton*)pSender;
        if (pButton->getId() == 1034)
        {
            this->setVisible(false);
        }
        else if (pButton->getId() == 1035)
        {
            m_PageNum = m_PageNum - 1;
    
            if (1 > m_PageNum)
            {
                m_PageNum = 1;
            }
            else
            {
                //上一页
                for (deque<CXWindow*>::const_iterator it = this->getDequeWnd().begin(); it != this->getDequeWnd().end(); it++)
                {
                    int iNum = 0;
                    iNum = (*it)->getId() / 1000;
                    if (iNum != m_PageNum)
                    {
                        (*it)->setVisible(true);
                    }
                    iNum = (*it)->getId() / 100;
                    iNum = iNum % 10;
                    if (iNum >= 2)
                    {
                        (*it)->setVisible(false);
                    }
                    if ((*it)->getId() == m_PageNum * 1000 + 2 )
                    {
                        
                        CCPoint point = (*it)->getPosition();
                        m_pImg->setPosition(point.x ,point.y);
                    }
                    int num = m_PageNum * 1000 + 2 + 200;
                    if ((*it)->getId() == num)
                    {
                        (*it)->setVisible(true);
                    }
                }
                memset(acPage,0,10);
                char acTotal[10] = {0};
                char acTemp[10] = {0};
                itoa(m_PageNum,acTemp,10);
                itoa(m_PageTotal,acTotal,10);
                strcpy(acPage,acTemp);
                strcat(acPage,"/");
                strcat(acPage,acTotal);
                pLabel->setString(acPage);
            }
            
        }
        else if (pButton->getId() == 1036)
        {
            m_PageNum = m_PageNum + 1;
    
            if (m_PageTotal < m_PageNum)
            {
                m_PageNum = m_PageTotal;
            }
            else
            {
                //下一页
                for (deque<CXWindow*>::const_iterator it = this->getDequeWnd().begin(); it != this->getDequeWnd().end(); it++)
                {
                    int iNum = 0;
                    iNum = (*it)->getId() / 1000;
                    if (iNum != m_PageNum)
                    {
                        (*it)->setVisible(true);
                    }
                    iNum = (*it)->getId() / 100;
                    iNum = iNum % 10;
                    if (iNum >= 2)
                    {
                        (*it)->setVisible(false);
                    }
                    if ((*it)->getId() == m_PageNum * 1000 + 2 )
                    {
                        CCPoint point = (*it)->getPosition();
                        m_pImg->setPosition(point.x ,point.y);
                    }
                    int num = m_PageNum * 1000 + 2 + 200;
                    if ((*it)->getId() == num)
                    {
                        (*it)->setVisible(true);
                    }
                }
                memset(acPage,0,10);
                char acTotal[10] = {0};
                char acTemp[10] = {0};
                itoa(m_PageNum,acTemp,10);
                itoa(m_PageTotal,acTotal,10);
                strcpy(acPage,acTemp);
                strcat(acPage,"/");
                strcat(acPage,acTotal);
                pLabel->setString(acPage);
            }
            
        }
        else
        {
            //获取当前选中按钮所在的坐标,然后通过这个坐标,边框显示在相应位置
            CCPoint point = pButton->getPosition();
            m_pImg->setPosition(point.x ,point.y);
            
            SectsNotVisible();
    
            //通过id获取图片控件的指针
            pImage = (CXImage*)(this->getCtrl(pButton->getId() + 200));
            pImage->setVisible(true);
        }
    }
    
    void CSectsInfomation::btnMsgSrollCallback(CCObject* pSender)
    {
    
    }
    /*******************************
    *函数名称:SectsNotVisible
    *函数功能:屏蔽所有任务图片控件
    *函数参数:void
    *函数返回值:void
    *备注:
    *******************************/
    void CSectsInfomation::SectsNotVisible()
    {
        for (deque<CXWindow*>::const_iterator it = m_vecImage.begin(); it != m_vecImage.end(); it++)
        {
            (*it)->setVisible(false);
        }
    }
  • 相关阅读:
    bzoj 1013: [JSOI2008]球形空间产生器sphere
    bzoj 1012: [JSOI2008]最大数maxnumber
    bzoj 1010: [HNOI2008]玩具装箱toy
    bzoj 1008: [HNOI2008]越狱
    bzoj 1007: [HNOI2008]水平可见直线
    UVa12105 越大越好
    POJ
    最优点配对问题(紫书)
    Ned 的难题
    UVA
  • 原文地址:https://www.cnblogs.com/newlist/p/3152672.html
Copyright © 2011-2022 走看看