General Identifying windows
Reply
Identifying windows
I tried to use the /windows command to obtain a list of all the available UI windows, but there are 386 of them & 50 or more scroll off & I cannot see them. Is there a way to page through/pause the list? Or dump it to a file/log? Is there another way to identify a windows name?

The window I am trying to identify only pops up when I hail a certain npc. It has 2 radio buttons; Yes & No. I am trying to automate the left mouse click on this window, but I have no idea what the window name is.

Any suggestions would be greatly appreciated.

THF server, UF client.
Sat Dec 14, 2013 10:48 am
All UI windows have .xml files associated with them.

<EQ Directory>/uifiles/default
or
<EQ Directory>/uifiles/<custom UI name>

examples:
EQUI_HelpWnd.xml
EQUI_LootWnd.xml

Those cover ~150 windows. All other MQ windows (~230) are found withing those files.

From EQUI_LootWnd.xml: (at the very end)
XML
More +

        <Screen item = "LootWnd">
                <!--<ScreenID/>-->
                <!--<Font/>-->
                <RelativePosition>false</RelativePosition>
                <Text>Loot</Text>
                <Style_VScroll>false</Style_VScroll>
                <Style_HScroll>false</Style_HScroll>
                <Style_Transparent>false</Style_Transparent>
                <!--<TooltipReference/>-->
                <DrawTemplate>WDT_Def</DrawTemplate>
                <Style_Titlebar>true</Style_Titlebar>
                <Style_Closebox>true</Style_Closebox>
                <Style_Minimizebox>false</Style_Minimizebox>
                <Style_Border>true</Style_Border>
                <Style_Sizable>true</Style_Sizable>
                <Location>
                        <X>0</X>
                        <Y>25</Y>
                </Location>
                <Size>
                        <CX>120</CX>
                        <CY>420</CY>
                </Size>
                <Style_Titlebar>false</Style_Titlebar>
                <Style_Closebox>false</Style_Closebox>
                <Style_Minimizebox>false</Style_Minimizebox>
                <Style_Border>true</Style_Border>
                <Style_Sizable>true</Style_Sizable>
                <Pieces>LW_CorpseName</Pieces>
                <Pieces>LW_LootInvWnd</Pieces>
                <Pieces>LW_BroadcastButton</Pieces>
                <Pieces>LW_DoneButton</Pieces>
        </Screen>


Notice the <Pieces>SomeName</Pieces> elements at the very bottom. Those are additional UI elements but some can be windows unto themselves. LW_DoneButton is simply a button but LW_LootInvWnd is a window and should show up in among the 386 windows. All 386 MQ2 windows can be accounted for via these xml files.

The window I am trying to identify only pops up when I hail a certain npc. It has 2 radio buttons; Yes & No. I am trying to automate the left mouse click on this window, but I have no idea what the window name is.


This window should be one of the ~150 defined by their own xml file. EQUI_ConfirmationDialog.xml is usually the yes/no window. It handles accepting translocates, looting no drop items and more. Mine doesn't have radio buttons, but that may be a client specific thing. There are a couple other dialog windows and those are also good candidates.

But this is for THF, correct? Custom servers can probably find and use some of the more obscure windows so it could be any.

/echo ${Window[<windowname>].Open}

^ That tells you if the specified window is open or closed. It should return either TRUE or FALSE/NULL. It's possible to create a macro with all 386 possible windows. It's not very hard but it involves a LOT of copy/paste.

The windowname would be LootWnd in the above .xml file. The windowname is the text inside the quotes of: <Screen item = "LootWnd">

MQ2 Wiki Window List is handy but it doesn't cover all windows for all clients.
Sat Dec 14, 2013 12:36 pm
Senior Project Member
It appears that THF uses the same window many times over only changing the title bar. I will look through my uifiles folders, as well as your other suggestions, and see if I can find the window in question.

Thank you for your quick response and for all the useful info!

** Update

I found the following xml file that I thought might be creating the window I need to identify. I tried
/echo ${Window[YESNO_Box].Open} and /echo ${Window[yesnodialog].Open} (based upon the <screen item =>) while the window was displayed and both times I received the NULL result.

I am using the default UI and I do not see anything else that would display the window. Could this be by called or loaded from another xml file? Also, this xml file has the EQSLUI prefix instead of the EQUI prefix and I'm not sure of the significance of that, if any.


Macro
More +
<?xml version = "1.0"?>
<XML ID = "EQInterfaceDefinitionLanguage">
        <Schema xmlns = "EverQuestData" xmlns:dt = "EverQuestDataTypes"/>
<!-- Action Buttons -->
        <Button item = "YESNO_YesButton">
                <ScreenID>YesButton</ScreenID>
                <Font>4</Font>
                <RelativePosition>true</RelativePosition>
                <Location>
                        <X>185</X>
                        <Y>167</Y>
                </Location>
                <Size>
                        <CX>115</CX>
                        <CY>31</CY>
                </Size>
                <TooltipReference>Click to proceed.</TooltipReference>
                <Style_Checkbox>false</Style_Checkbox>
                <Text>YES</Text>
                <TextColor>
                                <R>255</R>
                                <G>255</G>
                                <B>255</B>
                </TextColor>
                <ButtonDrawTemplate>
                        <Normal>A_EQLS_SmallBtnNormal</Normal>
                        <Pressed>A_EQLS_SmallBtnPressed</Pressed>
                        <Flyby>A_EQLS_SmallBtnHover</Flyby>
                        <Disabled>A_EQLS_SmallBtnDisabled</Disabled>
                        <PressedFlyby>A_EQLS_SmallBtnPressedHover</PressedFlyby>
                </ButtonDrawTemplate>
        </Button>
        <Button item = "YESNO_NoButton">
                <ScreenID>NoButton</ScreenID>
                <Font>4</Font>
                <RelativePosition>true</RelativePosition>
                <Location>
                        <X>44</X>
                        <Y>167</Y>
                </Location>
                <Size>
                        <CX>115</CX>
                        <CY>31</CY>
                </Size>
                <TooltipReference>Click to cancel.</TooltipReference>
                <Style_Checkbox>false</Style_Checkbox>
                <Text>NO</Text>
                <TextColor>
                                <R>255</R>
                                <G>255</G>
                                <B>255</B>
                </TextColor>
                <ButtonDrawTemplate>
                        <Normal>A_EQLS_SmallBtnNormal</Normal>
                        <Pressed>A_EQLS_SmallBtnPressed</Pressed>
                        <Flyby>A_EQLS_SmallBtnHover</Flyby>
                        <Disabled>A_EQLS_SmallBtnDisabled</Disabled>
                        <PressedFlyby>A_EQLS_SmallBtnPressedHover</PressedFlyby>
                </ButtonDrawTemplate>
        </Button>
<!-- Display of text the the user -->
        <STMLbox item = "YESNO_Display">
                <ScreenID>Display</ScreenID>
                <DrawTemplate>WDT_EQLS_Def_Bordered</DrawTemplate>
                <RelativePosition>true</RelativePosition>
                <Style_VScroll>true</Style_VScroll>
                <AutoStretch>true</AutoStretch>
                <LeftAnchorOffset>2</LeftAnchorOffset>
                <TopAnchorOffset>2</TopAnchorOffset>
                <RightAnchorOffset>2</RightAnchorOffset>
                <BottomAnchorOffset>35</BottomAnchorOffset>
                <TopAnchorToTop>true</TopAnchorToTop>
                <BottomAnchorToTop>false</BottomAnchorToTop>
                <RightAnchorToLeft>false</RightAnchorToLeft>
                <LeftAnchorToLeft>true</LeftAnchorToLeft>
                <Style_Border>true</Style_Border>
        </STMLbox>
<!-- The actual box of the dialog -->  
        <Screen item = "YESNO_Box">
                <ScreenID>Box</ScreenID>
                <RelativePosition>true</RelativePosition>
                <AutoStretch>true</AutoStretch>
                <LeftAnchorOffset>130</LeftAnchorOffset>
                <TopAnchorOffset>130</TopAnchorOffset>
                <RightAnchorOffset>130</RightAnchorOffset>
                <BottomAnchorOffset>130</BottomAnchorOffset>
                <TopAnchorToTop>true</TopAnchorToTop>
                <BottomAnchorToTop>false</BottomAnchorToTop>
                <RightAnchorToLeft>false</RightAnchorToLeft>
                <LeftAnchorToLeft>true</LeftAnchorToLeft>

                <Text>Confirmation</Text>
                <Style_VScroll>false</Style_VScroll>
                <Style_HScroll>false</Style_HScroll>
                <Style_Transparent>false</Style_Transparent>
                <!--<TooltipReference/>-->
                <DrawTemplate>WDT_EQLS_Def_Bordered</DrawTemplate>
                <Style_Titlebar>false</Style_Titlebar>
                <Style_Closebox>false</Style_Closebox>
                <Style_Minimizebox>false</Style_Minimizebox>
                <Style_Border>true</Style_Border>
                <Style_Sizable>false</Style_Sizable>
                <Pieces>YESNO_YesButton</Pieces>
                <Pieces>YESNO_NoButton</Pieces>
                <Pieces>YESNO_Display</Pieces>
        </Screen>

<!-- Used to obscure the backing window and prevent UI events from going through to it -->
        <Screen item = "yesnodialog">
                <RelativePosition>true</RelativePosition>
                <Location>
                        <X>0</X>
                        <Y>0</Y>
                </Location>
                <Size>
                        <CX>640</CX>
                        <CY>480</CY>
                </Size>

                <Text></Text>
                <Style_VScroll>false</Style_VScroll>
                <Style_HScroll>false</Style_HScroll>
                <Style_Transparent>false</Style_Transparent>
                <!--<TooltipReference/>-->
                <DrawTemplate>WDT_Def</DrawTemplate>
                <Style_Titlebar>false</Style_Titlebar>
                <Style_Closebox>false</Style_Closebox>
                <Style_Minimizebox>false</Style_Minimizebox>
                <Style_Border>false</Style_Border>
                <Style_Sizable>false</Style_Sizable>
                <Pieces>YESNO_Box</Pieces>
        </Screen>
</XML>




** UPDATE ** I finally found the right one; LargeDialogWindow

Thanks again for the help!!
Sat Dec 14, 2013 12:58 pm
I know you already said you figured it out but here is an example parsing the title of the popup window.
Macro
More +
/if (${Window[LargeDialogWindow].Open} && ${Window[LargeDialogWindow].Child[LDW_TextBox].Text.Find[Are you pimp?]}) /nomodkey /notify LargeDialogWindow LDW_YesButton leftmouseup


The child of the LargeDialogWindow which contains the text at the very top can be checked. In this example the popup window would say "Are you a pimp?"
Maybe that window you want to click yes on. If it asked if you are gimp you might want to click no.
Sun Dec 15, 2013 3:44 am
Listen to This Guy
General Identifying windows
Reply