mirror of
https://github.com/fltk/fltk.git
synced 2026-05-30 21:25:30 +08:00
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
This commit is contained in:
+53
-25
@@ -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_
|
||||
|
||||
Reference in New Issue
Block a user