diff --git a/src/client/defs.h b/src/client/defs.h index ca046d9e..f68319b3 100644 --- a/src/client/defs.h +++ b/src/client/defs.h @@ -22,12 +22,6 @@ #include "cmd.h" #include "util.h" -/* flags for 2d drawing */ -#define DRAWFLAG_NORMAL 0 -#define DRAWFLAG_ADDITIVE 1 -#define DRAWFLAG_MODULATE 2 -#define DRAWFLAG_2XMODULATE 3 - /* undocumented printcall types */ #define PRINT_LOW 0 #define PRINT_MEDIUM 1 diff --git a/src/client/font.h b/src/client/font.h index fe71c1fe..339f7f45 100644 --- a/src/client/font.h +++ b/src/client/font.h @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* flags for 2d drawing */ +#define DRAWFLAG_NORMAL 0 +#define DRAWFLAG_ADDITIVE 1 +#define DRAWFLAG_MODULATE 2 +#define DRAWFLAG_2XMODULATE 3 + enumflags { AF_RIGHT, diff --git a/src/menu-fn/defs.h b/src/menu-fn/defs.h index 79df8352..1f30ff2a 100644 --- a/src/menu-fn/defs.h +++ b/src/menu-fn/defs.h @@ -15,18 +15,11 @@ */ #include "../client/font.h" +#include "../shared/global.h" var int autocvar_menu_intro = TRUE; var int autocvar__menu_singleplayer; -void -_NSLog(string msg) -{ - if (cvar("g_developer")) - print(sprintf("%f %s\n", time, msg)); -} -#define NSLog(x, ...) _NSLog(sprintf(x, __VA_ARGS__)) - #define KEY_UNKNOWN -1 #define KEY_GAME 0 #define KEY_MENU 2 @@ -37,16 +30,6 @@ _NSLog(string msg) #define DRAWFLAG_ADDITIVE 1 -enumflags -{ - SEARCH_INSENSITIVE, - SEARCH_FULLPACKAGE, - SEARCH_ALLOWDUPES, - SEARCH_FORCESEARCH, - SEARCH_MULTISEARCH, - SEARCH_NAMESORT -}; - /* Basic Menu Globals */ int g_vidsize[2]; int g_menuofs[2]; diff --git a/src/menu-vgui/main.qc b/src/menu-vgui/main.qc old mode 100755 new mode 100644 index 67fe0aaa..f609765e --- a/src/menu-vgui/main.qc +++ b/src/menu-vgui/main.qc @@ -46,7 +46,7 @@ void m_init ( void ) } void -Menu_RendererRestarted(void) +Menu_RendererRestarted(string renderer) { localcmd("menu_restart\n"); Menu_AutoScale(); diff --git a/src/menu-vgui/progs.src b/src/menu-vgui/progs.src old mode 100755 new mode 100644 index d4771522..8e549d39 --- a/src/menu-vgui/progs.src +++ b/src/menu-vgui/progs.src @@ -1,9 +1,11 @@ #pragma target fte -#pragma progs_dat "../../platform/data.pk3dir/menu.dat" +#pragma progs_dat "../../platform/menu.dat" #define MENU #includelist ../shared/fteextensions.qc +../shared/global.h +../client/font.h defs.h ../vgui/include.src @@ -21,4 +23,5 @@ ui_musicplayer.qc ui_modelviewer.qc desktop.qc main.qc +../client/font.qc #endlist diff --git a/src/menu-vgui/ui_modelviewer.qc b/src/menu-vgui/ui_modelviewer.qc old mode 100755 new mode 100644 index 415eb1db..827263fb --- a/src/menu-vgui/ui_modelviewer.qc +++ b/src/menu-vgui/ui_modelviewer.qc @@ -124,7 +124,7 @@ void UI_ModelViewer_Show ( void ) picBackground.FlagRemove( IMAGE_VISIBLE ); } } - static void UI_ModelViewer_Input ( float flEVType, float flKey, float flChar, float flDevID ) { + static float UI_ModelViewer_Input ( float flEVType, float flKey, float flChar, float flDevID ) { static int iMouseDrag = FALSE; static int iShiftDrag = FALSE; static vector vecDragOfs; @@ -135,14 +135,17 @@ void UI_ModelViewer_Show ( void ) if ( flKey == K_MOUSE1 && iMouseOver == TRUE ) { iMouseDrag = TRUE; vecDragOfs = getmousepos(); + return true; } else if ( flKey == K_MWHEELUP && iMouseOver == TRUE ) { vecDistance[0] = bound( 0, --vecDistance[0], 512 ); AngleVectors( viewModel.Get3DAngles() ); viewModel.Set3DPos( v_forward * -vecDistance[0] + v_right * vecDistance[1] + v_up * vecDistance[2] ); + return true; } else if ( flKey == K_MWHEELDOWN && iMouseOver == TRUE ) { vecDistance[0] = bound( 0, ++vecDistance[0], 512 ); AngleVectors( viewModel.Get3DAngles() ); viewModel.Set3DPos( v_forward * -vecDistance[0] + v_right * vecDistance[1] + v_up * vecDistance[2] ); + return true; } else if ( flKey == K_LSHIFT && iMouseOver == TRUE ) { iShiftDrag = TRUE; } @@ -161,6 +164,7 @@ void UI_ModelViewer_Show ( void ) AngleVectors( viewModel.Get3DAngles() ); viewModel.Set3DPos( v_forward * -vecDistance[0] + v_right * vecDistance[1] + v_up * vecDistance[2] ); vecDragOfs = getmousepos(); + return true; } } else if ( iMouseDrag == TRUE && iShiftDrag == TRUE ) { if ( flEVType == IE_MOUSEABS ) { @@ -169,8 +173,10 @@ void UI_ModelViewer_Show ( void ) vecDistance[2] += vecDifference[0]; viewModel.Set3DPos( v_forward * -vecDistance[0] + v_right * vecDistance[1] + v_up * vecDistance[2] ); vecDragOfs = getmousepos(); + return true; } } + return false; } static void UI_ModelViewer_Resize ( void ) { // Resize the background and viewer diff --git a/src/shared/defs.h b/src/shared/defs.h index 563cfd46..5ff21b18 100644 --- a/src/shared/defs.h +++ b/src/shared/defs.h @@ -32,14 +32,7 @@ #define ATTR_CHANGED(x) (x ##_net != x) #define VEC_CHANGED(x,y) (x ##_net[y] != x[y]) -void -_NSLog(string msg) -{ - if (cvar("g_developer") == 1) - print(sprintf("%f %s\n", time, msg)); -} -#define NSLog(x, ...) _NSLog(sprintf(x, __VA_ARGS__)) - +#include "global.h" #include "sound.h" #ifdef CLIENT diff --git a/src/shared/global.h b/src/shared/global.h new file mode 100644 index 00000000..99aab406 --- /dev/null +++ b/src/shared/global.h @@ -0,0 +1,17 @@ +void +_NSLog(string msg) +{ + if (cvar("g_developer") == 1) + print(sprintf("%f %s\n", time, msg)); +} +#define NSLog(x, ...) _NSLog(sprintf(x, __VA_ARGS__)) + +enumflags +{ + SEARCH_INSENSITIVE, + SEARCH_FULLPACKAGE, + SEARCH_ALLOWDUPES, + SEARCH_FORCESEARCH, + SEARCH_MULTISEARCH, + SEARCH_NAMESORT +}; \ No newline at end of file diff --git a/src/vgui/ui.qc b/src/vgui/ui.qc index 6fe4de41..d28b3838 100644 --- a/src/vgui/ui.qc +++ b/src/vgui/ui.qc @@ -62,7 +62,7 @@ class CUIWidget virtual int(void) GetPosHeight; virtual void(void) Draw; virtual void(void) Reposition; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void @@ -124,25 +124,26 @@ void CUIWidget::Draw(void) { CUIWidget wNext = this; - do { - wNext = wNext.m_next; - if (wNext && wNext.m_iFlags & 1 && wNext.m_parent.m_iFlags & 1) { - wNext.Draw(); - } - } while (wNext); -} - -void -CUIWidget::Input(float flEVType, float flKey, float flChar, float flDevID) -{ - CUIWidget wNext = this; - g_vguiWidgetCount = 0; do { wNext = wNext.m_next; if (wNext && wNext.m_iFlags & 1 && wNext.m_parent.m_iFlags & 1) { g_vguiWidgetCount++; - wNext.Input(flEVType, flKey, flChar, flDevID); + wNext.Draw(); + } + } while (wNext); +} + +bool +CUIWidget::Input(float flEVType, float flKey, float flChar, float flDevID) +{ + CUIWidget wNext = this; + + do { + wNext = wNext.m_next; + if (wNext && wNext.m_iFlags & 1 && wNext.m_parent.m_iFlags & 1) { + if (wNext.Input(flEVType, flKey, flChar, flDevID) == true) + return; } } while (wNext); } diff --git a/src/vgui/ui_3dview.qc b/src/vgui/ui_3dview.qc index f6ab7546..97903b15 100644 --- a/src/vgui/ui_3dview.qc +++ b/src/vgui/ui_3dview.qc @@ -35,7 +35,7 @@ class CUI3DView:CUIWidget void(void) CUI3DView; virtual void(void) m_vDrawFunc = 0; - virtual void(float, float, float, float) m_vInputFunc = 0; + virtual float(float, float, float, float) m_vInputFunc = 0; virtual void(void) Draw; virtual vector() GetSize; virtual vector() Get3DPos; @@ -44,8 +44,8 @@ class CUI3DView:CUIWidget virtual void(vector) Set3DPos; virtual void(vector) Set3DAngles; virtual void(void(void)) SetDrawFunc; - virtual void(void(float, float, float, float)) SetInputFunc; - virtual void(float, float, float, float) Input; + virtual void(float(float, float, float, float)) SetInputFunc; + virtual bool(float, float, float, float) Input; }; void @@ -100,7 +100,7 @@ CUI3DView::SetDrawFunc(void(void) vFunc) } void -CUI3DView::SetInputFunc(void(float, float, float, float) vFunc) +CUI3DView::SetInputFunc(float(float, float, float, float) vFunc) { m_vInputFunc = vFunc; } @@ -121,12 +121,12 @@ CUI3DView::Draw(void) renderscene(); } -void +bool CUI3DView::Input(float flEVType, float flKey, float flChar, float flDevID) { if (!m_vInputFunc) { - return; + return false; } - m_vInputFunc(flEVType, flKey, flChar, flDevID); + return m_vInputFunc(flEVType, flKey, flChar, flDevID); } diff --git a/src/vgui/ui_button.qc b/src/vgui/ui_button.qc index 1e5752da..269c1720 100644 --- a/src/vgui/ui_button.qc +++ b/src/vgui/ui_button.qc @@ -46,7 +46,7 @@ class CUIButton:CUIWidget virtual void(vector) SetColor; virtual void(void(void)) SetFunc; virtual void(string) SetExec; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; virtual void(void) Show; virtual void(void) Hide; }; @@ -188,11 +188,13 @@ CUIButton::Draw(void) } } -void +bool CUIButton::Input(float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; + if (!(m_iFlags & BUTTON_VISIBLE)) - return; + return false; if (flEVType == IE_KEYDOWN) { if (flKey == K_MOUSE1) { @@ -200,6 +202,7 @@ CUIButton::Input(float flEVType, float flKey, float flChar, float flDevID) if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { FlagAdd(BUTTON_DOWN); FlagAdd(BUTTON_LASTACTIVE); + ret = true; } } } else if (flEVType == IE_KEYUP) { @@ -209,8 +212,11 @@ CUIButton::Input(float flEVType, float flKey, float flChar, float flDevID) m_vFunc(); if (m_strExec) localcmd(sprintf("%s\n", m_strExec)); + + ret = true; } FlagRemove(BUTTON_DOWN); } } + return (ret); } diff --git a/src/vgui/ui_checkbox.qc b/src/vgui/ui_checkbox.qc index 8826c901..ed73b521 100644 --- a/src/vgui/ui_checkbox.qc +++ b/src/vgui/ui_checkbox.qc @@ -35,7 +35,7 @@ class CUICheckbox:CUIWidget virtual void(string) SetTitle; virtual int(void) GetValue; virtual void(int) SetValue; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUICheckbox::CUICheckbox(void) @@ -107,20 +107,26 @@ void CUICheckbox::Draw(void) } } -void CUICheckbox::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUICheckbox::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; + if (flEVType == IE_KEYDOWN) { if (flKey == K_MOUSE1) { if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= CHECKBOX_DOWN; + ret = true; } } } else if (flEVType == IE_KEYUP) { if (flKey == K_MOUSE1) { if (m_iFlags & CHECKBOX_DOWN && Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { SetValue(!GetValue()); + ret = true; } m_iFlags -= (m_iFlags & CHECKBOX_DOWN); } } + + return (ret); } diff --git a/src/vgui/ui_label.qc b/src/vgui/ui_label.qc index 1385e7b6..acfbb9f0 100644 --- a/src/vgui/ui_label.qc +++ b/src/vgui/ui_label.qc @@ -23,7 +23,7 @@ class CUILabel:CUIWidget virtual void(void) Draw; virtual void(vector) SetSize; virtual void(string) SetTitle; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUILabel::CUILabel(void) @@ -56,6 +56,7 @@ void CUILabel::Draw(void) } } -void CUILabel::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUILabel::Input (float flEVType, float flKey, float flChar, float flDevID) { + return false; } diff --git a/src/vgui/ui_list.qc b/src/vgui/ui_list.qc index 87c17b0c..338160c1 100644 --- a/src/vgui/ui_list.qc +++ b/src/vgui/ui_list.qc @@ -44,7 +44,7 @@ class CUIList:CUIWidget virtual void(void(void)) CallOnScroll; virtual void(void) Draw; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUIList::CUIList(void) @@ -96,8 +96,9 @@ void CUIList::Draw(void) drawresetcliparea(); } -void CUIList::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIList::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret; int iMaxDisplay; int iMouseOver = Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize); iMaxDisplay = bound(0, m_iItemCount, floor(m_vecSize[1] / 20)); @@ -108,16 +109,19 @@ void CUIList::Input (float flEVType, float flKey, float flChar, float flDevID) for (int i = m_iDrawOffset; i < iMaxDisplay + m_iDrawOffset; i++) { if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin + vecOffset, [m_vecSize[0] - 16, 20])) { m_iSelected = i; - return; + ret = true; } vecOffset[1] += 20; } } else if (flKey == K_MWHEELUP && iMouseOver) { SetOffset(m_iDrawOffset - (iMaxDisplay / 4), TRUE); + ret = true; } else if (flKey == K_MWHEELDOWN && iMouseOver) { SetOffset(m_iDrawOffset + (iMaxDisplay / 4), TRUE); + ret = true; } } + return (ret); } void CUIList::SetSize (vector vecSize) diff --git a/src/vgui/ui_listbox.qc b/src/vgui/ui_listbox.qc index 447392fc..affd0682 100644 --- a/src/vgui/ui_listbox.qc +++ b/src/vgui/ui_listbox.qc @@ -31,7 +31,7 @@ class CUIListBox:CUIWidget virtual string(int) GetItem; virtual int(void) GetSelected; virtual void(void) Draw; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUIListBox::CUIListBox(void) @@ -115,8 +115,9 @@ void CUIListBox::Draw(void) } } -void CUIListBox::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIListBox::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; int iMaxDisplay; iMaxDisplay = bound(0, m_iItemCount, floor(m_vecSize[1] / 20)); @@ -126,14 +127,17 @@ void CUIListBox::Input (float flEVType, float flKey, float flChar, float flDevID for (int i = m_iDrawOffset; i < iMaxDisplay + m_iDrawOffset; i++) { if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin + vecOffset, [m_vecSize[0] - 16, 20])) { m_iSelected = i; - return; + ret = true; } vecOffset[1] += 20; } } else if (flKey == K_MWHEELUP) { SetOffset(--m_iDrawOffset); + ret = true; } else if (flKey == K_MWHEELDOWN) { SetOffset(++m_iDrawOffset); + ret = true; } } + return (ret); } diff --git a/src/vgui/ui_menubutton.qc b/src/vgui/ui_menubutton.qc index ac12b32e..74b6a0a9 100644 --- a/src/vgui/ui_menubutton.qc +++ b/src/vgui/ui_menubutton.qc @@ -40,7 +40,7 @@ class CUIMenuButton:CUIWidget virtual void(string) SetTitle; virtual void(string) SetIcon; virtual void(void(void)) SetFunc; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUIMenuButton::CUIMenuButton(void) @@ -101,16 +101,18 @@ void CUIMenuButton::Draw(void) } } -void CUIMenuButton::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIMenuButton::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; + // If we're not ingame if (clientstate() == 2 && !g_background) { if (!(m_iFlags & MBUTTON_SHOWSP)) { - return; + return false; } } else { if (!(m_iFlags & MBUTTON_SHOWOFFLINE)) { - return; + return false; } } @@ -118,6 +120,7 @@ void CUIMenuButton::Input (float flEVType, float flKey, float flChar, float flDe if (flKey == K_MOUSE1) { if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= MBUTTON_DOWN; + ret = true; } } } else if (flEVType == IE_KEYUP) { @@ -126,10 +129,12 @@ void CUIMenuButton::Input (float flEVType, float flKey, float flChar, float flDe if (m_vFunc) { m_vFunc(); } + ret = true; } m_iFlags -= (m_iFlags & MBUTTON_DOWN); } } + return (ret); } void CUIMenuButton::SetSize (vector vecSize) diff --git a/src/vgui/ui_pic.qc b/src/vgui/ui_pic.qc index 1a76ebf0..e81b6c7d 100644 --- a/src/vgui/ui_pic.qc +++ b/src/vgui/ui_pic.qc @@ -33,7 +33,7 @@ class CUIPic:CUIWidget virtual string() GetImage; virtual void(void) Draw; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUIPic::CUIPic(void) @@ -49,8 +49,9 @@ void CUIPic::Draw(void) } } -void CUIPic::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIPic::Input (float flEVType, float flKey, float flChar, float flDevID) { + return false; } void CUIPic::SetSize (vector vecSize) diff --git a/src/vgui/ui_radio.qc b/src/vgui/ui_radio.qc index 14d50feb..0ce834f7 100644 --- a/src/vgui/ui_radio.qc +++ b/src/vgui/ui_radio.qc @@ -37,7 +37,7 @@ class CUIRadio:CUIWidget virtual int(void) GetValue; virtual void(int) SetValue; virtual void(void(void)) SetFunc; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUIRadio::CUIRadio(void) @@ -112,12 +112,15 @@ void CUIRadio::Draw(void) } } -void CUIRadio::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIRadio::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; + if (flEVType == IE_KEYDOWN) { if (flKey == K_MOUSE1) { if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= RADIO_DOWN; + ret = true; } } } else if (flEVType == IE_KEYUP) { @@ -127,8 +130,10 @@ void CUIRadio::Input (float flEVType, float flKey, float flChar, float flDevID) m_vFunc(); } SetValue(TRUE); + ret = true; } m_iFlags -= (m_iFlags & RADIO_DOWN); } } + return (ret); } diff --git a/src/vgui/ui_scrollbar.qc b/src/vgui/ui_scrollbar.qc index f30b9928..ea3133ac 100644 --- a/src/vgui/ui_scrollbar.qc +++ b/src/vgui/ui_scrollbar.qc @@ -50,7 +50,7 @@ class CUIScrollbar:CUIWidget virtual void(void(void)) CallOnChange; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; virtual void(void) Draw; }; @@ -168,8 +168,9 @@ void CUIScrollbar::Draw(void) #endif } -void CUIScrollbar::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIScrollbar::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; vector vecUpPos = m_parent.m_vecOrigin + m_vecOrigin; vector vecDownPos = m_parent.m_vecOrigin + m_vecOrigin + [0, m_iLength - 20]; @@ -177,25 +178,32 @@ void CUIScrollbar::Input (float flEVType, float flKey, float flChar, float flDev if (flKey == K_MOUSE1) { if (Util_MouseAbove(getmousepos(), vecUpPos, [20,20])) { m_iFlags |= SCROLLBAR_UP_DOWN; + ret = true; } else if (Util_MouseAbove(getmousepos(), vecDownPos, [20,20])) { m_iFlags |= SCROLLBAR_DN_DOWN; + ret = true; } } } else if (flEVType == IE_KEYUP) { if (flKey == K_MOUSE1) { if (m_iFlags & SCROLLBAR_UP_DOWN && Util_MouseAbove(getmousepos(), vecUpPos, [20,20])) { SetValue(GetValue() - GetStep(), TRUE); + ret = true; } else if (m_iFlags & SCROLLBAR_DN_DOWN && Util_MouseAbove(getmousepos(), vecDownPos, [20,20])) { SetValue(GetValue() + GetStep(), TRUE); + ret = true; } m_iFlags -= (m_iFlags & SCROLLBAR_UP_DOWN); m_iFlags -= (m_iFlags & SCROLLBAR_DN_DOWN); } else if (flKey == K_MWHEELDOWN && Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, [20, m_iLength])) { SetValue(GetValue() + GetStep(), TRUE); + ret = true; } else if (flKey == K_MWHEELUP && Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, [20, m_iLength])) { SetValue(GetValue() - GetStep(), TRUE); + ret = true; } } + return (ret); } void CUIScrollbar::SetLength (int iLength) diff --git a/src/vgui/ui_slider.qc b/src/vgui/ui_slider.qc index b7ce8282..761f488f 100644 --- a/src/vgui/ui_slider.qc +++ b/src/vgui/ui_slider.qc @@ -29,7 +29,7 @@ class CUISlider:CUIWidget void(void) CUISlider; virtual void(void) Draw; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; virtual void(vector) SetSize; virtual void(string) SetTitle; }; @@ -66,9 +66,9 @@ void CUISlider::Draw(void) } } -void CUISlider::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUISlider::Input (float flEVType, float flKey, float flChar, float flDevID) { - + return false; } void CUISlider::SetSize (vector vecSize) diff --git a/src/vgui/ui_tabview.qc b/src/vgui/ui_tabview.qc index 09ed1cb8..186731b8 100644 --- a/src/vgui/ui_tabview.qc +++ b/src/vgui/ui_tabview.qc @@ -28,7 +28,7 @@ class CUITabView:CUIWidget virtual void(vector) SetSize; virtual vector() GetSize; virtual void(string) SetTitle; - virtual void(float, float, float, float) Input; + virtual float(float, float, float, float) Input; }; void CUITabView::CUITabView(void) @@ -73,6 +73,7 @@ void CUITabView::Draw(void) //Font_DrawText(m_parent.m_vecOrigin + m_vecOrigin + [8, 8], m_strTitle, g_fntDefault); } -void CUITabView::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUITabView::Input (float flEVType, float flKey, float flChar, float flDevID) { + return false; } diff --git a/src/vgui/ui_textbox.qc b/src/vgui/ui_textbox.qc index 9360768f..a6a2dc6a 100644 --- a/src/vgui/ui_textbox.qc +++ b/src/vgui/ui_textbox.qc @@ -35,7 +35,7 @@ class CUITextBox:CUIWidget virtual void(vector) SetSize; virtual void(string) SetText; virtual string() GetText; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUITextBox::CUITextBox(void) @@ -97,13 +97,16 @@ void CUITextBox::Draw(void) } } -void CUITextBox::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUITextBox::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; + if (flEVType == IE_KEYDOWN) { switch (flKey) { case K_MOUSE1 : if (Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= TEXTBOX_DOWN; + ret = true; } break; case K_BACKSPACE: @@ -130,10 +133,13 @@ void CUITextBox::Input (float flEVType, float flKey, float flChar, float flDevID if (flKey == K_MOUSE1) { if (m_iFlags & TEXTBOX_DOWN && Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize)) { m_iFlags |= TEXTBOX_FOCUS; + ret = true; } else { m_iFlags -= (m_iFlags & TEXTBOX_FOCUS); + ret = true; } m_iFlags -= (m_iFlags & TEXTBOX_DOWN); } } + return (ret); } diff --git a/src/vgui/ui_window.qc b/src/vgui/ui_window.qc index 5caa5e62..4dc89d75 100644 --- a/src/vgui/ui_window.qc +++ b/src/vgui/ui_window.qc @@ -63,7 +63,7 @@ class CUIWindow:CUIWidget virtual bool(void) Visible; virtual void(void) Draw; virtual void(void) Hide; - virtual void(float, float, float, float) Input; + virtual bool(float, float, float, float) Input; }; void CUIWindow::CUIWindow(void) @@ -82,7 +82,12 @@ void CUIWindow::CUIWindow(void) m_btnClose = spawn(CUIButton); m_btnClose.SetTitle(__NULL__); m_btnClose.SetIcon("textures/ui/steam/icon_close"); + +#ifdef CLASSIC_VGUI m_btnClose.SetIconColor(m_vecColor); +#else + m_btnClose.SetIconColor([1,1,1]); +#endif m_btnClose.SetColor(m_vecColor); m_btnClose.SetFunc(WindowButtonClose); m_btnClose.SetSize([20,20]); @@ -199,7 +204,7 @@ void CUIWindow::Draw(void) if (m_strTitle) { if (m_strIcon) { Font_DrawText(m_vecOrigin + [26, 8], m_strTitle, g_fntDefault); - drawpic(m_vecOrigin + [4, 4], m_strIcon, [16,16], m_vecColor, 1.0f, 0); + drawpic(m_vecOrigin + [4, 4], m_strIcon, [16,16], [1,1,1], 1.0f, 0); } else { Font_DrawText(m_vecOrigin + [8, 8], m_strTitle, g_fntDefault); } @@ -215,8 +220,10 @@ void CUIWindow::Draw(void) #endif } -void CUIWindow::Input (float flEVType, float flKey, float flChar, float flDevID) +bool CUIWindow::Input (float flEVType, float flKey, float flChar, float flDevID) { + bool ret = false; + if (flEVType == IE_KEYDOWN) { if (flKey == K_MOUSE1) { if (m_iFlags & WINDOW_CANRESIZE && Util_MouseAbove(getmousepos(), m_vecOrigin + (m_vecSize - [16,16]), [16,16])) { @@ -242,6 +249,7 @@ void CUIWindow::Input (float flEVType, float flKey, float flChar, float flDevID) m_vResizeCB(); } } + ret = true; } else if (m_iFlags & WINDOW_DRAGGING) { if (flEVType == IE_MOUSEABS) { vector vNewPos = [flKey, flChar] - m_vecOrigin; @@ -251,5 +259,7 @@ void CUIWindow::Input (float flEVType, float flKey, float flChar, float flDevID) m_vMoveCB(); } } + ret = true; } + return (ret); }