diff options
author | simonb <simonb> | 2006-04-15 16:41:11 (GMT) |
---|---|---|
committer | simonb <simonb> | 2006-04-15 16:41:11 (GMT) |
commit | 7c7908443302fc66929e19804f0fbd655d4c7f34 (patch) | |
tree | 6839a7379b4cc514a5a4ce20ebf0a53123d20ba2 /src/IconbarTool.cc | |
parent | 83a3429c395299b5acb85a3f372091037fe12603 (diff) | |
download | fluxbox-7c7908443302fc66929e19804f0fbd655d4c7f34.zip fluxbox-7c7908443302fc66929e19804f0fbd655d4c7f34.tar.bz2 |
implement vertical toolbar placement options
Diffstat (limited to 'src/IconbarTool.cc')
-rw-r--r-- | src/IconbarTool.cc | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/IconbarTool.cc b/src/IconbarTool.cc index 3c219e7..1067e0b 100644 --- a/src/IconbarTool.cc +++ b/src/IconbarTool.cc | |||
@@ -695,17 +695,25 @@ void IconbarTool::renderTheme() { | |||
695 | 695 | ||
696 | Pixmap tmp = m_focused_pm; | 696 | Pixmap tmp = m_focused_pm; |
697 | Pixmap err_tmp = m_focused_err_pm; | 697 | Pixmap err_tmp = m_focused_err_pm; |
698 | unsigned int icon_width = m_icon_container.maxWidthPerClient(); | 698 | unsigned int icon_width, icon_height; |
699 | if (orientation() == FbTk::ROT0 || orientation() == FbTk::ROT180) { | ||
700 | icon_width = m_icon_container.maxWidthPerClient(); | ||
701 | icon_height = m_icon_container.height(); | ||
702 | } else { | ||
703 | icon_width = m_icon_container.width(); | ||
704 | icon_height = m_icon_container.maxWidthPerClient(); | ||
705 | } | ||
706 | |||
699 | if (!m_theme.focusedTexture().usePixmap()) { | 707 | if (!m_theme.focusedTexture().usePixmap()) { |
700 | m_focused_pm = 0; | 708 | m_focused_pm = 0; |
701 | m_focused_err_pm = 0; | 709 | m_focused_err_pm = 0; |
702 | } else { | 710 | } else { |
703 | m_focused_pm = m_screen.imageControl().renderImage(icon_width, | 711 | m_focused_pm = m_screen.imageControl().renderImage(icon_width, |
704 | m_icon_container.height(), | 712 | icon_height, |
705 | m_theme.focusedTexture()); | 713 | m_theme.focusedTexture(), orientation()); |
706 | m_focused_err_pm = m_screen.imageControl().renderImage(icon_width+1, | 714 | m_focused_err_pm = m_screen.imageControl().renderImage(icon_width+1, |
707 | m_icon_container.height(), | 715 | icon_height, |
708 | m_theme.focusedTexture()); | 716 | m_theme.focusedTexture(), orientation()); |
709 | } | 717 | } |
710 | 718 | ||
711 | if (tmp) | 719 | if (tmp) |
@@ -721,11 +729,11 @@ void IconbarTool::renderTheme() { | |||
721 | m_unfocused_err_pm = 0; | 729 | m_unfocused_err_pm = 0; |
722 | } else { | 730 | } else { |
723 | m_unfocused_pm = m_screen.imageControl().renderImage(icon_width, | 731 | m_unfocused_pm = m_screen.imageControl().renderImage(icon_width, |
724 | m_icon_container.height(), | 732 | icon_height, |
725 | m_theme.unfocusedTexture()); | 733 | m_theme.unfocusedTexture(), orientation()); |
726 | m_unfocused_err_pm = m_screen.imageControl().renderImage(icon_width+1, | 734 | m_unfocused_err_pm = m_screen.imageControl().renderImage(icon_width+1, |
727 | m_icon_container.height(), | 735 | icon_height, |
728 | m_theme.unfocusedTexture()); | 736 | m_theme.unfocusedTexture(), orientation()); |
729 | } | 737 | } |
730 | if (tmp) | 738 | if (tmp) |
731 | m_screen.imageControl().removeImage(tmp); | 739 | m_screen.imageControl().removeImage(tmp); |
@@ -740,7 +748,7 @@ void IconbarTool::renderTheme() { | |||
740 | } else { | 748 | } else { |
741 | m_empty_pm = m_screen.imageControl().renderImage(m_icon_container.width(), | 749 | m_empty_pm = m_screen.imageControl().renderImage(m_icon_container.width(), |
742 | m_icon_container.height(), | 750 | m_icon_container.height(), |
743 | m_theme.emptyTexture()); | 751 | m_theme.emptyTexture(), orientation()); |
744 | m_icon_container.setBackgroundPixmap(m_empty_pm); | 752 | m_icon_container.setBackgroundPixmap(m_empty_pm); |
745 | } | 753 | } |
746 | 754 | ||
@@ -768,7 +776,8 @@ void IconbarTool::renderButton(IconButton &button, bool clear) { | |||
768 | // The last button is always the regular width | 776 | // The last button is always the regular width |
769 | bool wider_button = false; | 777 | bool wider_button = false; |
770 | if (!m_icon_container.empty()) | 778 | if (!m_icon_container.empty()) |
771 | wider_button = (button.width() != m_icon_container.back()->width()); | 779 | wider_button = (button.width() != m_icon_container.back()->width() || // height to cover both orients |
780 | button.height() != m_icon_container.back()->height()); | ||
772 | 781 | ||
773 | if (button.win().isFocused()) { // focused texture | 782 | if (button.win().isFocused()) { // focused texture |
774 | m_icon_container.setSelected(m_icon_container.find(&button)); | 783 | m_icon_container.setSelected(m_icon_container.find(&button)); |
@@ -968,3 +977,7 @@ void IconbarTool::timedRender() { | |||
968 | renderButton(*current_button); | 977 | renderButton(*current_button); |
969 | } | 978 | } |
970 | 979 | ||
980 | void IconbarTool::setOrientation(FbTk::Orientation orient) { | ||
981 | m_icon_container.setOrientation(orient); | ||
982 | ToolbarItem::setOrientation(orient); | ||
983 | } | ||