Thread Tools Display Modes
12-01-09, 03:04 AM   #1
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Chat tabs to the bottom (was: transparent frames?...)

I'm stuck in the issue...
I'm trying to remove any clickable elements from the center of my screen, other that I have placed there intentionally.
The most notable culprit is the chat tabs.
Solution to move then was somewhat easy for the first look.
lua Code:
  1. for id = 1, FCF_GetNumActiveChatFrames() do
  2.    local chatTab = _G["ChatFrame"..id.."Tab"];
  3.    local point, relativeTo, relativePoint, xOffset, yOffset = chatTab:GetPoint(1)
  4.    chatTab:ClearAllPoints();
  5.    chatTab:SetPoint("TOPLEFT", relativeTo, "BOTTOMLEFT", xOffset, yOffset);
  6. end;
However, it looks rude and need redesign, but for the core code, it does what it is expected to do.
But... two other issues arise.
First, is that only first tab in line stay on the bottom.
If I have, say, 2 chat windows, first tab in each window will stay at bottom, the rest will pop back up at some point. I guess I have to override some handling event, other than that, it's not a big problem right now.
Second issue, and that I, with my current knowledge, cant see a way to deal with, is the (apparently) invisible frame that extends over the ChatFrame<id>Backgound plus the chat tabs location. And I'm failing to find this frame name or handling function

I would appreciate the help or at least ideas on where to look further. (I do have unpacked interface data)

Last edited by AnrDaemon : 01-16-10 at 03:20 PM.
  Reply With Quote
12-04-09, 07:29 PM   #2
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
P.S.
/framestack does not help
MEDIUM
<0> UIParent
UNKNOWN
<0> WorldFrame
  Reply With Quote
12-28-09, 08:57 AM   #3
Jadessia
A Kobold Labourer
 
Jadessia's Avatar
Join Date: Dec 2009
Posts: 1
trying to figure out the same thing as the poster above.

anyone know?

Edit:

Found the solution for it, with hint help from Haste(Thanks ;-) )

heres the code i used to get the chat tabs to show below chat frame
Code:
function FCF_SetTabPosition(chatFrame, x)
	local chatTab = getglobal(chatFrame:GetName().."Tab");
	local chatTab = _G[chatFrame:GetName().."Tab"];
 	chatTab:SetPoint("BOTTOMLEFT", chatFrame:GetName().."Background", "BOTTOMLEFT", x+2, -20);
end

Last edited by Jadessia : 12-28-09 at 10:48 AM. Reason: Solution
  Reply With Quote
01-15-10, 07:35 PM   #4
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Well, they appear on the bottom. But not usable from there.
  Reply With Quote
01-15-10, 08:09 PM   #5
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
hmm and does it make the combat log filter selection bar move down to?
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
01-15-10, 08:12 PM   #6
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
heres a chunk that can make your chatframes click-able themselves. no chattabs at all.

maybe itll give you more ideas.

lua Code:
  1. -- tab hide and frame click dropdown start
  2.     local _G = getfenv(0)
  3.      
  4.     local function openDropDown(self)
  5.         ToggleDropDownMenu(1, nil, self.dropDown, self:GetName(), 0, 0)
  6.     end
  7.  
  8.  
  9.     for _,i in pairs{ 2, 6 } do
  10.     local frame = CreateFrame("Button", "ChatFrameButton"..i, _G["ChatFrame"..i])
  11.     frame:SetAllPoints()
  12.     frame:SetFrameLevel(_G["ChatFrame"..i]:GetFrameLevel())
  13.     frame:EnableMouse(true)
  14.     frame:RegisterForClicks("RightButtonUp")
  15.     frame:SetScript("OnClick", openDropDown)
  16.     frame.dropDown = _G["ChatFrame"..i.."TabDropDown"]
  17.  
  18.     _G["ChatFrame"..i.."Tab"].Show = GrimUI.Dummy
  19. end
  20. -- tab hide and frame click dropdown end
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
01-16-10, 11:03 AM   #7
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Originally Posted by Grimsin View Post
hmm and does it make the combat log filter selection bar move down to?
Nope.
Lua Code:
  1. -- Chattabs?
  2. function FCF_SetTabPosition(chatFrame, x)
  3.     local chatTab = _G[chatFrame:GetName() .. "Tab"];
  4.     chatTab:SetPoint("BOTTOMLEFT", chatFrame:GetName() .. "Background", "BOTTOMLEFT", x, -15);
  5.     chatTab:SetFrameLevel(40);
  6. end
[s]Moving tabs to level 40... all but first tab. Why?[/s] nvm it is Resize frames code pushing the bar...

Last edited by AnrDaemon : 01-16-10 at 11:09 AM.
  Reply With Quote
01-16-10, 11:58 AM   #8
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Well, I don't know how to read Blizzard code... anyone have idea as to where to look for repositioning code for ChatFrame#Resize...?
I've only found a reference to LoverFrameLevel in OnLoad handler.
  Reply With Quote
01-16-10, 12:12 PM   #9
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
you want to resize and or move the chatframe via code?
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
01-16-10, 12:39 PM   #10
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Well, let me put it as to-do list.

1. I want tabs at the bottom.
2. I want them clickable (not overlapped by other frames)
3. I want them permanently visible. (All, or all except single tab of one foreign frame - I think "all" is easier, let make it a goal first)
4. Minor tweaks to tabs look.

Issues I have right now.
1. Although I have them relocated to bottom, they appear only when I hover over their default position. (Or frame itself)
2. As a successor of Issue#1, they are hardly clickable. As soon as I move mouse out of chat frame, tabs start disappearing. If i'm fast enough, click is registered, if not... *sigh*
3. If (in attempt to relieve Issue#2) I move tabs up a bit (say 15px instead of 20px), they gets overlappd by resizing frames. Need framestack screen?
  Reply With Quote
01-16-10, 12:50 PM   #11
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
SetFrameLevel(40) is not valid. that will cause funny issues you need to stick with numbers under 10, 1-9 is best. use setframestrata as another means of setting levels. so setframestrata("LOW") then do setframelevel(1) so on and so forth. in your case you actually want to use setframestrata("HIGH") setframelevel(5) might even need to change high to overlay chatframes maybe in the overlay level.
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
01-16-10, 12:57 PM   #12
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Originally Posted by Grimsin View Post
SetFrameLevel(40) is not valid. that will cause funny issues you need to stick with numbers under 10, 1-9 is best. use setframestrata as another means of setting levels. so setframestrata("LOW") then do setframelevel(1) so on and so forth. in your case you actually want to use setframestrata("HIGH") setframelevel(5) might even need to change high to overlay chatframes maybe in the overlay level.
1. I've removed that already.
2. Valid values for frameLevel - 0-127. (Or is that 1-128?)
3. Own Blizzard ChatFrame#ResizeBottom - 23, check yourself. /framestack
4. Chat frames actually in LOW strata... Well, not a bad idea, i'll try change strata to MEDIUM at least.

What about hovering? Any ideas how it is realized? There are no frame at all (bar UIParent/WorldFrame), yet it detect mouse movement in the old chat tabs position.

EDIT: Works "good enough" for a beginning.
Lua Code:
  1. -- Chattabs?
  2. function FCF_SetTabPosition(chatFrame, x)
  3.     local chatTab = _G[chatFrame:GetName() .. "Tab"];
  4.     chatTab:SetPoint("BOTTOMLEFT", chatFrame:GetName() .. "Background", "BOTTOMLEFT", x, -15);
  5.     chatTab:SetFrameStrata("MEDIUM");
  6.     chatTab:SetFrameLevel(1);
  7. end
Now, if anyone have ideas about hovering... how it is even realized? Track mouse on UIParent for boundbox?

Last edited by AnrDaemon : 01-16-10 at 01:08 PM.
  Reply With Quote
01-16-10, 12:59 PM   #13
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
hovering? you mean to make it so you do not have to hoverover the tabs?

oh and yea blizz may register 120 some odd frame levels but im telling you from experiance when you use numbers over 10 things get funny. I have never for any reason seen that many frames stacked over each other anyhow.
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
01-16-10, 01:21 PM   #14
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
Originally Posted by Grimsin View Post
hovering? you mean to make it so you do not have to hoverover the tabs?
Well, again... or, well, let me illustrate it with image.
Click image for larger version

Name:	FrameHell-2010-01-16.gif
Views:	180
Size:	5.9 KB
ID:	3849
See purple area? If I move cursor to the green box outside it, tabs disappear.
Now, how would YOU make it possible? So I have at least idea of what to look for in Blizzard code.

oh and yea blizz may register 120 some odd frame levels but im telling you from experiance when you use numbers over 10 things get funny. I have never for any reason seen that many frames stacked over each other anyhow.
As I said, it was expetiment and I've removed it already.
  Reply With Quote
07-02-10, 03:09 PM   #15
AnrDaemon
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 156
*sigh*
and now they changed it again. Seems like they have introduced new container for default chat tabs.
I've been using the
Lua Code:
  1. function FCF_SetTabPosition(chatFrame, x)
  2.     local chatTab = _G[chatFrame:GetName() .. "Tab"];
  3.     local chatFrameResizeBottom = _G[chatFrame:GetName() .. "ResizeBottom"];
  4.     chatTab:SetPoint("BOTTOMLEFT", chatFrame:GetName() .. "Background", "BOTTOMLEFT", x, -17);
  5.     chatTab:SetFrameStrata("MEDIUM");
  6.     chatTab:SetFrameLevel(1);
  7. end
, but now it only reposition tabs of foreign frames, not the main framestack.
Have tried to move GeneralDockManager, but without much success.
Any good advice?
  Reply With Quote
07-02-10, 06:02 PM   #16
sacrife
An Onyxian Warder
 
sacrife's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2009
Posts: 384
AnrDaemon: Check the myChat addon, he does some of the things you want.

Anyone figured out how to move the filter frame for the combat log or atleast make the background transparent?
__________________

  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » Explore transparent frames - how?


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off