Merge branch 'master' into terencehill/music_player
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_multiplayer_media_musicplayer.c
1 #ifdef INTERFACE
2 CLASS(XonoticMusicPlayerTab) EXTENDS(XonoticTab)
3         METHOD(XonoticMusicPlayerTab, fill, void(entity))
4         ATTRIB(XonoticMusicPlayerTab, title, string, _("Music"))
5         ATTRIB(XonoticMusicPlayerTab, intendedWidth, float, 0.9)
6         ATTRIB(XonoticMusicPlayerTab, rows, float, 21)
7         ATTRIB(XonoticMusicPlayerTab, columns, float, 6.5)
8         ATTRIB(XonoticMusicPlayerTab, name, string, "MusicPlayer")
9 ENDCLASS(XonoticMusicPlayerTab)
10 entity makeXonoticMusicPlayerTab();
11 #endif
12
13 #ifdef IMPLEMENTATION
14 entity makeXonoticMusicPlayerTab()
15 {
16         entity me;
17         me = spawnXonoticMusicPlayerTab();
18         me.configureDialog(me);
19         return me;
20 }
21 void XonoticMusicPlayerTab_fill(entity me)
22 {
23         entity e;
24         entity soundList, playList;
25         float columns_nospacing = (me.columns - 0.2);
26
27         me.TR(me);
28                 me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, _("Filter:")));
29                 me.TD(me, 1, 2.5, e = makeXonoticInputBox(0, string_null));
30                         soundList = makeXonoticSoundList();
31                         e.onChange = SoundList_Filter_Change;
32                         e.onChangeEntity = soundList;
33                         soundList.controlledTextbox = e;
34                         playList = makeXonoticPlayList();
35                         soundList.playlist = playList;
36
37         me.TR(me);
38                 me.TD(me, me.rows - 4, columns_nospacing / 2, soundList);
39
40         me.gotoRC(me, me.rows - 3, 0);
41                 me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Add")), '0 0 0'));
42                         e.onClick = SoundList_Add;
43                         e.onClickEntity = soundList;
44                 me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Add all")), '0 0 0'));
45                         e.onClick = SoundList_Add_All;
46                         e.onClickEntity = soundList;
47         me.TR(me);
48                 me.TD(me, 1, columns_nospacing / 2, e = makeXonoticButton(_("Set as menu track"), '0 0 0'));
49                         e.onClick = SoundList_Menu_Track_Change;
50                         e.onClickEntity = soundList;
51         me.TR(me);
52                 me.TD(me, 1, columns_nospacing / 2, e = makeXonoticButton(_("Reset default menu track"), '0 0 0'));
53                         e.onClick = SoundList_Menu_Track_Reset;
54                         e.onClickEntity = soundList;
55         me.TR(me);
56         me.TR(me);
57         me.gotoRC(me, 0, columns_nospacing / 2 + 0.2); me.setFirstColumn(me, me.currentColumn);
58                 me.TD(me, 1, columns_nospacing / 4, e = makeXonoticTextLabel(0, _("Playlist:")));
59                 me.TD(me, 1, columns_nospacing / 4, e = makeXonoticCheckBox(0, "music_playlist_random0", _("Random order")));
60         me.TR(me);
61                 me.TD(me, me.rows - 3, columns_nospacing / 2, playList);
62
63         me.gotoRC(me, me.rows - 2, columns_nospacing / 2 + 0.2);
64                 me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Stop")), '0 0 0'));
65                         e.onClick = StopSound_Click;
66                         e.onClickEntity = playList;
67                 me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Play")), '0 0 0'));
68                         e.onClick = StartSound_Click;
69                         e.onClickEntity = playList;
70                 me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Pause/Play")), '0 0 0'));
71                         e.onClick = PauseSound_Click;
72                         e.onClickEntity = playList;
73                 me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Prev")), '0 0 0'));
74                         e.onClick = PrevSound_Click;
75                         e.onClickEntity = playList;
76                 me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Next")), '0 0 0'));
77                         e.onClick = NextSound_Click;
78                         e.onClickEntity = playList;
79         me.TR(me);
80                 me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Remove")), '0 0 0'));
81                         e.onClick = PlayList_Remove;
82                         e.onClickEntity = playList;
83                 me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Remove all")), '0 0 0'));
84                         e.onClick = PlayList_Remove_All;
85                         e.onClickEntity = playList;
86 }
87 #endif