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

Generated by doxygen