📄 osdmm.c
字号:
// Return : none.// Side Effect : none.// Notes : //*********************************************************************************************************void _OSDMM_DrawSeparateFrame(BYTE bKind){ _OSDMM_SetFrameAttribute(FRAME_DOUBLE_SOLID); if (bKind == OSDMM_VERTICAL_SEPARATE_FRAME) { _OSDMMFrame.bThickness = OSDMM_VERTICAL_SEPARATE_FRAME_THICKNESS >> 1; _OSDMMFrame.rect.wLeft = OSDMM_VERTICAL_SEPARATE_FRAME_H; _OSDMMFrame.rect.wTop = OSDMM_VERTICAL_SEPARATE_FRAME_V; _OSDMMFrame.rect.wRight = OSDMM_VERTICAL_SEPARATE_FRAME_H + OSDMM_VERTICAL_SEPARATE_FRAME_WIDTH; _OSDMMFrame.rect.wBottom = OSDMM_VERTICAL_SEPARATE_FRAME_V + OSDMM_VERTICAL_SEPARATE_FRAME_HEIGHT; } else //horizontal separate frame { _OSDMMFrame.bThickness = OSDMM_HORIZONTAL_SEPARATE_FRAME_THICKNESS >> 1; _OSDMMFrame.rect.wLeft = OSDMM_HORIZONTAL_SEPARATE_FRAME_H; _OSDMMFrame.rect.wTop = OSDMM_HORIZONTAL_SEPARATE_FRAME_V; _OSDMMFrame.rect.wRight = OSDMM_HORIZONTAL_SEPARATE_FRAME_H + OSDMM_HORIZONTAL_SEPARATE_FRAME_WIDTH-1; _OSDMMFrame.rect.wBottom = OSDMM_HORIZONTAL_SEPARATE_FRAME_V + OSDMM_HORIZONTAL_SEPARATE_FRAME_HEIGHT; } GDI_DrawFrame_909(0, &_OSDMMFrame); }//*********************************************************************************************************// Function : _OSDMM_DrawLeftFileWindow// Abstract : This funciton will draw the left file window.// Arguments : none.// Return : none.// Side Effect : none.// Notes : //*********************************************************************************************************void _OSDMM_DrawLeftFileWindow(void){ if (__MMSelectCursor.wDirID == MM_ROOT) { //at the first scrren of Media Manager UI. _OSDMM_DrawAllVolumes(); } else { //To judge if the "Up_DIR" exists or not. if (_OSDMM_HaveUpDIR()) //with "Up_DIR" _bOSDMMHaveUpDIR = TRUE; else _bOSDMMHaveUpDIR = FALSE; _bOSDMMTemp = __MMSelectCursor.wDirID - __pMMVolumeDirTree[__pMMVolumeDirTree[__MMSelectCursor.wDirID].bParentID].b1stSubDirID; _bOSDMMStartDrawDir = 0; if (_bOSDMMHaveUpDIR) { if (_bOSDMMTemp >= (OSDMM_MAX_DIR_IN_FILE_WINDOW-2)) _bOSDMMStartDrawDir = (_bOSDMMTemp+1) + 2 - OSDMM_MAX_DIR_IN_FILE_WINDOW; //2 = "ROOT"+"Up_DIR" } else //without "Up_DIR" { if (_bOSDMMTemp >= (OSDMM_MAX_DIR_IN_FILE_WINDOW-1)) _bOSDMMStartDrawDir = (_bOSDMMTemp+1) + 1 - OSDMM_MAX_DIR_IN_FILE_WINDOW; //1 = "ROOT" } if (_bOSDMMStartDrawDir == 0) //Draw from "ROOT" { _OSDMM_DrawVolume(0, __MMSelectCursor.bVolID, FALSE); if (_bOSDMMHaveUpDIR) //with "Up_DIR" { _OSDMM_DrawUpDIR(1, FALSE); _OSDMM_DrawDir(2); } else _OSDMM_DrawDir(1); } else if (_bOSDMMStartDrawDir == 1) { if (_bOSDMMHaveUpDIR) //with "Up_DIR" { _OSDMM_DrawUpDIR(0, FALSE); _OSDMM_DrawDir(1); } else _OSDMM_DrawDir(0); } else _OSDMM_DrawDir(0); } _OSDMM_UpdateLeftScrollBar();}//*********************************************************************************************************// Function : _OSDMM_InitializeStringPalette// Abstract : This function will set the palette for the file window.// Arguments : none.// Return : none.// Side Effect : none.// Notes : //*********************************************************************************************************void _OSDMM_InitializeStringPalette(BYTE bRegion){ _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_GENERAL_BACKGROUND; _OSDMMStringAttr.bShadow1 = OSDMM_PALETTE_ENTRY_GENERAL_BACKGROUND; _OSDMMStringAttr.bShadow2 = OSDMM_PALETTE_ENTRY_GENERAL_BACKGROUND; _OSDMMStringAttr.bColorKey = 0; switch (bRegion) { case OSDMM_TITLE_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_TITLE_STRING; break; case OSDMM_LEFT_FILE_WINDOW_REGION: case OSDMM_RIGHT_FILE_WINDOW_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_GENERAL_STRING_IN_FILE_WINDOW; break; case OSDMM_BUTTON_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_ENABLE_BUTTON_STRING; _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_BUTTON_ENABLE_BACKGROUND; break; case OSDMM_HELP_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_HELP_STRING; _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_HELP_REGION_BACKGROUND; break; case OSDMM_TIME_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_TIME_STRING; break; case OSDMM_DLG_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_DLG_STRING; _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_DLG_BACKGROUND; break; case OSDMM_DLG_TITLE_REGION: _OSDMMStringAttr.bTextColor = OSDMM_PALETTE_ENTRY_DLG_STRING; _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_DLG_TITLE_BAR; break; default: break; }}//*********************************************************************************************************// Function : _OSDMM_DrawRightFileWindow// Abstract : This function will draw the right file window.// Arguments : none.// Return : none.// Side Effect : none.// Notes : //*********************************************************************************************************void _OSDMM_DrawRightFileWindow(void){ BYTE bOSDMMTemp; if ((__pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir == 0) && (__pMMFilterFilesOfDir[__MMSelectCursor.wDirID] == 0)) return; //no folders and files if (__wOSDMMStartDrawItem >= __pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir) { //draw file directly. _wOSDMMTemp = __wOSDMMStartDrawItem - __pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir; //for sequential number. //Transfrom relative ID to absolute ID MM_TriggerDumping(MM_ID_RelativeToAbsolute(__MMSelectCursor.wDirID, _wOSDMMTemp), OSDMM_MAX_ITEM_IN_FILE_WINDOW); for (bOSDMMTemp = 0; (bOSDMMTemp < OSDMM_MAX_ITEM_IN_FILE_WINDOW)&&(_wOSDMMTemp < __pMMFilterFilesOfDir[__MMSelectCursor.wDirID]); bOSDMMTemp++) { //Dump file record. if (MM_GetDumpedFileRecord() == MM_FILE_RECORD_DUMP_FAILED) return; //Draw icon for the files _OSDMM_DrawRightFileWindowIcon(bOSDMMTemp, _OSDMM_GetIconType(__pMMFileRecord->FileName.bExtID), FALSE); _OSDMM_InitializeStringPalette(OSDMM_RIGHT_FILE_WINDOW_REGION); //Draw string _OSDMMStringAttr.wX = OSDMM_ITEM_RIGHT_WINDOW_START_H; _OSDMMStringAttr.wY = OSDMM_ITEM_RIGHT_WINDOW_START_V + bOSDMMTemp*OSDMM_ITEM_HEIGHT; _OSDMM_CopyFileString(_wOSDMMTemp); //GDI_DrawString_909(0, &_OSDMMStringAttr, __pOSDUTLOutputString);#ifdef SUPPORT_UNICODE_CODING if ((__pMMFileRecord->bFileAttr & IF_UNICODE_FILE_TAG) && (__bEnCodeType != CHAR_ENCODE_ISO_CP)) { _OSDMM_DrawStringByUnicode(); _bOSDMMFileLength = GDI_GetUniStringWidth(__pOSDUTLOutputString); //for draw the selected frame } else#endif { _OSDMM_DrawString(); _bOSDMMFileLength = GDI_GetStringWidth_909(__pOSDUTLOutputString); //for draw the selected frame } //draw serial number _OSDMM_DrawSerialNumber(bOSDMMTemp, _wOSDMMTemp+1); //draw the selected frame for program mode if ((__btProgram) || (_bOSDMMUIMode == OSDMM_INITIAL_MODE_COPY)) { if (LINEAR_ProgramEntryOperation(LINEAR_QUERY_INDEX, 0, __MMSelectCursor.wDirID, (WORD)(_wOSDMMTemp+1)) != 0xFF) { //draw the selected frame _OSDMM_DrawSelectedFrame(OSDMM_UPDATE_DRAW, bOSDMMTemp); } } _wOSDMMTemp++; //next file } } else //draw folder and then file { //draw folder _wOSDMMTemp = __wOSDMMStartDrawItem + __pMMVolumeDirTree[__MMSelectCursor.wDirID].b1stSubDirID; bOSDMMTemp = 0; while ((bOSDMMTemp < OSDMM_MAX_ITEM_IN_FILE_WINDOW) && ((bOSDMMTemp+__wOSDMMStartDrawItem) < __pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir)) { //draw icon for the folder. _OSDMM_DrawRightFileWindowIcon(bOSDMMTemp, OSDMM_ICON_TYPE_FOLDER, FALSE); //draw string. _OSDMM_InitializeStringPalette(OSDMM_RIGHT_FILE_WINDOW_REGION); _OSDMM_CopyDirString((BYTE)_wOSDMMTemp, (OSDMM_RIGHT_SCROLL_BAR_H - OSDMM_ITEM_RIGHT_WINDOW_START_H)); _OSDMMStringAttr.wX = OSDMM_ITEM_RIGHT_WINDOW_START_H; _OSDMMStringAttr.wY = OSDMM_ITEM_RIGHT_WINDOW_START_V+bOSDMMTemp*OSDMM_ITEM_HEIGHT; //GDI_DrawString_909(0, &_OSDMMStringAttr, __pOSDUTLOutputString);#ifdef SUPPORT_UNICODE_CODING if ((__pMMDirNameList[_wOSDMMTemp].bMMLinkStatus & IF_UNICODE_FILE_TAG) && (__bEnCodeType != CHAR_ENCODE_ISO_CP)) { _OSDMM_DrawStringByUnicode(); } else#endif { _OSDMM_DrawString(); } bOSDMMTemp++; _wOSDMMTemp++; } //draw file if (__pMMFilterFilesOfDir[__MMSelectCursor.wDirID] != 0) { _wOSDMMTemp = 0; //Transfrom relative ID to absolute ID MM_TriggerDumping(MM_ID_RelativeToAbsolute(__MMSelectCursor.wDirID, _wOSDMMTemp), OSDMM_MAX_ITEM_IN_FILE_WINDOW); while (bOSDMMTemp < OSDMM_MAX_ITEM_IN_FILE_WINDOW) { if (_wOSDMMTemp >= __pMMFilterFilesOfDir[__MMSelectCursor.wDirID]) break; //Dump file record. if (MM_GetDumpedFileRecord() == MM_FILE_RECORD_DUMP_FAILED) return; //Draw icon for the files _OSDMM_DrawRightFileWindowIcon(bOSDMMTemp, _OSDMM_GetIconType(__pMMFileRecord->FileName.bExtID), FALSE); //draw string. _OSDMM_InitializeStringPalette(OSDMM_RIGHT_FILE_WINDOW_REGION); _OSDMM_CopyFileString(_wOSDMMTemp); _OSDMMStringAttr.wX = OSDMM_ITEM_RIGHT_WINDOW_START_H; _OSDMMStringAttr.wY = OSDMM_ITEM_RIGHT_WINDOW_START_V+bOSDMMTemp*OSDMM_ITEM_HEIGHT; //GDI_DrawString_909(0, &_OSDMMStringAttr, __pOSDUTLOutputString);#ifdef SUPPORT_UNICODE_CODING if ((__pMMFileRecord->bFileAttr & IF_UNICODE_FILE_TAG) && (__bEnCodeType != CHAR_ENCODE_ISO_CP)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -