⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 obj.c

📁 关于rcp2c_v3.rar协议在LINUX下的实现程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	  RCPOINT point2;
  }RCFORMLINE;
  RCFORMLINE *pLine;

  pLine = pObjInfo->pObj->ptr;

  Write_RCFORMOBJATTR(&pLine->attr, pfnOutput, StartColumn);

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d}, // point point1\n", pLine->point1.x, pLine->point1.y);

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d}, // point point2\n", pLine->point2.x, pLine->point2.y);
}

void OutputObj_Frame(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ typedef struct _FormFrame
  {
	  int id;
	  RCFORMOBJATTR attr;
	  RCRECT bounds;
	  int frameType;
  }RCFORMFRAME;
  RCFORMFRAME *pFrame;

  pFrame = pObjInfo->pObj->ptr;

  //WriteSpace(pfnOutput, StartColumn);
  //fprintf(pfnOutput, "%d, // UInt16 id\n", pFrame->id);
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  Write_ObjIdDefine(pObjInfo, StartColumn, pFrame->id);
  
  Write_RCFORMOBJATTR(&pFrame->attr, pfnOutput, StartColumn);

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType rectangle\n",
          pFrame->bounds.topLeft.x, pFrame->bounds.topLeft.y,
          pFrame->bounds.extent.x, pFrame->bounds.extent.y
         );

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 frameType\n", pFrame->frameType);
}

void OutputObj_Rectangle(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ typedef struct _FormRectangle
  {
	  RCFORMOBJATTR attr;
	  RCRECT bounds;
  }RCFORMRECTANGLE;
  RCFORMRECTANGLE *pRect;

  pRect = pObjInfo->pObj->ptr;
  
  Write_RCFORMOBJATTR(&pRect->attr, pfnOutput, StartColumn);

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType rectangle\n",
          pRect->bounds.topLeft.x, pRect->bounds.topLeft.y,
          pRect->bounds.extent.x, pRect->bounds.extent.y
         );
}

void OutputObj_Label(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCFormLabelType *pLabel;

  pLabel = pObjInfo->pObj->ptr;

  //WriteSpace(pfnOutput, StartColumn);
  //fprintf(pfnOutput, "%d, // UInt16 id\n", PBAFIELD(pLabel, id));
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  Write_ObjIdDefine(pObjInfo, StartColumn, PBAFIELD(pLabel, id));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d}, // point pos\n", PBAFIELD(pLabel, pos.x), PBAFIELD(pLabel, pos.y));
  
  if (vfLE32)
    Write_RCFORMOBJATTR(&PBAFIELD32(pLabel, attr), pfnOutput, StartColumn);
  else
    Write_RCFORMOBJATTR(&PBAFIELD16(pLabel, attr), pfnOutput, StartColumn);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // FontID fontID\n", PBAFIELD(pLabel, fontID));

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 reserved\n", 0);

//  WriteSpace(pfnOutput, StartColumn);
  Write_ObjText_Addr(pObjInfo,pfnOutput,StartColumn," // Char *text");
}

void OutputObj_Title(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCFORMTITLE *pTitle;

  pTitle = pObjInfo->pObj->ptr;

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType rect\n",
          pTitle->rect.topLeft.x, pTitle->rect.topLeft.y,
          pTitle->rect.extent.x, pTitle->rect.extent.y
         );

//  WriteSpace(pfnOutput, StartColumn);
  Write_ObjText_Addr(pObjInfo,pfnOutput,StartColumn," // Char *text");
}

void OutputObj_Popup(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ 
  RCFORMPOPUP *pPopup;
  char * srcIdName=pObjInfo->szIdName;
  char szTempIdName[1024];
  int pos;
  pPopup = pObjInfo->pObj->ptr;

  pos=strstr(srcIdName,"\1")-srcIdName;

  //WriteSpace(pfnOutput, StartColumn);
  //fprintf(pfnOutput, "%d,\n", pPopup->controlID);
  memcpy(szTempIdName,srcIdName,pos);
  szTempIdName[pos]='\0';
  pObjInfo->szIdName=szTempIdName;
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  strcpy(szTempIdName,srcIdName+pos+1);
  pObjInfo->szIdName=szTempIdName;
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  pObjInfo->szIdName=srcIdName;
  
//  WriteSpace(pfnOutput, StartColumn);
//  fprintf(pfnOutput, "%d,\n", pPopup->listID);
}

void OutputObj_GraffitiState(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCFORMGRAFFITISTATE *pGraffitiState;

  pGraffitiState = pObjInfo->pObj->ptr;

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d}, // point pos\n", pGraffitiState->pos.x, pGraffitiState->pos.y);
}

void OutputObj_Gadget(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCFORMGADGET *pGadget;

  pGadget = pObjInfo->pObj->ptr;

  //WriteSpace(pfnOutput, StartColumn);
  //fprintf(pfnOutput, "%d, // UInt16 id\n", pGadget->id);
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  Write_ObjIdDefine(pObjInfo, StartColumn, pGadget->id);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{ // FormGadgetAttrType attr\n");
  StartColumn += TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 usable :1\n", pGadget->attr.usable);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 extended :1\n", pGadget->attr.extended);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 visible :1\n", pGadget->attr.visible);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 reserved :13\n", 0);
  StartColumn -= TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "},\n");
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType rectangle\n",
          pGadget->rect.topLeft.x, pGadget->rect.topLeft.y,
          pGadget->rect.extent.x, pGadget->rect.extent.y
         );
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "0x%X, // const void *\n", 0);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "0x%X, // FormGadgetHandlerType *handler\n", 0);
}

void OutputObj_ScrollBar(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCSCROLLBAR *pScrollBar;

  pScrollBar = pObjInfo->pObj->ptr;
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType bounds\n",
          pScrollBar->bounds.topLeft.x, pScrollBar->bounds.topLeft.y,
          pScrollBar->bounds.extent.x, pScrollBar->bounds.extent.y
         );
  
  //WriteSpace(pfnOutput, StartColumn);
  //fprintf(pfnOutput, "%d,\n", pScrollBar->id);
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  Write_ObjIdDefine(pObjInfo, StartColumn, pScrollBar->id);
  
  StartColumn += TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{ // ScrollBarAttrType attr\n", 0);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 usable :1\n", pScrollBar->attr.usable);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 visible :1\n", pScrollBar->attr.visible);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 hilighted :1\n", pScrollBar->attr.hilighted);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 shown :1\n", pScrollBar->attr.shown);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 activeRegion :4\n", pScrollBar->attr.activeRegion);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 reserved :8\n", 0);
  StartColumn -= TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "},\n", 0);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 value\n", pScrollBar->value);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 minValue\n", pScrollBar->minValue);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 maxValue\n", pScrollBar->maxValue);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 pageSize\n", pScrollBar->pageSize);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 penPosInCar\n", 0);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 savePos\n", 0);
}

void OutputObj_Slider(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCSliderControlType *pSlider;

  pSlider = pObjInfo->pObj->ptr;

  //WriteSpace(pfnOutput, StartColumn);
  //fprintf(pfnOutput, "%d,\n", PBAFIELD(pSlider, id));
  Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
  Write_ObjIdDefine(pObjInfo, StartColumn, PBAFIELD(pSlider, id));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType bounds\n",
          PBAFIELD(pSlider, bounds.topLeft.x), PBAFIELD(pSlider, bounds.topLeft.y),
          PBAFIELD(pSlider, bounds.extent.x), PBAFIELD(pSlider, bounds.extent.y)
         );
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // DmResID thumbID\n", PBAFIELD(pSlider, backgroundid));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // DmResID backgroundID\n", PBAFIELD(pSlider, thumbid));

  // RCCONTROLATTR attr
  if (vfLE32)
    Write_RCCONTROLATTR(&PBAFIELD32(pSlider, attr), pfnOutput, StartColumn);
  else
    Write_RCCONTROLATTR(&PBAFIELD16(pSlider, attr), pfnOutput, StartColumn);

  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // ControlStyles style\n", PBAFIELD(pSlider, style));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 reserved\n", 0);
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // Int16 minValue\n", PBAFIELD(pSlider, minValue));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // Int16 maxValue\n", PBAFIELD(pSlider, maxValue));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // Int16 pageSize\n", PBAFIELD(pSlider, pageSize));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // Int16 value\n", PBAFIELD(pSlider, value));
  
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "0x%X, // MemPtr activeSliderP\n", 0);
}

//########################################
// Private Function implement
//########################################
void Write_RCCONTROLATTR(RCCONTROLATTR *pCtrlAttr, FILE *pfnOutput, int StartColumn)
{
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{ // ControlAttrType attr\n");
  StartColumn += TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 usable :1\n", pCtrlAttr->usable);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 enabled :1\n", pCtrlAttr->enabled);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 visible :1\n", pCtrlAttr->visible);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 on :1\n", pCtrlAttr->on);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 leftAnchor :1\n", pCtrlAttr->leftAnchor);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 frame :3\n", pCtrlAttr->frame);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 drawnAsSelected :1\n", pCtrlAttr->drawnAsSelected);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 graphical :1\n", pCtrlAttr->graphical);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 vertical :1\n", pCtrlAttr->vertical);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt8 reserved :5\n", 0);
  StartColumn -= TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "},\n");
}

void Write_RCFORMOBJATTR(RCFORMOBJATTR *pAttr, FILE *pfnOutput, int StartColumn)
{
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "{ // FormObjAttrType attr\n", 0);
  StartColumn += TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 usable :1\n", pAttr->usable);
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "%d, // UInt16 reserved :15\n", 0);
  StartColumn -= TAB_SIZE;
  WriteSpace(pfnOutput, StartColumn);
  fprintf(pfnOutput, "},\n", 0);
}

void Write_ObjIdName(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn, char *pComment)
{
  if(!pComment)
    pComment = "";
  WriteDefineInfo(pfnOutput,StartColumn,"%s_ID_%s_%s,%s",
    gv_IDPrefix,PBAFIELD(pObjInfo->pFrm, form.szFormIdName),pObjInfo->szIdName,pComment);
}

void Write_ObjIdDefine(struct _ObjInfo *pObjInfo,int StartColumn,int id)
{
  WriteDefineInfo(NULL,StartColumn,"%s_ID_%s_%s  %d",
    gv_IDPrefix,PBAFIELD(pObjInfo->pFrm, form.szFormIdName),pObjInfo->szIdName,id);
}
  
void Write_ObjText_Addr(struct _ObjInfo *pObjInfo,FILE *pfnOutput,int StartColumn,char *pComment)
{
  char szComment[]="";
  if(!pComment)
    pComment=szComment;
  WriteDefineInfo(pfnOutput,StartColumn,"(void*)%s.%s_str,%s",
    szFormName,pObjInfo->szIdName,pComment);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -