aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--trace-graph.c34
1 files changed, 29 insertions, 5 deletions
diff --git a/trace-graph.c b/trace-graph.c
index cab3647..27c139d 100644
--- a/trace-graph.c
+++ b/trace-graph.c
@@ -766,7 +766,25 @@ do_pop_up(GtkWidget *widget, GdkEventButton *event, gpointer data)
766 return TRUE; 766 return TRUE;
767} 767}
768 768
769static void button_press(struct graph_info *ginfo, gint x, guint state) 769static void draw_info_box(struct graph_info *ginfo, const gchar *buffer,
770 gint x, gint y);
771
772static void stop_zoom_tip(struct graph_info *ginfo)
773{
774 clear_info_box(ginfo);
775}
776
777static void show_zoom_tip(struct graph_info *ginfo, gint x, gint y)
778{
779 clear_info_box(ginfo);
780
781 draw_info_box(ginfo,
782 "Click and hold left mouse and drag right to zoom in\n"
783 "Click and hold left mouse and drag left to zoom out",
784 x, y);
785}
786
787static void button_press(struct graph_info *ginfo, gint x, gint y, guint state)
770{ 788{
771 ginfo->press_x = x; 789 ginfo->press_x = x;
772 ginfo->last_x = 0; 790 ginfo->last_x = 0;
@@ -785,8 +803,10 @@ static void button_press(struct graph_info *ginfo, gint x, guint state)
785 clear_line(ginfo, convert_time_to_x(ginfo, ginfo->marka_time)); 803 clear_line(ginfo, convert_time_to_x(ginfo, ginfo->marka_time));
786 update_marka(ginfo, x); 804 update_marka(ginfo, x);
787 } 805 }
788 } else 806 } else {
789 ginfo->zoom = TRUE; 807 ginfo->zoom = TRUE;
808 show_zoom_tip(ginfo, x, y);
809 }
790 810
791 return; 811 return;
792} 812}
@@ -826,7 +846,7 @@ button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
826 return TRUE; 846 return TRUE;
827 } 847 }
828 848
829 button_press(ginfo, event->x, event->state); 849 button_press(ginfo, event->x, event->y, event->state);
830 850
831 return TRUE; 851 return TRUE;
832} 852}
@@ -839,6 +859,9 @@ static void motion_plot(struct graph_info *ginfo, gint x, gint y)
839{ 859{
840 struct graph_plot *plot; 860 struct graph_plot *plot;
841 861
862 if (ginfo->zoom)
863 stop_zoom_tip(ginfo);
864
842 if (!ginfo->curr_pixmap) 865 if (!ginfo->curr_pixmap)
843 return; 866 return;
844 867
@@ -876,7 +899,7 @@ info_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
876 if (event->type == GDK_2BUTTON_PRESS) 899 if (event->type == GDK_2BUTTON_PRESS)
877 return FALSE; 900 return FALSE;
878 901
879 button_press(ginfo, gtk_adjustment_get_value(ginfo->hadj), event->state); 902 button_press(ginfo, gtk_adjustment_get_value(ginfo->hadj), event->y, event->state);
880 903
881 return FALSE; 904 return FALSE;
882} 905}
@@ -1500,7 +1523,8 @@ static void button_release(struct graph_info *ginfo, gint x)
1500 ginfo->show_marka = TRUE; 1523 ginfo->show_marka = TRUE;
1501 ginfo->show_markb = TRUE; 1524 ginfo->show_markb = TRUE;
1502 update_markb(ginfo, x); 1525 update_markb(ginfo, x);
1503 } 1526 } else
1527 stop_zoom_tip(ginfo);
1504 1528
1505 clear_line(ginfo, ginfo->last_x); 1529 clear_line(ginfo, ginfo->last_x);
1506 clear_line(ginfo, ginfo->press_x); 1530 clear_line(ginfo, ginfo->press_x);