Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

FontControl.cpp

Go to the documentation of this file.
00001 #include <qfontdatabase.h>
00002 
00003 #include "FontControl.h"
00004 
00005 int FontControl::gzoom()
00006 {
00007   if (m_fixgraphics)
00008     {
00009       return 100;
00010     }
00011   else
00012     {
00013       int ret;
00014       if (m_size == g_size)
00015         {
00016           ret = m_fontsizes[m_size]*m_basesize;
00017         }
00018       else if (g_size < 0)
00019         {
00020           int f = -g_size;
00021           ret = (m_fontsizes[0]*m_basesize) >> (f/2);
00022           if (f%2) ret = (2*ret/3);
00023         }
00024       else
00025         {
00026           int f = g_size - m_maxsize + 1;
00027           ret = (m_fontsizes[m_maxsize-1]*m_basesize) << (f/2);
00028           if (f%2) ret = (3*ret/2);
00029         }
00030       return ret;
00031     }
00032 }
00033 
00034 bool FontControl::ChangeFont(QString& n, int tgt)
00035 {
00036     QValueList<int>::Iterator it;
00037     QFontDatabase fdb;
00038     QValueList<int> sizes = fdb.pointSizes(n);
00039     if (sizes.count() == 0)
00040     {
00041         return false;
00042     }
00043     else
00044     {
00045         m_fontname = n;
00046         m_maxsize = sizes.count();
00047         if (m_fontsizes != NULL) delete [] m_fontsizes;
00048         m_fontsizes = new int[m_maxsize];
00049         uint i = 0;
00050         uint best = 0;
00051         for (it = sizes.begin(); it != sizes.end(); it++)
00052         {
00053 #if defined(OPIE) || !defined(USEQPE)
00054             m_fontsizes[i] = (*it);
00055 #else
00056             m_fontsizes[i] = (*it)/10;
00057 #endif
00058             if (abs(tgt-m_fontsizes[i]) < abs(tgt-m_fontsizes[best]))
00059             {
00060                 best = i;
00061             }
00062             i++;
00063         }
00064         g_size = m_size = best;
00065     }
00066     return true;
00067 }

Generated on Sat Nov 5 16:16:55 2005 for OPIE by  doxygen 1.4.2