Skip to content

Commit 458c214

Browse files
authored
chore(gui): Implement function GadgetTextEntrySetMaxLen() (TheSuperHackers#2290)
1 parent d5bfa6e commit 458c214

6 files changed

Lines changed: 32 additions & 2 deletions

File tree

Generals/Code/GameEngine/Include/GameClient/GadgetTextEntry.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ inline void GadgetTextEntrySetText( GameWindow *g, UnicodeString text )
6969
TheWindowManager->winSendSystemMsg( g, GEM_SET_TEXT, (WindowMsgData)&text, 0 );
7070
}
7171
extern UnicodeString GadgetTextEntryGetText( GameWindow *textentry ); ///< Get the text from the text entry field
72+
extern void GadgetTextEntrySetMaxLen( GameWindow *g, Short length );
7273
extern void GadgetTextEntrySetFont( GameWindow *g, GameFont *font ); ///< set font for window and edit text display strings
7374
inline void GadgetTextEntrySetTextColor( GameWindow *g, Color color )
7475
{

Generals/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetTextEntry.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,3 +582,17 @@ UnicodeString GadgetTextEntryGetText( GameWindow *textentry )
582582
return result;
583583

584584
}
585+
586+
//=============================================================================
587+
void GadgetTextEntrySetMaxLen( GameWindow *g, Short length )
588+
{
589+
if( g == nullptr )
590+
return;
591+
592+
EntryData *data = static_cast<EntryData *>( g->winGetUserData() );
593+
594+
if( length > ENTRY_TEXT_LEN )
595+
length = ENTRY_TEXT_LEN;
596+
597+
data->maxTextLen = length;
598+
}

Generals/Code/GameEngine/Source/GameClient/GUI/GameWindowManager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2705,7 +2705,7 @@ GameWindow *GameWindowManager::gogoGadgetTextEntry( GameWindow *parent,
27052705
entryData->charPos = 0;
27062706
entryData->conCharPos = 0;
27072707
entryData->receivedUnichar = FALSE;
2708-
if( entryData->maxTextLen >= ENTRY_TEXT_LEN )
2708+
if( entryData->maxTextLen > ENTRY_TEXT_LEN )
27092709
entryData->maxTextLen = ENTRY_TEXT_LEN;
27102710

27112711
// allocate entry data

GeneralsMD/Code/GameEngine/Include/GameClient/GadgetTextEntry.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ inline void GadgetTextEntrySetText( GameWindow *g, UnicodeString text )
6969
TheWindowManager->winSendSystemMsg( g, GEM_SET_TEXT, (WindowMsgData)&text, 0 );
7070
}
7171
extern UnicodeString GadgetTextEntryGetText( GameWindow *textentry ); ///< Get the text from the text entry field
72+
extern void GadgetTextEntrySetMaxLen( GameWindow *g, Short length );
7273
extern void GadgetTextEntrySetFont( GameWindow *g, GameFont *font ); ///< set font for window and edit text display strings
7374
inline void GadgetTextEntrySetTextColor( GameWindow *g, Color color )
7475
{

GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetTextEntry.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,3 +582,17 @@ UnicodeString GadgetTextEntryGetText( GameWindow *textentry )
582582
return result;
583583

584584
}
585+
586+
//=============================================================================
587+
void GadgetTextEntrySetMaxLen( GameWindow *g, Short length )
588+
{
589+
if( g == nullptr )
590+
return;
591+
592+
EntryData *data = static_cast<EntryData *>( g->winGetUserData() );
593+
594+
if( length > ENTRY_TEXT_LEN )
595+
length = ENTRY_TEXT_LEN;
596+
597+
data->maxTextLen = length;
598+
}

GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GameWindowManager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2705,7 +2705,7 @@ GameWindow *GameWindowManager::gogoGadgetTextEntry( GameWindow *parent,
27052705
entryData->charPos = 0;
27062706
entryData->conCharPos = 0;
27072707
entryData->receivedUnichar = FALSE;
2708-
if( entryData->maxTextLen >= ENTRY_TEXT_LEN )
2708+
if( entryData->maxTextLen > ENTRY_TEXT_LEN )
27092709
entryData->maxTextLen = ENTRY_TEXT_LEN;
27102710

27112711
// allocate entry data

0 commit comments

Comments
 (0)