Index: ToolFactory.cc =================================================================== --- ToolFactory.cc (Revision 4037) +++ ToolFactory.cc (Arbeitskopie) @@ -152,13 +152,9 @@ } void ToolFactory::updateThemes() { - m_clock_theme.setAntialias(screen().antialias()); m_clock_theme.reconfigTheme(); - m_iconbar_theme.setAntialias(screen().antialias()); m_iconbar_theme.reconfigTheme(); - m_button_theme->setAntialias(screen().antialias()); m_button_theme->reconfigTheme(); - m_workspace_theme->setAntialias(screen().antialias()); m_workspace_theme->reconfigTheme(); } Index: TextTheme.cc =================================================================== --- TextTheme.cc (Revision 4037) +++ TextTheme.cc (Arbeitskopie) @@ -34,6 +34,9 @@ m_text_color(theme, name + ".textColor", altname + ".TextColor"), m_justify(theme, name + ".justify", altname + ".Justify"), m_text_gc(RootWindow(FbTk::App::instance()->display(), theme.screenNum())) { + *m_justify = FbTk::LEFT; + // set default values + m_text_color->setFromString("white", theme.screenNum()); update(); } @@ -45,9 +48,3 @@ void TextTheme::update() { m_text_gc.setForeground(*m_text_color); } - - -void TextTheme::setAntialias(bool value) { - font().setAntialias(value); - FbTk::ThemeManager::instance().loadItem(m_font); -} Index: Screen.cc =================================================================== --- Screen.cc (Revision 4037) +++ Screen.cc (Arbeitskopie) @@ -310,14 +310,6 @@ imageControl().setDither(*resource.image_dither); - // setup windowtheme for antialias - // before we load the theme - - winFrameTheme().font().setAntialias(*resource.antialias); - menuTheme().titleFont().setAntialias(*resource.antialias); - menuTheme().frameFont().setAntialias(*resource.antialias); - - winFrameTheme().reconfigSig().attach(this);// for geom window @@ -343,7 +335,8 @@ // own resources we must do this. fluxbox->load_rc(*this); - m_configmenu.reset(createMenu(_FBTEXT(Menu, Configuration, "Configuration", "Title of configuration menu"))); + m_configmenu.reset(createMenu(_FBTEXT(Menu, Configuration, + "Configuration", "Title of configuration menu"))); setupConfigmenu(*m_configmenu.get()); m_configmenu->setInternalMenu(); @@ -673,11 +666,6 @@ m_menutheme->setDelayOpen(*resource.menu_delay); m_menutheme->setDelayClose(*resource.menu_delay_close); - // setup windowtheme, toolbartheme for antialias - winFrameTheme().font().setAntialias(*resource.antialias); - m_menutheme->titleFont().setAntialias(*resource.antialias); - m_menutheme->frameFont().setAntialias(*resource.antialias); - renderGeomWindow(); renderPosWindow(); @@ -849,13 +837,6 @@ } -void BScreen::setAntialias(bool value) { - if (*resource.antialias == value) - return; - resource.antialias = value; - reconfigure(); -} - int BScreen::addWorkspace() { bool save_name = getNameOfWorkspace(m_workspaces_list.size()) != "" ? false : true; @@ -1807,12 +1788,6 @@ _BOOLITEM(Configmenu, ClickRaises, "Click Raises", "Click Raises", *resource.click_raises, saverc_cmd); -#ifdef USE_XFT - // setup antialias cmd to reload style and save resource on toggle - _BOOLITEM(Configmenu, AntiAlias, - "AntiAlias", "Use Anti-aliased fonts", - *resource.antialias, save_and_reconfigure); -#endif // USE_XFT #ifdef HAVE_XRENDER if (FbTk::Transparent::haveRender() || Index: tests/menutest.cc =================================================================== --- tests/menutest.cc (Revision 4037) +++ tests/menutest.cc (Arbeitskopie) @@ -73,8 +73,8 @@ m_menu_theme(DefaultScreen(display())), m_menu(m_menu_theme, m_image_ctrl) { - m_menu_theme.frameFont().setAntialias(true); - m_menu_theme.titleFont().setAntialias(true); + //m_menu_theme.frameFont().setAntialias(true); + //m_menu_theme.titleFont().setAntialias(true); cerr<<"Loading menu: "<"<"<"<setType(type); } return true; Index: IconbarTheme.cc =================================================================== --- IconbarTheme.cc (Revision 4037) +++ IconbarTheme.cc (Arbeitskopie) @@ -53,11 +53,6 @@ m_unfocused_text.update(); } -void IconbarTheme::setAntialias(bool value) { - m_focused_text.setAntialias(value); - m_unfocused_text.setAntialias(value); -} - // fallback resources bool IconbarTheme::fallback(FbTk::ThemeItem_base &item) { using namespace FbTk; Index: FbTk/XftFontImp.cc =================================================================== --- FbTk/XftFontImp.cc (Revision 4037) +++ FbTk/XftFontImp.cc (Arbeitskopie) @@ -33,7 +33,6 @@ XftFontImp::XftFontImp(const char *name, bool utf8):m_xftfont(0), m_utf8mode(utf8) { - if (name != 0) load(name); } Index: FbTk/XmbFontImp.cc =================================================================== --- FbTk/XmbFontImp.cc (Revision 4037) +++ FbTk/XmbFontImp.cc (Arbeitskopie) @@ -138,7 +138,8 @@ #ifdef HAVE_SETLOCALE if (! fs) { - if (nmissing) XFreeStringList(missing); + if (nmissing) + XFreeStringList(missing); setlocale(LC_CTYPE, "C"); fs = XCreateFontSet(display, fontname, @@ -146,14 +147,29 @@ setlocale(LC_CTYPE, orig_locale.c_str()); } #endif // HAVE_SETLOCALE - +/* TODO: think about this: + * if no fontset is found up to this point its because of + * a) no such font + * b) not supported locale + * + * if we try our best and enhance the basename-list and add some + * more generic patterns the xserver will give us a valid + * fontset .. which is good coz we have something to work with + * but which is BAD coz we return a valid fontset as if we + * have found the font the user wants .. so, every fallback + * in higher level code will fail coz we find a valid fontset by any + * meaning here. if no fontset can be found, the "fixed"-fontset should + * be there already. + * + * hence i tend to throw out that. (mathias 050531) + * if (fs) { XFontStruct **fontstructs; char **fontnames; XFontsOfFontSet(fs, &fontstructs, &fontnames); fontname = fontnames[0]; } - + getFontElement(fontname, weight, FONT_ELEMENT_SIZE, "-medium-", "-bold-", "-demibold-", "-regular-", NULL); getFontElement(fontname, slant, FONT_ELEMENT_SIZE, @@ -177,7 +193,7 @@ "-*-*-*-*-*-*-%d-*-*-*-*-*-*-*,*", fontname, weight, slant, pixel_size, pixel_size); fontname = pattern2; - + if (nmissing) XFreeStringList(missing); if (fs) @@ -186,7 +202,7 @@ fs = XCreateFontSet(display, fontname, &missing, &nmissing, &def); delete [] pattern2; - +*/ #ifdef HAVE_SETLOCALE if (utf8mode) setlocale(LC_CTYPE, orig_locale.c_str()); @@ -206,6 +222,7 @@ } XmbFontImp::~XmbFontImp() { + printf("%s %x\n", __FUNCTION__, this); if (m_fontset != 0) XFreeFontSet(App::instance()->display(), m_fontset); } Index: FbTk/MenuTheme.cc =================================================================== --- FbTk/MenuTheme.cc (Revision 4037) +++ FbTk/MenuTheme.cc (Arbeitskopie) @@ -171,19 +171,4 @@ // do nothing, we don't have anything extra to load } -template <> -void ThemeItem::setDefaultValue() { - m_value = 0; -} - -template <> -void ThemeItem::setFromString(const char *str) { - sscanf(str, "%d", &m_value); -} - -template <> -void ThemeItem::load(const std::string *name, const std::string *altname) { -} - - }; // end namespace FbTk Index: FbTk/Texture.cc =================================================================== --- FbTk/Texture.cc (Revision 4037) +++ FbTk/Texture.cc (Arbeitskopie) @@ -57,9 +57,7 @@ } else { setType(Texture::NONE); - if (strstr(ts, "solid")) - addType(Texture::SOLID); - else if (strstr(ts, "gradient")) { + if (strstr(ts, "gradient")) { addType(Texture::GRADIENT); if (strstr(ts, "crossdiagonal")) addType(Texture::CROSSDIAGONAL); @@ -79,17 +77,15 @@ addType(Texture::VERTICAL); else addType(Texture::DIAGONAL); - } else + } else // default is "solid", according to ThemeItems.cc addType(Texture::SOLID); if (strstr(ts, "raised")) addType(Texture::RAISED); else if (strstr(ts, "sunken")) addType(Texture::SUNKEN); - else if (strstr(ts, "flat")) - addType(Texture::FLAT); - else - addType(Texture::RAISED); + else // default us "flat", according to ThemeItems.cc + addType(Texture::FLAT); if (! (type() & Texture::FLAT)) if (strstr(ts, "bevel2")) Index: FbTk/ThemeItems.cc =================================================================== --- FbTk/ThemeItems.cc (Revision 4037) +++ FbTk/ThemeItems.cc (Arbeitskopie) @@ -26,6 +26,10 @@ #ifndef THEMEITEMS_HH #define THEMEITEMS_HH +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif // HAVE_CONFIG_H + #include "Theme.hh" #include "Color.hh" #include "Texture.hh" @@ -98,10 +102,49 @@ } template <> +void ThemeItem::setDefaultValue() { + m_value = 0; +} + +template <> +void ThemeItem::setFromString(const char *str) { + sscanf(str, "%d", &m_value); +} + +template <> +void ThemeItem::load(const std::string *name, const std::string *altname) { +} + + +namespace { + +void setFontExtraOptions(Font& font, const string& name, const string& altname) { + +/* TODO: implement these, just check if it works + ThemeItem halo(theme(), name() + ".halo", altName() + ".Halo"); + ThemeItem halo_color(theme(), name() + ".haloColor", altName() + ".HaloColor"); + + ThemeItem shadow(theme(), name() + ".shadow", altName() + ".Shadow"); + ThemeItem shadow_color(theme(), name() + ".shadowColor", altName() + ".ShadowColor"); + ThemeItem shadow_offx(theme(), name() + ".shadowOffX", altName() + ".ShadowOffX"); + ThemeItem shadow_offy(theme(), name() + ".shadowOffY", altName() + ".ShadowOffY"); + + m_value.setHalo(*halo); + m_value.setHaloColor(*halo_color); + m_value.setShadow(*shadow); + m_value.setShadowColor(*shadow_color); + m_value.setShadowOffX(*shadow_offx); + m_value.setShadowOffY(*shadow_offy); +*/ +} + +}; // end of anonymous namespace + void ThemeItem::setDefaultValue() { if (!m_value.load("fixed")) { cerr<<"ThemeItem: Warning! Failed to load default value 'fixed'"< @@ -110,19 +153,14 @@ if (str == 0 || m_value.load(str) == false) { if (ThemeManager::instance().verbose()) { cerr<<"Theme: Error loading font "<< - ((m_value.isAntialias() || m_value.utf8()) ? "(" : "")<< - - (m_value.isAntialias() ? "antialias" : "")<< - (m_value.utf8() ? " utf8" : "")<< - - ((m_value.isAntialias() || m_value.utf8()) ? ") " : "")<< + ((m_value.utf8()) ? "(utf8)" : "")<< "for \""< #endif #include +#include #include #include @@ -148,78 +150,24 @@ } #endif // HAVE_ICONV -int extract_halo_options(const std::string& opts, std::string& color) { - std::list< std::string > tokens; - size_t sep= opts.find_first_of(':'); +// use to map || => +typedef std::map StringMap; +typedef StringMap::iterator StringMapIt; +StringMap lookup_map; - if ( sep == std::string::npos ) - return 1; +// stores FontCache; +typedef FontCache::iterator FontCacheIt; +FontCache font_cache; - FbTk::StringUtil::stringtok(tokens, opts.substr(sep + 1, opts.length()), ";"); - tokens.unique(); - std::list< std::string >::const_iterator token; - - for ( token= tokens.begin(); token != tokens.end(); token++ ) { - if ( (*token).find("color=", 0) != std::string::npos ) { - size_t s= (*token).find_first_of('='); - std::string c= (*token).substr(s + 1, (*token).length()); - if ( !c.empty() ) - std::swap(color, c); - } - } - - return 1; -} - -int extract_shadow_options(const std::string& opts, - std::string& color, - int& offx, int& offy) { - - std::list< std::string > tokens; - size_t sep= opts.find_first_of(':'); - - if ( sep == std::string::npos ) - return 1; - - FbTk::StringUtil::stringtok(tokens, opts.substr(sep + 1, opts.length()), ";"); - tokens.unique(); - std::list< std::string >::const_iterator token; - - for ( token= tokens.begin(); token != tokens.end(); token++ ) { - if ( (*token).find("color=", 0) != std::string::npos ) { - size_t s= (*token).find_first_of('='); - std::string c= (*token).substr(s + 1, (*token).length()); - if ( !c.empty() ) - std::swap(color, c); - } - else if ( (*token).find("offsetx=", 0) != std::string::npos ) { - size_t s= (*token).find_first_of('='); - FbTk_istringstream o((*token).substr(s + 1, (*token).length()).c_str()); - if ( !o.eof() ) { - o >> offx; - } - } - else if ( (*token).find("offsety=", 0) != std::string::npos ) { - size_t s= (*token).find_first_of('='); - FbTk_istringstream o((*token).substr(s + 1, (*token).length()).c_str()); - if ( !o.eof() ) { - o >> offy; - } - } - } - - return 1; - -}; - }; // end nameless namespace namespace FbTk { -bool Font::m_multibyte = false; -bool Font::m_utf8mode = false; +bool Font::s_multibyte = false; +bool Font::s_utf8mode = false; void Font::init() { @@ -229,24 +177,34 @@ void Font::shutdown() { + FontCacheIt fit; + for (fit = font_cache.begin(); fit != font_cache.end(); fit++) { + FontImp* font = fit->second; + if (font) { + FontCacheIt it; + for (it = fit; it != font_cache.end(); it++) + if (it->second == font) + it->second = 0; + delete font; + } + } } -Font::Font(const char *name, bool antialias): +Font::Font(const char *name): m_fontimp(0), - m_antialias(false), m_rotated(false), - m_shadow(false), m_shadow_color("#000000"), - m_shadow_offx(1), m_shadow_offy(1), - m_halo(false), m_halo_color("#ffffff"), + m_rotated(false), + m_shadow(false), m_shadow_color("black", DefaultScreen(App::instance()->display())), + m_shadow_offx(2), m_shadow_offy(2), + m_halo(false), m_halo_color("white", DefaultScreen(App::instance()->display())), #ifdef HAVE_ICONV m_iconv((iconv_t)(-1)) #else m_iconv(-1) #endif // HAVE_ICONV { - // MB_CUR_MAX returns the size of a char in the current locale if (MB_CUR_MAX > 1) // more than one byte, then we're multibyte - m_multibyte = true; + s_multibyte = true; // check for utf-8 mode #ifdef CODESET @@ -256,7 +214,7 @@ #endif // CODESET if (locale_codeset && strcmp("UTF-8", locale_codeset) == 0) { - m_utf8mode = true; + s_utf8mode = true; } else if (locale_codeset != 0) { // if locale isn't UTF-8 we try to // create a iconv pointer so we can @@ -272,13 +230,13 @@ cerr<<"FbTk::Font: code error: from "< extract 'halo' and 'shadow' and - // load remaining fname - size_t sep= name.find_first_of(':'); + // check if one of || is already there + if ((lookup_entry = lookup_map.find(name)) != lookup_map.end() && + (cache_entry = font_cache.find(lookup_entry->second)) != font_cache.end()) { + m_fontstr = cache_entry->first; + m_fontimp = cache_entry->second; + return true; + } + + // split up the namelist + typedef std::list StringList; + typedef StringList::iterator StringListIt; + StringList names; + FbTk::StringUtil::stringtok(names, name, "|"); + + StringListIt name_it; + for (name_it = names.begin(); name_it != names.end(); name_it++) { + FbTk::StringUtil::removeTrailingWhitespace(*name_it); + FbTk::StringUtil::removeFirstWhitespace(*name_it); - if ( sep != std::string::npos ) { - - std::list< std::string > tokens; - std::string fname; - - fname= std::string(name.c_str(), sep); - - FbTk::StringUtil::stringtok(tokens, name.substr(sep + 1), ","); - - tokens.unique(); - bool firstone= true; - std::list< std::string >::const_iterator token; - - // check tokens and extract extraoptions for halo and shadow - for( token= tokens.begin(); token != tokens.end(); token++ ) { - if ( (*token).find("halo",0) != std::string::npos ) { - m_halo= true; - extract_halo_options(*token, m_halo_color); + if ((cache_entry = font_cache.find(*name_it)) != font_cache.end()) { + m_fontstr = cache_entry->first; + m_fontimp = cache_entry->second; + lookup_map[name] = m_fontstr; + return true; + } +#ifdef USE_XFT + if (!m_fontimp && ((*name_it)[0] != '-')) { + m_fontimp = new XftFontImp(0, s_utf8mode); + } +#endif // USE_XFT + + if (!m_fontimp && ((*name_it)[0] == '-')) { +#ifdef USE_XMB + if (s_multibyte || s_utf8mode) { + m_fontimp = new XmbFontImp(0, s_utf8mode); } - else if ( (*token).find("shadow", 0) != std::string::npos ) { - m_shadow= true; - extract_shadow_options(*token, m_shadow_color, m_shadow_offx, m_shadow_offy); + else // basic font implementation +#endif // USE_XMB + { + m_fontimp = new XFontImp(); } - else { - if ( !firstone ) - fname+= ", "; - else - firstone= false; - fname= fname + ":" + *token; - } } - m_fontstr = fname; - } else - m_fontstr = name; + if (m_fontimp && m_fontimp->load((*name_it).c_str())) { + lookup_map[name] = (*name_it); + font_cache[(*name_it)] = m_fontimp; + m_fontstr = name; + return true; + } else { + delete m_fontimp; + m_fontimp = 0; + } + } - return m_fontimp->load(m_fontstr.c_str()); + return false;; } unsigned int Font::textWidth(const char * const text, unsigned int size) const { @@ -449,14 +377,14 @@ if (first_run) { if (m_shadow) { FbTk::GContext shadow_gc(w); - shadow_gc.setForeground(FbTk::Color(m_shadow_color.c_str(), screen)); + shadow_gc.setForeground(m_shadow_color); first_run = false; drawText(w, screen, shadow_gc.gc(), real_text, len, x + m_shadow_offx, y + m_shadow_offy, rotate); first_run = true; } else if (m_halo) { FbTk::GContext halo_gc(w); - halo_gc.setForeground(FbTk::Color(m_halo_color.c_str(), screen)); + halo_gc.setForeground(m_halo_color); first_run = false; drawText(w, screen, halo_gc.gc(), real_text, len, x + 1, y + 1, rotate); drawText(w, screen, halo_gc.gc(), real_text, len, x - 1, y + 1, rotate); @@ -473,7 +401,7 @@ // Using dynamic_cast just temporarly until there's a better solution // to put in FontImp try { - XFontImp *font = dynamic_cast(m_fontimp.get()); + XFontImp *font = dynamic_cast(m_fontimp); font->setRotate(false); // disable rotation temporarly font->drawText(w, screen, gc, real_text, len, x, y); @@ -492,15 +420,16 @@ } void Font::rotate(float angle) { +/* TODO: reimplement rotated text #ifdef USE_XFT // if we are rotated and we are changing to horiz text // and we were antialiased before we rotated then change to XftFontImp - if (isRotated() && angle == 0 && isAntialias()) - m_fontimp.reset(new XftFontImp(m_fontstr.c_str(), m_utf8mode)); + if (isRotated() && angle == 0 && !m_xftfontstr.empty()) + m_fontimp.reset(new XftFontImp(m_fontstr.c_str(),s_utf8mode)); #endif // USE_XFT // change to a font imp that handles rotated fonts (i.e just XFontImp at the moment) // if we're going to rotate this font - if (angle != 0 && isAntialias() && !isRotated()) { + if (angle != 0 && !isRotated()) { m_fontimp.reset(new XFontImp(m_fontstr.c_str())); if (!m_fontimp->loaded()) // if it failed to load font, try default font fixed m_fontimp->load("fixed"); @@ -511,6 +440,7 @@ m_rotated = (angle == 0 ? false : true); m_angle = angle; + */ } Index: FbTk/Font.hh =================================================================== --- FbTk/Font.hh (Revision 4037) +++ FbTk/Font.hh (Arbeitskopie) @@ -28,7 +28,6 @@ #include #include -#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -38,6 +37,8 @@ #include #endif // HAVE_ICONV +#include "Color.hh" + namespace FbTk { class FontImp; @@ -56,13 +57,13 @@ static void shutdown(); /// @return true if multibyte is enabled, else false - static bool multibyte() { return m_multibyte; } + static bool multibyte() { return s_multibyte; } /// @return true if utf-8 mode is enabled, else false - static bool utf8() { return m_utf8mode; } + static bool utf8() { return s_utf8mode; } - Font(const char *name=0, bool antialias = false); + Font(const char *name = "fixed"); virtual ~Font(); /** Load a font @@ -70,10 +71,15 @@ loaded font */ bool load(const std::string &name); - - void setAntialias(bool flag); - inline void setShadow(bool flag) { m_shadow = flag; if (m_shadow) setHalo(false); } - inline void setHalo(bool flag) { m_halo = flag; if (m_halo) setShadow(false); } + + void setHalo(bool flag) { m_halo = flag; if (m_halo) setShadow(false); } + void setHaloColor(const Color& color) { m_halo_color = color; } + + void setShadow(bool flag) { m_shadow = flag; if (m_shadow) setHalo(false); } + void setShadowColor(const Color& color) { m_shadow_color = color; } + void setShadowOffX(int offx) { m_shadow_offx = offx; } + void setShadowOffY(int offy) { m_shadow_offy = offy; } + /** @param text text to check size @param size length of text in bytes @@ -103,28 +109,28 @@ void drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y, bool rotate=true) const; - bool isAntialias() const { return m_antialias; } /// @return true if the font is rotated, else false bool isRotated() const { return m_rotated; } /// @return rotated angle float angle() const { return m_angle; } - bool shadow() const { return m_shadow; } - bool halo() const { return m_halo; } + bool hasShadow() const { return m_shadow; } + bool hasHalo() const { return m_halo; } private: - std::auto_ptr m_fontimp; ///< font implementation + FbTk::FontImp* m_fontimp; ///< font implementation std::string m_fontstr; ///< font name - static bool m_multibyte; ///< if the fontimp should be a multibyte font - static bool m_utf8mode; ///< should the font use utf8 font imp - bool m_antialias; ///< is font antialias + + static bool s_multibyte; ///< if the fontimp should be a multibyte font + static bool s_utf8mode; ///< should the font use utf8 font imp + bool m_rotated; ///< wheter we're rotated or not float m_angle; ///< rotation angle bool m_shadow; ///< shadow text - std::string m_shadow_color; ///< shadow color + Color m_shadow_color; ///< shadow color int m_shadow_offx; ///< offset y for shadow int m_shadow_offy; ///< offset x for shadow bool m_halo; ///< halo text - std::string m_halo_color; ///< halo color + Color m_halo_color; ///< halo color #ifdef HAVE_ICONV iconv_t m_iconv; #else Index: FbCommandFactory.cc =================================================================== --- FbCommandFactory.cc (Revision 4037) +++ FbCommandFactory.cc (Arbeitskopie) @@ -373,11 +373,11 @@ d="current"; d= FbTk::StringUtil::toLower(d); if (d == "origin" ) - dest= DeiconifyCmd::ORIGIN; + dest= DeiconifyCmd::ORIGIN; else if (d == "originquiet") - dest= DeiconifyCmd::ORIGINQUIET; + dest= DeiconifyCmd::ORIGINQUIET; else - dest= DeiconifyCmd::CURRENT; + dest= DeiconifyCmd::CURRENT; if ( mode == "all" ) return new DeiconifyCmd(DeiconifyCmd::ALL, dest); Index: TextTheme.hh =================================================================== --- TextTheme.hh (Revision 4037) +++ TextTheme.hh (Arbeitskopie) @@ -38,8 +38,6 @@ void update(); - void setAntialias(bool value); - FbTk::Font &font() { return *m_font; } const FbTk::Font &font() const { return *m_font; } const FbTk::Color &textColor() const { return *m_text_color; } Index: Screen.hh =================================================================== --- Screen.hh (Revision 4037) +++ Screen.hh (Arbeitskopie) @@ -218,8 +218,6 @@ void saveMenu(FbTk::Menu &menu) { m_rootmenu_list.push_back(&menu); } - void setAntialias(bool value); - inline FbWinFrameTheme &winFrameTheme() { return *m_windowtheme.get(); } inline const FbWinFrameTheme &winFrameTheme() const { return *m_windowtheme.get(); } inline MenuTheme &menuTheme() { return *m_menutheme.get(); }