]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_welcome.qc
cl_welcome_in_menu_dialog 1 "1: show the welcome message in a dedicated menu dialog...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_welcome.qc
1 #include "dialog_welcome.qh"
2
3 #include "image.qh"
4 #include "textlabel.qh"
5 #include "textbox.qh"
6 #include "radiobutton.qh"
7 #include "commandbutton.qh"
8 #include "slider.qh"
9
10 void welcomeDialog_resetStrings(entity me)
11 {
12         if(me.serverinfo_name)
13                 strunzone(me.serverinfo_name);
14         me.serverinfo_name = strzone(_("<NO NAME>"));
15
16         if(me.serverinfo_MOTD)
17                 strunzone(me.serverinfo_MOTD);
18         me.serverinfo_MOTD = strzone(_("<NO MOTD>"));
19 }
20
21 float XonoticWelcomeDialog_keyDown(entity me, float key, float ascii, float shift)
22 {
23         switch(key)
24         {
25                 case K_KP_ENTER:
26                 case K_ENTER:
27                 case K_SPACE:
28                         me.close(me);
29                         return true;
30                 default:
31                         return SUPER(XonoticWelcomeDialog).keyDown(me, key, ascii, shift);
32         }
33 }
34
35 void XonoticWelcomeDialog_configureDialog(entity me)
36 {
37         welcomeDialog_resetStrings(me);
38         SUPER(XonoticWelcomeDialog).configureDialog(me);
39 }
40
41 void XonoticWelcomeDialog_readInputArgs(entity me, float argsbuf)
42 {
43         int i = 0;
44         string s;
45         welcomeDialog_resetStrings(me);
46         if(argsbuf >= 0)
47         while((s = bufstr_get(argsbuf, i)) != "")
48         {
49                 if(s == "name")
50                 {
51                         if(me.serverinfo_name)
52                                 strunzone(me.serverinfo_name);
53                         me.serverinfo_name = strzone(bufstr_get(argsbuf, i + 1));
54                         ++i;
55                 }
56                 else if(s == "motd")
57                 {
58                         if(me.serverinfo_MOTD)
59                                 strunzone(me.serverinfo_MOTD);
60                         me.serverinfo_MOTD = strzone(bufstr_get(argsbuf, i + 1));
61                         ++i;
62                 }
63                 ++i;
64         }
65         //me.serverinfo_name_ent.setText(me.serverinfo_name_ent, me.serverinfo_name);
66         me.serverinfo_MOTD_ent.setText(me.serverinfo_MOTD_ent, me.serverinfo_MOTD);
67         me.frame.setText(me.frame, me.serverinfo_name);
68 }
69
70 void XonoticWelcomeDialog_fill(entity me)
71 {
72         entity e;
73
74         me.TR(me);
75                 me.TD(me, me.rows - 1, me.columns, me.serverinfo_MOTD_ent = makeXonoticTextBox());
76                         me.serverinfo_MOTD_ent.align = 0.5;
77                         me.serverinfo_MOTD_ent.allowColors = true;
78                         me.serverinfo_MOTD_ent.escapedNewLines = true;
79         me.gotoRC(me, me.rows - 1, 0);
80                 me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
81                         e.onClick = Dialog_Close;
82                         e.onClickEntity = me;
83                         e.preferredFocusPriority = 1;
84 }