Logo
  • Main Page
  • Related Pages
  • Modules
  • Classes
  • Files

mmstextbaseclass.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2005-2007 Stefan Schwarzer, Jens Schneider,             *
00003  *                           Matthias Hardt, Guido Madaus                  *
00004  *                                                                         *
00005  *   Copyright (C) 2007-2008 BerLinux Solutions GbR                        *
00006  *                           Stefan Schwarzer & Guido Madaus               *
00007  *                                                                         *
00008  *   Copyright (C) 2009-2013 BerLinux Solutions GmbH                       *
00009  *                                                                         *
00010  *   Authors:                                                              *
00011  *      Stefan Schwarzer   <stefan.schwarzer@diskohq.org>,                 *
00012  *      Matthias Hardt     <matthias.hardt@diskohq.org>,                   *
00013  *      Jens Schneider     <jens.schneider@diskohq.org>,                   *
00014  *      Guido Madaus       <guido.madaus@diskohq.org>,                     *
00015  *      Patrick Helterhoff <patrick.helterhoff@diskohq.org>,               *
00016  *      René Bählkow       <rene.baehlkow@diskohq.org>                     *
00017  *                                                                         *
00018  *   This library is free software; you can redistribute it and/or         *
00019  *   modify it under the terms of the GNU Lesser General Public            *
00020  *   License version 2.1 as published by the Free Software Foundation.     *
00021  *                                                                         *
00022  *   This library is distributed in the hope that it will be useful,       *
00023  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00024  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00025  *   Lesser General Public License for more details.                       *
00026  *                                                                         *
00027  *   You should have received a copy of the GNU Lesser General Public      *
00028  *   License along with this library; if not, write to the                 *
00029  *   Free Software Foundation, Inc.,                                       *
00030  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
00031  **************************************************************************/
00032 
00033 #ifndef MMSTEXTBASECLASS_H_
00034 #define MMSTEXTBASECLASS_H_
00035 
00036 #include "mmsgui/theme/mmswidgetclass.h"
00037 
00038 // all definitions around fonts
00039 ///////////////////////////////////////////////////////////////////////////////
00040 
00041 //! FONT macro to address font attribute names
00042 #define GETFONTATTRNAME(w, aname) w##_I[w::MMSGUI_FONT_ATTR_IDS_##aname].name
00043 
00044 //! FONT macro to address font attribute types
00045 #define GETFONTATTRTYPE(w, aname) w##_I[w::MMSGUI_FONT_ATTR_IDS_##aname].type
00046 
00047 //! FONT macro for widget specific setAttributesFromTAFF() implementation
00048 #define ISFONTATTRNAME(w, aname) ((strcmp(attrname, GETFONTATTRNAME(w, aname))==0)?(tafff->convertString2TaffAttributeType(GETFONTATTRTYPE(w, aname), attrval_str, &attrval_str_valid, &int_val_set, &byte_val_set, p_int_val, attrname, attrid, tafff->getCurrentTagName())):(0))
00049 
00050 
00051 //! XML attributes for fonts
00052 namespace MMSGUI_FONT_ATTR {
00053 
00054     #define MMSGUI_FONT_ATTR_ATTRDESC \
00055         { "font.path", TAFF_ATTRTYPE_STRING }, \
00056         { "font.size", TAFF_ATTRTYPE_UCHAR }, \
00057         { "font.name", TAFF_ATTRTYPE_STRING }, \
00058         { "font.name.de", TAFF_ATTRTYPE_STRING }, \
00059         { "font.name.en", TAFF_ATTRTYPE_STRING }, \
00060         { "font.name.dk", TAFF_ATTRTYPE_STRING }, \
00061         { "font.name.es", TAFF_ATTRTYPE_STRING }, \
00062         { "font.name.fi", TAFF_ATTRTYPE_STRING }, \
00063         { "font.name.fr", TAFF_ATTRTYPE_STRING }, \
00064         { "font.name.it", TAFF_ATTRTYPE_STRING }, \
00065         { "font.name.nl", TAFF_ATTRTYPE_STRING }, \
00066         { "font.name.no", TAFF_ATTRTYPE_STRING }, \
00067         { "font.name.se", TAFF_ATTRTYPE_STRING }, \
00068         { "font.name.tr", TAFF_ATTRTYPE_STRING }, \
00069         { "font.name.cn", TAFF_ATTRTYPE_STRING }, \
00070         { "font.name.il", TAFF_ATTRTYPE_STRING }, \
00071         { "font.name.ar", TAFF_ATTRTYPE_STRING }, \
00072         { "font.name.cs", TAFF_ATTRTYPE_STRING }, \
00073         { "font.name.ru", TAFF_ATTRTYPE_STRING }
00074 
00075     #define MMSGUI_FONT_ATTR_IDS \
00076         MMSGUI_FONT_ATTR_IDS_font_path, \
00077         MMSGUI_FONT_ATTR_IDS_font_size, \
00078         MMSGUI_FONT_ATTR_IDS_font_name, \
00079         MMSGUI_FONT_ATTR_IDS_font_name_de, \
00080         MMSGUI_FONT_ATTR_IDS_font_name_en, \
00081         MMSGUI_FONT_ATTR_IDS_font_name_dk, \
00082         MMSGUI_FONT_ATTR_IDS_font_name_es, \
00083         MMSGUI_FONT_ATTR_IDS_font_name_fi, \
00084         MMSGUI_FONT_ATTR_IDS_font_name_fr, \
00085         MMSGUI_FONT_ATTR_IDS_font_name_it, \
00086         MMSGUI_FONT_ATTR_IDS_font_name_nl, \
00087         MMSGUI_FONT_ATTR_IDS_font_name_no, \
00088         MMSGUI_FONT_ATTR_IDS_font_name_se, \
00089         MMSGUI_FONT_ATTR_IDS_font_name_tr, \
00090         MMSGUI_FONT_ATTR_IDS_font_name_cn, \
00091         MMSGUI_FONT_ATTR_IDS_font_name_il, \
00092         MMSGUI_FONT_ATTR_IDS_font_name_ar, \
00093         MMSGUI_FONT_ATTR_IDS_font_name_cs, \
00094         MMSGUI_FONT_ATTR_IDS_font_name_ru
00095 
00096     #define MMSGUI_FONT_ATTR_INIT { \
00097         MMSGUI_FONT_ATTR_ATTRDESC, \
00098         { NULL, TAFF_ATTRTYPE_NONE } \
00099     }
00100 
00101     typedef enum {
00102         MMSGUI_FONT_ATTR_IDS
00103     } ids;
00104 }
00105 
00106 
00107 //! FONT macro for widget specific setAttributesFromTAFF() implementation
00108 #define SET_FONT_FROM_TAFF(w) \
00109     case w::MMSGUI_FONT_ATTR_IDS_font_path: \
00110         if (*attrval_str) \
00111             setFontPath(attrval_str); \
00112         else \
00113             setFontPath((path)?*path:""); \
00114         break; \
00115     case w::MMSGUI_FONT_ATTR_IDS_font_size: \
00116         setFontSize(attrval_int); \
00117         break; \
00118     case w::MMSGUI_FONT_ATTR_IDS_font_name: \
00119         setFontName(attrval_str); \
00120         break; \
00121     case w::MMSGUI_FONT_ATTR_IDS_font_name_de: \
00122         setFontName(attrval_str, MMSLANG_DE); \
00123         break; \
00124     case w::MMSGUI_FONT_ATTR_IDS_font_name_en: \
00125         setFontName(attrval_str, MMSLANG_EN); \
00126         break; \
00127     case w::MMSGUI_FONT_ATTR_IDS_font_name_dk: \
00128         setFontName(attrval_str, MMSLANG_DK); \
00129         break; \
00130     case w::MMSGUI_FONT_ATTR_IDS_font_name_es: \
00131         setFontName(attrval_str, MMSLANG_ES); \
00132         break; \
00133     case w::MMSGUI_FONT_ATTR_IDS_font_name_fi: \
00134         setFontName(attrval_str, MMSLANG_FI); \
00135         break; \
00136     case w::MMSGUI_FONT_ATTR_IDS_font_name_fr: \
00137         setFontName(attrval_str, MMSLANG_FR); \
00138         break; \
00139     case w::MMSGUI_FONT_ATTR_IDS_font_name_it: \
00140         setFontName(attrval_str, MMSLANG_IT); \
00141         break; \
00142     case w::MMSGUI_FONT_ATTR_IDS_font_name_nl: \
00143         setFontName(attrval_str, MMSLANG_NL); \
00144         break; \
00145     case w::MMSGUI_FONT_ATTR_IDS_font_name_no: \
00146         setFontName(attrval_str, MMSLANG_NO); \
00147         break; \
00148     case w::MMSGUI_FONT_ATTR_IDS_font_name_se: \
00149         setFontName(attrval_str, MMSLANG_SE); \
00150         break; \
00151     case w::MMSGUI_FONT_ATTR_IDS_font_name_tr: \
00152         setFontName(attrval_str, MMSLANG_TR); \
00153         break; \
00154     case w::MMSGUI_FONT_ATTR_IDS_font_name_cn: \
00155         setFontName(attrval_str, MMSLANG_CN); \
00156         break; \
00157     case w::MMSGUI_FONT_ATTR_IDS_font_name_il: \
00158         setFontName(attrval_str, MMSLANG_IL); \
00159         break; \
00160     case w::MMSGUI_FONT_ATTR_IDS_font_name_ar: \
00161         setFontName(attrval_str, MMSLANG_AR); \
00162         break; \
00163     case w::MMSGUI_FONT_ATTR_IDS_font_name_cs: \
00164         setFontName(attrval_str, MMSLANG_CS); \
00165         break; \
00166     case w::MMSGUI_FONT_ATTR_IDS_font_name_ru: \
00167         setFontName(attrval_str, MMSLANG_RU); \
00168         break;
00169 
00170 
00171 //! FONT macro for widget specific setAttributesFromTAFF() implementation
00172 #define SET_FONT_FROM_TAFF_WITH_PREFIX(w) \
00173     if (ISFONTATTRNAME(w, font_path)) { \
00174         if (*attrval_str) \
00175             setFontPath(attrval_str); \
00176         else \
00177             setFontPath((path)?*path:""); \
00178     } \
00179     else \
00180     if (ISFONTATTRNAME(w, font_size)) { \
00181         setFontSize(attrval_int); \
00182     } \
00183     else \
00184     if (ISFONTATTRNAME(w, font_name)) { \
00185         setFontName(attrval_str); \
00186     } \
00187     else \
00188     if (ISFONTATTRNAME(w, font_name_de)) { \
00189         setFontName(attrval_str, MMSLANG_DE); \
00190     } \
00191     else \
00192     if (ISFONTATTRNAME(w, font_name_en)) { \
00193         setFontName(attrval_str, MMSLANG_EN); \
00194     } \
00195     else \
00196     if (ISFONTATTRNAME(w, font_name_dk)) { \
00197         setFontName(attrval_str, MMSLANG_DK); \
00198     } \
00199     else \
00200     if (ISFONTATTRNAME(w, font_name_es)) { \
00201         setFontName(attrval_str, MMSLANG_ES); \
00202     } \
00203     else \
00204     if (ISFONTATTRNAME(w, font_name_fi)) { \
00205         setFontName(attrval_str, MMSLANG_FI); \
00206     } \
00207     else \
00208     if (ISFONTATTRNAME(w, font_name_fr)) { \
00209         setFontName(attrval_str, MMSLANG_FR); \
00210     } \
00211     else \
00212     if (ISFONTATTRNAME(w, font_name_it)) { \
00213         setFontName(attrval_str, MMSLANG_IT); \
00214     } \
00215     else \
00216     if (ISFONTATTRNAME(w, font_name_nl)) { \
00217         setFontName(attrval_str, MMSLANG_NL); \
00218     } \
00219     else \
00220     if (ISFONTATTRNAME(w, font_name_no)) { \
00221         setFontName(attrval_str, MMSLANG_NO); \
00222     } \
00223     else \
00224     if (ISFONTATTRNAME(w, font_name_se)) { \
00225         setFontName(attrval_str, MMSLANG_SE); \
00226     } \
00227     else \
00228     if (ISFONTATTRNAME(w, font_name_tr)) { \
00229         setFontName(attrval_str, MMSLANG_TR); \
00230     } \
00231     else \
00232     if (ISFONTATTRNAME(w, font_name_cn)) { \
00233         setFontName(attrval_str, MMSLANG_CN); \
00234     } \
00235     else \
00236     if (ISFONTATTRNAME(w, font_name_il)) { \
00237         setFontName(attrval_str, MMSLANG_IL); \
00238     } \
00239     else \
00240     if (ISFONTATTRNAME(w, font_name_ar)) { \
00241         setFontName(attrval_str, MMSLANG_AR); \
00242     } \
00243     else \
00244     if (ISFONTATTRNAME(w, font_name_cs)) { \
00245         setFontName(attrval_str, MMSLANG_CS); \
00246     } \
00247     else \
00248     if (ISFONTATTRNAME(w, font_name_ru)) { \
00249         setFontName(attrval_str, MMSLANG_RU); \
00250     }
00251 
00252 
00253 
00254 // all definitions around shadows
00255 ///////////////////////////////////////////////////////////////////////////////
00256 
00257 //! SHADOW macro to address shadow attribute names
00258 #define GETSHADOWATTRNAME(w, aname) w##_I[w::MMSGUI_SHADOW_ATTR_IDS_##aname].name
00259 
00260 //! SHADOW macro to address shadow attribute types
00261 #define GETSHADOWATTRTYPE(w, aname) w##_I[w::MMSGUI_SHADOW_ATTR_IDS_##aname].type
00262 
00263 //! SHADOW macro for widget specific setAttributesFromTAFF() implementation
00264 #define ISSHADOWATTRNAME(w, aname) ((strcmp(attrname, GETSHADOWATTRNAME(w, aname))==0)?(tafff->convertString2TaffAttributeType(GETSHADOWATTRTYPE(w, aname), attrval_str, &attrval_str_valid, &int_val_set, &byte_val_set, p_int_val, attrname, attrid, tafff->getCurrentTagName())):(0))
00265 
00266 
00267 //! XML attributes for shadows
00268 namespace MMSGUI_SHADOW_ATTR {
00269 
00270     #define MMSGUI_SHADOW_ATTR_ATTRDESC \
00271         { "shadow.top.color", TAFF_ATTRTYPE_COLOR }, \
00272         { "shadow.bottom.color", TAFF_ATTRTYPE_COLOR }, \
00273         { "shadow.left.color", TAFF_ATTRTYPE_COLOR }, \
00274         { "shadow.right.color", TAFF_ATTRTYPE_COLOR }, \
00275         { "shadow.top-left.color", TAFF_ATTRTYPE_COLOR }, \
00276         { "shadow.top-right.color", TAFF_ATTRTYPE_COLOR }, \
00277         { "shadow.bottom-left.color", TAFF_ATTRTYPE_COLOR }, \
00278         { "shadow.bottom-right.color", TAFF_ATTRTYPE_COLOR }, \
00279         { "selshadow.top.color", TAFF_ATTRTYPE_COLOR }, \
00280         { "selshadow.bottom.color", TAFF_ATTRTYPE_COLOR }, \
00281         { "selshadow.left.color", TAFF_ATTRTYPE_COLOR }, \
00282         { "selshadow.right.color", TAFF_ATTRTYPE_COLOR }, \
00283         { "selshadow.top-left.color", TAFF_ATTRTYPE_COLOR }, \
00284         { "selshadow.top-right.color", TAFF_ATTRTYPE_COLOR }, \
00285         { "selshadow.bottom-left.color", TAFF_ATTRTYPE_COLOR }, \
00286         { "selshadow.bottom-right.color", TAFF_ATTRTYPE_COLOR }
00287 
00288     #define MMSGUI_SHADOW_ATTR_IDS \
00289         MMSGUI_SHADOW_ATTR_IDS_shadow_top_color, \
00290         MMSGUI_SHADOW_ATTR_IDS_shadow_bottom_color, \
00291         MMSGUI_SHADOW_ATTR_IDS_shadow_left_color, \
00292         MMSGUI_SHADOW_ATTR_IDS_shadow_right_color, \
00293         MMSGUI_SHADOW_ATTR_IDS_shadow_top_left_color, \
00294         MMSGUI_SHADOW_ATTR_IDS_shadow_top_right_color, \
00295         MMSGUI_SHADOW_ATTR_IDS_shadow_bottom_left_color, \
00296         MMSGUI_SHADOW_ATTR_IDS_shadow_bottom_right_color, \
00297         MMSGUI_SHADOW_ATTR_IDS_selshadow_top_color, \
00298         MMSGUI_SHADOW_ATTR_IDS_selshadow_bottom_color, \
00299         MMSGUI_SHADOW_ATTR_IDS_selshadow_left_color, \
00300         MMSGUI_SHADOW_ATTR_IDS_selshadow_right_color, \
00301         MMSGUI_SHADOW_ATTR_IDS_selshadow_top_left_color, \
00302         MMSGUI_SHADOW_ATTR_IDS_selshadow_top_right_color, \
00303         MMSGUI_SHADOW_ATTR_IDS_selshadow_bottom_left_color, \
00304         MMSGUI_SHADOW_ATTR_IDS_selshadow_bottom_right_color
00305 
00306     #define MMSGUI_SHADOW_ATTR_INIT { \
00307         MMSGUI_SHADOW_ATTR_ATTRDESC, \
00308         { NULL, TAFF_ATTRTYPE_NONE } \
00309     }
00310 
00311     typedef enum {
00312         MMSGUI_SHADOW_ATTR_IDS
00313     } ids;
00314 }
00315 
00316 
00317 //! SHADOW macro for widget specific setAttributesFromTAFF() implementation
00318 #define SET_SHADOW_FROM_TAFF(w) \
00319     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_top_color: \
00320         setShadowColor(MMSPOSITION_TOP, MMSFBColor((unsigned int)attrval_int)); \
00321         break; \
00322     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_bottom_color: \
00323         setShadowColor(MMSPOSITION_BOTTOM, MMSFBColor((unsigned int)attrval_int)); \
00324         break; \
00325     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_left_color: \
00326         setShadowColor(MMSPOSITION_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00327         break; \
00328     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_right_color: \
00329         setShadowColor(MMSPOSITION_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00330         break; \
00331     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_top_left_color: \
00332         setShadowColor(MMSPOSITION_TOP_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00333         break; \
00334     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_top_right_color: \
00335         setShadowColor(MMSPOSITION_TOP_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00336         break; \
00337     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_bottom_left_color: \
00338         setShadowColor(MMSPOSITION_BOTTOM_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00339         break; \
00340     case w::MMSGUI_SHADOW_ATTR_IDS_shadow_bottom_right_color: \
00341         setShadowColor(MMSPOSITION_BOTTOM_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00342         break; \
00343     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_top_color: \
00344         setSelShadowColor(MMSPOSITION_TOP, MMSFBColor((unsigned int)attrval_int)); \
00345         break; \
00346     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_bottom_color: \
00347         setSelShadowColor(MMSPOSITION_BOTTOM, MMSFBColor((unsigned int)attrval_int)); \
00348         break; \
00349     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_left_color: \
00350         setSelShadowColor(MMSPOSITION_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00351         break; \
00352     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_right_color: \
00353         setSelShadowColor(MMSPOSITION_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00354         break; \
00355     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_top_left_color: \
00356         setSelShadowColor(MMSPOSITION_TOP_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00357         break; \
00358     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_top_right_color: \
00359         setSelShadowColor(MMSPOSITION_TOP_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00360         break; \
00361     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_bottom_left_color: \
00362         setSelShadowColor(MMSPOSITION_BOTTOM_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00363         break; \
00364     case w::MMSGUI_SHADOW_ATTR_IDS_selshadow_bottom_right_color: \
00365         setSelShadowColor(MMSPOSITION_BOTTOM_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00366         break;
00367 
00368 
00369 //! SHADOW macro for widget specific setAttributesFromTAFF() implementation
00370 #define SET_SHADOW_FROM_TAFF_WITH_PREFIX(w) \
00371     if (ISSHADOWATTRNAME(w, shadow_top_color)) { \
00372         setShadowColor(MMSPOSITION_TOP, MMSFBColor((unsigned int)attrval_int)); \
00373     } \
00374     else \
00375     if (ISSHADOWATTRNAME(w, shadow_bottom_color)) { \
00376         setShadowColor(MMSPOSITION_BOTTOM, MMSFBColor((unsigned int)attrval_int)); \
00377     } \
00378     else \
00379     if (ISSHADOWATTRNAME(w, shadow_left_color)) { \
00380         setShadowColor(MMSPOSITION_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00381     } \
00382     else \
00383     if (ISSHADOWATTRNAME(w, shadow_right_color)) { \
00384         setShadowColor(MMSPOSITION_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00385     } \
00386     else \
00387     if (ISSHADOWATTRNAME(w, shadow_top_left_color)) { \
00388         setShadowColor(MMSPOSITION_TOP_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00389     } \
00390     else \
00391     if (ISSHADOWATTRNAME(w, shadow_top_right_color)) { \
00392         setShadowColor(MMSPOSITION_TOP_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00393     } \
00394     else \
00395     if (ISSHADOWATTRNAME(w, shadow_bottom_left_color)) { \
00396         setShadowColor(MMSPOSITION_BOTTOM_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00397     } \
00398     else \
00399     if (ISSHADOWATTRNAME(w, shadow_bottom_right_color)) { \
00400         setShadowColor(MMSPOSITION_BOTTOM_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00401     } \
00402     else \
00403     if (ISSHADOWATTRNAME(w, selshadow_top_color)) { \
00404         setSelShadowColor(MMSPOSITION_TOP, MMSFBColor((unsigned int)attrval_int)); \
00405     } \
00406     else \
00407     if (ISSHADOWATTRNAME(w, selshadow_bottom_color)) { \
00408         setSelShadowColor(MMSPOSITION_BOTTOM, MMSFBColor((unsigned int)attrval_int)); \
00409     } \
00410     else \
00411     if (ISSHADOWATTRNAME(w, selshadow_left_color)) { \
00412         setSelShadowColor(MMSPOSITION_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00413     } \
00414     else \
00415     if (ISSHADOWATTRNAME(w, selshadow_right_color)) { \
00416         setSelShadowColor(MMSPOSITION_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00417     } \
00418     else \
00419     if (ISSHADOWATTRNAME(w, selshadow_top_left_color)) { \
00420         setSelShadowColor(MMSPOSITION_TOP_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00421     } \
00422     else \
00423     if (ISSHADOWATTRNAME(w, selshadow_top_right_color)) { \
00424         setSelShadowColor(MMSPOSITION_TOP_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00425     } \
00426     else \
00427     if (ISSHADOWATTRNAME(w, selshadow_bottom_left_color)) { \
00428         setSelShadowColor(MMSPOSITION_BOTTOM_LEFT, MMSFBColor((unsigned int)attrval_int)); \
00429     } \
00430     else \
00431     if (ISSHADOWATTRNAME(w, selshadow_bottom_right_color)) { \
00432         setSelShadowColor(MMSPOSITION_BOTTOM_RIGHT, MMSFBColor((unsigned int)attrval_int)); \
00433     }
00434 
00435 
00436 
00437 
00438 // all definitions around textinfos
00439 ///////////////////////////////////////////////////////////////////////////////
00440 
00441 //! TEXTINFO macro to address textinfo attribute names
00442 #define GETTEXTINFOATTRNAME(w, aname) w##_I[w::MMSGUI_TEXTINFO_ATTR_IDS_##aname].name
00443 
00444 //! TEXTINFO macro to address textinfos attribute types
00445 #define GETTEXTINFOATTRTYPE(w, aname) w##_I[w::MMSGUI_TEXTINFO_ATTR_IDS_##aname].type
00446 
00447 //! TEXTINFO macro for widget specific setAttributesFromTAFF() implementation
00448 #define ISTEXTINFOATTRNAME(w, aname) ((strcmp(attrname, GETTEXTINFOATTRNAME(w, aname))==0)?(tafff->convertString2TaffAttributeType(GETTEXTINFOATTRTYPE(w, aname), attrval_str, &attrval_str_valid, &int_val_set, &byte_val_set, p_int_val, attrname, attrid, tafff->getCurrentTagName())):(0))
00449 
00450 
00451 //! XML attributes for textinfos
00452 namespace MMSGUI_TEXTINFO_ATTR {
00453 
00454     #define MMSGUI_TEXTINFO_ATTR_ATTRDESC \
00455         { "alignment", TAFF_ATTRTYPE_STRING }, \
00456         { "color", TAFF_ATTRTYPE_COLOR }, \
00457         { "color.a", TAFF_ATTRTYPE_UCHAR }, \
00458         { "color.r", TAFF_ATTRTYPE_UCHAR }, \
00459         { "color.g", TAFF_ATTRTYPE_UCHAR }, \
00460         { "color.b", TAFF_ATTRTYPE_UCHAR }, \
00461         { "selcolor", TAFF_ATTRTYPE_COLOR }, \
00462         { "selcolor.a", TAFF_ATTRTYPE_UCHAR }, \
00463         { "selcolor.r", TAFF_ATTRTYPE_UCHAR }, \
00464         { "selcolor.g", TAFF_ATTRTYPE_UCHAR }, \
00465         { "selcolor.b", TAFF_ATTRTYPE_UCHAR }, \
00466         { "color_p", TAFF_ATTRTYPE_COLOR }, \
00467         { "color_p.a", TAFF_ATTRTYPE_UCHAR }, \
00468         { "color_p.r", TAFF_ATTRTYPE_UCHAR }, \
00469         { "color_p.g", TAFF_ATTRTYPE_UCHAR }, \
00470         { "color_p.b", TAFF_ATTRTYPE_UCHAR }, \
00471         { "selcolor_p", TAFF_ATTRTYPE_COLOR }, \
00472         { "selcolor_p.a", TAFF_ATTRTYPE_UCHAR }, \
00473         { "selcolor_p.r", TAFF_ATTRTYPE_UCHAR }, \
00474         { "selcolor_p.g", TAFF_ATTRTYPE_UCHAR }, \
00475         { "selcolor_p.b", TAFF_ATTRTYPE_UCHAR }, \
00476         { "color_i", TAFF_ATTRTYPE_COLOR }, \
00477         { "color_i.a", TAFF_ATTRTYPE_UCHAR }, \
00478         { "color_i.r", TAFF_ATTRTYPE_UCHAR }, \
00479         { "color_i.g", TAFF_ATTRTYPE_UCHAR }, \
00480         { "color_i.b", TAFF_ATTRTYPE_UCHAR }, \
00481         { "selcolor_i", TAFF_ATTRTYPE_COLOR }, \
00482         { "selcolor_i.a", TAFF_ATTRTYPE_UCHAR }, \
00483         { "selcolor_i.r", TAFF_ATTRTYPE_UCHAR }, \
00484         { "selcolor_i.g", TAFF_ATTRTYPE_UCHAR }, \
00485         { "selcolor_i.b", TAFF_ATTRTYPE_UCHAR }, \
00486         { "text", TAFF_ATTRTYPE_STRING }
00487 
00488 
00489     #define MMSGUI_TEXTINFO_ATTR_IDS \
00490         MMSGUI_TEXTINFO_ATTR_IDS_alignment, \
00491         MMSGUI_TEXTINFO_ATTR_IDS_color, \
00492         MMSGUI_TEXTINFO_ATTR_IDS_color_a, \
00493         MMSGUI_TEXTINFO_ATTR_IDS_color_r, \
00494         MMSGUI_TEXTINFO_ATTR_IDS_color_g, \
00495         MMSGUI_TEXTINFO_ATTR_IDS_color_b, \
00496         MMSGUI_TEXTINFO_ATTR_IDS_selcolor, \
00497         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_a, \
00498         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_r, \
00499         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_g, \
00500         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_b, \
00501         MMSGUI_TEXTINFO_ATTR_IDS_color_p, \
00502         MMSGUI_TEXTINFO_ATTR_IDS_color_p_a, \
00503         MMSGUI_TEXTINFO_ATTR_IDS_color_p_r, \
00504         MMSGUI_TEXTINFO_ATTR_IDS_color_p_g, \
00505         MMSGUI_TEXTINFO_ATTR_IDS_color_p_b, \
00506         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p, \
00507         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_a, \
00508         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_r, \
00509         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_g, \
00510         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_b, \
00511         MMSGUI_TEXTINFO_ATTR_IDS_color_i, \
00512         MMSGUI_TEXTINFO_ATTR_IDS_color_i_a, \
00513         MMSGUI_TEXTINFO_ATTR_IDS_color_i_r, \
00514         MMSGUI_TEXTINFO_ATTR_IDS_color_i_g, \
00515         MMSGUI_TEXTINFO_ATTR_IDS_color_i_b, \
00516         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i, \
00517         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_a, \
00518         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_r, \
00519         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_g, \
00520         MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_b, \
00521         MMSGUI_TEXTINFO_ATTR_IDS_text
00522 
00523     #define MMSGUI_TEXTINFO_ATTR_INIT { \
00524         MMSGUI_TEXTINFO_ATTR_ATTRDESC, \
00525         { NULL, TAFF_ATTRTYPE_NONE } \
00526     }
00527 
00528     typedef enum {
00529         MMSGUI_TEXTINFO_ATTR_IDS
00530     } ids;
00531 }
00532 
00533 
00534 //! TEXTINFO macro for widget specific setAttributesFromTAFF() implementation
00535 #define SET_TEXTINFO_FROM_TAFF(w) \
00536     case w::MMSGUI_TEXTINFO_ATTR_IDS_alignment: \
00537         setAlignment(getAlignmentFromString(attrval_str)); \
00538         break; \
00539     case w::MMSGUI_TEXTINFO_ATTR_IDS_color: \
00540         setColor(MMSFBColor((unsigned int)attrval_int)); \
00541         break; \
00542     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_a: \
00543         color.a = color.r = color.g = color.b = 0; \
00544         if (isColor()) color = getColor(); \
00545         color.a = attrval_int; \
00546         setColor(color); \
00547         break; \
00548     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_r: \
00549         color.a = color.r = color.g = color.b = 0; \
00550         if (isColor()) color = getColor(); \
00551         color.r = attrval_int; \
00552         setColor(color); \
00553         break; \
00554     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_g: \
00555         color.a = color.r = color.g = color.b = 0; \
00556         if (isColor()) color = getColor(); \
00557         color.g = attrval_int; \
00558         setColor(color); \
00559         break; \
00560     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_b: \
00561         color.a = color.r = color.g = color.b = 0; \
00562         if (isColor()) color = getColor(); \
00563         color.b = attrval_int; \
00564         setColor(color); \
00565         break; \
00566     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor: \
00567         setSelColor(MMSFBColor((unsigned int)attrval_int)); \
00568         break; \
00569     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_a: \
00570         color.a = color.r = color.g = color.b = 0; \
00571         if (isSelColor()) color = getSelColor(); \
00572         color.a = attrval_int; \
00573         setSelColor(color); \
00574         break; \
00575     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_r: \
00576         color.a = color.r = color.g = color.b = 0; \
00577         if (isSelColor()) color = getSelColor(); \
00578         color.r = attrval_int; \
00579         setSelColor(color); \
00580         break; \
00581     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_g: \
00582         color.a = color.r = color.g = color.b = 0; \
00583         if (isSelColor()) color = getSelColor(); \
00584         color.g = attrval_int; \
00585         setSelColor(color); \
00586         break; \
00587     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_b: \
00588         color.a = color.r = color.g = color.b = 0; \
00589         if (isSelColor()) color = getSelColor(); \
00590         color.b = attrval_int; \
00591         setSelColor(color); \
00592         break; \
00593     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_p: \
00594         setColor_p(MMSFBColor((unsigned int)attrval_int)); \
00595         break; \
00596     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_p_a: \
00597         color.a = color.r = color.g = color.b = 0; \
00598         if (isColor_p()) color = getColor_p(); \
00599         color.a = attrval_int; \
00600         setColor_p(color); \
00601         break; \
00602     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_p_r: \
00603         color.a = color.r = color.g = color.b = 0; \
00604         if (isColor_p()) color = getColor_p(); \
00605         color.r = attrval_int; \
00606         setColor_p(color); \
00607         break; \
00608     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_p_g: \
00609         color.a = color.r = color.g = color.b = 0; \
00610         if (isColor_p()) color = getColor_p(); \
00611         color.g = attrval_int; \
00612         setColor_p(color); \
00613         break; \
00614     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_p_b: \
00615         color.a = color.r = color.g = color.b = 0; \
00616         if (isColor_p()) color = getColor_p(); \
00617         color.b = attrval_int; \
00618         setColor_p(color); \
00619         break; \
00620     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p: \
00621         setSelColor_p(MMSFBColor((unsigned int)attrval_int)); \
00622         break; \
00623     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_a: \
00624         color.a = color.r = color.g = color.b = 0; \
00625         if (isSelColor_p()) color = getSelColor_p(); \
00626         color.a = attrval_int; \
00627         setSelColor_p(color); \
00628         break; \
00629     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_r: \
00630         color.a = color.r = color.g = color.b = 0; \
00631         if (isSelColor_p()) color = getSelColor_p(); \
00632         color.r = attrval_int; \
00633         setSelColor_p(color); \
00634         break; \
00635     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_g: \
00636         color.a = color.r = color.g = color.b = 0; \
00637         if (isSelColor_p()) color = getSelColor_p(); \
00638         color.g = attrval_int; \
00639         setSelColor_p(color); \
00640         break; \
00641     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_p_b: \
00642         color.a = color.r = color.g = color.b = 0; \
00643         if (isSelColor_p()) color = getSelColor_p(); \
00644         color.b = attrval_int; \
00645         setSelColor_p(color); \
00646         break; \
00647     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_i: \
00648         setColor_i(MMSFBColor((unsigned int)attrval_int)); \
00649         break; \
00650     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_i_a: \
00651         color.a = color.r = color.g = color.b = 0; \
00652         if (isColor_i()) color = getColor_i(); \
00653         color.a = attrval_int; \
00654         setColor_i(color); \
00655         break; \
00656     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_i_r: \
00657         color.a = color.r = color.g = color.b = 0; \
00658         if (isColor_i()) color = getColor_i(); \
00659         color.r = attrval_int; \
00660         setColor_i(color); \
00661         break; \
00662     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_i_g: \
00663         color.a = color.r = color.g = color.b = 0; \
00664         if (isColor_i()) color = getColor_i(); \
00665         color.g = attrval_int; \
00666         setColor_i(color); \
00667         break; \
00668     case w::MMSGUI_TEXTINFO_ATTR_IDS_color_i_b: \
00669         color.a = color.r = color.g = color.b = 0; \
00670         if (isColor_i()) color = getColor_i(); \
00671         color.b = attrval_int; \
00672         setColor_i(color); \
00673         break; \
00674     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i: \
00675         setSelColor_i(MMSFBColor((unsigned int)attrval_int)); \
00676         break; \
00677     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_a: \
00678         color.a = color.r = color.g = color.b = 0; \
00679         if (isSelColor_i()) color = getSelColor_i(); \
00680         color.a = attrval_int; \
00681         setSelColor_i(color); \
00682         break; \
00683     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_r: \
00684         color.a = color.r = color.g = color.b = 0; \
00685         if (isSelColor_i()) color = getSelColor_i(); \
00686         color.r = attrval_int; \
00687         setSelColor_i(color); \
00688         break; \
00689     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_g: \
00690         color.a = color.r = color.g = color.b = 0; \
00691         if (isSelColor_i()) color = getSelColor_i(); \
00692         color.g = attrval_int; \
00693         setSelColor_i(color); \
00694         break; \
00695     case w::MMSGUI_TEXTINFO_ATTR_IDS_selcolor_i_b: \
00696         color.a = color.r = color.g = color.b = 0; \
00697         if (isSelColor_i()) color = getSelColor_i(); \
00698         color.b = attrval_int; \
00699         setSelColor_i(color); \
00700         break; \
00701     case w::MMSGUI_TEXTINFO_ATTR_IDS_text: \
00702         setText(attrval_str); \
00703         break;
00704 
00705 
00706 
00707 //! TEXTINFO macro for widget specific setAttributesFromTAFF() implementation
00708 #define SET_TEXTINFO_FROM_TAFF_WITH_PREFIX(w) \
00709     if (ISTEXTINFOATTRNAME(w, alignment)) { \
00710         setAlignment(getAlignmentFromString(attrval_str)); \
00711     } \
00712     else \
00713     if (ISTEXTINFOATTRNAME(w, color)) { \
00714         setColor(MMSFBColor((unsigned int)attrval_int)); \
00715     } \
00716     else \
00717     if (ISTEXTINFOATTRNAME(w, color_a)) { \
00718         color.a = color.r = color.g = color.b = 0; \
00719         if (isColor()) color = getColor(); \
00720         color.a = attrval_int; \
00721         setColor(color); \
00722     } \
00723     else \
00724     if (ISTEXTINFOATTRNAME(w, color_r)) { \
00725         color.a = color.r = color.g = color.b = 0; \
00726         if (isColor()) color = getColor(); \
00727         color.r = attrval_int; \
00728         setColor(color); \
00729     } \
00730     else \
00731     if (ISTEXTINFOATTRNAME(w, color_g)) { \
00732         color.a = color.r = color.g = color.b = 0; \
00733         if (isColor()) color = getColor(); \
00734         color.g = attrval_int; \
00735         setColor(color); \
00736     } \
00737     else \
00738     if (ISTEXTINFOATTRNAME(w, color_b)) { \
00739         color.a = color.r = color.g = color.b = 0; \
00740         if (isColor()) color = getColor(); \
00741         color.b = attrval_int; \
00742         setColor(color); \
00743     } \
00744     else \
00745     if (ISTEXTINFOATTRNAME(w, selcolor)) { \
00746         setSelColor(MMSFBColor((unsigned int)attrval_int)); \
00747     } \
00748     else \
00749     if (ISTEXTINFOATTRNAME(w, selcolor_a)) { \
00750         color.a = color.r = color.g = color.b = 0; \
00751         if (isSelColor()) color = getSelColor(); \
00752         color.a = attrval_int; \
00753         setSelColor(color); \
00754     } \
00755     else \
00756     if (ISTEXTINFOATTRNAME(w, selcolor_r)) { \
00757         color.a = color.r = color.g = color.b = 0; \
00758         if (isSelColor()) color = getSelColor(); \
00759         color.r = attrval_int; \
00760         setSelColor(color); \
00761     } \
00762     else \
00763     if (ISTEXTINFOATTRNAME(w, selcolor_g)) { \
00764         color.a = color.r = color.g = color.b = 0; \
00765         if (isSelColor()) color = getSelColor(); \
00766         color.g = attrval_int; \
00767         setSelColor(color); \
00768     } \
00769     else \
00770     if (ISTEXTINFOATTRNAME(w, selcolor_b)) { \
00771         color.a = color.r = color.g = color.b = 0; \
00772         if (isSelColor()) color = getSelColor(); \
00773         color.b = attrval_int; \
00774         setSelColor(color); \
00775     } \
00776     else \
00777     if (ISTEXTINFOATTRNAME(w, color_p)) { \
00778         setColor_p(MMSFBColor((unsigned int)attrval_int)); \
00779     } \
00780     else \
00781     if (ISTEXTINFOATTRNAME(w, color_p_a)) { \
00782         color.a = color.r = color.g = color.b = 0; \
00783         if (isColor_p()) color = getColor_p(); \
00784         color.a = attrval_int; \
00785         setColor_p(color); \
00786     } \
00787     else \
00788     if (ISTEXTINFOATTRNAME(w, color_p_r)) { \
00789         color.a = color.r = color.g = color.b = 0; \
00790         if (isColor_p()) color = getColor_p(); \
00791         color.r = attrval_int; \
00792         setColor_p(color); \
00793     } \
00794     else \
00795     if (ISTEXTINFOATTRNAME(w, color_p_g)) { \
00796         color.a = color.r = color.g = color.b = 0; \
00797         if (isColor_p()) color = getColor_p(); \
00798         color.g = attrval_int; \
00799         setColor_p(color); \
00800     } \
00801     else \
00802     if (ISTEXTINFOATTRNAME(w, color_p_b)) { \
00803         color.a = color.r = color.g = color.b = 0; \
00804         if (isColor_p()) color = getColor_p(); \
00805         color.b = attrval_int; \
00806         setColor_p(color); \
00807     } \
00808     else \
00809     if (ISTEXTINFOATTRNAME(w, selcolor_p)) { \
00810         setSelColor_p(MMSFBColor((unsigned int)attrval_int)); \
00811     } \
00812     else \
00813     if (ISTEXTINFOATTRNAME(w, selcolor_p_a)) { \
00814         color.a = color.r = color.g = color.b = 0; \
00815         if (isSelColor_p()) color = getSelColor_p(); \
00816         color.a = attrval_int; \
00817         setSelColor_p(color); \
00818     } \
00819     else \
00820     if (ISTEXTINFOATTRNAME(w, selcolor_p_r)) { \
00821         color.a = color.r = color.g = color.b = 0; \
00822         if (isSelColor_p()) color = getSelColor_p(); \
00823         color.r = attrval_int; \
00824         setSelColor_p(color); \
00825     } \
00826     else \
00827     if (ISTEXTINFOATTRNAME(w, selcolor_p_g)) { \
00828         color.a = color.r = color.g = color.b = 0; \
00829         if (isSelColor_p()) color = getSelColor_p(); \
00830         color.g = attrval_int; \
00831         setSelColor_p(color); \
00832     } \
00833     else \
00834     if (ISTEXTINFOATTRNAME(w, selcolor_p_b)) { \
00835         color.a = color.r = color.g = color.b = 0; \
00836         if (isSelColor_p()) color = getSelColor_p(); \
00837         color.b = attrval_int; \
00838         setSelColor_p(color); \
00839     } \
00840     else \
00841     if (ISTEXTINFOATTRNAME(w, color_i)) { \
00842         setColor_i(MMSFBColor((unsigned int)attrval_int)); \
00843     } \
00844     else \
00845     if (ISTEXTINFOATTRNAME(w, color_i_a)) { \
00846         color.a = color.r = color.g = color.b = 0; \
00847         if (isColor_i()) color = getColor_i(); \
00848         color.a = attrval_int; \
00849         setColor_i(color); \
00850     } \
00851     else \
00852     if (ISTEXTINFOATTRNAME(w, color_i_r)) { \
00853         color.a = color.r = color.g = color.b = 0; \
00854         if (isColor_i()) color = getColor_i(); \
00855         color.r = attrval_int; \
00856         setColor_i(color); \
00857     } \
00858     else \
00859     if (ISTEXTINFOATTRNAME(w, color_i_g)) { \
00860         color.a = color.r = color.g = color.b = 0; \
00861         if (isColor_i()) color = getColor_i(); \
00862         color.g = attrval_int; \
00863         setColor_i(color); \
00864     } \
00865     else \
00866     if (ISTEXTINFOATTRNAME(w, color_i_b)) { \
00867         color.a = color.r = color.g = color.b = 0; \
00868         if (isColor_i()) color = getColor_i(); \
00869         color.b = attrval_int; \
00870         setColor_i(color); \
00871     } \
00872     else \
00873     if (ISTEXTINFOATTRNAME(w, selcolor_i)) { \
00874         setSelColor_i(MMSFBColor((unsigned int)attrval_int)); \
00875     } \
00876     else \
00877     if (ISTEXTINFOATTRNAME(w, selcolor_i_a)) { \
00878         color.a = color.r = color.g = color.b = 0; \
00879         if (isSelColor_i()) color = getSelColor_i(); \
00880         color.a = attrval_int; \
00881         setSelColor_i(color); \
00882     } \
00883     else \
00884     if (ISTEXTINFOATTRNAME(w, selcolor_i_r)) { \
00885         color.a = color.r = color.g = color.b = 0; \
00886         if (isSelColor_i()) color = getSelColor_i(); \
00887         color.r = attrval_int; \
00888         setSelColor_i(color); \
00889     } \
00890     else \
00891     if (ISTEXTINFOATTRNAME(w, selcolor_i_g)) { \
00892         color.a = color.r = color.g = color.b = 0; \
00893         if (isSelColor_i()) color = getSelColor_i(); \
00894         color.g = attrval_int; \
00895         setSelColor_i(color); \
00896     } \
00897     else \
00898     if (ISTEXTINFOATTRNAME(w, selcolor_i_b)) { \
00899         color.a = color.r = color.g = color.b = 0; \
00900         if (isSelColor_i()) color = getSelColor_i(); \
00901         color.b = attrval_int; \
00902         setSelColor_i(color); \
00903     } \
00904     else \
00905     if (ISTEXTINFOATTRNAME(w, text)) { \
00906         setText(attrval_str); \
00907     }
00908 
00909 
00910 
00911 
00912 //! A base class for MMSLabelWidgetClass, MMSTextBoxWidgetClass and MMSInputWidgetClass.
00913 /*!
00914 \note This class will be internally used by MMSLabelWidgetClass, MMSTextBoxWidgetClass and MMSInputWidgetClass.
00915 \author Jens Schneider
00916 */
00917 class MMSTextBaseClass {
00918     private:
00919         //! is fontpath set?
00920         bool            isfontpath;
00921 
00922         //! path to the font
00923         string          fontpath;
00924 
00925         //! is fontsize set?
00926         bool            isfontsize;
00927 
00928         //! size of the font
00929         unsigned int    fontsize;
00930 
00931 
00932         //! describes name of a font
00933         typedef struct {
00934             //! is fontname set?
00935             bool            isfontname;
00936 
00937             //! name of the font
00938             string          fontname;
00939         } MMSTEXTBASEFONTNAME;
00940 
00941         //! language dependent font filenames
00942         MMSTEXTBASEFONTNAME fontname[MMSLANG_SIZE];
00943 
00944 
00945 
00946         //! is alignment set?
00947         bool            isalignment;
00948 
00949         //! alignment of the text
00950         MMSALIGNMENT    alignment;
00951 
00952         //! is color set?
00953         bool            iscolor;
00954 
00955         //! color of the text if the widget is not selected
00956         MMSFBColor      color;
00957 
00958         //! is selcolor set?
00959         bool            isselcolor;
00960 
00961         //! color of the text if the widget is selected
00962         MMSFBColor      selcolor;
00963 
00964 
00965         //! is color_p set?
00966         bool            iscolor_p;
00967 
00968         //! color of the text if the widget is not selected but pressed
00969         MMSFBColor      color_p;
00970 
00971         //! is selcolor_p set?
00972         bool            isselcolor_p;
00973 
00974         //! color of the text if the widget is selected and pressed
00975         MMSFBColor      selcolor_p;
00976 
00977 
00978         //! is color_i set?
00979         bool            iscolor_i;
00980 
00981         //! color of the text if the widget is not selected and disabled
00982         MMSFBColor      color_i;
00983 
00984         //! is selcolor_i set?
00985         bool            isselcolor_i;
00986 
00987         //! color of the text if the widget is selected and disabled
00988         MMSFBColor      selcolor_i;
00989 
00990 
00991         //! is text set?
00992         bool            istext;
00993 
00994         //! text to draw
00995         string          text;
00996 
00997 
00998 
00999         //! describes shadow of a text
01000         typedef struct {
01001             //! is color set?
01002             bool            iscolor;
01003 
01004             //! color of the text if the widget is not selected
01005             MMSFBColor      color;
01006 
01007             //! is selcolor set?
01008             bool            isselcolor;
01009 
01010             //! color of the text if the widget is selected
01011             MMSFBColor      selcolor;
01012         } MMSTEXTBASESHADOW;
01013 
01014         //! text shadows (eight directions)
01015         MMSTEXTBASESHADOW   shadow[MMSPOSITION_SIZE];
01016 
01017 
01018     public:
01019         //! Constructor of class MMSTextBaseClass.
01020         MMSTextBaseClass();
01021 
01022         //! Destructor of class MMSTextBaseClass.
01023         virtual ~MMSTextBaseClass();
01024 
01025         //! Mark all attributes as not set.
01026         virtual void unsetAll();
01027 
01028 
01029         //! Check if the fontpath is set.
01030         bool isFontPath();
01031 
01032         //! Set the fontpath which is used to draw the text.
01033         /*!
01034         \param fontpath  path to the font
01035         */
01036         void setFontPath(string fontpath);
01037 
01038         //! Mark the fontpath as not set.
01039         void unsetFontPath();
01040 
01041         //! Get the fontpath which is used to draw the text.
01042         /*!
01043         \return path to the font
01044         */
01045         string getFontPath();
01046 
01047 
01048         //! Check if the fontsize is set.
01049         bool isFontSize();
01050 
01051         //! Set the fontsize which is used to draw the text.
01052         /*!
01053         \param fontsize  size of the font
01054         */
01055         void setFontSize(unsigned int fontsize);
01056 
01057         //! Mark the fontsize as not set.
01058         void unsetFontSize();
01059 
01060         //! Get the fontsize which is used to draw the text.
01061         /*!
01062         \return size of the font
01063         */
01064         unsigned int getFontSize();
01065 
01066 
01067         //! Check if the fontname is set.
01068         /*!
01069         \param lang  optional language
01070         */
01071         bool isFontName(MMSLanguage lang = MMSLANG_NONE);
01072 
01073         //! Set the fontname which is used to draw the text.
01074         /*!
01075         \param fontname  name of the font
01076         \param lang      optional language
01077         */
01078         void setFontName(string fontname, MMSLanguage lang = MMSLANG_NONE);
01079 
01080         //! Mark the fontname as not set.
01081         /*!
01082         \param lang  optional language
01083         */
01084         void unsetFontName(MMSLanguage lang = MMSLANG_NONE);
01085 
01086         //! Mark all fontnames as not set.
01087         void unsetFontNames();
01088 
01089         //! Get the fontname which is used to draw the text.
01090         /*!
01091         \param lang  optional language
01092         \return name of the font
01093         */
01094         string getFontName(MMSLanguage lang = MMSLANG_NONE);
01095 
01096 
01097         //! Check if alignment is set.
01098         bool isAlignment();
01099 
01100         //! Set the alignment of the text (see MMSALIGNMENT values).
01101         /*!
01102         \param alignment  text alignment
01103         */
01104         void setAlignment(MMSALIGNMENT alignment);
01105 
01106         //! Mark the alignment as not set.
01107         void unsetAlignment();
01108 
01109         //! Get the alignment of the text (see MMSALIGNMENT values).
01110         /*!
01111         \return size of the font
01112         */
01113         MMSALIGNMENT getAlignment();
01114 
01115         //! Check if the color is set. This color will be used for the unselected text.
01116         bool isColor();
01117 
01118         //! Set the color which is used to draw the unselected text.
01119         /*!
01120         \param color  color for unselected text
01121         */
01122         void setColor(MMSFBColor color);
01123 
01124         //! Mark the color as not set.
01125         void unsetColor();
01126 
01127         //! Get the color which is used to draw the unselected text.
01128         /*!
01129         \return color for unselected text
01130         */
01131         MMSFBColor getColor();
01132 
01133         //! Check if the color is set. This color will be used for the selected text.
01134         bool isSelColor();
01135 
01136         //! Set the color which is used to draw the selected text.
01137         /*!
01138         \param selcolor  color for selected text
01139         */
01140         void setSelColor(MMSFBColor selcolor);
01141 
01142         //! Mark the color as not set.
01143         void unsetSelColor();
01144 
01145         //! Get the color which is used to draw the selected text.
01146         /*!
01147         \return color for selected text
01148         */
01149         MMSFBColor getSelColor();
01150 
01151 
01152         //! Check if the color_p is set. This color will be used for the unselected, pressed text.
01153         bool isColor_p();
01154 
01155         //! Set the color which is used to draw the unselected, pressed text.
01156         /*!
01157         \param color_p  color for unselected, pressed text
01158         */
01159         void setColor_p(MMSFBColor color_p);
01160 
01161         //! Mark the color_p as not set.
01162         void unsetColor_p();
01163 
01164         //! Get the color which is used to draw the unselected, pressed text.
01165         /*!
01166         \return color for unselected, pressed text
01167         */
01168         MMSFBColor getColor_p();
01169 
01170         //! Check if the color is set. This color will be used for the selected, pressed text.
01171         bool isSelColor_p();
01172 
01173         //! Set the color which is used to draw the selected, pressed text.
01174         /*!
01175         \param selcolor_p  color for selected, pressed text
01176         */
01177         void setSelColor_p(MMSFBColor selcolor_p);
01178 
01179         //! Mark the color_p as not set.
01180         void unsetSelColor_p();
01181 
01182         //! Get the color which is used to draw the selected, pressed text.
01183         /*!
01184         \return color for selected, pressed text
01185         */
01186         MMSFBColor getSelColor_p();
01187 
01188 
01189 
01190         //! Check if the color_i is set. This color will be used for the unselected, inactive text.
01191         bool isColor_i();
01192 
01193         //! Set the color which is used to draw the unselected, inactive text.
01194         /*!
01195         \param color_i  color for unselected, inactive text
01196         */
01197         void setColor_i(MMSFBColor color_i);
01198 
01199         //! Mark the color_i as not set.
01200         void unsetColor_i();
01201 
01202         //! Get the color which is used to draw the unselected, inactive text.
01203         /*!
01204         \return color for unselected, inactive text
01205         */
01206         MMSFBColor getColor_i();
01207 
01208         //! Check if the color is set. This color will be used for the selected, inactive text.
01209         bool isSelColor_i();
01210 
01211         //! Set the color which is used to draw the selected, inactive text.
01212         /*!
01213         \param selcolor_i  color for selected, inactive text
01214         */
01215         void setSelColor_i(MMSFBColor selcolor_i);
01216 
01217         //! Mark the color_i as not set.
01218         void unsetSelColor_i();
01219 
01220         //! Get the color which is used to draw the selected, inactive text.
01221         /*!
01222         \return color for selected, inactive text
01223         */
01224         MMSFBColor getSelColor_i();
01225 
01226 
01227         //! Check if the text is set.
01228         bool isText();
01229 
01230         //! Set the text to be drawn.
01231         /*!
01232         \param text  pointer to any text string
01233         */
01234         void setText(string *text);
01235 
01236         //! Set the text to be drawn.
01237         /*!
01238         \param text  any text string
01239         */
01240         void setText(string text);
01241 
01242         //! Mark the text as not set.
01243         void unsetText();
01244 
01245         //! Get the current text.
01246         /*!
01247         \return text string
01248         */
01249         string getText();
01250 
01251 
01252 
01253         bool isShadowColor(MMSPOSITION position);
01254         void setShadowColor(MMSPOSITION position, MMSFBColor color);
01255         void unsetShadowColor(MMSPOSITION position);
01256         void unsetShadowColors();
01257         MMSFBColor getShadowColor(MMSPOSITION position);
01258 
01259         bool isSelShadowColor(MMSPOSITION position);
01260         void setSelShadowColor(MMSPOSITION position, MMSFBColor selcolor);
01261         void unsetSelShadowColor(MMSPOSITION position);
01262         void unsetSelShadowColors();
01263         MMSFBColor getSelShadowColor(MMSPOSITION position);
01264 
01265 
01266     // friends
01267     friend class MMSThemeManager;
01268     friend class MMSDialogManager;
01269 };
01270 
01271 #endif /*MMSTEXTBASECLASS_H_*/

Generated by doxygen