*** This forum was active till April, 2021. Now it is read-only, please use the New forum! ***

+  AChat Forum
|-+  Support
| |-+  Templates (Moderators: Lover, Brandybee, jayc, Nat33)
| | |-+  A Basic Introduction To Updating The AChat GUI
« previous next »
: [1] 2
: A Basic Introduction To Updating The AChat GUI  ( 26244 )
AnnieMay
Newbie
*
: 31


« : March 08, 2013, 11:46:27 AM »

The GUI is made up of two parts. You have .win and .dds. And can be located in the folder "\AppData\Local\AChat\GUI"

.win file can be opened in any regular text editor. Its just text.

.dds will need a plugin for your favorite graphics editor. Links to them are below.


    .dds for GIMP : http://registry.gimp.org/node/70
    .dds for PS/Corel : https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop


In this simple introduction I will only explain a edit made to "a_volume02.win". This is an example only. Not a intended change. Though it could be with work, or desire for change.

Sample Structure:

Code: [Select]
BEGIN
TITLE 553
X0 240
Y0 85
WIDTH 398
HEIGHT 318
DEFAULT_FONT_COLOR 0xffffffff
OPTIONS 0x00000344
END

*************close
BEGIN
TYPE BUTTON
OBJID 0
X0 383
Y0 -16
WIDTH 10
HEIGHT 10
PICTURE GUI\02_close
END

********sound
BEGIN
TYPE TEXT
OBJID 0
X0 20
Y0 5
WIDTH 0
HEIGHT 0
SELECTABLE FALSE
FONT_COLOR 0xffffcc00
TEXT Sound
FONT_SIZE 20
END

********_bar1
BEGIN
TYPE BAR
TEXT 554
OBJID 1
X0 41
Y0 47
WIDTH 140
HEIGHT 12
FONT_SIZE 17
VAL1_COLOR 0xd0800000
VAL2_COLOR 0xd0800000
VAL3_COLOR 0xd0ff2020
VAL4_COLOR 0xd0ff2020
BLINK FALSE
END

********_increase_volume
BEGIN
TYPE BUTTON
OBJID 11
X0 178
Y0 46
WIDTH 25
HEIGHT 15
TEXT +
TEXT_X0 0
TEXT_Y0 -4
FONT_SIZE 23
PICTURE GUI\02_invisible
TEXT_OVER_COLOR 0xffff0000
OPTION OP_EATCLICK
END

********_decrease_volume
BEGIN
TYPE BUTTON
OBJID 12
X0 21
Y0 45
WIDTH 25
HEIGHT 15
TEXT -
TEXT_X0 0
TEXT_Y0 -5
FONT_SIZE 23
PICTURE GUI\02_invisible
TEXT_OVER_COLOR 0xffff0000
OPTION OP_EATCLICK
END

********_bar2
BEGIN
TYPE BAR
TEXT 555
OBJID 2
X0 222
Y0 47
WIDTH 145
HEIGHT 12
FONT_SIZE 17
VAL1_COLOR 0xd0800000
VAL2_COLOR 0xd0800000
VAL3_COLOR 0xd0ff2020
VAL4_COLOR 0xd0ff2020
BLINK FALSE
END

********_increase_volume
BEGIN
TYPE BUTTON
OBJID 21
X0 364
Y0 46
WIDTH 25
HEIGHT 15
TEXT +
TEXT_X0 0
TEXT_Y0 -4
FONT_SIZE 23
PICTURE GUI\02_invisible
TEXT_OVER_COLOR 0xffff0000
OPTION OP_EATCLICK
END

********_decrease_volume
BEGIN
TYPE BUTTON
OBJID 22
X0 202
Y0 45
WIDTH 25
HEIGHT 15
TEXT -
TEXT_X0 0
TEXT_Y0 -5
FONT_SIZE 23
PICTURE GUI\02_invisible
TEXT_OVER_COLOR 0xffff0000
OPTION OP_EATCLICK
END

********graphics
BEGIN
TYPE TEXT
OBJID 0
X0 20
Y0 80
WIDTH 0
HEIGHT 0
SELECTABLE FALSE
FONT_COLOR 0xffffcc00
TEXT Graphics
FONT_SIZE 20
END

********_advanced_shader
BEGIN
TYPE CHECKBOXGROUP
OBJID 30
X0 12
Y0 105
WIDTH 180
HEIGHT 15
HELPTEXT 572
MODE CHECKBOX
CHECKED_BOX_TEX GUI\02_radio_button_s.ate
UNCHECKED_BOX_TEX GUI\02_radio_button_uns.ate
CHECK_TEXT_DIST 6
CHECK_SIZE 9
CHECK_DELTA_Y 3
ITEM_START_X 20
ITEM_START_Y 0
ITEM_COL_DIST 55
CAPTION1 569
VALUE1 0
COLNUMBER -1
TITLE_COLOR 0xffffffff
TITLE_SIZE 17
ITEM_COLOR 0xffffffff
ITEM_SIZE 17
OPTION OP_RIGHTALIGN
END

****low_high_detail
*BEGIN
TYPE TEXT
OBJID 0
X0 199
Y0 145
WIDTH 0
HEIGHT 0
SELECTABLE FALSE
TEXT 571
OPTION OP_CENTERED
END

*BEGIN
TYPE TEXT
OBJID 0
X0 199
Y0 165
WIDTH 0
HEIGHT 0
SELECTABLE FALSE
TEXT 572
OPTION OP_CENTERED
END

BEGIN
TYPE BUTTON
OBJID 31
HELPTEXT 571
X0 220
Y0 102
WIDTH 99
HEIGHT 22
TEXT_X0 6
TEXT_Y0 3
TEXT 573
FONT_SIZE 16
TEXT_OUT_COLOR 0xffffffff
TEXT_OVER_COLOR 0xffffffff
TEXT_DOWN_COLOR 0xffffffff
PICTURE GUI\02_button-L
END

********state
BEGIN
TYPE TEXT
OBJID 0
X0 20
Y0 155
WIDTH 0
HEIGHT 0
SELECTABLE FALSE
FONT_COLOR 0xffffcc00
TEXT State
FONT_SIZE 20
END

********_busy_type
BEGIN
TYPE CHECKBOXGROUP
OBJID 6
X0 32
Y0 176
WIDTH 20
HEIGHT 160
MODE RADIO
BACKGROUND_COLOR 0x00000000
CHECKED_RADIO_TEX GUI\02_radio_button_s.ate
UNCHECKED_RADIO_TEX GUI\02_radio_button_uns.ate
CHECK_SIZE 9
CHECK_DELTA_Y 3
ITEM_START_X 0
ITEM_START_Y 2
CHECK_TEXT_DIST 10
OBJNAME reason
TITLE _
CAPTION1 590
VALUE1 1
CAPTION2 591
VALUE2 2
CAPTION3 592
VALUE3 3
COLNUMBER 1
TITLE_COLOR 0xffffffff
TITLE_SIZE 17
ITEM_COLOR 0xffffffff
ITEM_SIZE 17
ITEM_ROW_DIST 20
END

************background
BEGIN
TYPE IMAGE
OBJID 0
X0 1
Y0 70
WIDTH 396
HEIGHT 5
SELECTABLE FALSE
COLOR 0x95555555
TEXTURE GUI\white_solid
END

BEGIN
TYPE IMAGE
OBJID 0
X0 1
Y0 0
WIDTH 396
HEIGHT 70
SELECTABLE FALSE
COLOR 0x95333333
TEXTURE GUI\white_solid
END

BEGIN
TYPE IMAGE
OBJID 0
X0 1
Y0 145
WIDTH 396
HEIGHT 5
SELECTABLE FALSE
COLOR 0x95555555
TEXTURE GUI\white_solid
END

BEGIN
TYPE IMAGE
OBJID 0
X0 1
Y0 75
WIDTH 396
HEIGHT 70
SELECTABLE FALSE
COLOR 0x95333333
TEXTURE GUI\white_solid
END

BEGIN
TYPE IMAGE
OBJID 0
X0 1
Y0 240
WIDTH 396
HEIGHT 5
SELECTABLE FALSE
COLOR 0x95555555
TEXTURE GUI\white_solid
END

BEGIN
TYPE IMAGE
OBJID 0
X0 1
Y0 150
WIDTH 396
HEIGHT 90
SELECTABLE FALSE
COLOR 0x95333333
TEXTURE GUI\white_solid
END

*********************_OK_********************
BEGIN
TYPE BUTTON
OBJID 9
X0 172
Y0 273
WIDTH 56
HEIGHT 22
TEXT 212
TEXT_X0 20
TEXT_Y0 3
FONT_SIZE 16
PICTURE GUI\02_button-s
END



Sample Window:


Now have I ever worked with editing .win files .. no. Do I like to script and program .. yes. The structure is like a very crude xml. I have also found that while .xml should have been used .win was used instead. In the creation of a GUI. That means a lot of features .win files will not support, such as embeding. One my loves for .xml is the ability to embed other .xml into one .xml. Well anyways on to more things ..

* BEGIN is the start of a given element and END is the close. Open and close tags if you will.
* TITLE references the elements name. It can be named here like "MyTitle" or pulled from "\AppData\Local\AChat\prog_data\texts".
* X0 & Y0 defines where the element will be placed within the window.
* WIDTH & HEIGHT is reflective of their given names for the element.
* SELECTABLE is a reference to whether or not the element is selectable (TRUE / FALSE)
* FONT_COLOR uses 8 digits which represent opacity then hex color. IE 95333333 would be 95 opacity with a color of 333333. For solid use ff. Using earlier example would be ff333333.
* FONT_SIZE is reflective of its name.
* DEFAULT_FONT_COLOR is the base color to be used for the element.
* TYPE is the element type from button,bar,text etc
* HELPTEXT is the mouseover text displayed for the element. See TITLE.
* TEXT is the text to use for an element. See TITLE.
* TEXTURE is the .dds texture to use for the element.
* PICTURE see TEXTURE.

And more ... While I could go down the line for everything, this is just to get people a bit more familiar with it. Now as far as ID's go .. I haven't fully gathered which elements are localized or globalized variables. It seems many are localized. Thus if you place a element from one form to another. It will cause a sort of unlinking. Unless there is a globalized reference to items as well, still looking into that. And doing so via the text files and learning. Not by interfering or reversing code. I find learning how something does something, to be fun.

In the end please expand, edit, remove any and all information as it becomes clearer to you or others. It allows people to have a correct reference point in editing the GUI.
« : March 08, 2013, 03:54:17 PM AnnieMay »
Lover
Moderator
Hero Member
*****
: 10350



« #1 : March 08, 2013, 11:54:00 AM »

Thanks for a more detailed instruction Annie.

Would you mind if I move this to Support/templates? Perhaps we get more ideas and help and then we have one single board for it.

AnnieMay
Newbie
*
: 31


« #2 : March 08, 2013, 11:57:35 AM »

Thanks for a more detailed instruction Annie.

Would you mind if I move this to Support/templates? Perhaps we get more ideas and help and then we have one single board for it.
Sure hun. =)  I figure even if they are .win files least it gives us something to modify on a GUI scale. And could potentially allow for many diffent people to make their own skinned versions of the AChat interface.

On a side note I want to do a version of the GUI myself as I get more time. Currently that would be fairly slow. I have many ideas on how to do a re-design. I am a digital painter as well as a scripter/programmer. All of them self taught. So don't think I'm amazing. -heh- Though I do have an AA for when I used to do graphic design. Only schooling I really had ..
« : March 08, 2013, 12:17:29 PM AnnieMay »
AnnieMay
Newbie
*
: 31


« #3 : March 08, 2013, 04:03:16 PM »

I was just thinking to myself here. If a great many of the variables are localized. This would then greatly hinder the capacity to how they are used. In that they can only ever exist in the form they were localized to. And placement anywhere else would only see a unlinking, or inactive element. While this still would allow for GUI restructuring. It would hinder the ability of a modder to come up with better ways to manage elements or sets of elements. That enabling them on a globalized scale would do.

With that said I would hope the Achat developers would globalize a set of variables for modders to use. Maybe even afford modders a list of globalized variables. Along with the localized variables and to what windows they exist within. This would greatly take the guess work out for modders, and allow a sort of list  of things they can play with functionally.

The other thing being the following. While I do know how to do graphics and the like on a visual scale. If there is to be a modded AChat. It should be developed in part as a community mod. I will then say I will opt to assist with editing the .win files.

Roles for a mod would include (not a complete list) :
* Someone to edit and design elements into .win file(s)
    - An easier way would to assign a few modders to this task. Giving each one specific .win files in which they are to manage.
* Someone to edit and design .dds elements in a graphics editor
    - Understanding of design is also key when doing graphics.
* Someone to edit and design workable layouts using both .dds and .win files.
    - They do not mod the .win files. Only figure out ways to put it all together, and know it will work. knowledge of .win structure is helpful.
    - Simply someone who designs a layout and tells the modders who do the .win edits or .dds graphics this is what they want, and get to it =).

« : March 08, 2013, 04:15:43 PM AnnieMay »
Lover
Moderator
Hero Member
*****
: 10350



« #4 : March 08, 2013, 04:13:12 PM »

I will send your ideas and this link to the A-Team. Perhaps they don't want it, as there is also the danger of hiding virus or trojan or just making it instable. But perhaps they like the idea and say "Great, let's do it!" We'll see.

AnnieMay
Newbie
*
: 31


« #5 : March 08, 2013, 04:18:31 PM »

I will send your ideas and this link to the A-Team. Perhaps they don't want it, as there is also the danger of hiding virus or trojan or just making it instable. But perhaps they like the idea and say "Great, let's do it!" We'll see.
You can't hide a virus in a plain text file. Now .dds can as soon as it is opened. If its a community mod, before its made public for available download. It can be checked by the modders as well as staff. Before making its way to the end user. The only way they could stop modding of AChat is to redo their entire source in a completely different structure. And as much work as I have seen thus far. That may be more time then they are willing to invest. Even nesting these files into the application would still cause them to be plain text in a executable, it would not be compiled. Though frankly I hope they leave it as they have it. And allow people the freedom to mod it. There are many softwares where modding is openly welcomed and accepted. And feel Achat should be happy someone would take time and effort to say "hey this is a version of AChat, what do you think?" And to shy away from a idea because a "virus could be added", then nothing on the internet would really, if ever, be shared. That is why you check whats submitted, you check and re-check if needed, you then mark it safe. Place it on a server for download and say its been tested for viruses. And then also place a notice that the end user should always have a current virus scanner installed. Not because they should trust the download less, but that they should always keep themselves safe.

And with any community mod. Forgive my noting here only doing so if you are unaware. A community mod is a mod done by the community for a project. Often reviewed by the developers of a product. And determined if it should be supported by them. Otherwise a modded application will say something like "unofficial or unsupported mod". I'd very much like this one to be a "supported mod". Which means the developers and future modders would work together. Developers only in ways to allowing and telling modders what they want. And modders to be their creative selves in working with what they are given.

If modding was such a bad thing. You would not have community maps to favorite games you may like. Community mods to games you like, like say a "Christmas Mod". You would be without a themed variant to many applications and games, SecondLife, Mozilla (Firefox), World of Warcraft via LUA, even your phones allow modders. Modders actually are often used by companies as free labor and ideas -heh-, that they are. Because a mod might later be a standard within that application.

As far as modding AChat what is allowed and not allowed is all based on the localization or globalization of the used variables. If a variable is not wanting to be used outside a form. Localizing it means it'll only ever remain effective in the given form. All you would be able to do is pretty that form up as a modder. Globalizing a variable would allow further edits. Though as mentioned before thats entirely in Achat developer control.
« : March 08, 2013, 04:38:04 PM AnnieMay »
AnnieMay
Newbie
*
: 31


« #6 : March 08, 2013, 04:51:57 PM »

Just a little side bit. =)

"... some companies actively encourage modding of their products. In cases such as TiVo and Google, there has been an informal agreement between the modders and the company in which the modders agree not to do anything that destroys the company's business model and the company agrees to support the modding community by providing technical specifications and information. Some commercial video games thrive through a modding community. In the case of Half-Life, a mod called Counter-Strike drove sales of the original software for years."

That is exactly the sort of community mod I am speaking of. A mod directly connected between AChat developers and a community. Working together to make something better. Together.
Lover
Moderator
Hero Member
*****
: 10350



« #7 : March 08, 2013, 04:52:50 PM »

You don't have to convince me. I believe, I know that giving access to special people IS helpful for games, software and programs. What we're doing in forum is not very different, just we don't do the implementation.
We collect and bundle ideas - like a think tank. Then there is the other side - the programmers. Usually in compare to the user they do have the know how but not the ideas ;)

Best is to have symbiosis - both "fertilize" each other and the outcome is great.

AnnieMay
Newbie
*
: 31


« #8 : March 08, 2013, 04:55:44 PM »

You don't have to convince me. I believe, I know that giving access to special people IS helpful for games, software and programs. What we're doing in forum is not very different, just we don't do the implementation.
We collect and bundle ideas - like a think tank. Then there is the other side - the programmers. Usually in compare to the user they do have the know how but not the ideas ;)

Best is to have symbiosis - both "fertilize" each other and the outcome is great.

Mhms I agree dear, as my post above also says. I want it to be done together. And it is possible. Even my sample shows a tiny bit of what can be done. I have done more than this when modding it as I was learning. I also learned some variables may be localized to a form and not accessable to another. Or that it has a internal reference that would be hard to guess. Thats where the developer comes in saying hey thats , so and so. Or hey I'll add it in globally and see what you can do. =)
stray
Sr. Member
****
: 494


Girl, 20 yrs old, bisex


« #9 : May 10, 2013, 02:12:05 PM »

Hi there, could someone show me how to make the chat window darker? I've problems to see few letters on particular backgrounds.. ^^


I go from bed to bed looking for bones, as every stray does ::)
old_goat
Sr. Member
****
: 450



« #10 : May 10, 2013, 08:02:31 PM »

I would like to see an option to help a red/green colorblind person with the gui.
the status indicator is useless.
i can take 3d glasses and tell the difference by closing one eye then the other.
PLEASE.

stray
Sr. Member
****
: 494


Girl, 20 yrs old, bisex


« #11 : May 11, 2013, 01:11:43 AM »

you should tell this to A-Team with a support ticket I thought


I go from bed to bed looking for bones, as every stray does ::)
Lover
Moderator
Hero Member
*****
: 10350



« #12 : May 11, 2013, 03:28:14 PM »

Stray, there is no way to make the chat window darker. You only can use your own settings but i'm sure you know it.

stray
Sr. Member
****
: 494


Girl, 20 yrs old, bisex


« #13 : May 11, 2013, 03:50:12 PM »

Oh, ok thanks.


I go from bed to bed looking for bones, as every stray does ::)
AnnieMay
Newbie
*
: 31


« #14 : July 12, 2013, 12:02:27 AM »

I have been away for a bit. And was looking in past threads I replied in. It is very possible to change the chat window color. As far as within the program itself .. no. Though, through edits yes you can. You would just need to find the applicable file. then change the supplied color to a more prefered. Save and done. Though its always best to work with a copy. Just to be sure if anything blows up, you can revert.

I think the reason why few know this. Is that few care to mod. Though Achats interface is completely modable. And if it makes it easier for you a good reason to do it.

You can try yourself, or when I can I can look for you. Though, may be some time as I am busy.
« : July 12, 2013, 12:06:30 AM AnnieMay »
: [1] 2  
« previous next »
: