]> git.saurik.com Git - wxWidgets.git/commitdiff
Tried to prevent scrollbars from scrolling as
authorRobert Roebling <robert@roebling.de>
Sun, 6 Feb 2000 13:51:01 +0000 (13:51 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 6 Feb 2000 13:51:01 +0000 (13:51 +0000)
    per MSW, didn't work.
  Added DeleteAllItems event and test to listctrl.

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

include/wx/generic/filedlgg.h
samples/listctrl/listtest.cpp
samples/listctrl/listtest.h
src/generic/filedlgg.cpp
src/generic/listctrl.cpp
src/gtk/window.cpp
src/gtk1/window.cpp

index aee6a30925d6f3d09f7efcf1181c18e442e4b904..9d39b679f9035b4ca3e76b6cfc2d5ad0a3e5e35b 100644 (file)
@@ -107,7 +107,7 @@ public:
     void ShowHidden( bool show = TRUE );
     long Add( wxFileData *fd, wxListItem &item );
     void Update();
-    virtual void StatusbarText( char *WXUNUSED(text) ) {};
+    virtual void StatusbarText( wxChar *WXUNUSED(text) ) {};
     void MakeDir();
     void GoToParentDir();
     void GoToHomeDir();
@@ -115,6 +115,7 @@ public:
     void SetWild( const wxString &wild );
     void GetDir( wxString &dir );
     void OnListDeleteItem( wxListEvent &event );
+    void OnListDeleteAllItems( wxListEvent &event );
     void OnListEndLabelEdit( wxListEvent &event );
 
 private:
index 7d3fc9010c7460f05059671fab89329aca85a158..8d2bc895e7eaf4e3adbacffb21fd36aab7f35db3 100644 (file)
@@ -56,6 +56,7 @@ BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl)
     EVT_LIST_BEGIN_LABEL_EDIT(LIST_CTRL, MyListCtrl::OnBeginLabelEdit)
     EVT_LIST_END_LABEL_EDIT(LIST_CTRL, MyListCtrl::OnEndLabelEdit)
     EVT_LIST_DELETE_ITEM(LIST_CTRL, MyListCtrl::OnDeleteItem)
+    EVT_LIST_DELETE_ALL_ITEMS(LIST_CTRL, MyListCtrl::OnDeleteAllItems)
     EVT_LIST_GET_INFO(LIST_CTRL, MyListCtrl::OnGetInfo)
     EVT_LIST_SET_INFO(LIST_CTRL, MyListCtrl::OnSetInfo)
     EVT_LIST_ITEM_SELECTED(LIST_CTRL, MyListCtrl::OnSelected)
@@ -486,6 +487,18 @@ void MyListCtrl::OnDeleteItem(wxListEvent& WXUNUSED(event))
         text->WriteText("OnDeleteItem\n");
 }
 
+void MyListCtrl::OnDeleteAllItems(wxListEvent& WXUNUSED(event))
+{
+    if ( !wxGetApp().GetTopWindow() )
+        return;
+
+    wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow;
+    if ( !text )
+        return;
+
+        text->WriteText("OnDeleteAllItems\n");
+}
+
 void MyListCtrl::OnGetInfo(wxListEvent& event)
 {
     if ( !wxGetApp().GetTopWindow() )
index aebe3fe242642300f3ccbb9d86807c4b255df558..8258cf17bf000b17918d4836a48884c2fe54b451 100644 (file)
@@ -34,6 +34,7 @@ public:
     void OnBeginLabelEdit(wxListEvent& event);
     void OnEndLabelEdit(wxListEvent& event);
     void OnDeleteItem(wxListEvent& event);
+    void OnDeleteAllItems(wxListEvent& event);
     void OnGetInfo(wxListEvent& event);
     void OnSetInfo(wxListEvent& event);
     void OnSelected(wxListEvent& event);
index c2ce7eacf2156dc15dcbd6839705dee1cce62a0a..5a6e892e78bcb2a0b9c9c6b0eb8a73f8277850e4 100644 (file)
@@ -444,11 +444,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileCtrl,wxListCtrl);
 
 BEGIN_EVENT_TABLE(wxFileCtrl,wxListCtrl)
     EVT_LIST_DELETE_ITEM(-1, wxFileCtrl::OnListDeleteItem)
+    EVT_LIST_DELETE_ALL_ITEMS(-1, wxFileCtrl::OnListDeleteAllItems)
     EVT_LIST_END_LABEL_EDIT(-1, wxFileCtrl::OnListEndLabelEdit)
 END_EVENT_TABLE()
 
 
-
 wxFileCtrl::wxFileCtrl()
 {
     m_dirName = wxT("/");
@@ -682,6 +682,23 @@ void wxFileCtrl::OnListDeleteItem( wxListEvent &event )
     delete fd;
 }
 
+void wxFileCtrl::OnListDeleteAllItems( wxListEvent &WXUNUSED(event) )
+{
+    wxListItem item;
+    item.m_mask = wxLIST_MASK_DATA;
+
+    item.m_itemId = GetNextItem( -1, wxLIST_NEXT_ALL );
+    while ( item.m_itemId != -1 ) 
+    {
+        GetItem( item );
+        wxFileData *fd = (wxFileData*)item.m_data;
+        delete fd;
+        item.m_data = (void*) NULL;
+        SetItem( item );
+        item.m_itemId = GetNextItem( item.m_itemId, wxLIST_NEXT_ALL );
+    }
+}
+
 void wxFileCtrl::OnListEndLabelEdit( wxListEvent &event )
 {
     wxFileData *fd = (wxFileData*)event.m_item.m_data;
index 6f14abfd3e1474c8930b68836bf4a1608d4cda0d..6421ecff5205a17fb1ea19e4114d842deb01f612 100644 (file)
@@ -1171,6 +1171,8 @@ wxListMainWindow::wxListMainWindow( wxWindow *parent, wxWindowID id,
 
 wxListMainWindow::~wxListMainWindow()
 {
+    DeleteEverything();
+
     if (m_hilightBrush) delete m_hilightBrush;
 
     delete m_renameTimer;
@@ -2392,7 +2394,7 @@ void wxListMainWindow::DeleteColumn( int col )
     if (node) m_columns.DeleteNode( node );
 }
 
-void wxListMainWindow::DeleteAllItems( void )
+void wxListMainWindow::DeleteAllItems()
 {
     m_dirty = TRUE;
     m_current = (wxListLineData *) NULL;
@@ -2400,34 +2402,18 @@ void wxListMainWindow::DeleteAllItems( void )
     // to make the deletion of all items faster, we don't send the
     // notifications in this case: this is compatible with wxMSW and
     // documented in DeleteAllItems() description
-#if 0
-    wxNode *node = m_lines.First();
-    while (node)
-    {
-        wxListLineData *line = (wxListLineData*)node->Data();
 
-        DeleteLine( line );
-
-        node = node->Next();
-    }
-#endif // 0
+    wxListEvent event( wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, GetParent()->GetId() );
+    event.SetEventObject( GetParent() );
+    GetParent()->GetEventHandler()->ProcessEvent( event );
 
     m_lines.Clear();
 }
 
-void wxListMainWindow::DeleteEverything( void )
+void wxListMainWindow::DeleteEverything()
 {
-    m_dirty = TRUE;
-    m_current = (wxListLineData *) NULL;
-    wxNode *node = m_lines.First();
-    while (node)
-    {
-        wxListLineData *line = (wxListLineData*)node->Data();
-        DeleteLine( line );
-        node = node->Next();
-    }
-    m_lines.Clear();
-    m_current = (wxListLineData *) NULL;
+    DeleteAllItems();
+    
     m_columns.Clear();
 }
 
index c7e8bc5918d25beefa2a63af2996c6d65f6d02bf..64f720e2aec6b304cbe43821afd912da20f4bd8c 100644 (file)
@@ -1577,54 +1577,6 @@ static void gtk_window_hscroll_callback( GtkAdjustment *adjust, wxWindow *win )
     win->GetEventHandler()->ProcessEvent( event );
 }
 
-//-----------------------------------------------------------------------------
-// "changed" from m_vAdjust
-//-----------------------------------------------------------------------------
-
-/*
-static void gtk_window_vscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win )
-{
-    DEBUG_MAIN_THREAD
-
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (g_blockEventsOnDrag) return;
-    if (!win->m_hasVMT) return;
-
-    wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK;
-    int value = (int)(win->m_vAdjust->value+0.5);
-
-    wxScrollWinEvent event( command, value, wxVERTICAL );
-    event.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( event );
-}
-*/
-
-//-----------------------------------------------------------------------------
-// "changed" from m_hAdjust
-//-----------------------------------------------------------------------------
-
-/*
-static void gtk_window_hscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win )
-{
-    DEBUG_MAIN_THREAD
-
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (g_blockEventsOnDrag) return;
-    if (!win->m_hasVMT) return;
-
-    wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK;
-    int value = (int)(win->m_hAdjust->value+0.5);
-
-    wxScrollWinEvent event( command, value, wxHORIZONTAL );
-    event.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( event );
-}
-*/
-
 //-----------------------------------------------------------------------------
 // "button_press_event" from scrollbar
 //-----------------------------------------------------------------------------
@@ -2119,13 +2071,6 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id,
     gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed",
           (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this );
 
-/*
-    gtk_signal_connect( GTK_OBJECT(m_hAdjust), "changed",
-          (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this );
-    gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed",
-          (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
-*/
-
     gtk_widget_show( m_wxwindow );
 
     if (m_parent)
@@ -3334,33 +3279,9 @@ void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible,
     }
 
     if (orient == wxHORIZONTAL)
-    {
-/*
-        gtk_signal_disconnect_by_func( GTK_OBJECT(m_hAdjust),
-            (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this );
-*/
-    
         gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" );
-        
-/*
-        gtk_signal_connect( GTK_OBJECT(m_hAdjust), "changed",
-            (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this );
-*/
-    }
     else
-    {
-/*
-        gtk_signal_disconnect_by_func( GTK_OBJECT(m_vAdjust),
-            (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
-*/
-
         gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" );
-        
-/*
-        gtk_signal_connect( GTK_OBJECT(m_vAdjust), "changed",
-            (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
-*/
-    }
 }
 
 void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
index c7e8bc5918d25beefa2a63af2996c6d65f6d02bf..64f720e2aec6b304cbe43821afd912da20f4bd8c 100644 (file)
@@ -1577,54 +1577,6 @@ static void gtk_window_hscroll_callback( GtkAdjustment *adjust, wxWindow *win )
     win->GetEventHandler()->ProcessEvent( event );
 }
 
-//-----------------------------------------------------------------------------
-// "changed" from m_vAdjust
-//-----------------------------------------------------------------------------
-
-/*
-static void gtk_window_vscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win )
-{
-    DEBUG_MAIN_THREAD
-
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (g_blockEventsOnDrag) return;
-    if (!win->m_hasVMT) return;
-
-    wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK;
-    int value = (int)(win->m_vAdjust->value+0.5);
-
-    wxScrollWinEvent event( command, value, wxVERTICAL );
-    event.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( event );
-}
-*/
-
-//-----------------------------------------------------------------------------
-// "changed" from m_hAdjust
-//-----------------------------------------------------------------------------
-
-/*
-static void gtk_window_hscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win )
-{
-    DEBUG_MAIN_THREAD
-
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (g_blockEventsOnDrag) return;
-    if (!win->m_hasVMT) return;
-
-    wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK;
-    int value = (int)(win->m_hAdjust->value+0.5);
-
-    wxScrollWinEvent event( command, value, wxHORIZONTAL );
-    event.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( event );
-}
-*/
-
 //-----------------------------------------------------------------------------
 // "button_press_event" from scrollbar
 //-----------------------------------------------------------------------------
@@ -2119,13 +2071,6 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id,
     gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed",
           (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this );
 
-/*
-    gtk_signal_connect( GTK_OBJECT(m_hAdjust), "changed",
-          (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this );
-    gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed",
-          (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
-*/
-
     gtk_widget_show( m_wxwindow );
 
     if (m_parent)
@@ -3334,33 +3279,9 @@ void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible,
     }
 
     if (orient == wxHORIZONTAL)
-    {
-/*
-        gtk_signal_disconnect_by_func( GTK_OBJECT(m_hAdjust),
-            (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this );
-*/
-    
         gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" );
-        
-/*
-        gtk_signal_connect( GTK_OBJECT(m_hAdjust), "changed",
-            (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this );
-*/
-    }
     else
-    {
-/*
-        gtk_signal_disconnect_by_func( GTK_OBJECT(m_vAdjust),
-            (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
-*/
-
         gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" );
-        
-/*
-        gtk_signal_connect( GTK_OBJECT(m_vAdjust), "changed",
-            (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
-*/
-    }
 }
 
 void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )