summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/chat.cpp6
-rw-r--r--src/gui/widgets/tabbedarea.cpp31
-rw-r--r--src/gui/widgets/tabbedarea.h5
3 files changed, 28 insertions, 14 deletions
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 2ed6cade..8944d521 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -53,7 +53,7 @@ ChatWindow::ChatWindow():
mTmpVisible(false)
{
setResizable(true);
- setDefaultSize(0, (windowContainer->getHeight() - 105), 600, 100);
+ setDefaultSize(0, (windowContainer->getHeight() - 105), 400, 100);
setTitleBarHeight(5);
loadWindowState("Chat");
@@ -65,6 +65,7 @@ ChatWindow::ChatWindow():
textOutput->setOpaque(false);
textOutput->disableLinksAndUserColors();
textOutput->setMaxRow((int) config.getValue("ChatLogLength", 0));
+
ScrollArea *scrollArea = new ScrollArea(textOutput);
scrollArea->setPosition(
scrollArea->getFrameSize(), scrollArea->getFrameSize());
@@ -113,7 +114,8 @@ ChatWindow::logic()
ScrollArea *scroll = chan->second.scroll;
scroll->setWidth(area.width - 2 * scroll->getFrameSize());
scroll->setHeight(area.height - 2 * scroll->getFrameSize() -
- mChatInput->getHeight() - 26);
+ mChatInput->getHeight() - 5);
+ scroll->logic();
}
Window::logic();
diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp
index 5402bb10..cf486971 100644
--- a/src/gui/widgets/tabbedarea.cpp
+++ b/src/gui/widgets/tabbedarea.cpp
@@ -57,18 +57,6 @@ void TabbedArea::draw(gcn::Graphics *graphics)
return;
}
- unsigned int i;
- for (i = 0; i < mTabs.size(); i++)
- {
- if (mTabs[i].first == mSelectedTab)
- {
- mTabs[i].second->setWidth(getWidth());
- mTabs[i].second->setHeight(getHeight());
- mTabs[i].second->logic();
- break;
- }
- }
-
gcn::TabbedArea::draw(graphics);
}
@@ -142,3 +130,22 @@ void TabbedArea::removeTab(gcn::Tab *tab)
adjustSize();
adjustTabPositions();
}
+
+void TabbedArea::adjustSize()
+{
+ int maxTabHeight = 0;
+ unsigned int i;
+ for (i = 0; i < mTabs.size(); i++)
+ {
+ if (mTabs[i].first->getHeight() > maxTabHeight)
+ {
+ maxTabHeight = mTabs[i].first->getHeight();
+ }
+ }
+
+ mTabContainer->setSize(getWidth() - getFrameSize(), maxTabHeight);
+
+ mWidgetContainer->setPosition(1, maxTabHeight + 1);
+ mWidgetContainer->setSize(getWidth() - getFrameSize(),
+ getHeight() - maxTabHeight - getFrameSize());
+}
diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h
index bc623427..b822d9c9 100644
--- a/src/gui/widgets/tabbedarea.h
+++ b/src/gui/widgets/tabbedarea.h
@@ -65,6 +65,11 @@ class TabbedArea : public gcn::TabbedArea
* Overload the remove tab function as its broken in guichan 0.8
*/
void removeTab(gcn::Tab *tab);
+
+ /**
+ * Overload adjustSize as it seems faulty
+ */
+ void adjustSize();
};
#endif