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

📄 ui_menu.c

📁 seismic software,very useful
💻 C
📖 第 1 页 / 共 5 页
字号:
/*====================================================================*\               user interface: menu setup and callbacks \*====================================================================*/#include <sys/types.h>#include <Xm/FileSB.h>#include <Xm/MessageB.h>#include <Xm/SelectioB.h>#include <fcntl.h>#include <time.h>#include <stdio.h>#include <stdlib.h>#include "par.h"#include "main.h"#include "axis.h"#include "color.h"#include "draw.h"#include "edit.h"#include "data.h"#include "map.h"#include "render.h"#include "plane.h"#include "view.h"#include "region.h"#include "pick.h"#include "pik.h"#include "movie.h"#include "section.h"#include "ui_panel.h"#include "ui_menu.h"#include "ui_window.h"#include "grunge.h"#include "ui.h"extern Data data;extern View view;extern UI ui;extern Message message;FILE    *savefd = 0;/* setup menus; install callbacks *//*--------------------------------------------------------------------*\   UIMenuInit() creates the menu system for the application. It's   long and ugly, but otherwise unremarkable. This is best done   using a library function and an array of structures, but is not   worth rewriting.\*--------------------------------------------------------------------*/void     UIMenuInit(Widget parent){    int      ibar = 0;    WidgetList list;    /* menubar */    if (!ui) {        return;    }    ui->menuBar = XmVaCreateSimpleMenuBar(parent, "menubar",                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Misc"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Style"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Orient"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Size"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Movie"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Color"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Pick"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("EditVol"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Sections"),                                          NULL, XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Status"), NULL,                                          XmVaCASCADEBUTTON,                                          XmStringCreateSimple("Help"), NULL,                                          NULL);    /* main drop down menu */    ui->menu = XmVaCreateSimplePulldownMenu(ui->menuBar, "main", ibar++, NULL,                                            XmVaPUSHBUTTON,                                            XmStringCreateSimple("Redraw"),                                            NULL, NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple("Fix Picking"),                                            NULL, NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Write vgrid file ( floats ) ..."),                                            NULL, NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Write vgrid file ( bytes ) ..."),                                            NULL, NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Write parameter restart file ..."),                                            NULL, NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple("Quit"), NULL,                                            NULL, NULL, NULL);    XtVaGetValues(ui->menu, XmNchildren, &list, NULL);    XtAddCallback(list[0], XmNactivateCallback,                  (XtCallbackProc) ViewDrawAll, NULL);    XtAddCallback(list[1], XmNactivateCallback, (XtCallbackProc) UIWakeup,                  NULL);    XtAddCallback(list[2], XmNactivateCallback,                  (XtCallbackProc) UIDumpFloats, NULL);    XtAddCallback(list[3], XmNactivateCallback,                  (XtCallbackProc) UIDumpBytes, NULL);    XtAddCallback(list[4], XmNactivateCallback, (XtCallbackProc) UISavePar,                  NULL);    XtAddCallback(list[5], XmNactivateCallback, (XtCallbackProc) UIQuit, NULL);/*--------------------------------------------------------------------*\    Note:  The order of buttons here is critical as it is presumed by    the C preprocessor macros used to desribe view elsewhere in the    code.  If you disturb this menu, make sure that you check that    all the VIEW_ macros are kept in sync.\*--------------------------------------------------------------------*/    ui->menu =        XmVaCreateSimplePulldownMenu(ui->menuBar, "view", ibar++,                                     (XtCallbackProc) UIStyleChoice,                                     XmVaRADIOBUTTON,                                     XmStringCreateSimple("Front Face"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Side Face"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Top Face"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Three Faces"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Array ..."), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Cube"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Fence ..."), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple                                     ("Transparent Cube ..."), NULL, NULL, NULL,                                     XmNradioAlwaysOne, True, XmNradioBehavior,                                     True, NULL);    XtVaGetValues(ui->menu, XmNchildren, &list, NULL);    XtVaSetValues(list[view->style], XmNset, True, NULL);    if( view->map[AXIS_DEEP]->size == 1 ){       XtSetSensitive( list[VIEW_SIDE] ,False );       XtSetSensitive( list[VIEW_TOP] ,False );       XtSetSensitive( list[VIEW_THREE] ,False );       XtSetSensitive( list[VIEW_ARRAY] ,False );       XtSetSensitive( list[VIEW_CUBE] ,False );       XtSetSensitive( list[VIEW_FENCE] ,False );       XtSetSensitive( list[VIEW_TRANSP] ,False );    }    ui->menu = XmVaCreateSimplePulldownMenu(ui->menuBar, "orient", ibar++, NULL,                                            XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Swap Side & Top Faces; Transpose"),                                            NULL, NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Swap Front & Side Faces"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Swap Top & Front Faces"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Swap Deep & 4th Axes"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Swap Across & 4th Axes"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Swap Down & 4th Axes"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Flip Down Direction"), NULL, NULL,                                            NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Flip Across Direction"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Flip Deep Direction"), NULL, NULL,                                            NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Move Frames to Middle"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Move Frames to Corner"), NULL,                                            NULL, NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Initial Orientation"), NULL, NULL,                                            NULL, XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Adjust Labels ..."), NULL, NULL,                                            NULL, XmVaTITLE,                                            XmStringCreateSimple                                            ("4th AXIS IS n4= AND HIDDEN"),                                            NULL);    XtVaGetValues(ui->menu, XmNchildren, &list, NULL);    XtAddCallback(list[0], XmNactivateCallback,                  (XtCallbackProc) UISwapSideTop, NULL);    XtAddCallback(list[1], XmNactivateCallback,                  (XtCallbackProc) UISwapFrontSide, NULL);    XtAddCallback(list[2], XmNactivateCallback,                  (XtCallbackProc) UISwapTopFront, NULL);    XtAddCallback(list[5], XmNactivateCallback,                  (XtCallbackProc) UISwapFrontExtra, NULL);    XtAddCallback(list[4], XmNactivateCallback,                  (XtCallbackProc) UISwapSideExtra, NULL);    XtAddCallback(list[3], XmNactivateCallback,                  (XtCallbackProc) UISwapTopExtra, NULL);    XtAddCallback(list[6], XmNactivateCallback, (XtCallbackProc) UIFlipDown,                  NULL);    XtAddCallback(list[7], XmNactivateCallback,                  (XtCallbackProc) UIFlipAcross, NULL);    XtAddCallback(list[8], XmNactivateCallback, (XtCallbackProc) UIFlipDeep,                  NULL);    XtAddCallback(list[9], XmNactivateCallback,                  (XtCallbackProc) ViewFramesMiddle, NULL);    XtAddCallback(list[10], XmNactivateCallback,                  (XtCallbackProc) ViewFramesOrigin, NULL);    XtAddCallback(list[11], XmNactivateCallback, (XtCallbackProc) UIOrient0,                  NULL);    XtAddCallback(list[12], XmNactivateCallback,                  (XtCallbackProc) UILabelRaise, NULL);    ui->menu =        XmVaCreateSimplePulldownMenu(ui->menuBar, "size", ibar++,                                     (XtCallbackProc) UISizeChoice,                                     XmVaRADIOBUTTON,                                     XmStringCreateSimple("Even Cube"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("True Proportions"),                                     NULL, NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Sample Per Pixel"),                                     NULL, NULL, NULL, XmVaTOGGLEBUTTON,                                     XmStringCreateSimple("Interpolate"), NULL,                                     NULL, NULL, XmVaPUSHBUTTON,                                     XmStringCreateSimple("Fine Control ..."),                                     NULL, NULL, NULL, XmVaPUSHBUTTON,                                     XmStringCreateSimple("Initial Size"), NULL,                                     NULL, NULL, XmVaTITLE,                                     XmStringCreateSimple                                     ("LEFT MOUSE BOX ZOOMS"), XmVaTITLE,                                     XmStringCreateSimple("+ 'h' ONLY HORZ"),                                     XmVaTITLE,                                     XmStringCreateSimple("+ 'v' ONLY VERT"),                                     NULL);    XtVaGetValues(ui->menu, XmNchildren, &list, NULL);    ui->shape_stretch = list[0];    ui->shape_true = list[1];    ui->shape_pixel = list[2];    XtVaSetValues(list[0], XmNset, True, NULL);    XtVaSetValues(list[4], XmNset, False, NULL);    XtAddCallback(list[3], XmNvalueChangedCallback,                  (XtCallbackProc) UIInterpolateToggle, NULL);    XtAddCallback(list[4], XmNactivateCallback,                  (XtCallbackProc) UISyzeRaise, NULL);    XtAddCallback(list[5], XmNactivateCallback, (XtCallbackProc) UISize0, NULL);    ui->menu = XmVaCreateSimplePulldownMenu(ui->menuBar, "movie", ibar++, NULL,                                            XmVaPUSHBUTTON,                                            XmStringCreateSimple                                            ("Movie to Boundaries"), NULL, NULL,                                            NULL, XmVaTOGGLEBUTTON,                                            XmStringCreateSimple("High Speed"),                                            NULL, NULL, NULL, XmVaTITLE,                                            XmStringCreateSimple                                            ("MIDDLE MOUSE CLICK XFRAMES"),                                            XmVaTITLE,                                            XmStringCreateSimple                                            ("MIDDLE MOUSE DRAG MOVIE BOUNDS"),                                            XmNradioAlwaysOne, True, NULL);    XtVaGetValues(ui->menu, XmNchildren, &list, NULL);    XtAddCallback(list[0], XmNactivateCallback,                  (XtCallbackProc) ViewMovieFullBounds, NULL);    XtAddCallback(list[1], XmNvalueChangedCallback,                  (XtCallbackProc) MovieToggleCache, NULL);    XtVaSetValues(list[1], XmNset, False, NULL);    ui->menu =        XmVaCreateSimplePulldownMenu(ui->menuBar, "color", ibar++,                                     (XtCallbackProc) UIColorChoice,                                     XmVaRADIOBUTTON,                                     XmStringCreateSimple("Gray"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Straw"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Flag"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Tiger"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Blue"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Rainbow"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("AVO"), NULL,                                     NULL, NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Velocity"), NULL, NULL,                                     NULL, XmVaCASCADEBUTTON,                                     XmStringCreateSimple("Overlay"), NULL,                                     XmVaCASCADEBUTTON,                                     XmStringCreateSimple("Mark"), NULL,                                     XmVaCASCADEBUTTON,                                     XmStringCreateSimple("Background"), NULL,                                     XmVaPUSHBUTTON,                                     XmStringCreateSimple("Flip Polarity"),                                     NULL, NULL, NULL, XmNradioBehavior, True,                                     XmNradioAlwaysOne, True, NULL);    XtVaGetValues(ui->menu, XmNchildren, &list, NULL);    XtAddCallback(list[11], XmNactivateCallback,                  (XtCallbackProc) RenderTogglePolarity, NULL);    XtVaSetValues(list[0], XmNset, True, NULL);    ui->menu1 =        XmVaCreateSimplePulldownMenu(ui->menu, "overlay", 8,                                     (XtCallbackProc) UIOverlayChoice,                                     XmVaRADIOBUTTON,                                     XmStringCreateSimple("Red"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Green"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("White"), NULL, NULL,                                     NULL, XmVaRADIOBUTTON,                                     XmStringCreateSimple("Black"), NULL, NULL,

⌨️ 快捷键说明

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