X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Foptioncl.h;h=2e8ad8a1ac326de84dd953d36a338e4add2678f4;hb=bb226788dab3832b0ec0cda70874ce3fce4eebc6;hp=c2b30692076491cb603525c0d6ae0af0991df105;hpb=0e1bba0730e55b3d40c1c644d94befc99c87270d;p=fw%2Fsdcc diff --git a/sim/ucsim/optioncl.h b/sim/ucsim/optioncl.h index c2b30692..2e8ad8a1 100644 --- a/sim/ucsim/optioncl.h +++ b/sim/ucsim/optioncl.h @@ -70,7 +70,7 @@ public: bool hidden; public: - cl_option(class cl_base *the_creator, char *aname, char *Ihelp); + cl_option(class cl_base *the_creator, const char *aname, const char *Ihelp); virtual class cl_option &operator=(class cl_option &o); virtual ~cl_option(void); virtual void pre_remove(void); @@ -79,13 +79,20 @@ public: virtual void hide(void) { hidden= DD_TRUE; } virtual void show(void) { hidden= DD_FALSE; } - virtual void print(class cl_console *con) {} + virtual void print(class cl_console_base *con) {} + virtual const char *get_type_name(void) { return("non"); } + virtual union option_value *get_value(void) { return(&value); } virtual void get_value(bool *val); virtual void get_value(char **val); - virtual union option_value *get_value(void) { return(&value); } - virtual void set_value(bool); - virtual void set_value(char *s); + virtual void get_value(void **val); + virtual void get_value(long *val); + virtual void get_value(double *val); + virtual void set_value(bool opt); + virtual void set_value(char *opt); + virtual void set_value(void *opt); + virtual void set_value(long opt); + virtual void set_value(double opt); virtual void new_reference(class cl_optref *ref); virtual void del_reference(class cl_optref *ref); @@ -96,22 +103,28 @@ public: class cl_options: public cl_sorted_list { public: - cl_options(void): cl_sorted_list(2, 2) { Duplicates= DD_TRUE; } - virtual void *key_of(void *item); - virtual int compare(void *key1, void *key2); + cl_options(void): cl_sorted_list(2, 2, "options") { Duplicates= DD_TRUE; } + virtual const void *key_of(void *item); + virtual int compare(const void *key1, const void *key2); virtual void new_option(class cl_option *opt); virtual void del_option(class cl_option *opt); - virtual class cl_option *get_option(char *the_name); - virtual class cl_option *get_option(char *the_name, class cl_base *creator); - virtual class cl_option *get_option(char *the_name, char *creator); + virtual class cl_option *get_option(const char *the_name); + virtual class cl_option *get_option(const char *the_name, class cl_base *creator); + virtual class cl_option *get_option(const char *the_name, char *creator); virtual class cl_option *get_option(int idx); virtual int nuof_options(char *the_name); virtual int nuof_options(char *the_name, char *creator); - virtual class cl_option *set_value(char *the_name, cl_base *creator, - bool value); - virtual class cl_option *set_value(char *the_name, cl_base *creator, - char *value); + virtual class cl_option *set_value(const char *the_name, cl_base *creator, + bool value); + virtual class cl_option *set_value(const char *the_name, cl_base *creator, + char *value); + virtual class cl_option *set_value(const char *the_name, cl_base *creator, + void *value); + virtual class cl_option *set_value(const char *the_name, cl_base *creator, + long value); + virtual class cl_option *set_value(const char *the_name, cl_base *creator, + double value); }; @@ -126,28 +139,29 @@ public: virtual ~cl_optref(void); virtual class cl_option *create(class cl_base *creator, - enum option_type type, - char *the_name, char *help); - virtual void default_option(char *the_name); + enum option_type type, + const char *the_name, const char *help); + virtual void default_option(const char *the_name); virtual class cl_option *use(void); - virtual class cl_option *use(char *the_name); + virtual class cl_option *use(const char *the_name); virtual void option_changed(void) {} virtual void option_removing(void); virtual class cl_base *get_owner(void) { return(owner); } virtual bool get_value(bool); - virtual char *get_value(char *); + virtual char *get_value(const char *); + virtual void *get_value(void *); + virtual long get_value(long); + virtual double get_value(double); }; class cl_bool_option: public cl_option { public: - cl_bool_option(class cl_base *the_creator, char *aname, char *Ihelp); - - virtual void print(class cl_console *con); - //virtual void get_value(bool *val); - //virtual void set_value(bool); + cl_bool_option(class cl_base *the_creator, const char *aname, const char *Ihelp); + virtual void print(class cl_console_base *con); + virtual const char *get_type_name(void) { return("boolean"); } virtual void set_value(char *s); }; @@ -155,29 +169,57 @@ public: class cl_string_option: public cl_option { public: - cl_string_option(class cl_base *the_creator, char *aname, char *Ihelp); + cl_string_option(class cl_base *the_creator, const char *aname, const char *Ihelp); virtual class cl_option &operator=(class cl_option &o); + virtual void print(class cl_console_base *con); + virtual const char *get_type_name(void) { return("string"); } +}; - virtual void print(class cl_console *con); - //virtual void get_value(char *val); - //virtual void set_value(char *opt); + +class cl_pointer_option: public cl_option +{ +public: + cl_pointer_option(class cl_base *the_creator, const char *aname, const char *Ihelp); + virtual class cl_option &operator=(class cl_option &o); + virtual void print(class cl_console_base *con); + virtual const char *get_type_name(void) { return("pointer"); } }; -class cl_cons_debug_opt: public cl_option +class cl_number_option: public cl_option +{ +public: + cl_number_option(class cl_base *the_creator, const char *aname, const char *Ihelp); + virtual void print(class cl_console_base *con); + virtual const char *get_type_name(void) { return("integer"); } + virtual void set_value(char *s); +}; + + +class cl_float_option: public cl_option +{ +public: + cl_float_option(class cl_base *the_creator, const char *aname, const char *Ihelp); + virtual void print(class cl_console_base *con); + virtual const char *get_type_name(void) { return("float"); } + virtual void set_value(char *s); +}; + + +/*class cl_cons_debug_opt: public cl_option { public: class cl_app *app; public: cl_cons_debug_opt(class cl_app *the_app, char *Iid, char *Ihelp); - virtual void print(class cl_console *con); + virtual void print(class cl_console_base *con); virtual void get_value(bool *val); virtual void set_value(bool); virtual void set_value(char *s); -}; +};*/ #endif