view: Merge 3 C source files and a header file into one file.
This commit is contained in:
parent
ca22457d7b
commit
c243e19075
|
@ -3,9 +3,7 @@ APPMODE = -mwindows
|
|||
IMPORTS = comdlg32 user32 gdi32
|
||||
|
||||
C_SRCS = \
|
||||
init.c \
|
||||
view.c \
|
||||
winmain.c
|
||||
view.c
|
||||
|
||||
RC_SRCS = \
|
||||
Cs.rc \
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
/*
|
||||
* Copyright 1998 Douglas Ridgway
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/* for SMALL_RECT */
|
||||
#include "wincon.h"
|
||||
#include "resource.h"
|
||||
|
||||
/* Add global function prototypes here */
|
||||
|
||||
BOOL InitApplication(HINSTANCE);
|
||||
BOOL InitInstance(HINSTANCE, int);
|
||||
BOOL CenterWindow(HWND, HWND);
|
||||
|
||||
/* Add new callback function prototypes here */
|
||||
|
||||
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
/* Global variable declarations */
|
||||
|
||||
extern HINSTANCE hInst; /* The current instance handle */
|
||||
extern char szAppName[]; /* The name of this application */
|
||||
extern char szTitle[]; /* The title bar text */
|
||||
|
||||
|
||||
#include "pshpack1.h"
|
||||
typedef struct
|
||||
{
|
||||
DWORD key;
|
||||
WORD hmf;
|
||||
SMALL_RECT bbox;
|
||||
WORD inch;
|
||||
DWORD reserved;
|
||||
WORD checksum;
|
||||
} APMFILEHEADER;
|
||||
|
||||
#define APMHEADER_KEY 0x9AC6CDD7l
|
||||
|
||||
#include "poppack.h"
|
|
@ -1,100 +0,0 @@
|
|||
/*
|
||||
* Copyright 1998 Douglas Ridgway
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include "globals.h"
|
||||
#include "resource.h"
|
||||
|
||||
/* global variables */
|
||||
|
||||
HINSTANCE hInst;
|
||||
char szAppName[5] = "View";
|
||||
char szTitle[80];
|
||||
|
||||
BOOL InitApplication(HINSTANCE hInstance)
|
||||
{
|
||||
WNDCLASSEX wc;
|
||||
|
||||
/* Load the application description strings */
|
||||
LoadString(hInstance, IDS_DESCRIPTION, szTitle, sizeof(szTitle));
|
||||
|
||||
/* Fill in window class structure with parameters that describe the
|
||||
main window */
|
||||
|
||||
wc.cbSize = sizeof(WNDCLASSEX);
|
||||
|
||||
/* Load small icon image */
|
||||
wc.hIconSm = LoadImage(hInstance,
|
||||
MAKEINTRESOURCEA(IDI_APPICON),
|
||||
IMAGE_ICON,
|
||||
16, 16,
|
||||
0);
|
||||
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW; /* Class style(s) */
|
||||
wc.lpfnWndProc = WndProc; /* Window Procedure */
|
||||
wc.cbClsExtra = 0; /* No per-class extra data */
|
||||
wc.cbWndExtra = 0; /* No per-window extra data */
|
||||
wc.hInstance = hInstance; /* Owner of this class */
|
||||
wc.hIcon = LoadIcon(hInstance, szAppName); /* Icon name from .rc */
|
||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW); /* Cursor */
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); /* Default color */
|
||||
wc.lpszMenuName = szAppName; /* Menu name from .rc */
|
||||
wc.lpszClassName = szAppName; /* Name to register as */
|
||||
|
||||
/* Register the window class and return FALSE if unsuccessful */
|
||||
|
||||
if (!RegisterClassEx(&wc))
|
||||
{
|
||||
if (!RegisterClass((LPWNDCLASS)&wc.style))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Call module specific initialization functions here */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
|
||||
{
|
||||
HWND hwnd;
|
||||
|
||||
/* Save the instance handle in a global variable for later use */
|
||||
hInst = hInstance;
|
||||
|
||||
/* Create main window */
|
||||
hwnd = CreateWindow(szAppName, /* See RegisterClass() call */
|
||||
szTitle, /* window title */
|
||||
WS_OVERLAPPEDWINDOW, /* Window style */
|
||||
CW_USEDEFAULT, 0, /* positioning */
|
||||
CW_USEDEFAULT, 0, /* size */
|
||||
NULL, /* Overlapped has no parent */
|
||||
NULL, /* Use the window class menu */
|
||||
hInstance,
|
||||
NULL);
|
||||
|
||||
if (!hwnd)
|
||||
return FALSE;
|
||||
|
||||
/* Call module specific instance initialization functions here */
|
||||
|
||||
/* show the window, and paint it for the first time */
|
||||
ShowWindow(hwnd, nCmdShow);
|
||||
UpdateWindow(hwnd);
|
||||
|
||||
return TRUE;
|
||||
}
|
|
@ -20,13 +20,31 @@
|
|||
#include <windowsx.h>
|
||||
#include "resource.h"
|
||||
|
||||
#include "globals.h"
|
||||
#include <stdio.h>
|
||||
|
||||
HMETAFILE hmf;
|
||||
int deltax = 0, deltay = 0;
|
||||
int width = 0, height = 0;
|
||||
BOOL isAldus;
|
||||
static HINSTANCE hInst;
|
||||
static char szAppName[5] = "View";
|
||||
static char szTitle[80];
|
||||
|
||||
static HMETAFILE hmf;
|
||||
static int deltax = 0, deltay = 0;
|
||||
static int width = 0, height = 0;
|
||||
static BOOL isAldus;
|
||||
|
||||
#include "pshpack1.h"
|
||||
typedef struct
|
||||
{
|
||||
DWORD key;
|
||||
WORD hmf;
|
||||
SMALL_RECT bbox;
|
||||
WORD inch;
|
||||
DWORD reserved;
|
||||
WORD checksum;
|
||||
} APMFILEHEADER;
|
||||
#include "poppack.h"
|
||||
|
||||
#define APMHEADER_KEY 0x9AC6CDD7l
|
||||
|
||||
|
||||
static BOOL FileOpen(HWND hWnd, char *fn, int fnsz)
|
||||
{
|
||||
|
@ -123,10 +141,7 @@ static HMETAFILE GetPlaceableMetaFile( HWND hwnd, LPCSTR szFileName )
|
|||
}
|
||||
|
||||
|
||||
LRESULT CALLBACK WndProc(HWND hwnd,
|
||||
UINT uMessage,
|
||||
WPARAM wparam,
|
||||
LPARAM lparam)
|
||||
static LRESULT CALLBACK WndProc(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
switch (uMessage)
|
||||
{
|
||||
|
@ -213,3 +228,118 @@ LRESULT CALLBACK WndProc(HWND hwnd,
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL InitApplication(HINSTANCE hInstance)
|
||||
{
|
||||
WNDCLASSEX wc;
|
||||
|
||||
/* Load the application description strings */
|
||||
LoadString(hInstance, IDS_DESCRIPTION, szTitle, sizeof(szTitle));
|
||||
|
||||
/* Fill in window class structure with parameters that describe the
|
||||
main window */
|
||||
|
||||
wc.cbSize = sizeof(WNDCLASSEX);
|
||||
|
||||
/* Load small icon image */
|
||||
wc.hIconSm = LoadImage(hInstance, MAKEINTRESOURCEA(IDI_APPICON), IMAGE_ICON, 16, 16, 0);
|
||||
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW; /* Class style(s) */
|
||||
wc.lpfnWndProc = WndProc; /* Window Procedure */
|
||||
wc.cbClsExtra = 0; /* No per-class extra data */
|
||||
wc.cbWndExtra = 0; /* No per-window extra data */
|
||||
wc.hInstance = hInstance; /* Owner of this class */
|
||||
wc.hIcon = LoadIcon(hInstance, szAppName); /* Icon name from .rc */
|
||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW); /* Cursor */
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); /* Default color */
|
||||
wc.lpszMenuName = szAppName; /* Menu name from .rc */
|
||||
wc.lpszClassName = szAppName; /* Name to register as */
|
||||
|
||||
/* Register the window class and return FALSE if unsuccessful */
|
||||
|
||||
if (!RegisterClassEx(&wc))
|
||||
{
|
||||
if (!RegisterClass((LPWNDCLASS)&wc.style))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Call module specific initialization functions here */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
|
||||
{
|
||||
HWND hwnd;
|
||||
|
||||
/* Save the instance handle in a global variable for later use */
|
||||
hInst = hInstance;
|
||||
|
||||
/* Create main window */
|
||||
hwnd = CreateWindow(szAppName, /* See RegisterClass() call */
|
||||
szTitle, /* window title */
|
||||
WS_OVERLAPPEDWINDOW, /* Window style */
|
||||
CW_USEDEFAULT, 0, /* positioning */
|
||||
CW_USEDEFAULT, 0, /* size */
|
||||
NULL, /* Overlapped has no parent */
|
||||
NULL, /* Use the window class menu */
|
||||
hInstance,
|
||||
NULL);
|
||||
|
||||
if (!hwnd)
|
||||
return FALSE;
|
||||
|
||||
/* Call module specific instance initialization functions here */
|
||||
|
||||
/* show the window, and paint it for the first time */
|
||||
ShowWindow(hwnd, nCmdShow);
|
||||
UpdateWindow(hwnd);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
MSG msg;
|
||||
HANDLE hAccelTable;
|
||||
|
||||
/* Other instances of app running? */
|
||||
if (!hPrevInstance)
|
||||
{
|
||||
/* stuff to be done once */
|
||||
if (!InitApplication(hInstance))
|
||||
{
|
||||
return FALSE; /* exit */
|
||||
}
|
||||
}
|
||||
|
||||
/* stuff to be done every time */
|
||||
if (!InitInstance(hInstance, nCmdShow))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hAccelTable = LoadAccelerators(hInstance, szAppName);
|
||||
|
||||
/* Main loop */
|
||||
/* Acquire and dispatch messages until a WM_QUIT message is received */
|
||||
while (GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
/* Add other Translation functions (for modeless dialogs
|
||||
and/or MDI windows) here. */
|
||||
|
||||
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Add module specific instance free/delete functions here */
|
||||
|
||||
/* Returns the value from PostQuitMessage */
|
||||
return msg.wParam;
|
||||
}
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
/*
|
||||
* Copyright 1998 Douglas Ridgway
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <windows.h> /* required for all Windows applications */
|
||||
#include "globals.h" /* prototypes specific to this application */
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
MSG msg;
|
||||
HANDLE hAccelTable;
|
||||
|
||||
/* Other instances of app running? */
|
||||
if (!hPrevInstance)
|
||||
{
|
||||
/* stuff to be done once */
|
||||
if (!InitApplication(hInstance))
|
||||
{
|
||||
return FALSE; /* exit */
|
||||
}
|
||||
}
|
||||
|
||||
/* stuff to be done every time */
|
||||
if (!InitInstance(hInstance, nCmdShow))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hAccelTable = LoadAccelerators(hInstance, szAppName);
|
||||
|
||||
/* Main loop */
|
||||
/* Acquire and dispatch messages until a WM_QUIT message is received */
|
||||
while (GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
/* Add other Translation functions (for modeless dialogs
|
||||
and/or MDI windows) here. */
|
||||
|
||||
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Add module specific instance free/delete functions here */
|
||||
|
||||
/* Returns the value from PostQuitMessage */
|
||||
return msg.wParam;
|
||||
}
|
Loading…
Reference in New Issue