diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2021-12-04 13:35:47 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2021-12-04 14:49:27 +0100 |
| commit | b6de09cff2465db3c0a6e6a013b825462bc9a0e7 (patch) | |
| tree | 23725f27cc08e314f3c5d15d1c47c3f3b24b7588 /FL/fl_ask.H | |
| parent | 240465626604ed9a7f7b2cb997ab4dffd419eabc (diff) | |
Re-enable nested (aka recursive) common dialogs (STR 3242, #282)
Apply Fl_Dialog_r10831.patch as given in STR 3242:
https://www.fltk.org/strfiles/3242/Fl_Dialog_r10831.patch
Reformat, add missing pieces, rename private members, cleanup...
Improve documentation, add fl_choice_n() (issue #282)
New methods fl_input_str() and fl_password_str() return Fl_String
Diffstat (limited to 'FL/fl_ask.H')
| -rw-r--r-- | FL/fl_ask.H | 78 |
1 files changed, 53 insertions, 25 deletions
diff --git a/FL/fl_ask.H b/FL/fl_ask.H index 964ea366b..de76ebd37 100644 --- a/FL/fl_ask.H +++ b/FL/fl_ask.H @@ -1,7 +1,7 @@ // // Standard dialog header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -18,44 +18,71 @@ API for common dialogs. */ -#ifndef fl_ask_H -# define fl_ask_H +#ifndef _FL_fl_ask_H_ +#define _FL_fl_ask_H_ + +#include <FL/Enumerations.H> +#include <FL/Fl_String.H> +#include <FL/fl_attr.h> -# include "Enumerations.H" -# include "fl_attr.h" class Fl_Widget; /** Different system beeps available. \sa fl_beep(int) */ enum Fl_Beep { - FL_BEEP_DEFAULT = 0, ///< Default beep. - FL_BEEP_MESSAGE, ///< Message beep. - FL_BEEP_ERROR, ///< Error beep. - FL_BEEP_QUESTION, ///< Question beep. - FL_BEEP_PASSWORD, ///< Password beep. - FL_BEEP_NOTIFICATION ///< Notification beep. + FL_BEEP_DEFAULT = 0, ///< Default beep. + FL_BEEP_MESSAGE, ///< Message beep. + FL_BEEP_ERROR, ///< Error beep. + FL_BEEP_QUESTION, ///< Question beep. + FL_BEEP_PASSWORD, ///< Password beep. + FL_BEEP_NOTIFICATION ///< Notification beep. }; FL_EXPORT void fl_beep(int type = FL_BEEP_DEFAULT); -FL_EXPORT void fl_message(const char *,...) __fl_attr((__format__ (__printf__, 1, 2))); -FL_EXPORT void fl_alert(const char *,...) __fl_attr((__format__ (__printf__, 1, 2))); +FL_EXPORT void fl_message(const char *, ...) __fl_attr((__format__(__printf__, 1, 2))); +FL_EXPORT void fl_alert(const char *, ...) __fl_attr((__format__(__printf__, 1, 2))); + // fl_ask() is deprecated since it uses "Yes" and "No" for the buttons, // which does not conform to the current FLTK Human Interface Guidelines. -// Use fl_choice() instead with the appropriate verbs instead. -FL_EXPORT int fl_ask(const char *,...) __fl_attr((__format__ (__printf__, 1, 2), __deprecated__)); -FL_EXPORT int fl_choice(const char *q,const char *b0,const char *b1,const char *b2,...) __fl_attr((__format__ (__printf__, 1, 5))); -FL_EXPORT const char *fl_input(const char *label, const char *deflt = 0, ...) __fl_attr((__format__ (__printf__, 1, 3))); -FL_EXPORT const char *fl_password(const char *label, const char *deflt = 0, ...) __fl_attr((__format__ (__printf__, 1, 3))); +// Use fl_choice() or fl_choice_n() with the appropriate verbs instead. + +FL_EXPORT int fl_ask(const char *, ...) __fl_attr((__format__(__printf__, 1, 2), __deprecated__)); + +FL_EXPORT int fl_choice(const char *q, const char *b0, const char *b1, const char *b2, ...) + __fl_attr((__format__(__printf__, 1, 5))); +FL_EXPORT const char *fl_input(const char *label, const char *deflt = 0, ...) __fl_attr((__format__(__printf__, 1, 3))); +FL_EXPORT const char *fl_password(const char *label, const char *deflt = 0, ...) + __fl_attr((__format__(__printf__, 1, 3))); + +// since FLTK 1.3.8: +// - fl_choice_n() with extended return value (-2, -1, 0, 1, 2) + +FL_EXPORT int fl_choice_n(const char *q, const char *b0, const char *b1, const char *b2, ...) + __fl_attr((__format__(__printf__, 1, 5))); + +// since FLTK 1.4.0: +// - fl_input_str() with limited input size +// - fl_password_str() with limited input size (*_str) + +FL_EXPORT Fl_String fl_input_str(int maxchar, const char *label, const char *deflt = 0, ...) + __fl_attr((__format__(__printf__, 2, 4))); + +FL_EXPORT Fl_String fl_password_str(int maxchar, const char *label, const char *deflt = 0, ...) + __fl_attr((__format__(__printf__, 2, 4))); FL_EXPORT Fl_Widget *fl_message_icon(); extern FL_EXPORT Fl_Font fl_message_font_; extern FL_EXPORT Fl_Fontsize fl_message_size_; inline void fl_message_font(Fl_Font f, Fl_Fontsize s) { - fl_message_font_ = f; fl_message_size_ = s;} + fl_message_font_ = f; + fl_message_size_ = s; +} FL_EXPORT void fl_message_hotspot(int enable); FL_EXPORT int fl_message_hotspot(void); +// since FLTK 1.4.0: fl_message_position() + FL_EXPORT void fl_message_position(const int x, const int y, const int center = 0); FL_EXPORT void fl_message_position(Fl_Widget *widget); FL_EXPORT int fl_message_position(int *x = 0, int *y = 0); @@ -69,9 +96,10 @@ FL_EXPORT void fl_message_title(const char *title); FL_EXPORT void fl_message_title_default(const char *title); // pointers you can use to change FLTK to another language: -extern FL_EXPORT const char* fl_no; -extern FL_EXPORT const char* fl_yes; -extern FL_EXPORT const char* fl_ok; -extern FL_EXPORT const char* fl_cancel; -extern FL_EXPORT const char* fl_close; -#endif // !fl_ask_H +extern FL_EXPORT const char *fl_no; +extern FL_EXPORT const char *fl_yes; +extern FL_EXPORT const char *fl_ok; +extern FL_EXPORT const char *fl_cancel; +extern FL_EXPORT const char *fl_close; + +#endif // !_FL_fl_ask_H_ |
