00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "tqdbusdataconverter.h"
00025 #include "tqdbusdata.h"
00026
00027 #include <tqpoint.h>
00028 #include <tqrect.h>
00029 #include <tqsize.h>
00030 #include <tqvaluelist.h>
00031
00032 template <>
00033 TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertFromTQT_DBusData<TQRect>(const TQT_DBusData& dbusData, TQRect& typeData)
00034 {
00035 if (dbusData.type() != TQT_DBusData::Struct) return InvalidSignature;
00036
00037 TQValueList<TQT_DBusData> members = dbusData.toStruct();
00038 if (members.count() != 4) return InvalidSignature;
00039
00040 TQ_INT32 values[4];
00041
00042 TQValueList<TQT_DBusData>::const_iterator it = members.begin();
00043 TQValueList<TQT_DBusData>::const_iterator endIt = members.end();
00044 for (uint i = 0; it != endIt; ++it, ++i)
00045 {
00046 bool ok = false;
00047 values[i] = (*it).toInt32(&ok);
00048 if (!ok) return InvalidSignature;
00049 }
00050
00051 typeData = TQRect(values[0], values[1], values[2], values[3]);
00052
00053 return Success;
00054 }
00055
00056 template <>
00057 TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertToTQT_DBusData<TQRect>(const TQRect& typeData, TQT_DBusData& dbusData)
00058 {
00059 TQValueList<TQT_DBusData> members;
00060
00061 members << TQT_DBusData::fromInt32(typeData.x());
00062 members << TQT_DBusData::fromInt32(typeData.y());
00063 members << TQT_DBusData::fromInt32(typeData.width());
00064 members << TQT_DBusData::fromInt32(typeData.height());
00065
00066 dbusData = TQT_DBusData::fromStruct(members);
00067
00068 return Success;
00069 }
00070
00071 template <>
00072 TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertFromTQT_DBusData<TQPoint>(const TQT_DBusData& dbusData, TQPoint& typeData)
00073 {
00074 if (dbusData.type() != TQT_DBusData::Struct) return InvalidSignature;
00075
00076 TQValueList<TQT_DBusData> members = dbusData.toStruct();
00077 if (members.count() != 2) return InvalidSignature;
00078
00079 TQ_INT32 values[2];
00080
00081 TQValueList<TQT_DBusData>::const_iterator it = members.begin();
00082 TQValueList<TQT_DBusData>::const_iterator endIt = members.end();
00083 for (uint i = 0; it != endIt; ++it, ++i)
00084 {
00085 bool ok = false;
00086 values[i] = (*it).toInt32(&ok);
00087 if (!ok) return InvalidSignature;
00088 }
00089
00090 typeData = TQPoint(values[0], values[1]);
00091
00092 return Success;
00093 }
00094
00095 template <>
00096 TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertToTQT_DBusData<TQPoint>(const TQPoint& typeData, TQT_DBusData& dbusData)
00097 {
00098 TQValueList<TQT_DBusData> members;
00099
00100 members << TQT_DBusData::fromInt32(typeData.x());
00101 members << TQT_DBusData::fromInt32(typeData.y());
00102
00103 dbusData = TQT_DBusData::fromStruct(members);
00104
00105 return Success;
00106 }
00107
00108 template <>
00109 TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertFromTQT_DBusData<TQSize>(const TQT_DBusData& dbusData, TQSize& typeData)
00110 {
00111 if (dbusData.type() != TQT_DBusData::Struct) return InvalidSignature;
00112
00113 TQValueList<TQT_DBusData> members = dbusData.toStruct();
00114 if (members.count() != 2) return InvalidSignature;
00115
00116 TQ_INT32 values[2];
00117
00118 TQValueList<TQT_DBusData>::const_iterator it = members.begin();
00119 TQValueList<TQT_DBusData>::const_iterator endIt = members.end();
00120 for (uint i = 0; it != endIt; ++it, ++i)
00121 {
00122 bool ok = false;
00123 values[i] = (*it).toInt32(&ok);
00124 if (!ok) return InvalidSignature;
00125 }
00126
00127 typeData = TQSize(values[0], values[1]);
00128
00129 return Success;
00130 }
00131
00132 template <>
00133 TQT_DBusDataConverter::Result TQT_DBusDataConverter::convertToTQT_DBusData<TQSize>(const TQSize& typeData, TQT_DBusData& dbusData)
00134 {
00135 TQValueList<TQT_DBusData> members;
00136
00137 members << TQT_DBusData::fromInt32(typeData.width());
00138 members << TQT_DBusData::fromInt32(typeData.height());
00139
00140 dbusData = TQT_DBusData::fromStruct(members);
00141
00142 return Success;
00143 }