Update of /cvsroot/yabause/yabause/src/windows
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27958
Modified Files:
hexedit.c yabause.vcproj
Log Message:
-Scroll bar in memory editor now works properly when you move the thumb control(bug #2067438)
Index: yabause.vcproj
===================================================================
RCS file: /cvsroot/yabause/yabause/src/windows/yabause.vcproj,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- yabause.vcproj 17 Aug 2008 02:06:58 -0000 1.17
+++ yabause.vcproj 24 Aug 2008 04:34:09 -0000 1.18
@@ -414,153 +414,6 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
- <File
- RelativePath="..\bios.c"
- >
- </File>
- <File
- RelativePath="..\cdbase.c"
- >
- </File>
- <File
- RelativePath="..\cheat.c"
- >
- </File>
- <File
- RelativePath="..\coffelf.c"
- >
- </File>
- <File
- RelativePath="..\cs0.c"
- >
- </File>
- <File
- RelativePath="..\cs1.c"
- >
- </File>
- <File
- RelativePath="..\cs2.c"
- >
- </File>
- <File
- RelativePath="..\debug.c"
- >
- </File>
- <File
- RelativePath="..\error.c"
- >
- </File>
- <File
- RelativePath="..\m68kc68k.c"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug with Threads|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug no 68k|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\m68kcore.c"
- >
- </File>
- <File
- RelativePath="..\m68kd.c"
- >
- </File>
- <File
- RelativePath="..\memory.c"
- >
- </File>
- <File
- RelativePath="..\netlink.c"
- >
- </File>
- <File
- RelativePath="..\peripheral.c"
- >
- </File>
- <File
- RelativePath="..\profile.c"
- >
- </File>
- <File
- RelativePath="..\scsp.c"
- >
- </File>
- <File
- RelativePath="..\scu.c"
- >
- </File>
- <File
- RelativePath="..\sh2core.c"
- >
- </File>
- <File
- RelativePath="..\sh2d.c"
- >
- </File>
- <File
- RelativePath="..\sh2idle.c"
- >
- </File>
- <File
- RelativePath="..\sh2int.c"
- >
- </File>
- <File
- RelativePath="..\smpc.c"
- >
- </File>
- <File
- RelativePath="..\vdp1.c"
- >
- </File>
- <File
- RelativePath="..\vdp2.c"
- >
- </File>
- <File
- RelativePath="..\vdp2debug.c"
- >
- </File>
- <File
- RelativePath="..\vidogl.c"
- >
- </File>
- <File
- RelativePath="..\vidshared.c"
- >
- </File>
- <File
- RelativePath="..\vidsoft.c"
- >
- </File>
- <File
- RelativePath="..\yabause.c"
- >
- </File>
- <File
- RelativePath="..\ygl.c"
- >
- </File>
<Filter
Name="windows specific"
>
@@ -650,18 +503,47 @@
</Filter>
</Filter>
<Filter
- Name="68k core"
+ Name="emulation core"
>
<File
- RelativePath="..\c68k\c68k.c"
+ RelativePath="..\bios.c"
+ >
+ </File>
+ <File
+ RelativePath="..\cdbase.c"
+ >
+ </File>
+ <File
+ RelativePath="..\cheat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\coffelf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\cs0.c"
+ >
+ </File>
+ <File
+ RelativePath="..\cs1.c"
+ >
+ </File>
+ <File
+ RelativePath="..\cs2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\debug.c"
+ >
+ </File>
+ <File
+ RelativePath="..\error.c"
+ >
+ </File>
+ <File
+ RelativePath="..\m68kc68k.c"
>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
<FileConfiguration
Name="Debug with Threads|Win32"
ExcludedFromBuild="true"
@@ -680,91 +562,199 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\c68k\c68k_ini.inc"
+ RelativePath="..\m68kcore.c"
>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Building C68K inc files"
- CommandLine="cd $(InputDir) && "$(ProjectDir)\Release\gen68k.exe""
- AdditionalDependencies="$(ProjectDir)\Release\gen68k.exe"
- Outputs="c68k_ini.inc; c68k_op0.inc; c68k_op1.inc; c68k_op2.inc; c68k_op3.inc; c68k_op4.inc; c68k_op5.inc; c68k_op6.inc; c68k_op7.inc; c68k_op8.inc; c68k_op9.inc; c68k_opA.inc; c68k_opB.inc; c68k_opC.inc; c68k_opD.inc; c68k_opE.inc; c68k_opF.inc"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Building C68K inc files"
- CommandLine="cd $(InputDir) && "$(ProjectDir)\Release\gen68k.exe""
- AdditionalDependencies=""$(ProjectDir)\Release\gen68k.exe""
- Outputs="c68k_ini.inc; c68k_op0.inc; c68k_op1.inc; c68k_op2.inc; c68k_op3.inc; c68k_op4.inc; c68k_op5.inc; c68k_op6.inc; c68k_op7.inc; c68k_op8.inc; c68k_op9.inc; c68k_opA.inc; c68k_opB.inc; c68k_opC.inc; c68k_opD.inc; c68k_opE.inc; c68k_opF.inc"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug with Threads|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug no 68k|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description=""
- CommandLine=""
- AdditionalDependencies=""
- />
- </FileConfiguration>
</File>
<File
- RelativePath="..\c68k\c68kexec.c"
+ RelativePath="..\m68kd.c"
>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Building c68kexec"
- CommandLine="cl /Od /Ob2 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32_IE=0x400" /D "_WIN32_WINNT=0x400" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "HAVE_C99_VARIADIC_MACROS" /D "HAVE_LIBGLUT" /D "HAVE_LIBGL" /D "NO_CLI" /D "USEM68KCORE" /D "VERSION=\"0.9.6\"" /D "C68K_NO_JUMP_TABLE" /FD /MD /fp:fast /Fo"$(IntDir)\\" /Fd"$(IntDir)\vc80.pdb" /W0 /nologo /c /Wp64 /TC /errorReport:prompt $(InputDir)$(InputFileName)"
- AdditionalDependencies="c68k_ini.inc c68k_op0.inc c68k_op1.inc c68k_op2.inc c68k_op3.inc c68k_op4.inc c68k_op5.inc c68k_op6.inc c68k_op7.inc c68k_op8.inc c68k_op9.inc c68k_opA.inc c68k_opB.inc c68k_opC.inc c68k_opD.inc c68k_opE.inc c68k_opF.inc"
- Outputs="$(TargetDir)$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
+ </File>
+ <File
+ RelativePath="..\memory.c"
+ >
+ </File>
+ <File
+ RelativePath="..\netlink.c"
+ >
+ </File>
+ <File
+ RelativePath="..\peripheral.c"
+ >
+ </File>
+ <File
+ RelativePath="..\profile.c"
+ >
+ </File>
+ <File
+ RelativePath="..\scsp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\scu.c"
+ >
+ </File>
+ <File
+ RelativePath="..\sh2core.c"
+ >
+ </File>
+ <File
+ RelativePath="..\sh2d.c"
+ >
+ </File>
+ <File
+ RelativePath="..\sh2idle.c"
+ >
+ </File>
+ <File
+ RelativePath="..\sh2int.c"
+ >
+ </File>
+ <File
+ RelativePath="..\smpc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\vdp1.c"
+ >
+ </File>
+ <File
+ RelativePath="..\vdp2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\vdp2debug.c"
+ >
+ </File>
+ <File
+ RelativePath="..\vidogl.c"
+ >
+ </File>
+ <File
+ RelativePath="..\vidshared.c"
+ >
+ </File>
+ <File
+ RelativePath="..\vidsoft.c"
+ >
+ </File>
+ <File
+ RelativePath="..\yabause.c"
+ >
+ </File>
+ <File
+ RelativePath="..\ygl.c"
+ >
+ </File>
+ <Filter
+ Name="68k core"
+ >
+ <File
+ RelativePath="..\c68k\c68k.c"
>
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="cl /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_WIN32_IE=0x400" /D "_WIN32_WINNT=0x400" /D "HAVE_C99_VARIADIC_MACROS" /D "HAVE_LIBGLUT" /D "HAVE_LIBGL" /D "NO_CLI" /D "USEM68KCORE" /D "VERSION=\"0.9.6\"" /D "C68K_NO_JUMP_TABLE" /Gm /EHsc /RTC1 /MDd /Fo"$(IntDir)\\" /Fd"$(IntDir)\vc80.pdb" /W0 /nologo /c /Wp64 /ZI /TC /errorReport:prompt $(InputDir)$(InputFileName)
"
- AdditionalDependencies="c68k_ini.inc c68k_op0.inc c68k_op1.inc c68k_op2.inc c68k_op3.inc c68k_op4.inc c68k_op5.inc c68k_op6.inc c68k_op7.inc c68k_op8.inc c68k_op9.inc c68k_opA.inc c68k_opB.inc c68k_opC.inc c68k_opD.inc c68k_opE.inc c68k_opF.inc"
- Outputs="$(TargetDir)$(InputName).obj"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug with Threads|Win32"
- ExcludedFromBuild="true"
+ <FileConfiguration
+ Name="Debug with Threads|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug no 68k|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\c68k\c68k_ini.inc"
>
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug no 68k|Win32"
- ExcludedFromBuild="true"
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Building C68K inc files"
+ CommandLine="cd $(InputDir) && "$(ProjectDir)\Release\gen68k.exe"
"
+ AdditionalDependencies="$(ProjectDir)\Release\gen68k.exe"
+ Outputs="c68k_ini.inc; c68k_op0.inc; c68k_op1.inc; c68k_op2.inc; c68k_op3.inc; c68k_op4.inc; c68k_op5.inc; c68k_op6.inc; c68k_op7.inc; c68k_op8.inc; c68k_op9.inc; c68k_opA.inc; c68k_opB.inc; c68k_opC.inc; c68k_opD.inc; c68k_opE.inc; c68k_opF.inc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Building C68K inc files"
+ CommandLine="cd $(InputDir) && "$(ProjectDir)\Release\gen68k.exe"
"
+ AdditionalDependencies=""$(ProjectDir)\Release\gen68k.exe""
+ Outputs="c68k_ini.inc; c68k_op0.inc; c68k_op1.inc; c68k_op2.inc; c68k_op3.inc; c68k_op4.inc; c68k_op5.inc; c68k_op6.inc; c68k_op7.inc; c68k_op8.inc; c68k_op9.inc; c68k_opA.inc; c68k_opB.inc; c68k_opC.inc; c68k_opD.inc; c68k_opE.inc; c68k_opF.inc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug with Threads|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug no 68k|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description=""
+ CommandLine=""
+ AdditionalDependencies=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\c68k\c68kexec.c"
>
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Building c68kexec"
+ CommandLine="cl /Od /Ob2 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32_IE=0x400" /D "_WIN32_WINNT=0x400" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "HAVE_C99_VARIADIC_MACROS" /D "HAVE_LIBGLUT" /D "HAVE_LIBGL" /D "NO_CLI" /D "USEM68KCORE" /D "VERSION=\"0.9.6\"" /D "C68K_NO_JUMP_TABLE" /FD /MD /fp:fast /Fo"$(IntDir)\\" /Fd"$(IntDir)\vc80.pdb" /W0 /nologo /c /Wp64 /TC /errorReport:prompt $(InputDir)$(InputFileName)
"
+ AdditionalDependencies="c68k_ini.inc c68k_op0.inc c68k_op1.inc c68k_op2.inc c68k_op3.inc c68k_op4.inc c68k_op5.inc c68k_op6.inc c68k_op7.inc c68k_op8.inc c68k_op9.inc c68k_opA.inc c68k_opB.inc c68k_opC.inc c68k_opD.inc c68k_opE.inc c68k_opF.inc"
+ Outputs="$(TargetDir)$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cl /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_WIN32_IE=0x400" /D "_WIN32_WINNT=0x400" /D "HAVE_C99_VARIADIC_MACROS" /D "HAVE_LIBGLUT" /D "HAVE_LIBGL" /D "NO_CLI" /D "USEM68KCORE" /D "VERSION=\"0.9.6\"" /D "C68K_NO_JUMP_TABLE" /Gm /EHsc /RTC1 /MDd /Fo"$(IntDir)\\" /Fd"$(IntDir)\vc80.pdb" /W0 /nologo /c /Wp64 /ZI /TC /errorReport:prompt $(InputDir)$(InputFileName)
"
+ AdditionalDependencies="c68k_ini.inc c68k_op0.inc c68k_op1.inc c68k_op2.inc c68k_op3.inc c68k_op4.inc c68k_op5.inc c68k_op6.inc c68k_op7.inc c68k_op8.inc c68k_op9.inc c68k_opA.inc c68k_opB.inc c68k_opC.inc c68k_opD.inc c68k_opE.inc c68k_opF.inc"
+ Outputs="$(TargetDir)$(InputName).obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug with Threads|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug no 68k|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
</Filter>
</Filter>
<Filter
Index: hexedit.c
===================================================================
RCS file: /cvsroot/yabause/yabause/src/windows/hexedit.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- hexedit.c 17 Aug 2008 19:04:25 -0000 1.10
+++ hexedit.c 24 Aug 2008 04:34:09 -0000 1.11
@@ -40,6 +40,7 @@
int editmode;
addrlist_struct *addrlist;
int numaddr;
+ u32 maxaddr;
int selstart, selend;
} HexEditCtl_struct;
@@ -86,7 +87,7 @@
GetScrollInfo(hwnd, SB_VERT, &cc->scrollinfo);
// Set our newly created structure to the extra area SetCustCtrl(hwnd, ccp);
- SetWindowLong(hwnd, 0, (LONG)cc);
+ SetWindowLongPtr(hwnd, 0, (LONG_PTR)cc);
return TRUE;
}
@@ -316,7 +317,7 @@
//////////////////////////////////////////////////////////////////////////////
-void MoveCursor(HexEditCtl_struct *cc, int offset)
+void MoveCursor(HexEditCtl_struct *cc, int offset, int scrollpos)
{
static int pos;
u32 addr;
@@ -508,6 +509,33 @@
}
}
}
+ else
+ {
+ u32 counter;
+ u32 counter2;
+ SCROLLINFO si;
+
+ si.cbSize = sizeof(SCROLLINFO);
+ si.fMask = SIF_RANGE | SIF_POS;
+ GetScrollInfo(cc->hwnd, SB_VERT, &si);
+
+ // Figure out where to jump to based on percentage
+ counter = (u32)((u64)cc->maxaddr * (u64)scrollpos / (u64)si.nMax);
+
+ for (i = 0, counter2=0; i < cc->numaddr; i++)
+ {
+ if ((counter2+cc->addrlist[i].end-cc->addrlist[i].start) > counter)
+ {
+ cc->addr=cc->addrlist[i].start+counter-counter2;
+ // round address
+ cc->addr -= (cc->addr % cc->maxcurx);
+ break;
+ }
+ counter2 +=cc->addrlist[i].end-cc->addrlist[i].start;
+ }
+
+ InvalidateRect(cc->hwnd, NULL, FALSE);
+ }
}
//////////////////////////////////////////////////////////////////////////////
@@ -589,7 +617,7 @@
{
int oldcury=cc->cury;
cc->cury = cc->maxcury-1;
- MoveCursor(cc, cc->maxcurx);
+ MoveCursor(cc, cc->maxcurx, 0);
cc->cury=oldcury;
HexEditCtl_SetCaretPos(cc);
return 0;
@@ -598,23 +626,25 @@
{
int oldcury=cc->cury;
cc->cury = 0;
- MoveCursor(cc, -cc->maxcurx);
+ MoveCursor(cc, -cc->maxcurx, 0);
cc->cury=oldcury;
HexEditCtl_SetCaretPos(cc);
return 0;
}
case SB_PAGEDOWN:
- MoveCursor(cc, cc->maxcurx*cc->maxcury);
+ MoveCursor(cc, cc->maxcurx*cc->maxcury, 0);
return 0;
case SB_PAGEUP:
- MoveCursor(cc, -(cc->maxcurx*cc->maxcury));
+ MoveCursor(cc, -(cc->maxcurx*cc->maxcury), 0);
return 0;
case SB_THUMBTRACK:
// cc->addr = 0xFFFFFF00 / 64 * HIWORD(wParam);
// InvalidateRect(cc->hwnd, NULL, FALSE);
+ MoveCursor(cc, 0, HIWORD(wParam));
return 0;
case SB_THUMBPOSITION:
SetScrollPos(cc->hwnd, SB_VERT, HIWORD(wParam), TRUE);
+ MoveCursor(cc, 0, HIWORD(wParam));
return 0;
default:
break;
@@ -633,22 +663,22 @@
switch (wParam)
{
case VK_LEFT:
- MoveCursor(cc, -1);
+ MoveCursor(cc, -1, 0);
break;
case VK_UP:
- MoveCursor(cc, -cc->maxcurx);
+ MoveCursor(cc, -cc->maxcurx, 0);
break;
case VK_DOWN:
- MoveCursor(cc, cc->maxcurx);
+ MoveCursor(cc, cc->maxcurx, 0);
break;
case VK_RIGHT:
- MoveCursor(cc, 1);
+ MoveCursor(cc, 1, 0);
break;
case VK_PRIOR:
- MoveCursor(cc, -(cc->maxcurx*cc->maxcury));
+ MoveCursor(cc, -(cc->maxcurx*cc->maxcury), 0);
break;
case VK_NEXT:
- MoveCursor(cc, (cc->maxcurx*cc->maxcury));
+ MoveCursor(cc, (cc->maxcurx*cc->maxcury), 0);
break;
case VK_END:
{
@@ -737,7 +767,7 @@
LRESULT CALLBACK HexEditCtl(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- HexEditCtl_struct *cc=(HexEditCtl_struct *)GetWindowLong(hwnd, 0);
+ HexEditCtl_struct *cc=(HexEditCtl_struct *)GetWindowLongPtr(hwnd, 0);
switch(message)
{
@@ -773,6 +803,7 @@
case HEX_SETADDRESSLIST:
{
addrlist_struct *addrlist;
+ int i;
if (((addrlist_struct *)lParam) != NULL && wParam > 0)
{
@@ -788,6 +819,8 @@
cc->numaddr = (int)wParam;
cc->addr = cc->addrlist[0].start;
cc->curx = cc->cury = 0;
+ for (i = 0, cc->maxaddr=0; i < cc->numaddr; i++)
+ cc->maxaddr += cc->addrlist[i].end-cc->addrlist[i].start;
return 0;
}
return -1;
|