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

📄 osdmm.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
                    _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);                    }                }                                bOSDMMTemp++;                _wOSDMMTemp++;            }        }    }        _OSDMM_UpdateRightScrollBar();}//*********************************************************************************************************//  Function    :   _OSDMM_UpdateHighlight//  Abstract    :   This function will update the highlight.//  Arguments   :   bUpdate: OSDMM_UPDATE_DRAW: draw the highlight.//              :            OSDMM_UPDATE_CLEAR: clear the highlight.//  Return		:   none.//  Side Effect :   none.//  Notes       :   //*********************************************************************************************************void _OSDMM_UpdateHighlight(BYTE bUpdate){    WORD wStringLength = 0;    if ((__bMMPopMenuID == MM_POP_MENU_NONE) && (bUpdate == OSDMM_UPDATE_DRAW))    {        _OSDMM_UpdateTitle();        //_OSDFM_UpdateHelp();    }          switch (__MMSelectCursor.bPosition)    {    case POS_VOL_DIR_LIST:        if (!((__MMSelectCursor.wIndex < __bMMVolumeNum) || ((__MMSelectCursor.wIndex == __bMMVolumeNum) && _OSDMM_HaveUpDIR())))        {            _OSDMM_CopyDirString((BYTE)__MMSelectCursor.wDirID, (OSDMM_LEFT_SCROLL_BAR_H - OSDMM_ITEM_LEFT_WINDOW_START_H));#ifdef SUPPORT_UNICODE_CODING            if ((__pMMDirNameList[__MMSelectCursor.wDirID].bMMLinkStatus & IF_UNICODE_FILE_TAG) && (__bEnCodeType != CHAR_ENCODE_ISO_CP))            {                wStringLength = GDI_GetUniStringWidth(__pOSDUTLOutputString);            }            else#endif            {                wStringLength = GDI_GetStringWidth_909(__pOSDUTLOutputString);            }                if (bUpdate == OSDMM_UPDATE_DRAW)				                _bOSDMMIconType = OSDMM_ICON_TYPE_OPENFOLDER;             else			{				if (__bActiveDirChange) //change dir really                {                    _bOSDMMIconType = OSDMM_ICON_TYPE_FOLDER;                     __bActiveDirChange = FALSE;                }                else //Only KEY_RIGHT/KEY_LEFT to change the highlight.                                    _bOSDMMIconType = OSDMM_ICON_TYPE_OPENFOLDER;                     			}        }        else if (__MMSelectCursor.wIndex < __bMMVolumeNum) //Volume        {            _OSDMM_SetVolumeString(__MMSelectCursor.bVolID);            wStringLength = GDI_GetStringWidth_909(__pOSDUTLOutputString);        }        else if ((__MMSelectCursor.wIndex == __bMMVolumeNum) && _OSDMM_HaveUpDIR())//up DIR        {            __pOSDUTLOutputString = aMMUpDIR;            wStringLength = GDI_GetStringWidth_909(__pOSDUTLOutputString);        }        //Draw/clear highlight        _OSDMMRect.rect.wLeft = OSDMM_ICON_LEFT_WINDOW_START_H - OSDMM_HIGHLIGHT_DISTANCE_H;        _OSDMMRect.rect.wTop = OSDMM_ITEM_LEFT_WINDOW_START_V+((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW)*OSDMM_ITEM_HEIGHT-OSDMM_HIGHLIGHT_DISTANCE_V;                    _OSDMMRect.rect.wRight = OSDMM_ITEM_LEFT_WINDOW_START_H+wStringLength+OSDMM_HIGHLIGHT_DISTANCE_H;        _OSDMMRect.rect.wBottom = OSDMM_ITEM_LEFT_WINDOW_START_V+((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW)*OSDMM_ITEM_HEIGHT+OSDMM_FILE_WINDOW_FONT_HEIGHT+OSDMM_HIGHLIGHT_DISTANCE_V;        if (bUpdate == OSDMM_UPDATE_DRAW)        {            _OSDMMRect.bColor = OSDMM_PALETTE_ENTRY_HIGHLIGHT_BACKGROUND;        }        else        {            _OSDMMRect.bColor = OSDMM_PALETTE_ENTRY_GENERAL_BACKGROUND;        }        GDI_FillRect_909(0, &_OSDMMRect);        if (__MMSelectCursor.wIndex == 0)        {            if (bUpdate == OSDMM_UPDATE_DRAW)                _OSDMM_DrawVolume(0, __MMSelectCursor.bVolID, TRUE);            else                _OSDMM_DrawVolume(0, __MMSelectCursor.bVolID, FALSE);        }        else if ((__MMSelectCursor.wIndex == 1) && _OSDMM_HaveUpDIR())        {            if (bUpdate == OSDMM_UPDATE_DRAW)                _OSDMM_DrawUpDIR((BYTE)((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW), TRUE);            else                _OSDMM_DrawUpDIR((BYTE)((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW), FALSE);        }        else        {            if (bUpdate == OSDMM_UPDATE_DRAW)                                _OSDMM_DrawLeftFileWindowIcon((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW, _bOSDMMIconType, TRUE);            else                _OSDMM_DrawLeftFileWindowIcon((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW, _bOSDMMIconType, FALSE);            _OSDMM_InitializeStringPalette(OSDMM_LEFT_FILE_WINDOW_REGION);            if (bUpdate == OSDMM_UPDATE_DRAW)                _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_HIGHLIGHT_BACKGROUND;            else                _OSDMMStringAttr.bBackground = OSDMM_PALETTE_ENTRY_GENERAL_BACKGROUND;            _OSDMMStringAttr.wX = OSDMM_ITEM_LEFT_WINDOW_START_H;            _OSDMMStringAttr.wY = OSDMM_ITEM_LEFT_WINDOW_START_V+((__MMSelectCursor.wIndex-_bOSDMMStartDrawDir)%OSDMM_MAX_DIR_IN_FILE_WINDOW)*OSDMM_ITEM_HEIGHT;            //GDI_DrawString_909(0, &_OSDMMStringAttr, __pOSDUTLOutputString);#ifdef SUPPORT_UNICODE_CODING            if ((__pMMDirNameList[__MMSelectCursor.wDirID].bMMLinkStatus & IF_UNICODE_FILE_TAG) && (__bEnCodeType != CHAR_ENCODE_ISO_CP))            {                 _OSDMM_DrawStringByUnicode();                       }            else#endif            {            _OSDMM_DrawString();        }        }        break;    case POS_FILE_LIST:    case POS_PROG_LIST:        if (__MMSelectCursor.wIndex > (__wOSDMMStartDrawItem+OSDMM_MAX_ITEM_IN_FILE_WINDOW-1))        {            if ((__MMSelectCursor.wIndex - (__wOSDMMStartDrawItem+OSDMM_MAX_ITEM_IN_FILE_WINDOW-1)) > 1) //jump > 1 file.            {                //update the __wStartDrawItem                __wOSDMMStartDrawItem = __MMSelectCursor.wIndex - OSDMM_MAX_ITEM_IN_FILE_WINDOW + 1;                //clear right right file window                _OSDMM_ClearRegion(OSDMM_RIGHT_FILE_WINDOW_CONTENT_REGION); //Don't clear the right scroll bar because they are in the same folder.                //re-draw all                                if (__MMSelectCursor.bPosition == POS_FILE_LIST)                {                    _OSDMM_DrawRightFileWindow();                }                else if (__MMSelectCursor.bPosition == POS_PROG_LIST)                {                    _OSDMM_PL_DrawRightFileWindow();                  }            }            else            {                __wOSDMMStartDrawItem++;                _OSDMMBitmapCopy.bDestRegion = 0;                _OSDMMBitmapCopy.bSrcRegion = 0;                _OSDMMBitmapCopy.SrcRect.wLeft = OSDMM_VERTICAL_SEPARATE_FRAME_H+OSDMM_VERTICAL_SEPARATE_FRAME_WIDTH+1;                _OSDMMBitmapCopy.SrcRect.wTop = OSDMM_ICON_RIGHT_WINDOW_START_V+OSDMM_ITEM_HEIGHT-OSDMM_SELECT_FRAME_DISTANCE_V;                _OSDMMBitmapCopy.SrcRect.wRight = OSDMM_RIGHT_SCROLL_BAR_H-1;                _OSDMMBitmapCopy.SrcRect.wBottom = OSDMM_ICON_RIGHT_WINDOW_START_V+(OSDMM_MAX_ITEM_IN_FILE_WINDOW-1)*OSDMM_ITEM_HEIGHT+OSDMM_FILE_WINDOW_FONT_HEIGHT+OSDMM_SELECT_FRAME_DISTANCE_V;                _OSDMMBitmapCopy.wDestX = OSDMM_VERTICAL_SEPARATE_FRAME_H+OSDMM_VERTICAL_SEPARATE_FRAME_WIDTH+1;                _OSDMMBitmapCopy.wDestY = OSDMM_ICON_RIGHT_WINDOW_START_V-OSDMM_SELECT_FRAME_DISTANCE_V;                GDI_BitmapCopy(&_OSDMMBitmapCopy);                                                        //Then clear the last dir in this page  and re-draw it.                _OSDMM_ClearItemRegionInFileWindow(OSDMM_RIGHT_FILE_WINDOW, (OSDMM_MAX_ITEM_IN_FILE_WINDOW-1));                _OSDMM_UpdateRightScrollBar();            }        }        else if (__MMSelectCursor.wIndex < __wOSDMMStartDrawItem)        {            if ((__wOSDMMStartDrawItem - __MMSelectCursor.wIndex) > 1)            {                //update the __wStartDrawItem                __wOSDMMStartDrawItem = __MMSelectCursor.wIndex;                                //clear right right file window                _OSDMM_ClearRegion(OSDMM_RIGHT_FILE_WINDOW_CONTENT_REGION); //Don't clear the right scroll bar because they are in the same folder.                //re-draw all                                if (__MMSelectCursor.bPosition == POS_FILE_LIST)                {                    _OSDMM_DrawRightFileWindow();                }                else if (__MMSelectCursor.bPosition == POS_PROG_LIST)                {                    _OSDMM_PL_DrawRightFileWindow();                  }            }            else            {                __wOSDMMStartDrawItem--;                                //scroll down. Bitmap copy.                _OSDMMBitmapCopy.bDestRegion = 0;                _OSDMMBitmapCopy.bSrcRegion = 0;                _OSDMMBitmapCopy.SrcRect.wLeft = OSDMM_VERTICAL_SEPARATE_FRAME_H+OSDMM_VERTICAL_SEPARATE_FRAME_WIDTH+1;                _OSDMMBitmapCopy.SrcRect.wTop = OSDMM_ICON_RIGHT_WINDOW_START_V-OSDMM_SELECT_FRAME_DISTANCE_V;                _OSDMMBitmapCopy.SrcRect.wRight = OSDMM_RIGHT_SCROLL_BAR_H-1;                _OSDMMBitmapCopy.SrcRect.wBottom = OSDMM_ICON_RIGHT_WINDOW_START_V+(OSDMM_MAX_ITEM_IN_FILE_WINDOW-2)*OSDMM_ITEM_HEIGHT+OSDMM_FILE_WINDOW_FONT_HEIGHT+OSDMM_SELECT_FRAME_DISTANCE_V;                _OSDMMBitmapCopy.wDestX = OSDMM_VERTICAL_SEPARATE_FRAME_H+OSDMM_VERTICAL_SEPARATE_FRAME_WIDTH+1;                _OSDMMBitmapCopy.wDestY = OSDMM_ICON_RIGHT_WINDOW_START_V+OSDMM_ITEM_HEIGHT-OSDMM_SELECT_FRAME_DISTANCE_V;                GDI_BitmapCopy(&_OSDMMBitmapCopy);                                //Then clear the last dir in this page and re-draw it.                _OSDMM_ClearItemRegionInFileWindow(OSDMM_RIGHT_FILE_WINDOW, 0);                _OSDMM_UpdateRightScrollBar();            }        }                if (__MMSelectCursor.bPosition == POS_PROG_LIST)        {            _OSDMM_PL_CopyFileString((BYTE)__MMSelectCursor.wIndex);            wStringLength = GDI_GetStringWidth_909(__pOSDUTLOutputString);        }        else        {            if (__MMSelectCursor.wIndex < __pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir) //the cursor is at the folder.            {                _OSDMM_CopyDirString((BYTE)(__pMMVolumeDirTree[__MMSelectCursor.wDirID].b1stSubDirID+(BYTE)__MMSelectCursor.wIndex), (OSDMM_RIGHT_SCROLL_BAR_H - OSDMM_ITEM_RIGHT_WINDOW_START_H));#ifdef SUPPORT_UNICODE_CODING                if ((__pMMDirNameList[(__pMMVolumeDirTree[__MMSelectCursor.wDirID].b1stSubDirID+(BYTE)__MMSelectCursor.wIndex)].bMMLinkStatus & IF_UNICODE_FILE_TAG) && (__bEnCodeType != CHAR_ENCODE_ISO_CP))                {                    wStringLength = GDI_GetUniStringWidth(__pOSDUTLOutputString);                }                else#endif                {                    wStringLength = GDI_GetStringWidth_909(__pOSDUTLOutputString);                }  			                _bOSDMMIconType = OSDMM_ICON_TYPE_FOLDER;             }            else //the cursor is at the file.            {                //Dump one file for the highlighted item.                //MM_TriggerDumping(MM_ID_RelativeToAbsolute(__MMSelectCursor.wDirID, (WORD)(__MMSelectCursor.wIndex - __pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir)), 1);                MM_DumpOneFileForHighlightItem(); //CoCo1.20, reduce code size                //Dump file record.                //MM_GetDumpedFileRecord(); //--CoCo1.20, reduce code size                                _OSDMM_CopyFileString((WORD)(__MMSelectCursor.wIndex - __pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir));#ifdef SUPPORT

⌨️ 快捷键说明

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