Changeset 188
- Timestamp:
- 05/21/06 07:23:10 (2 years ago)
- Location:
- trunk/src/gtk
- Files:
-
- 2 modified
-
MainView.cxx (modified) (1 diff)
-
PageView.cxx (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gtk/MainView.cxx
r186 r188 110 110 G_CALLBACK (main_window_go_to_first_page_cb) }, 111 111 112 { "GoToNextPage", GTK_STOCK_GO_FORWARD, N_("_Next Page"), " Page_Down",112 { "GoToNextPage", GTK_STOCK_GO_FORWARD, N_("_Next Page"), "<Shift>Page_Down", 113 113 N_("Go to the next page"), 114 114 G_CALLBACK (main_window_go_to_next_page_cb) }, 115 115 116 { "GoToPreviousPage", GTK_STOCK_GO_BACK, N_("_Previous Page"), " Page_Up",116 { "GoToPreviousPage", GTK_STOCK_GO_BACK, N_("_Previous Page"), "<Shift>Page_Up", 117 117 N_("Go to the previous page"), 118 118 G_CALLBACK (main_window_go_to_previous_page_cb) }, -
trunk/src/gtk/PageView.cxx
r187 r188 19 19 #include <gettext.h> 20 20 #include <gtk/gtk.h> 21 #include <gdk/gdkkeysyms.h> 21 22 #include <epdfview.h> 22 23 #include "PageView.h" … … 34 35 static gboolean page_view_mouse_motion_cb (GtkWidget *, GdkEventMotion *, 35 36 gpointer); 36 static void page_view_get_scrollbars_size (GtkWidget * widget,37 static void page_view_get_scrollbars_size (GtkWidget *, 37 38 gint *width, gint *height); 38 39 static void page_view_resized_cb (GtkWidget *, GtkAllocation *, gpointer); 39 static gboolean page_view_scrolled_cb (GtkWidget * widget, GdkEventScroll *,40 gpointer);40 static gboolean page_view_scrolled_cb (GtkWidget *, GdkEventScroll *, gpointer); 41 static gboolean page_view_keypress_cb (GtkWidget *, GdkEventKey *, gpointer); 41 42 42 43 … … 217 218 g_signal_connect (G_OBJECT (m_PageScroll), "scroll-event", 218 219 G_CALLBACK (page_view_scrolled_cb), pter); 220 g_signal_connect (G_OBJECT (m_PageScroll), "key-press-event", 221 G_CALLBACK (page_view_keypress_cb), pter); 219 222 220 223 // And connect the motion, button press and release events. … … 409 412 view->getPresenter ()->mouseButtonPressed (event->button, x, y); 410 413 414 gtk_widget_grab_focus(view->getTopWidget()); 415 411 416 return TRUE; 412 417 } … … 524 529 return FALSE; 525 530 } 531 532 /// 533 /// @brief A key was pressed. 534 /// 535 static gboolean 536 page_view_keypress_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) 537 { 538 g_assert ( NULL != data && "The data parameter is NULL."); 539 540 GtkScrollType direction; 541 gboolean horizontal = FALSE; 542 PagePter *pter = (PagePter *)data; 543 544 GtkAdjustment *adjustment = 545 gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (widget)); 546 gdouble position = gtk_adjustment_get_value (adjustment); 547 548 if ( event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK) ) 549 { 550 return FALSE; 551 } 552 553 switch ( event->keyval ) 554 { 555 case GDK_Left: 556 case GDK_KP_Left: 557 direction = GTK_SCROLL_STEP_LEFT; 558 horizontal = TRUE; 559 break; 560 561 case GDK_Right: 562 case GDK_KP_Right: 563 horizontal = TRUE; 564 direction = GTK_SCROLL_STEP_RIGHT; 565 break; 566 567 case GDK_Up: 568 case GDK_KP_Up: 569 direction = GTK_SCROLL_STEP_UP; 570 break; 571 572 case GDK_Down: 573 case GDK_KP_Down: 574 direction = GTK_SCROLL_STEP_DOWN; 575 break; 576 577 case GDK_Page_Up: 578 case GDK_KP_Page_Up: 579 if ( position == adjustment->lower ) 580 { 581 pter->scrollToPreviousPage (); 582 return TRUE; 583 } 584 direction = GTK_SCROLL_START; 585 break; 586 587 case GDK_Page_Down: 588 case GDK_KP_Page_Down: 589 if ( position == ( adjustment->upper - adjustment->page_size) ) 590 { 591 pter->scrollToNextPage (); 592 return TRUE; 593 } 594 direction = GTK_SCROLL_END; 595 break; 596 597 default: 598 return FALSE; 599 } 600 601 g_signal_emit_by_name(G_OBJECT(widget), "scroll-child", 602 direction, horizontal); 603 return TRUE; 604 }
