00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef graphicsmenu_h
00022 #define graphicsmenu_h
00023 #include <FL/Fl.H>
00024 #include <FL/Fl_Window.H>
00025 #include <FL/Fl_Box.H>
00026 #include <FL/Fl_Choice.H>
00027 #include <FL/Fl_Hold_Browser.H>
00028 #include <FL/Fl_Input.H>
00029 #include <FL/Fl_Check_Button.H>
00030 #include <FL/Fl_Button.H>
00031 #include "VMDFltkMenu.h"
00032 #include "NameList.h"
00033
00034 class GraphicsFltkRep;
00035 class SelectionBuilder;
00036 class Fl_Tabs;
00037 class Fl_Counter;
00038 class PBCControls;
00039 class isosurface_cbdata;
00040
00043 class GraphicsFltkMenu : public VMDFltkMenu {
00044 public:
00045 GraphicsFltkMenu(VMDApp *);
00046 ~GraphicsFltkMenu();
00047
00048 int selectmol(int molno);
00049
00050
00051 VMDApp *app;
00052 int molindex;
00053 int repindex;
00054
00055 void update_molchooser();
00056
00057 void update_repbrowser(bool remember_position=false);
00058 void update_rep();
00059 void update_repindex();
00060 void update_pbc();
00061 void set_pbc(int, int);
00062 void reset_rep();
00063
00067 void update_selection(const char *txt);
00068 const char *selectiontext() const;
00069
00071 int auto_update() const;
00072
00074 void set_autoupdate(int);
00075
00077 void set_colorupdate(int);
00078
00080 void use_colorscale_minmax();
00081
00083 void use_colorscale_auto();
00084
00085 char *create_repcmd();
00086 char *create_colorcmd();
00087 char *create_selcmd();
00088 char *create_matcmd();
00089 char *create_multiframecmd();
00090
00091 void colindex_visible();
00092 void volindex_visible();
00093 void volindex_update();
00094 void show_repcontrols();
00095
00096 void init_colorchooser();
00097 void init_materialchooser();
00098 void init_stylechooser();
00099
00100 SelectionBuilder *selbuilder;
00101
00102 private:
00103 static void molchooser_cb(Fl_Widget *, void *);
00104 static void repbrowser_cb(Fl_Widget *, void *);
00105 static void repcontrol_cb(Fl_Widget *, void *);
00106 static void colorchooser_cb(Fl_Widget *, void *);
00107 static void materialchooser_cb(Fl_Widget *, void *);
00108 static void selectioninput_cb(Fl_Widget *, void *);
00109 static void createnew_cb(Fl_Widget *, void *);
00110 static void deleterep_cb(Fl_Widget *, void *);
00111 static void apply_cb(Fl_Widget *, void *);
00112 static void default_cb(Fl_Widget *, void *);
00113 static void smooth_cb(Fl_Widget *, void *);
00114 static void pbc_cb(Fl_Widget *, void *);
00115 static void multiframeinput_cb(Fl_Widget *, void *);
00116 static void isosurfacerepcontrol_cb(Fl_Widget *, void *);
00117
00118 public:
00119 NameList<GraphicsFltkRep *> repcontrols;
00120
00121 private:
00122 ResizeArray<int> molactiverep;
00123 int lastmolindex;
00124
00125 char colorcmdbuf[50];
00126
00127 Fl_Box *repframe;
00128 Fl_Choice *molchooser;
00129 Fl_Browser *repbrowser;
00130 Fl_Choice *colorchooser;
00131 Fl_Choice *materialchooser;
00132 Fl_Choice *stylechooser;
00133 Fl_Input *selectioninput;
00134 Fl_Choice *colindexchooser;
00135 Fl_Choice *volindexchooser;
00136 Fl_Check_Button *applyautobutton;
00137 Fl_Button *applybutton;
00138 Fl_Button *createnewbutton;
00139 Fl_Button *deleterepbutton;
00140 Fl_Button *defaultbutton;
00141 Fl_Button *autoupdatebutton;
00142 Fl_Button *colorupdatebutton;
00143 Fl_Counter *smoothcounter;
00144 PBCControls *pbcControls;
00145 Fl_Input *colorscale_min, *colorscale_max;
00146 Fl_Input *multiframeinput;
00147
00148 isosurface_cbdata * cbdata;
00149
00150 protected:
00151 int act_on_command(int, Command *);
00152 };
00153 #endif