00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef GEOMETRYFLTKMENU_H
00011 #define GEOMETRYFLTKMENU_H
00012
00013 #include <FL/Fl.H>
00014 #include <FL/Fl_Window.H>
00015 #include <FL/Fl_Multi_Browser.H>
00016 #include <FL/Fl_Choice.H>
00017 #include <FL/Fl_Tabs.H>
00018 #include <FL/Fl_Group.H>
00019 #include <FL/Fl_Output.H>
00020 #include <FL/Fl_Value_Output.H>
00021 #include <FL/Fl_Button.H>
00022 #include <FL/Fl_Float_Input.H>
00023 #include <FL/Fl_Positioner.H>
00024 #include "VMDFltkMenu.h"
00025
00026 class myFl_Chart;
00027 class Fl_Input;
00028 class GeometryList;
00029 class Molecule;
00030
00032 class GeometryFltkMenu : public VMDFltkMenu {
00033 public:
00034 GeometryFltkMenu(VMDApp *);
00035 void apply_offset_to_selected_labels(float x, float y);
00036 void apply_format_to_selected_labels(const char *format);
00037
00038 protected:
00039 int act_on_command(int, Command *);
00040
00041 private:
00043 GeometryList *glist;
00044
00045 int user_is_typing_in_format_input;
00046
00047 void make_window();
00048 void update_geometry_types();
00049 void update_labelprops();
00050 void fill_label_browser();
00051 void handle_pick(Molecule *, int, float);
00052
00053 static void typechooser_cb(Fl_Widget *, void *);
00054 static void graphinwindow_cb(Fl_Widget *, void *);
00055 static void show_cb(Fl_Widget *, void *);
00056 static void hide_cb(Fl_Widget *, void *);
00057 static void delete_cb(Fl_Widget *, void *);
00058 static void labelbrowser_cb(Fl_Widget *, void *);
00059 static void exportgraph_cb(Fl_Widget *, void *);
00060 static void savetofile_cb(Fl_Widget *, void *);
00061 static void close_cb(Fl_Widget *, void *);
00062
00063 Fl_Browser *labelbrowser;
00064 Fl_Choice *labeltypechooser;
00065 Fl_Group *pickinggroup;
00066 Fl_Output *pickedmolecule;
00067 Fl_Output *pickedresname;
00068 Fl_Output *pickedresid;
00069 Fl_Output *pickedname;
00070 Fl_Output *pickedtype;
00071 Fl_Output *pickedindex;
00072 Fl_Output *pickedchain;
00073 Fl_Output *pickedsegname;
00074 Fl_Output *pickedpos;
00075 Fl_Output *pickedvalue;
00076 Fl_Group *geometrygroup;
00077 Fl_Button *savetofilebutton;
00078 Fl_Button *previewcheckbutton;
00079 Fl_Button *exportgraphbutton;
00080 myFl_Chart *chart;
00081 Fl_Button *showbutton;
00082 Fl_Button *hidebutton;
00083 Fl_Button *deletebutton;
00084 Fl_Group *propertiesgroup;
00085 Fl_Slider *textsizeslider;
00086 Fl_Float_Input *textsizeinput;
00087 Fl_Positioner *textoffsetpositioner;
00088 Fl_Button *offsetresetbutton;
00089 Fl_Input *textformatinput;
00090 };
00091 #endif