zoomin:
- allow to cange zoom factor and display zoom factor
- add accelerator table
Modified: trunk/rosapps/devutils/zoomin/framewnd.c
Modified: trunk/rosapps/devutils/zoomin/framewnd.h
Modified: trunk/rosapps/devutils/zoomin/main.c
Modified: trunk/rosapps/devutils/zoomin/main.h
Modified: trunk/rosapps/devutils/zoomin/resource.h
Modified: trunk/rosapps/devutils/zoomin/zoomin.rc
_____
Modified: trunk/rosapps/devutils/zoomin/framewnd.c
--- trunk/rosapps/devutils/zoomin/framewnd.c 2005-10-12 19:15:54 UTC
(rev 18414)
+++ trunk/rosapps/devutils/zoomin/framewnd.c 2005-10-12 20:20:18 UTC
(rev 18415)
@@ -42,11 +42,34 @@
BOOL s_dragging = FALSE;
+ // zoom range
+
+#define MIN_ZOOM 1
+#define MAX_ZOOM 16
+
+
////////////////////////////////////////////////////////////////////////
////////
-// Local module support methods
//
+// FUNCTION: SetZoom()
+//
+// PURPOSE: Change zoom level
+//
+static void SetZoom(HWND hWnd, int factor)
+{
+ TCHAR buffer[MAX_LOADSTRING];
+ if (factor>=MIN_ZOOM && factor<=MAX_ZOOM) {
+ s_factor = factor;
+
+ SetScrollPos(hWnd, SB_VERT, s_factor, TRUE);
+
+ wsprintf(buffer, TEXT("%s %dx"), szTitle, s_factor);
+ SetWindowText(hWnd, buffer);
+ }
+}
+
+
////////////////////////////////////////////////////////////////////////
////////
//
// FUNCTION: _CmdWndProc(HWND, unsigned, WORD, LONG)
@@ -70,6 +93,10 @@
// TODO:
break;
+ case ID_REFRESH:
+ InvalidateRect(hWnd, NULL, FALSE);
+ break;
+
default:
return FALSE;
}
@@ -89,6 +116,8 @@
switch (message) {
case WM_CREATE:
SetTimer(hWnd, 0, 200, NULL); // refresh display all
200 ms
+ SetScrollRange(hWnd, SB_VERT, 1, MAX_ZOOM, FALSE);
+ SetZoom(hWnd, s_factor);
break;
case WM_COMMAND:
@@ -107,10 +136,11 @@
hdcMem = GetDC(GetDesktopWindow());
GetClientRect(hWnd, &clnt);
- size.cx = clnt.right / s_factor;
- size.cy = clnt.bottom / s_factor;
+ size.cx = (clnt.right + s_factor-1) / s_factor;
+ size.cy = (clnt.bottom + s_factor-1) / s_factor;
- StretchBlt(ps.hdc, 0, 0, size.cx*s_factor,
size.cy*s_factor, hdcMem, s_srcPos.x, s_srcPos.y, size.cx, size.cy,
SRCCOPY);
+ StretchBlt(ps.hdc, 0, 0, size.cx*s_factor,
size.cy*s_factor,
+ hdcMem, s_srcPos.x, s_srcPos.y,
size.cx, size.cy, SRCCOPY);
ReleaseDC(GetDesktopWindow(), hdcMem);
EndPaint(hWnd, &ps);
@@ -181,6 +211,20 @@
}
break;
+ case WM_VSCROLL:
+ switch(wParam) {
+ case SB_LINEUP:
+ case SB_PAGEUP:
+ SetZoom(hWnd, s_factor-1);
+ break;
+
+ case SB_LINEDOWN:
+ case SB_PAGEDOWN:
+ SetZoom(hWnd, s_factor+1);
+ break;
+ }
+ break;
+
case WM_DESTROY:
KillTimer(hWnd, 0);
PostQuitMessage(0);
_____
Modified: trunk/rosapps/devutils/zoomin/framewnd.h
--- trunk/rosapps/devutils/zoomin/framewnd.h 2005-10-12 19:15:54 UTC
(rev 18414)
+++ trunk/rosapps/devutils/zoomin/framewnd.h 2005-10-12 20:20:18 UTC
(rev 18415)
@@ -23,17 +23,10 @@
#ifndef __FRAMEWND_H__
#define __FRAMEWND_H__
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
LRESULT CALLBACK FrameWndProc(HWND, UINT, WPARAM, LPARAM);
-#ifdef __cplusplus
-};
-#endif
+#define WNDCLASS_ZOOMIN TEXT("ZOOMIN")
-#endif // __FRAMEWND_H__
+#endif // __FRAMEWND_H__
_____
Modified: trunk/rosapps/devutils/zoomin/main.c
--- trunk/rosapps/devutils/zoomin/main.c 2005-10-12 19:15:54 UTC
(rev 18414)
+++ trunk/rosapps/devutils/zoomin/main.c 2005-10-12 20:20:18 UTC
(rev 18415)
@@ -38,7 +38,6 @@
HMENU hMenuFrame;
TCHAR szTitle[MAX_LOADSTRING];
-TCHAR szFrameClass[MAX_LOADSTRING];
////////////////////////////////////////////////////////////////////////
////////
@@ -61,7 +60,7 @@
LoadCursor(0, IDC_ARROW),
0,//(HBRUSH)(COLOR_BTNFACE+1),
0/*lpszMenuName*/,
- szFrameClass,
+ WNDCLASS_ZOOMIN,
(HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_ZOOMIN),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON), LR_SHARED)
};
@@ -70,7 +69,7 @@
hMenuFrame = LoadMenu(hInstance,
MAKEINTRESOURCE(IDR_ZOOMIN_MENU));
hFrameWnd = CreateWindowEx(0, (LPCTSTR)(int)hFrameWndClass,
szTitle,
- WS_OVERLAPPEDWINDOW | WS_EX_CLIENTEDGE,
+ WS_OVERLAPPEDWINDOW | WS_EX_CLIENTEDGE |
WS_VSCROLL,
CW_USEDEFAULT, CW_USEDEFAULT, 250, 250,
NULL, hMenuFrame, hInstance, NULL/*lpParam*/);
@@ -80,6 +79,7 @@
ShowWindow(hFrameWnd, nCmdShow);
UpdateWindow(hFrameWnd);
+
return TRUE;
}
@@ -97,22 +97,21 @@
int nCmdShow)
{
MSG msg;
- HACCEL hAccel;
+ HACCEL hAccel;
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
- LoadString(hInstance, IDC_ZOOMIN, szFrameClass, MAX_LOADSTRING);
// Perform application initialization:
if (!InitInstance(hInstance, nCmdShow)) {
return FALSE;
}
- hAccel = LoadAccelerators(hInstance, (LPCTSTR)IDC_ZOOMIN);
+ hAccel = LoadAccelerators(hInstance,
MAKEINTRESOURCE(IDR_ZOOMIN));
// Main message loop:
while (GetMessage(&msg, (HWND)NULL, 0, 0)) {
- if (!TranslateAccelerator(msg.hwnd, hAccel, &msg)) {
+ if (!TranslateAccelerator(msg.hwnd, hAccel, &msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
_____
Modified: trunk/rosapps/devutils/zoomin/main.h
--- trunk/rosapps/devutils/zoomin/main.h 2005-10-12 19:15:54 UTC
(rev 18414)
+++ trunk/rosapps/devutils/zoomin/main.h 2005-10-12 20:20:18 UTC
(rev 18415)
@@ -23,11 +23,6 @@
#ifndef __MAIN_H__
#define __MAIN_H__
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
#include "resource.h"
#define MAX_LOADSTRING 100
@@ -40,11 +35,6 @@
extern HMENU hMenuFrame;
extern TCHAR szTitle[];
-extern TCHAR szFrameClass[];
-#ifdef __cplusplus
-};
-#endif
#endif // __MAIN_H__
-
_____
Modified: trunk/rosapps/devutils/zoomin/resource.h
--- trunk/rosapps/devutils/zoomin/resource.h 2005-10-12 19:15:54 UTC
(rev 18414)
+++ trunk/rosapps/devutils/zoomin/resource.h 2005-10-12 20:20:18 UTC
(rev 18415)
@@ -7,9 +7,8 @@
#define IDS_APP_TITLE 103
#define IDI_ZOOMIN 107
#define IDI_SMALL 108
-#define IDC_ZOOMIN 109
-#define IDR_ZOOMIN_MENU 110
-#define IDD_DIALOG1 111
+#define IDR_ZOOMIN_MENU 109
+#define IDR_ZOOMIN 110
#define ID_EDIT_EXIT 32700
#define ID_EDIT_COPY 32701
@@ -17,5 +16,7 @@
#define ID_OPTIONS_REFRESH_RATE 32704
#define ID_HELP_ABOUT 32703
+#define ID_REFRESH 40001
+
#define IDC_STATIC -1
_____
Modified: trunk/rosapps/devutils/zoomin/zoomin.rc
--- trunk/rosapps/devutils/zoomin/zoomin.rc 2005-10-12 19:15:54 UTC
(rev 18414)
+++ trunk/rosapps/devutils/zoomin/zoomin.rc 2005-10-12 20:20:18 UTC
(rev 18415)
@@ -31,12 +31,14 @@
IDR_ZOOMIN_MENU MENU DISCARDABLE
BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "E&xit\tAlt-F4", ID_EDIT_EXIT
+ END
POPUP "&Edit"
BEGIN
MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY, GRAYED
- MENUITEM "&Refresh\tF5", ID_EDIT_REFRESH, GRAYED
- MENUITEM SEPARATOR
- MENUITEM "E&xit\tAlt-F4", ID_EDIT_EXIT
+ MENUITEM "&Refresh\tF5", ID_EDIT_REFRESH
END
POPUP "&Options"
BEGIN
@@ -69,26 +71,21 @@
////////////////////////////////////////////////////////////////////////
/////
//
-// Dialog
+// String Table
//
-IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 186, 95
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Dialog"
-FONT 8, "MS Sans Serif"
+STRINGTABLE DISCARDABLE
BEGIN
- DEFPUSHBUTTON "OK",IDOK,129,7,50,14
- PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
+ IDS_APP_TITLE "ReactOS Zoomin"
END
////////////////////////////////////////////////////////////////////////
/////
//
-// String Table
+// Accelerator
//
-STRINGTABLE DISCARDABLE
+IDR_ZOOMIN ACCELERATORS DISCARDABLE
BEGIN
- IDS_APP_TITLE "ReactOS Zoomin"
- IDC_ZOOMIN "ZOOMIN"
+ VK_F5, ID_REFRESH, VIRTKEY, NOINVERT
END