📄 gseisviewaxisz.c
字号:
G_SEIS_VIEW_AXIS (axis)->size_pixels = private->text_width_screen * 1.2625 + private->text_height_screen * 0.4; } private->redisplay = TRUE; if (private->rendering_mutex) g_mutex_unlock (private->rendering_mutex);}enum { PROP_0, PROP_MIN, PROP_STEP, PROP_NUM, PROP_FORMAT, PROP_PRECISION, PROP_FONT, PROP_FG_COLOR, PROP_BG_COLOR };static void g_seis_view_axis_z_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GSeisViewAxisZ *self = G_SEIS_VIEW_AXIS_Z (object); GSeisViewAxisZPrivate *private = G_SEIS_VIEW_AXIS_Z_GET_PRIVATE (self); switch (prop_id) { case PROP_MIN: g_seis_view_axis_z_set_min_max (self, g_value_get_double (value), private->values_step, private->values_num); break; case PROP_STEP: g_seis_view_axis_z_set_min_max (self, private->min_value, g_value_get_double (value), private->values_num); break; case PROP_NUM: g_seis_view_axis_z_set_min_max (self, private->min_value, private->values_step, g_value_get_uint (value)); break; case PROP_FORMAT: g_seis_view_axis_z_set_format (self, g_value_get_enum (value)); break; case PROP_PRECISION: g_seis_view_axis_z_set_precision (self, g_value_get_uchar (value)); break; case PROP_FONT: g_seis_view_axis_z_set_font (self, g_value_get_string (value)); break; case PROP_FG_COLOR: g_seis_view_axis_z_set_fg_color (self, (GSeisColor*)g_value_get_boxed (value)); break; case PROP_BG_COLOR: g_seis_view_axis_z_set_bg_color (self, (GSeisColor*)g_value_get_boxed (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; }}static void g_seis_view_axis_z_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GSeisViewAxisZ *self = G_SEIS_VIEW_AXIS_Z (object); GSeisViewAxisZPrivate *private = G_SEIS_VIEW_AXIS_Z_GET_PRIVATE (self); switch (prop_id) { case PROP_MIN: g_value_set_double (value, private->min_value); break; case PROP_STEP: g_value_set_double (value, private->values_step); break; case PROP_NUM: g_value_set_uint (value, private->values_num); break; case PROP_FORMAT: g_value_set_enum (value, private->format); break; case PROP_PRECISION: g_value_set_uchar (value, private->precision); break; case PROP_FONT: g_value_set_string (value, private->font_name); break; case PROP_FG_COLOR: g_value_set_boxed (value, &private->fg_color); break; case PROP_BG_COLOR: g_value_set_boxed (value, &private->bg_color); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; }}static GType g_seis_view_axis_z_format_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { G_SEIS_VIEW_AXIS_Z_INTEGER, "G_SEIS_VIEW_AXIS_Z_INTEGER", "integer" }, { G_SEIS_VIEW_AXIS_Z_FLOAT, "G_SEIS_VIEW_AXIS_Z_FLOAT", "float" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GSeisViewAxisZFormat", values); } return etype;}static void g_seis_view_axis_z_init (GSeisViewAxisZ *self) { GSeisViewAxisZPrivate *private = G_SEIS_VIEW_AXIS_Z_GET_PRIVATE (self); private->format = G_SEIS_VIEW_AXIS_Z_FLOAT; private->label_max_strlen = 0; private->precision = 2; private->min_value = 0; private->max_value = 1.0; private->values_num = 2; private->values_step = 1; private->fg_color.red = G_MAXUINT16; private->fg_color.green = G_MAXUINT16; private->fg_color.blue = G_MAXUINT16; private->bg_color.red = 0; private->bg_color.green = 0; private->bg_color.blue = 0; private->font_name = NULL; private->font_list_base = 0; private->font_list_start = 32; private->font_list_end = 96; private->display_list_base = 0; private->font_desc = NULL; private->text_width_screen = 0; private->text_height_screen = 0; private->rebuild_font = TRUE; private->redisplay = TRUE; (G_SEIS_VIEW_AXIS (self))->type = G_SEIS_VIEW_AXIS_LEFT; (G_SEIS_VIEW_AXIS (self))->size_pixels = 35; private->is_threaded = FALSE; private->rendering_mutex = NULL;#ifdef DEBUG g_print ("<GSeisViewAxisZ is inited>\n");#endif}static void g_seis_view_axis_z_finalize (GObject *object) { GSeisViewAxisZPrivate *private = G_SEIS_VIEW_AXIS_Z_GET_PRIVATE (G_SEIS_VIEW_AXIS_Z (object)); if (private->font_name) g_free (private->font_name); if (private->font_desc) pango_font_description_free (private->font_desc); if (private->rendering_mutex) g_mutex_free (private->rendering_mutex);#ifdef DEBUG g_print ("<GSeisViewAxisZ is finalized>\n");#endif if (G_OBJECT_CLASS (g_seis_view_axis_z_parent_class)->finalize) G_OBJECT_CLASS (g_seis_view_axis_z_parent_class)->finalize (object);}static void g_seis_view_axis_z_class_init (GSeisViewAxisZClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GSeisViewAxisClass *axis_class = G_SEIS_VIEW_AXIS_CLASS (klass); gobject_class->finalize = g_seis_view_axis_z_finalize; gobject_class->set_property = g_seis_view_axis_z_set_property; gobject_class->get_property = g_seis_view_axis_z_get_property; g_type_class_add_private (klass, sizeof (GSeisViewAxisZPrivate)); axis_class->view_attach_notify = g_seis_view_axis_z_attach_notify; axis_class->view_detach_notify = g_seis_view_axis_z_detach_notify; axis_class->view_data_viewport_change = g_seis_view_axis_z_data_viewport_change; axis_class->view_redraw_event = g_seis_view_axis_z_redraw_event; axis_class->view_resize_event = g_seis_view_axis_z_resize_event; axis_class->axis_reshape = g_seis_view_axis_z_reshape; g_object_class_install_property (gobject_class, PROP_MIN, g_param_spec_double ("min", "Min", "Axis minimum value", -G_MAXDOUBLE, G_MAXDOUBLE, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_STEP, g_param_spec_double ("step", "Step", "Interval between ticks", -G_MAXDOUBLE, G_MAXDOUBLE, 1.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_NUM, g_param_spec_uint ("num", "Num", "Number of ticks", 0, G_MAXUINT, 2, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FORMAT, g_param_spec_enum ("format", "Format", "Tick labels format", g_seis_view_axis_z_format_get_type (), G_SEIS_VIEW_AXIS_Z_FLOAT, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_PRECISION, g_param_spec_uchar ("precision", "Precision", "Tick labels precision (number of digits in fractinal part)", 0, 6, 2, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FONT, g_param_spec_string ("font", "Font", "Font to use in labels",#ifdef WIN32 "Tahoma 10",#else "Helvetica 10",#endif G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FG_COLOR, g_param_spec_boxed ("fg_color", "ForegroundColor", "Foreground color of the axis", G_TYPE_SEIS_COLOR, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_BG_COLOR, g_param_spec_boxed ("bg_color", "BackgroundColor", "Background color of the axis", G_TYPE_SEIS_COLOR, G_PARAM_READWRITE));#ifdef DEBUG g_print ("<GSeisViewAxisZ class is inited>\n");#endif}GSeisViewAxisZ* g_seis_view_axis_z_new (void) { return g_object_new (G_SEIS_TYPE_VIEW_AXIS_Z, NULL);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -