%{
#include "helpers.h"
#include <wx/metafile.h>
+#include <wx/imaglist.h>
#ifndef __WXMSW__
-#include <wx/postscrp.h>
+#include <wx/dcps.h>
#endif
%}
%new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1);
wxBitmap* wxNoRefBitmap(char* name, long flags);
+#ifdef __WXMSW__
+%new wxBitmap* wxBitmapFromData(char* data, long type,
+ int width, int height, int depth = 1);
+#endif
+
%{ // Alternate 'constructor'
wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) {
return new wxBitmap(width, height, depth);
}
- // This one won't own the reference, so Python won't call
- // the dtor, this is good for toolbars and such where
- // the parent will manage the bitmap.
+ // This one won't own the reference, so Python
+ // won't call the dtor, this is good for
+ // toolbars and such where the parent will
+ // manage the bitmap.
wxBitmap* wxNoRefBitmap(char* name, long flags) {
return new wxBitmap(name, flags);
}
+
+#ifdef __WXMSW__
+ wxBitmap* wxBitmapFromData(char* data, long type,
+ int width, int height, int depth = 1) {
+ return new wxBitmap((void*)data, type, width, height, depth);
+ }
+#endif
%}
//---------------------------------------------------------------------------
class wxIcon : public wxBitmap {
public:
-#ifdef __WXMSW__
wxIcon(const wxString& name, long flags,
int desiredWidth = -1, int desiredHeight = -1);
-#endif
~wxIcon();
int GetDepth();
void SetWidth(int width);
};
+
//---------------------------------------------------------------------------
class wxCursor : public wxBitmap {
//----------------------------------------------------------------------
+
+enum wxFontEncoding
+{
+ wxFONTENCODING_SYSTEM = -1, // system default
+ wxFONTENCODING_DEFAULT, // current default encoding
+
+ // ISO8859 standard defines a number of single-byte charsets
+ wxFONTENCODING_ISO8859_1, // West European (Latin1)
+ wxFONTENCODING_ISO8859_2, // Central and East European (Latin2)
+ wxFONTENCODING_ISO8859_3, // Esperanto (Latin3)
+ wxFONTENCODING_ISO8859_4, // Baltic languages (Estonian) (Latin4)
+ wxFONTENCODING_ISO8859_5, // Cyrillic
+ wxFONTENCODING_ISO8859_6, // Arabic
+ wxFONTENCODING_ISO8859_7, // Greek
+ wxFONTENCODING_ISO8859_8, // Hebrew
+ wxFONTENCODING_ISO8859_9, // Turkish (Latin5)
+ wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6)
+ wxFONTENCODING_ISO8859_11, // Thai
+ wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
+ // here anyhow to make all ISO8859
+ // consecutive numbers
+ wxFONTENCODING_ISO8859_13, // Latin7
+ wxFONTENCODING_ISO8859_14, // Latin8
+ wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro)
+
+ // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
+ wxFONTENCODING_KOI8, // we don't support any of KOI8 variants
+ wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866
+ wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria
+
+ // what would we do without Microsoft? They have their own encodings
+ // for DOS
+ wxFONTENCODING_CP437, // original MS-DOS codepage
+ wxFONTENCODING_CP850, // CP437 merged with Latin1
+ wxFONTENCODING_CP852, // CP437 merged with Latin2
+ wxFONTENCODING_CP855, // another cyrillic encoding
+ wxFONTENCODING_CP866, // and another one
+ // and for Windows
+ wxFONTENCODING_CP1250, // WinLatin2
+ wxFONTENCODING_CP1251, // WinCyrillic
+ wxFONTENCODING_CP1252, // WinLatin1
+
+ wxFONTENCODING_MAX
+};
+
class wxFont {
public:
// I'll do it this way to use long-lived objects and not have to
// worry about when python may delete the object.
%addmethods {
wxFont( int pointSize, int family, int style, int weight,
- int underline=FALSE, char* faceName = "") {
+ int underline=FALSE, char* faceName = "",
+ wxFontEncoding encoding=wxFONTENCODING_DEFAULT) {
return wxTheFontList->FindOrCreateFont(pointSize, family, style, weight,
underline, faceName);
wxString GetFaceName();
int GetFamily();
+#ifdef __WXMSW__
int GetFontId();
+#endif
int GetPointSize();
int GetStyle();
bool GetUnderlined();
int GetWeight();
-#ifdef __WXMSW__
+ wxFontEncoding GetEncoding();
void SetFaceName(const wxString& faceName);
void SetFamily(int family);
void SetPointSize(int pointSize);
void SetStyle(int style);
void SetUnderlined(bool underlined);
void SetWeight(int weight);
-#endif
+ void SetEncoding(wxFontEncoding encoding);
+ wxString GetFamilyString();
+ wxString GetStyleString();
+ wxString GetWeightString();
};
+%inline %{
+ wxFontEncoding wxFont_GetDefaultEncoding() {
+ return wxFont::GetDefaultEncoding();
+ }
+
+ void wxFont_SetDefaultEncoding(wxFontEncoding encoding) {
+ wxFont::SetDefaultEncoding(encoding);
+ }
+%}
+
//----------------------------------------------------------------------
class wxColour {
int GetCap();
wxColour& GetColour();
-#ifdef __WXMSW__
- // **** This one needs to return a list of ints (wxDash)
- int GetDashes(wxDash **dashes);
- wxBitmap* GetStipple();
-#endif
int GetJoin();
int GetStyle();
int GetWidth();
bool Ok();
void SetCap(int cap_style);
void SetColour(wxColour& colour);
+ void SetJoin(int join_style);
+ void SetStyle(int style);
+ void SetWidth(int width);
+
#ifdef __WXMSW__
+ // **** This one needs to return a list of ints (wxDash)
+ int GetDashes(wxDash **dashes);
+ wxBitmap* GetStipple();
void SetDashes(int LCOUNT, wxDash* LIST);
void SetStipple(wxBitmap& stipple);
#endif
- void SetJoin(int join_style);
- void SetStyle(int style);
- void SetWidth(int width);
};
//----------------------------------------------------------------------
wxBitmap * GetStipple();
int GetStyle();
bool Ok();
-#ifdef __WXMSW__
void SetColour(wxColour &colour);
void SetStipple(wxBitmap& bitmap);
void SetStyle(int style);
-#endif
};
//----------------------------------------------------------------------
~wxDC();
void BeginDrawing();
- bool Blit(long xdest, long ydest, long width, long height,
- wxDC *source, long xsrc, long ysrc, long logical_func);
+// %name(BlitXY)
+ bool Blit(long xdest, long ydest,
+ long width, long height,
+ wxDC *source, long xsrc, long ysrc,
+ int logicalFunc = wxCOPY, int useMask = FALSE);
+// bool Blit(const wxPoint& destPt, const wxSize& sz,
+// wxDC *source, const wxPoint& srcPt,
+// int logicalFunc = wxCOPY, int useMask = FALSE);
+
void Clear();
void CrossHair(long x, long y);
void DestroyClippingRegion();
long DeviceToLogicalY(long y);
long DeviceToLogicalYRel(long y);
void DrawArc(long x1, long y1, long x2, long y2, long xc, long yc);
+ void DrawCircle(long x, long y, long radius);
void DrawEllipse(long x, long y, long width, long height);
void DrawEllipticArc(long x, long y, long width, long height, long start, long end);
void DrawIcon(const wxIcon& icon, long x, long y);
void EndDrawing();
void EndPage();
void FloodFill(long x, long y, const wxColour& colour, int style=wxFLOOD_SURFACE);
-#ifdef __WXMSW__
wxBrush& GetBackground();
wxBrush& GetBrush();
-#else
- wxBrush GetBackground();
- wxBrush GetBrush();
-#endif
long GetCharHeight();
long GetCharWidth();
void GetClippingBox(long *OUTPUT, long *OUTPUT,
long *OUTPUT, long *OUTPUT);
-#ifdef __WXMSW__
wxFont& GetFont();
-#else
- wxFont GetFont();
-#endif
int GetLogicalFunction();
int GetMapMode();
bool GetOptimization();
-#ifdef __WXMSW__
wxPen& GetPen();
-#else
- wxPen GetPen();
-#endif
%addmethods {
%new wxColour* GetPixel(long x, long y) {
wxColour* wc = new wxColour();
return wc;
}
}
- void GetSize(int* OUTPUT, int* OUTPUT); //void GetSize(long* OUTPUT, long* OUTPUT);
+ %name(GetSizeTuple)void GetSize(int* OUTPUT, int* OUTPUT);
+ wxSize GetSize();
wxColour& GetTextBackground();
- void GetTextExtent(const wxString& string, long *OUTPUT, long *OUTPUT,
- long *OUTPUT, long *OUTPUT);
+ void GetTextExtent(const wxString& string, long *OUTPUT, long *OUTPUT);
+ %name(GetFullTextExtent)void GetTextExtent(const wxString& string,
+ long *OUTPUT, long *OUTPUT, long *OUTPUT, long* OUTPUT,
+ const wxFont* font = NULL);
wxColour& GetTextForeground();
long LogicalToDeviceX(long x);
long LogicalToDeviceXRel(long x);
void StartPage();
- %addmethods {
- // This one is my own creation...
- void DrawBitmap(wxBitmap& bitmap, long x, long y, bool swapPalette=TRUE) {
- wxMemoryDC* memDC = new wxMemoryDC;
- memDC->SelectObject(bitmap);
- if (swapPalette)
- self->SetPalette(*bitmap.GetPalette());
- self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC,
- 0, 0, self->GetLogicalFunction());
- memDC->SelectObject(wxNullBitmap);
- delete memDC;
- }
- }
+// Don't need this one anymore as wxWindows has one...
+// %addmethods {
+// // This one is my own creation...
+// void DrawBitmap(wxBitmap& bitmap, long x, long y, bool swapPalette=TRUE) {
+// wxMemoryDC* memDC = new wxMemoryDC;
+// memDC->SelectObject(bitmap);
+// #ifdef __WXMSW__
+// if (swapPalette)
+// self->SetPalette(*bitmap.GetPalette());
+// #endif
+// self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC,
+// 0, 0, self->GetLogicalFunction());
+// memDC->SelectObject(wxNullBitmap);
+// delete memDC;
+// }
+// }
+
+ void DrawBitmap(const wxBitmap& bitmap, long x, long y,
+ int useMask = FALSE);
+
};
//---------------------------------------------------------------------------
-#ifdef __WXMSW__
class wxWindowDC : public wxDC {
public:
wxWindowDC(wxWindow* win);
};
-#endif
//---------------------------------------------------------------------------
%readonly
+%{
+#if 0
+%}
extern wxFont *wxNORMAL_FONT;
extern wxFont *wxSMALL_FONT;
extern wxFont *wxITALIC_FONT;
extern wxFont *wxSWISS_FONT;
-extern wxPen *wxRED_PEN;
+extern wxPen *wxRED_PEN;
extern wxPen *wxCYAN_PEN;
extern wxPen *wxGREEN_PEN;
extern wxPen *wxBLACK_PEN;
extern wxFont wxNullFont;
extern wxColour wxNullColour;
+%readwrite
+%{
+#endif
+%}
+
//---------------------------------------------------------------------------
class wxPalette {
//---------------------------------------------------------------------------
+enum {
+ wxIMAGELIST_DRAW_NORMAL ,
+ wxIMAGELIST_DRAW_TRANSPARENT,
+ wxIMAGELIST_DRAW_SELECTED,
+ wxIMAGELIST_DRAW_FOCUSED,
+ wxIMAGE_LIST_NORMAL,
+ wxIMAGE_LIST_SMALL,
+ wxIMAGE_LIST_STATE
+};
+
+class wxImageList {
+public:
+ wxImageList(int width, int height, const bool mask=TRUE, int initialCount=1);
+ ~wxImageList();
+
+#ifdef __WXMSW__
+ int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap);
+ %name(AddWithColourMask)int Add(const wxBitmap& bitmap, const wxColour& maskColour);
+ %name(AddIcon)int Add(const wxIcon& icon);
+ bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap);
+ %name(ReplaceIcon)bool Replace(int index, const wxIcon& icon);
+#else
+ int Add(const wxBitmap& bitmap);
+ bool Replace(int index, const wxBitmap& bitmap);
+#endif
+
+ bool Draw(int index, wxDC& dc, int x, int x, int flags = wxIMAGELIST_DRAW_NORMAL,
+ const bool solidBackground = FALSE);
+
+ int GetImageCount();
+ bool Remove(int index);
+ bool RemoveAll();
+};
+
//---------------------------------------------------------------------------
-/////////////////////////////////////////////////////////////////////////////
-//
-// $Log$
-// Revision 1.8 1998/12/16 22:10:54 RD
-// Tweaks needed to be able to build wxPython with wxGTK.
-//
-// Revision 1.7 1998/12/15 20:41:18 RD
-// Changed the import semantics from "from wxPython import *" to "from
-// wxPython.wx import *" This is for people who are worried about
-// namespace pollution, they can use "from wxPython import wx" and then
-// prefix all the wxPython identifiers with "wx."
-//
-// Added wxTaskbarIcon for wxMSW.
-//
-// Made the events work for wxGrid.
-//
-// Added wxConfig.
-//
-// Added wxMiniFrame for wxGTK, (untested.)
-//
-// Changed many of the args and return values that were pointers to gdi
-// objects to references to reflect changes in the wxWindows API.
-//
-// Other assorted fixes and additions.
-//
-// Revision 1.6 1998/11/25 08:45:24 RD
-//
-// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon
-// Added events for wxGrid
-// Other various fixes and additions
-//
-// Revision 1.5 1998/10/20 06:43:57 RD
-// New wxTreeCtrl wrappers (untested)
-// some changes in helpers
-// etc.
-//
-// Revision 1.4 1998/10/02 06:40:38 RD
-//
-// Version 0.4 of wxPython for MSW.
-//
-// Revision 1.3 1998/08/18 19:48:16 RD
-// more wxGTK compatibility things.
-//
-// It builds now but there are serious runtime problems...
-//
-// Revision 1.2 1998/08/15 07:36:35 RD
-// - Moved the header in the .i files out of the code that gets put into
-// the .cpp files. It caused CVS conflicts because of the RCS ID being
-// different each time.
-//
-// - A few minor fixes.
-//
-// Revision 1.1 1998/08/09 08:25:50 RD
-// Initial version
-//
-//