📄 obj.c
字号:
//////////////////////////////////////////
// Written by LiBing 2001/09/19 //
//////////////////////////////////////////
//########################################
// Include files
//########################################
#include "public.h"
//########################################
// Macro define
//########################################
//########################################
// Type define
//########################################
//########################################
// Globals variable
//########################################
//########################################
// Private Function declare
//########################################
static void Write_RCCONTROLATTR(RCCONTROLATTR *pCtrlAttr, FILE *pfnOutput, int StartColumn);
static void Write_RCFORMOBJATTR(RCFORMOBJATTR *pAttr, FILE *pfnOutput, int StartColumn);
static void Write_ObjIdName(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn, char *pComment);
static void Write_ObjIdDefine(struct _ObjInfo *pObjInfo,int StartColumn,int id);
static void Write_ObjText_Addr(struct _ObjInfo *pObjInfo,FILE *pfnOutput,int StartColumn,char *pComment);
//########################################
// Function implement
//########################################
void OutputObj_Field(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCFieldType *pField;
pField = pObjInfo->pObj->ptr;
//WriteSpace(pfnOutput, StartColumn);
//fprintf(pfnOutput, "%d, // UInt16 id\n", PBAFIELD(pField, id));
Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
Write_ObjIdDefine(pObjInfo, StartColumn, PBAFIELD(pField, id));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType rect\n",
PBAFIELD(pField, rect.topLeft.x), PBAFIELD(pField, rect.topLeft.y),
PBAFIELD(pField, rect.extent.x), PBAFIELD(pField, rect.extent.y)
);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{ // FieldAttrType attr\n");
StartColumn += TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 usable :1\n", PBAFIELD(pField, attr.usable));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 visible :1\n", PBAFIELD(pField, attr.visible));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 editable :1\n", PBAFIELD(pField, attr.editable));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 singleLine :1\n", PBAFIELD(pField, attr.singleLine));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 hasFocus :1\n", PBAFIELD(pField, attr.hasFocus));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 dynamicSize :1\n", PBAFIELD(pField, attr.dynamicSize));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 insPtVisible :1\n", PBAFIELD(pField, attr.insPtVisible));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 dirty :1\n", PBAFIELD(pField, attr.dirty));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 underlined :2\n", PBAFIELD(pField, attr.underlined));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 justification :2\n", PBAFIELD(pField, attr.justification));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 autoShift :1\n", PBAFIELD(pField, attr.autoShift));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 hasScrollBar :1\n", PBAFIELD(pField, attr.hasScrollBar));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 numeric :1\n", PBAFIELD(pField, attr.numeric));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 reserved :1\n", 0);
StartColumn -= TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "},\n");
// WriteSpace(pfnOutput, StartColumn);
Write_ObjText_Addr(pObjInfo,pfnOutput,StartColumn," // Char *text");
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // MemHandle textHandle\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // LineInfoPtr lines\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 textLen\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 textBlockSize\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 maxChars\n", PBAFIELD(pField, maxChars));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 selFirstPos\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 selLastPos\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 insPtXPos\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 insPtYPos\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // FontID fontID\n", PBAFIELD(pField, fontID));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 maxVisibleLines\n", 0);
}
void OutputObj_Control(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCControlType *pControl;
pControl = pObjInfo->pObj->ptr;
//WriteSpace(pfnOutput, StartColumn);
//fprintf(pfnOutput, "%d, // UInt16 id\n", PBAFIELD(pControl, id));
Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
Write_ObjIdDefine(pObjInfo, StartColumn, PBAFIELD(pControl, id));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType bounds\n",
PBAFIELD(pControl, bounds.topLeft.x), PBAFIELD(pControl, bounds.topLeft.y),
PBAFIELD(pControl, bounds.extent.x), PBAFIELD(pControl, bounds.extent.y)
);
if (pObjInfo->ObjType == frmControlObj)
{
// WriteSpace(pfnOutput, StartColumn);
Write_ObjText_Addr(pObjInfo,pfnOutput,StartColumn," // Char *text");
}
else if (pObjInfo->ObjType == frmGraphicalControlObj)
{
WriteSpace(pfnOutput, StartColumn);
if(PBAFIELD(pControl,szBackgroundIdName))
fprintf(pfnOutput, "%s_ID_BITMAP_%s, //UInt16 bitmapID\n",gv_IDPrefix,PBAFIELD(pControl,szBackgroundIdName));
else
fprintf(pfnOutput, "0, //UInt16 bitmapID\n");
WriteSpace(pfnOutput, StartColumn);
if(PBAFIELD(pControl,szThumbIdName))
fprintf(pfnOutput, "%s_ID_BITMAP_%s, //UInt16 SelectedbitmapID\n",gv_IDPrefix,PBAFIELD(pControl,szThumbIdName));
else
fprintf(pfnOutput, "0, //UInt16 SelectedbitmapID\n");
}
else
Error("Error: Control type !");
// RCCONTROLATTR attr
if (vfLE32)
Write_RCCONTROLATTR(&PBAFIELD32(pControl, attr), pfnOutput, StartColumn);
else
Write_RCCONTROLATTR(&PBAFIELD16(pControl, attr), pfnOutput, StartColumn);
{
char *CtrName[] =
{
"buttonCtl", //0
"pushButtonCtl", //1
"checkboxCtl", //2
"popupTriggerCtl", //3
"selectorTriggerCtl", //4
"repeatingButtonCtl", //5
"sliderCtl", //6
"feedbackSliderCtl", //7
};
WriteSpace(pfnOutput, StartColumn);
//fprintf(pfnOutput, "%d, // ControlStyleType style\n", PBAFIELD(pControl, style));
fprintf(pfnOutput, "%s, // ControlStyleType style\n", CtrName[PBAFIELD(pControl, style)]);
}
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // FontID font\n", PBAFIELD(pControl, font));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt8 group\n", PBAFIELD(pControl, group));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt8 reserved\n", 0);
}
void OutputObj_List(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCListType *pList;
pList = pObjInfo->pObj->ptr;
//WriteSpace(pfnOutput, StartColumn);
//fprintf(pfnOutput, "%d,\n", PBAFIELD(pList, id));
Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
Write_ObjIdDefine(pObjInfo, StartColumn, PBAFIELD(pList, id));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType bounds\n",
PBAFIELD(pList, bounds.topLeft.x), PBAFIELD(pList, bounds.topLeft.y),
PBAFIELD(pList, bounds.extent.x), PBAFIELD(pList, bounds.extent.y)
);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{ // ListAttrType attr\n");
StartColumn += TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 usable :1\n", PBAFIELD(pList, attr.usable));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 enabled :1\n", PBAFIELD(pList, attr.enabled));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 visible :1\n", PBAFIELD(pList, attr.visible));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 poppedUp :1\n", PBAFIELD(pList, attr.poppedUp));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 hasScrollBar :1\n", PBAFIELD(pList, attr.hasScrollBar));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 search :1\n", PBAFIELD(pList, attr.search));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 reserved :10\n", 0);
StartColumn -= TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "},\n");
// char *itemsText
// WriteSpace(pfnOutput, StartColumn);
Write_ObjText_Addr(pObjInfo,pfnOutput,StartColumn," // Char **itemsText");
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // Int16 numItems\n", PBAFIELD(pList, numItems));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // Int16 currentItem\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // Int16 topItem\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // FontID font\n", PBAFIELD(pList, font));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt8 reserved\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // WinHandle popupWin\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // ListDrawDataFuncPtr drawItemsCallback\n", 0);
}
void OutputObj_Table(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCTableType *pTable;
struct _ObjInfo ObjInfo;
pTable = pObjInfo->pObj->ptr;
//WriteSpace(pfnOutput, StartColumn);
//fprintf(pfnOutput, "%d, // UInt16 id\n", PBAFIELD(pTable, id));
Write_ObjIdName(pObjInfo, pfnOutput, StartColumn, " // UInt16 id");
Write_ObjIdDefine(pObjInfo, StartColumn, PBAFIELD(pTable, id));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{%d, %d, %d, %d}, // RectangleType bounds\n",
PBAFIELD(pTable, bounds.topLeft.x), PBAFIELD(pTable, bounds.topLeft.y),
PBAFIELD(pTable, bounds.extent.x), PBAFIELD(pTable, bounds.extent.y)
);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{ // TableAttrType attr\n");
StartColumn += TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 visible :1\n", PBAFIELD(pTable, attr.visible));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 editable :1\n", PBAFIELD(pTable, attr.editable));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 editing :1\n", PBAFIELD(pTable, attr.editing));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 selected :1\n", PBAFIELD(pTable, attr.selected));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 hasScrollBar :1\n", PBAFIELD(pTable, attr.hasScrollBar));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 usable :1\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 reserved :10\n", 0);
StartColumn -= TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "},\n");
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 numColumns\n", PBAFIELD(pTable, numColumns));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 numRows\n", PBAFIELD(pTable, numRows));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 currentRow\n", PBAFIELD(pTable, currentRow));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 currentColumn\n", PBAFIELD(pTable, currentColumn));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%d, // UInt16 topRow\n", PBAFIELD(pTable, topRow));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // TableColumnAttrType *columnAttrs\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // TableRowAttrType *rowAttrs\n", 0);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "0x%X, // TableItemPtr items\n", 0);
// RCFieldBA16Type currentField;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{ // FieldType currentField\n", 0);
StartColumn += TAB_SIZE;
ObjInfo = *pObjInfo;
ObjInfo.ObjType = frmFieldObj;
if (vfLE32)
ObjInfo.pObj->field->s32 = PBAFIELD32(pTable, currentField);
else
ObjInfo.pObj->field->s16 = PBAFIELD16(pTable, currentField);
OutputObj_Field(&ObjInfo, pfnOutput, StartColumn);
StartColumn -= TAB_SIZE;
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "},\n", 0);
}
void OutputObj_Bitmap(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ RCFormBitMapType *pBitmap;
pBitmap = pObjInfo->pObj->ptr;
if (vfLE32)
Write_RCFORMOBJATTR(&PBAFIELD32(pBitmap, attr), pfnOutput, StartColumn);
else
Write_RCFORMOBJATTR(&PBAFIELD16(pBitmap, attr), pfnOutput, StartColumn);
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "{%d, %d}, // point pos\n", PBAFIELD(pBitmap, pos.x), PBAFIELD(pBitmap, pos.y));
WriteSpace(pfnOutput, StartColumn);
fprintf(pfnOutput, "%s_ID_BITMAP_%s, //UInt16 rscID\n",gv_IDPrefix,PBAFIELD(pBitmap, szRscIdName));
}
void OutputObj_Line(struct _ObjInfo *pObjInfo, FILE *pfnOutput, int StartColumn)
{ typedef struct _FormLine
{
RCFORMOBJATTR attr;
RCPOINT point1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -