⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsegyproperties.c

📁 segy 显示程序!希望能给正在做这部分朋友提供一部分资料
💻 C
📖 第 1 页 / 共 4 页
字号:
}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 + -