MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / DrawStatusArea

Method DrawStatusArea

source/Windows/WinFrame.cpp:830–996  ·  view source on GitHub ↗

===========================================================================

Source from the content-addressed store, hash-verified

828
829//===========================================================================
830void Win32Frame::DrawStatusArea(HDC passdc, int drawflags)
831{
832 if (g_hFrameWindow == NULL)
833 {
834 // TC: Fix drawing of drive buttons before frame created:
835 // . Main init loop: LoadConfiguration() called before FrameCreateWindow(), eg:
836 // LoadConfiguration() -> Disk_LoadLastDiskImage() -> DiskInsert() -> GetFrame().FrameRefreshStatus()
837 return;
838 }
839
840 FrameReleaseDC();
841 HDC dc = (passdc ? passdc : GetDC(g_hFrameWindow));
842 const int x = buttonx;
843 const int y = buttony + BUTTONS * BUTTONCY + 1;
844 const bool bCaps = KeybGetCapsStatus();
845
846 Disk_Status_e eHardDriveStatus = DISK_STATUS_OFF;
847 if (GetCardMgr().QuerySlot(SLOT7) == CT_GenericHDD)
848 dynamic_cast<HarddiskInterfaceCard&>(GetCardMgr().GetRef(SLOT7)).GetLightStatus(&eHardDriveStatus);
849
850 if (g_bIsFullScreen)
851 {
852 if (!g_bFullScreen_ShowSubunitStatus)
853 {
854 // Erase Config button icon too, as trk/sec is written here - see FrameDrawDiskStatus()
855 RECT rect = {x-2,y-BUTTONCY,x+BUTTONCX+2,y+BUTTONCY}; // Extend rect's width by +/-2 as the TITLE_PAUSED text is wider than an icon button
856 FillRect(dc, &rect, (HBRUSH)GetStockObject(BLACK_BRUSH));
857 }
858 else
859 {
860 SelectObject(dc,smallfont);
861
862 if (drawflags & DRAW_DISK_STATUS)
863 {
864 FrameDrawDiskStatus(dc);
865 }
866
867 if (GetCardMgr().QuerySlot(SLOT7) == CT_GenericHDD)
868 {
869 SetTextAlign(dc, TA_RIGHT | TA_TOP);
870 SetTextColor(dc, g_aDiskFullScreenColorsLED[eHardDriveStatus]);
871 TextOut(dc, x + 23, y + 2, "H", 1);
872 }
873
874 if (!IS_APPLE2)
875 {
876 SetTextAlign(dc,TA_RIGHT | TA_TOP);
877 SetTextColor(dc,(bCaps
878 ? RGB(128,128,128)
879 : RGB( 0, 0, 0) ));
880
881 TextOut(dc,x+BUTTONCX,y+2,"A",1); // NB. Caps Lock indicator is already flush right!
882 }
883
884 //
885
886 static const char* pCurrentAppModeText = NULL;
887

Callers

nothing calls this directly

Calls 4

KeybGetCapsStatusFunction · 0.85
GetAppleWindowTitleFunction · 0.85
QuerySlotMethod · 0.80
GetLightStatusMethod · 0.45

Tested by

no test coverage detected