00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef selpalette_h
00021 #define selpalette_h
00022 #include <FL/Fl.H>
00023 #include <FL/Fl_Window.H>
00024 #include <FL/Fl_Return_Button.H>
00025 #include <FL/Fl_Button.H>
00026 #include <FL/Fl_Input.H>
00027 #include <FL/Fl_Browser.H>
00028 #include <FL/Fl_Output.H>
00029 #include <FL/Fl_Menu_Button.H>
00030 #include "GraphicsFltkMenu.h"
00031
00032 class SymbolTable;
00033 class Molecule;
00034
00038 class SelectionBuilder : public Fl_Group {
00039 public:
00040 SelectionBuilder(int, int, GraphicsFltkMenu *, Fl_Input *, SymbolTable *);
00041
00042 void use_molecule(Molecule *);
00043 void set_selection(const char *);
00044
00045 void update_selection();
00046
00054 void update_macrobrowser();
00055
00056 private:
00057 GraphicsFltkMenu *menu;
00058 SymbolTable *table;
00059 Molecule *mol;
00060
00061 int goto_end;
00062
00063 void append_text(const char *);
00064
00065 static void apply_cb(Fl_Widget *, void *);
00066 static void reset_cb(Fl_Widget *, void *);
00067 static void cancel_cb(Fl_Widget *, void *);
00068 static void ok_cb(Fl_Widget *, void *);
00069 static void keyword_cb(Fl_Widget *, void *);
00070 static void value_cb(Fl_Widget *, void *);
00071 static void and_cb(Fl_Widget *, void *);
00072 static void or_cb(Fl_Widget *, void *);
00073 static void not_cb(Fl_Widget *, void *);
00074 static void macrobrowser_cb(Fl_Widget *, void *);
00075
00076 Fl_Button *applybutton;
00077 Fl_Browser *keywordbrowser;
00078 Fl_Browser *valuebrowser;
00079 Fl_Button *andbutton;
00080 Fl_Button *orbutton;
00081 Fl_Button *notbutton;
00082 Fl_Button *resetbutton;
00083 Fl_Menu_Button *recentmenu;
00084 Fl_Input *selectiontext;
00085
00086 Fl_Browser *macrobrowser;
00087 Fl_Output *macrooutput;
00088 };
00089 #endif