OSDN Git Service

upgrade to 3.6.1
[jnethack/source.git] / win / Qt4 / qt4bind.h
1 // Copyright (c) Warwick Allison, 1999.
2 // Qt4 conversion copyright (c) Ray Chason, 2012-2014.
3 // NetHack may be freely redistributed.  See license for details.
4
5 // qt4bind.h -- bindings between the Qt 4 interface and the main code
6
7 #ifndef QT4BIND_H
8 #define QT4BIND_H
9
10 #include "qt4main.h"
11
12 namespace nethack_qt4 {
13
14 class NetHackQtClickBuffer;
15
16 #ifdef KDE
17 #define NetHackQtBindBase KApplication
18 #elif defined(QWS)
19 #define NetHackQtBindBase QPEApplication
20 #else
21 #define NetHackQtBindBase QApplication
22 #endif
23
24 class NetHackQtBind : NetHackQtBindBase {
25 private:
26         // Single-instance preservation...
27         NetHackQtBind(int& argc, char** argv);
28
29         static NetHackQtBind* instance;
30
31         static NetHackQtKeyBuffer keybuffer;
32         static NetHackQtClickBuffer clickbuffer;
33
34         static QFrame* splash;
35         static NetHackQtMainWindow* main;
36
37 public:
38         static void qt_init_nhwindows(int* argc, char** argv);
39         static void qt_player_selection();
40         static void qt_askname();
41         static void qt_get_nh_event();
42         static void qt_exit_nhwindows(const char *);
43         static void qt_suspend_nhwindows(const char *);
44         static void qt_resume_nhwindows();
45         static winid qt_create_nhwindow(int type);
46         static void qt_clear_nhwindow(winid wid);
47         static void qt_display_nhwindow(winid wid, BOOLEAN_P block);
48         static void qt_destroy_nhwindow(winid wid);
49         static void qt_curs(winid wid, int x, int y);
50         static void qt_putstr(winid wid, int attr, const char *text);
51         static void qt_putstr(winid wid, int attr, const std::string& text);
52         static void qt_putstr(winid wid, int attr, const QString& text);
53         static void qt_display_file(const char *filename, BOOLEAN_P must_exist);
54         static void qt_start_menu(winid wid);
55         static void qt_add_menu(winid wid, int glyph,
56                 const ANY_P * identifier, CHAR_P ch, CHAR_P gch, int attr,
57                 const char *str, BOOLEAN_P presel);
58         static void qt_end_menu(winid wid, const char *prompt);
59         static int qt_select_menu(winid wid, int how, MENU_ITEM_P **menu_list);
60         static void qt_update_inventory();
61         static void qt_mark_synch();
62         static void qt_wait_synch();
63
64         static void qt_cliparound(int x, int y);
65         static void qt_cliparound_window(winid wid, int x, int y);
66         static void qt_print_glyph(winid wid,XCHAR_P x,XCHAR_P y,int glyph,int bkglyph);
67         static void qt_raw_print(const char *str);
68         static void qt_raw_print_bold(const char *str);
69         static int qt_nhgetch();
70         static int qt_nh_poskey(int *x, int *y, int *mod);
71         static void qt_nhbell();
72         static int qt_doprev_message();
73         static char qt_yn_function(const char *question, const char *choices, CHAR_P def);
74         static void qt_getlin(const char *prompt, char *line);
75         static int qt_get_ext_cmd();
76         static void qt_number_pad(int);
77         static void qt_delay_output();
78         static void qt_start_screen();
79         static void qt_end_screen();
80
81         static char *qt_getmsghistory(BOOLEAN_P init);
82         static void qt_putmsghistory(const char *msg, BOOLEAN_P is_restoring);
83
84         static void qt_outrip(winid wid, int how, time_t when);
85         static int qt_kbhit();
86
87         static QWidget *mainWidget() { return main; }
88
89 private:
90         virtual bool notify(QObject *receiver, QEvent *event);
91
92         static QStringList *msgs_strings;
93         static boolean msgs_saved;
94         static boolean msgs_initd;
95 };
96
97 } // namespace nethack_qt4
98
99 #endif