// Created: 12/07/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "mfutils.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#endif
#ifndef WX_PRECOMP
-#include <wx/wx.h>
+#include "wx/wx.h"
#endif
-#include <wx/metafile.h>
-#include <wx/utils.h>
+#include "wx/metafile.h"
+#include "wx/utils.h"
#include "wx/ogl/ogl.h"
c = getc(fp); c1 = getc(fp); c2 = getc(fp); c3 = getc(fp);
long res = (long)((long) c) +
(((long) c1) << 8) +
- (((long) c2) << 16) +
- (((long) c3) << 24);
+ (((long) c2) << 16) +
+ (((long) c3) << 24);
return res;
}
/* Placeable metafile header
struct mfPLACEABLEHEADER {
- DWORD key; // 32-bit
- HANDLE hmf; // 16-bit
- RECT bbox; // 4x16 bit
- WORD inch; // 16-bit
- DWORD reserved; // 32-bit
- WORD checksum; // 16-bit
+ DWORD key; // 32-bit
+ HANDLE hmf; // 16-bit
+ RECT bbox; // 4x16 bit
+ WORD inch; // 16-bit
+ DWORD reserved; // 32-bit
+ WORD checksum; // 16-bit
};
*/
wxXMetaFile::wxXMetaFile(const wxChar *file)
{
- ok = FALSE;
+ ok = false;
top = 0.0;
bottom = 0.0;
left = 0.0;
[3] | -> wxPen
The handle table works as follows.
- When a GDI object is created whilst reading in the
+ When a GDI object is created while reading in the
metafile, the (e.g.) createpen record is added to the
first free entry in the handle table. The createpen
record's param1 is a pointer to the actual wxPen, and
HandleTableSize = 0;
FILE *handle = wxFopen(file, wxT("rb"));
- if (!handle) return FALSE;
+ if (!handle) return false;
// Read placeable metafile header, if any
long key = getint(handle);
if (mtType != 1 && mtType != 2)
{
fclose(handle);
- return FALSE;
+ return false;
}
/* int mtHeaderSize = */ getshort(handle);
if (mtVersion != 0x0300 && mtVersion != 0x0100)
{
fclose(handle);
- return FALSE;
+ return false;
}
/* long mtSize = */ getint(handle);
/* int lfEsc = */ getshort(handle); // 2 bytes
/* int lfOrient = */ getshort(handle); // 2 bytes
int lfWeight = getshort(handle); // 2 bytes
- char lfItalic = getc(handle); // 1 byte
- char lfUnderline = getc(handle); // 1 byte
+ char lfItalic = (char)getc(handle); // 1 byte
+ char lfUnderline = (char)getc(handle); // 1 byte
/* char lfStrikeout = */ getc(handle); // 1 byte
/* char lfCharSet = */ getc(handle); // 1 byte
/* char lfOutPrecision = */ getc(handle); // 1 byte
/* char lfClipPrecision = */ getc(handle); // 1 byte
/* char lfQuality = */ getc(handle); // 1 byte
- char lfPitchAndFamily = getc(handle); // 1 byte (18th)
+ char lfPitchAndFamily = (char)getc(handle); // 1 byte (18th)
char lfFacename[32];
// Read the rest of the record, which is total record size
// minus the number of bytes already read (18 record, 6 metarecord
}
break;
}
+#if PS_DOT != BS_HATCHED
+ /* ABX 30.12.2003 */
+ /* in microsoft/include/wingdi.h both are the same */
+ /* in fact I'm not sure why pen related PS_XXX and */
+ /* BS_XXX constants are all mixed into single style */
+ case PS_DOT:
+ style = wxDOT;
+ break;
+#endif
+ case PS_DASH:
+ style = wxSHORT_DASH;
+ break;
+ case PS_NULL:
+ style = wxTRANSPARENT;
+ break;
case BS_SOLID:
default:
style = wxSOLID;
break;
}
- if (msStyle == PS_DOT)
- style = wxDOT;
- else if (msStyle == PS_DASH)
- style = wxSHORT_DASH;
- else if (msStyle == PS_NULL)
- style = wxTRANSPARENT;
- else style = wxSOLID;
wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref));
rec->param1 = (long)wxTheBrushList->FindOrCreateBrush(colour, style);
}
}
fclose(handle);
- return TRUE;
+ return true;
}
wxXMetaFile::~wxXMetaFile(void)
{
- wxNode *node = metaRecords.GetFirst();
+ wxObjectList::compatibility_iterator node = metaRecords.GetFirst();
while (node)
{
wxMetaRecord *rec = (wxMetaRecord *)node->GetData();
delete rec;
- wxNode *next = node->GetNext();
- delete node;
+ wxObjectList::compatibility_iterator next = node->GetNext();
+ metaRecords.Erase(node);
node = next;
}
}
bool wxXMetaFile::SetClipboard(int WXUNUSED(width), int WXUNUSED(height))
{
- return FALSE;
+ return false;
}
bool wxXMetaFile::Play(wxDC *dc)
{
- wxNode *node = metaRecords.GetFirst();
+ wxObjectList::compatibility_iterator node = metaRecords.GetFirst();
while (node)
{
wxMetaRecord *rec = (wxMetaRecord *)node->GetData();
}
node = node->GetNext();
}
- return TRUE;
+ return true;
}