]> git.saurik.com Git - wxWidgets.git/commitdiff
Updated doc for wxFileExists()
authorRobert Roebling <robert@roebling.de>
Sat, 2 Oct 1999 10:56:10 +0000 (10:56 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 2 Oct 1999 10:56:10 +0000 (10:56 +0000)
  Corrected redrawing and OpenGl canvas
  Made new font code in utilsunix compile (Why does
    Vadim never need any headers?)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/function.tex
src/gtk/window.cpp
src/gtk1/window.cpp
src/unix/utilsunx.cpp
utils/glcanvas/gtk/glcanvas.cpp
utils/glcanvas/gtk/glcanvas.h

index c9b30b5a376a68a2cf56a8a222b34a350d8e9832..e260c3d7659a500108ae295a54114d89c7143fae 100644 (file)
@@ -31,7 +31,8 @@ slashes.
 
 \func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
 
 
 \func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
 
-Returns TRUE if the file exists.
+Returns TRUE if the file exists. It also returns TRUE if the file is
+a directory.
 
 \membersection{::wxFileNameFromPath}
 
 
 \membersection{::wxFileNameFromPath}
 
index 56c43282afedf5ede83ea30ea63dd3fe7bc7281e..67fea2e15136c6543744a388b3a4b6c68a563713 100644 (file)
@@ -2657,9 +2657,23 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
     if (!rect)
     {
         if (m_wxwindow)
     if (!rect)
     {
         if (m_wxwindow)
-            gtk_widget_draw( m_wxwindow, (GdkRectangle*) NULL );
+       {
+           /* call the callback directly for preventing GTK from
+              clearing the bakground */
+           int w = 0;
+           int h = 0;
+           GetClientSize( &w, &h );
+            GdkRectangle gdk_rect;
+            gdk_rect.x = 0;
+            gdk_rect.y = 0;
+            gdk_rect.width = w;
+            gdk_rect.height = h;
+            gtk_window_draw_callback( m_wxwindow, &gdk_rect, this );
+       }
         else
         else
+       {
             gtk_widget_draw( m_widget, (GdkRectangle*) NULL );
             gtk_widget_draw( m_widget, (GdkRectangle*) NULL );
+       }
     }
     else
     {
     }
     else
     {
@@ -2670,9 +2684,15 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
         gdk_rect.height = rect->height;
 
         if (m_wxwindow)
         gdk_rect.height = rect->height;
 
         if (m_wxwindow)
-            gtk_widget_draw( m_wxwindow, &gdk_rect );
+       {
+           /* call the callback directly for preventing GTK from
+              clearing the bakground */
+            gtk_window_draw_callback( m_wxwindow, &gdk_rect, this );
+       }
         else
         else
+       {
             gtk_widget_draw( m_widget, &gdk_rect );
             gtk_widget_draw( m_widget, &gdk_rect );
+       }
     }
 }
 
     }
 }
 
index 56c43282afedf5ede83ea30ea63dd3fe7bc7281e..67fea2e15136c6543744a388b3a4b6c68a563713 100644 (file)
@@ -2657,9 +2657,23 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
     if (!rect)
     {
         if (m_wxwindow)
     if (!rect)
     {
         if (m_wxwindow)
-            gtk_widget_draw( m_wxwindow, (GdkRectangle*) NULL );
+       {
+           /* call the callback directly for preventing GTK from
+              clearing the bakground */
+           int w = 0;
+           int h = 0;
+           GetClientSize( &w, &h );
+            GdkRectangle gdk_rect;
+            gdk_rect.x = 0;
+            gdk_rect.y = 0;
+            gdk_rect.width = w;
+            gdk_rect.height = h;
+            gtk_window_draw_callback( m_wxwindow, &gdk_rect, this );
+       }
         else
         else
+       {
             gtk_widget_draw( m_widget, (GdkRectangle*) NULL );
             gtk_widget_draw( m_widget, (GdkRectangle*) NULL );
+       }
     }
     else
     {
     }
     else
     {
@@ -2670,9 +2684,15 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
         gdk_rect.height = rect->height;
 
         if (m_wxwindow)
         gdk_rect.height = rect->height;
 
         if (m_wxwindow)
-            gtk_widget_draw( m_wxwindow, &gdk_rect );
+       {
+           /* call the callback directly for preventing GTK from
+              clearing the bakground */
+            gtk_window_draw_callback( m_wxwindow, &gdk_rect, this );
+       }
         else
         else
+       {
             gtk_widget_draw( m_widget, &gdk_rect );
             gtk_widget_draw( m_widget, &gdk_rect );
+       }
     }
 }
 
     }
 }
 
index 80c29861c76a4fd3f3720facfd742e6203e64a1b..1ecee5f029d67e35032f5b36282880162bd6d63d 100644 (file)
@@ -586,6 +586,9 @@ void wxFatalError( const wxString &msg, const wxString &title )
         XFreeFont((Display *)wxGetDisplay(), font);
     }
 #elif defined(__WXGTK__)
         XFreeFont((Display *)wxGetDisplay(), font);
     }
 #elif defined(__WXGTK__)
+
+    #include "gdk/gdk.h"
+
     static inline wxNativeFont wxLoadFont(const wxString& fontSpec)
     {
         return gdk_font_load( wxConvCurrent->cWX2MB(fontSpec) );
     static inline wxNativeFont wxLoadFont(const wxString& fontSpec)
     {
         return gdk_font_load( wxConvCurrent->cWX2MB(fontSpec) );
index fc5c324d5281539d0db36d92886384f4bcd57420..6021bcec7dabe7ad274834eaad7ea83b9fc35cad 100644 (file)
@@ -128,52 +128,6 @@ wxPalette wxGLContext::CreateDefaultPalette()
     return wxNullPalette;
 }
 
     return wxNullPalette;
 }
 
-//-----------------------------------------------------------------------------
-// "expose_event" of m_glWidget
-//-----------------------------------------------------------------------------
-
-static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxWindow *win )
-{
-    if (!win->m_hasVMT) return;
-
-    win->GetUpdateRegion().Union( gdk_event->area.x,
-                               gdk_event->area.y,
-                               gdk_event->area.width,
-                               gdk_event->area.height );
-
-    if (gdk_event->count > 0) return;
-
-/*
-    printf( "OnExpose from " );
-    if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
-        printf( win->GetClassInfo()->GetClassName() );
-    printf( ".\n" );
-*/
-
-    wxPaintEvent event( win->GetId() );
-    event.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( event );
-
-    win->GetUpdateRegion().Clear();
-}
-
-//-----------------------------------------------------------------------------
-// "draw" of m_glWidget
-//-----------------------------------------------------------------------------
-
-static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxWindow *win )
-{
-    if (!win->m_hasVMT) return;
-
-    win->GetUpdateRegion().Union( rect->x, rect->y, rect->width, rect->height );
-
-    wxPaintEvent event( win->GetId() );
-    event.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( event );
-
-    win->GetUpdateRegion().Clear();
-}
-
 //---------------------------------------------------------------------------
 // wxGlCanvas
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 // wxGlCanvas
 //---------------------------------------------------------------------------
@@ -212,6 +166,16 @@ bool wxGLCanvas::Create( wxWindow *parent,
                          int *attribList, 
                         const wxPalette& palette)
 {
                          int *attribList, 
                         const wxPalette& palette)
 {
+    m_needParent = TRUE;
+    m_acceptsFocus = TRUE;
+
+    if (!PreCreation( parent, pos, size ) ||
+        !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
+    {
+        wxFAIL_MSG( _T("wxGLCanvas creation failed") );
+       return FALSE;
+    }
+
     if (!attribList)
     {
         int data[] = { GLX_RGBA, 
     if (!attribList)
     {
         int data[] = { GLX_RGBA, 
@@ -251,6 +215,7 @@ bool wxGLCanvas::Create( wxWindow *parent,
       attribList = (int*) data;
     }
     
       attribList = (int*) data;
     }
     
+    
     Display *dpy = GDK_DISPLAY();
     
     g_vi = glXChooseVisual( dpy, DefaultScreen(dpy), attribList );
     Display *dpy = GDK_DISPLAY();
     
     g_vi = glXChooseVisual( dpy, DefaultScreen(dpy), attribList );
@@ -262,45 +227,37 @@ bool wxGLCanvas::Create( wxWindow *parent,
     gtk_widget_push_visual( visual );
     
     m_glWidget = gtk_myfixed_new();
     gtk_widget_push_visual( visual );
     
     m_glWidget = gtk_myfixed_new();
+    m_widget = m_glWidget;
     
     gtk_widget_pop_visual();
     gtk_widget_pop_colormap();
     
     
     gtk_widget_pop_visual();
     gtk_widget_pop_colormap();
     
-    wxScrolledWindow::Create( parent, id, pos, size, style, name );
+    m_parent->DoAddChild( this );
   
   
-    GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
-    GTK_WIDGET_SET_FLAGS( m_glWidget, GTK_CAN_FOCUS );
-    
-    gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), m_glWidget, 0, 0, m_width, m_height );
-
-    gtk_signal_connect( GTK_OBJECT(m_glWidget), "expose_event",
-      GTK_SIGNAL_FUNC(gtk_window_expose_callback), (gpointer)this );
-
-    gtk_signal_connect( GTK_OBJECT(m_glWidget), "draw",
-      GTK_SIGNAL_FUNC(gtk_window_draw_callback), (gpointer)this );
-      
-    /* connect to key press and mouse handlers etc. */  
-    ConnectWidget( m_glWidget );
-    
-
     /* must be realized for OpenGl output */
     gtk_widget_realize( m_glWidget );
  
     /* must be realized for OpenGl output */
     gtk_widget_realize( m_glWidget );
  
-    gtk_widget_show( m_glWidget );
-    
     m_glContext = new wxGLContext( TRUE, this, palette, shared );
     
     XFree( g_vi );
     g_vi = (XVisualInfo*) NULL;
 
     m_glContext = new wxGLContext( TRUE, this, palette, shared );
     
     XFree( g_vi );
     g_vi = (XVisualInfo*) NULL;
 
-    gdk_window_set_back_pixmap( m_glWidget->window, None, 0 );
+//    gdk_window_set_back_pixmap( m_glWidget->window, None, 0 );
      
      
+    /* we pretend to have a m_wxwindow so that PostCreation hooks
+       up the events for expose and draw */
+    m_wxwindow = m_glWidget;
+    PostCreation();
+    
+    Show( TRUE );
+    
     return TRUE;
 }
 
 wxGLCanvas::~wxGLCanvas()
 {
     if (m_glContext) delete m_glContext;
     return TRUE;
 }
 
 wxGLCanvas::~wxGLCanvas()
 {
     if (m_glContext) delete m_glContext;
+    m_wxwindow = (GtkWidget*) NULL;
 }
 
 void wxGLCanvas::SwapBuffers()
 }
 
 void wxGLCanvas::SwapBuffers()
@@ -335,78 +292,6 @@ void wxGLCanvas::SetColour( const char *colour )
     if (m_glContext) m_glContext->SetColour( colour );
 }
 
     if (m_glContext) m_glContext->SetColour( colour );
 }
 
-void wxGLCanvas::DoSetSize( int x, int y, int width, int height, int sizeFlags )
-{
-    if (m_resizing) return; // I don't like recursions
-    m_resizing = TRUE;
-
-    if (m_parent->m_wxwindow == NULL) // i.e. wxNotebook
-    {
-        // don't set the size for children of wxNotebook, just take the values.
-        m_x = x;
-        m_y = y;
-        m_width = width;
-        m_height = height;
-    }
-    else
-    {
-        int old_width = m_width;
-        int old_height = m_height;
-
-        if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0)
-        {
-            if (x != -1) m_x = x;
-            if (y != -1) m_y = y;
-            if (width != -1) m_width = width;
-            if (height != -1) m_height = height;
-        }
-        else
-        {
-            m_x = x;
-            m_y = y;
-            m_width = width;
-            m_height = height;
-        }
-
-        if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH)
-        {
-             if (width == -1) m_width = 80;
-        }
-
-        if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT)
-        {
-             if (height == -1) m_height = 26;
-        }
-
-        if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth;
-        if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight;
-        if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
-        if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
-
-        gtk_myfixed_set_size( GTK_MYFIXED(m_parent->m_wxwindow), 
-                             m_widget, 
-                             m_x, 
-                             m_y,
-                             m_width,
-                             m_height );
-
-        gtk_myfixed_set_size( GTK_MYFIXED(m_wxwindow), 
-                             m_glWidget,
-                             m_x, 
-                             m_y,
-                             m_width,
-                             m_height );
-    }
-
-    m_sizeSet = TRUE;
-
-    wxSizeEvent event( wxSize(m_width,m_height), GetId() );
-    event.SetEventObject( this );
-    GetEventHandler()->ProcessEvent( event );
-
-    m_resizing = FALSE;
-}
-
 GtkWidget *wxGLCanvas::GetConnectWidget()
 {
     return m_glWidget;
 GtkWidget *wxGLCanvas::GetConnectWidget()
 {
     return m_glWidget;
index 837d92f3c530928d5c6515e9417922c86ff9a894..985fb626b6b1b231f1de383cc92cf8aa8d82bd59 100644 (file)
@@ -131,9 +131,6 @@ class wxGLCanvas: public wxScrolledWindow
 
  // implementation
   
 
  // implementation
   
-    virtual void DoSetSize( int x, int y, int width, int height,
-      int sizeFlags = wxSIZE_AUTO );
-    
     virtual GtkWidget *GetConnectWidget();
     bool IsOwnGtkWindow( GdkWindow *window );
   
     virtual GtkWidget *GetConnectWidget();
     bool IsOwnGtkWindow( GdkWindow *window );