edelib
1.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
edelib
MessageBox.h
1
/*
2
* $Id: MessageBox.h 2839 2009-09-28 11:36:20Z karijes $
3
*
4
* Message dialog
5
* Copyright (c) 2005-2007 edelib authors
6
*
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2 of the License, or (at your option) any later version.
11
*
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef __EDELIB_MESSAGEBOX_H__
22
#define __EDELIB_MESSAGEBOX_H__
23
24
#include "edelib-global.h"
25
26
#include <FL/Fl_Window.H>
27
#include <FL/Fl_Button.H>
28
#include <FL/Fl_Box.H>
29
#include <FL/Fl_Input.H>
30
#include <FL/Fl_Pixmap.H>
31
32
#define MSGBOX_MAX_BUTTONS 4 // Max buttons in dialog
33
34
#define MSGBOX_ICON_ERROR "dialog-error"
35
#define MSGBOX_ICON_INFO "dialog-information"
36
#define MSGBOX_ICON_PASSWORD "dialog-password"
37
#define MSGBOX_ICON_WARNING "dialog-warning"
38
#define MSGBOX_ICON_QUESTION "dialog-question"
39
40
EDELIB_NS_BEGIN
41
47
enum
MessageBoxType
{
48
MSGBOX_PLAIN
= 0,
49
MSGBOX_INPUT
,
50
MSGBOX_INPUT_SECRET
51
};
52
58
enum
MessageBoxButtonType
{
59
MSGBOX_BUTTON_PLAIN
= 0,
60
MSGBOX_BUTTON_RETURN
61
};
62
68
enum
MessageBoxIconType
{
69
MSGBOX_ICON_TYPE_INFO
= 0,
70
MSGBOX_ICON_TYPE_ALERT
,
71
MSGBOX_ICON_TYPE_QUESTION
,
72
MSGBOX_ICON_TYPE_INPUT
,
73
MSGBOX_ICON_TYPE_PASSWORD
74
};
75
196
class
EDELIB_API
MessageBox
:
public
Fl_Window {
197
private
:
198
Fl_Box* img;
199
Fl_Box* txt;
200
Fl_Input* inpt;
201
Fl_Group* gr;
202
Fl_Pixmap* pix;
203
204
MessageBoxType
mbt;
205
206
int
nbuttons;
207
int
b_start;
208
Fl_Button* buttons[MSGBOX_MAX_BUTTONS];
209
210
void
init(
void
);
211
void
fix_sizes(
void
);
212
213
void
add(Fl_Widget*) { }
// in case someone tries to be too smart
214
215
public
:
220
MessageBox
(
MessageBoxType
t =
MSGBOX_PLAIN
);
221
225
~
MessageBox
();
226
231
void
set_text(
const
char
* t);
232
238
bool
set_icon(
const
char
* path);
239
246
bool
set_theme_icon(
const
char
* name);
247
251
void
set_xpm_icon(
const
char
*
const
* arr);
252
257
void
set_icon_from_type(
MessageBoxIconType
type);
258
267
const
char
* get_input(
void
);
268
272
void
set_input(
const
char
* txt);
273
277
void
focus_button(
int
b);
278
284
void
add_button(Fl_Button* b,
MessageBoxButtonType
bt =
MSGBOX_BUTTON_PLAIN
);
285
293
void
add_button(
const
char
* l,
MessageBoxButtonType
bt =
MSGBOX_BUTTON_PLAIN
, Fl_Callback cb = 0,
void
* param = 0);
294
299
void
clear(
MessageBoxType
t =
MSGBOX_PLAIN
);
300
305
void
run_plain(
bool
center =
true
);
306
314
int
run(
bool
center =
true
);
315
324
static
void
set_themed_icons(
const
char
* msg,
const
char
* alert = 0,
const
char
* ask = 0,
325
const
char
* input = 0,
const
char
* password = 0);
326
328
static
void
clear_themed_icons(
void
);
329
};
330
341
EDELIB_API
void
themed_dialog_icons
(
const
char
* msg,
const
char
*
alert
= 0,
342
const
char
*
ask
= 0,
const
char
*
input
= 0,
const
char
*
password
= 0) EDELIB_DEPRECATED;
343
349
EDELIB_API
void
clear_dialog_icons
(
void
) EDELIB_DEPRECATED;
350
355
EDELIB_API
void
message
(const
char
* fmt, ...);
356
361
EDELIB_API
void
alert
(const
char
* fmt, ...);
362
368
EDELIB_API
int
ask
(const
char
* fmt, ...);
369
380
EDELIB_API const
char
*
input
(const
char
* fmt, const
char
* deflt = 0, ...);
381
386
EDELIB_API const
char
*
password
(const
char
* fmt, const
char
* deflt = 0, ...);
387
388
#ifndef SKIP_DOCS
389
/*
390
* FLTK compatibility
391
*/
392
extern
void (*fl_message)(
const
char
* fmt, ...);
393
extern
void (*fl_alert)(
const
char
* fmt, ...);
394
extern
int (*fl_ask)(
const
char
* fmt, ...);
395
extern
const
char
* (*fl_input)(
const
char
* fmt,
const
char
* deflt, ...);
396
extern
const
char
* (*fl_password)(
const
char
* fmt,
const
char
* deflt, ...);
397
#endif
398
399
EDELIB_NS_END
400
#endif
Generated on Sun Aug 16 2015 16:18:46 for edelib by
1.8.2