📄 gsegyproperties.c
字号:
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 + -