arnon
November 19th, 2007, 18:15
Couldn't find anything in search...
Is it possible to make the chatbox moveable?
Since i'm DMing I set my screen to high resulotion so as to allow for more space. But the chatbox is stuck in the middle of the left side of the screen, I'd like to move it up or down.
Hamish
November 19th, 2007, 18:49
You can move/resize the chatbox by changing the <bounds> tags in desktop_panels.xml, but I don't think it's possible to make it movable/resizable while running FG2.
Toadwart
November 20th, 2007, 02:09
You can move/resize the chatbox by changing the <bounds> tags in desktop_panels.xml, but I don't think it's possible to make it movable/resizable while running FG2.
Might be possible to change it from a desktop panel to a windowclass. However, that would also allow it to be 'closed' so you'd need to add a button on the desktop that can open it again.
Probably should be noted that you could only achieve this within a custom ruleset. Can't change the d20 ruleset that ships with FG (at least not in this version of FG...).
Hamish
November 20th, 2007, 08:06
I was just thinking along the same lines Toadwart, I may have a go at this.
Hamish
November 24th, 2007, 08:43
I've made some progress. It is indeed possible to run the chat box as a floating window. There are some issues though, I'll try to make it work and post back here.
Hamish
November 24th, 2007, 20:21
Right, not entirely satisfied with the result yet, because after you resize the chat window you either have to close and reopen it, or restart FG. In either case you will loose all message in your session so far. But I don't think that can be fixed from within a ruleset, I think that's in the executable.
<edit>
Tried it with a friend who had the brilliant idea to roll some dice. Turns out it does work, but the die rolls get a minute or so delay. I am totally stumped..... :(
</edit>
Here's what you need to do to be able to move and/or resize the chat box:
In desktop_panels.xml replace the entry for the chat panel (the one with modes="host,client") with this:
<panel name="chatbutton" modes="host,client">
<class>chatbutton</class>
<bounds>
<rect>15,90,74,76</rect>
</bounds>
</panel>
and in desktop_classes.xml replace the windowclass "chat" with this:
<windowclass name="chatbutton">
<sheetdata>
<windowreferencecontrol>
<bounds>5,5,64,66</bounds>
<icon>
<normal>prompt</normal>
<pressed>prompt</pressed>
</icon>
<class>chat</class>
<tooltip>
<text>Chat</text>
</tooltip>
<nodrag />
<closetoggle />
</windowreferencecontrol>
</sheetdata>
</windowclass>
<windowclass name="chat">
<frame>chatbox</frame>
<sizelimits>
<dynamic />
</sizelimits>
<placement>
<size>
<width>390</width>
<height>560</height>
</size>
<position>
<x>15</x>
<y>90</y>
</position>
</placement>
<script>
function onInit()
self.onSizeChanged = updatePosition;
Input.onAlt = changeIcon;
Input.onControl = changeIcon;
Input.onShift = changeIcon;
end
function updatePosition(window)
width, height = window.getSize();
window.chat.setStaticBounds(17,15,width-44,height-75);
window.entry.setStaticBounds(16,height-34,width-80,20);
end
function changeIcon(pressed)
if Input.isAltPressed() then
speakicon.setVisible(false);
emoteicon.setVisible(false);
actionicon.setVisible(false);
oocicon.setVisible(true);
storyicon.setVisible(false);
elseif Input.isControlPressed() then
if Input.isShiftPressed() then
speakicon.setVisible(false);
emoteicon.setVisible(true);
actionicon.setVisible(false);
oocicon.setVisible(false);
storyicon.setVisible(false);
else
if User.isHost() then
speakicon.setVisible(false);
emoteicon.setVisible(false);
actionicon.setVisible(false);
oocicon.setVisible(false);
storyicon.setVisible(true);
else
speakicon.setVisible(false);
emoteicon.setVisible(false);
actionicon.setVisible(true);
oocicon.setVisible(false);
storyicon.setVisible(false);
end
end
else
speakicon.setVisible(true);
emoteicon.setVisible(false);
actionicon.setVisible(false);
oocicon.setVisible(false);
storyicon.setVisible(false);
end
end
</script>
<sheetdata>
<chatwindow name="chat">
<bounds>17,15,356,485</bounds>
<droptypes>
<type>dice</type>
<type>number</type>
<type>string</type>
<type>fullattack</type>
</droptypes>
<stateframe>
<drophilight>
<name>chatboxhilight</name>
<offset>6,5,2,11</offset>
</drophilight>
</stateframe>
<script file="scripts/chat_chat.lua" />
</chatwindow>
<genericcontrol>
<anchored>
<to>chat</to>
<position>insidetopright</position>
<size>
<width>60</width>
<height>61</height>
</size>
</anchored>
<icon>indicator_chatwait</icon>
<invisible />
<script>
function onUserStateChange(username, statename, state)
if username == "" then
if statename == "typing" then
setVisible(true);
elseif statename == "active" or statename == "idle" then
setVisible(false);
end
end
end
function onInit()
User.onUserStateChange = onUserStateChange;
end
</script>
</genericcontrol>
<chatentry name="entry">
<bounds>16,526,310,20</bounds>
<state position="-50,-50" speak="chat_speak" emote="chat_emote" action="chat_action" ooc="chat_ooc" story="chat_story" />
<chatwindow>chat</chatwindow>
<font>chatfont</font>
<script file="scripts/chat_entry.lua" />
</chatentry>
<genericcontrol name="speakicon">
<anchored>
<to>chat</to>
<position>belowright</position>
<offset>0,20</offset>
<size>
<width>43</width>
<height>24</height>
</size>
</anchored>
<icon>chat_speak</icon>
</genericcontrol>
<genericcontrol name="emoteicon">
<anchored>
<to>chat</to>
<position>belowright</position>
<offset>0,20</offset>
<size>
<width>43</width>
<height>24</height>
</size>
</anchored>
<icon>chat_emote</icon>
<invisible />
</genericcontrol>
<genericcontrol name="actionicon">
<anchored>
<to>chat</to>
<position>belowright</position>
<offset>0,20</offset>
<size>
<width>43</width>
<height>24</height>
</size>
</anchored>
<icon>chat_action</icon>
<invisible />
</genericcontrol>
<genericcontrol name="oocicon">
<anchored>
<to>chat</to>
<position>belowright</position>
<offset>0,20</offset>
<size>
<width>43</width>
<height>24</height>
</size>
</anchored>
<icon>chat_ooc</icon>
<invisible />
</genericcontrol>
<genericcontrol name="storyicon">
<anchored>
<to>chat</to>
<position>belowright</position>
<offset>0,20</offset>
<size>
<width>43</width>
<height>24</height>
</size>
</anchored>
<icon>chat_story</icon>
<invisible />
</genericcontrol>
</sheetdata>
</windowclass>
Hamish
November 25th, 2007, 20:24
I *think* the dice rolling issue is related to the animation of the rolling dice. The dice get stuck in the upper left corner for a loooong time and when they disappear, the result displays in the chat box, but the dice themselves do not show at all.
I'm giving up.... it cannot be done, we're stuck with the chat box as it is. Maybe the devs can shed some light on this. If I'm right, and it can't be done, I'd definitely like to see this in a future version of FG!
Powered by vBulletin® Version 4.2.1 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.