]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/notebook.cpp
wxTempFile now respects the access rights under Unix
[wxWidgets.git] / src / gtk / notebook.cpp
index db83d59ac454fcf4d04bdbd3b474a36d710e7cda..96be1af67e42dc33a13da66883129ca6753b0f6f 100644 (file)
@@ -127,6 +127,10 @@ gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNo
     if (g_blockEventsOnDrag) return FALSE;
 
     if (!notebook->HasVMT()) return FALSE;
+    
+    /* this code makes jumping down from the handles of the notebooks
+       to the actual items in the visible notebook page possible with
+       the down-arrow key */
 
     if (gdk_event->keyval != GDK_Down) return FALSE;
     
@@ -184,6 +188,10 @@ static void wxInsertChildInNotebook( wxNotebook* parent, wxWindow* child )
 
 IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxControl)
 
+BEGIN_EVENT_TABLE(wxNotebook, wxControl)
+    EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
+END_EVENT_TABLE()
+    
 void wxNotebook::Init()
 {
     m_imageList = (wxImageList *) NULL;
@@ -381,7 +389,7 @@ void wxNotebook::AdvanceSelection( bool bForward )
     if (bForward)
         SetSelection( sel == max ? 0 : sel + 1 );
     else
-        SetSelection( sel == 0 ? max : sel - 1 );
+        SetSelection( sel == 0 ? max-1 : sel - 1 );
 }
 
 void wxNotebook::SetImageList( wxImageList* imageList )
@@ -429,7 +437,7 @@ bool wxNotebook::SetPageImage( int page, int image )
     if (image == -1 && nb_page->m_image == -1)
         return TRUE; /* Case 1): Nothing to do. */
  
-    GtkWidget *pixmapwid = NULL;
+    GtkWidget *pixmapwid = (GtkWidget*) NULL;
  
     if (nb_page->m_image != -1) 
     {
@@ -624,6 +632,14 @@ bool wxNotebook::AddPage(wxWindow* win, const wxString& text,
     return TRUE;
 }
 
+void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
+{
+    if (event.IsWindowChange()) 
+        AdvanceSelection( event.GetDirection() );
+    else 
+        event.Skip();
+}
+
 wxWindow *wxNotebook::GetPage( int page ) const
 {
     wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, "invalid notebook" );