Menu-VGUI: Fix up, change Input() method to block input from other widgets
This commit is contained in:
parent
5f3570f140
commit
db97db6820
23 changed files with 150 additions and 90 deletions
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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];
|
||||
|
|
2
src/menu-vgui/main.qc
Executable file → Normal file
2
src/menu-vgui/main.qc
Executable file → Normal file
|
@ -46,7 +46,7 @@ void m_init ( void )
|
|||
}
|
||||
|
||||
void
|
||||
Menu_RendererRestarted(void)
|
||||
Menu_RendererRestarted(string renderer)
|
||||
{
|
||||
localcmd("menu_restart\n");
|
||||
Menu_AutoScale();
|
||||
|
|
5
src/menu-vgui/progs.src
Executable file → Normal file
5
src/menu-vgui/progs.src
Executable file → Normal file
|
@ -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
|
||||
|
|
8
src/menu-vgui/ui_modelviewer.qc
Executable file → Normal file
8
src/menu-vgui/ui_modelviewer.qc
Executable file → Normal file
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
17
src/shared/global.h
Normal file
17
src/shared/global.h
Normal file
|
@ -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
|
||||
};
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue