kspread

kspread_global.h

00001 #ifndef KSPREAD_GLOBAL_H
00002 #define KSPREAD_GLOBAL_H
00003 
00004 #include <kiconloader.h>
00005 
00006 #include "kspread_factory.h"
00007 
00008 #include <qdatetime.h>
00009 #include <kdebug.h>
00010 
00011 
00012 #define KSBarIcon( x ) BarIcon( x, Factory::global() )
00013 #define colWidth 60.0
00014 #define heightOfRow 20.0
00015 
00016 /* Definition of maximal supported rows - please check kspread_util (columnName) and kspread_cluster also */
00017 #define KS_rowMax 0x7FFF
00018 /* Definition of maximal supported columns - please check kspread_util (columnName) and kspread_cluster also */
00019 #define KS_colMax 0x7FFF
00020 
00021 /* Currently used by StyleCluster for the Quad tree - question is, if we can make the spreadsheet this big in general?
00022    We need this value to be the smallest number which is a power of 2 and more than both KS_rowMax and KS_colMax*/
00023 #define KS_Max_Quad 0x8000
00024 
00025 /* Definition of maximal supported columns/rows, which can be merged */
00026 #define KS_spanMax 0xFFF
00027 
00028 
00029 namespace KSpread
00030 {
00031 
00032 class ElapsedTime
00033 {
00034  public:
00035   enum OutputMode { Default, PrintOnlyTime };
00036   ElapsedTime()
00037   {
00038     m_time.start();
00039   }
00040 
00041   ElapsedTime( QString const & name, OutputMode mode = Default )
00042     : m_name( name )
00043   {
00044     m_time.start();
00045     if ( mode != PrintOnlyTime )
00046       kdDebug() << "*** (" << name << ")... Starting measuring... " << endl;
00047   }
00048 
00049   ~ElapsedTime()
00050   {
00051     uint milliSec = m_time.elapsed();
00052     uint min = (uint) ( milliSec / ( 1000 * 60 ) );
00053     milliSec -= ( min * 60 * 1000 );
00054     uint sec = (uint) ( milliSec / 1000 );
00055     milliSec -= sec * 1000;
00056 
00057     if ( m_name.isNull() )
00058       kdDebug() << "*** Elapsed time: " << min << " min, " << sec << " sec, " << milliSec << " msec" << endl;
00059     else
00060       kdDebug() << "*** (" << m_name << ") Elapsed time " << min << " min, " << sec << " sec, " << milliSec << " msec" << endl;
00061   }
00062 
00063  private:
00064   QTime   m_time;
00065   QString m_name;
00066 };
00067 
00072 namespace Paste
00073 {
00077   enum Mode
00078   {
00079     Normal ,
00080     Text ,
00081     Format ,
00082     NoBorder ,
00083     Comment ,
00084     Result ,
00085     NormalAndTranspose ,
00086     TextAndTranspose ,
00087     FormatAndTranspose ,
00088     NoBorderAndTranspose 
00089   };
00093   enum Operation
00094   {
00095     OverWrite ,
00096     Add ,
00097     Mul ,
00098     Sub ,
00099     Div 
00100   };
00101 } // namespace Paste
00102 
00107 namespace Restriction
00108 {
00112   enum Type
00113   {
00114     None ,
00115     Number ,
00116     Text ,
00117     Time ,
00118     Date ,
00119     Integer ,
00120     TextLength ,
00121     List 
00122   };
00123 } // namespace Restriction
00124 
00125 namespace Action
00126 {
00127   enum Type
00128   {
00129     Stop,
00130     Warning,
00131     Information
00132   };
00133 }
00134 
00135 enum Series { Column,Row,Linear,Geometric };
00136 // necessary due to QDock* enums (Werner)
00137 enum MoveTo { Bottom, Left, Top, Right, BottomFirst };
00138 enum MethodOfCalc { SumOfNumber, Min, Max, Average, Count, NoneCalc, CountA };
00139 
00140 enum FormatType {
00141     Generic_format=0,
00142     Number_format=1, Text_format=5, Money_format=10, Percentage_format=25,
00143     Scientific_format=30,
00144     ShortDate_format=35, TextDate_format=36, Time_format=50,
00145     SecondeTime_format=51,
00146     Time_format1=52, Time_format2=53, Time_format3=54, Time_format4=55,
00147     Time_format5=56, Time_format6=57, Time_format7=58, Time_format8=59,
00148     fraction_half=70,fraction_quarter=71,fraction_eighth=72,fraction_sixteenth=73,
00149     fraction_tenth=74,fraction_hundredth=75,fraction_one_digit=76,
00150     fraction_two_digits=77,fraction_three_digits=78,
00151     date_format1=200,date_format2=201,date_format3=202,date_format4=203,
00152     date_format5=204,date_format6=205,date_format7=206,date_format8=207,
00153     date_format9=208,date_format10=209,date_format11=210,date_format12=211,
00154     date_format13=212,date_format14=213,date_format15=214,date_format16=215,
00155     date_format17=216,date_format18=217,date_format19=218,date_format20=219,
00156     date_format21=220,date_format22=221,date_format23=222,date_format24=223,
00157     date_format25=224,date_format26=225,
00158     Custom_format = 300, No_format = 400
00159 };
00160 
00161 enum ModifyType {
00162   MT_NONE = 0,
00163   MT_MOVE,
00164   MT_RESIZE_UP,
00165   MT_RESIZE_DN,
00166   MT_RESIZE_LF,
00167   MT_RESIZE_RT,
00168   MT_RESIZE_LU,
00169   MT_RESIZE_LD,
00170   MT_RESIZE_RU,
00171   MT_RESIZE_RD
00172 };
00173 
00174 enum PropValue {
00175     STATE_ON = 0,
00176     STATE_OFF = 1,
00177     STATE_UNDEF = 2
00178 };
00179 
00180 //TODO Implement all objects :)
00181 enum ToolEditMode {
00182     TEM_MOUSE = 0,
00183     //INS_RECT = 1,
00184     //INS_ELLIPSE = 2,
00185     //INS_TEXT = 3,
00186     //INS_PIE = 4,
00187     INS_OBJECT = 5,
00188     //INS_LINE = 6,
00189     INS_DIAGRAMM = 7,
00190     //INS_TABLE = 8,
00191     //INS_FORMULA = 9,
00192     //INS_AUTOFORM = 10,
00193     //INS_FREEHAND = 11,
00194     //INS_POLYLINE = 12,
00195     //INS_QUADRICBEZIERCURVE = 13,
00196     //INS_CUBICBEZIERCURVE = 14,
00197     //INS_POLYGON = 15,
00198     INS_PICTURE = 16
00199     //INS_CLIPART = 17,
00200     //TEM_ROTATE = 18,
00201     //TEM_ZOOM = 19,
00202     //INS_CLOSED_FREEHAND = 20,
00203     //INS_CLOSED_POLYLINE = 21,
00204     //INS_CLOSED_QUADRICBEZIERCURVE = 22,
00205     //INS_CLOSED_CUBICBEZIERCURVE = 23
00206 };
00207 
00208 
00209 } // namespace KSpread
00210 
00211 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys