Move last remaining globals from WinFrame.cpp to class Win32Frame. (PR #913)

This commit is contained in:
Andrea 2021-01-16 21:57:28 +00:00 committed by GitHub
parent 440831179f
commit 61db149eab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 145 additions and 128 deletions

View File

@ -997,10 +997,6 @@
RelativePath=".\source\Windows\WinFrame.cpp" RelativePath=".\source\Windows\WinFrame.cpp"
> >
</File> </File>
<File
RelativePath=".\source\Windows\WinFrame.h"
>
</File>
</Filter> </Filter>
<Filter <Filter
Name="Configuration" Name="Configuration"

View File

@ -121,7 +121,6 @@
<ClInclude Include="source\Windows\AppleWin.h" /> <ClInclude Include="source\Windows\AppleWin.h" />
<ClInclude Include="source\Windows\DirectInput.h" /> <ClInclude Include="source\Windows\DirectInput.h" />
<ClInclude Include="source\Windows\Win32Frame.h" /> <ClInclude Include="source\Windows\Win32Frame.h" />
<ClInclude Include="source\Windows\WinFrame.h" />
<ClInclude Include="source\YamlHelper.h" /> <ClInclude Include="source\YamlHelper.h" />
<ClInclude Include="source\z80emu.h" /> <ClInclude Include="source\z80emu.h" />
<ClInclude Include="source\Z80VICE\daa.h" /> <ClInclude Include="source\Z80VICE\daa.h" />

View File

@ -501,9 +501,6 @@
<ClInclude Include="source\Windows\DirectInput.h"> <ClInclude Include="source\Windows\DirectInput.h">
<Filter>Source Files\Windows</Filter> <Filter>Source Files\Windows</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="source\Windows\WinFrame.h">
<Filter>Source Files\Windows</Filter>
</ClInclude>
<ClInclude Include="source\Core.h"> <ClInclude Include="source\Core.h">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClInclude> </ClInclude>

View File

@ -45,7 +45,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "../NTSC.h" #include "../NTSC.h"
#include "../SoundCore.h" // SoundCore_SetFade() #include "../SoundCore.h" // SoundCore_SetFade()
#include "../Windows/Win32Frame.h" #include "../Windows/Win32Frame.h"
#include "../Windows/WinFrame.h"
// #define DEBUG_COMMAND_HELP 1 // #define DEBUG_COMMAND_HELP 1
// #define DEBUG_ASM_HASH 1 // #define DEBUG_ASM_HASH 1
@ -2811,7 +2810,9 @@ bool _CmdConfigFont ( int iFont, LPCSTR pFontName, int iPitchFamily, int nFontHe
_tcsncpy( pFont->_sFontName, pFontName, MAX_FONT_NAME-1 ); _tcsncpy( pFont->_sFontName, pFontName, MAX_FONT_NAME-1 );
pFont->_sFontName[ MAX_FONT_NAME-1 ] = 0; pFont->_sFontName[ MAX_FONT_NAME-1 ] = 0;
HDC hDC = FrameGetDC(); Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
HDC hDC = win32Frame.FrameGetDC();
TEXTMETRIC tm; TEXTMETRIC tm;
GetTextMetrics(hDC, &tm); GetTextMetrics(hDC, &tm);
@ -2850,7 +2851,7 @@ bool _CmdConfigFont ( int iFont, LPCSTR pFontName, int iPitchFamily, int nFontHe
nFontWidthMax = 7; nFontWidthMax = 7;
} }
FrameReleaseDC(); win32Frame.FrameReleaseDC();
// DeleteObject( g_hFontDisasm ); // DeleteObject( g_hFontDisasm );
// g_hFontDisasm = hFont; // g_hFontDisasm = hFont;
@ -9659,11 +9660,12 @@ void DebuggerMouseClick( int x, int y )
if (iAltCtrlShift != g_bConfigDisasmClick) if (iAltCtrlShift != g_bConfigDisasmClick)
return; return;
int nFontWidth = g_aFontConfig[ FONT_DISASM_DEFAULT ]._nFontWidthAvg * GetViewportScale(); Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
int nFontHeight = g_aFontConfig[ FONT_DISASM_DEFAULT ]._nLineHeight * GetViewportScale();
int nFontWidth = g_aFontConfig[ FONT_DISASM_DEFAULT ]._nFontWidthAvg * win32Frame.GetViewportScale();
int nFontHeight = g_aFontConfig[ FONT_DISASM_DEFAULT ]._nLineHeight * win32Frame.GetViewportScale();
// do picking // do picking
Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
const int nOffsetX = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetX() : win32Frame.Get3DBorderWidth(); const int nOffsetX = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetX() : win32Frame.Get3DBorderWidth();
const int nOffsetY = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetY() : win32Frame.Get3DBorderHeight(); const int nOffsetY = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetY() : win32Frame.Get3DBorderHeight();

View File

@ -35,7 +35,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "../Core.h" #include "../Core.h"
#include "../Interface.h" #include "../Interface.h"
#include "../CPU.h" #include "../CPU.h"
#include "../Windows/WinFrame.h"
#include "../Windows/Win32Frame.h" #include "../Windows/Win32Frame.h"
#include "../LanguageCard.h" #include "../LanguageCard.h"
#include "../Memory.h" #include "../Memory.h"
@ -552,7 +551,9 @@ HDC GetDebuggerMemDC(void)
{ {
if (!g_hDebuggerMemDC) if (!g_hDebuggerMemDC)
{ {
HDC hFrameDC = FrameGetDC(); Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
HDC hFrameDC = win32Frame.FrameGetDC();
g_hDebuggerMemDC = CreateCompatibleDC(hFrameDC); g_hDebuggerMemDC = CreateCompatibleDC(hFrameDC);
// CREATE A BITMAPINFO STRUCTURE FOR THE FRAME BUFFER // CREATE A BITMAPINFO STRUCTURE FOR THE FRAME BUFFER
@ -591,7 +592,8 @@ void ReleaseDebuggerMemDC(void)
DeleteDC(g_hDebuggerMemDC); DeleteDC(g_hDebuggerMemDC);
g_hDebuggerMemDC = NULL; g_hDebuggerMemDC = NULL;
FrameReleaseDC(); Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
win32Frame.FrameReleaseDC();
delete [] g_pDebuggerMemFramebufferinfo; delete [] g_pDebuggerMemFramebufferinfo;
g_pDebuggerMemFramebufferinfo = NULL; g_pDebuggerMemFramebufferinfo = NULL;
@ -604,7 +606,8 @@ HDC GetConsoleFontDC(void)
{ {
if (!g_hConsoleFontDC) if (!g_hConsoleFontDC)
{ {
HDC hFrameDC = FrameGetDC(); Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
HDC hFrameDC = win32Frame.FrameGetDC();
g_hConsoleFontDC = CreateCompatibleDC(hFrameDC); g_hConsoleFontDC = CreateCompatibleDC(hFrameDC);
// CREATE A BITMAPINFO STRUCTURE FOR THE FRAME BUFFER // CREATE A BITMAPINFO STRUCTURE FOR THE FRAME BUFFER
@ -632,7 +635,7 @@ HDC GetConsoleFontDC(void)
// DRAW THE SOURCE IMAGE INTO THE SOURCE BIT BUFFER // DRAW THE SOURCE IMAGE INTO THE SOURCE BIT BUFFER
HDC tmpDC = CreateCompatibleDC(hFrameDC); HDC tmpDC = CreateCompatibleDC(hFrameDC);
// Pre-scaled bitmap // Pre-scaled bitmap
HBITMAP tmpFont = LoadBitmap(GetFrame().g_hInstance, TEXT("IDB_DEBUG_FONT_7x8")); // Bitmap must be 112x128 as defined above HBITMAP tmpFont = LoadBitmap(win32Frame.g_hInstance, TEXT("IDB_DEBUG_FONT_7x8")); // Bitmap must be 112x128 as defined above
SelectObject(tmpDC, tmpFont); SelectObject(tmpDC, tmpFont);
BitBlt(g_hConsoleFontDC, 0, 0, CONSOLE_FONT_BITMAP_WIDTH, CONSOLE_FONT_BITMAP_HEIGHT, BitBlt(g_hConsoleFontDC, 0, 0, CONSOLE_FONT_BITMAP_WIDTH, CONSOLE_FONT_BITMAP_HEIGHT,
tmpDC, 0, 0, tmpDC, 0, 0,
@ -669,18 +672,18 @@ void ReleaseConsoleFontDC(void)
void StretchBltMemToFrameDC(void) void StretchBltMemToFrameDC(void)
{ {
int nViewportCX, nViewportCY;
GetViewportCXCY(nViewportCX, nViewportCY);
Win32Frame& win32Frame = Win32Frame::GetWin32Frame(); Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
int nViewportCX, nViewportCY;
win32Frame.GetViewportCXCY(nViewportCX, nViewportCY);
int xdest = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetX() : 0; int xdest = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetX() : 0;
int ydest = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetY() : 0; int ydest = win32Frame.IsFullScreen() ? win32Frame.GetFullScreenOffsetY() : 0;
int wdest = nViewportCX; int wdest = nViewportCX;
int hdest = nViewportCY; int hdest = nViewportCY;
BOOL bRes = StretchBlt( BOOL bRes = StretchBlt(
FrameGetDC(), // HDC hdcDest, win32Frame.FrameGetDC(), // HDC hdcDest,
xdest, ydest, // int nXOriginDest, int nYOriginDest, xdest, ydest, // int nXOriginDest, int nYOriginDest,
wdest, hdest, // int nWidthDest, int nHeightDest, wdest, hdest, // int nWidthDest, int nHeightDest,
GetDebuggerMemDC(), // HDC hdcSrc, GetDebuggerMemDC(), // HDC hdcSrc,

View File

@ -47,7 +47,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "Speech.h" #include "Speech.h"
#endif #endif
#include "Windows/Win32Frame.h" #include "Windows/Win32Frame.h"
#include "Windows/WinFrame.h"
#include "RGBMonitor.h" #include "RGBMonitor.h"
#include "NTSC.h" #include "NTSC.h"
@ -143,7 +142,7 @@ static void ContinueExecution(void)
bool bScrollLock_FullSpeed = false; bool bScrollLock_FullSpeed = false;
if (GetPropertySheet().GetScrollLockToggle()) if (GetPropertySheet().GetScrollLockToggle())
{ {
bScrollLock_FullSpeed = g_bScrollLock_FullSpeed; bScrollLock_FullSpeed = Win32Frame::GetWin32Frame().g_bScrollLock_FullSpeed;
} }
else else
{ {

View File

@ -1,7 +1,6 @@
#include "StdAfx.h" #include "StdAfx.h"
#include "Windows/Win32Frame.h" #include "Windows/Win32Frame.h"
#include "Windows/WinFrame.h"
#include "Interface.h" #include "Interface.h"
#include "Core.h" #include "Core.h"
#include "CPU.h" #include "CPU.h"
@ -37,6 +36,39 @@ Win32Frame::Win32Frame()
g_win_fullscreen_scale = 1; g_win_fullscreen_scale = 1;
g_win_fullscreen_offsetx = 0; g_win_fullscreen_offsetx = 0;
g_win_fullscreen_offsety = 0; g_win_fullscreen_offsety = 0;
btnfacebrush = (HBRUSH)0;
btnfacepen = (HPEN)0;
btnhighlightpen = (HPEN)0;
btnshadowpen = (HPEN)0;
buttonactive = -1;
buttondown = -1;
buttonover = -1;
buttonx = BUTTONX;
buttony = BUTTONY;
g_hFrameDC = (HDC)0;
framerect = { 0,0,0,0 };
helpquit = 0;
smallfont = (HFONT)0;
tooltipwindow = (HWND)0;
viewportx = VIEWPORTX; // Default to Normal (non-FullScreen) mode
viewporty = VIEWPORTY; // Default to Normal (non-FullScreen) mode
g_bScrollLock_FullSpeed = false;
g_nTrackDrive1 = -1;
g_nTrackDrive2 = -1;
g_nSectorDrive1 = -1;
g_nSectorDrive2 = -1;
g_eStatusDrive1 = DISK_STATUS_OFF;
g_eStatusDrive2 = DISK_STATUS_OFF;
g_nViewportCX = GetVideo().GetFrameBufferBorderlessWidth() * kDEFAULT_VIEWPORT_SCALE;
g_nViewportCY = GetVideo().GetFrameBufferBorderlessHeight() * kDEFAULT_VIEWPORT_SCALE;
g_nViewportScale = kDEFAULT_VIEWPORT_SCALE; // saved REGSAVE
g_nMaxViewportScale = kDEFAULT_VIEWPORT_SCALE; // Max scale in Windowed mode with borders, buttons etc (full-screen may be +1)
} }
void Win32Frame::videoCreateDIBSection(Video & video) void Win32Frame::videoCreateDIBSection(Video & video)

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "FrameBase.h" #include "FrameBase.h"
#include "DiskImage.h"
class Video; class Video;
@ -10,12 +11,24 @@ class Video;
#define FULLSCREEN_SCALE_TYPE int #define FULLSCREEN_SCALE_TYPE int
#endif #endif
// 3D border around the 560x384 Apple II display
#define VIEWPORTX 5
#define VIEWPORTY 5
#define BUTTONX (g_nViewportCX + VIEWPORTX*2)
#define BUTTONY 0
#define BUTTONCX 45
#define BUTTONCY 45
#define BUTTONS 8
class Win32Frame : public FrameBase class Win32Frame : public FrameBase
{ {
public: public:
Win32Frame(); Win32Frame();
static Win32Frame& GetWin32Frame(); static Win32Frame& GetWin32Frame();
static LRESULT CALLBACK FrameWndProc(HWND window, UINT message, WPARAM wparam, LPARAM lparam);
virtual void FrameDrawDiskLEDS(); virtual void FrameDrawDiskLEDS();
virtual void FrameDrawDiskStatus(); virtual void FrameDrawDiskStatus();
@ -44,11 +57,19 @@ public:
void ChooseMonochromeColor(void); void ChooseMonochromeColor(void);
UINT Get3DBorderWidth(void); UINT Get3DBorderWidth(void);
UINT Get3DBorderHeight(void); UINT Get3DBorderHeight(void);
int GetViewportScale(void);
void GetViewportCXCY(int& nViewportCX, int& nViewportCY);
void ApplyVideoModeChange(void); void ApplyVideoModeChange(void);
LRESULT WndProc(HWND window, UINT message, WPARAM wparam, LPARAM lparam);
HDC FrameGetDC();
void FrameReleaseDC();
bool g_bScrollLock_FullSpeed;
private: private:
static BOOL CALLBACK DDEnumProc(LPGUID lpGUID, LPCTSTR lpszDesc, LPCTSTR lpszDrvName, LPVOID lpContext); static BOOL CALLBACK DDEnumProc(LPGUID lpGUID, LPCTSTR lpszDesc, LPCTSTR lpszDrvName, LPVOID lpContext);
LRESULT WndProc(HWND window, UINT message, WPARAM wparam, LPARAM lparam);
void videoCreateDIBSection(Video& video); void videoCreateDIBSection(Video& video);
void VideoDrawLogoBitmap(HDC hDstDC, int xoff, int yoff, int srcw, int srch, int scale); void VideoDrawLogoBitmap(HDC hDstDC, int xoff, int yoff, int srcw, int srch, int scale);
@ -64,6 +85,8 @@ private:
void DrawCrosshairs(int x, int y); void DrawCrosshairs(int x, int y);
void DrawFrameWindow(bool bPaintingWindow = false); void DrawFrameWindow(bool bPaintingWindow = false);
void DrawStatusArea(HDC passdc, int drawflags); void DrawStatusArea(HDC passdc, int drawflags);
void Draw3dRect(HDC dc, int x1, int y1, int x2, int y2, BOOL out);
void DrawBitmapRect(HDC dc, int x, int y, LPRECT rect, HBITMAP bitmap);
void ProcessButtonClick(int button, bool bFromButtonUI = false); void ProcessButtonClick(int button, bool bFromButtonUI = false);
bool ConfirmReboot(bool bFromButtonUI); bool ConfirmReboot(bool bFromButtonUI);
void ProcessDiskPopupMenu(HWND hwnd, POINT pt, const int iDrive); void ProcessDiskPopupMenu(HWND hwnd, POINT pt, const int iDrive);
@ -79,8 +102,10 @@ private:
void DrawCrosshairsMouse(); void DrawCrosshairsMouse();
void FrameSetCursorPosByMousePos(int x, int y, int dx, int dy, bool bLeavingAppleScreen); void FrameSetCursorPosByMousePos(int x, int y, int dx, int dy, bool bLeavingAppleScreen);
void CreateGdiObjects(void); void CreateGdiObjects(void);
void DeleteGdiObjects(void);
void FrameShowCursor(BOOL bShow); void FrameShowCursor(BOOL bShow);
void FullScreenRevealCursor(void); void FullScreenRevealCursor(void);
void GetWidthHeight(int& nWidth, int& nHeight);
bool g_bAltEnter_ToggleFullScreen; // Default for ALT+ENTER is to toggle between windowed and full-screen modes bool g_bAltEnter_ToggleFullScreen; // Default for ALT+ENTER is to toggle between windowed and full-screen modes
bool g_bIsFullScreen; bool g_bIsFullScreen;
@ -108,4 +133,56 @@ private:
GUID draw_device_guid[MAX_DRAW_DEVICES]; GUID draw_device_guid[MAX_DRAW_DEVICES];
int num_draw_devices; int num_draw_devices;
LPDIRECTDRAW g_lpDD; LPDIRECTDRAW g_lpDD;
HBITMAP buttonbitmap[BUTTONS];
HBRUSH btnfacebrush;
HPEN btnfacepen;
HPEN btnhighlightpen;
HPEN btnshadowpen;
int buttonactive;
int buttondown;
int buttonover;
int buttonx;
int buttony;
HDC g_hFrameDC;
RECT framerect;
BOOL helpquit;
HFONT smallfont;
HWND tooltipwindow;
int viewportx; // Default to Normal (non-FullScreen) mode
int viewporty; // Default to Normal (non-FullScreen) mode
RECT g_main_window_saved_rect;
int g_main_window_saved_style;
int g_main_window_saved_exstyle;
HBITMAP g_hCapsLockBitmap[2];
HBITMAP g_hHardDiskBitmap[2];
//Pravets8 only
HBITMAP g_hCapsBitmapP8[2];
HBITMAP g_hCapsBitmapLat[2];
//HBITMAP charsetbitmap [4]; //The idea was to add a charset indicator on the front panel, but it was given up. All charsetbitmap occurences must be REMOVED!
//===========================
HBITMAP g_hDiskWindowedLED[NUM_DISK_STATUS];
int g_nTrackDrive1;
int g_nTrackDrive2;
int g_nSectorDrive1;
int g_nSectorDrive2;
TCHAR g_sTrackDrive1[8] = TEXT("??");
TCHAR g_sTrackDrive2[8] = TEXT("??");
TCHAR g_sSectorDrive1[8] = TEXT("??");
TCHAR g_sSectorDrive2[8] = TEXT("??");
Disk_Status_e g_eStatusDrive1;
Disk_Status_e g_eStatusDrive2;
static const int kDEFAULT_VIEWPORT_SCALE = 2;
int g_nViewportCX;
int g_nViewportCY;
int g_nViewportScale; // saved REGSAVE
int g_nMaxViewportScale; // Max scale in Windowed mode with borders, buttons etc (full-screen may be +1)
}; };

View File

@ -28,7 +28,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "StdAfx.h" #include "StdAfx.h"
#include "Windows/WinFrame.h"
#include "Windows/Win32Frame.h" #include "Windows/Win32Frame.h"
#include "Windows/AppleWin.h" #include "Windows/AppleWin.h"
#include "Interface.h" #include "Interface.h"
@ -56,45 +55,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//#define ENABLE_MENU 0 //#define ENABLE_MENU 0
#define DEBUG_KEY_MESSAGES 0 #define DEBUG_KEY_MESSAGES 0
// 3D border around the 560x384 Apple II display static bool FileExists(std::string strFilename);
#define VIEWPORTX 5
#define VIEWPORTY 5
static const int kDEFAULT_VIEWPORT_SCALE = 2;
int g_nViewportCX = GetVideo().GetFrameBufferBorderlessWidth() * kDEFAULT_VIEWPORT_SCALE;
int g_nViewportCY = GetVideo().GetFrameBufferBorderlessHeight() * kDEFAULT_VIEWPORT_SCALE;
static int g_nViewportScale = kDEFAULT_VIEWPORT_SCALE; // saved REGSAVE
static int g_nMaxViewportScale = kDEFAULT_VIEWPORT_SCALE; // Max scale in Windowed mode with borders, buttons etc (full-screen may be +1)
#define BUTTONX (g_nViewportCX + VIEWPORTX*2)
#define BUTTONY 0
#define BUTTONCX 45
#define BUTTONCY 45
#define BUTTONS 8
static HBITMAP g_hCapsLockBitmap[2];
static HBITMAP g_hHardDiskBitmap[2];
//Pravets8 only
static HBITMAP g_hCapsBitmapP8[2];
static HBITMAP g_hCapsBitmapLat[2];
//static HBITMAP charsetbitmap [4]; //The idea was to add a charset indicator on the front panel, but it was given up. All charsetbitmap occurences must be REMOVED!
//===========================
static HBITMAP g_hDiskWindowedLED[ NUM_DISK_STATUS ];
static int g_nTrackDrive1 = -1;
static int g_nTrackDrive2 = -1;
static int g_nSectorDrive1 = -1;
static int g_nSectorDrive2 = -1;
static TCHAR g_sTrackDrive1 [8] = TEXT("??");
static TCHAR g_sTrackDrive2 [8] = TEXT("??");
static TCHAR g_sSectorDrive1[8] = TEXT("??");
static TCHAR g_sSectorDrive2[8] = TEXT("??");
Disk_Status_e g_eStatusDrive1 = DISK_STATUS_OFF;
Disk_Status_e g_eStatusDrive2 = DISK_STATUS_OFF;
// Must keep in sync with Disk_Status_e g_aDiskFullScreenColors // Must keep in sync with Disk_Status_e g_aDiskFullScreenColors
static DWORD g_aDiskFullScreenColorsLED[ NUM_DISK_STATUS ] = static const DWORD g_aDiskFullScreenColorsLED[ NUM_DISK_STATUS ] =
{ {
RGB( 0, 0, 0), // DISK_STATUS_OFF BLACK RGB( 0, 0, 0), // DISK_STATUS_OFF BLACK
RGB( 0,255, 0), // DISK_STATUS_READ GREEN RGB( 0,255, 0), // DISK_STATUS_READ GREEN
@ -103,36 +67,6 @@ static DWORD g_aDiskFullScreenColorsLED[ NUM_DISK_STATUS ] =
// RGB( 0, 0,255) // DISK_STATUS_PROT -blue- // RGB( 0, 0,255) // DISK_STATUS_PROT -blue-
}; };
static HBITMAP buttonbitmap[BUTTONS];
static HBRUSH btnfacebrush = (HBRUSH)0;
static HPEN btnfacepen = (HPEN)0;
static HPEN btnhighlightpen = (HPEN)0;
static HPEN btnshadowpen = (HPEN)0;
static int buttonactive = -1;
static int buttondown = -1;
static int buttonover = -1;
static int buttonx = BUTTONX;
static int buttony = BUTTONY;
static HDC g_hFrameDC = (HDC)0;
static RECT framerect = {0,0,0,0};
static BOOL helpquit = 0;
static HFONT smallfont = (HFONT)0;
static HWND tooltipwindow = (HWND)0;
static int viewportx = VIEWPORTX; // Default to Normal (non-FullScreen) mode
static int viewporty = VIEWPORTY; // Default to Normal (non-FullScreen) mode
static bool FileExists(std::string strFilename);
bool g_bScrollLock_FullSpeed = false;
static RECT g_main_window_saved_rect;
static int g_main_window_saved_style;
static int g_main_window_saved_exstyle;
// ==========================================================================
void Win32Frame::SetAltEnterToggleFullScreen(bool mode) void Win32Frame::SetAltEnterToggleFullScreen(bool mode)
{ {
g_bAltEnter_ToggleFullScreen = mode; g_bAltEnter_ToggleFullScreen = mode;
@ -300,7 +234,7 @@ void Win32Frame::CreateGdiObjects(void)
} }
//=========================================================================== //===========================================================================
static void DeleteGdiObjects(void) void Win32Frame::DeleteGdiObjects(void)
{ {
for (int loop = 0; loop < BUTTONS; loop++) for (int loop = 0; loop < BUTTONS; loop++)
_ASSERT(DeleteObject(buttonbitmap[loop])); _ASSERT(DeleteObject(buttonbitmap[loop]));
@ -326,7 +260,7 @@ static void DeleteGdiObjects(void)
// Draws an 3D box around the main apple screen // Draws an 3D box around the main apple screen
//=========================================================================== //===========================================================================
static void Draw3dRect (HDC dc, int x1, int y1, int x2, int y2, BOOL out) void Win32Frame::Draw3dRect(HDC dc, int x1, int y1, int x2, int y2, BOOL out)
{ {
SelectObject(dc,GetStockObject(NULL_BRUSH)); SelectObject(dc,GetStockObject(NULL_BRUSH));
SelectObject(dc,out ? btnshadowpen : btnhighlightpen); SelectObject(dc,out ? btnshadowpen : btnhighlightpen);
@ -342,7 +276,7 @@ static void Draw3dRect (HDC dc, int x1, int y1, int x2, int y2, BOOL out)
} }
//=========================================================================== //===========================================================================
static void DrawBitmapRect (HDC dc, int x, int y, LPRECT rect, HBITMAP bitmap) { void Win32Frame::DrawBitmapRect (HDC dc, int x, int y, LPRECT rect, HBITMAP bitmap) {
HDC memdc = CreateCompatibleDC(dc); HDC memdc = CreateCompatibleDC(dc);
SelectObject(memdc,bitmap); SelectObject(memdc,bitmap);
BitBlt(dc,x,y, BitBlt(dc,x,y,
@ -953,7 +887,7 @@ void Win32Frame::EraseButton (int number) {
//=========================================================================== //===========================================================================
LRESULT CALLBACK FrameWndProc( LRESULT CALLBACK Win32Frame::FrameWndProc(
HWND window, HWND window,
UINT message, UINT message,
WPARAM wparam, WPARAM wparam,
@ -2289,7 +2223,7 @@ void Win32Frame::SetUsingCursor (BOOL bNewValue)
} }
} }
int GetViewportScale(void) int Win32Frame::GetViewportScale(void)
{ {
return g_nViewportScale; return g_nViewportScale;
} }
@ -2329,7 +2263,7 @@ void Win32Frame::SetupTooltipControls(void)
// SM_CXPADDEDBORDER is not supported on 2000 & XP, but GetSystemMetrics() returns 0 for unknown values, so this use of SM_CXPADDEDBORDER works on 2000 & XP too: // SM_CXPADDEDBORDER is not supported on 2000 & XP, but GetSystemMetrics() returns 0 for unknown values, so this use of SM_CXPADDEDBORDER works on 2000 & XP too:
// http://msdn.microsoft.com/en-nz/library/windows/desktop/ms724385(v=vs.85).aspx // http://msdn.microsoft.com/en-nz/library/windows/desktop/ms724385(v=vs.85).aspx
// NB. GetSystemMetrics(SM_CXPADDEDBORDER) returns 0 for Win7, when built with VS2008 (see GH#571) // NB. GetSystemMetrics(SM_CXPADDEDBORDER) returns 0 for Win7, when built with VS2008 (see GH#571)
static void GetWidthHeight(int& nWidth, int& nHeight) void Win32Frame::GetWidthHeight(int& nWidth, int& nHeight)
{ {
nWidth = g_nViewportCX + VIEWPORTX*2 nWidth = g_nViewportCX + VIEWPORTX*2
+ BUTTONCX + BUTTONCX
@ -2502,19 +2436,19 @@ void Win32Frame::FrameCreateWindow(void)
} }
//=========================================================================== //===========================================================================
HDC FrameGetDC () { HDC Win32Frame::FrameGetDC () {
if (!g_hFrameDC) { if (!g_hFrameDC) {
g_hFrameDC = GetDC(GetFrame().g_hFrameWindow); g_hFrameDC = GetDC(g_hFrameWindow);
SetViewportOrgEx(g_hFrameDC,viewportx,viewporty,NULL); SetViewportOrgEx(g_hFrameDC,viewportx,viewporty,NULL);
} }
return g_hFrameDC; return g_hFrameDC;
} }
//=========================================================================== //===========================================================================
void FrameReleaseDC () { void Win32Frame::FrameReleaseDC () {
if (g_hFrameDC) { if (g_hFrameDC) {
SetViewportOrgEx(g_hFrameDC,0,0,NULL); SetViewportOrgEx(g_hFrameDC,0,0,NULL);
ReleaseDC(GetFrame().g_hFrameWindow,g_hFrameDC); ReleaseDC(g_hFrameWindow,g_hFrameDC);
g_hFrameDC = (HDC)0; g_hFrameDC = (HDC)0;
} }
} }
@ -2731,7 +2665,7 @@ void Win32Frame::UpdateMouseInAppleViewport(int iOutOfBoundsX, int iOutOfBoundsY
} }
} }
void GetViewportCXCY(int& nViewportCX, int& nViewportCY) void Win32Frame::GetViewportCXCY(int& nViewportCX, int& nViewportCY)
{ {
nViewportCX = g_nViewportCX; nViewportCX = g_nViewportCX;
nViewportCY = g_nViewportCY; nViewportCY = g_nViewportCY;

View File

@ -1,22 +0,0 @@
#pragma once
// Win32
extern int g_nViewportCX;
extern int g_nViewportCY;
// Emulator
extern bool g_bScrollLock_FullSpeed;
// Prototypes
HDC FrameGetDC ();
void FrameReleaseDC ();
int GetViewportScale(void);
void GetViewportCXCY(int& nViewportCX, int& nViewportCY);
LRESULT CALLBACK FrameWndProc (
HWND window,
UINT message,
WPARAM wparam,
LPARAM lparam );