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

📄 ui_panel.c

📁 seismic software,very useful
💻 C
📖 第 1 页 / 共 5 页
字号:
/*user interface: permanent control panel plus various popup panels*/#include <Xm/DialogS.h>#include <Xm/Frame.h>#include <Xm/Label.h>#include <Xm/PushB.h>#include <Xm/ToggleB.h>#include <Xm/RowColumn.h>#include <Xm/Scale.h>#include <Xm/Separator.h>#include <Xm/TextF.h>#include <Xm/Text.h>#include <stdlib.h>#include <stdio.h>#include "ui_panel.h"#include "main.h"#include "axis.h"#include "color.h"#include "draw.h"#include "data.h"#include "map.h"#include "render.h"#include "view.h"#include "movie.h"#include "colorbar.h"#include "grunge.h"#include "ui.h"extern Data data;extern UI ui;extern Message message;/********************************* CONTROL PANEL ******************************//* initialize controls */void UIControlInit1(Widget parent){    Widget   widget;    WidgetList list;    if( !ui ){        return;    }    /* control panel */    ui->control =        XtVaCreateManagedWidget("control1", xmRowColumnWidgetClass, parent,                                XmNwidth, UI_WIDE, XmNorientation, XmHORIZONTAL,                                XmNpacking, XmPACK_TIGHT, NULL);    parent =        XtVaCreateManagedWidget("frame", xmFrameWidgetClass, ui->control, NULL);    ui->on_off =        XmVaCreateSimpleRadioBox(parent, "movie", 1, (XtCallbackProc) UIMovie,                                 XmVaRADIOBUTTON, XmStringCreateSimple("GO"),                                 NULL, NULL, NULL, XmVaRADIOBUTTON,                                 XmStringCreateSimple("NO"), NULL, NULL, NULL,                                 XmNorientation, XmHORIZONTAL, NULL);    XtManageChild(ui->on_off);    XtManageChild(parent);    parent =        XtVaCreateManagedWidget("frame", xmFrameWidgetClass, ui->control, NULL);    ui->direction =        XmVaCreateSimpleRadioBox(parent, "dir", 0, (XtCallbackProc) UIDirection,                                 XmVaRADIOBUTTON, XmStringCreateSimple("z"),                                 NULL, NULL, NULL, XmVaRADIOBUTTON,                                 XmStringCreateSimple("Z"), NULL, NULL, NULL,                                 XmVaRADIOBUTTON, XmStringCreateSimple("<"),                                 NULL, NULL, NULL, XmVaRADIOBUTTON,                                 XmStringCreateSimple(">"), NULL, NULL, NULL,                                 XmVaRADIOBUTTON, XmStringCreateSimple("^"),                                 NULL, NULL, NULL, XmVaRADIOBUTTON,                                 XmStringCreateSimple("v"), NULL, NULL, NULL,                                 XmNorientation, XmHORIZONTAL, NULL);    XtManageChild(ui->direction);    XtManageChild(parent);    parent = ui->control;    {        if( "SPEED"[0] != '\0' ){            XtVaCreateManagedWidget("SPEED", xmLabelWidgetClass, parent, NULL);        }        ui->speed =            XtVaCreateManagedWidget("SPEED", xmScaleWidgetClass, parent,                                    XmNorientation, XmHORIZONTAL, XmNvalue,                                    (int) (100 * 1.0), NULL);        XtAddCallback(ui->speed, XmNvalueChangedCallback,                      (XtCallbackProc) UISpeed, NULL);    };}/* toggle movie */void UIMovie(Widget widget, int item){    static int toggle = 0;    toggle = 1 - toggle;    if( toggle ){        return;    }    switch (item ){       case 0:        MovieOn();        break;       case 1:        MovieOff();        break;    }}/*--------------------------------------------------------------------*\   Toggle the direction radio buttons. The user can single step by   clicking on the direction buttons.\*--------------------------------------------------------------------*/void UIDirection(Widget widget, int item){    static int toggle = 0;    static int prev = 1;    WidgetList list;    toggle = 1 - toggle;    if( toggle ){        return;    }    XtVaGetValues(ui->direction, XmNchildren, &list, NULL);    XtVaSetValues(list[prev], XmNset, False, NULL);    XtVaSetValues(list[item], XmNset, True, NULL);    prev = item;    switch (item ){       case 0:        ViewSetMovie(MOVIE_FRONT);        MovieSetDir(MOVIE_REVERSE);        if( !MovieRun() ){            ViewDrawMovie();        }        break;       case 1:        ViewSetMovie(MOVIE_FRONT);        MovieSetDir(MOVIE_FORWARD);        if( !MovieRun() ){            ViewDrawMovie();        }        break;       case 2:        ViewSetMovie(MOVIE_SIDE);        MovieSetDir(MOVIE_REVERSE);        if( !MovieRun() ){            ViewDrawMovie();        }        break;       case 3:        ViewSetMovie(MOVIE_SIDE);        MovieSetDir(MOVIE_FORWARD);        if( !MovieRun() ){            ViewDrawMovie();        }        break;       case 4:        ViewSetMovie(MOVIE_TOP);        MovieSetDir(MOVIE_REVERSE);        if( !MovieRun() ){            ViewDrawMovie();        }        break;       case 5:        ViewSetMovie(MOVIE_TOP);        MovieSetDir(MOVIE_FORWARD);        if( !MovieRun() ){            ViewDrawMovie();        }        break;    }}void UIControlInit2(Widget parent){    if( !ui ){        return;    }    /* control panel */    ui->control =        XtVaCreateManagedWidget("control2", xmRowColumnWidgetClass, parent,                                XmNwidth, UI_WIDE,                                /* controls laid out left to right */                                XmNorientation, XmHORIZONTAL,                                XmNpacking, XmPACK_TIGHT, NULL);    parent = ui->control;    {        if( "CONTRAST"[0] != '\0' ){            XtVaCreateManagedWidget("CONTRAST", xmLabelWidgetClass, parent,                                    NULL);}        ui->contrast =            XtVaCreateManagedWidget("CONTRAST", xmScaleWidgetClass, parent,                                    XmNorientation, XmHORIZONTAL, XmNvalue,                                    (int) (100 * 0.5), NULL);        XtAddCallback(ui->contrast, XmNvalueChangedCallback,                      (XtCallbackProc) UIContrast, NULL);        if( data->overlay_mode ){            XtSetSensitive( ui->contrast ,False);        }    };    {        if( "CENTER"[0] != '\0' ){            XtVaCreateManagedWidget("CENTER", xmLabelWidgetClass, parent, NULL);        }        ui->contrast0 =            XtVaCreateManagedWidget("CENTER", xmScaleWidgetClass, parent,                                    XmNorientation, XmHORIZONTAL, XmNvalue,                                    (int) (100 * 0.5), NULL);        XtAddCallback(ui->contrast0, XmNvalueChangedCallback,                      (XtCallbackProc) UIContrast0, NULL);        if( data->overlay_mode ){            XtSetSensitive( ui->contrast0 ,False);        }    };    {        Widget   widget;        widget =            XtVaCreateManagedWidget("RESET", xmPushButtonWidgetClass, parent,                                    NULL);            XtAddCallback(widget, XmNactivateCallback,                          (XtCallbackProc) UIResetContrast, NULL);        if( data->overlay_mode ){            XtSetSensitive( widget ,False);        }    };}/* get toggle state */int UIGetToggle(Widget widget){    int      state = 0;    XtVaGetValues(widget, XmNset, &state, NULL);    return (state);}/* set toggle widget state */void UIToggleSet(Widget widget, int state){    XtVaSetValues(widget, XmNset, state, NULL);}/* set slider widget value between 0 and 1 */void UISetSlider(Widget widget, float value){    XtVaSetValues(widget, XmNvalue, (int) (100 * value), NULL);}/* set slider widget value between 0 and 1 */int UIGetSlider(Widget widget){    int      value = 0;    XtVaGetValues(widget, XmNvalue, &value, NULL);    return (value);}/* speed slider callback */void UISpeed(Widget widget, XtPointer client, XmScaleCallbackStruct * data){    MovieSetSpeed(data->value);}/* contrast slider callback */void UIContrast(Widget widget, XtPointer client, XmScaleCallbackStruct * data){    ColorSetContrast(data->value);    ColorSwitch();}void UIContrast0(Widget widget, XtPointer client, XmScaleCallbackStruct * data){    ColorSetContrast0(data->value);    ColorSwitch();}/* reset contrast */void UIResetContrast(void){    if( !ui ){        return;    }    ColorSetContrast(CONTRAST);    ColorSetContrast0(CONTRAST0);    UISetSlider(ui->contrast, 0.5);    UISetSlider(ui->contrast0, 0.5);    ColorSwitch();}/********************************* SIZE PANEL ******************************//* bounds callback for array settings and sizing */void UISizeRaise(void){    UISizeInit();    UISizeReset();    XtPopup(ui->s_shell, XtGrabNone);}/* initialize size control panel */void UISizeInit(void){    extern View view;    string   svalue;    Widget   widget, parent;    if( ui->s_shell ){        return;    }    ui->s_shell =        XtVaCreatePopupShell("size", xmDialogShellWidgetClass, ui->main,                             XmNtitle, XmStringCreateSimple("SIZE PARAMETERS"),                             NULL);    ui->s_base =        XtVaCreateWidget("s_base", xmRowColumnWidgetClass, ui->s_shell,                         XmNnumColumns, 8, XmNpacking, XmPACK_COLUMN,                         XmNorientation, XmHORIZONTAL, NULL);    ui->s_nslider = 0;    parent = ui->s_base;    XtVaCreateManagedWidget("SET SIZE:", xmLabelWidgetClass, parent, NULL);;

⌨️ 快捷键说明

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