summaryrefslogtreecommitdiff
path: root/src/Fl_Message.cxx
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2023-10-22 19:30:37 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2023-10-22 19:35:17 +0200
commit1209e9dcd7e1e97bedc747d06ba4eea837562158 (patch)
tree7897d3c61368958f191bfe684b96d1d08467a2bb /src/Fl_Message.cxx
parent05ac0247cbd902f910fa89f8d4f4fde9de904b0f (diff)
Make Fl_String and Fl_Int_Vector private (#789)
- add CMake option 'OPTION_USE_STD' - add configure option '--enable-use_std' - move FL/Fl_String.H to src/Fl_String.H - move FL/Fl_Int_Vector.H to src/Fl_Int_Vector.H - remove Fl_String from demo program examples/callbacks.cxx - remove Fl_Int_Vector from public header FL/Fl_Table.H - some methods of Fl_Table are no longer inline - add CMake option OPTION_USE_STD to allow std::string in some selected functions and methods Experimental, may be removed before release: - use either Fl_Int_Vector or std::vector in Fl_Table depending on CMake OPTION_USE_STD or configure --enable-use_std Move all fl_filename* functions that use Fl_String to fluid Main changes in fluid: - add fluid_filename.h and .cxx - include "fluid_filename.h" rather than <FL/filename.H> Update fl_input(), fl_password() and test/ask - add maxchar parameter to fl_input() and fl_password() - fl_input_str() and fl_password_str() are optional and return std::string if enabled (FLTK_USE_STD)
Diffstat (limited to 'src/Fl_Message.cxx')
-rw-r--r--src/Fl_Message.cxx15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/Fl_Message.cxx b/src/Fl_Message.cxx
index 246835d6c..ee3f61cd3 100644
--- a/src/Fl_Message.cxx
+++ b/src/Fl_Message.cxx
@@ -445,9 +445,18 @@ Fl_Box *Fl_Message::message_icon() {
/**
Does all Fl_Message window internals for messages with a text input field.
+ \param[in] fmt printf style format used in the user function call
+ \param[in] ap argument list provided by the user function call
+ \param[in] defstr default string given by the user
+ \param[in] type either FL_NORMAL_INPUT or FL_SECRET_INPUT (password)
+ \param[in] maxchar max. number of allowed characters (not bytes)
+ \param[in] str true: return type is string, false: internal buffer
+
+ \returns pointer to string or NULL if cancel or escape were hit
+
\see innards()
*/
-const char *Fl_Message::input_innards(const char *fmt, va_list ap, const char *defstr, uchar type, int maxchar) {
+const char *Fl_Message::input_innards(const char *fmt, va_list ap, const char *defstr, uchar type, int maxchar, bool str) {
message_->position(60, 10);
input_->type(type);
input_->show();
@@ -465,7 +474,7 @@ const char *Fl_Message::input_innards(const char *fmt, va_list ap, const char *d
int size = input_->size() + 1;
- if (maxchar < 0) { // need to store the value in pre-allocated buffer
+ if (!str) { // need to store the value in pre-allocated buffer
// The allocated input buffer starts with size 0 and is allocated
// in multiples of 128 bytes >= size. If both the size and the pointer
@@ -485,7 +494,7 @@ const char *Fl_Message::input_innards(const char *fmt, va_list ap, const char *d
input_buffer_[input_->size()] = '\0';
return (input_buffer_);
- } else { // new version: return value() which will be copied
+ } else { // string version: return value() which will be copied
return input_->value();
}