]> icculus.org git repositories - divverent/nexuiz.git/blob - data/source/control/link.qc
restructure
[divverent/nexuiz.git] / data / source / control / link.qc
1 // DP/Nex Menu
2 // control/link.qc
3
4 ////////////////
5 // [Item_Link]
6 ///
7
8 /*
9 The Link is only established if self.link is valid.
10 If it is valid, the item is made no selectable since the link should be selectable
11 */
12
13 void() Item_Link_Update =
14 {
15         if( self.link == "" )
16                 self._link = null_entity;
17         else if( self.link != self._link.name ) {
18                 self._link = Menu_GetItem( self.link );
19                 self.flag = self.flag | FLAG_NOSELECT;
20         }
21 };
22
23 bool( float pKey, float pAscii ) Item_Link_Key =
24 {
25         if( self._link )
26                 return Raise_Key( self._link, pKey, pAscii );
27
28         return false;
29 };
30
31 void() Item_Link_MouseEnter =
32 {
33         if( self._link && Menu_IsSelectable( self._link ) )
34                 Menu_Select( self._link, true );
35 };
36
37 bool() Item_Link_IsSelected =
38 {
39         if( Menu_ActiveItem == self )
40                 return true;
41
42         if( self._link )
43                 return (Menu_ActiveItem == self._link);
44         else
45                 return false;
46 };
47
48 void() Item_Link_Destroy =
49 {
50         String_EntityFree( self, link );
51 };
52
53 void() Item_Link_Init =
54 {
55         String_EntityZone( self, link );
56
57         Item_Link_Update();
58
59         self._destroy = Item_Link_Destroy;
60         self._key = Item_Link_Key;
61         self._mouseEnter = Item_Link_MouseEnter;
62         self._update = Item_Link_MouseEnter;
63 };