// generated by Fast Light User Interface Designer (fluid) version 1.0305

#include "gm3d_gui.h"

int main(int argc, char **argv) {
  { main_window = new Fl_Double_Window(500, 600, "gm3d");
    { main_tabs = new Fl_Tabs(10, 10, 480, 580);
      { model_tab = new Fl_Group(10, 40, 480, 550, "Build Model");
        //model_tab->hide();
        { mesh_para_input = new Fl_Input(40, 70, 300, 28, "Input Mesh Parameters :");
          mesh_para_input->callback((Fl_Callback*)cb_mesh_para_input);
          mesh_para_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Input* mesh_para_input
        { mesh_file_btn = new Fl_Button(360, 70, 100, 28, "Mesh File");
          mesh_file_btn->callback((Fl_Callback*)cb_mesh_file_btn);
        } // Fl_Button* mesh_file_btn
        { mod_para_file_btn = new Fl_Button(170, 160, 160, 28, "Add Model From File");
          mod_para_file_btn->callback((Fl_Callback*)cb_mod_para_file_btn);
        } // Fl_Button* mod_para_file_btn
        { mod_ele_input_build = new Fl_Input(40, 445, 215, 28, "Input Model Element Data Name:");
          mod_ele_input_build->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Input* mod_ele_input_build
        { build_mod_btn = new Fl_Button(40, 545, 420, 28, "Build Model !");
          build_mod_btn->callback((Fl_Callback*)cb_build_mod_btn);
        } // Fl_Button* build_mod_btn
        { mesh_para_output = new Fl_Output(40, 120, 300, 28, "Mesh Parameters :");
          mesh_para_output->value("Unset");
          mesh_para_output->box(FL_FLAT_BOX);
          mesh_para_output->color(FL_BACKGROUND_COLOR);
          mesh_para_output->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Output* mesh_para_output
        { add_mod_btn = new Fl_Button(40, 160, 100, 28, "Add Model");
          add_mod_btn->callback((Fl_Callback*)cb_add_mod_btn);
        } // Fl_Button* add_mod_btn
        { del_mod_btn = new Fl_Button(360, 160, 100, 28, "Delete Model");
          del_mod_btn->callback((Fl_Callback*)cb_del_mod_btn);
          del_mod_btn->deactivate();
        } // Fl_Button* del_mod_btn
        { rm_emp_bok_check = new Fl_Check_Button(280, 447, 180, 28, "Remove Empty Blocks");
          rm_emp_bok_check->down_box(FL_DOWN_BOX);
          rm_emp_bok_check->callback((Fl_Callback*)cb_rm_emp_bok_check);
        } // Fl_Check_Button* rm_emp_bok_check
        { mod_para_brw = new Fl_Browser(40, 205, 420, 210);
          mod_para_brw->callback((Fl_Callback*)cb_mod_para_brw);
          mod_para_brw->type(FL_MULTI_BROWSER);
        } // Fl_Browser* mod_para_brw
        { mod_file_out_btn = new Fl_Button(360, 500, 100, 28, "Model File");
          mod_file_out_btn->callback((Fl_Callback*)cb_mod_file_out_btn);
        } // Fl_Button* mod_file_out_btn
        { mod_out_file_output = new Fl_Output(40, 500, 300, 28, "Output File Name :");
          mod_out_file_output->box(FL_FLAT_BOX);
          mod_out_file_output->color(FL_BACKGROUND_COLOR);
          mod_out_file_output->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Output* mod_out_file_output
        model_tab->end();
      } // Fl_Group* model_tab
      { forward_tab = new Fl_Group(10, 40, 480, 550, "Forward Modeling");
        forward_tab->hide();
        { grav_group = new Fl_Group(40, 340, 190, 58, "Forward Gravitational Data :");
          grav_group->align(Fl_Align(FL_ALIGN_TOP_LEFT));
          { Vz_check = new Fl_Check_Button(40, 340, 50, 28, "Vz");
            Vz_check->down_box(FL_DOWN_BOX);
          } // Fl_Check_Button* Vz_check
          { Vzx_check = new Fl_Check_Button(105, 340, 50, 28, "Vzx");
            Vzx_check->down_box(FL_DOWN_BOX);
          } // Fl_Check_Button* Vzx_check
          { Vzy_check = new Fl_Check_Button(170, 340, 50, 28, "Vzy");
            Vzy_check->down_box(FL_DOWN_BOX);
          } // Fl_Check_Button* Vzy_check
          { Vzz_check = new Fl_Check_Button(40, 370, 50, 28, "Vzz");
            Vzz_check->down_box(FL_DOWN_BOX);
          } // Fl_Check_Button* Vzz_check
          grav_group->end();
        } // Fl_Group* grav_group
        { mod_file_btn = new Fl_Button(360, 70, 100, 28, "Model File");
          mod_file_btn->callback((Fl_Callback*)cb_mod_file_btn);
        } // Fl_Button* mod_file_btn
        { obs_file_btn = new Fl_Button(360, 130, 100, 28, "Observe File");
          obs_file_btn->callback((Fl_Callback*)cb_obs_file_btn);
        } // Fl_Button* obs_file_btn
        { mod_file_input = new Fl_Input(40, 70, 300, 28, "Input Model FIle :");
          mod_file_input->callback((Fl_Callback*)cb_mod_file_input);
          mod_file_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Input* mod_file_input
        { mod_file_output = new Fl_Output(40, 240, 200, 28, "Chosen Model File :");
          mod_file_output->box(FL_FLAT_BOX);
          mod_file_output->color(FL_BACKGROUND_COLOR);
          mod_file_output->align(Fl_Align(FL_ALIGN_TOP_LEFT));
          mod_file_output->value("Unset");
        } // Fl_Output* mod_file_output
        { obs_file_input = new Fl_Input(40, 130, 300, 28, "Input Observe  FIle :");
          obs_file_input->callback((Fl_Callback*)cb_obs_file_input);
          obs_file_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
          obs_file_input->tooltip("<xmin>/<dx>/<xmax>/<ymin>/<dy>/<ymax>/<elevation>|<filename>");
        } // Fl_Input* obs_file_input
        { obs_file_output = new Fl_Output(260, 240, 200, 28, "Chosen Observe File :");
          obs_file_output->box(FL_FLAT_BOX);
          obs_file_output->color(FL_BACKGROUND_COLOR);
          obs_file_output->align(Fl_Align(FL_ALIGN_TOP_LEFT));
          obs_file_output->value("Unset");
        } // Fl_Output* obs_file_output
        { mod_ele_input = new Fl_Input(260, 315, 200, 28, "Model Element Data Name :");
          mod_ele_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Input* mod_ele_input
        { mag_group = new Fl_Group(40, 440, 420, 90);
          { DeltaT_check = new Fl_Check_Button(40, 475, 65, 25, "DeltaT");
            DeltaT_check->down_box(FL_DOWN_BOX);
            DeltaT_check->deactivate();
          } // Fl_Check_Button* DeltaT_check
          { DeltaTx_check = new Fl_Check_Button(120, 475, 70, 25, "DeltaTx");
            DeltaTx_check->down_box(FL_DOWN_BOX);
            DeltaTx_check->deactivate();
          } // Fl_Check_Button* DeltaTx_check
          { DeltaTy_check = new Fl_Check_Button(200, 475, 70, 25, "DeltaTy");
            DeltaTy_check->down_box(FL_DOWN_BOX);
            DeltaTy_check->deactivate();
          } // Fl_Check_Button* DeltaTy_check
          { DeltaTz_check = new Fl_Check_Button(280, 475, 70, 25, "DeltaTz");
            DeltaTz_check->down_box(FL_DOWN_BOX);
            DeltaTz_check->deactivate();
          } // Fl_Check_Button* DeltaTz_check
          { Hax_check = new Fl_Check_Button(40, 505, 65, 25, "Hax");
            Hax_check->down_box(FL_DOWN_BOX);
            Hax_check->deactivate();
          } // Fl_Check_Button* Hax_check
          { Hay_check = new Fl_Check_Button(120, 505, 65, 25, "Hay");
            Hay_check->down_box(FL_DOWN_BOX);
            Hay_check->deactivate();
          } // Fl_Check_Button* Hay_check
          { Za_check = new Fl_Check_Button(200, 505, 65, 25, "Za");
            Za_check->down_box(FL_DOWN_BOX);
            Za_check->deactivate();
          } // Fl_Check_Button* Za_check
          { mag_para_input = new Fl_Input(220, 440, 240, 28, "Magnetization Parameters :  ");
            mag_para_input->tooltip("<geo-inclination>/<geo-declination>/<mag-inclination>/<mag-declination>");
            mag_para_input->deactivate();
          } // Fl_Input* mag_para_input
          mag_group->end();
        } // Fl_Group* mag_group
        { mag_data_check = new Fl_Check_Button(40, 405, 170, 30, "Forward Magnetic Data");
          mag_data_check->down_box(FL_DOWN_BOX);
          mag_data_check->callback((Fl_Callback*)cb_mag_data_check);
        } // Fl_Check_Button* mag_data_check
        { cal_btn = new Fl_Button(40, 545, 420, 28, "Calculate !");
          cal_btn->callback((Fl_Callback*)cb_cal_btn);
        } // Fl_Button* cal_btn
        { noise_para_input = new Fl_Input(260, 370, 200, 28);
          noise_para_input->tooltip("<noise-mean>/<noise-deviation>");
          noise_para_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
          noise_para_input->deactivate();
        } // Fl_Input* noise_para_input
        { noise_check = new Fl_Check_Button(260, 345, 180, 30, "Input Noise Parameters :");
          noise_check->down_box(FL_DOWN_BOX);
          noise_check->callback((Fl_Callback*)cb_noise_check);
        } // Fl_Check_Button* noise_check
        { res_file_input = new Fl_Input(40, 190, 300, 28, "Input Prefix of Output FIle :");
          res_file_input->callback((Fl_Callback*)cb_res_file_input);
          res_file_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        } // Fl_Input* res_file_input
        { res_file_btn = new Fl_Button(360, 190, 100, 28, "Result File");
          res_file_btn->callback((Fl_Callback*)cb_res_file_btn);
        } // Fl_Button* res_file_btn
        { res_file_output = new Fl_Output(40, 290, 200, 28, "Prefix of Output File :");
          res_file_output->box(FL_FLAT_BOX);
          res_file_output->color(FL_BACKGROUND_COLOR);
          res_file_output->align(Fl_Align(FL_ALIGN_TOP_LEFT));
          res_file_output->value("Unset");
        } // Fl_Output* res_out_file_output
        forward_tab->end();
      } // Fl_Group* forward_tab
      main_tabs->end();
    } // Fl_Tabs* main_tabs
    main_window->end();
  } // Fl_Double_Window* main_window
  main_window->show(argc, argv);
  return Fl::run();
}
