]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/gdi.i
minimal now works in Unicode mode
[wxWidgets.git] / utils / wxPython / src / gdi.i
index b8fe77a1cb6ccb2916095b35a952b7464c9d67e7..c4cc53f2c028d19a40b232a5f96d82d160dca244 100644 (file)
@@ -1,5 +1,3 @@
-%module gdi
-%{
 /////////////////////////////////////////////////////////////////////////////
 // Name:        gdi.i
 // Purpose:     SWIG interface file for wxDC, wxBrush, wxPen, wxFont, etc.
 /////////////////////////////////////////////////////////////////////////////
 
 
-#include "helpers.h"
+%module gdi
 
+%{
+#include "helpers.h"
 #include <wx/metafile.h>
+#include <wx/imaglist.h>
+#ifndef __WXMSW__
+#include <wx/dcps.h>
+#endif
 %}
 
 //----------------------------------------------------------------------
@@ -34,7 +38,9 @@ public:
     wxBitmap(const wxString& name, long type);
     ~wxBitmap();
 
+#ifdef __WXMSW__
     void Create(int width, int height, int depth = -1);
+#endif
     int GetDepth();
     int GetHeight();
     wxPalette* GetPalette();
@@ -46,13 +52,15 @@ public:
     void SetDepth(int depth);
     void SetHeight(int height);
     void SetMask(wxMask* mask);
-    void SetOk(int isOk);
-    void SetPalette(wxPalette* palette);
+#ifdef __WXMSW__
+    void SetPalette(wxPalette& palette);
+#endif
     void SetWidth(int width);
 };
 
 %new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1);
 wxBitmap* wxNoRefBitmap(char* name, long flags);
+
 %{                              // Alternate 'constructor'
     wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) {
         return new wxBitmap(width, height, depth);
@@ -87,7 +95,10 @@ public:
 
 class wxIcon : public wxBitmap {
 public:
-    wxIcon(char *name, long flags);
+#ifdef __WXMSW__
+    wxIcon(const wxString& name, long flags,
+           int desiredWidth = -1, int desiredHeight = -1);
+#endif
     ~wxIcon();
 
     int GetDepth();
@@ -97,7 +108,6 @@ public:
     bool Ok();
     void SetDepth(int depth);
     void SetHeight(int height);
-    void SetOk(int isOk);
     void SetWidth(int width);
 };
 
@@ -105,14 +115,16 @@ public:
 
 class wxCursor : public wxBitmap {
 public:
+#ifdef __WXMSW__
     wxCursor(const wxString& cursorName, long flags, int hotSpotX=0, int hotSpotY=0);
+#endif
     ~wxCursor();
     bool Ok();
 };
 
-%new wxCursor* wxStockCursor(int id);
+%name(wxStockCursor) %new wxCursor* wxPyStockCursor(int id);
 %{                              // Alternate 'constructor'
-    wxCursor* wxStockCursor(int id) {
+    wxCursor* wxPyStockCursor(int id) {
         return new wxCursor(id);
     }
 %}
@@ -136,7 +148,9 @@ public:
 
     wxString GetFaceName();
     int GetFamily();
+#ifdef __WXMSW__
     int GetFontId();
+#endif
     int GetPointSize();
     int GetStyle();
     bool GetUnderlined();
@@ -197,20 +211,23 @@ public:
     int GetCap();
     wxColour& GetColour();
 
-            // **** This one needs to return a list of ints (wxDash)
-    int GetDashes(wxDash **dashes);
     int GetJoin();
-    wxBitmap* GetStipple();
     int GetStyle();
     int GetWidth();
     bool Ok();
     void SetCap(int cap_style);
     void SetColour(wxColour& colour);
-    void SetDashes(int LCOUNT, wxDash* LIST);
     void SetJoin(int join_style);
-    void SetStipple(wxBitmap * stipple);
     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
 };
 
 //----------------------------------------------------------------------
@@ -231,7 +248,7 @@ public:
     int GetStyle();
     bool Ok();
     void SetColour(wxColour &colour);
-    void SetStipple(wxBitmap *bitmap);
+    void SetStipple(wxBitmapbitmap);
     void SetStyle(int style);
 };
 
@@ -241,7 +258,7 @@ public:
 
 class wxDC {
 public:
-    wxDC();
+//    wxDC(); **** abstract base class, can't instantiate.
     ~wxDC();
 
     void BeginDrawing();
@@ -271,22 +288,30 @@ public:
     void EndDrawing();
     void EndPage();
     void FloodFill(long x, long y, const wxColour& colour, int style=wxFLOOD_SURFACE);
-    wxBrush * GetBackground();
-    wxBrush * GetBrush();
+    wxBrush GetBackground();
+    wxBrush GetBrush();
     long GetCharHeight();
     long GetCharWidth();
     void GetClippingBox(long *OUTPUT, long *OUTPUT,
                         long *OUTPUT, long *OUTPUT);
-    wxFont * GetFont();
+    wxFont& GetFont();
     int GetLogicalFunction();
     int GetMapMode();
     bool GetOptimization();
-    wxPen * GetPen();
-    //bool GetPixel(int x, int y, wxColour *T_OUTPUT);  ****  See below.
+    wxPen& GetPen();
+    %addmethods {
+        %new wxColour* GetPixel(long x, long y) {
+            wxColour* wc = new wxColour();
+            self->GetPixel(x, y, wc);
+            return wc;
+        }
+    }
     void GetSize(int* OUTPUT, int* OUTPUT); //void GetSize(long* OUTPUT, long* OUTPUT);
     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);
@@ -316,19 +341,13 @@ public:
 
 
     %addmethods {
-        %new wxColour* GetPixel(long x, long y) {
-            wxColor* wc = new wxColor();
-            self->GetPixel(x, y, wc);
-            return wc;
-        }
-
             // This one is my own creation...
-        void DrawBitmap(wxBitmap* bitmap, long x, long y, bool swapPalette=TRUE) {
+        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,
+                self->SetPalette(*bitmap.GetPalette());
+            self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC,
                     0, 0, self->GetLogicalFunction());
             memDC->SelectObject(wxNullBitmap);
             delete memDC;
@@ -381,32 +400,48 @@ public:
 
 //---------------------------------------------------------------------------
 
+class wxWindowDC : public wxDC {
+public:
+      wxWindowDC(wxWindow* win);
+};
+
+//---------------------------------------------------------------------------
+
+#ifndef __WXMSW__
 class wxPostScriptDC : public wxDC {
 public:
       wxPostScriptDC(const wxString& output, bool interactive = TRUE, wxWindow* win = NULL);
 };
+#endif
 
 //---------------------------------------------------------------------------
 
+#ifdef __WXMSW__
 class  wxPrinterDC : public wxDC {
 public:
     wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output,
                 bool interactive = TRUE, int orientation = wxPORTRAIT);
 };
+#endif
 
 //---------------------------------------------------------------------------
 
+#ifdef __WXMSW__
 class wxMetaFileDC : public wxDC {
 public:
     wxMetaFileDC(const wxString& filename = wxPyEmptyStr);
     wxMetaFile* Close();
 };
+#endif
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 
 
 %readonly
+%{
+#if 0
+%}
 extern wxFont *wxNORMAL_FONT;
 extern wxFont *wxSMALL_FONT;
 extern wxFont *wxITALIC_FONT;
@@ -455,11 +490,153 @@ extern wxPalette wxNullPalette;
 extern wxFont   wxNullFont;
 extern wxColour wxNullColour;
 
+%readwrite
+%{
+#endif
+%}
+
+//---------------------------------------------------------------------------
+
+class wxPalette {
+public:
+    wxPalette(int LCOUNT, byte* LIST, byte* LIST, byte* LIST);
+    ~wxPalette();
+
+    int GetPixel(byte red, byte green, byte blue);
+    bool GetRGB(int pixel, byte* OUTPUT, byte* OUTPUT, byte* OUTPUT);
+    bool Ok();
+};
+
+//---------------------------------------------------------------------------
+
+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.14  1999/02/20 10:02:36  RD
+// Changes needed to enable wxGTK compatibility.
+//
+// Revision 1.13  1999/02/20 09:02:58  RD
+// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
+// window handle.  If you can get the window handle into the python code,
+// it should just work...  More news on this later.
+//
+// Added wxImageList, wxToolTip.
+//
+// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
+// wxRegConfig class.
+//
+// As usual, some bug fixes, tweaks, etc.
+//
+// Revision 1.12  1999/01/30 07:30:11  RD
+//
+// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
+//
+// Various cleanup, tweaks, minor additions, etc. to maintain
+// compatibility with the current wxWindows.
+//
+// Revision 1.11  1998/12/18 15:49:05  RR
+//
+//   wxClipboard now serves the primary selection as well
+//   wxPython fixes
+//   warning mesages
+//
+// Revision 1.10  1998/12/17 18:05:50  RD
+//
+// wxPython 0.5.2
+// Minor fixes and SWIG code generation for RR's changes.  MSW and GTK
+// versions are much closer now!
+//
+// Revision 1.9  1998/12/17 14:07:37  RR
+//
+//   Removed minor differences between wxMSW and wxGTK
+//
+// 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
 //