So for the past few days I've basically been driving myself crazy trying to learn how windows function, and what they can and cannot do. I'm starting to understand some really basic stuff, but overall I have no idea what I'm doing. I have a number of questions, and after several days of research and trying to backwards engineer existing code I can't find answers that work for me. This may be my fault, but I figured this would be a better way to approach this. I will try to be as concise as I can; I do tend to ramble.
I made a mockup of the kind of functions I want this menu to have. Please forgive how hideous it is, I just wanted to get something visual made so that I could hopefully figure this out.
Mockup

Parts of it are actually a screenshot, because I've been trying to put this together in the code, but the buttons were all edited on to the screenshot afterwards.
Here is basically how I have it put together. I probably did it entirely wrong. (I'm also aware that the indents are probably all wrong. I'm so sorry.)
Code
Code:
#==============================================================================
# **WindowTest
#==============================================================================
class WindowTest < Window_Base
#----------------------------------------------------------------------
# * Object Initialization
#----------------------------------------------------------------------
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.back_opacity = 0
#Display background
@mback1 = RPG::Cache.picture("backgroundtest")
self.contents.blt(0, 0, @mback1, Rect.new(9, 50, @mback1.width, @mback1.height), 255)
#Character graphic
@han1 = RPG::Cache.picture("hannahmenu1")
self.contents.blt(380, 30, @han1, Rect.new(0, 0, @han1.width, @han1.height), 255)
#Item grid graphic
@itemgrid = RPG::Cache.picture("grid")
self.contents.blt(5, 5, @itemgrid, Rect.new(0, 0, @itemgrid.width, @itemgrid.height), 255)
#Name display graphic
@charname = RPG::Cache.picture("testname1")
self.contents.blt(260, 5, @charname, Rect.new(0, 0, @charname.width, @charname.height), 255)
end
endFirstly: I can't figure out how to get rid of the black border around the inside edge of the window. I legitimately have no idea what's causing it to be there and/or what I'm doing wrong.
Secondly: I want the ugly pink and red grid box to display items that are in the inventory. I intend to use it more as a reference for the player, and for item descriptions to maybe be shown somewhere at the bottom of the grid via a help box. I don't really need the items to be usable, just to be able to highlight them, if this is even possible.
My first problem with this is that I legitimately have no idea if it's possible to have a selectable item window on the main menu screen, or where I'd even have to start to make that function properly. Particularly considering the also selectable save, load, etc type buttons (which is a whole 'nother can of worms, but I'll attempt to deal with putting those together later). Is this even a thing that can be done on this engine?
My second problem with this is that I can't figure out how to make the item icons display within the grid. I can't even make heads or tails of the Draw Item section of the base Window_Item script. Every time I try to edit it I end up with icons not showing where they're supposed to, or at all. This is mainly from messing around with the self.contents area towards the bottom, because I don't know how to read it so I've just been changing options to see what happens.
Thirdly and hopefully finally: Within the game I want there to be different graphics for the menu background and the character graphic that can be changed depending on a variable, and for those graphics to change depending on what that variable's amount is.
So for example if variable == 1 then the graphic would be the example graphic, but if the variable is == 2 the graphic would be different, and/or the background image would also change. I would prefer to do this via pictures and not something that is attached to actor data or anything like that.
Any advice or help, or anything that anyone can give me on this I'd be super grateful for.
If something I explained sounds weird, or I explained it badly please let me know. I'd be happy to try to rephrase it.

