XBool XSliderSkin::init(const char *LNormal,const char *LDown,const char *LOn,const char *LDisable, const char *BNormal,const char *BDown,const char *BOn,const char *BDisable,XResPos resPos) { if(m_isInited || LNormal == NULL || BNormal == NULL) return XFalse; int ret = 1; //分别载入资源 if((sliderLineNormal = createATextureData(LNormal,resPos)) == NULL) ret = 0; if(LDown != NULL && ret != 0 && (sliderLineDown = createATextureData(LDown,resPos)) == NULL) ret = 0; if(LOn != NULL && ret != 0 && (sliderLineOn = createATextureData(LOn,resPos)) == NULL) ret = 0; if(LDisable != NULL && ret != 0 && (sliderLineDisable = createATextureData(LDisable,resPos)) == NULL) ret = 0; if(ret != 0 && (sliderButtonNormal = createATextureData(BNormal,resPos)) == NULL) ret = 0; if(BDown != NULL && ret != 0 && (sliderButtonDown = createATextureData(BDown,resPos)) == NULL) ret = 0; if(BOn != NULL && ret != 0 && (sliderButtonOn = createATextureData(BOn,resPos)) == NULL) ret = 0; if(BDisable != NULL && ret != 0 && (sliderButtonDisable = createATextureData(BDisable,resPos)) == NULL) ret = 0; if(ret == 0) { releaseTex(); return XFalse; } m_isInited = XTrue; return XTrue; }
int _XPasswardPadTexture::init(const char *normal,const char *down,const char *on,const char *disable,const char *BG,_XResourcePosition resoursePosition) { if(m_isInited != 0) return 0; if(m_bottomTex.init(normal,on,down,disable,resoursePosition) == 0) return 0; if(BG != NULL && (backGround = createATextureData(BG,resoursePosition)) == NULL) return 0; m_isInited = 1; return 1; }
bool XSliderSkin::loadFromFolder(const char *filename,XResPos resPos) //从文件夹中载入资源 { char tempFilename[MAX_FILE_NAME_LENGTH]; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,SLIDER_CONFIG_FILENAME); FILE *fp = NULL; if((fp = fopen(tempFilename,"r")) == NULL) return XFalse; //信息文件读取失败 //下面开始依次读取数据 int flag = 0; char resFilename[MAX_FILE_NAME_LENGTH] = ""; //normal if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag == 0) {//没有普通状态是不行的 fclose(fp); return XFalse; } if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineNormal = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 fclose(fp); return XFalse; } //down if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag != 0) { if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineDown = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } } //on if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag != 0) { if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineOn = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } } //disable if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag != 0) { if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineDisable = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } } // if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag == 0) {//没有普通状态是不行的 releaseTex(); fclose(fp); return XFalse; } if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonNormal = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } // if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag != 0) { if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonDown = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } } // if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag != 0) { if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonOn = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } } // if(fscanf(fp,"%d:",&flag) != 1) {fclose(fp);return XFalse;} if(flag != 0) { if(fscanf(fp,"%s",resFilename) != 1) {fclose(fp);return XFalse;} sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonDisable = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); fclose(fp); return XFalse; } } //读取两组数据 int l,t,r,b; if(fscanf(fp,"%d,%d,%d,%d,",&l,&t,&r,&b) != 4) {fclose(fp);return XFalse;} m_mouseRect.set(l,t,r,b); if(fscanf(fp,"%d,%d,%d,%d,",&l,&t,&r,&b) != 4) {fclose(fp);return XFalse;} m_mouseRectButton.set(l,t,r,b); if(fscanf(fp,"%d,%d,",&l,&t) != 2) {fclose(fp);return XFalse;} m_fontPosition.set(l,t); //所有数据读取完成 fclose(fp); return true; }
bool XSliderSkin::loadFromPacker(const char *filename,XResPos resPos) //从压缩包中载入资源 { char tempFilename[MAX_FILE_NAME_LENGTH]; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,SLIDER_CONFIG_FILENAME); unsigned char *p = XResPack.getFileData(tempFilename); if(p == NULL) return XFalse; //下面开始依次读取数据 int flag = 0; char resFilename[MAX_FILE_NAME_LENGTH] = ""; int offset = 0; //normal if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag == 0) {//没有普通状态是不行的 XMem::XDELETE_ARRAY(p); return XFalse; } if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineNormal = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 XMem::XDELETE_ARRAY(p); return XFalse; } //down if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag != 0) { if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineDown = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } } //on if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag != 0) { if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineOn = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } } //disable if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag != 0) { if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderLineDisable = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } } //normal if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag == 0) {//没有普通状态是不行的 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonNormal = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } // if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag != 0) { if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonDown = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } } // if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag != 0) { if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonOn = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } } // if(sscanf((char *)(p + offset),"%d:",&flag) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),':') + 1; if(flag != 0) { if(sscanf((char *)(p + offset),"%s",resFilename) != 1) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; sprintf_s(tempFilename,MAX_FILE_NAME_LENGTH,"%s/%s",filename,resFilename); if((sliderButtonDisable = createATextureData(tempFilename,resPos)) == NULL) {//资源读取失败 releaseTex(); XMem::XDELETE_ARRAY(p); return XFalse; } } //读取两组数据 int l,t,r,b; if(sscanf((char *)(p + offset),"%d,%d,%d,%d,",&l,&t,&r,&b) != 4) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; m_mouseRect.set(l,t,r,b); if(sscanf((char *)(p + offset),"%d,%d,%d,%d,",&l,&t,&r,&b) != 4) {XMem::XDELETE_ARRAY(p);return XFalse;} offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; m_mouseRectButton.set(l,t,r,b); if(sscanf((char *)(p + offset),"%d,%d,",&l,&t) != 2) { offset += XString::getCharPosition((char *)(p + offset),'\n') + 1; m_fontPosition.set(l,t); }else { m_fontPosition.reset(); } //所有数据读取完成 XMem::XDELETE_ARRAY(p); return true; }