Commit 60a983b1 authored by eseidel's avatar eseidel

Fix line endings in two files, and apply svn:eol-style=native to all source files w/o it.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 628e4cff
// This file exists to work around a bug in Visual Studio 2005
// Occasionally on launch VS05 will fail to correctly find and
// identify generated files, thereby excluding them from the build
// list and defaulting the "build rule" to "custom build rule"
// instead of whatever may be appropriate for the file type.
#include "grammar.cpp"
// This file exists to work around a bug in Visual Studio 2005
// Occasionally on launch VS05 will fail to correctly find and
// identify generated files, thereby excluding them from the build
// list and defaulting the "build rule" to "custom build rule"
// instead of whatever may be appropriate for the file type.
#include "grammar.cpp"
/*
* Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// Image Viewer.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Image Viewer.h"
#include "ImageMainFrame.h"
#include "ImageDocument.h"
#include "ImageView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// ImageViewerApp
BEGIN_MESSAGE_MAP(ImageViewerApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, &ImageViewerApp::OnAppAbout)
ON_COMMAND(ID_FILE_NEW_FRAME, &ImageViewerApp::OnFileNewFrame)
ON_COMMAND(ID_FILE_NEW, &ImageViewerApp::OnFileNew)
// Standard file based document commands
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// ImageViewerApp construction
ImageViewerApp::ImageViewerApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only ImageViewerApp object
ImageViewerApp theApp;
// ImageViewerApp initialization
BOOL ImageViewerApp::InitInstance()
{
// InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use
// in your application.
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(4); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(ImageDocument),
RUNTIME_CLASS(ImageMainFrame), // main SDI frame window
RUNTIME_CLASS(ImageView));
if (!pDocTemplate)
return FALSE;
m_pDocTemplate = pDocTemplate;
AddDocTemplate(pDocTemplate);
// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The one and only window has been initialized, so show and update it
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
// call DragAcceptFiles only if there's a suffix
// In an SDI app, this should occur after ProcessShellCommand
// Enable drag/drop open
m_pMainWnd->DragAcceptFiles();
return TRUE;
}
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// App command to run the dialog
void ImageViewerApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// ImageViewerApp message handlers
void ImageViewerApp::OnFileNewFrame()
{
ASSERT(m_pDocTemplate != NULL);
CDocument* pDoc = NULL;
CFrameWnd* pFrame = NULL;
// Create a new instance of the document referenced
// by the m_pDocTemplate member.
pDoc = m_pDocTemplate->CreateNewDocument();
if (pDoc != NULL)
{
// If creation worked, use create a new frame for
// that document.
pFrame = m_pDocTemplate->CreateNewFrame(pDoc, NULL);
if (pFrame != NULL)
{
// Set the title, and initialize the document.
// If document initialization fails, clean-up
// the frame window and document.
m_pDocTemplate->SetDefaultTitle(pDoc);
if (!pDoc->OnNewDocument())
{
pFrame->DestroyWindow();
pFrame = NULL;
}
else
{
// Otherwise, update the frame
m_pDocTemplate->InitialUpdateFrame(pFrame, pDoc, TRUE);
}
}
}
// If we failed, clean up the document and show a
// message to the user.
if (pFrame == NULL || pDoc == NULL)
{
delete pDoc;
AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
}
}
void ImageViewerApp::OnFileNew()
{
CDocument* pDoc = NULL;
CFrameWnd* pFrame;
pFrame = DYNAMIC_DOWNCAST(CFrameWnd, CWnd::GetActiveWindow());
if (pFrame != NULL)
pDoc = pFrame->GetActiveDocument();
if (pFrame == NULL || pDoc == NULL)
{
// if it's the first document, create as normal
CWinApp::OnFileNew();
}
else
{
// Otherwise, see if we have to save modified, then
// ask the document to reinitialize itself.
if (!pDoc->SaveModified())
return;
CDocTemplate* pTemplate = pDoc->GetDocTemplate();
ASSERT(pTemplate != NULL);
pTemplate->SetDefaultTitle(pDoc);
pDoc->OnNewDocument();
}
}
/*
* Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// Image Viewer.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Image Viewer.h"
#include "ImageMainFrame.h"
#include "ImageDocument.h"
#include "ImageView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// ImageViewerApp
BEGIN_MESSAGE_MAP(ImageViewerApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, &ImageViewerApp::OnAppAbout)
ON_COMMAND(ID_FILE_NEW_FRAME, &ImageViewerApp::OnFileNewFrame)
ON_COMMAND(ID_FILE_NEW, &ImageViewerApp::OnFileNew)
// Standard file based document commands
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// ImageViewerApp construction
ImageViewerApp::ImageViewerApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only ImageViewerApp object
ImageViewerApp theApp;
// ImageViewerApp initialization
BOOL ImageViewerApp::InitInstance()
{
// InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use
// in your application.
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(4); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(ImageDocument),
RUNTIME_CLASS(ImageMainFrame), // main SDI frame window
RUNTIME_CLASS(ImageView));
if (!pDocTemplate)
return FALSE;
m_pDocTemplate = pDocTemplate;
AddDocTemplate(pDocTemplate);
// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The one and only window has been initialized, so show and update it
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
// call DragAcceptFiles only if there's a suffix
// In an SDI app, this should occur after ProcessShellCommand
// Enable drag/drop open
m_pMainWnd->DragAcceptFiles();
return TRUE;
}
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// App command to run the dialog
void ImageViewerApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// ImageViewerApp message handlers
void ImageViewerApp::OnFileNewFrame()
{
ASSERT(m_pDocTemplate != NULL);
CDocument* pDoc = NULL;
CFrameWnd* pFrame = NULL;
// Create a new instance of the document referenced
// by the m_pDocTemplate member.
pDoc = m_pDocTemplate->CreateNewDocument();
if (pDoc != NULL)
{
// If creation worked, use create a new frame for
// that document.
pFrame = m_pDocTemplate->CreateNewFrame(pDoc, NULL);
if (pFrame != NULL)
{
// Set the title, and initialize the document.
// If document initialization fails, clean-up
// the frame window and document.
m_pDocTemplate->SetDefaultTitle(pDoc);
if (!pDoc->OnNewDocument())
{
pFrame->DestroyWindow();
pFrame = NULL;
}
else
{
// Otherwise, update the frame
m_pDocTemplate->InitialUpdateFrame(pFrame, pDoc, TRUE);
}
}
}
// If we failed, clean up the document and show a
// message to the user.
if (pFrame == NULL || pDoc == NULL)
{
delete pDoc;
AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
}
}
void ImageViewerApp::OnFileNew()
{
CDocument* pDoc = NULL;
CFrameWnd* pFrame;
pFrame = DYNAMIC_DOWNCAST(CFrameWnd, CWnd::GetActiveWindow());
if (pFrame != NULL)
pDoc = pFrame->GetActiveDocument();
if (pFrame == NULL || pDoc == NULL)
{
// if it's the first document, create as normal
CWinApp::OnFileNew();
}
else
{
// Otherwise, see if we have to save modified, then
// ask the document to reinitialize itself.
if (!pDoc->SaveModified())
return;
CDocTemplate* pTemplate = pDoc->GetDocTemplate();
ASSERT(pTemplate != NULL);
pTemplate->SetDefaultTitle(pDoc);
pDoc->OnNewDocument();
}
}
// ImageView.cpp : implementation of the ImageView class
//
#include "stdafx.h"
#include "Image Viewer.h"
#include "ImageDocument.h"
#include "ImageView.h"
#include <cairo.h>
#include "Image.h"
#include "FloatRect.h"
#include "IntSize.h"
using WebCore::Image;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// ImageView
IMPLEMENT_DYNCREATE(ImageView, CView)
BEGIN_MESSAGE_MAP(ImageView, CView)
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
// ImageView construction/destruction
ImageView::ImageView()
{
}
ImageView::~ImageView()
{
}
BOOL ImageView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
// ImageView drawing
BOOL ImageView::OnEraseBkgnd(CDC* pDC)
{
// Don't ever let windows erase the background.
ImageDocument* pDoc = GetDocument();
if (!pDoc || !pDoc->image())
return CView::OnEraseBkgnd(pDC);
return FALSE;
}
void ImageView::OnDraw(CDC* pDC)
{
ImageDocument* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
Image* image = pDoc->image();
if (!image)
return;
// Make a win32 cairo surface for painting.
HDC dc = pDC->m_hDC;
// Center the image.
RECT rect;
GetClientRect(&rect);
cairo_surface_t* finalSurface = cairo_win32_surface_create(dc);
cairo_surface_t* surface = cairo_surface_create_similar(finalSurface,
CAIRO_CONTENT_COLOR_ALPHA,
rect.right, rect.bottom);
// Fill with white.
cairo_t* context = cairo_create(surface);
cairo_rectangle(context, 0, 0, rect.right, rect.bottom);
cairo_set_source_rgb(context, 1.0, 1.0, 1.0);
cairo_fill(context);
// Comment in to test overlapping.
bool overlapping = false; // true;
// Comment in to test tiling.
bool tile = false; // true;
FloatPoint srcPoint; // The src point to use when tiling. Change value to test offset tiling.
// Comment the multiplicative factor in to test scaling (doubles the size).
float width = tile ? rect.right : image->size().width(); // * 2;
float height = tile ? rect.bottom : image->size().height(); // * 2;
float left = tile ? 0 : (rect.right - width) / 2;
float top = tile ? 0 : (rect.bottom - height) / 2;
if (left < 0) left = 0;
if (top < 0) top = 0;
FloatRect dstRect(FloatPoint(left, top), FloatSize(width, height));