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

📄 gsegyproperties.c

📁 segy 显示程序!希望能给正在做这部分朋友提供一部分资料
💻 C
📖 第 1 页 / 共 4 页
字号:
            gtk_widget_set_sensitive (private->real_amplitude_toggle, FALSE);        }    } else if (private->real_amplitude_toggle)        gtk_widget_set_sensitive (private->real_amplitude_toggle, TRUE);}static void g_segy_properties_axes_combo_changed_handler (GtkComboBox *combo_box, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_widget_hide (private->axis_vboxs[private->active_axis]);    private->active_axis = gtk_combo_box_get_active (combo_box);    gtk_widget_show (private->axis_vboxs[private->active_axis]);}static void g_segy_properties_axis_show_toggle_handler (GtkWidget *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    private->axis_is_shown[private->active_axis] = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (private->axis_show_toggle[private->active_axis]));    if (private->axis[private->active_axis]) {        if (private->axis_is_shown[private->active_axis])            gtk_seis_view_gl_set_axis (private->seis_view, private->active_axis, private->axis[private->active_axis]);        else            gtk_seis_view_gl_set_axis (private->seis_view, private->active_axis, NULL);        gtk_seis_view_gl_redraw (private->seis_view);    }}static void g_segy_properties_axes_font_set_handler (GtkFontButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    const gchar* new_font = gtk_font_button_get_font_name (widget);    guint i;    for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {        if (private->axis_font_button[i])            gtk_font_button_set_font_name (GTK_FONT_BUTTON (private->axis_font_button[i]), new_font);    }    g_segy_properties_set_font (G_SEGY_PROPERTIES (data), G_SEIS_VIEW_AXES_TYPES_NUM);    for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {        g_seis_view_axis_reshape (private->axis[i], GTK_WIDGET (private->seis_view));        if (private->axis_is_shown[i])            gtk_seis_view_gl_axis_refresh (private->seis_view, i);    }    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_axis_font_set_handler (GtkFontButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    guint i;    g_segy_properties_set_font (G_SEGY_PROPERTIES (data), private->active_axis);    for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {        g_seis_view_axis_reshape (private->axis[i], GTK_WIDGET (private->seis_view));        if (private->axis_is_shown[i])            gtk_seis_view_gl_axis_refresh (private->seis_view, i);    }    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_axes_fg_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->axes_fg_color);    guint i;    for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {        if (private->axis_fg_button[i])            gtk_color_button_set_color (GTK_COLOR_BUTTON (private->axis_fg_button[i]), &private->axes_fg_color);        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;    }    g_segy_properties_set_fg_color (G_SEGY_PROPERTIES (data), G_SEIS_VIEW_AXES_TYPES_NUM);    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_axis_fg_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->axis_fg_color[private->active_axis]);    g_segy_properties_set_fg_color (G_SEGY_PROPERTIES (data), private->active_axis);    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_axes_bg_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->axes_bg_color);    guint i;    for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {        if (private->axis_bg_button[i])            gtk_color_button_set_color (GTK_COLOR_BUTTON (private->axis_bg_button[i]), &private->axes_bg_color);        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;    }    GSeisColor corner_color;    corner_color.red = private->axes_bg_color.red;    corner_color.green = private->axes_bg_color.green;    corner_color.blue = private->axes_bg_color.blue;    gtk_seis_view_gl_set_axes_corner_color (private->seis_view, &corner_color);    g_segy_properties_set_bg_color (G_SEGY_PROPERTIES (data), G_SEIS_VIEW_AXES_TYPES_NUM);    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_axis_bg_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->axis_bg_color[private->active_axis]);    g_segy_properties_set_bg_color (G_SEGY_PROPERTIES (data), private->active_axis);    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_axis_label_combo_changed_handler (GtkComboBox *combo_box, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gint i;    gint16 new_axis_label_id = gtk_combo_box_get_active (GTK_COMBO_BOX (private->axis_sort_combo[private->active_axis]));    if (private->axis_label_id[private->active_axis] == new_axis_label_id)        return;    gboolean is_copy = FALSE;    for (i = G_SEIS_VIEW_AXES_TYPES_NUM - 1; i >= 0; i--) {        if (i == private->active_axis)            continue;        if (private->axis_labels_chunk[i] == private->axis_labels_chunk[private->active_axis]) {            is_copy = TRUE;            break;        }    }    if (FALSE == is_copy && private->axis_labels_chunk[private->active_axis]) {        g_string_chunk_free (private->axis_labels_chunk[private->active_axis]);        g_ptr_array_free (private->axis_labels[private->active_axis], TRUE);    }    private->axis_labels_chunk[private->active_axis] = NULL;    private->axis_labels[private->active_axis] = NULL;    private->axis_label_id[private->active_axis] = new_axis_label_id;    is_copy = FALSE;    for (i = G_SEIS_VIEW_AXES_TYPES_NUM - 1; i >= 0; i--) {        if (i == private->active_axis)            continue;        if (private->axis_label_id[i] == private->axis_label_id[private->active_axis]) {            is_copy = TRUE;            break;        }    }    if (TRUE == is_copy && private->axis_labels_chunk[i]) {        private->axis_labels_chunk[private->active_axis] = private->axis_labels_chunk[i];        private->axis_labels[private->active_axis] = private->axis_labels[i];    } else        g_segy_seismic_accessor_get_labels_for_second_level (private->seismic_accessor,                                                             private->ensemble_index, private->axis_label_id[private->active_axis] + 1,                                                             &private->axis_labels_chunk[private->active_axis],                                                             &private->axis_labels[private->active_axis]);    g_seis_view_axis_traces_set_str_values (G_SEIS_VIEW_AXIS_TRACES (private->axis[private->active_axis]),                                            private->axis_labels[private->active_axis]);    g_seis_view_axis_reshape (private->axis[private->active_axis], GTK_WIDGET (private->seis_view));    if (private->axis_is_shown[private->active_axis]) {        gtk_seis_view_gl_axis_refresh (private->seis_view, private->active_axis);        gtk_seis_view_gl_redraw (private->seis_view);    }    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);}static void g_segy_properties_axis_format_changed_handler (GtkToggleButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    guint i;    private->axis_is_float[private->active_axis] = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (private->axis_float_radio[private->active_axis]));    gtk_widget_set_sensitive (private->axis_precision_spin[private->active_axis], private->axis_is_float[private->active_axis]);    g_segy_properties_set_format (G_SEGY_PROPERTIES (data), private->active_axis);    if (private->axis_is_shown[private->active_axis]) {        for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {            g_seis_view_axis_reshape (private->axis[i], GTK_WIDGET (private->seis_view));            if (private->axis_is_shown[i])                gtk_seis_view_gl_axis_refresh (private->seis_view, i);        }        gtk_seis_view_gl_redraw (private->seis_view);    } else        g_seis_view_axis_reshape (private->axis[private->active_axis], GTK_WIDGET (private->seis_view));}static void g_segy_properties_axis_precision_set_handler (GtkSpinButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    guint i;    private->axis_precision[private->active_axis] = gtk_spin_button_get_value (GTK_SPIN_BUTTON (private->axis_precision_spin[private->active_axis]));    g_segy_properties_set_precision (G_SEGY_PROPERTIES (data), private->active_axis);    if (private->axis_is_shown[private->active_axis]) {        for (i = 0; i < G_SEIS_VIEW_AXES_TYPES_NUM; i++) {            g_seis_view_axis_reshape (private->axis[i], GTK_WIDGET (private->seis_view));            if (private->axis_is_shown[i])                gtk_seis_view_gl_axis_refresh (private->seis_view, i);        }        gtk_seis_view_gl_redraw (private->seis_view);    } else        g_seis_view_axis_reshape (private->axis[private->active_axis], GTK_WIDGET (private->seis_view));}static void g_segy_properties_trace_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->trace_color);    GSeisColor 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);    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_underlayer_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->underlayer_color);    GSeisColor 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);    gtk_seis_view_gl_redraw (private->seis_view);}static void g_segy_properties_highlight_color_set_handler (GtkColorButton *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_color_button_get_color (widget, &private->highlight_color);    GSeisColor 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_redraw (private->seis_view);}static void g_segy_properties_cursor_show_cross_toggle_handler (GtkWidget *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    private->show_cross = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (private->show_cursor_toggle));    gtk_seis_view_gl_set_show_cross (private->seis_view, private->show_cross);}static void g_segy_properties_cursor_real_amplitude_toggle_handler (GtkWidget *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    private->real_amplitude = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (private->real_amplitude_toggle));    g_segy_cursor_panel_show_real_amplitude (private->cursor_panel, private->real_amplitude);}static void g_segy_properties_close_button_handler (GtkWidget *widget, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_widget_hide (private->window);}static gboolean g_segy_properties_window_close_handler (GtkWidget *widget, GdkEvent *event, gpointer data) {    GSEGYPropertiesPrivate *private = G_SEGY_PROPERTIES_GET_PRIVATE (G_SEGY_PROPERTIES (data));    gtk_widget_hide (private->window);    return TRUE;}static void g_segy_properties_build_axis_font_color_table (GtkWidget **table, GtkWidget **font_label,                                                           GtkWidget **font_button, GtkWidget **fg_label,                                                           GtkWidget **fg_button, GtkWidget **bg_label,                                                           GtkWidget **bg_button, GtkSizeGroup *size_group,                                                           const gchar *font_name, const gchar *font_title,                                                           const gchar *fg_title, const gchar *bg_title,                                                           GdkColor *fg_color, GdkColor *bg_color) {    *table = gtk_table_new (3, 2, FALSE);    gtk_container_set_border_width (GTK_CONTAINER (*table), 5);    gtk_table_set_row_spacings (GTK_TABLE (*table), 5);    gtk_table_set_col_spacings (GTK_TABLE (*table), 10);    *font_label = gtk_label_new (_("Font"));    gtk_misc_set_alignment (GTK_MISC (*font_label), 0, 1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -