]> git.saurik.com Git - wxWidgets.git/commitdiff
OS/2 updates for statusbar processing and easier VA debugging
authorDavid Webster <Dave.Webster@bhmi.com>
Tue, 24 Oct 2000 21:48:58 +0000 (21:48 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Tue, 24 Oct 2000 21:48:58 +0000 (21:48 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

21 files changed:
src/os2/app.cpp
src/os2/dataobj.cpp
src/os2/dc.cpp
src/os2/dcclient.cpp
src/os2/dcprint.cpp
src/os2/dnd.cpp
src/os2/font.cpp
src/os2/fontutil.cpp
src/os2/frame.cpp
src/os2/iniconf.cpp
src/os2/listbox.cpp
src/os2/mdi.cpp
src/os2/mimetype.cpp
src/os2/notebook.cpp
src/os2/ownerdrw.cpp
src/os2/print.cpp
src/os2/settings.cpp
src/os2/spinbutt.cpp
src/os2/spinctrl.cpp
src/os2/wave.cpp
src/os2/window.cpp

index 70342ca40f4c85972ba76c9302b98f3e166c9c5b..d918cd0d42b6a93119d098382ce43e937c6b8e87 100644 (file)
@@ -115,6 +115,28 @@ bool wxApp::Initialize(
   HAB                               vHab
 )
 {
+#if defined(wxUSE_CONSOLEDEBUG)
+  #if wxUSE_CONSOLEDEBUG
+/***********************************************/
+/* Code for using stdout debug                 */
+/* To use it you mast link app as "Window" - EK*/
+/***********************************************/
+  {
+     PPIB pib;
+     PTIB tib;
+
+    printf("In console\n");
+
+  DosGetInfoBlocks(&tib, &pib);
+/* Try morphing into a PM application. */
+//  if(pib->pib_ultype == 2)    /* VIO */
+    pib->pib_ultype = 3;
+   }
+/**********************************************/
+/**********************************************/
+  #endif //wxUSE_CONSOLEDEBUG
+#endif
+
     //
     // OS2 has to have an anchorblock
     //
@@ -169,6 +191,7 @@ bool wxApp::Initialize(
     return TRUE;
 } // end of wxApp::Initialize
 
+const char*                         CANTREGISTERCLASS = " Can't register Class ";
 // ---------------------------------------------------------------------------
 // RegisterWindowClasses
 // ---------------------------------------------------------------------------
@@ -402,6 +425,9 @@ void wxApp::CleanUp()
 #endif // wxUSE_LOG
 } // end of wxApp::CleanUp
 
+//----------------------------------------------------------------------
+// Main wxWindows entry point
+//----------------------------------------------------------------------
 int wxEntry(
   int                               argc
 , char*                             argv[]
@@ -460,7 +486,7 @@ int wxEntry(
 //          nRetValue = -1;
         }
     }
-
+// Normal exit
     wxWindow*                       pTopWindow = wxTheApp->GetTopWindow();
 
     if (pTopWindow)
@@ -478,8 +504,24 @@ int wxEntry(
             wxTheApp->SetTopWindow(NULL);
         }
     }
+    else // app initialization failed
+    {
+        wxLogLastError(" Gui initialization failed, exitting");
+    }
+#if wxUSE_CONSOLEDEBUG
+    printf("wxTheApp->OnExit ");
+    fflush(stdout);
+#endif
     wxTheApp->OnExit();
+#if wxUSE_CONSOLEDEBUG
+    printf("wxApp::CleanUp ");
+    fflush(stdout);
+#endif
     wxApp::CleanUp();
+#if wxUSE_CONSOLEDEBUG
+    printf("return %i ", nRetValue);
+    fflush(stdout);
+#endif
     return(nRetValue);
 } // end of wxEntry
 
@@ -550,7 +592,6 @@ bool wxApp::DoMessage()
 {
     BOOL                            bRc = ::WinGetMsg(vHabmain, &svCurrentMsg, HWND(NULL), 0, 0);
 
-//    wxUsleep(1000);
     if (bRc == 0)
     {
         // got WM_QUIT
@@ -749,13 +790,13 @@ bool wxApp::ProcessMessage(
            if((CHARMSG(pChmsg)->fs & (KC_ALT | KC_CTRL)) && CHARMSG(pChmsg)->chr != 0)
                 CHARMSG(pChmsg)->chr = (USHORT)wxToupper((UCHAR)uSch);
 
-  
+
            for(pWnd = pWndThis; pWnd; pWnd = pWnd->GetParent() )
            {
                if((bRc = pWnd->OS2TranslateMessage(pWxmsg)) == TRUE)
                    break;
            }
-  
+
             if(!bRc)    // untranslated, should restore original value
                 CHARMSG(pChmsg)->chr = uSch;
         }
index 98031a0a7570dd05e7c385cd0a6a75e59004a782..3763a035a12a02ab7752187a8c5b0a966d941b84 100644 (file)
@@ -313,6 +313,7 @@ bool wxBitmapDataObject::SetData(
 
     memcpy(m_pngData, pBuf, m_pngSize);
 
+#if wxUSE_STREAMS
     wxMemoryInputStream             vMstream((char*)m_pngData, m_pngSize);
     wxImage                         vImage;
     wxPNGHandler                    vHandler;
@@ -323,6 +324,8 @@ bool wxBitmapDataObject::SetData(
     }
 
     m_bitmap = vImage.ConvertToBitmap();
+#endif //wxUSE_STREAMS
+
     return m_bitmap.Ok();
 }
 
@@ -331,6 +334,7 @@ void wxBitmapDataObject::DoConvertToPng()
     if (!m_bitmap.Ok())
         return;
 
+#if wxUSE_STREAMS
     wxImage                         vImage(m_bitmap);
     wxPNGHandler                    vHandler;
     wxCountingOutputStream          vCount;
@@ -343,5 +347,6 @@ void wxBitmapDataObject::DoConvertToPng()
     wxMemoryOutputStream            vMstream((char*) m_pngData, m_pngSize);
 
     vHandler.SaveFile(&vImage, vMstream );
+#endif
 }
 
index 63a91c8b71b038d0e4ad9ab281ad4c07fe3985ba..0f5740f398c53cdf33c4534ea9e8743accdaa2e5 100644 (file)
@@ -54,6 +54,74 @@ static const int MM_METRIC = 10;
 // convert degrees to radians
 static inline double DegToRad(double deg) { return (deg * M_PI) / 180.0; }
 
+int SetTextColor(
+  HPS                               hPS
+, int                               nForegroundColour
+)
+{
+    CHARBUNDLE                      vCbnd;
+
+    vCbnd.lColor =  nForegroundColour;
+    ::GpiSetAttrs( hPS       // presentation-space handle
+                  ,PRIM_CHAR // Char primitive.
+                  ,CBB_COLOR // sets color.
+                  ,0         //
+                  ,&vCbnd    // buffer for attributes.
+                 );
+    return 0;
+}
+
+int QueryTextBkColor(
+  HPS                               hPS
+)
+{
+    CHARBUNDLE                      vCbnd;
+
+    ::GpiQueryAttrs(hPS            // presentation-space handle
+                    PRIM_CHAR      // Char primitive.
+                    CBB_BACK_COLOR // Background color.
+                    &vCbnd         // buffer for attributes.
+    return vCbnd.lBackColor;
+}
+
+
+int SetTextBkColor(
+  HPS                               hPS
+, int                               nBackgroundColour
+)
+{
+    CHARBUNDLE                      vCbnd;
+    int                             rc;
+
+    rc =  QueryTextBkColor(hPS);
+
+    vCbnd.lBackColor = nBackgroundColour;
+    ::GpiSetAttrs(hPS,            // presentation-space handle
+                  PRIM_CHAR,      // Char primitive.
+                  CBB_BACK_COLOR, // sets color.
+                  0,
+                  &vCbnd          // buffer for attributes.
+                 );
+    return rc;
+}
+
+int SetBkMode(
+  HPS                               hPS
+, int                               nBackgroundMode
+)
+{
+    if(nBackgroundMode == wxTRANSPARENT)
+        ::GpiSetBackMix( hPS
+                        ,BM_LEAVEALONE
+                       );
+    else
+        // the background of the primitive takes  over whatever is underneath.
+        ::GpiSetBackMix( hPS
+                        ,BM_OVERPAINT
+                        );
+    return 0;
+}
+
 // ===========================================================================
 // implementation
 // ===========================================================================
@@ -64,17 +132,20 @@ static inline double DegToRad(double deg) { return (deg * M_PI) / 180.0; }
 
 wxDC::wxDC(void)
 {
-    m_pCanvas     = NULL;
+    m_pCanvas      = NULL;
 
-    m_hOldBitmap  = 0;
-    m_hOldPen     = 0;
-    m_hOldBrush   = 0;
-    m_hOldFont    = 0;
-    m_hOldPalette = 0;
+    m_hOldBitmap   = 0;
+    m_hOldPen      = 0;
+    m_hOldBrush    = 0;
+    m_hOldFont     = 0;
+    m_hOldPalette  = 0;
 
-    m_bOwnsDC     = FALSE;
-    m_hDC         = 0;
-    m_nDCCount    = 0;
+    m_bOwnsDC      = FALSE;
+    m_hDC          = 0;
+    m_nDCCount     = 0;
+    m_hOldPS       = NULL;
+    m_hPS          = NULL;
+    m_bIsPaintTime = FALSE;// True at Paint Time
 };
 
 wxDC::~wxDC(void)
@@ -214,9 +285,22 @@ void wxDC::DoCrossHair(wxCoord x, wxCoord y)
    // TODO
 }
 
-void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
+void wxDC::DoDrawLine(
+  wxCoord                           vX1
+, wxCoord                           vY1
+, wxCoord                           vX2
+, wxCoord                           vY2
+)
 {
-   // TODO
+    POINTL                          vPoint[2];
+
+    vPoint[0].x = vX1;
+    vPoint[0].y = vY1;
+    vPoint[1].x = vX2;
+    vPoint[1].y = vY2;
+    // ::GpiSetColor(m_hPS,CLR_RED); //DEbug
+    ::GpiMove(m_hPS, &vPoint[0]);
+    ::GpiLine(m_hPS, &vPoint[1]);
 }
 
 void wxDC::DoDrawArc( wxCoord x1, wxCoord y1
@@ -253,17 +337,51 @@ void wxDC::DoDrawLines( int n, wxPoint points[]
    // TODO
 }
 
-void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+void wxDC::DoDrawRectangle(
+  wxCoord                           vS
+, wxCoord                           vY
+, wxCoord                           vWidth
+, wxCoord                           vHeight
+)
 {
-   // TODO
+    POINTL                          vPoint[2];
+
+    vPoint[0].x = vX;
+    vPoint[0].y = vY;
+    vPoint[1].x = vX + Width;
+    vPoint[1].y = vY - Height;      //mustdie !!! ??
+
+    ::GpiMove(m_hPS, &vPoint[0]);
+    ::GpiBox( m_hPS       // handle to a presentation space
+             ,DRO_OUTLINE // draw the box outline ? or ?
+             ,&vPoint[1]  // address of the corner
+             ,0L          // horizontal corner radius
+             ,0L          // vertical corner radius
+            );
 }
 
-void wxDC::DoDrawRoundedRectangle( wxCoord x, wxCoord y
-                                  ,wxCoord width, wxCoord height
-                                  ,double radius
-                                 )
+void wxDC::DoDrawRoundedRectangle(
+  wxCoord                           vX
+, wxCoord                           vY
+, wxCoord                           vWidth
+, wxCoord                           vHeight
+, double                            dRadius
+)
 {
-   // TODO
+    POINTL                          vPoint[2];
+
+    vPoint[0].x = vX;
+    vPoint[0].y = vY;
+    vPoint[1].x = vX + vWidth;
+    vPoint[1].y = vY + vHeight;      //or -height aka mustdie !!! ??
+
+    ::GpiMove(m_hPS, &vPoint[0]);
+    ::GpiBox( m_hPS        // handle to a presentation space
+             ,DRO_OUTLINE  // draw the box outline ? or ?
+             ,&vPoint[1]   // address of the corner
+             ,(LONG)radius // horizontal corner radius
+             ,(LONG)radius // vertical corner radius
+            );
 }
 
 void wxDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
@@ -295,20 +413,93 @@ void wxDC::DoDrawBitmap( const wxBitmap &bmp
    // TODO
 }
 
-void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
+void wxDC::DoDrawText(
+  const wxString&                   rsText
+, wxCoord                           vX
+, wxCoord                           vY
+)
 {
-   // TODO
+    DrawAnyText( rsText
+                ,vX
+                ,vY
+               );
 }
 
-void wxDC::DrawAnyText(const wxString& text, wxCoord x, wxCoord y)
+void wxDC::DrawAnyText(
+  const wxString&                   rsText
+, wxCoord                           vX
+, wxCoord                           vY
+)
 {
-    // TODO
-}
+    int                             nOldBackground = 0;
+    POINTL                          vPtlStart;
+    LONG                            lHits;
+
+    //
+    // prepare for drawing the text
+    //
+
+    //
+    // Set text color attributes
+    //
+    if (m_textForegroundColour.Ok())
+    {
+        SetTextColor( m_hPS
+                     ,(int)m_textForegroundColour.GetPixel()
+                    );
+    }
 
-void wxDC::DoDrawRotatedText(const wxString& text,
-                             wxCoord x, wxCoord y,
-                             double angle)
+    if (m_textBackgroundColour.Ok())
+    {
+        nOldBackground = SetTextBkColor( m_hPS
+                                        ,(int)m_textBackgroundColour.GetPixel()
+                                       );
+    }
+    SetBkMode( m_hPS
+              ,m_backgroundMode
+             );
+    vPtlStart.x = vX;
+    vPtlStart.y = vY;
+
+    lHits = ::GpiCharStringAt( m_hPS
+                              ,&vPtlStart
+                              ,rsText.length()
+                              ,(PCH)rsText.c_str()
+                             );
+    if (lHits != GPI_OK)
+    {
+        wxLogLastError(wxT("TextOut"));
+    }
+
+    //
+    // Restore the old parameters (text foreground colour may be left because
+    // it never is set to anything else, but background should remain
+    // transparent even if we just drew an opaque string)
+    //
+    if (m_textBackgroundColour.Ok())
+            SetTextBkColor( m_hPS
+                           ,nOldBackground
+                          );
+    SetBkMode( m_hPS
+              ,wxTRANSPARENT
+             );
+}
+
+void wxDC::DoDrawRotatedText(
+  const wxString&                   rsText
+, wxCoord                           vX
+, wxCoord                           vY
+, double                            dAngle
+)
 {
+    if (dAngle == 0.0)
+    {
+        DoDrawText( rsText
+                   ,vX
+                   ,vY
+                  );
+    }
+
    // TODO:
    /*
     if ( angle == 0.0 )
@@ -405,10 +596,39 @@ void wxDC::SetFont(
     }
 }
 
-void wxDC::SetPen(const wxPen& pen)
+void wxDC::SetPen(
+  const wxPen&                      rPen
+)
 {
-   // TODO
+    wxCHECK_RET( Ok(), wxT("invalid window dc") );
+
+    if (m_pen == rPen)
+        return;
+    m_pen = rPen;
+    if (!m_pen.Ok())
+        return;
+
+    int                             nWidth = m_pen.GetWidth();
+
+    if (nWidth <= 0)
+    {
+        nWidth = 1;
+    }
+    else
+    {
+        double                      dW = 0.5 +
+                                       ( fabs((double) XLOG2DEVREL(width)) +
+                                         fabs((double) YLOG2DEVREL(width))
+                                       ) / 2.0;
+        nWidth = (int)dW;
+    }
+    wxColour                        vColor = m_pen.GetColour();
+
+    ::GpiSetColor( m_hPS
+                  ,vColor.GetPixel()
+                 ); //DEbug ??
 }
+
 void wxDC::SetBrush(const wxBrush& brush)
 {
    // TODO
@@ -419,9 +639,11 @@ void wxDC::SetBackground(const wxBrush& brush)
    // TODO
 }
 
-void wxDC::SetBackgroundMode(int mode)
+void wxDC::SetBackgroundMode(
+  int                               nMode
+)
 {
-   // TODO
+    m_backgroundMode = nMode;
 }
 
 void wxDC::SetLogicalFunction(int function)
@@ -486,24 +708,78 @@ void wxDC::EndPage()
 wxCoord wxDC::GetCharHeight() const
 {
     // TODO
-    return(1);
+    return(8);
 }
 
 wxCoord wxDC::GetCharWidth() const
 {
     // TODO
-    return(1);
-}
+    return(8);
+}
+
+void wxDC::DoGetTextExtent(
+  const wxString&                   rsString
+, wxCoord*                          pvX
+, wxCoord*                          pvY
+, wxCoord*                          pvDecent
+, wxCoord*                          pvExternalLeading
+, wxFont*                           pTheFont
+) const
+{
+    POINTL                          avPoint[TXTBOX_COUNT];
+    POINTL                          vPtMin;
+    POINTL                          vPtMax;
+    int                             i;
+    int                             l;
+    FONTMETRICS                     vFM; // metrics structure
+    BOOL                            bRc;
+    char*                           pStr;
+    ERRORID                         vErrorCode; // last error id code
+    wxFont*                         pFontToUse = (wxFont*)pTheFont;
+
+    if (!pFontToUse)
+        pFontToUse = (wxFont*)&m_font;
+    l = rsString.length();
+    pStr = (PCH) rsString.c_str();
 
-void wxDC::DoGetTextExtent( const wxString& string
-                           ,wxCoord* x
-                           ,wxCoord* y
-                           ,wxCoord* decent
-                           ,wxCoord* externalLeading
-                           ,wxFont* theFont
-                          ) const
-{
-   // TODO:
+    //
+    // In world coordinates.
+    //
+    bRc = ::GpiQueryTextBox( m_hPS
+                            ,l
+                            ,pStr
+                            ,TXTBOX_COUNT // return maximum information
+                            ,avPoint      // array of coordinates points
+                           )
+    if(!bRc)
+    {
+       vErrorCode = ::WinGetLastError(wxGetInstance());
+    }
+
+    vPtMin.x = avPoint[0].x;
+    vPtMax.x = avPoint[0].x;
+    vPtMin.y = avPoint[0].y;
+    vPtMax.y = avPoint[0].y;
+    for (i = 1; i < 4; i++)
+    {
+        if(vPtMin.x > avPoint[i].x) vPtMin.x = avPoint[i].x;
+        if(vPtMin.y > avPoint[i].y) vPtMin.y = avPoint[i].y;
+        if(vPtMax.x < avPoint[i].x) vPtMax.x = avPoint[i].x;
+        if(vPtMax.y < avPoint[i].y) vPtMax.y = avPoint[i].y;
+    }
+    ::GpiQueryFontMetrics( m_hPS
+                          ,sizeof(FONTMETRICS)
+                          ,&vFM
+                         );
+
+    if (pvX)
+        *pvX = (wxCoord)(vPtMax.x - vPtMin.x + 1);
+    if (pvY)
+        *pvY = (wxCoord)(vPtMax.y - vPtMin.y + 1);
+    if (pvDescent)
+        *pvDescent = vFM.lMaxDescender;
+    if (externalLeading)
+        *pvExternalLeading = vFM.lExternalLeading;
 }
 
 void wxDC::SetMapMode( int mode )
index cee1da72147ff9dd4998e85f820910cb950d0c57..27ae79a395bf20c3fb97577bdbeb5e365565af21 100644 (file)
@@ -117,8 +117,11 @@ wxWindowDC::~wxWindowDC()
     // They automatically close with the window, unless explicitly detached
     // but we need to destroy our PS
     //
-    ::GpiAssociate(m_hPS, NULLHANDLE);
-    ::GpiDestroyPS(m_hPS);
+    if(m_hPS)
+    {
+        ::GpiAssociate(m_hPS, NULLHANDLE);
+        ::GpiDestroyPS(m_hPS);
+    }
     m_hPS = NULLHANDLE;
     m_hDC = NULLHANDLE;
   }
@@ -137,17 +140,27 @@ wxClientDC::wxClientDC()
 
 wxClientDC::wxClientDC(wxWindow *the_canvas)
 {
-  m_pCanvas = the_canvas;
+    SIZEL                           vSizl = { 0,0};
 
-  //
-  // default under PM is that Window and Client DC's are the same
-  //
-  m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(the_canvas));
+    m_pCanvas = the_canvas;
 
-  //
-  // Default mode is BM_LEAVEALONE so we make no call Set the mix
-  //
-  SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
+    //
+    // default under PM is that Window and Client DC's are the same
+    //
+    m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(the_canvas));
+    m_hPS = ::GpiCreatePS( wxGetInstance()
+                          ,m_hDC
+                          ,&sizl
+                          ,PU_PELS | GPIF_LONG | GPIA_ASSOC
+                         );
+
+    //
+    // Default mode is BM_LEAVEALONE so we make no call Set the mix
+    //
+    SetBackground(wxBrush( m_pCanvas->GetBackgroundColour()
+                          ,wxSOLID
+                         )
+                 );
 }
 
 wxClientDC::~wxClientDC()
@@ -191,31 +204,48 @@ wxPaintDC::wxPaintDC()
     m_hDC = 0;
 }
 
-wxPaintDC::wxPaintDC(wxWindow *canvas)
+wxPaintDC::wxPaintDC(
+  wxWindow*                         pCanvas
+)
 {
     wxCHECK_RET( canvas, wxT("NULL canvas in wxPaintDC ctor") );
 
 #ifdef __WXDEBUG__
-    if ( g_isPainting <= 0 )
+    if (g_isPainting <= 0)
     {
         wxFAIL_MSG( wxT("wxPaintDC may be created only in EVT_PAINT handler!") );
-
         return;
     }
 #endif // __WXDEBUG__
 
-    m_pCanvas = canvas;
+    m_pCanvas = pCanvas;
 
-    // do we have a DC for this window in the cache?
-    wxPaintDCInfo *info = FindInCache();
-    if ( info )
+    //
+    // Do we have a DC for this window in the cache?
+    //
+    wxPaintDCInfo*                  pInfo = FindInCache();
+
+    if (pInfo)
     {
-        m_hDC = info->hdc;
-        info->count++;
+        m_hDC = pInfo->hdc;
+        pInfo->count++;
     }
     else // not in cache, create a new one
     {
-        m_hDC = (WXHDC)::WinBeginPaint(GetWinHwnd(m_pCanvas), NULLHANDLE, &g_paintStruct);
+        HPS                         hPS;
+
+        hPS = ::WinBeginPaint( GetWinHwnd(m_pCanvas)
+                              ,NULLHANDLE
+                              ,&g_paintStruct
+                             );
+        if(hPS)
+        {
+            m_hOldPS = m_hPS;
+            m_hPS = hPS;
+        }
+        m_bIsPaintTime   = TRUE;
+        m_hDC = (WXHDC) -1; // to satisfy those anonizmous efforts
+        m_vRclPaint = g_paintStruct;
         ms_cache.Add(new wxPaintDCInfo(m_pCanvas, this));
     }
     SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
@@ -235,7 +265,8 @@ wxPaintDC::~wxPaintDC()
         if ( !--info->count )
         {
             ::WinEndPaint(m_hPS);
-
+            m_hPS          = m_OldhPS;
+            m_bIsPaintTime = FALSE;
             ms_cache.Remove(index);
         }
         //else: cached DC entry is still in use
index 7f9139ce16e5d932cc917c80348530fb5ebb0f0f..81c60a30d499c161e5108e069b34723821e2072a 100644 (file)
@@ -27,6 +27,8 @@
 #include "wx/dcprint.h"
 #include "math.h"
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 IMPLEMENT_CLASS(wxPrinterDC, wxDC)
 
 
@@ -328,3 +330,4 @@ WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst)
     return (WXHDC) hDC;
 }
 
+#endif //wxUSE_PRINTING_ARCHITECTURE
index f8ed534d5dd4784b34dc5add63f8494a5d000044..70d916d6528af2565d4fcb688aec4e35a6d76a2a 100644 (file)
@@ -21,6 +21,8 @@
 #include "wx/gdicmn.h"
 #include "wx/dnd.h"
 
+#if wxUSE_DRAG_AND_DROP
+
 // ----------------------------------------------------------------------------
 // global
 // ----------------------------------------------------------------------------
@@ -134,3 +136,4 @@ void wxDropSource::Init()
     // TODO
 };
 
+#endif //wxUSE_DRAG_AND_DROP
index b443496b6a6303033f27738d86ea8419e1e58e1c..19c715f7a25445e70d12c2ad2cb36848d764b8eb 100644 (file)
@@ -8,6 +8,36 @@
 // Copyright:   (c) David Webster
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
+#define DEBUG_PRINTF(NAME)   { static int raz=0; \
+  printf( #NAME " %i\n",raz); fflush(stdout);       \
+   raz++;                                        \
+ }
+
+ #include <malloc.h>
+ #include <stdio.h>
+
+ int HeapCheck(void)
+ {
+    int  rc;
+
+    if (_HEAPOK != (rc = _heapchk()))
+    {
+       switch(rc)
+       {
+          case _HEAPEMPTY:
+             puts("The heap has not been initialized.");
+             break;
+          case _HEAPBADNODE:
+             puts("A memory node is corrupted or the heap is damaged.");
+             break;
+          case _HEAPBADBEGIN:
+             puts("The heap specified is not valid.");
+             break;
+       }
+       fflush(stdout);
+    }
+    return 0;
+ }
 
 // ============================================================================
 // declarations
@@ -17,6 +47,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
+ #include <malloc.h>
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -135,6 +166,7 @@ void wxFontRefData::Init(int pointSize,
 
 wxFontRefData::~wxFontRefData()
 {
+DEBUG_PRINTF(wxFontRefData::~wxFontRefData!!!)
 // TODO:
 //    if ( m_hFont )
 //    {
@@ -151,6 +183,9 @@ wxFontRefData::~wxFontRefData()
 
 void wxFont::Init()
 {
+
+DEBUG_PRINTF(wxFontRefData::~wxFontRefData!!!)
+
     if ( wxTheFontList )
         wxTheFontList->Append(this);
 }
@@ -167,6 +202,7 @@ bool wxFont::Create(int pointSize,
                     wxFontEncoding encoding)
 {
     UnRef();
+DEBUG_PRINTF(wxFontRefData::~wxFontRefData!!!)
     m_refData = new wxFontRefData(pointSize, family, style, weight,
                                   underlined, faceName, encoding);
 
@@ -177,8 +213,16 @@ bool wxFont::Create(int pointSize,
 
 wxFont::~wxFont()
 {
+  int l;
+  l = sizeof(*this);
+HeapCheck();
+ _heap_check();
+
     if ( wxTheFontList )
         wxTheFontList->DeleteObject(this);
+HeapCheck();
+ _heap_check();
+
 }
 
 // ----------------------------------------------------------------------------
@@ -190,6 +234,7 @@ wxFont::~wxFont()
 
 bool wxFont::RealizeResource()
 {
+DEBUG_PRINTF(wxFont::RealizeResource)
     if ( GetResourceHandle() )
     {
         // VZ: the old code returned FALSE in this case, but it doesn't seem
@@ -273,7 +318,7 @@ bool wxFont::RealizeResource()
             fName.usWeightClass = FWEIGHT_BOLD;
             break;
     }
-  
+
     if( M_FONTDATA->m_underlined )
         fAttrs.fsSelection |= FATTR_SEL_UNDERSCORE;
 
@@ -339,13 +384,13 @@ bool wxFont::RealizeResource()
             break;
     }
 
-// Now cheking 
+// Now cheking
     fLid = 1;
     hps  = ::WinGetPS( HWND_DESKTOP );
 
     long numLids = ::GpiQueryNumberSetIds( hps );
     long gpiError;
-    
+
     // First we should generate unique id
     if( numLids )
     {
@@ -358,7 +403,7 @@ bool wxFont::RealizeResource()
             ::WinReleasePS( hps );
             return 0;
         }
-      
+
         for(unsigned long LCNum = 0; LCNum < numLids; LCNum++)
             if(lIds[LCNum] == fLid)
                ++fLid;
@@ -513,7 +558,14 @@ void wxFont::SetEncoding(wxFontEncoding encoding)
 
 int wxFont::GetPointSize() const
 {
-    return M_FONTDATA->m_pointSize;
+DEBUG_PRINTF(wxFont::GetPointSize)
+    wxFontRefData*                  pTmp;
+
+    pTmp = M_FONTDATA;
+    if(pTmp)
+      return pTmp->m_pointSize;
+    else
+        return 10;
 }
 
 int wxFont::GetFamily() const
index a3444c57653308b538ce74976013ac92bd6ddb37..c5e987133b94e6b8fbab8d66446bf13a84849f23 100644 (file)
@@ -8,6 +8,10 @@
 // Copyright:   (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows license
 ///////////////////////////////////////////////////////////////////////////////
+#define DEBUG_PRINTF(NAME)   { static int raz=0; \
+  printf( #NAME " %i\n",raz); fflush(stdout);       \
+   raz++;                                        \
+ }
 
 // ============================================================================
 // declarations
@@ -85,7 +89,7 @@ bool wxNativeEncodingInfo::FromString(const wxString& s)
 wxString wxNativeEncodingInfo::ToString() const
 {
     wxString s;
-    
+
     s << (long)encoding << _T(';') << facename;
 
 // TODO: what is this for OS/2?
@@ -334,6 +338,8 @@ void wxFillLogFont(LOGFONT *logFont, const wxFont *font)
 
 wxFont wxCreateFontFromLogFont(const LOGFONT *logFont)
 {
+DEBUG_PRINTF(wxCreateFontFromLogFont)
+
     // extract family from pitch-and-family
     int lfFamily = logFont->lfPitchAndFamily;
     if ( lfFamily & FIXED_PITCH )
index 9de5fdf513519bb39e8e8f4b031323c32ce19065..d1b66cd19568c95e13147fd418683758e17d621d 100644 (file)
@@ -64,6 +64,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
 // ----------------------------------------------------------------------------
 // static class members
 // ----------------------------------------------------------------------------
+#if wxUSE_STATUSBAR
 
 #if wxUSE_NATIVE_STATUSBAR
     bool wxFrame::m_bUseNativeStatusBar = TRUE;
@@ -71,6 +72,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
     bool wxFrame::m_bUseNativeStatusBar = FALSE;
 #endif
 
+#endif //wxUSE_STATUSBAR
+
 // ----------------------------------------------------------------------------
 // creation/destruction
 // ----------------------------------------------------------------------------
@@ -124,8 +127,13 @@ bool wxFrame::Create(
     SetName(rsName);
     m_windowStyle    = lulStyle;
     m_frameMenuBar   = NULL;
+#if wxUSE_TOOLBAR
     m_frameToolBar   = NULL;
+#endif //wxUSE_TOOLBAR
+
+#if wxUSE_STATUSBAR
     m_frameStatusBar = NULL;
+#endif //wxUSE_STATUSBAR
 
     SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
 
@@ -487,12 +495,12 @@ wxStatusBar* wxFrame::OnCreateStatusBar(
     if( !pStatusBar )
         return NULL;
 
-    // 
+    //
     // to show statusbar
     //
     if( ::WinIsWindowShowing(GetHWND()) )
         ::WinSendMsg(GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
-    
+
     return pStatusBar;
 } // end of wxFrame::OnCreateStatusBar
 
@@ -674,6 +682,7 @@ void wxFrame::OnSysColourChanged(
     SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
     Refresh();
 
+#if wxUSE_STATUSBAR
     if (m_frameStatusBar)
     {
         wxSysColourChangedEvent     vEvent2;
@@ -681,6 +690,7 @@ void wxFrame::OnSysColourChanged(
         vEvent2.SetEventObject(m_frameStatusBar);
         m_frameStatusBar->GetEventHandler()->ProcessEvent(vEvent2);
     }
+#endif //wxUSE_STATUSBAR
 
     //
     // Propagate the event to the non-top-level children
@@ -702,16 +712,27 @@ bool wxFrame::ShowFullScreen(
         m_bFsIsShowing = TRUE;
         m_lFsStyle = lStyle;
 
+#if wxUSE_TOOLBAR
            wxToolBar*                  pTheToolBar = GetToolBar();
+#endif //wxUSE_TOOLBAR
+
+#if wxUSE_STATUSBAR
            wxStatusBar*                pTheStatusBar = GetStatusBar();
+#endif //wxUSE_STATUSBAR
 
         int                         nDummyWidth;
 
+#if wxUSE_TOOLBAR
         if (pTheToolBar)
             pTheToolBar->GetSize(&nDummyWidth, &m_nFsToolBarHeight);
+#endif //wxUSE_TOOLBAR
+
+#if wxUSE_STATUSBAR
         if (pTheStatusBar)
             pTheStatusBar->GetSize(&nDummyWidth, &m_nFsStatusBarHeight);
+#endif //wxUSE_STATUSBAR
 
+#if wxUSE_TOOLBAR
         //
         // Zap the toolbar, menubar, and statusbar
         //
@@ -720,6 +741,7 @@ bool wxFrame::ShowFullScreen(
             pTheToolBar->SetSize(-1,0);
             pTheToolBar->Show(FALSE);
         }
+#endif //wxUSE_TOOLBAR
 
         if (lStyle & wxFULLSCREEN_NOMENUBAR)
         {
@@ -728,6 +750,7 @@ bool wxFrame::ShowFullScreen(
             ::WinSendMsg((HWND)GetHWND(), WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
         }
 
+#if wxUSE_STATUSBAR
         //
         // Save the number of fields in the statusbar
         //
@@ -739,6 +762,7 @@ bool wxFrame::ShowFullScreen(
         }
         else
             m_nFsStatusBarFields = 0;
+#endif //wxUSE_STATUSBAR
 
         //
         // Zap the frame borders
@@ -819,6 +843,7 @@ bool wxFrame::ShowFullScreen(
 
         m_bFsIsShowing = FALSE;
 
+#if wxUSE_TOOLBAR
         wxToolBar*                  pTheToolBar = GetToolBar();
 
         //
@@ -829,12 +854,15 @@ bool wxFrame::ShowFullScreen(
             pTheToolBar->SetSize(-1, m_nFsToolBarHeight);
             pTheToolBar->Show(TRUE);
         }
+#endif //wxUSE_TOOLBAR
 
+#if wxUSE_STATUSBAR
         if ((m_lFsStyle & wxFULLSCREEN_NOSTATUSBAR) && (m_nFsStatusBarFields > 0))
         {
             CreateStatusBar(m_nFsStatusBarFields);
 //          PositionStatusBar();
         }
+#endif //wxUSE_STATUSBAR
 
         if ((m_lFsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0))
         {
@@ -977,7 +1005,7 @@ bool wxFrame::OS2Create(
         return FALSE;
     }
 
-    // 
+    //
     // Now need to subclass window.
     //
 
@@ -1058,6 +1086,7 @@ wxPoint wxFrame::GetClientAreaOrigin() const
 {
     wxPoint                         vPoint(0, 0);
 
+#if wxUSE_TOOLBAR
     if (GetToolBar())
     {
         int                         nWidth;
@@ -1077,6 +1106,7 @@ wxPoint wxFrame::GetClientAreaOrigin() const
             vPoint.y += nHeight;
         }
     }
+#endif //wxUSE_TOOLBAR
     return vPoint;
 } // end of wxFrame::GetClientAreaOrigin
 
@@ -1199,8 +1229,12 @@ bool wxFrame::OS2TranslateMessage(
     if (!pMenuBar )
         return FALSE;
 
+#if wxUSE_ACCEL
     const wxAcceleratorTable&       rAcceleratorTable = pMenuBar->GetAccelTable();
     return rAcceleratorTable.Translate(GetHWND(), pMsg);
+#else
+    return FALSE;
+#endif //wxUSE_ACCEL
 } // end of wxFrame::OS2TranslateMessage
 
 // ---------------------------------------------------------------------------
@@ -1334,7 +1368,10 @@ bool wxFrame::HandleSize(
 #endif // wxUSE_NATIVE_STATUSBAR
 
 //      PositionStatusBar();
+#if  wxUSE_TOOLBAR
         PositionToolBar();
+#endif // wxUSE_TOOLBAR
+
         wxSizeEvent                 vEvent( wxSize( nX
                                                    ,nY
                                                   )
@@ -1534,8 +1571,11 @@ MRESULT wxFrame::OS2WindowProc(
         case WM_QUERYFRAMECTLCOUNT:
             {
                 USHORT itemCount = SHORT1FROMMR(OS2GetOldWndProc()(GetHWND(), uMessage, wParam, lParam));
+#if wxUSE_STATUSBAR
                 if(m_frameStatusBar)
                    ++itemCount;
+#endif //wxUSE_STATUSBAR
+
                 bProcessed = TRUE;
                 mRc = MRFROMSHORT( itemCount );
             }
@@ -1556,12 +1596,13 @@ MRESULT wxFrame::OS2WindowProc(
                      && usClient < itemCount)
                     usClient++;
 
+#if wxUSE_STATUSBAR
                 if(m_frameStatusBar)
                 {
                    int height;
 
                    m_frameStatusBar->GetSize(NULL, &height);
+
                    if(usClient == itemCount)
                    {
                       // frame has no client window
@@ -1601,6 +1642,8 @@ MRESULT wxFrame::OS2WindowProc(
                        ++itemCount;
                    }
                 }
+#endif //wxUSE_STATUSBAR
+
                 bProcessed = TRUE;
                 mRc = MRFROMSHORT(itemCount);
             }
index 68a8bab6aed41a3a2fd5c7561f6263e2e311123b..05bdb58dd63475ea96a0affafb042b833abfb609 100644 (file)
@@ -21,7 +21,9 @@
 
 #include  <wx/dynarray.h>
 #include  <wx/log.h>
+
 #include  <wx/config.h>
+#if wxUSE_CONFIG
 
 #include  <wx/os2/iniconf.h>
 
@@ -461,3 +463,5 @@ bool wxIniConfig::RenameGroup(const wxString& oldName, const wxString& newName)
     // Not implemented
     return FALSE;
 }
+
+#endif //wxUSE_CONFIG
index 2ecb09a5eb944a05685643aa4281473479bd34dc..ec9bfbda113852ee7cd39d17e501db8c3e9396d1 100644 (file)
@@ -30,6 +30,8 @@
 #include "wx/dynarray.h"
 #include "wx/log.h"
 
+#if wxUSE_LISTBOX
+
 #if wxUSE_OWNER_DRAWN
     #include  "wx/ownerdrw.h"
 #endif
@@ -774,3 +776,5 @@ bool wxListBox::OS2OnDraw(WXDRAWITEMSTRUCT *item)
 }
 #endif
     // wxUSE_OWNER_DRAWN
+
+#endif //wxUSE_LISTBOX
index 2c36bb8c0d1cbdae47e5113197685ece5b5ceb81..37b17ad0185aee7f6744ba3a29f977791955e259 100644 (file)
@@ -996,7 +996,12 @@ MRESULT wxMDIChildFrame::OS2DefWindowProc(WXUINT message, WXWPARAM wParam, WXLPA
 
 bool wxMDIChildFrame::OS2TranslateMessage(WXMSG* msg)
 {
+#if wxUSE_ACCEL
     return m_acceleratorTable.Translate(GetParent()->GetHWND(), msg);
+#else
+    return FALSE;
+#endif  //wxUSE_ACCEL
+
 }
 
 // ---------------------------------------------------------------------------
index 623d4f064469b1cdfd2bfe9b5c7beb740f357692..cd51d499dc41e9a07ede4596e5b941ddbdf8306f 100644 (file)
@@ -27,6 +27,8 @@
 #include "wx/dynarray.h"
 #include "wx/confbase.h"
 
+#if wxUSE_FILE
+
 #include "wx/os2/mimetype.h"
 
 // other standard headers
@@ -450,3 +452,4 @@ size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
   return 0;
 }
 
+#endif //wxUSE_FILE
index 82ebe9a138deddfe5498c3dc8a5008a7d1d94f00..e528e4ab3ed072dd5b816bd4d458df465e2a8cb3 100644 (file)
@@ -347,8 +347,11 @@ void wxNotebook::OnSize(wxSizeEvent& event)
     for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) {
         wxNotebookPage *pPage = m_aPages[nPage];
         pPage->SetSize(0, 0, w, h);
+#if wxUSE_CONSTRAINTS
         if ( pPage->GetAutoLayout() )
             pPage->Layout();
+#endif //wxUSE_CONSTRAINTS
+
     }
 
     // Processing continues to next OnSize
@@ -410,8 +413,10 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
 
 void wxNotebook::SetConstraintSizes(bool /* recurse */)
 {
+#if wxUSE_CONSTRAINTS
     // don't set the sizes of the pages - their correct size is not yet known
     wxControl::SetConstraintSizes(FALSE);
+#endif
 }
 
 bool wxNotebook::DoPhase(int /* nPhase */)
index 86d4b6724f79bfed6e19e7a475166e3c6fd06aa2..1be1044bda76b84a761b74ada2317593efe9abd3 100644 (file)
@@ -26,6 +26,8 @@
   #include "wx/utils.h"
 #endif
 
+#if wxUSE_OWNER_DRAWN
+
 #include "wx/ownerdrw.h"
 #include "wx/menuitem.h"
 
@@ -192,3 +194,4 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODSt
   return TRUE;
 }
 
+#endif //wxUSE_OWNER_DRAWN
index ee078d057ef2b1d9bc8b952cdf1db3276b4f7101..9073078b2bb14d48c14bb89d25237a19ebc8905a 100644 (file)
@@ -19,6 +19,7 @@
 #include "wx/app.h"
 #endif
 
+#if wxUSE_PRINTING_ARCHITECTURE
 
 #include "wx/os2/print.h"
 #include "wx/generic/prntdlgg.h"
@@ -94,3 +95,4 @@ void wxPrintPreview::DetermineScaling()
     // TODO
 }
 
+#endif  //wxUSE_PRINTING_ARCHITECTURE
index c47c24d5c4f8096e5ce23def836306fb3418e6b0..f7394528e158b630564951de36aeb6b5bda732de 100644 (file)
@@ -44,7 +44,6 @@ wxColour wxSystemSettings::GetSystemColour(
                      ,GetGValue(vRef)
                      ,GetBValue(vRef)
                     );
-            return vCol;
             break;
 
         case wxSYS_COLOUR_WINDOWFRAME:
@@ -56,7 +55,6 @@ wxColour wxSystemSettings::GetSystemColour(
                      ,GetGValue(vRef)
                      ,GetBValue(vRef)
                     );
-            return vCol;
             break;
 
         case wxSYS_COLOUR_MENUTEXT:
@@ -79,7 +77,6 @@ wxColour wxSystemSettings::GetSystemColour(
                      ,GetGValue(vRef)
                      ,GetBValue(vRef)
                     );
-            return vCol;
             break;
 
         case wxSYS_COLOUR_BTNSHADOW:
@@ -91,7 +88,6 @@ wxColour wxSystemSettings::GetSystemColour(
                      ,GetGValue(vRef)
                      ,GetBValue(vRef)
                     );
-            return vCol;
             break;
 
         case wxSYS_COLOUR_BTNHIGHLIGHT:
@@ -103,7 +99,6 @@ wxColour wxSystemSettings::GetSystemColour(
                      ,GetGValue(vRef)
                      ,GetBValue(vRef)
                     );
-            return vCol;
             break;
 
         //
@@ -118,7 +113,7 @@ wxColour wxSystemSettings::GetSystemColour(
         case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
         case wxSYS_COLOUR_BTNTEXT:
         case wxSYS_COLOUR_INFOTEXT:
-            return(*wxBLACK);
+            vCol = (*wxBLACK);
             break;
 
         //
@@ -128,7 +123,7 @@ wxColour wxSystemSettings::GetSystemColour(
         case wxSYS_COLOUR_ACTIVECAPTION:
         case wxSYS_COLOUR_ACTIVEBORDER:
         case wxSYS_COLOUR_HIGHLIGHT:
-            return(*wxBLUE);
+            vCol = (*wxBLUE);
             break;
 
         case wxSYS_COLOUR_SCROLLBAR:
@@ -142,7 +137,7 @@ wxColour wxSystemSettings::GetSystemColour(
         case wxSYS_COLOUR_3DDKSHADOW:
         case wxSYS_COLOUR_3DLIGHT:
         case wxSYS_COLOUR_INFOBK:
-            return(*wxLIGHT_GREY);
+            vCol = (*wxLIGHT_GREY);
             break;
 
         default:
@@ -154,7 +149,6 @@ wxColour wxSystemSettings::GetSystemColour(
                      ,GetGValue(vRef)
                      ,GetBValue(vRef)
                     );
-            return vCol;
             break;
     }
     return(vCol);
@@ -187,8 +181,10 @@ wxFont wxSystemSettings::GetSystemFont(int index)
             break;
         }
     }
+    if(wxSWISS_FONT)
+         return *wxSWISS_FONT;
 
-    return *wxSWISS_FONT;
+    return wxNullFont;
 }
 
 // Get a system metric, e.g. scrollbar size
index 9ad28c1b3ac8a3362198f99a1174a48a8836a422..99e5852636d1ec34bd7e8fac10887f800cbd4fe9 100644 (file)
@@ -21,6 +21,7 @@
 #ifndef WX_PRECOMP
     #include "wx/wx.h"
 #endif
+#if wxUSE_SPINBTN
 
 // Can't resolve reference to CreateUpDownControl in
 // TWIN32, but could probably use normal CreateWindow instead.
@@ -159,3 +160,4 @@ bool wxSpinButton::OS2Command(WXUINT cmd, WXWORD id)
     return FALSE;
 }
 
+#endif //wxUSE_SPINBTN
index edfa2468f36426c9b63d8811b558ca613c220dd0..aa6b5bf2d85bf16b7926a6722398d32c8e7aa680 100644 (file)
@@ -31,6 +31,8 @@
     #include "wx/wx.h"
 #endif
 
+#if wxUSE_SPINBTN
+
 #include "wx/spinctrl.h"
 #include "wx/os2/private.h"
 
@@ -292,3 +294,5 @@ void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height)
     }
 */
 }
+
+#endif //wxUSE_SPINBTN
\ No newline at end of file
index 4d4ac669f9427ed4f5dcd7ff81d124d2ccb6cab2..87320e0d63e56279c82a77d7467967a4f71685cf 100644 (file)
@@ -23,7 +23,7 @@
 #define INCL_DOSFILEMGR
 #define INCL_WIN
 #define INCL_GPI
-#define INCL_PM                         
+#define INCL_PM
 #include <os2.h>
 #include <stdio.h>
 #include <string.h>
@@ -86,6 +86,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
   else
   {
     m_isResource = FALSE;
+#if wxUSE_FILE
 
     wxFile fileWave;
     if (!fileWave.Open(fileName, wxFile::read))
@@ -101,6 +102,9 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
     fileWave.Read(m_waveData, m_waveLength);
 */
     return TRUE;
+#else
+    return FALSE;
+#endif //wxUSE_FILE
   }
 }
 
index 76ab3ba44081eb04b069c73614fcaef591b6681b..59c203cc17f1c67bbcb5e2008cfbebe91f2a0dff 100644 (file)
     #include <stdio.h>
 #endif
 
+#define DEBUG_PRINTF(NAME)   { static int raz=0; \
+  printf( #NAME " %i\n",raz); fflush(stdout);       \
+   raz++;                                        \
+ }
+
 #if     wxUSE_OWNER_DRAWN
     #include "wx/ownerdrw.h"
 #endif
@@ -244,6 +249,9 @@ bool wxWindow::OS2Command(
 , WXWORD                            WXUNUSED(uId)
 )
 {
+
+DEBUG_PRINTF(wxWindow::OS2Command);
+
     return(FALSE);
 }
 
@@ -293,6 +301,9 @@ void wxWindow::Init()
     m_lLastMouseY = -1;
     m_nLastMouseEvent = -1;
 #endif // wxUSE_MOUSEEVENT_HACK
+
+DEBUG_PRINTF(wxWindow::Init-End);
+
 } // wxWindow::Init
 
 //
@@ -300,6 +311,7 @@ void wxWindow::Init()
 //
 wxWindow::~wxWindow()
 {
+DEBUG_PRINTF(wxWindow::~wxWindow-Start);
     m_isBeingDeleted = TRUE;
 
     OS2DetachWindowMenu();
@@ -318,6 +330,7 @@ wxWindow::~wxWindow()
         //
         wxRemoveHandleAssociation(this);
     }
+DEBUG_PRINTF(wxWindow::~wxWindow-End);
 } // end of wxWindow::~wxWindow
 
 bool wxWindow::Create(
@@ -500,6 +513,7 @@ bool wxWindow::SetFont(
   const wxFont&                     rFont
 )
 {
+DEBUG_PRINTF(wxWindow::SetFont);
     if (!wxWindowBase::SetFont(rFont))
     {
         // nothing to do
@@ -1505,6 +1519,8 @@ MRESULT wxWindow::OS2DefWindowProc(
 , WXLPARAM                          lParam
 )
 {
+DEBUG_PRINTF(wxWindow::OS2DefWindowProc);
+
     if (m_fnOldWndProc)
         return (MRESULT)m_fnOldWndProc(GetHWND(), (ULONG)uMsg, (MPARAM)wParam, (MPARAM)lParam);
     else
@@ -1517,6 +1533,8 @@ bool wxWindow::OS2ProcessMessage(
 {
     QMSG*                           pQMsg = (QMSG*)pMsg;
 
+DEBUG_PRINTF(OS2ProcessMessage);
+
     if (m_hWnd != 0 && (GetWindowStyleFlag() & wxTAB_TRAVERSAL))
     {
         //
@@ -1703,7 +1721,11 @@ bool wxWindow::OS2TranslateMessage(
   WXMSG*                            pMsg
 )
 {
-    return m_acceleratorTable.Translate(m_hWnd, pMsg);
+#if wxUSE_ACCEL
+  return m_acceleratorTable.Translate(m_hWnd, pMsg);
+#else
+  return FALSE;
+#endif //wxUSE_ACCEL
 } // end of wxWindow::OS2TranslateMessage
 
 // ---------------------------------------------------------------------------
@@ -1789,6 +1811,7 @@ MRESULT EXPENTRY wxWndProc(
     // Trace all ulMsgs - useful for the debugging
     //
 #ifdef __WXDEBUG__
+DEBUG_PRINTF(__WXDEBUG__wxWndProc);
     wxLogTrace(wxTraceMessages, wxT("Processing %s(wParam=%8lx, lParam=%8lx)"),
                wxGetMessageName(ulMsg), wParam, lParam);
 #endif // __WXDEBUG__
@@ -1928,6 +1951,7 @@ MRESULT wxWindow::OS2WindowProc(
             break;
 
         case WM_PAINT:
+DEBUG_PRINTF(WM_PAINT)
             bProcessed = HandlePaint();
             break;
 
@@ -1938,9 +1962,11 @@ MRESULT wxWindow::OS2WindowProc(
             //
             bProcessed = TRUE;
             mResult = (MRESULT)TRUE;
+DEBUG_PRINTF(WM_CLOSE)
             break;
 
         case WM_SHOW:
+DEBUG_PRINTF(WM_SHOW)
             bProcessed = HandleShow(wParam != 0, (int)lParam);
             break;
 
@@ -1979,9 +2005,11 @@ MRESULT wxWindow::OS2WindowProc(
             {
                 WORD id, cmd;
                 WXHWND hwnd;
+DEBUG_PRINTF(WM_COMMAND-in)
                 UnpackCommand(wParam, lParam, &id, &hwnd, &cmd);
 
                 bProcessed = HandleCommand(id, cmd, hwnd);
+DEBUG_PRINTF(WM_COMMAND-out)
             }
             break;
 
@@ -2828,12 +2856,21 @@ bool wxWindow::HandlePaint()
          wxLogLastError("CreateRectRgn");
          return FALSE;
     }
+    //
+    // Debug code
+    //
+#ifdef __WXDEBUG__
+    {
+        HWND                        hWnd
+        HWND                        hWnd0 = NULLHANDLE;
+
+        hWnd = GetHwnd();
+        if(hWnd != hWnd0)
+            printf("HandlePaint hWnd=%x  ",hWnd);
+    }
+#endif
+
     m_updateRegion = wxRegion(hRgn);
-/*
-    hPS = WinBeginPaint(GetHWND(), 0L, &vRect);
-    WinFillRect(hPS, &vRect, SYSCLR_WINDOW);
-    WinEndPaint(hPS);
-*/
     vEvent.SetEventObject(this);
     return (GetEventHandler()->ProcessEvent(vEvent));
 } // end of wxWindow::HandlePaint
@@ -3982,7 +4019,6 @@ wxWindow* wxFindWindowAtPointer(wxPoint& pt)
 
 wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
 {
-#if 0
     POINT pt2;
     pt2.x = pt.x;
     pt2.y = pt.y;
@@ -3998,18 +4034,6 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
         win = wxFindWinFromHandle((WXHWND) hWnd) ;
     }
     return win;
-#endif
-    return (wxWindow*)NULL;
 }
 
-// Get the current mouse position.
-wxPoint wxGetMousePosition()
-{
-#if 0
-    POINT pt;
-    GetCursorPos( & pt );
-    return wxPoint(pt.x, pt.y);
-#endif
-    return wxPoint(0,0);
-}