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

📄 gsegytoolpanel.c

📁 segy 显示程序!希望能给正在做这部分朋友提供一部分资料
💻 C
📖 第 1 页 / 共 2 页
字号:
/*  * GTKSEISVIEWUI - Library of interface elements for GSEGYView * * Copyright (C) 2006 Vladimir Bashkardin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more av. * * You should have received a copy of the GNU General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * * Author:  Vladimir Bashkardin  <vovizmus@users.sourceforge.net> */#include <gtkseisviewgl/gtkseisviewgl.h>#include "gsegyfileaux.h"#include "gsegyfileui_marshal.h"#include "gsegytoolpanel.h"G_DEFINE_TYPE (GSEGYToolPanel, g_segy_tool_panel, G_TYPE_OBJECT)#define G_SEGY_TOOL_PANEL_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), G_SEGY_TYPE_TOOL_PANEL, GSEGYToolPanelPrivate))typedef struct _GSEGYToolPanelPrivate GSEGYToolPanelPrivate;struct _GSEGYToolPanelPrivate {    GtkWidget   *frame;    GtkWidget   *hbox;    GtkWidget   *motion_tool_button;    GtkWidget   *motion_tool_icon;    GtkWidget   *magnify_tool_button;    GtkWidget   *magnify_tool_icon;    GtkWidget   *highlight_tool_button;    GtkWidget   *highlight_tool_icon;    GtkWidget   *scaling_button;    GtkWidget   *scaling_icon;    GtkWidget   *fullscreen_button;    GtkWidget   *fullscreen_icon;    GtkWidget   *save_image_button;    GtkWidget   *save_image_icon;    GtkWidget   *color_manager_button;    GtkWidget   *color_manager_icon;    GtkWidget   *properties_button;    GtkWidget   *properties_icon;    GtkTooltips *toolpanel_tips;    GtkWidget   *active_tool;};static void g_segy_tool_panel_init (GSEGYToolPanel *self) {    GSEGYToolPanelPrivate *private = G_SEGY_TOOL_PANEL_GET_PRIVATE (self);    private->frame = NULL;    private->hbox = NULL;    private->motion_tool_button = NULL;    private->motion_tool_icon = NULL;    private->magnify_tool_button = NULL;    private->magnify_tool_icon = NULL;    private->highlight_tool_button = NULL;    private->highlight_tool_icon = NULL;    private->scaling_button = NULL;    private->scaling_icon = NULL;    private->fullscreen_button = NULL;    private->fullscreen_icon = NULL;    private->save_image_button = NULL;    private->save_image_icon = NULL;    private->color_manager_button = NULL;    private->color_manager_icon = NULL;    private->properties_button = NULL;    private->properties_icon = NULL;    private->toolpanel_tips = NULL;    private->active_tool = NULL;#ifdef DEBUG    g_print ("<GSEGYToolPanel is inited>\n");#endif}static void g_segy_tool_panel_finalize (GObject *object) {    GSEGYToolPanel *self = G_SEGY_TOOL_PANEL (object);    GSEGYToolPanelPrivate *private = G_SEGY_TOOL_PANEL_GET_PRIVATE (self);    if (private->frame)        gtk_widget_destroy (private->frame);    if (private->toolpanel_tips)        g_object_unref (G_OBJECT (private->toolpanel_tips));#ifdef DEBUG    g_print ("<GSEGYToolPanel is finalized>\n");#endif    if (G_OBJECT_CLASS (g_segy_tool_panel_parent_class)->finalize)        G_OBJECT_CLASS (g_segy_tool_panel_parent_class)->finalize (object);}static void g_segy_tool_panel_class_init (GSEGYToolPanelClass *klass) {    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);    gobject_class->finalize = g_segy_tool_panel_finalize;    g_type_class_add_private (klass, sizeof (GSEGYToolPanelPrivate));    klass->motion_tool = NULL;    klass->magnify_tool = NULL;    klass->highlight_tool = NULL;    klass->scaling = NULL;    klass->fullscreen = NULL;    klass->save_image = NULL;    klass->color_manager = NULL;    klass->properties = NULL;    klass->motion_tool_id = g_signal_new ("motion_tool",                                          G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                          G_SIGNAL_RUN_LAST,                                          G_STRUCT_OFFSET (GSEGYToolPanelClass, motion_tool),                                          NULL, NULL,                                          g_segyui_marshal_VOID__VOID,                                          G_TYPE_NONE, 0);    klass->magnify_tool_id = g_signal_new ("magnify_tool",                                           G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                           G_SIGNAL_RUN_LAST,                                           G_STRUCT_OFFSET (GSEGYToolPanelClass, magnify_tool),                                           NULL, NULL,                                           g_segyui_marshal_VOID__VOID,                                           G_TYPE_NONE, 0);    klass->highlight_tool_id = g_signal_new ("highlight_tool",                                             G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                             G_SIGNAL_RUN_LAST,                                             G_STRUCT_OFFSET (GSEGYToolPanelClass, highlight_tool),                                             NULL, NULL,                                             g_segyui_marshal_VOID__VOID,                                             G_TYPE_NONE, 0);    klass->scaling_id = g_signal_new ("scaling",                                      G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                      G_SIGNAL_RUN_LAST,                                      G_STRUCT_OFFSET (GSEGYToolPanelClass, scaling),                                      NULL, NULL,                                      g_segyui_marshal_VOID__VOID,                                      G_TYPE_NONE, 0);    klass->fullscreen_id = g_signal_new ("fullscreen",                                         G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                         G_SIGNAL_RUN_LAST,                                         G_STRUCT_OFFSET (GSEGYToolPanelClass, fullscreen),                                         NULL, NULL,                                         g_segyui_marshal_VOID__VOID,                                         G_TYPE_NONE, 0);    klass->save_image_id = g_signal_new ("save_image",                                         G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                         G_SIGNAL_RUN_LAST,                                         G_STRUCT_OFFSET (GSEGYToolPanelClass, save_image),                                         NULL, NULL,                                         g_segyui_marshal_VOID__VOID,                                         G_TYPE_NONE, 0);    klass->color_manager_id = g_signal_new ("color_manager",                                            G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                            G_SIGNAL_RUN_LAST,                                            G_STRUCT_OFFSET (GSEGYToolPanelClass, color_manager),                                            NULL, NULL,                                            g_segyui_marshal_VOID__VOID,                                            G_TYPE_NONE, 0);    klass->properties_id = g_signal_new ("properties",                                          G_TYPE_FROM_CLASS ((gpointer)G_OBJECT_CLASS (klass)),                                          G_SIGNAL_RUN_LAST,                                          G_STRUCT_OFFSET (GSEGYToolPanelClass, properties),                                          NULL, NULL,                                          g_segyui_marshal_VOID__VOID,                                          G_TYPE_NONE, 0);#ifdef DEBUG    g_print ("<GSEGYToolPanel class is inited>\n");#endif}static void g_segy_tool_panel_icon_activate_signal (GSEGYToolPanel *self, guint signal_id) {    g_signal_emit (self, signal_id, 0);}static void g_segy_tool_panel_change_activate_tool (GSEGYToolPanel *self, GtkWidget *new_tool) {    GSEGYToolPanelPrivate *private = G_SEGY_TOOL_PANEL_GET_PRIVATE (self);    if (private->active_tool) {        GTK_BUTTON (private->active_tool)->depressed = FALSE;        gtk_widget_queue_resize (private->active_tool);        gtk_widget_set_sensitive (private->active_tool, TRUE);    }    private->active_tool = new_tool;    if (private->active_tool) {        GTK_BUTTON (private->active_tool)->depressed = TRUE;        gtk_widget_set_sensitive (private->active_tool, FALSE);        gtk_widget_queue_resize (private->active_tool);    }}static void g_segy_tool_panel_active_tool_leave_handler (GtkWidget *button, gpointer data) {    GSEGYToolPanel *self = G_SEGY_TOOL_PANEL (data);    GSEGYToolPanelPrivate *private = G_SEGY_TOOL_PANEL_GET_PRIVATE (self);    if (button == private->active_tool) {        GTK_BUTTON (private->active_tool)->depressed = TRUE;        gtk_widget_queue_resize (private->active_tool);    }}

⌨️ 快捷键说明

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