From dc3f13d2fc3e731e8929ec782cad1c1e2191802e Mon Sep 17 00:00:00 2001 From: fluxgen Date: Fri, 22 Aug 2003 21:35:40 +0000 Subject: fixed new image loading --- src/WinButton.cc | 70 +++++++++++++++++++-------------------- src/WinButtonTheme.cc | 55 +++---------------------------- src/WinButtonTheme.hh | 91 ++++++++++++++++++++++----------------------------- 3 files changed, 79 insertions(+), 137 deletions(-) diff --git a/src/WinButton.cc b/src/WinButton.cc index 01684fb..2534296 100644 --- a/src/WinButton.cc +++ b/src/WinButton.cc @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -/// $Id: WinButton.cc,v 1.9 2003/08/22 15:04:18 fluxgen Exp $ +/// $Id: WinButton.cc,v 1.10 2003/08/22 21:33:13 fluxgen Exp $ #include "WinButton.hh" #include "App.hh" @@ -52,23 +52,23 @@ void WinButton::drawType() { switch (m_type) { case MAXIMIZE: - if (m_theme.maximizePixmap().pixmap.drawable() != 0) { + if (m_theme.maximizePixmap().pixmap().drawable() != 0) { if (pressed()) { FbTk::FbWindow::setBackgroundPixmap(m_theme. maximizePressedPixmap(). - pixmap.drawable()); - } else if (m_theme.maximizePixmap().pixmap.drawable()) { + pixmap().drawable()); + } else if (m_theme.maximizePixmap().pixmap().drawable()) { // check focus if (!m_listen_to.isFocused() && - m_theme.maximizeUnfocusPixmap().pixmap.drawable() != 0) { + m_theme.maximizeUnfocusPixmap().pixmap().drawable() != 0) { // not focused FbTk::FbWindow::setBackgroundPixmap(m_theme. maximizeUnfocusPixmap(). - pixmap.drawable()); + pixmap().drawable()); } else { // focused FbTk::FbWindow::setBackgroundPixmap(m_theme. maximizePixmap(). - pixmap.drawable()); + pixmap().drawable()); } } @@ -84,23 +84,23 @@ void WinButton::drawType() { } break; case MINIMIZE: - if (m_theme.iconifyPixmap().pixmap.drawable() != 0) { + if (m_theme.iconifyPixmap().pixmap().drawable() != 0) { if (pressed()) { FbTk::FbWindow::setBackgroundPixmap(m_theme. iconifyPressedPixmap(). - pixmap.drawable()); - } else if (m_theme.iconifyPixmap().pixmap.drawable()){ + pixmap().drawable()); + } else if (m_theme.iconifyPixmap().pixmap().drawable()){ // check focus if (!m_listen_to.isFocused() && - m_theme.iconifyUnfocusPixmap().pixmap.drawable() != 0) { + m_theme.iconifyUnfocusPixmap().pixmap().drawable() != 0) { // not focused FbTk::FbWindow::setBackgroundPixmap(m_theme. iconifyUnfocusPixmap(). - pixmap.drawable()); + pixmap().drawable()); } else { // focused FbTk::FbWindow::setBackgroundPixmap(m_theme. iconifyPixmap(). - pixmap.drawable()); + pixmap().drawable()); } } @@ -114,41 +114,41 @@ void WinButton::drawType() { } break; case STICK: - if (m_theme.stickPixmap().pixmap.drawable() != 0) { + if (m_theme.stickPixmap().pixmap().drawable() != 0) { if (m_listen_to.isStuck() && - m_theme.stuckPixmap().pixmap.drawable() && + m_theme.stuckPixmap().pixmap().drawable() && ! pressed()) { // we're using the same pixmap for pressed as in not stuck // check focus if (!m_listen_to.isFocused() && - m_theme.stuckUnfocusPixmap().pixmap.drawable() != 0) { + m_theme.stuckUnfocusPixmap().pixmap().drawable() != 0) { // not focused FbTk::FbWindow::setBackgroundPixmap(m_theme. stuckUnfocusPixmap(). - pixmap.drawable()); + pixmap().drawable()); } else { // focused FbTk::FbWindow::setBackgroundPixmap(m_theme. stuckPixmap(). - pixmap.drawable()); + pixmap().drawable()); } } else { // not stuck if (pressed()) { FbTk::FbWindow::setBackgroundPixmap(m_theme. stickPressedPixmap(). - pixmap.drawable()); + pixmap().drawable()); - } else if (m_theme.stickPixmap().pixmap.drawable()) { + } else if (m_theme.stickPixmap().pixmap().drawable()) { // check focus if (!m_listen_to.isFocused() && - m_theme.stickUnfocusPixmap().pixmap.drawable() != 0) { + m_theme.stickUnfocusPixmap().pixmap().drawable() != 0) { // not focused FbTk::FbWindow::setBackgroundPixmap(m_theme. stickUnfocusPixmap(). - pixmap.drawable()); + pixmap().drawable()); } else { // focused FbTk::FbWindow::setBackgroundPixmap(m_theme. stickPixmap(). - pixmap.drawable()); + pixmap().drawable()); } } @@ -172,24 +172,24 @@ void WinButton::drawType() { break; case CLOSE: - if (m_theme.closePixmap().pixmap.drawable() != 0) { + if (m_theme.closePixmap().pixmap().drawable() != 0) { if (pressed()) { FbTk::FbWindow::setBackgroundPixmap(m_theme. closePressedPixmap(). - pixmap.drawable()); + pixmap().drawable()); - } else if (m_theme.closePixmap().pixmap.drawable()) { + } else if (m_theme.closePixmap().pixmap().drawable()) { // check focus if (!m_listen_to.isFocused() && - m_theme.closeUnfocusPixmap().pixmap.drawable() != 0) { + m_theme.closeUnfocusPixmap().pixmap().drawable() != 0) { // not focused FbTk::FbWindow::setBackgroundPixmap(m_theme. closeUnfocusPixmap(). - pixmap.drawable()); + pixmap().drawable()); } else { // focused FbTk::FbWindow::setBackgroundPixmap(m_theme. closePixmap(). - pixmap.drawable()); + pixmap().drawable()); } } @@ -207,23 +207,23 @@ void WinButton::drawType() { } break; case SHADE: - if (m_theme.shadePixmap().pixmap.drawable() != 0) { + if (m_theme.shadePixmap().pixmap().drawable() != 0) { if (pressed()) { FbTk::FbWindow::setBackgroundPixmap(m_theme. shadePressedPixmap(). - pixmap.drawable()); - } else if (m_theme.shadePixmap().pixmap.drawable()) { + pixmap().drawable()); + } else if (m_theme.shadePixmap().pixmap().drawable()) { // check focus if (!m_listen_to.isFocused() && - m_theme.shadeUnfocusPixmap().pixmap.drawable() != 0) { + m_theme.shadeUnfocusPixmap().pixmap().drawable() != 0) { // not focused FbTk::FbWindow::setBackgroundPixmap(m_theme. shadeUnfocusPixmap(). - pixmap.drawable()); + pixmap().drawable()); } else { // focused FbTk::FbWindow::setBackgroundPixmap(m_theme. shadePixmap(). - pixmap.drawable()); + pixmap().drawable()); } } diff --git a/src/WinButtonTheme.cc b/src/WinButtonTheme.cc index b8628eb..74d37c8 100644 --- a/src/WinButtonTheme.cc +++ b/src/WinButtonTheme.cc @@ -19,62 +19,15 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: WinButtonTheme.cc,v 1.5 2003/08/22 15:19:39 fluxgen Exp $ +// $Id: WinButtonTheme.cc,v 1.6 2003/08/22 21:35:40 fluxgen Exp $ #include "WinButtonTheme.hh" #include "FbTk/App.hh" -#include "FbWinFrameTheme.hh" - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif // HAVE_CONFIG_H - -#ifdef HAVE_XPM -#include -#endif // HAVE_XPM - -// not used -template <> -void FbTk::ThemeItem:: -load() { } - -template <> -void FbTk::ThemeItem:: -setDefaultValue() { - // create empty pixmap - (*this)->pixmap = FbTk::FbPixmap(); // pixmap - (*this)->mask = FbTk::FbPixmap(); // mask -} +#include "FbTk/Image.hh" +#include "FbTk/PixmapWithMask.hh" -template <> -void FbTk::ThemeItem:: -setFromString(const char *str) { - if (str == 0) - setDefaultValue(); - else { -#ifdef HAVE_XPM - XpmAttributes xpm_attr; - xpm_attr.valuemask = 0; - Display *dpy = FbTk::App::instance()->display(); - Pixmap pm = 0, mask = 0; - int retvalue = XpmReadFileToPixmap(dpy, - RootWindow(dpy, m_tm.screenNum()), - const_cast(str), - &pm, - &mask, &xpm_attr); - if (retvalue == 0) { // success - (*this)->pixmap = pm; - (*this)->mask = mask; - } else { // failure - setDefaultValue(); - } -#else - setDefaultValue(); -#endif // HAVE_XPM - - } -} +#include "FbWinFrameTheme.hh" WinButtonTheme::WinButtonTheme(int screen_num, const FbWinFrameTheme &frame_theme): FbTk::Theme(screen_num), diff --git a/src/WinButtonTheme.hh b/src/WinButtonTheme.hh index dea88cf..0e959ca 100644 --- a/src/WinButtonTheme.hh +++ b/src/WinButtonTheme.hh @@ -19,75 +19,64 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: WinButtonTheme.hh,v 1.3 2003/08/22 14:48:10 fluxgen Exp $ +// $Id: WinButtonTheme.hh,v 1.4 2003/08/22 21:35:40 fluxgen Exp $ #ifndef WINBUTTONTHEME_HH #define WINBUTTONTHEME_HH #include "Theme.hh" -#include "FbPixmap.hh" +#include "FbTk/PixmapWithMask.hh" class FbWinFrameTheme; class WinButtonTheme: public FbTk::Theme { public: - /// holds pixmap and a mask - struct PixmapWithMask { - /// scale both pixmap and mask to specified size - void scale(unsigned int width, unsigned int height) { - pixmap.scale(width, height); - mask.scale(width, height); - } - FbTk::FbPixmap pixmap; - FbTk::FbPixmap mask; - }; - WinButtonTheme(int screen_num, const FbWinFrameTheme &frame_theme); ~WinButtonTheme(); void reconfigTheme(); - inline const PixmapWithMask &closePixmap() const { return *m_close_pm; } - inline PixmapWithMask &closePixmap() { return *m_close_pm; } - inline PixmapWithMask &closeUnfocusPixmap() { return *m_close_unfocus_pm; } - inline const PixmapWithMask &closePressedPixmap() const { return *m_close_pressed_pm; } - inline PixmapWithMask &closePressedPixmap() { return *m_close_pressed_pm; } - - inline const PixmapWithMask &maximizePixmap() const { return *m_maximize_pm; } - inline PixmapWithMask &maximizePixmap() { return *m_maximize_pm; } - inline PixmapWithMask &maximizeUnfocusPixmap() { return *m_maximize_unfocus_pm; } - inline const PixmapWithMask &maximizePressedPixmap() const { return *m_maximize_pressed_pm; } - inline PixmapWithMask &maximizePressedPixmap() { return *m_maximize_pressed_pm; } - - inline const PixmapWithMask &iconifyPixmap() const { return *m_iconify_pm; } - inline PixmapWithMask &iconifyPixmap() { return *m_iconify_pm; } - inline PixmapWithMask &iconifyUnfocusPixmap() { return *m_iconify_unfocus_pm; } - inline const PixmapWithMask &iconifyPressedPixmap() const { return *m_iconify_pressed_pm; } - inline PixmapWithMask &iconifyPressedPixmap() { return *m_iconify_pressed_pm; } - - inline const PixmapWithMask &stickPixmap() const { return *m_stick_pm; } - inline PixmapWithMask &stickPixmap() { return *m_stick_pm; } - inline PixmapWithMask &stickUnfocusPixmap() { return *m_stick_unfocus_pm; } - inline const PixmapWithMask &stickPressedPixmap() const { return *m_stick_pressed_pm; } - inline PixmapWithMask &stickPressedPixmap() { return *m_stick_pressed_pm; } - - inline PixmapWithMask &stuckPixmap() { return *m_stuck_pm; } - inline PixmapWithMask &stuckUnfocusPixmap() { return *m_stuck_unfocus_pm; } - - inline const PixmapWithMask &shadePixmap() const { return *m_shade_pm; } - inline PixmapWithMask &shadePixmap() { return *m_shade_pm; } - inline PixmapWithMask &shadeUnfocusPixmap() { return *m_shade_unfocus_pm; } - inline const PixmapWithMask &shadePressedPixmap() const { return *m_shade_pressed_pm; } - inline PixmapWithMask &shadePressedPixmap() { return *m_shade_pressed_pm; } + inline const FbTk::PixmapWithMask &closePixmap() const { return *m_close_pm; } + inline FbTk::PixmapWithMask &closePixmap() { return *m_close_pm; } + inline FbTk::PixmapWithMask &closeUnfocusPixmap() { return *m_close_unfocus_pm; } + inline const FbTk::PixmapWithMask &closePressedPixmap() const { return *m_close_pressed_pm; } + inline FbTk::PixmapWithMask &closePressedPixmap() { return *m_close_pressed_pm; } + + inline const FbTk::PixmapWithMask &maximizePixmap() const { return *m_maximize_pm; } + inline FbTk::PixmapWithMask &maximizePixmap() { return *m_maximize_pm; } + inline FbTk::PixmapWithMask &maximizeUnfocusPixmap() { return *m_maximize_unfocus_pm; } + inline const FbTk::PixmapWithMask &maximizePressedPixmap() const { return *m_maximize_pressed_pm; } + inline FbTk::PixmapWithMask &maximizePressedPixmap() { return *m_maximize_pressed_pm; } + + inline const FbTk::PixmapWithMask &iconifyPixmap() const { return *m_iconify_pm; } + inline FbTk::PixmapWithMask &iconifyPixmap() { return *m_iconify_pm; } + inline FbTk::PixmapWithMask &iconifyUnfocusPixmap() { return *m_iconify_unfocus_pm; } + inline const FbTk::PixmapWithMask &iconifyPressedPixmap() const { return *m_iconify_pressed_pm; } + inline FbTk::PixmapWithMask &iconifyPressedPixmap() { return *m_iconify_pressed_pm; } + + inline const FbTk::PixmapWithMask &stickPixmap() const { return *m_stick_pm; } + inline FbTk::PixmapWithMask &stickPixmap() { return *m_stick_pm; } + inline FbTk::PixmapWithMask &stickUnfocusPixmap() { return *m_stick_unfocus_pm; } + inline const FbTk::PixmapWithMask &stickPressedPixmap() const { return *m_stick_pressed_pm; } + inline FbTk::PixmapWithMask &stickPressedPixmap() { return *m_stick_pressed_pm; } + + inline FbTk::PixmapWithMask &stuckPixmap() { return *m_stuck_pm; } + inline FbTk::PixmapWithMask &stuckUnfocusPixmap() { return *m_stuck_unfocus_pm; } + + inline const FbTk::PixmapWithMask &shadePixmap() const { return *m_shade_pm; } + inline FbTk::PixmapWithMask &shadePixmap() { return *m_shade_pm; } + inline FbTk::PixmapWithMask &shadeUnfocusPixmap() { return *m_shade_unfocus_pm; } + inline const FbTk::PixmapWithMask &shadePressedPixmap() const { return *m_shade_pressed_pm; } + inline FbTk::PixmapWithMask &shadePressedPixmap() { return *m_shade_pressed_pm; } private: - FbTk::ThemeItem m_close_pm, m_close_unfocus_pm, m_close_pressed_pm; - FbTk::ThemeItem m_maximize_pm, m_maximize_unfocus_pm, m_maximize_pressed_pm; - FbTk::ThemeItem m_iconify_pm, m_iconify_unfocus_pm, m_iconify_pressed_pm; - FbTk::ThemeItem m_shade_pm, m_shade_unfocus_pm, m_shade_pressed_pm; - FbTk::ThemeItem m_stick_pm, m_stick_unfocus_pm, m_stick_pressed_pm; - FbTk::ThemeItem m_stuck_pm, m_stuck_unfocus_pm; + FbTk::ThemeItem m_close_pm, m_close_unfocus_pm, m_close_pressed_pm; + FbTk::ThemeItem m_maximize_pm, m_maximize_unfocus_pm, m_maximize_pressed_pm; + FbTk::ThemeItem m_iconify_pm, m_iconify_unfocus_pm, m_iconify_pressed_pm; + FbTk::ThemeItem m_shade_pm, m_shade_unfocus_pm, m_shade_pressed_pm; + FbTk::ThemeItem m_stick_pm, m_stick_unfocus_pm, m_stick_pressed_pm; + FbTk::ThemeItem m_stuck_pm, m_stuck_unfocus_pm; const FbWinFrameTheme &m_frame_theme; }; -- cgit v0.11.2