📄 gsegyproperties.c
字号:
}gboolean g_segy_properties_has_main_widget (GSEGYProperties *self) { GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (self); return (private->window != NULL);}GSEGYProperties* g_segy_properties_new (GtkSeisViewGl *seis_view, GSEGYSeismicAccessor *seismic_accessor, GSEGYCursorPanel *cursor_panel, gboolean has_ensembles) { GSEGYProperties *new_properties = G_SEGY_PROPERTIES (g_object_new (G_SEGY_TYPE_PROPERTIES, NULL)); GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (new_properties); guint i; private->seis_view = seis_view; private->cursor_panel = cursor_panel; private->seismic_accessor = seismic_accessor; g_object_ref (G_OBJECT (private->seis_view)); g_object_ref (G_OBJECT (private->cursor_panel)); g_object_ref (G_OBJECT (private->seismic_accessor)); GSeisColor seis_color; seis_color.red = private->axes_bg_color.red; seis_color.green = private->axes_bg_color.green; seis_color.blue = private->axes_bg_color.blue; gtk_seis_view_gl_set_axes_corner_color (private->seis_view, &seis_color); seis_color.red = private->trace_color.red; seis_color.green = private->trace_color.green; seis_color.blue = private->trace_color.blue; gtk_seis_view_gl_set_trace_color (private->seis_view, &seis_color); seis_color.red = private->underlayer_color.red; seis_color.green = private->underlayer_color.green; seis_color.blue = private->underlayer_color.blue; gtk_seis_view_gl_set_underlayer_color (private->seis_view, &seis_color); seis_color.red = private->highlight_color.red; seis_color.green = private->highlight_color.green; seis_color.blue = private->highlight_color.blue; gtk_seis_view_gl_set_highlight_color (private->seis_view, &seis_color); gtk_seis_view_gl_set_show_cross (private->seis_view, private->show_cross); private->sort_labels = g_segy_seismic_accessor_get_sorting_fields_names (private->seismic_accessor); if (has_ensembles) private->default_label_id = g_segy_seismic_accessor_get_second_level_sort_id (private->seismic_accessor) - 1; else private->default_label_id = g_segy_seismic_accessor_get_first_level_sort_id (private->seismic_accessor) - 1; for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) { if (private->axis[i] && private->axis_is_shown[i]) gtk_seis_view_gl_set_axis (private->seis_view, i, private->axis[i]); private->axis_label_id[i] = private->default_label_id; } g_segy_cursor_panel_set_fields_ids (private->cursor_panel, private->axis_label_id[G_SEIS_VIEW_AXIS_TOP] + 1, private->axis_label_id[G_SEIS_VIEW_AXIS_BOTTOM] + 1); g_segy_cursor_panel_show_real_amplitude (private->cursor_panel, private->real_amplitude); return new_properties;}static void g_segy_properties_init (GSEGYProperties *self) { GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (self); guint i; private->window = NULL; private->vbox = NULL; private->notebook = NULL; private->axes_vbox = NULL; private->data_vbox = NULL; private->axes_size_group = NULL; private->common_frame = NULL; private->common_table = NULL; private->axes_font_label = NULL; private->axes_font_button = NULL; private->axes_fg_label = NULL; private->axes_fg_button = NULL; private->axes_bg_label = NULL; private->axes_bg_button = NULL; private->axis_frame = NULL; private->axes_combo = NULL; private->axis_vbox = NULL;#ifdef WIN32 private->default_font = g_strdup ("Tahoma 8");#else private->default_font = g_strdup ("Helvetica 8");#endif GtkStyle* def_style = gtk_widget_get_default_style (); GdkColor *def_fg = &def_style->text[0]; private->axes_fg_color.pixel = def_fg->pixel; private->axes_fg_color.red = def_fg->red; private->axes_fg_color.green = def_fg->green; private->axes_fg_color.blue = def_fg->blue; GdkColor *def_bg = &def_style->bg[1]; private->axes_bg_color.pixel = def_bg->pixel; private->axes_bg_color.red = def_bg->red; private->axes_bg_color.green = def_bg->green; private->axes_bg_color.blue = def_bg->blue; GdkColor *def_underlayer = &def_style->base[0]; private->underlayer_color.pixel = def_underlayer->pixel; private->underlayer_color.red = def_underlayer->red; private->underlayer_color.green = def_underlayer->green; private->underlayer_color.blue = def_underlayer->blue; GdkColor *def_trace = &def_style->text[0]; private->trace_color.pixel = def_trace->pixel; private->trace_color.red = def_trace->red; private->trace_color.green = def_trace->green; private->trace_color.blue = def_trace->blue; GdkColor *def_highlight = &def_style->bg[3]; private->highlight_color.pixel = def_highlight->pixel; private->highlight_color.red = def_highlight->red; private->highlight_color.green = def_highlight->green; private->highlight_color.blue = def_highlight->blue; private->default_font = pango_font_description_to_string (def_style->font_desc); if (NULL == private->default_font) {#ifdef WIN32 private->default_font = g_strdup ("Tahoma 8");#else private->default_font = g_strdup ("Helvetica 8");#endif } private->active_axis = 0; for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) { private->axis_vboxs[i] = NULL; private->axis_label[i] = NULL; private->axis_hbox[i] = NULL; private->axis_sort_combo[i] = NULL; private->axis_precision_spin[i] = NULL; private->axis_integer_radio[i] = NULL; private->axis_float_radio[i] = NULL; private->axis_show_toggle[i] = NULL; private->axis_table[i] = NULL; private->axis_font_label[i] = NULL; private->axis_font_button[i] = NULL; private->axis_fg_label[i] = NULL; private->axis_fg_button[i] = NULL; private->axis_bg_label[i] = NULL; private->axis_bg_button[i] = NULL; private->axis_fg_color[i].pixel = private->axes_fg_color.pixel; private->axis_fg_color[i].red = private->axes_fg_color.red; private->axis_fg_color[i].green = private->axes_fg_color.green; private->axis_fg_color[i].blue = private->axes_fg_color.blue; private->axis_bg_color[i].pixel = private->axes_bg_color.pixel; private->axis_bg_color[i].red = private->axes_bg_color.red; private->axis_bg_color[i].green = private->axes_bg_color.green; private->axis_bg_color[i].blue = private->axes_bg_color.blue; private->axis_is_shown[i] = FALSE; private->axis_is_float[i] = FALSE; private->axis_precision[i] = 2; private->axis_labels_chunk[i] = NULL; private->axis_labels[i] = NULL; } private->axis_is_shown[G_SEIS_VIEW_AXIS_TOP] = TRUE; private->axis_is_shown[G_SEIS_VIEW_AXIS_RIGHT] = TRUE; private->axis_is_shown[G_SEIS_VIEW_AXIS_LEFT] = TRUE; private->data_size_group = NULL; private->data_table = NULL; private->data_colors_frame = NULL; private->trace_label = NULL; private->underlayer_label = NULL; private->highlight_button = NULL; private->trace_button = NULL; private->underlayer_button = NULL; private->highlight_button = NULL; private->data_cursor_frame = NULL; private->data_cursor_vbox = NULL; private->show_cursor_toggle = NULL; private->real_amplitude_toggle = NULL; private->show_cross = TRUE; private->real_amplitude = TRUE; private->button_box = NULL; private->close_button = NULL; private->seis_view = NULL; private->sort_labels = NULL; private->default_label_id = 0; private->ensemble_index = 0; private->cursor_panel = NULL; private->seismic_accessor = NULL; private->axis[G_SEIS_VIEW_AXIS_TOP] = G_SEIS_VIEW_AXIS (g_seis_view_axis_traces_new ()); g_segy_properties_set_font (self, G_SEIS_VIEW_AXIS_TOP); g_segy_properties_set_fg_color (self, G_SEIS_VIEW_AXIS_TOP); g_segy_properties_set_bg_color (self, G_SEIS_VIEW_AXIS_TOP); private->axis[G_SEIS_VIEW_AXIS_BOTTOM] = G_SEIS_VIEW_AXIS (g_seis_view_axis_traces_new ()); g_segy_properties_set_font (self, G_SEIS_VIEW_AXIS_BOTTOM); g_segy_properties_set_fg_color (self, G_SEIS_VIEW_AXIS_BOTTOM); g_segy_properties_set_bg_color (self, G_SEIS_VIEW_AXIS_BOTTOM); private->axis[G_SEIS_VIEW_AXIS_LEFT] = G_SEIS_VIEW_AXIS (g_seis_view_axis_z_new ()); g_segy_properties_set_font (self, G_SEIS_VIEW_AXIS_LEFT); g_segy_properties_set_format (self, G_SEIS_VIEW_AXIS_LEFT); g_segy_properties_set_precision (self, G_SEIS_VIEW_AXIS_LEFT); g_segy_properties_set_fg_color (self, G_SEIS_VIEW_AXIS_LEFT); g_segy_properties_set_bg_color (self, G_SEIS_VIEW_AXIS_LEFT); private->axis[G_SEIS_VIEW_AXIS_RIGHT] = G_SEIS_VIEW_AXIS (g_seis_view_axis_z_new ()); g_segy_properties_set_font (self, G_SEIS_VIEW_AXIS_RIGHT); g_segy_properties_set_format (self, G_SEIS_VIEW_AXIS_RIGHT); g_segy_properties_set_precision (self, G_SEIS_VIEW_AXIS_RIGHT); g_segy_properties_set_fg_color (self, G_SEIS_VIEW_AXIS_RIGHT); g_segy_properties_set_bg_color (self, G_SEIS_VIEW_AXIS_RIGHT);#ifdef DEBUG g_print ("<GSEGYProperties is inited>\n");#endif}static void g_segy_properties_finalize (GObject *object) { GSEGYProperties *self = G_SEGY_PROPERTIES (object); GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (self); gint i, j; if (private->window) gtk_widget_destroy (private->window); if (private->seis_view) g_object_unref (G_OBJECT (private->seis_view)); if (private->default_font) g_free (private->default_font); if (private->cursor_panel) g_object_unref (G_OBJECT (private->cursor_panel)); if (private->seismic_accessor) g_object_unref (G_OBJECT (private->seismic_accessor)); for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) { if (private->axis[i]) g_object_unref (G_OBJECT (private->axis[i])); if (NULL == private->axis_labels_chunk[i]) continue; gboolean is_copy = FALSE; for (j = i - 1; j >= 0; j--) { if (private->axis_labels_chunk[i] == private->axis_labels_chunk[j]) { is_copy = TRUE; break; } } if (FALSE == is_copy) { g_string_chunk_free (private->axis_labels_chunk[i]); g_ptr_array_free (private->axis_labels[i], TRUE); } }#ifdef DEBUG g_print ("<GSEGYProperties is finalized>\n");#endif if (G_OBJECT_CLASS (g_segy_properties_parent_class)->finalize) G_OBJECT_CLASS (g_segy_properties_parent_class)->finalize (object);}static void g_segy_properties_class_init (GSEGYPropertiesClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = g_segy_properties_finalize; g_type_class_add_private (klass, sizeof (GSEGYPropertiesPrivate));#ifdef DEBUG g_print ("<GSEGYProperties class is inited>\n");#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -