UWindow maker with GUI

Discussions about everything else
Post Reply
UT99.org

UWindow maker with GUI

Post by UT99.org »

billybill wrote:This is a request thread, because I don't recall seeing something like this before. This is no biggie if none exists but would save a lot of time.

I am looking for some kind of windows program that will give me a GUI with all the different types of Controls on the side that I can place onto a makeshift UWindow which I can then export to something usable from within a mod

I've made similar ones (to UWindows) years ago, they are not particulary hard. BUT, the amount of opening the game to test I put something in the right place or got the measurements right it is really time consuming

If nothing exists and you have a good knowledge of a visual language PLEASE do us all a huge favour! Thank you in advance
User avatar
Feralidragon
Godlike
Posts: 5493
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: UWindow maker with GUI

Post by Feralidragon »

Well... I built something like a new system to make the creation of menus extremely easy for NW3 (1 min it's all it takes to setup one, and even less to add more elements to it), but it's mostly aimed for the Mod menu, although it can be easily cast from anywhere else in the code.
However, instead of a GUI, I build the menus like this there (example):

Main menu container and entry on the Mod menu:

Code: Select all

class NWServerSettingsMainModMenuInfo expands NWMainModMenuInfo;

defaultproperties
{
	bUniqueMainMenu=True
	bSizableMainMenuW=False
	bSizableMainMenuH=True
	bCenterMainMenu=True
	MainMenuCaption="Nali Weapons 3 Gameplay Settings"
	MainMenuHelp="Nali Weapons 3 gameplay settings to adjust damage, balance, weapons, etc"
	MainMenuTitle="Nali Weapons 3 - Gameplay Settings"
	bMainMenuPosPercentageX=False
	bMainMenuPosPercentageY=False
	bMainMenuSizePercentageW=False
	bMainMenuSizePercentageH=True
	MainMenuPosX=0.000000
	MainMenuPosY=0.000000
	MainMenuSizeW=300.000000
	MainMenuSizeH=0.750000
	MainMenuMinSizeW=300.000000
	MainMenuMinSizeH=0.250000
}
And within the menu, you can add the tabs with the settings:

Code: Select all

class NWServerGenericSettingsMenuPageInfo expands NWMenuPageInfo;


static function string GetDefaultValue(byte i, optional byte advIndex)
{
	if (i == 0)
		return String(Class'NaliWeapons'.default.MaxTraceRange);
	if (i == 1)
		return String(Class'NaliPickups'.default.enableTeamBasedEffect);
	return "";
}

static function string ProcessSettingsChange(PlayerPawn P, byte i, string val, optional byte advIndex)
{
	if (i == 0)
	{
		Class'NaliWeapons'.default.MaxTraceRange = Int(val);
		Class'NaliWeapons'.static.StaticSaveConfig();
	}
	else if (i == 1)
	{
		Class'NaliPickups'.default.enableTeamBasedEffect = Bool(val);
		Class'NaliPickups'.static.StaticSaveConfig();
	}
	return val;
}


defaultproperties
{
	ModMenuInfoClass=Class'NWServerSettingsMainModMenuInfo'
	PageTitle="Generic"
	
	SettingsList(0)=(Description="Hitscan max range")
	SettingsList(0)=(HelpTip="Max range of a hitscan weapon")
	SettingsList(0)=(Type=ST_IntegerInput,MaxChars=6)
	
	SettingsList(1)=(Description="Enable pickups team GFX")
	SettingsList(1)=(HelpTip="Enable team colored pickup effects")
	SettingsList(1)=(Type=ST_Checkbox,BottomMargin=20.000000)
}
There are several kinds of element types, all self-explanatory I think:
ST_Checkbox, ST_Input, ST_IntegerInput, ST_FloatInput, ST_Slider, ST_Combo, ST_Color, ST_Profile, ST_Label; (for instance the ST_Color one is a new control altogether with RGB sliders, a combo with preset colors and a customizable icon to see the current color)

And each element has different options:
localized string Description; //Description (or input caption)
localized string HelpTip; //Help tip (the help text that appears when you hover the mouse over a setting)
ESettingType Type; //The type as mention above (ST_Checkbox, ST_Input, etc...)
int MaxChars; //Max chars in case of a text/numeric input (it also auto resizes depending on the number of allowed characters)
float BottomMargin; //Amount of pixels of space before the next element (good to separate sections of settings within the same tab)
int MinSliderVal, MaxSliderVal, SliderStep, SliderSize, SliderTrackSize; //Only used for ST_Slider
texture ColorTex; //Color icon/texture to be used when the type is ST_Color
class<NWProfile> ProfileClass; //Profile class to affect in case of ST_Profile
bool hasAdvanced; //Has advanced button to open another menu
localized string AdvancedText; //Advanced button text
class<NWMainModMenuInfo> AdvancedMenuInfoClass; //Advanced menu class to open when the button is pressed

And finally, the .int entries:

Code: Select all

Object=(Name=NWCoreV3.NWServerSettingsModMenuItem,Class=Class,MetaClass=UMenu.UMenuModMenuItem)
Object=(Name=NWCoreV3.NWServerGenericSettingsMenuPageInfo,Class=Class,MetaClass=NWCoreV3.NWMenuPageInfo)
This menu system is highly based on .int entries, so you can add more elements to a tab or more tabs into a menu using .int files alone (let's say you release mod A, and then mod B which is an expansion to mod A and therefore has some extra settings, but you don't want to create a new menu entry, instead you want to add a tab or elements to the mod A existing ones).

This is not GUI based like you're asking, but makes menu creation extremely easy and very very straightforward (I built this menu system exactly because I know the extreme pain to create UWindows, and I wouldn't survive adding all those NW3 settings to menus if I had to deal with UWindows directly)...

I am not sure if you want to look into these, but in case you do, once I finish the documentation part on the menus, I can post a chunk of it here for you to start to explore it, or you can start checking the NWMenuPageInfo and the NWMainModMenuInfo classes and some menus using them (like NWServerGenericSettingsMenuPageInfo, NWServerWeaponSettingsMenuPageInfo and NWClientWeaponSettingsMenuPageInfo), and you can extract the whole set of menu classes to do your own .
I wasn't joking when I said before that the NW3 core can be used like a mini-SDK for new mods... and I am going to extract many of its features into smaller independent packs later on.
Torax
Adept
Posts: 406
Joined: Fri Apr 20, 2012 6:38 pm
Personal rank: Master of Coop
Location: Odessa, Ukraine

Re: UWindow maker with GUI

Post by Torax »

Wow its interesting:) i'm new to UWindows and with time will need to work with them
Unreal. Alter your reality..forever...
User avatar
Wises
Godlike
Posts: 1089
Joined: Sun Sep 07, 2008 10:59 am
Personal rank: ...

Re: UWindow maker with GUI

Post by Wises »

some more info on this topic I guess; here

and also whatever this is?.. UnrealXP110
User avatar
Dr.Flay
Godlike
Posts: 3347
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: UWindow maker with GUI

Post by Dr.Flay »

UnrealXP110 is part of Wormo's essential UT addons "GUI Extensions" (I can't live without them)

Medor may host the files but not the info.
http://www.koehler-homepage.de/Wormbo/G ... sions.html
Wormbo knows his way around UWindow :D
UT99.org

Re: UWindow maker with GUI

Post by UT99.org »

medor wrote:I ave it since 2009 http://unrealtournament.99.free.fr/utfi ... xtensions/

I can joint info to the files if you want
UT99.org

Re: UWindow maker with GUI

Post by UT99.org »

billybill wrote:This is just the start but tell me how it looks so far. Nothing is perfect but as stated it is a start. The aim is to save people some time and I think it will accomplish this. Once I get the numbers more accurate!

before
before
before
after
pic2.jpg
-=SoP=-axewound
Average
Posts: 63
Joined: Wed Apr 30, 2008 9:17 pm

Re: UWindow maker with GUI

Post by -=SoP=-axewound »

Looks great! Are the controls drag and drop or do you position elements using coordinates in the properties browser?
Image
UT99.org

Re: UWindow maker with GUI

Post by UT99.org »

billybill wrote:dialog studio is drag and drop lets you re-position, resize, change text as you would expect. I'm really starting from scratch here with UWindows so I am new to the scaling and positioning, took me a while to get the editboxes right now working on checkboxes. So the radio boxes part of UExtensions? If I can add some dll functionality to this it would bring some more life into UWindows. Something like MDX or DCX did for mIRC, I'll bet people would use them a lot more
User avatar
Wildcard
Average
Posts: 50
Joined: Fri Sep 09, 2011 9:06 pm
Personal rank: Admin Wizard
Contact:

Re: UWindow maker with GUI

Post by Wildcard »

This is an especially interesting topic for me right now. I'm getting very interested in GUI and plan on pumping out a lot of new projects with features similar to UWindows. One goal of mine would be the ability to create a UWindow without actually creating a class for it but rather have it be built at runtime and just have it modify a few configurable variables that can be swapped out (SetPropertyText)I'll keep tuned into this topic! having a visual system for making interfaces would be a great leap for UT Devs. :)
Image
UT99.org

Re: UWindow maker with GUI

Post by UT99.org »

billybill wrote:I'll try finish it this month. I probably should have used the visual basic windows that you can construct within microsoft office programs words etc. The reason I chose mIRC was that after building a basic window maker (converter code) i could then see if I can make even more features using dlls

What you mention wouldn't be hard at all, making one window class and having the options set by variables. I mean it would be harder if you were trying to change placement of the items within the UWindow but text labels and options that would be child stuff very easy and straight forward. It probably is true that there is a lack of UWindows in mods because a tool like this doesn't exist, I will get a workable release out by finishing what I started although I do want to drop the mIRC part as soon as possible, maybe I should learn a visual language :P
User avatar
UTDeath
Skilled
Posts: 248
Joined: Sat Apr 20, 2013 11:35 pm
Personal rank: Tournament Champion.
Location: Mexico.

Re: UWindow maker with GUI

Post by UTDeath »

I actually like the original windows and look of UT a lot, the Metal theme at least.
You cannot kill what is already dead.
Post Reply