00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "gtkStatsGuide.h"
00020
00021 #include <pStatStripChart.h>
00022
00023
00024
00025
00026
00027
00028 GtkStatsGuide::
00029 GtkStatsGuide(PStatStripChart *chart) :
00030 _chart(chart)
00031 {
00032 set_events(GDK_EXPOSURE_MASK);
00033
00034
00035
00036 Gdk_Font font = get_style()->gtkobj()->font;
00037 int text_width = font.string_width("0000");
00038 set_usize(text_width, 0);
00039 }
00040
00041
00042
00043
00044
00045
00046 gint GtkStatsGuide::
00047 configure_event_impl(GdkEventConfigure *) {
00048 Gdk_Window window = get_window();
00049
00050 return true;
00051 }
00052
00053
00054
00055
00056
00057
00058
00059
00060 gint GtkStatsGuide::
00061 expose_event_impl(GdkEventExpose *event) {
00062 Gdk_GC fg_gc =
00063 get_style()->gtkobj()->fg_gc[GTK_WIDGET_STATE (GTK_WIDGET(gtkobj()))];
00064 Gdk_GC bg_gc =
00065 get_style()->gtkobj()->bg_gc[GTK_WIDGET_STATE (GTK_WIDGET(gtkobj()))];
00066
00067 if (fg_gc && bg_gc) {
00068 Gdk_Window window = get_window();
00069 window.draw_rectangle(bg_gc, true, 0, 0, width(), height());
00070
00071 Gdk_Font font = fg_gc.get_font();
00072 int text_ascent = font.ascent();
00073
00074 int num_guide_bars = _chart->get_num_guide_bars();
00075 for (int i = 0; i < num_guide_bars; i++) {
00076 const PStatStripChart::GuideBar &bar = _chart->get_guide_bar(i);
00077 int y = _chart->height_to_pixel(bar._height);
00078
00079 if (y >= 5) {
00080
00081 window.draw_string(font, fg_gc, 0, y + text_ascent / 2,
00082 bar._label);
00083 }
00084 }
00085 }
00086
00087 return false;
00088 }