From 9b7e522ae97eb3d62bfb9ce6f527f1368c576e93 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 4 Oct 1999 09:03:48 +0000 Subject: [PATCH] Applied a few old patches, Changed dclick handling in wxFileDialog, Added cursor code to wxToolBar git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/tbargtk.h | 12 +++++++----- include/wx/gtk1/tbargtk.h | 12 +++++++----- src/generic/filedlgg.cpp | 4 +++- src/gtk/checklst.cpp | 2 +- src/gtk/listbox.cpp | 14 ++++++++++++-- src/gtk/tbargtk.cpp | 34 +++++++++++++++++++++++++++++++++- src/gtk1/checklst.cpp | 2 +- src/gtk1/listbox.cpp | 14 ++++++++++++-- src/gtk1/tbargtk.cpp | 34 +++++++++++++++++++++++++++++++++- src/html/helpdata.cpp | 2 +- 10 files changed, 110 insertions(+), 20 deletions(-) diff --git a/include/wx/gtk/tbargtk.h b/include/wx/gtk/tbargtk.h index 5a6f17415d..c7f755e530 100644 --- a/include/wx/gtk/tbargtk.h +++ b/include/wx/gtk/tbargtk.h @@ -48,11 +48,7 @@ extern const wxChar *wxToolBarNameStr; class wxToolBar: public wxControl { - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxToolBar) - - public: - +public: wxToolBar(void); wxToolBar( wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, @@ -120,6 +116,12 @@ class wxToolBar: public wxControl int m_xMargin; int m_yMargin; bool m_hasToolAlready; + + void OnInternalIdle(); + +private: + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxToolBar) }; #endif diff --git a/include/wx/gtk1/tbargtk.h b/include/wx/gtk1/tbargtk.h index 5a6f17415d..c7f755e530 100644 --- a/include/wx/gtk1/tbargtk.h +++ b/include/wx/gtk1/tbargtk.h @@ -48,11 +48,7 @@ extern const wxChar *wxToolBarNameStr; class wxToolBar: public wxControl { - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxToolBar) - - public: - +public: wxToolBar(void); wxToolBar( wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, @@ -120,6 +116,12 @@ class wxToolBar: public wxControl int m_xMargin; int m_yMargin; bool m_hasToolAlready; + + void OnInternalIdle(); + +private: + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxToolBar) }; #endif diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp index 703cf22cde..f8d23ba8ef 100644 --- a/src/generic/filedlgg.cpp +++ b/src/generic/filedlgg.cpp @@ -812,12 +812,14 @@ void wxFileDialog::HandleAction( const wxString &fn ) } SetPath( filename ); + + wxCommandEvent event; + wxDialog::OnOK(event); } void wxFileDialog::OnListOk( wxCommandEvent &event ) { HandleAction( m_text->GetValue() ); - event.Skip(); } void wxFileDialog::OnList( wxCommandEvent &WXUNUSED(event) ) diff --git a/src/gtk/checklst.cpp b/src/gtk/checklst.cpp index 6c08581ae6..6e97994417 100644 --- a/src/gtk/checklst.cpp +++ b/src/gtk/checklst.cpp @@ -52,7 +52,7 @@ bool wxCheckListBox::IsChecked( int index ) const GtkBin *bin = GTK_BIN( child->data ); GtkLabel *label = GTK_LABEL( bin->child ); - wxString str = wxString(label->label,*wxConv_current); + wxString str = wxString(label->label,*wxConvCurrent); return (str[1] == _T('X')); } diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index d981ae99dd..c27795d42e 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -1011,8 +1011,9 @@ void wxListBox::OnInternalIdle() wxCursor cursor = m_cursor; if (g_globalCursor.Ok()) cursor = g_globalCursor; - if (m_widget->window && cursor.Ok() && m_currentGdkCursor != cursor) + if (GTK_WIDGET(m_list)->window && cursor.Ok() && m_currentGdkCursor != cursor) { + wxCursor oldGdkCursor = m_currentGdkCursor; m_currentGdkCursor = cursor; gdk_window_set_cursor( GTK_WIDGET(m_list)->window, m_currentGdkCursor.GetCursor() ); @@ -1023,7 +1024,16 @@ void wxListBox::OnInternalIdle() GtkBin *bin = GTK_BIN( child->data ); GtkWidget *label = GTK_WIDGET( bin->child ); - gdk_window_set_cursor( label->window, m_currentGdkCursor.GetCursor() ); + if (!label->window) + { + /* windows not yet realized. come back later. */ + m_currentGdkCursor = oldGdkCursor; + break; + } + else + { + gdk_window_set_cursor( label->window, m_currentGdkCursor.GetCursor() ); + } child = child->next; } diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp index 0f90b72a74..b3b92a7816 100644 --- a/src/gtk/tbargtk.cpp +++ b/src/gtk/tbargtk.cpp @@ -32,7 +32,8 @@ extern bool g_isIdle; // data //----------------------------------------------------------------------------- -extern bool g_blockEventsOnDrag; +extern bool g_blockEventsOnDrag; +extern wxCursor g_globalCursor; //----------------------------------------------------------------------------- // "clicked" (internal from gtk_toolbar) @@ -598,4 +599,35 @@ void wxToolBar::OnIdle( wxIdleEvent &WXUNUSED(ievent) ) } } +void wxToolBar::OnInternalIdle() +{ + wxCursor cursor = m_cursor; + if (g_globalCursor.Ok()) cursor = g_globalCursor; + + if (cursor.Ok() && m_currentGdkCursor != cursor) + { + wxCursor oldGdkCursor = m_currentGdkCursor; + m_currentGdkCursor = cursor; + + wxNode *node = m_tools.First(); + while (node) + { + wxToolBarTool *tool = (wxToolBarTool*)node->Data(); + if (!tool->m_item->window) + { + /* windows not yet realized. come back later. */ + m_currentGdkCursor = oldGdkCursor; + break; + } + else + { + gdk_window_set_cursor( tool->m_item->window, m_currentGdkCursor.GetCursor() ); + } + node = node->Next(); + } + } + + UpdateWindowUI(); +} + #endif diff --git a/src/gtk1/checklst.cpp b/src/gtk1/checklst.cpp index 6c08581ae6..6e97994417 100644 --- a/src/gtk1/checklst.cpp +++ b/src/gtk1/checklst.cpp @@ -52,7 +52,7 @@ bool wxCheckListBox::IsChecked( int index ) const GtkBin *bin = GTK_BIN( child->data ); GtkLabel *label = GTK_LABEL( bin->child ); - wxString str = wxString(label->label,*wxConv_current); + wxString str = wxString(label->label,*wxConvCurrent); return (str[1] == _T('X')); } diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp index d981ae99dd..c27795d42e 100644 --- a/src/gtk1/listbox.cpp +++ b/src/gtk1/listbox.cpp @@ -1011,8 +1011,9 @@ void wxListBox::OnInternalIdle() wxCursor cursor = m_cursor; if (g_globalCursor.Ok()) cursor = g_globalCursor; - if (m_widget->window && cursor.Ok() && m_currentGdkCursor != cursor) + if (GTK_WIDGET(m_list)->window && cursor.Ok() && m_currentGdkCursor != cursor) { + wxCursor oldGdkCursor = m_currentGdkCursor; m_currentGdkCursor = cursor; gdk_window_set_cursor( GTK_WIDGET(m_list)->window, m_currentGdkCursor.GetCursor() ); @@ -1023,7 +1024,16 @@ void wxListBox::OnInternalIdle() GtkBin *bin = GTK_BIN( child->data ); GtkWidget *label = GTK_WIDGET( bin->child ); - gdk_window_set_cursor( label->window, m_currentGdkCursor.GetCursor() ); + if (!label->window) + { + /* windows not yet realized. come back later. */ + m_currentGdkCursor = oldGdkCursor; + break; + } + else + { + gdk_window_set_cursor( label->window, m_currentGdkCursor.GetCursor() ); + } child = child->next; } diff --git a/src/gtk1/tbargtk.cpp b/src/gtk1/tbargtk.cpp index 0f90b72a74..b3b92a7816 100644 --- a/src/gtk1/tbargtk.cpp +++ b/src/gtk1/tbargtk.cpp @@ -32,7 +32,8 @@ extern bool g_isIdle; // data //----------------------------------------------------------------------------- -extern bool g_blockEventsOnDrag; +extern bool g_blockEventsOnDrag; +extern wxCursor g_globalCursor; //----------------------------------------------------------------------------- // "clicked" (internal from gtk_toolbar) @@ -598,4 +599,35 @@ void wxToolBar::OnIdle( wxIdleEvent &WXUNUSED(ievent) ) } } +void wxToolBar::OnInternalIdle() +{ + wxCursor cursor = m_cursor; + if (g_globalCursor.Ok()) cursor = g_globalCursor; + + if (cursor.Ok() && m_currentGdkCursor != cursor) + { + wxCursor oldGdkCursor = m_currentGdkCursor; + m_currentGdkCursor = cursor; + + wxNode *node = m_tools.First(); + while (node) + { + wxToolBarTool *tool = (wxToolBarTool*)node->Data(); + if (!tool->m_item->window) + { + /* windows not yet realized. come back later. */ + m_currentGdkCursor = oldGdkCursor; + break; + } + else + { + gdk_window_set_cursor( tool->m_item->window, m_currentGdkCursor.GetCursor() ); + } + node = node->Next(); + } + } + + UpdateWindowUI(); +} + #endif diff --git a/src/html/helpdata.cpp b/src/html/helpdata.cpp index fb7f6cf871..9379ddd1d9 100644 --- a/src/html/helpdata.cpp +++ b/src/html/helpdata.cpp @@ -564,7 +564,7 @@ bool wxHtmlSearchStatus::Search() if (m_Engine.Scan(file -> GetStream())) { m_Name = m_Data->m_Contents[i].m_Name; m_ContentsItem = m_Data->m_Contents + i; - found = true; + found = TRUE; } } delete file; -- 2.45.2