Hmm, but isn't that the same as deriving a MyIntInput class
from Fl_Float_Input, and then referencing it inside fluid
by dropping an Fl_Int_Input widget into the fluid form and
setting the "Class:" field in the C++ properties to MyIntInput?


Domingo Alvarez Duarte wrote:
> Your asii art is a nice solution.
> 
> And you've mentioned:
> 
> -------
>       My approach is to make an 'input' class of my own
>       for each of the input fields (eg. one for Fl_Input,
>       Fl_Choice, etc).
> 
>       And in these classes have a 'name' field (std::string or char*)
>       that is the "database name".
> -------
> 
> I also have to add some extra fields/methods to other purposes.
> 
> I propose that fltk headers should have included a preprocessor directive  
> to easy customizations like that by developers, something like this:
> 
> ------
> 
> #include <FL/User_defined.H>
> 
> class FL_EXPORT Fl_Float_Input : public Fl_Input {
> public:
>    /**
>        Creates a new Fl_Float_Input widget using the given position,
>      size, and label string. The default boxtype is FL_DOWN_BOX.
>    <P> Inherited destructor destroys the widget and any value associated  
> with it
>    */
>    Fl_Float_Input(int X,int Y,int W,int H,const char *l = 0)
>      : Fl_Input(X,Y,W,H,l) {type(FL_FLOAT_INPUT);right_to_left_=1;}
> 
> #ifdef USER_CUSTOM_DEFINED_FOR_FL_FLOAT_INPUT
>       USER_CUSTOM_DEFINED_FOR_FL_FLOAT_INPUT;
> #endif
> };
> --------
> 
> Example of a possible "<FL/User_defined.H>"
> --------
> 
> #define USER_CUSTOM_DEFINED_FOR_FL_WIDGET \
>       const char* field_name; \
>       char* storage_space; \
>       virtual bool validate_value() {return 0;};
> 
> #define USER_CUSTOM_DEFINED_FOR_FL_WIDGET_ON_CONSTRUTOR \
>       const char* field_name = NULL; \
>       char *storage_space = NULL;
> 
> #define USER_CUSTOM_DEFINED_FOR_FL_WIDGET_ON_DESTRUCTOR \
>       if(field_name) free(field_name); \
>       if(storage_space) free(storage_space);
> 
> 
> #define USER_CUSTOM_DEFINED_FOR_FL_FLOAT_INPUT \
>       bool allow_negative_values; \
>       virtual bool validate_value() {return allow_negative_values ? true :  
> value_float() > = 0;};
> 
> #define USER_CUSTOM_DEFINED_FOR_FL_FLOAT_INPUT_ON_CONSTRUCTOR \
>        allow_negative_values = true;
> 
> 
> --------
> 
> This way we can customize fltk for a lot of needs without having to derive  
> new widgets only editing the "<FL/User_defined.H>" and include our  
> definition file to the library, and we can update fltk sources without  
> much worry about our customizations.
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to