Move last remaining globals from WinFrame.cpp to class Win32Frame. (PR #913)
This commit is contained in:
parent
440831179f
commit
61db149eab
|
@ -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"
|
||||||
|
|
|
@ -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" />
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
};
|
};
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 );
|
|
Loading…
Reference in New Issue