From cfb50f14ecc87d39319a3f23ddbae938e7858c33 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 24 May 1999 23:53:12 +0000 Subject: [PATCH] Made listctrl header BG grey again 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 | 2 +- src/generic/listctrl.cpp | 13 ++++++------ src/gtk/app.cpp | 38 ++++++++++++++++++++--------------- src/gtk/dcclient.cpp | 2 +- src/gtk/textctrl.cpp | 6 ++++++ src/gtk1/app.cpp | 38 ++++++++++++++++++++--------------- src/gtk1/dcclient.cpp | 2 +- src/gtk1/textctrl.cpp | 6 ++++++ 8 files changed, 66 insertions(+), 41 deletions(-) diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h index 5ab34cb26c..b9a9e74ce5 100644 --- a/include/wx/generic/listctrl.h +++ b/include/wx/generic/listctrl.h @@ -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; diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index e319bca803..54e7506831 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -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; diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index d59cb98ded..97ef298d00 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -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 diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp index af286ba08b..c945bcd140 100644 --- a/src/gtk/dcclient.cpp +++ b/src/gtk/dcclient.cpp @@ -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; diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index 5033f179cc..3640c7dfcc 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -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 ) diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp index d59cb98ded..97ef298d00 100644 --- a/src/gtk1/app.cpp +++ b/src/gtk1/app.cpp @@ -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 diff --git a/src/gtk1/dcclient.cpp b/src/gtk1/dcclient.cpp index af286ba08b..c945bcd140 100644 --- a/src/gtk1/dcclient.cpp +++ b/src/gtk1/dcclient.cpp @@ -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; diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index 5033f179cc..3640c7dfcc 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -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 ) -- 2.45.2