]> git.saurik.com Git - wxWidgets.git/commitdiff
Made listctrl header BG grey again
authorRobert Roebling <robert@roebling.de>
Mon, 24 May 1999 23:53:12 +0000 (23:53 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 24 May 1999 23:53:12 +0000 (23:53 +0000)
  mapped XOR to GdkInvert and vice versa
  No more EVT_TEXT after SetValue()

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

include/wx/generic/listctrl.h
src/generic/listctrl.cpp
src/gtk/app.cpp
src/gtk/dcclient.cpp
src/gtk/textctrl.cpp
src/gtk1/app.cpp
src/gtk1/dcclient.cpp
src/gtk1/textctrl.cpp

index 5ab34cb26ca418107058657fb7dfc8d349f2afbd..b9a9e74ce506dc49b57d86c9b6f46da1d90ab282 100644 (file)
@@ -365,7 +365,7 @@ class WXDLLEXPORT wxListHeaderWindow : public wxWindow
     wxListMainWindow  *m_owner;
     wxCursor          *m_currentCursor;
     wxCursor          *m_resizeCursor;
-    bool               m_isDraging;
+    bool               m_isDragging;
     int                m_column;
     int                m_minX;
     int                m_currentX;
index e319bca803cd03265c1201d6a77c8f7e8aa0bbe1..54e7506831c42b382d66089d7efbc6577eca1bed 100644 (file)
@@ -685,7 +685,7 @@ wxListHeaderWindow::wxListHeaderWindow( void )
     m_owner = (wxListMainWindow *) NULL;
     m_currentCursor = (wxCursor *) NULL;
     m_resizeCursor = (wxCursor *) NULL;
-    m_isDraging = FALSE;
+    m_isDragging = FALSE;
 }
 
 wxListHeaderWindow::wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner,
@@ -697,7 +697,8 @@ wxListHeaderWindow::wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMain
 //  m_currentCursor = wxSTANDARD_CURSOR;
     m_currentCursor = (wxCursor *) NULL;
     m_resizeCursor = new wxCursor( wxCURSOR_SIZEWE );
-    m_isDraging = FALSE;
+    m_isDragging = FALSE;
+    SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ) );
 }
 
 wxListHeaderWindow::~wxListHeaderWindow( void )
@@ -796,13 +797,13 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
 {
     int x = event.GetX();
     int y = event.GetY();
-    if (m_isDraging)
+    if (m_isDragging)
     {
         DrawCurrent();
         if (event.ButtonUp())
         {
             ReleaseMouse();
-            m_isDraging = FALSE;
+            m_isDragging = FALSE;
             m_owner->SetColumnWidth( m_column, m_currentX-m_minX );
         }
         else
@@ -837,7 +838,7 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
 
     if (event.LeftDown() && hit_border)
     {
-        m_isDraging = TRUE;
+        m_isDragging = TRUE;
         m_currentX = x;
         DrawCurrent();
         CaptureMouse();
@@ -2829,7 +2830,7 @@ bool wxListCtrl::SetBackgroundColour( const wxColour &colour )
     
     if (m_headerWin)
     {
-        m_headerWin->SetBackgroundColour( colour );
+//        m_headerWin->SetBackgroundColour( colour );
     }
 
     return TRUE;
index d59cb98dedd0ab050d1a20338d4af8e9c7234977..97ef298d00a10daef029c1e11dfccb63f482bc65 100644 (file)
@@ -690,29 +690,35 @@ int wxEntry( int argc, char *argv[] )
 
     if ( retValue == 0 )
     {
+        /* delete pending toplevel windows (typically a single
+          dialog) so that, if there isn't any left, we don't
+          call OnRun() */
+        wxTheApp->DeletePendingObjects();
+       
         wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0;
 
         if (wxTheApp->Initialized())
+       {
             retValue = wxTheApp->OnRun();
 
-        wxWindow *topWindow = wxTheApp->GetTopWindow();
-        if (topWindow)
-        {
-            // Forcibly delete the window.
-            if (topWindow->IsKindOf(CLASSINFO(wxFrame)) ||
-                topWindow->IsKindOf(CLASSINFO(wxDialog)) )
-            {
-                topWindow->Close( TRUE );
-                wxTheApp->DeletePendingObjects();
-            }
-            else
+            wxWindow *topWindow = wxTheApp->GetTopWindow();
+            if (topWindow)
             {
-                delete topWindow;
-                wxTheApp->SetTopWindow( (wxWindow*) NULL );
-            }
+                /* Forcibly delete the window. */
+                if (topWindow->IsKindOf(CLASSINFO(wxFrame)) ||
+                    topWindow->IsKindOf(CLASSINFO(wxDialog)) )
+                {
+                    topWindow->Close( TRUE );
+                    wxTheApp->DeletePendingObjects();
+                }
+                else
+                {
+                    delete topWindow;
+                    wxTheApp->SetTopWindow( (wxWindow*) NULL );
+                }
+           }
+            wxTheApp->OnExit();
         }
-
-        wxTheApp->OnExit();
     }
 
     // flush the logged messages if any
index af286ba08b2e3758feece89b53ea740282fb6aec..c945bcd1408debc3f08bee5cea573168edd11708 100644 (file)
@@ -974,7 +974,7 @@ void wxWindowDC::SetLogicalFunction( int function )
     switch (function)
     {
         case wxXOR:          mode = GDK_INVERT; break;
-        case wxINVERT:       mode = GDK_INVERT; break;
+        case wxINVERT:       mode = GDK_XOR; break;
 #if (GDK_MINOR_VERSION > 0)
         case wxOR_REVERSE:   mode = GDK_OR_REVERSE; break;
         case wxAND_REVERSE:  mode = GDK_AND_REVERSE; break;
index 5033f179cc4673438ef88813126a42d7407719a9..3640c7dfccb9b69eb1e5f0d87a8407cca105b4df 100644 (file)
@@ -311,6 +311,9 @@ void wxTextCtrl::SetValue( const wxString &value )
 {
     wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
 
+    gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+      GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+      
     wxString tmp = _T("");
     if (!value.IsNull()) tmp = value;
     if (m_windowStyle & wxTE_MULTILINE)
@@ -329,6 +332,9 @@ void wxTextCtrl::SetValue( const wxString &value )
     {
         gtk_entry_set_text( GTK_ENTRY(m_text), tmp.mbc_str() );
     }
+    
+    gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+      GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
 }
 
 void wxTextCtrl::WriteText( const wxString &text )
index d59cb98dedd0ab050d1a20338d4af8e9c7234977..97ef298d00a10daef029c1e11dfccb63f482bc65 100644 (file)
@@ -690,29 +690,35 @@ int wxEntry( int argc, char *argv[] )
 
     if ( retValue == 0 )
     {
+        /* delete pending toplevel windows (typically a single
+          dialog) so that, if there isn't any left, we don't
+          call OnRun() */
+        wxTheApp->DeletePendingObjects();
+       
         wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0;
 
         if (wxTheApp->Initialized())
+       {
             retValue = wxTheApp->OnRun();
 
-        wxWindow *topWindow = wxTheApp->GetTopWindow();
-        if (topWindow)
-        {
-            // Forcibly delete the window.
-            if (topWindow->IsKindOf(CLASSINFO(wxFrame)) ||
-                topWindow->IsKindOf(CLASSINFO(wxDialog)) )
-            {
-                topWindow->Close( TRUE );
-                wxTheApp->DeletePendingObjects();
-            }
-            else
+            wxWindow *topWindow = wxTheApp->GetTopWindow();
+            if (topWindow)
             {
-                delete topWindow;
-                wxTheApp->SetTopWindow( (wxWindow*) NULL );
-            }
+                /* Forcibly delete the window. */
+                if (topWindow->IsKindOf(CLASSINFO(wxFrame)) ||
+                    topWindow->IsKindOf(CLASSINFO(wxDialog)) )
+                {
+                    topWindow->Close( TRUE );
+                    wxTheApp->DeletePendingObjects();
+                }
+                else
+                {
+                    delete topWindow;
+                    wxTheApp->SetTopWindow( (wxWindow*) NULL );
+                }
+           }
+            wxTheApp->OnExit();
         }
-
-        wxTheApp->OnExit();
     }
 
     // flush the logged messages if any
index af286ba08b2e3758feece89b53ea740282fb6aec..c945bcd1408debc3f08bee5cea573168edd11708 100644 (file)
@@ -974,7 +974,7 @@ void wxWindowDC::SetLogicalFunction( int function )
     switch (function)
     {
         case wxXOR:          mode = GDK_INVERT; break;
-        case wxINVERT:       mode = GDK_INVERT; break;
+        case wxINVERT:       mode = GDK_XOR; break;
 #if (GDK_MINOR_VERSION > 0)
         case wxOR_REVERSE:   mode = GDK_OR_REVERSE; break;
         case wxAND_REVERSE:  mode = GDK_AND_REVERSE; break;
index 5033f179cc4673438ef88813126a42d7407719a9..3640c7dfccb9b69eb1e5f0d87a8407cca105b4df 100644 (file)
@@ -311,6 +311,9 @@ void wxTextCtrl::SetValue( const wxString &value )
 {
     wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
 
+    gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+      GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+      
     wxString tmp = _T("");
     if (!value.IsNull()) tmp = value;
     if (m_windowStyle & wxTE_MULTILINE)
@@ -329,6 +332,9 @@ void wxTextCtrl::SetValue( const wxString &value )
     {
         gtk_entry_set_text( GTK_ENTRY(m_text), tmp.mbc_str() );
     }
+    
+    gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+      GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
 }
 
 void wxTextCtrl::WriteText( const wxString &text )