Corrected SetItemState() in listctrl
authorRobert Roebling <robert@roebling.de>
Thu, 27 May 1999 18:08:50 +0000 (18:08 +0000)
committerRobert Roebling <robert@roebling.de>
Thu, 27 May 1999 18:08:50 +0000 (18:08 +0000)
  Added test for this to scroll sample.
  Didn't find reason for strange positioning of
    progress dialog.

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

samples/scroll/scroll.cpp
src/generic/listctrl.cpp
src/gtk/frame.cpp
src/gtk1/frame.cpp

index ef74ac887aa8185698eb454c1f8a296398a94d29..ab79be35eb74e8ed3cae9ac2868aede44eca19b2 100644 (file)
@@ -101,7 +101,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
 
   wxListCtrl *m_listCtrl = new wxListCtrl(
        this, -1, wxPoint(200, 10), wxSize(180, 120),
 
   wxListCtrl *m_listCtrl = new wxListCtrl(
        this, -1, wxPoint(200, 10), wxSize(180, 120),
-       wxLC_REPORT | wxSUNKEN_BORDER);
+       wxLC_REPORT | wxSUNKEN_BORDER | wxLC_SINGLE_SEL );
 
   m_listCtrl->InsertColumn(0, "First", wxLIST_FORMAT_LEFT, 90);
   m_listCtrl->InsertColumn(1, "Last", wxLIST_FORMAT_LEFT, 90);
 
   m_listCtrl->InsertColumn(0, "First", wxLIST_FORMAT_LEFT, 90);
   m_listCtrl->InsertColumn(1, "Last", wxLIST_FORMAT_LEFT, 90);
@@ -112,6 +112,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
       sprintf(buf, "Item %d", i);
       m_listCtrl->InsertItem(i, buf);
   }
       sprintf(buf, "Item %d", i);
       m_listCtrl->InsertItem(i, buf);
   }
+  m_listCtrl->SetItemState( 3, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
 
   (void) new wxListBox( this, -1, wxPoint(200,180), wxSize(180,120), 5, choices, wxLB_ALWAYS_SB );
   
 
   (void) new wxListBox( this, -1, wxPoint(200,180), wxSize(180,120), 5, choices, wxLB_ALWAYS_SB );
   
@@ -148,7 +149,6 @@ MyFrame::MyFrame()
        : wxFrame( (wxFrame *)NULL, -1, "wxScrolledWindow sample",
                   wxPoint(20,20), wxSize(470,360) )
 {
        : wxFrame( (wxFrame *)NULL, -1, "wxScrolledWindow sample",
                   wxPoint(20,20), wxSize(470,360) )
 {
-/*
   wxMenu *file_menu = new wxMenu();
   file_menu->Append( ID_ABOUT, "&About..");
   file_menu->Append( ID_QUIT, "E&xit\tAlt-X");
   wxMenu *file_menu = new wxMenu();
   file_menu->Append( ID_ABOUT, "&About..");
   file_menu->Append( ID_QUIT, "E&xit\tAlt-X");
@@ -162,7 +162,6 @@ MyFrame::MyFrame()
   int widths[] = { -1, 100 };
   SetStatusWidths( 2, widths );
 
   int widths[] = { -1, 100 };
   SetStatusWidths( 2, widths );
 
-*/
   m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) );
   m_canvas->SetScrollbars( 10, 10, 50, 100 );
 }
   m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) );
   m_canvas->SetScrollbars( 10, 10, 50, 100 );
 }
index d0a1bd2fcdcc63d1d5ecc9da76f17f5018b87505..e2109c176c61a45792d43d9fcdd6bd28675faaf5 100644 (file)
@@ -1781,7 +1781,7 @@ void wxListMainWindow::SetItemState( long item, long state, long stateMask )
             m_current = line;
             FocusLine( m_current );
             RefreshLine( m_current );
             m_current = line;
             FocusLine( m_current );
             RefreshLine( m_current );
-            RefreshLine( oldCurrent );
+            if (oldCurrent) RefreshLine( oldCurrent );
         }
     }
 
         }
     }
 
@@ -1799,9 +1799,9 @@ void wxListMainWindow::SetItemState( long item, long state, long stateMask )
                 UnfocusLine( m_current );
                 m_current = line;
                 FocusLine( m_current );
                 UnfocusLine( m_current );
                 m_current = line;
                 FocusLine( m_current );
-                oldCurrent->Hilight( FALSE );
+                if (oldCurrent) oldCurrent->Hilight( FALSE );
                 RefreshLine( m_current );
                 RefreshLine( m_current );
-                RefreshLine( oldCurrent );
+                if (oldCurrent) RefreshLine( oldCurrent );
             }
             bool on = state & wxLIST_STATE_SELECTED;
            if (on != line->IsHilighted())
             }
             bool on = state & wxLIST_STATE_SELECTED;
            if (on != line->IsHilighted())
index 66dece16c506b39cbde9877f0a0e1ce059843717..1f8dcc9d638eb7d9f7cd855015a79f825df7535f 100644 (file)
@@ -152,7 +152,7 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
         wxapp_install_idle_handler();
 
     if (!win->m_hasVMT) return FALSE;
         wxapp_install_idle_handler();
 
     if (!win->m_hasVMT) return FALSE;
-
+    
     win->m_x = event->x;
     win->m_y = event->y;
 
     win->m_x = event->x;
     win->m_y = event->y;
 
@@ -510,7 +510,6 @@ void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
     {
         if ((m_x != old_x) || (m_y != old_y))
         {
     {
         if ((m_x != old_x) || (m_y != old_y))
         {
-            /* we set the size here and in gtk_frame_map_callback */
             gtk_widget_set_uposition( m_widget, m_x, m_y );
         }
     }
             gtk_widget_set_uposition( m_widget, m_x, m_y );
         }
     }
index 66dece16c506b39cbde9877f0a0e1ce059843717..1f8dcc9d638eb7d9f7cd855015a79f825df7535f 100644 (file)
@@ -152,7 +152,7 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
         wxapp_install_idle_handler();
 
     if (!win->m_hasVMT) return FALSE;
         wxapp_install_idle_handler();
 
     if (!win->m_hasVMT) return FALSE;
-
+    
     win->m_x = event->x;
     win->m_y = event->y;
 
     win->m_x = event->x;
     win->m_y = event->y;
 
@@ -510,7 +510,6 @@ void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
     {
         if ((m_x != old_x) || (m_y != old_y))
         {
     {
         if ((m_x != old_x) || (m_y != old_y))
         {
-            /* we set the size here and in gtk_frame_map_callback */
             gtk_widget_set_uposition( m_widget, m_x, m_y );
         }
     }
             gtk_widget_set_uposition( m_widget, m_x, m_y );
         }
     }