Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
listbox.qh
Go to the documentation of this file.
1#pragma once
2
3#include "../item.qh"
6 METHOD(ListBox, configureListBox, void(entity, float, float));
8 METHOD(ListBox, keyDown, float(entity, float, float, float));
18 ATTRIB(ListBox, mouseMoveOffset, float, -1); // let know where the cursor is when the list scrolls without moving the cursor
23 ATTRIB(ListBox, scrollPos, float, 0); // measured in window heights, fixed when needed
29 ATTRIB(ListBox, pressed, float, 0); // 0 = normal, 1 = scrollbar dragging, 2 = item dragging, 3 = released
31
37 ATTRIB(ListBox, selectionDoesntMatter, bool, false); // improves scrolling by keys for lists that don't need to show an active selection
38
39 ATTRIB(ListBox, src, string); // scrollbar
44 ATTRIB(ListBox, tolerance, vector, '0 0 0'); // drag tolerance
45 ATTRIB(ListBox, scrollbarWidth, float, 0); // pixels
46 ATTRIB(ListBox, nItems, int, 42); // FIXME: why?!?
50 ATTRIB(ListBox, alphaBG, float, 0);
51
54
55 METHOD(ListBox, drawListBoxItem, void(entity, int, vector, bool, bool)); // item number, width/height, isSelected, isFocused
56 METHOD(ListBox, clickListBoxItem, void(entity, float, vector)); // item number, relative clickpos
57 METHOD(ListBox, doubleClickListBoxItem, void(entity, float, vector)); // item number, relative clickpos
60
63
64 // NOTE: override these four methods if you want variable sized list items
69 // NOTE: if getItemAt* are overridden, it may make sense to cache the
70 // start and height of the last item returned by getItemAtPos and fast
71 // track returning their properties for getItemStart and getItemHeight.
72 // The "hot" code path calls getItemAtPos first, then will query
73 // getItemStart and getItemHeight on it soon.
74 // When overriding, the following consistency rules must hold:
75 // getTotalHeight() == SUM(getItemHeight(i), i, 0, me.nItems-1)
76 // getItemStart(i+1) == getItemStart(i) + getItemHeight(i)
77 // for 0 <= i < me.nItems-1
78 // getItemStart(0) == 0
79 // getItemStart(getItemAtPos(p)) <= p
80 // if p >= 0
81 // getItemAtPos(p) == 0
82 // if p < 0
83 // getItemStart(getItemAtPos(p)) + getItemHeight(getItemAtPos(p)) > p
84 // if p < getTotalHeigt()
85 // getItemAtPos(p) == me.nItems - 1
86 // if p >= getTotalHeight()
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
virtual void doubleClickListBoxItem()
virtual void setSelected()
virtual void getTotalHeight()
vector origin
Definition listbox.qh:22
float controlBottom
Definition listbox.qh:34
float lastClickedItem
Definition listbox.qh:52
vector colorC
Definition listbox.qh:42
virtual void mouseRelease()
vector size
Definition listbox.qh:21
virtual void clickListBoxItem()
vector colorBG
Definition listbox.qh:49
virtual void mousePress()
Definition listbox.qc:212
virtual void draw()
float controlWidth
Definition listbox.qh:35
virtual void getItemStart()
int selectedItem
Definition listbox.qh:20
float itemHeight
Definition listbox.qh:47
virtual void getLastFullyVisibleItemAtScrollPos()
vector color
Definition listbox.qh:40
virtual void focusLeave()
virtual void mouseDrag()
bool focusable
Definition listbox.qh:14
vector dragScrollPos
Definition listbox.qh:36
virtual void mouseMove()
vector color2
Definition listbox.qh:41
float pressOffset
Definition listbox.qh:30
bool selectionDoesntMatter
Definition listbox.qh:37
virtual void resizeNotify()
virtual void focusedItemChangeNotify()
float needScrollToItem
Definition listbox.qh:26
virtual void getItemAtPos()
vector tolerance
Definition listbox.qh:44
float focusedItemAlpha
Definition listbox.qh:16
int focusedItem
Definition listbox.qh:15
ATTRIB(ListBox, src, string)
virtual void updateControlTopBottom()
float pressed
Definition listbox.qh:29
int nItems
Definition listbox.qh:46
bool allowFocusSound
Definition listbox.qh:19
float previousValue
Definition listbox.qh:28
virtual void keyDown()
float lastClickedTime
Definition listbox.qh:53
virtual void getItemHeight()
vector colorF
Definition listbox.qh:43
float controlTop
Definition listbox.qh:33
vector itemAbsSize
Definition listbox.qh:48
float scrollPosTarget
Definition listbox.qh:24
virtual void setFocusedItem()
virtual void getFirstFullyVisibleItemAtScrollPos()
float alphaBG
Definition listbox.qh:50
float mouseMoveOffset
Definition listbox.qh:18
float scrollbarWidth
Definition listbox.qh:45
virtual void scrollToItem()
float scrollPos
Definition listbox.qh:23
virtual void configureListBox()
virtual void drawListBoxItem()
virtual void isScrolling()
#define true
Definition csprogsdefs.qh:5
#define false
Definition csprogsdefs.qh:6
#define CLASS(...)
Definition oo.qh:145
#define ENDCLASS(cname)
Definition oo.qh:281
#define METHOD(cname, name, prototype)
Definition oo.qh:269
vector
Definition self.qh:92
entity this
Definition self.qh:72