]> icculus.org git repositories - divverent/nexuiz.git/blob - data/menuqc/control/visual/floating.qc
rename menu directories
[divverent/nexuiz.git] / data / menuqc / control / visual / floating.qc
1 // DP/Nex Menu
2 // control/visual/floating.qc
3
4 bool( float pKey, float pAscii ) Item_FloatingArea_Key =
5 {
6         if( pKey == K_MOUSE1 || pKey == K_ENTER ) {
7                 if( self._state != ITEM_STATE_PRESSED )
8                         self._state = ITEM_STATE_PRESSED;
9                 else
10                         self._state = ITEM_STATE_NORMAL;
11
12                 return true;
13         } else if( pKey == K_ESCAPE )
14                 self._state = ITEM_STATE_NORMAL;
15
16         return false;
17 };
18
19 void() Item_FloatingArea_Update =
20 {
21         if( !self.target ) {
22                 self._state = ITEM_STATE_NORMAL;
23                 return;
24         } else if( self.target != self._target.name )
25                 self._target = Menu_GetItem( self.target );
26
27         if( self._state == ITEM_STATE_PRESSED )
28                 self._target.pos = self._target.pos + Cursor_Relative;
29         else if( Menu_ActiveItem == self )
30                 self._state = ITEM_STATE_SELECTED;
31 };
32
33 void() Item_FloatingArea_Destroy =
34 {
35         String_EntityFree( self, target );
36 };
37
38 void( bool pSelect, bool pUser ) Item_FloatingArea_Select =
39 {
40         if( !pSelect && self._state == ITEM_STATE_PRESSED )
41                 Menu_CorrectSelection( self, false );
42 };
43
44 void() Item_FloatingArea_Spawn =
45 {
46         self.flag = self.flag | FLAG_CHILDDRAWUPDATEONLY;
47
48         String_EntityZone( self, target );
49
50         self._update = Item_FloatingArea_Update;
51         self._key = Item_FloatingArea_Key;
52         self._destroy = Item_FloatingArea_Destroy;
53         self._select = Item_FloatingArea_Select;
54 };