MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / OnDraw

Method OnDraw

ui/UICombo.cpp:151–197  ·  view source on GitHub ↗

behavior when gadget is being drawn.

Source from the content-addressed store, hash-verified

149
150// behavior when gadget is being drawn.
151void UIComboBox::OnDraw() {
152 UITextItem uarrow;
153 UITextItem darrow;
154 char arrowbuf[2];
155
156 if (m_Flags & UIF_BORDER)
157 ui_DrawBox(GR_WHITE, 0, 0, m_W, m_H);
158
159 // draw all items in box that can be visible.
160 int x = m_CX;
161 int y = m_CY;
162
163 if (!m_nItems)
164 return;
165
166 snprintf(arrowbuf, sizeof(arrowbuf), "%c", UI_UP_ARROW_CHAR);
167 uarrow = UITextItem(arrowbuf, m_ItemList[m_Index]->get_color(), 255);
168 snprintf(arrowbuf, sizeof(arrowbuf), "%c", UI_DOWN_ARROW_CHAR);
169 darrow = UITextItem(arrowbuf, m_ItemList[m_Index]->get_color(), 255);
170
171 ui_SetTextClip(m_CX, m_CY, m_CX2, m_CY2);
172
173 // reset these
174 m_ShowUp = m_ShowDown = false;
175 m_ArrY = y;
176 m_ArrH = uarrow.height();
177
178 if (m_Index > 0) {
179 m_UpArrX = m_CX;
180 m_UpArrW = uarrow.width();
181 uarrow.draw(m_UpArrX, m_ArrY);
182 m_ShowUp = true;
183 }
184 if (m_Index < (m_nItems - 1)) {
185 m_DownArrX = m_CX2 - darrow.width();
186 m_DownArrW = darrow.width();
187 darrow.draw(m_DownArrX, m_ArrY);
188 m_ShowDown = true;
189 }
190
191 // draw current item.
192 x = m_CX + uarrow.width() + 2;
193 ui_SetTextClip(x, m_CY, m_CX2 - darrow.width() - 2, m_CY2);
194 m_ItemList[m_Index]->draw(x, y);
195
196 ui_ResetTextClip();
197}
198
199// behavior when key is pressed.
200void UIComboBox::OnKeyDown(int key) {

Callers

nothing calls this directly

Calls 8

ui_DrawBoxFunction · 0.85
ui_SetTextClipFunction · 0.85
ui_ResetTextClipFunction · 0.85
UITextItemClass · 0.70
get_colorMethod · 0.45
heightMethod · 0.45
widthMethod · 0.45
drawMethod · 0.45

Tested by

no test coverage detected