diff options
-rw-r--r-- | src/FbTk/Resource.cc | 10 | ||||
-rw-r--r-- | src/FbWinFrame.cc | 53 | ||||
-rw-r--r-- | src/FbWinFrame.hh | 3 | ||||
-rw-r--r-- | src/FbWinFrameTheme.cc | 12 | ||||
-rw-r--r-- | src/FbWinFrameTheme.hh | 9 |
5 files changed, 18 insertions, 69 deletions
diff --git a/src/FbTk/Resource.cc b/src/FbTk/Resource.cc index cb45eac..3b857de 100644 --- a/src/FbTk/Resource.cc +++ b/src/FbTk/Resource.cc | |||
@@ -107,7 +107,15 @@ bool ResourceManager::load(const char *filename) { | |||
107 | */ | 107 | */ |
108 | bool ResourceManager::save(const char *filename, const char *mergefilename) { | 108 | bool ResourceManager::save(const char *filename, const char *mergefilename) { |
109 | assert(filename); | 109 | assert(filename); |
110 | filename = StringUtil::expandFilename(filename).c_str(); | 110 | |
111 | // these must be local variables; otherwise, the memory gets released by | ||
112 | // std::string, causing weird issues | ||
113 | string file_str = StringUtil::expandFilename(filename), mergefile_str; | ||
114 | filename = file_str.c_str(); | ||
115 | if (mergefilename) { | ||
116 | mergefile_str = StringUtil::expandFilename(mergefilename); | ||
117 | mergefilename = mergefile_str.c_str(); | ||
118 | } | ||
111 | 119 | ||
112 | // empty database | 120 | // empty database |
113 | XrmDatabaseHelper database; | 121 | XrmDatabaseHelper database; |
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc index 84f47f4..124883e 100644 --- a/src/FbWinFrame.cc +++ b/src/FbWinFrame.cc | |||
@@ -526,7 +526,7 @@ void FbWinFrame::setFocus(bool newvalue) { | |||
526 | if (newvalue) // focused | 526 | if (newvalue) // focused |
527 | applyFocusLabel(*m_current_label); | 527 | applyFocusLabel(*m_current_label); |
528 | else // unfocused | 528 | else // unfocused |
529 | applyActiveLabel(*m_current_label); | 529 | applyUnfocusLabel(*m_current_label); |
530 | } | 530 | } |
531 | 531 | ||
532 | applyAll(); | 532 | applyAll(); |
@@ -706,7 +706,7 @@ void FbWinFrame::setLabelButtonFocus(FbTk::TextButton &btn) { | |||
706 | if (m_focused) | 706 | if (m_focused) |
707 | applyFocusLabel(*m_current_label); | 707 | applyFocusLabel(*m_current_label); |
708 | else | 708 | else |
709 | applyActiveLabel(*m_current_label); | 709 | applyUnfocusLabel(*m_current_label); |
710 | } | 710 | } |
711 | 711 | ||
712 | void FbWinFrame::setLabelButtonFocus(FbTk::TextButton &btn, bool value) { | 712 | void FbWinFrame::setLabelButtonFocus(FbTk::TextButton &btn, bool value) { |
@@ -1315,10 +1315,6 @@ void FbWinFrame::renderTabContainer() { | |||
1315 | m_labelbutton_unfocused_pm, | 1315 | m_labelbutton_unfocused_pm, |
1316 | m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); | 1316 | m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); |
1317 | 1317 | ||
1318 | render(m_theme.labelActiveTexture(), m_labelbutton_active_color, | ||
1319 | m_labelbutton_active_pm, | ||
1320 | m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); | ||
1321 | |||
1322 | renderButtons(); | 1318 | renderButtons(); |
1323 | 1319 | ||
1324 | } | 1320 | } |
@@ -1468,7 +1464,7 @@ void FbWinFrame::init() { | |||
1468 | m_title_focused_pm = m_title_unfocused_pm = 0; | 1464 | m_title_focused_pm = m_title_unfocused_pm = 0; |
1469 | m_label_focused_pm = m_label_unfocused_pm = 0; | 1465 | m_label_focused_pm = m_label_unfocused_pm = 0; |
1470 | m_tabcontainer_focused_pm = m_tabcontainer_unfocused_pm = 0; | 1466 | m_tabcontainer_focused_pm = m_tabcontainer_unfocused_pm = 0; |
1471 | m_labelbutton_focused_pm = m_labelbutton_unfocused_pm = m_labelbutton_active_pm = 0; | 1467 | m_labelbutton_focused_pm = m_labelbutton_unfocused_pm = 0; |
1472 | m_handle_focused_pm = m_handle_unfocused_pm = 0; | 1468 | m_handle_focused_pm = m_handle_unfocused_pm = 0; |
1473 | m_button_pm = m_button_unfocused_pm = m_button_pressed_pm = 0; | 1469 | m_button_pm = m_button_unfocused_pm = m_button_pressed_pm = 0; |
1474 | m_grip_unfocused_pm = m_grip_focused_pm = 0; | 1470 | m_grip_unfocused_pm = m_grip_focused_pm = 0; |
@@ -1592,12 +1588,9 @@ void FbWinFrame::applyTabContainer() { | |||
1592 | Container::ItemList::iterator btn_it_end = m_tab_container.end(); | 1588 | Container::ItemList::iterator btn_it_end = m_tab_container.end(); |
1593 | for (; btn_it != btn_it_end; ++btn_it) { | 1589 | for (; btn_it != btn_it_end; ++btn_it) { |
1594 | FbTk::TextButton *btn = static_cast<FbTk::TextButton *>(*btn_it); | 1590 | FbTk::TextButton *btn = static_cast<FbTk::TextButton *>(*btn_it); |
1595 | if (btn == m_current_label) { | 1591 | if (btn == m_current_label && m_focused) |
1596 | if (m_focused) | 1592 | applyFocusLabel(*btn); |
1597 | applyFocusLabel(*btn); | 1593 | else |
1598 | else | ||
1599 | applyActiveLabel(*btn); | ||
1600 | } else | ||
1601 | applyUnfocusLabel(*btn); | 1594 | applyUnfocusLabel(*btn); |
1602 | } | 1595 | } |
1603 | } | 1596 | } |
@@ -1669,19 +1662,6 @@ void FbWinFrame::applyFocusLabel(FbTk::TextButton &button) { | |||
1669 | 1662 | ||
1670 | } | 1663 | } |
1671 | 1664 | ||
1672 | void FbWinFrame::applyActiveLabel(FbTk::TextButton &button) { | ||
1673 | |||
1674 | button.setGC(theme().labelTextActiveGC()); | ||
1675 | button.setJustify(theme().justify()); | ||
1676 | button.setAlpha(getAlpha(m_focused)); | ||
1677 | |||
1678 | if (m_labelbutton_active_pm != 0) { | ||
1679 | button.setBackgroundPixmap(m_labelbutton_active_pm); | ||
1680 | } else | ||
1681 | button.setBackgroundColor(m_labelbutton_active_color); | ||
1682 | |||
1683 | } | ||
1684 | |||
1685 | void FbWinFrame::applyUnfocusLabel(FbTk::TextButton &button) { | 1665 | void FbWinFrame::applyUnfocusLabel(FbTk::TextButton &button) { |
1686 | 1666 | ||
1687 | button.setGC(theme().labelTextUnfocusGC()); | 1667 | button.setGC(theme().labelTextUnfocusGC()); |
@@ -1695,27 +1675,6 @@ void FbWinFrame::applyUnfocusLabel(FbTk::TextButton &button) { | |||
1695 | 1675 | ||
1696 | } | 1676 | } |
1697 | 1677 | ||
1698 | namespace { | ||
1699 | class IgnoreEvent { | ||
1700 | public: | ||
1701 | typedef void result_type; | ||
1702 | typedef Window argument_type; | ||
1703 | explicit IgnoreEvent(long eventmask): | ||
1704 | m_display(FbTk::App::instance()->display()), | ||
1705 | m_event_mask(eventmask) { | ||
1706 | } | ||
1707 | |||
1708 | void operator()(Window win) const { | ||
1709 | static XEvent event; | ||
1710 | while (XCheckWindowEvent(m_display, win, m_event_mask, &event)) | ||
1711 | continue; | ||
1712 | } | ||
1713 | private: | ||
1714 | Display *m_display; | ||
1715 | long m_event_mask; | ||
1716 | }; | ||
1717 | } | ||
1718 | |||
1719 | // this function translates its arguments according to win_gravity | 1678 | // this function translates its arguments according to win_gravity |
1720 | // if win_gravity is negative, it does an inverse translation | 1679 | // if win_gravity is negative, it does an inverse translation |
1721 | // This function should be used when a window is mapped/unmapped/pos configured | 1680 | // This function should be used when a window is mapped/unmapped/pos configured |
diff --git a/src/FbWinFrame.hh b/src/FbWinFrame.hh index a75d8a1..ff8df83 100644 --- a/src/FbWinFrame.hh +++ b/src/FbWinFrame.hh | |||
@@ -281,7 +281,6 @@ private: | |||
281 | void applyTabContainer(); // and label buttons | 281 | void applyTabContainer(); // and label buttons |
282 | void applyFocusLabel(FbTk::TextButton &button); | 282 | void applyFocusLabel(FbTk::TextButton &button); |
283 | void applyUnfocusLabel(FbTk::TextButton &button); | 283 | void applyUnfocusLabel(FbTk::TextButton &button); |
284 | void applyActiveLabel(FbTk::TextButton &button); | ||
285 | void applyButtons(); // only called within applyTitlebar | 284 | void applyButtons(); // only called within applyTitlebar |
286 | 285 | ||
287 | void getCurrentFocusPixmap(Pixmap &label_pm, Pixmap &title_pm, | 286 | void getCurrentFocusPixmap(Pixmap &label_pm, Pixmap &title_pm, |
@@ -353,8 +352,6 @@ private: | |||
353 | FbTk::Color m_labelbutton_focused_color; ///< color for focused label | 352 | FbTk::Color m_labelbutton_focused_color; ///< color for focused label |
354 | Pixmap m_labelbutton_unfocused_pm; ///< pixmap for unfocused label | 353 | Pixmap m_labelbutton_unfocused_pm; ///< pixmap for unfocused label |
355 | FbTk::Color m_labelbutton_unfocused_color; ///< color for unfocused label | 354 | FbTk::Color m_labelbutton_unfocused_color; ///< color for unfocused label |
356 | Pixmap m_labelbutton_active_pm; ///< pixmap for active label | ||
357 | FbTk::Color m_labelbutton_active_color; ///< color for active label | ||
358 | 355 | ||
359 | FbTk::Color m_handle_focused_color, m_handle_unfocused_color; | 356 | FbTk::Color m_handle_focused_color, m_handle_unfocused_color; |
360 | Pixmap m_handle_focused_pm, m_handle_unfocused_pm; | 357 | Pixmap m_handle_focused_pm, m_handle_unfocused_pm; |
diff --git a/src/FbWinFrameTheme.cc b/src/FbWinFrameTheme.cc index 72f42fe..e4bc196 100644 --- a/src/FbWinFrameTheme.cc +++ b/src/FbWinFrameTheme.cc | |||
@@ -30,7 +30,6 @@ FbWinFrameTheme::FbWinFrameTheme(int screen_num): | |||
30 | FbTk::Theme(screen_num), | 30 | FbTk::Theme(screen_num), |
31 | m_label_focus(*this, "window.label.focus", "Window.Label.Focus"), | 31 | m_label_focus(*this, "window.label.focus", "Window.Label.Focus"), |
32 | m_label_unfocus(*this, "window.label.unfocus", "Window.Label.Unfocus"), | 32 | m_label_unfocus(*this, "window.label.unfocus", "Window.Label.Unfocus"), |
33 | m_label_active(*this, "window.label.active", "Window.Label.Active"), | ||
34 | 33 | ||
35 | m_title_focus(*this, "window.title.focus", "Window.Title.Focus"), | 34 | m_title_focus(*this, "window.title.focus", "Window.Title.Focus"), |
36 | m_title_unfocus(*this, "window.title.unfocus", "Window.Title.Unfocus"), | 35 | m_title_unfocus(*this, "window.title.unfocus", "Window.Title.Unfocus"), |
@@ -47,7 +46,6 @@ FbWinFrameTheme::FbWinFrameTheme(int screen_num): | |||
47 | 46 | ||
48 | m_label_focus_color(*this, "window.label.focus.textColor", "Window.Label.Focus.TextColor"), | 47 | m_label_focus_color(*this, "window.label.focus.textColor", "Window.Label.Focus.TextColor"), |
49 | m_label_unfocus_color(*this, "window.label.unfocus.textColor", "Window.Label.Unfocus.TextColor"), | 48 | m_label_unfocus_color(*this, "window.label.unfocus.textColor", "Window.Label.Unfocus.TextColor"), |
50 | m_label_active_color(*this, "window.label.active.textColor", "Window.Label.Active.TextColor"), | ||
51 | 49 | ||
52 | m_button_focus_color(*this, "window.button.focus.picColor", "Window.Button.Focus.PicColor"), | 50 | m_button_focus_color(*this, "window.button.focus.picColor", "Window.Button.Focus.PicColor"), |
53 | m_button_unfocus_color(*this, "window.button.unfocus.picColor", "Window.Button.Unfocus.PicColor"), | 51 | m_button_unfocus_color(*this, "window.button.unfocus.picColor", "Window.Button.Unfocus.PicColor"), |
@@ -61,7 +59,6 @@ FbWinFrameTheme::FbWinFrameTheme(int screen_num): | |||
61 | m_border(*this, "window", "Window"), // for window.border* | 59 | m_border(*this, "window", "Window"), // for window.border* |
62 | m_label_text_focus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), | 60 | m_label_text_focus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), |
63 | m_label_text_unfocus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), | 61 | m_label_text_unfocus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), |
64 | m_label_text_active_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), | ||
65 | m_button_pic_focus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), | 62 | m_button_pic_focus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), |
66 | m_button_pic_unfocus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), | 63 | m_button_pic_unfocus_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), |
67 | m_focused_alpha(255), | 64 | m_focused_alpha(255), |
@@ -95,14 +92,6 @@ bool FbWinFrameTheme::fallback(FbTk::ThemeItem_base &item) { | |||
95 | return FbTk::ThemeManager::instance().loadItem(item, "bevelWidth", "bevelWidth"); | 92 | return FbTk::ThemeManager::instance().loadItem(item, "bevelWidth", "bevelWidth"); |
96 | else if (item.name() == "window.handleWidth") | 93 | else if (item.name() == "window.handleWidth") |
97 | return FbTk::ThemeManager::instance().loadItem(item, "handleWidth", "HandleWidth"); | 94 | return FbTk::ThemeManager::instance().loadItem(item, "handleWidth", "HandleWidth"); |
98 | else if (item.name() == "window.label.active") { | ||
99 | // copy texture | ||
100 | *m_label_active = *m_label_unfocus; | ||
101 | return true; | ||
102 | } else if (item.name() == "window.label.active.textColor") { | ||
103 | return FbTk::ThemeManager::instance().loadItem(item, "window.label.unfocus.textColor", | ||
104 | "Window.Label.Unfocus.TextColor"); | ||
105 | } | ||
106 | 95 | ||
107 | return false; | 96 | return false; |
108 | } | 97 | } |
@@ -120,7 +109,6 @@ void FbWinFrameTheme::reconfigTheme() { | |||
120 | 109 | ||
121 | m_label_text_focus_gc.setForeground(*m_label_focus_color); | 110 | m_label_text_focus_gc.setForeground(*m_label_focus_color); |
122 | m_label_text_unfocus_gc.setForeground(*m_label_unfocus_color); | 111 | m_label_text_unfocus_gc.setForeground(*m_label_unfocus_color); |
123 | m_label_text_active_gc.setForeground(*m_label_active_color); | ||
124 | m_button_pic_focus_gc.setForeground(*m_button_focus_color); | 112 | m_button_pic_focus_gc.setForeground(*m_button_focus_color); |
125 | m_button_pic_unfocus_gc.setForeground(*m_button_unfocus_color); | 113 | m_button_pic_unfocus_gc.setForeground(*m_button_unfocus_color); |
126 | } | 114 | } |
diff --git a/src/FbWinFrameTheme.hh b/src/FbWinFrameTheme.hh index 0feadd3..319e01b 100644 --- a/src/FbWinFrameTheme.hh +++ b/src/FbWinFrameTheme.hh | |||
@@ -45,7 +45,6 @@ public: | |||
45 | //@{ | 45 | //@{ |
46 | const FbTk::Texture &labelFocusTexture() const { return *m_label_focus; } | 46 | const FbTk::Texture &labelFocusTexture() const { return *m_label_focus; } |
47 | const FbTk::Texture &labelUnfocusTexture() const { return *m_label_unfocus; } | 47 | const FbTk::Texture &labelUnfocusTexture() const { return *m_label_unfocus; } |
48 | const FbTk::Texture &labelActiveTexture() const { return *m_label_active; } | ||
49 | const FbTk::ThemeItem<FbTk::Texture> &label() const { return m_label_unfocus; } | 48 | const FbTk::ThemeItem<FbTk::Texture> &label() const { return m_label_unfocus; } |
50 | const FbTk::Texture &titleFocusTexture() const { return *m_title_focus; } | 49 | const FbTk::Texture &titleFocusTexture() const { return *m_title_focus; } |
51 | const FbTk::Texture &titleUnfocusTexture() const { return *m_title_unfocus; } | 50 | const FbTk::Texture &titleUnfocusTexture() const { return *m_title_unfocus; } |
@@ -67,7 +66,6 @@ public: | |||
67 | //@{ | 66 | //@{ |
68 | const FbTk::Color &labelFocusColor() const { return *m_label_focus_color; } | 67 | const FbTk::Color &labelFocusColor() const { return *m_label_focus_color; } |
69 | const FbTk::Color &labelUnfocusColor() const { return *m_label_unfocus_color; } | 68 | const FbTk::Color &labelUnfocusColor() const { return *m_label_unfocus_color; } |
70 | const FbTk::Color &labelActiveColor() const { return *m_label_active_color; } | ||
71 | 69 | ||
72 | const FbTk::Color &buttonFocuscolor() const { return *m_button_focus_color; } | 70 | const FbTk::Color &buttonFocuscolor() const { return *m_button_focus_color; } |
73 | const FbTk::Color &buttonUnfocuscolor() const { return *m_button_unfocus_color; } | 71 | const FbTk::Color &buttonUnfocuscolor() const { return *m_button_unfocus_color; } |
@@ -78,7 +76,6 @@ public: | |||
78 | 76 | ||
79 | GC labelTextFocusGC() const { return m_label_text_focus_gc.gc(); } | 77 | GC labelTextFocusGC() const { return m_label_text_focus_gc.gc(); } |
80 | GC labelTextUnfocusGC() const { return m_label_text_unfocus_gc.gc(); } | 78 | GC labelTextUnfocusGC() const { return m_label_text_unfocus_gc.gc(); } |
81 | GC labelTextActiveGC() const { return m_label_text_active_gc.gc(); } | ||
82 | GC buttonPicFocusGC() const { return m_button_pic_focus_gc.gc(); } | 79 | GC buttonPicFocusGC() const { return m_button_pic_focus_gc.gc(); } |
83 | GC buttonPicUnfocusGC() const { return m_button_pic_unfocus_gc.gc(); } | 80 | GC buttonPicUnfocusGC() const { return m_button_pic_unfocus_gc.gc(); } |
84 | 81 | ||
@@ -104,13 +101,13 @@ public: | |||
104 | void setUnfocusedAlpha(unsigned char alpha) { m_unfocused_alpha = alpha; } | 101 | void setUnfocusedAlpha(unsigned char alpha) { m_unfocused_alpha = alpha; } |
105 | 102 | ||
106 | private: | 103 | private: |
107 | FbTk::ThemeItem<FbTk::Texture> m_label_focus, m_label_unfocus, m_label_active; | 104 | FbTk::ThemeItem<FbTk::Texture> m_label_focus, m_label_unfocus; |
108 | FbTk::ThemeItem<FbTk::Texture> m_title_focus, m_title_unfocus; | 105 | FbTk::ThemeItem<FbTk::Texture> m_title_focus, m_title_unfocus; |
109 | FbTk::ThemeItem<FbTk::Texture> m_handle_focus, m_handle_unfocus; | 106 | FbTk::ThemeItem<FbTk::Texture> m_handle_focus, m_handle_unfocus; |
110 | FbTk::ThemeItem<FbTk::Texture> m_button_focus, m_button_unfocus, m_button_pressed; | 107 | FbTk::ThemeItem<FbTk::Texture> m_button_focus, m_button_unfocus, m_button_pressed; |
111 | FbTk::ThemeItem<FbTk::Texture> m_grip_focus, m_grip_unfocus; | 108 | FbTk::ThemeItem<FbTk::Texture> m_grip_focus, m_grip_unfocus; |
112 | 109 | ||
113 | FbTk::ThemeItem<FbTk::Color> m_label_focus_color, m_label_unfocus_color, m_label_active_color; | 110 | FbTk::ThemeItem<FbTk::Color> m_label_focus_color, m_label_unfocus_color; |
114 | FbTk::ThemeItem<FbTk::Color> m_button_focus_color, m_button_unfocus_color; | 111 | FbTk::ThemeItem<FbTk::Color> m_button_focus_color, m_button_unfocus_color; |
115 | 112 | ||
116 | FbTk::ThemeItem<FbTk::Font> m_font; | 113 | FbTk::ThemeItem<FbTk::Font> m_font; |
@@ -120,7 +117,7 @@ private: | |||
120 | FbTk::ThemeItem<int> m_title_height, m_bevel_width, m_handle_width; | 117 | FbTk::ThemeItem<int> m_title_height, m_bevel_width, m_handle_width; |
121 | BorderTheme m_border; | 118 | BorderTheme m_border; |
122 | 119 | ||
123 | FbTk::GContext m_label_text_focus_gc, m_label_text_unfocus_gc, m_label_text_active_gc; | 120 | FbTk::GContext m_label_text_focus_gc, m_label_text_unfocus_gc; |
124 | FbTk::GContext m_button_pic_focus_gc, m_button_pic_unfocus_gc; | 121 | FbTk::GContext m_button_pic_focus_gc, m_button_pic_unfocus_gc; |
125 | 122 | ||
126 | Cursor m_cursor_move; | 123 | Cursor m_cursor_move; |