00001
00020 #ifndef VARBLMEN_H
00021 #define VARBLMEN_H
00022
00023 #include "sbdmenu.h"
00024 #include "submen.h"
00025 #include "notdll.h"
00026
00031 class BOOL_VAR_MENU_LEAF:public LEAF_MENU_NODE
00032 {
00033 private:
00034 BOOL_VARIABLE * var;
00035 BOOL8 changed;
00036
00037 void event(
00038 COMMAND_WINDOW *cmd_win,
00039 FCOORD pt,
00040 INT32 *cmd_event_id,
00041 char *new_value);
00042
00043 void plotx(
00044 WINDOW window);
00045
00046 const char *cmp_str() {
00047 return var->name_str ();
00048 }
00049
00050 void write_vars(
00051 FILE *fp,
00052 BOOL8 changes_only);
00053
00054 public:
00055 BOOL_VAR_MENU_LEAF (
00056 BOOL_VARIABLE * this_var
00057 ): LEAF_MENU_NODE ("") {
00058 var = this_var;
00059 changed = FALSE;
00060 }
00061 };
00062
00067 class DBL_VAR_MENU_LEAF:public LEAF_MENU_NODE
00068 {
00069 private:
00070 double_VARIABLE * var;
00071 BOOL8 changed;
00072
00073 void event(
00074 COMMAND_WINDOW *cmd_win,
00075 FCOORD pt,
00076 INT32 *cmd_event_id,
00077 char *new_value);
00078
00079 const char *cmp_str() {
00080 return var->name_str ();
00081 }
00082
00083 void write_vars(
00084 FILE *fp,
00085 BOOL8 changes_only);
00086
00087 public:
00088 DBL_VAR_MENU_LEAF (
00089 double_VARIABLE * this_var
00090 ): LEAF_MENU_NODE ("") {
00091 var = this_var;
00092 changed = FALSE;
00093 }
00094 };
00095
00100 class INT_VAR_MENU_LEAF:public LEAF_MENU_NODE
00101 {
00102 private:
00103 INT_VARIABLE * var;
00104 BOOL8 changed;
00105
00106 void event(
00107 COMMAND_WINDOW *cmd_win,
00108 FCOORD pt,
00109 INT32 *cmd_event_id,
00110 char *new_value);
00111
00112 const char *cmp_str() {
00113 return var->name_str ();
00114 }
00115
00116 void write_vars(
00117 FILE *fp,
00118 BOOL8 changes_only);
00119
00120 public:
00121 INT_VAR_MENU_LEAF (
00122 INT_VARIABLE * this_var
00123 ): LEAF_MENU_NODE ("") {
00124 var = this_var;
00125 changed = FALSE;
00126 }
00127 };
00128
00133 class STR_VAR_MENU_LEAF:public LEAF_MENU_NODE
00134 {
00135 private:
00136 STRING_VARIABLE * var;
00137 BOOL8 changed;
00138
00139 void event(
00140 COMMAND_WINDOW *cmd_win,
00141 FCOORD pt,
00142 INT32 *cmd_event_id,
00143 char *new_value);
00144
00145 const char *cmp_str() {
00146 return var->name_str ();
00147 }
00148
00149 void write_vars(
00150 FILE *fp,
00151 BOOL8 changes_only);
00152
00153 public:
00154 STR_VAR_MENU_LEAF (
00155 STRING_VARIABLE * this_var
00156 ): LEAF_MENU_NODE ("") {
00157 var = this_var;
00158 changed = FALSE;
00159 }
00160 };
00161
00166 class VAR_NON_RADIO_MENU:public NON_LEAF_MENU_NODE
00167 {
00168 private:
00169 void write_vars(
00170 FILE *fp,
00171 BOOL8 changes_only);
00172
00173 public:
00174 VAR_NON_RADIO_MENU (
00175 const char *menu_text):NON_LEAF_MENU_NODE (menu_text) {
00176 }
00177
00178 void add_child(
00179 SIMPLE_MENU_LEAF *new_child) {
00180 link_child(new_child);
00181 }
00182
00183 void add_child(
00184 VAR_SUB_MENU *new_child) {
00185 link_child(new_child);
00186 }
00187
00188 void add_child(
00189 MENU_L *new_child) {
00190 link_child_link(new_child);
00191 }
00192 };
00193 #endif