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

Generated by doxygen