Loads bitmaps into QSPI memory for GC500_2_5inch to use.

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Mon Jul 31 15:44:39 2017 +0000
Revision:
0:a5c253316af6
Background and scroll arrow bitmaps added to QSPI memory.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmitc91516 0:a5c253316af6 1 /* ************************************************************************ */
jmitc91516 0:a5c253316af6 2 /* */
jmitc91516 0:a5c253316af6 3 /* (C)2004-2015 IBIS Solutions ApS */
jmitc91516 0:a5c253316af6 4 /* sales@easyGUI.com */
jmitc91516 0:a5c253316af6 5 /* www.easyGUI.com */
jmitc91516 0:a5c253316af6 6 /* */
jmitc91516 0:a5c253316af6 7 /* v6.0.9.005 */
jmitc91516 0:a5c253316af6 8 /* */
jmitc91516 0:a5c253316af6 9 /* GuiLib.c include file - do NOT reference it in your linker setup */
jmitc91516 0:a5c253316af6 10 /* */
jmitc91516 0:a5c253316af6 11 /* ************************************************************************ */
jmitc91516 0:a5c253316af6 12
jmitc91516 0:a5c253316af6 13 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 14 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 15 static GuiConst_INT8U GetItemByte(
jmitc91516 0:a5c253316af6 16 GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
jmitc91516 0:a5c253316af6 17 {
jmitc91516 0:a5c253316af6 18 GuiConst_INT8U D;
jmitc91516 0:a5c253316af6 19 #ifdef GuiConst_AVRGCC_COMPILER
jmitc91516 0:a5c253316af6 20 D = ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 21 #else
jmitc91516 0:a5c253316af6 22 #ifdef GuiConst_AVR_COMPILER_FLASH_RAM
jmitc91516 0:a5c253316af6 23 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 24 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 25 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 26 #else
jmitc91516 0:a5c253316af6 27 #ifdef GuiConst_ICC_COMPILER
jmitc91516 0:a5c253316af6 28 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 29 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 30 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 31 #else
jmitc91516 0:a5c253316af6 32 #ifdef GuiConst_CODEVISION_COMPILER
jmitc91516 0:a5c253316af6 33 GuiConst_INT8U PrefixRom * ItemFlashPtr;
jmitc91516 0:a5c253316af6 34 ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 35 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 36 #else
jmitc91516 0:a5c253316af6 37 D = **ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 38 #endif
jmitc91516 0:a5c253316af6 39 #endif
jmitc91516 0:a5c253316af6 40 #endif
jmitc91516 0:a5c253316af6 41 #endif
jmitc91516 0:a5c253316af6 42 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 43 return (D);
jmitc91516 0:a5c253316af6 44 }
jmitc91516 0:a5c253316af6 45 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 46 static GuiConst_INT16S GetItemWord(
jmitc91516 0:a5c253316af6 47 GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
jmitc91516 0:a5c253316af6 48 {
jmitc91516 0:a5c253316af6 49 GuiConst_INT16U D;
jmitc91516 0:a5c253316af6 50
jmitc91516 0:a5c253316af6 51 #ifdef GuiConst_AVRGCC_COMPILER
jmitc91516 0:a5c253316af6 52 D = ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 53 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 54 D += 0x0100 * (GuiConst_INT16U)ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 55 #else
jmitc91516 0:a5c253316af6 56 #ifdef GuiConst_AVR_COMPILER_FLASH_RAM
jmitc91516 0:a5c253316af6 57 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 58 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 59 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 60 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 61 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 62 D += 0x0100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 63 #else
jmitc91516 0:a5c253316af6 64 #ifdef GuiConst_ICC_COMPILER
jmitc91516 0:a5c253316af6 65 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 66 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 67 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 68 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 69 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 70 D += 0x0100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 71 #else
jmitc91516 0:a5c253316af6 72 #ifdef GuiConst_CODEVISION_COMPILER
jmitc91516 0:a5c253316af6 73 GuiConst_INT8U PrefixRom * ItemFlashPtr;
jmitc91516 0:a5c253316af6 74 ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 75 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 76 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 77 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 78 D += 0x0100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 79 #else
jmitc91516 0:a5c253316af6 80 D = **ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 81 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 82 D += 0x0100 * (GuiConst_INT16U)**ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 83 #endif
jmitc91516 0:a5c253316af6 84 #endif
jmitc91516 0:a5c253316af6 85 #endif
jmitc91516 0:a5c253316af6 86 #endif
jmitc91516 0:a5c253316af6 87 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 88 return ((GuiConst_INT16S) D);
jmitc91516 0:a5c253316af6 89 }
jmitc91516 0:a5c253316af6 90 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 91 #ifdef GuiLib_COLOR_BYTESIZE_3
jmitc91516 0:a5c253316af6 92 static GuiConst_INT32S GetItemTriple(
jmitc91516 0:a5c253316af6 93 GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
jmitc91516 0:a5c253316af6 94 {
jmitc91516 0:a5c253316af6 95 GuiConst_INT32U D;
jmitc91516 0:a5c253316af6 96
jmitc91516 0:a5c253316af6 97 #ifdef GuiConst_AVRGCC_COMPILER
jmitc91516 0:a5c253316af6 98 D = ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 99 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 100 D += 0x00000100 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 101 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 102 D += 0x00010000 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 103 #else
jmitc91516 0:a5c253316af6 104 #ifdef GuiConst_AVR_COMPILER_FLASH_RAM
jmitc91516 0:a5c253316af6 105 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 106 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 107 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 108 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 109 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 110 D += 0x00000100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 111 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 112 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 113 D += 0x00010000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 114 #else
jmitc91516 0:a5c253316af6 115 #ifdef GuiConst_ICC_COMPILER
jmitc91516 0:a5c253316af6 116 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 117 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 118 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 119 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 120 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 121 D += 0x00000100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 122 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 123 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 124 D += 0x00010000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 125 #else
jmitc91516 0:a5c253316af6 126 #ifdef GuiConst_CODEVISION_COMPILER
jmitc91516 0:a5c253316af6 127 GuiConst_INT8U PrefixRom * ItemFlashPtr;
jmitc91516 0:a5c253316af6 128 ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 129 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 130 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 131 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 132 D += 0x00000100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 133 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 134 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 135 D += 0x00010000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 136 #else
jmitc91516 0:a5c253316af6 137 D = **ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 138 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 139 D += 0x00000100 * (GuiConst_INT32U)**ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 140 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 141 D += 0x00010000 * (GuiConst_INT32U)**ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 142 #endif
jmitc91516 0:a5c253316af6 143 #endif
jmitc91516 0:a5c253316af6 144 #endif
jmitc91516 0:a5c253316af6 145 #endif
jmitc91516 0:a5c253316af6 146 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 147 return ((GuiConst_INT32S) D);
jmitc91516 0:a5c253316af6 148 }
jmitc91516 0:a5c253316af6 149 #endif
jmitc91516 0:a5c253316af6 150
jmitc91516 0:a5c253316af6 151 #ifdef GuiLib_GETITEMLONG
jmitc91516 0:a5c253316af6 152 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 153 static GuiConst_INT32S GetItemLong(
jmitc91516 0:a5c253316af6 154 GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
jmitc91516 0:a5c253316af6 155 {
jmitc91516 0:a5c253316af6 156 GuiConst_INT32U D;
jmitc91516 0:a5c253316af6 157
jmitc91516 0:a5c253316af6 158 #ifdef GuiConst_AVRGCC_COMPILER
jmitc91516 0:a5c253316af6 159 D = ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 160 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 161 D += 0x00000100 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 162 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 163 D += 0x00010000 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 164 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 165 D += 0x01000000 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
jmitc91516 0:a5c253316af6 166 #else
jmitc91516 0:a5c253316af6 167 #ifdef GuiConst_AVR_COMPILER_FLASH_RAM
jmitc91516 0:a5c253316af6 168 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 169 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 170 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 171 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 172 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 173 D += 0x00000100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 174 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 175 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 176 D += 0x00010000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 177 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 178 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 179 D += 0x01000000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 180 #else
jmitc91516 0:a5c253316af6 181 #ifdef GuiConst_ICC_COMPILER
jmitc91516 0:a5c253316af6 182 GuiConst_INT8U PrefixRom * ItemFlashPtr =
jmitc91516 0:a5c253316af6 183 (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 184 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 185 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 186 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 187 D += 0x00000100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 188 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 189 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 190 D += 0x00010000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 191 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 192 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 193 D += 0x01000000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 194 #else
jmitc91516 0:a5c253316af6 195 #ifdef GuiConst_CODEVISION_COMPILER
jmitc91516 0:a5c253316af6 196 GuiConst_INT8U PrefixRom * ItemFlashPtr;
jmitc91516 0:a5c253316af6 197 ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 198 D = *ItemFlashPtr;
jmitc91516 0:a5c253316af6 199 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 200 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 201 D += 0x00000100 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 202 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 203 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 204 D += 0x00010000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 205 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 206 ItemFlashPtr++;
jmitc91516 0:a5c253316af6 207 D += 0x01000000 * (*ItemFlashPtr);
jmitc91516 0:a5c253316af6 208 #else
jmitc91516 0:a5c253316af6 209 D = **ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 210 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 211 D += 0x00000100 * (GuiConst_INT32U)**ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 212 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 213 D += 0x00010000 * (GuiConst_INT32U)**ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 214 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 215 D += 0x01000000 * (GuiConst_INT32U)**ItemDataPtrPtr;
jmitc91516 0:a5c253316af6 216 #endif
jmitc91516 0:a5c253316af6 217 #endif
jmitc91516 0:a5c253316af6 218 #endif
jmitc91516 0:a5c253316af6 219 #endif
jmitc91516 0:a5c253316af6 220 (*ItemDataPtrPtr)++;
jmitc91516 0:a5c253316af6 221 return ((GuiConst_INT32S) D);
jmitc91516 0:a5c253316af6 222 }
jmitc91516 0:a5c253316af6 223 #endif
jmitc91516 0:a5c253316af6 224
jmitc91516 0:a5c253316af6 225 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 226 #ifdef GuiLib_COLOR_BYTESIZE_1
jmitc91516 0:a5c253316af6 227 #define GetItemColor GetItemByte
jmitc91516 0:a5c253316af6 228 #endif
jmitc91516 0:a5c253316af6 229 #ifdef GuiLib_COLOR_BYTESIZE_2
jmitc91516 0:a5c253316af6 230 #define GetItemColor GetItemWord
jmitc91516 0:a5c253316af6 231 #endif
jmitc91516 0:a5c253316af6 232 #ifdef GuiLib_COLOR_BYTESIZE_3
jmitc91516 0:a5c253316af6 233 #define GetItemColor GetItemTriple
jmitc91516 0:a5c253316af6 234 #endif
jmitc91516 0:a5c253316af6 235
jmitc91516 0:a5c253316af6 236 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 237 GuiConst_TEXT PrefixGeneric *GetItemTextPtr(GuiConst_INT8U index)
jmitc91516 0:a5c253316af6 238 {
jmitc91516 0:a5c253316af6 239 #ifndef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 240 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 241 GuiConst_INT16U TxtReadSize;
jmitc91516 0:a5c253316af6 242 #endif
jmitc91516 0:a5c253316af6 243 #endif
jmitc91516 0:a5c253316af6 244
jmitc91516 0:a5c253316af6 245 if (index > 2)
jmitc91516 0:a5c253316af6 246 return NULL;
jmitc91516 0:a5c253316af6 247
jmitc91516 0:a5c253316af6 248 #ifdef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 249 sgl.CurItem.TextLength[index] = GetRemoteText(sgl.CurItem.TextIndex[index]);
jmitc91516 0:a5c253316af6 250 sgl.CurItem.TextPtr[index] = &sgl.GuiLib_RemoteTextBuffer[0];
jmitc91516 0:a5c253316af6 251
jmitc91516 0:a5c253316af6 252 #else
jmitc91516 0:a5c253316af6 253 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 254
jmitc91516 0:a5c253316af6 255 TxtReadSize = sgl.CurItem.TextLength[index] + 1;
jmitc91516 0:a5c253316af6 256 #ifndef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 257 TxtReadSize *= 2;
jmitc91516 0:a5c253316af6 258 #endif
jmitc91516 0:a5c253316af6 259
jmitc91516 0:a5c253316af6 260 GuiLib_RemoteDataReadBlock(sgl.CurItem.TextOffset[index],
jmitc91516 0:a5c253316af6 261 TxtReadSize,
jmitc91516 0:a5c253316af6 262 (GuiConst_INT8U PrefixGeneric*)&sgl.GuiLib_RemoteStructText);
jmitc91516 0:a5c253316af6 263 sgl.CurItem.TextPtr[index] = (GuiConst_TEXT PrefixGeneric*)&sgl.GuiLib_RemoteStructText;
jmitc91516 0:a5c253316af6 264 #endif
jmitc91516 0:a5c253316af6 265 #endif // GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 266
jmitc91516 0:a5c253316af6 267 return sgl.CurItem.TextPtr[index];
jmitc91516 0:a5c253316af6 268
jmitc91516 0:a5c253316af6 269
jmitc91516 0:a5c253316af6 270 }
jmitc91516 0:a5c253316af6 271
jmitc91516 0:a5c253316af6 272 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 273 #ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
jmitc91516 0:a5c253316af6 274 #define GuiItem_TEMP_PTR_NEEDED
jmitc91516 0:a5c253316af6 275 #endif
jmitc91516 0:a5c253316af6 276 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 277 #ifndef GuiItem_TEMP_PTR_NEEDED
jmitc91516 0:a5c253316af6 278 #define GuiItem_TEMP_PTR_NEEDED
jmitc91516 0:a5c253316af6 279 #endif
jmitc91516 0:a5c253316af6 280 #endif
jmitc91516 0:a5c253316af6 281 #ifdef GuiConst_ITEM_CHECKBOX_INUSE
jmitc91516 0:a5c253316af6 282 #ifndef GuiItem_TEMP_PTR_NEEDED
jmitc91516 0:a5c253316af6 283 #define GuiItem_TEMP_PTR_NEEDED
jmitc91516 0:a5c253316af6 284 #endif
jmitc91516 0:a5c253316af6 285 #endif
jmitc91516 0:a5c253316af6 286
jmitc91516 0:a5c253316af6 287 static void DrawItem(
jmitc91516 0:a5c253316af6 288 GuiConst_INT8U ColorInvert)
jmitc91516 0:a5c253316af6 289 {
jmitc91516 0:a5c253316af6 290 GuiConst_INT16U StructToCallIndex;
jmitc91516 0:a5c253316af6 291 GuiConst_INT32S VarValue;
jmitc91516 0:a5c253316af6 292 GuiConst_INT16S I, N;
jmitc91516 0:a5c253316af6 293 #ifdef GuiConst_ITEM_CHECKBOX_INUSE
jmitc91516 0:a5c253316af6 294 GuiConst_INT8U CheckmarkMode;
jmitc91516 0:a5c253316af6 295 #endif
jmitc91516 0:a5c253316af6 296 #ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
jmitc91516 0:a5c253316af6 297 GuiConst_INT16S RemYMemory;
jmitc91516 0:a5c253316af6 298 #endif
jmitc91516 0:a5c253316af6 299 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 300 GuiConst_INT8U DisabledGlyphColorInUse;
jmitc91516 0:a5c253316af6 301 GuiConst_INT8U DisabledTextColorInUse;
jmitc91516 0:a5c253316af6 302 GuiConst_INT16S CX, CY;
jmitc91516 0:a5c253316af6 303 GuiConst_INT16S RemX1, RemY1;
jmitc91516 0:a5c253316af6 304 GuiConst_INT16S GX1, GX2, GY1, GY2;
jmitc91516 0:a5c253316af6 305 GuiConst_INTCOLOR ButtonColor;
jmitc91516 0:a5c253316af6 306 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 307 GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2;
jmitc91516 0:a5c253316af6 308 #endif // GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 309 #endif
jmitc91516 0:a5c253316af6 310 GuiConst_INT16U StrLen;
jmitc91516 0:a5c253316af6 311 #ifdef GuiItem_TEMP_PTR_NEEDED
jmitc91516 0:a5c253316af6 312 TextParRec TempTextPar;
jmitc91516 0:a5c253316af6 313 #endif
jmitc91516 0:a5c253316af6 314 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 315 GuiConst_INT8U IsCursorField;
jmitc91516 0:a5c253316af6 316 GuiConst_INT8U FoundActiveCursorField;
jmitc91516 0:a5c253316af6 317 #endif
jmitc91516 0:a5c253316af6 318 GuiConst_INTCOLOR ForeColor;
jmitc91516 0:a5c253316af6 319 GuiConst_INTCOLOR BackColor;
jmitc91516 0:a5c253316af6 320 GuiConst_INT8U BackColorTransp;
jmitc91516 0:a5c253316af6 321 GuiConst_INT32S BackColor2;
jmitc91516 0:a5c253316af6 322 #ifndef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 323 GuiConst_INT16U P;
jmitc91516 0:a5c253316af6 324 #endif
jmitc91516 0:a5c253316af6 325 GuiConst_TEXT PrefixGeneric *CharPtr;
jmitc91516 0:a5c253316af6 326 GuiConst_INT16S X1, X2, Y1, Y2;
jmitc91516 0:a5c253316af6 327 #ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
jmitc91516 0:a5c253316af6 328 GuiConst_INT16S CX1, CX2, CY1, CY2;
jmitc91516 0:a5c253316af6 329 GuiConst_INT16S Y;
jmitc91516 0:a5c253316af6 330 GuiConst_INT16S SourceLayerIndexNo;
jmitc91516 0:a5c253316af6 331 GuiConst_INT16S DestLayerIndexNo;
jmitc91516 0:a5c253316af6 332 GuiConst_INT8U PrefixLocate *DestAddress;
jmitc91516 0:a5c253316af6 333 GuiConst_INT16U DestLineSize;
jmitc91516 0:a5c253316af6 334 GuiConst_INT16S DestX;
jmitc91516 0:a5c253316af6 335 GuiConst_INT16S DestY;
jmitc91516 0:a5c253316af6 336 GuiConst_INT16U DestWidth;
jmitc91516 0:a5c253316af6 337 GuiConst_INT16U DestHeight;
jmitc91516 0:a5c253316af6 338 GuiConst_INT8U PrefixLocate *SourceAddress;
jmitc91516 0:a5c253316af6 339 GuiConst_INT16U SourceLineSize;
jmitc91516 0:a5c253316af6 340 GuiConst_INT16S SourceX;
jmitc91516 0:a5c253316af6 341 GuiConst_INT16S SourceY;
jmitc91516 0:a5c253316af6 342 GuiConst_INT16U SourceWidth;
jmitc91516 0:a5c253316af6 343 GuiConst_INT16U SourceHeight;
jmitc91516 0:a5c253316af6 344 GuiConst_INT32S FilterPars[10];
jmitc91516 0:a5c253316af6 345 #endif
jmitc91516 0:a5c253316af6 346 #ifdef GuiConst_ITEM_STRUCTCOND_INUSE
jmitc91516 0:a5c253316af6 347 GuiConst_INT8U FirstRound;
jmitc91516 0:a5c253316af6 348 #endif
jmitc91516 0:a5c253316af6 349 #ifdef GuiConst_ITEM_TOUCHAREA_INUSE
jmitc91516 0:a5c253316af6 350 GuiConst_INT32S TouchSearch;
jmitc91516 0:a5c253316af6 351 GuiConst_INT32S TouchIndex;
jmitc91516 0:a5c253316af6 352 #endif
jmitc91516 0:a5c253316af6 353 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 354 GuiConst_INT16S found;
jmitc91516 0:a5c253316af6 355 GuiConst_INT16S PrefixLocate *ScrollPos;
jmitc91516 0:a5c253316af6 356 #endif
jmitc91516 0:a5c253316af6 357
jmitc91516 0:a5c253316af6 358 #ifdef GuiConst_REL_COORD_ORIGO_INUSE
jmitc91516 0:a5c253316af6 359 if (!sgl.InitialDrawing)
jmitc91516 0:a5c253316af6 360 {
jmitc91516 0:a5c253316af6 361 sgl.CoordOrigoX = sgl.CurItem.CoordOrigoX;
jmitc91516 0:a5c253316af6 362 sgl.CoordOrigoY = sgl.CurItem.CoordOrigoY;
jmitc91516 0:a5c253316af6 363 }
jmitc91516 0:a5c253316af6 364 #endif
jmitc91516 0:a5c253316af6 365 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 366 if (!sgl.InitialDrawing && sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 367 GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
jmitc91516 0:a5c253316af6 368 sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
jmitc91516 0:a5c253316af6 369 #endif
jmitc91516 0:a5c253316af6 370
jmitc91516 0:a5c253316af6 371 SetCurFont(sgl.CurItem.TextPar[0].FontIndex);
jmitc91516 0:a5c253316af6 372
jmitc91516 0:a5c253316af6 373 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 374 IsCursorField = (sgl.CursorInUse && (sgl.CurItem.CursorFieldNo >= 0));
jmitc91516 0:a5c253316af6 375 FoundActiveCursorField =
jmitc91516 0:a5c253316af6 376 (IsCursorField && (GuiLib_ActiveCursorFieldNo == sgl.CurItem.CursorFieldNo));
jmitc91516 0:a5c253316af6 377 if (FoundActiveCursorField)
jmitc91516 0:a5c253316af6 378 sgl.CursorActiveFieldFound = 1;
jmitc91516 0:a5c253316af6 379 #endif
jmitc91516 0:a5c253316af6 380
jmitc91516 0:a5c253316af6 381 sgl.AutoRedrawSaveIndex = -1;
jmitc91516 0:a5c253316af6 382
jmitc91516 0:a5c253316af6 383 if ((sgl.InitialDrawing) || (sgl.AutoRedrawUpdate == GuiLib_TRUE))
jmitc91516 0:a5c253316af6 384 {
jmitc91516 0:a5c253316af6 385 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 386 if ((sgl.CurItem.CursorFieldNo >= 0) && (sgl.CursorFieldFound == -1))
jmitc91516 0:a5c253316af6 387 sgl.CursorFieldFound = sgl.CurItem.CursorFieldNo;
jmitc91516 0:a5c253316af6 388
jmitc91516 0:a5c253316af6 389 if (IsCursorField)
jmitc91516 0:a5c253316af6 390 {
jmitc91516 0:a5c253316af6 391 sgl.CurItem.CursorFieldLevel++;
jmitc91516 0:a5c253316af6 392
jmitc91516 0:a5c253316af6 393 #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
jmitc91516 0:a5c253316af6 394 if (sgl.NextScrollLineReading)
jmitc91516 0:a5c253316af6 395 {
jmitc91516 0:a5c253316af6 396 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FIELDSCROLLBOX;
jmitc91516 0:a5c253316af6 397 sgl.CurItem.CursorScrollBoxIndex = sgl.GlobalScrollBoxIndex;
jmitc91516 0:a5c253316af6 398 }
jmitc91516 0:a5c253316af6 399 else
jmitc91516 0:a5c253316af6 400 #endif
jmitc91516 0:a5c253316af6 401 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FIELDSCROLLBOX;
jmitc91516 0:a5c253316af6 402
jmitc91516 0:a5c253316af6 403 #ifndef GuiConst_CURSOR_FIELDS_OFF
jmitc91516 0:a5c253316af6 404 if (!(sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_AUTOREDRAWFIELD))
jmitc91516 0:a5c253316af6 405 sgl.AutoRedrawSaveIndex = AutoRedraw_InsertCursor(&sgl.CurItem, 0, sgl.DisplayLevel);
jmitc91516 0:a5c253316af6 406 #endif
jmitc91516 0:a5c253316af6 407 }
jmitc91516 0:a5c253316af6 408 #endif // GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 409
jmitc91516 0:a5c253316af6 410 if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_AUTOREDRAWFIELD)
jmitc91516 0:a5c253316af6 411 {
jmitc91516 0:a5c253316af6 412 sgl.AutoRedrawSaveIndex = AutoRedraw_Insert(&sgl.CurItem, 0, sgl.DisplayLevel);
jmitc91516 0:a5c253316af6 413
jmitc91516 0:a5c253316af6 414 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 415 if (IsCursorField)
jmitc91516 0:a5c253316af6 416 AutoRedraw_SetAsCursor(sgl.AutoRedrawSaveIndex);
jmitc91516 0:a5c253316af6 417 #endif // GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 418 }
jmitc91516 0:a5c253316af6 419 }
jmitc91516 0:a5c253316af6 420
jmitc91516 0:a5c253316af6 421 switch (ColorInvert)
jmitc91516 0:a5c253316af6 422 {
jmitc91516 0:a5c253316af6 423 case GuiLib_COL_INVERT_OFF:
jmitc91516 0:a5c253316af6 424 sgl.SwapColors = 0;
jmitc91516 0:a5c253316af6 425 break;
jmitc91516 0:a5c253316af6 426
jmitc91516 0:a5c253316af6 427 case GuiLib_COL_INVERT_ON:
jmitc91516 0:a5c253316af6 428 sgl.SwapColors = 1;
jmitc91516 0:a5c253316af6 429 break;
jmitc91516 0:a5c253316af6 430
jmitc91516 0:a5c253316af6 431 case GuiLib_COL_INVERT_IF_CURSOR:
jmitc91516 0:a5c253316af6 432 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 433 if (FoundActiveCursorField)
jmitc91516 0:a5c253316af6 434 sgl.SwapColors = 1;
jmitc91516 0:a5c253316af6 435 #else
jmitc91516 0:a5c253316af6 436 sgl.SwapColors = 0;
jmitc91516 0:a5c253316af6 437 #endif
jmitc91516 0:a5c253316af6 438 break;
jmitc91516 0:a5c253316af6 439 }
jmitc91516 0:a5c253316af6 440 if (sgl.SwapColors)
jmitc91516 0:a5c253316af6 441 {
jmitc91516 0:a5c253316af6 442 ForeColor = sgl.CurItem.BarForeColor;
jmitc91516 0:a5c253316af6 443 BackColor = sgl.CurItem.BarBackColor;
jmitc91516 0:a5c253316af6 444 BackColorTransp =
jmitc91516 0:a5c253316af6 445 ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_BARTRANSPARENT) > 0);
jmitc91516 0:a5c253316af6 446 }
jmitc91516 0:a5c253316af6 447 else
jmitc91516 0:a5c253316af6 448 {
jmitc91516 0:a5c253316af6 449 ForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 450 BackColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 451 BackColorTransp =
jmitc91516 0:a5c253316af6 452 ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_TRANSPARENT) > 0);
jmitc91516 0:a5c253316af6 453 }
jmitc91516 0:a5c253316af6 454
jmitc91516 0:a5c253316af6 455 sgl.CurItem.Drawn = 0;
jmitc91516 0:a5c253316af6 456 switch (sgl.CurItem.ItemType)
jmitc91516 0:a5c253316af6 457 {
jmitc91516 0:a5c253316af6 458 case GuiLib_ITEM_CLEARAREA:
jmitc91516 0:a5c253316af6 459 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 460 {
jmitc91516 0:a5c253316af6 461 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 462 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 463 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 464 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 465 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 466 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 467 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 468 GuiLib_FillBox(X1, Y1, X2, Y2, BackColor);
jmitc91516 0:a5c253316af6 469 UpdateDrawLimits(X1, Y1, X2, Y2);
jmitc91516 0:a5c253316af6 470 }
jmitc91516 0:a5c253316af6 471
jmitc91516 0:a5c253316af6 472 break;
jmitc91516 0:a5c253316af6 473
jmitc91516 0:a5c253316af6 474 case GuiLib_ITEM_TEXT:
jmitc91516 0:a5c253316af6 475 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 476 {
jmitc91516 0:a5c253316af6 477 if (sgl.CurItem.TextPar[0].BackBoxSizeX > 0)
jmitc91516 0:a5c253316af6 478 {
jmitc91516 0:a5c253316af6 479 DrawBackBox(BackColor, BackColorTransp, 0);
jmitc91516 0:a5c253316af6 480 UpdateDrawLimits(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2);
jmitc91516 0:a5c253316af6 481 }
jmitc91516 0:a5c253316af6 482
jmitc91516 0:a5c253316af6 483 DRAW_ROM_TEXT(GetItemTextPtr(0),
jmitc91516 0:a5c253316af6 484 sgl.CurItem.TextLength[0],
jmitc91516 0:a5c253316af6 485 0,
jmitc91516 0:a5c253316af6 486 ForeColor,
jmitc91516 0:a5c253316af6 487 BackColor,
jmitc91516 0:a5c253316af6 488 BackColorTransp);
jmitc91516 0:a5c253316af6 489
jmitc91516 0:a5c253316af6 490 UpdateDrawLimits(sgl.FontWriteX1, sgl.FontWriteY1, sgl.FontWriteX2, sgl.FontWriteY2);
jmitc91516 0:a5c253316af6 491 }
jmitc91516 0:a5c253316af6 492
jmitc91516 0:a5c253316af6 493 break;
jmitc91516 0:a5c253316af6 494
jmitc91516 0:a5c253316af6 495 case GuiLib_ITEM_TEXTBLOCK:
jmitc91516 0:a5c253316af6 496 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 497 {
jmitc91516 0:a5c253316af6 498 #ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
jmitc91516 0:a5c253316af6 499 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 500 ScrollPos = TextBox_Scroll_GetPosRec(
jmitc91516 0:a5c253316af6 501 sgl.CurItem.CompPars.CompTextBox.ScrollIndex);
jmitc91516 0:a5c253316af6 502
jmitc91516 0:a5c253316af6 503 if (ScrollPos != NULL)
jmitc91516 0:a5c253316af6 504 sgl.CurItem.CompPars.CompTextBox.ScrollPos = *ScrollPos;
jmitc91516 0:a5c253316af6 505 #endif
jmitc91516 0:a5c253316af6 506 DRAW_ROM_TEXTBLOCK(GetItemTextPtr(0),
jmitc91516 0:a5c253316af6 507 sgl.CurItem.TextLength[0],
jmitc91516 0:a5c253316af6 508 0,
jmitc91516 0:a5c253316af6 509 ForeColor,
jmitc91516 0:a5c253316af6 510 BackColor,
jmitc91516 0:a5c253316af6 511 BackColorTransp);
jmitc91516 0:a5c253316af6 512
jmitc91516 0:a5c253316af6 513 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 514 if (ScrollPos != NULL)
jmitc91516 0:a5c253316af6 515 *ScrollPos = sgl.CurItem.CompPars.CompTextBox.ScrollPos;
jmitc91516 0:a5c253316af6 516 #endif
jmitc91516 0:a5c253316af6 517
jmitc91516 0:a5c253316af6 518 UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1, sgl.CurItem.X2, sgl.CurItem.Y2);
jmitc91516 0:a5c253316af6 519 #endif
jmitc91516 0:a5c253316af6 520 }
jmitc91516 0:a5c253316af6 521
jmitc91516 0:a5c253316af6 522 break;
jmitc91516 0:a5c253316af6 523
jmitc91516 0:a5c253316af6 524 case GuiLib_ITEM_VAR:
jmitc91516 0:a5c253316af6 525 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 526 {
jmitc91516 0:a5c253316af6 527 #ifdef GuiConst_DISP_VAR_NOW
jmitc91516 0:a5c253316af6 528 displayVarNow = 1;
jmitc91516 0:a5c253316af6 529 #endif
jmitc91516 0:a5c253316af6 530
jmitc91516 0:a5c253316af6 531 if (sgl.CurItem.TextPar[0].BackBoxSizeX > 0)
jmitc91516 0:a5c253316af6 532 {
jmitc91516 0:a5c253316af6 533 DrawBackBox(BackColor, BackColorTransp, 0);
jmitc91516 0:a5c253316af6 534 UpdateDrawLimits(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2);
jmitc91516 0:a5c253316af6 535 }
jmitc91516 0:a5c253316af6 536
jmitc91516 0:a5c253316af6 537 if (sgl.CurItem.VarPtr != 0)
jmitc91516 0:a5c253316af6 538 {
jmitc91516 0:a5c253316af6 539 if (sgl.CurItem.VarType == GuiLib_VAR_STRING)
jmitc91516 0:a5c253316af6 540 {
jmitc91516 0:a5c253316af6 541 CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.CurItem.VarPtr;
jmitc91516 0:a5c253316af6 542 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 543 StrLen = strlen(CharPtr);
jmitc91516 0:a5c253316af6 544 #else
jmitc91516 0:a5c253316af6 545 #ifdef GuiConst_CODEVISION_COMPILER
jmitc91516 0:a5c253316af6 546 StrLen = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr);
jmitc91516 0:a5c253316af6 547 #else
jmitc91516 0:a5c253316af6 548 StrLen = GuiLib_UnicodeStrLen(CharPtr);
jmitc91516 0:a5c253316af6 549 #endif
jmitc91516 0:a5c253316af6 550 #endif
jmitc91516 0:a5c253316af6 551 }
jmitc91516 0:a5c253316af6 552 else
jmitc91516 0:a5c253316af6 553 {
jmitc91516 0:a5c253316af6 554 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 555 StrLen = DataNumStr(VarValue, sgl.CurItem.VarType, 0);
jmitc91516 0:a5c253316af6 556 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 557 CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr;
jmitc91516 0:a5c253316af6 558 #else
jmitc91516 0:a5c253316af6 559 for (P = 0; P <= StrLen; P++)
jmitc91516 0:a5c253316af6 560 sgl.VarNumUnicodeTextStr[P] = sgl.VarNumTextStr[P];
jmitc91516 0:a5c253316af6 561 CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumUnicodeTextStr;
jmitc91516 0:a5c253316af6 562 #endif
jmitc91516 0:a5c253316af6 563 }
jmitc91516 0:a5c253316af6 564
jmitc91516 0:a5c253316af6 565 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 566 strcpy(sgl.AnsiTextBuf, CharPtr);
jmitc91516 0:a5c253316af6 567 DrawText(sgl.AnsiTextBuf,
jmitc91516 0:a5c253316af6 568 StrLen,
jmitc91516 0:a5c253316af6 569 0,
jmitc91516 0:a5c253316af6 570 ForeColor,
jmitc91516 0:a5c253316af6 571 BackColor,
jmitc91516 0:a5c253316af6 572 BackColorTransp);
jmitc91516 0:a5c253316af6 573 #else
jmitc91516 0:a5c253316af6 574 GuiLib_UnicodeStrCpy(sgl.UnicodeTextBuf, CharPtr);
jmitc91516 0:a5c253316af6 575 DrawText(sgl.UnicodeTextBuf,
jmitc91516 0:a5c253316af6 576 StrLen,
jmitc91516 0:a5c253316af6 577 0,
jmitc91516 0:a5c253316af6 578 ForeColor,
jmitc91516 0:a5c253316af6 579 BackColor,
jmitc91516 0:a5c253316af6 580 BackColorTransp);
jmitc91516 0:a5c253316af6 581 #endif
jmitc91516 0:a5c253316af6 582 }
jmitc91516 0:a5c253316af6 583
jmitc91516 0:a5c253316af6 584 #ifdef GuiConst_DISP_VAR_NOW
jmitc91516 0:a5c253316af6 585 displayVarNow = 0;
jmitc91516 0:a5c253316af6 586 #endif
jmitc91516 0:a5c253316af6 587
jmitc91516 0:a5c253316af6 588 UpdateDrawLimits(sgl.FontWriteX1, sgl.FontWriteY1, sgl.FontWriteX2, sgl.FontWriteY2);
jmitc91516 0:a5c253316af6 589 }
jmitc91516 0:a5c253316af6 590
jmitc91516 0:a5c253316af6 591 break;
jmitc91516 0:a5c253316af6 592
jmitc91516 0:a5c253316af6 593 case GuiLib_ITEM_VARBLOCK:
jmitc91516 0:a5c253316af6 594 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 595 {
jmitc91516 0:a5c253316af6 596 #ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
jmitc91516 0:a5c253316af6 597 #ifdef GuiConst_DISP_VAR_NOW
jmitc91516 0:a5c253316af6 598 displayVarNow = 1;
jmitc91516 0:a5c253316af6 599 #endif
jmitc91516 0:a5c253316af6 600
jmitc91516 0:a5c253316af6 601 if (sgl.CurItem.VarPtr != 0)
jmitc91516 0:a5c253316af6 602 {
jmitc91516 0:a5c253316af6 603 if (sgl.CurItem.VarType == GuiLib_VAR_STRING)
jmitc91516 0:a5c253316af6 604 {
jmitc91516 0:a5c253316af6 605 CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.CurItem.VarPtr;
jmitc91516 0:a5c253316af6 606 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 607 StrLen = strlen(CharPtr);
jmitc91516 0:a5c253316af6 608 #else
jmitc91516 0:a5c253316af6 609 #ifdef GuiConst_CODEVISION_COMPILER
jmitc91516 0:a5c253316af6 610 StrLen = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr);
jmitc91516 0:a5c253316af6 611 #else
jmitc91516 0:a5c253316af6 612 StrLen = GuiLib_UnicodeStrLen(CharPtr);
jmitc91516 0:a5c253316af6 613 #endif
jmitc91516 0:a5c253316af6 614 #endif
jmitc91516 0:a5c253316af6 615 }
jmitc91516 0:a5c253316af6 616 else
jmitc91516 0:a5c253316af6 617 {
jmitc91516 0:a5c253316af6 618 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 619 StrLen = DataNumStr(VarValue, sgl.CurItem.VarType, 0);
jmitc91516 0:a5c253316af6 620 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 621 CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr;
jmitc91516 0:a5c253316af6 622 #else
jmitc91516 0:a5c253316af6 623 for (P = 0; P <= StrLen; P++)
jmitc91516 0:a5c253316af6 624 sgl.VarNumUnicodeTextStr[P] = sgl.VarNumTextStr[P];
jmitc91516 0:a5c253316af6 625 CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumUnicodeTextStr;
jmitc91516 0:a5c253316af6 626 #endif
jmitc91516 0:a5c253316af6 627 }
jmitc91516 0:a5c253316af6 628 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 629 ScrollPos = TextBox_Scroll_GetPosRec(
jmitc91516 0:a5c253316af6 630 sgl.CurItem.CompPars.CompTextBox.ScrollIndex);
jmitc91516 0:a5c253316af6 631
jmitc91516 0:a5c253316af6 632 if (ScrollPos != NULL)
jmitc91516 0:a5c253316af6 633 sgl.CurItem.CompPars.CompTextBox.ScrollPos = *ScrollPos;
jmitc91516 0:a5c253316af6 634 #endif
jmitc91516 0:a5c253316af6 635
jmitc91516 0:a5c253316af6 636 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 637 strcpy(sgl.AnsiTextBuf, CharPtr);
jmitc91516 0:a5c253316af6 638 DrawTextBlock(sgl.AnsiTextBuf,
jmitc91516 0:a5c253316af6 639 StrLen,
jmitc91516 0:a5c253316af6 640 0,
jmitc91516 0:a5c253316af6 641 ForeColor,
jmitc91516 0:a5c253316af6 642 BackColor,
jmitc91516 0:a5c253316af6 643 BackColorTransp);
jmitc91516 0:a5c253316af6 644 #else
jmitc91516 0:a5c253316af6 645 GuiLib_UnicodeStrCpy(sgl.UnicodeTextBuf, CharPtr);
jmitc91516 0:a5c253316af6 646 DrawTextBlock(sgl.UnicodeTextBuf,
jmitc91516 0:a5c253316af6 647 StrLen,
jmitc91516 0:a5c253316af6 648 0,
jmitc91516 0:a5c253316af6 649 ForeColor,
jmitc91516 0:a5c253316af6 650 BackColor,
jmitc91516 0:a5c253316af6 651 BackColorTransp);
jmitc91516 0:a5c253316af6 652 #endif
jmitc91516 0:a5c253316af6 653
jmitc91516 0:a5c253316af6 654 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 655 if (ScrollPos != NULL)
jmitc91516 0:a5c253316af6 656 *ScrollPos = sgl.CurItem.CompPars.CompTextBox.ScrollPos;
jmitc91516 0:a5c253316af6 657 #endif
jmitc91516 0:a5c253316af6 658
jmitc91516 0:a5c253316af6 659 }
jmitc91516 0:a5c253316af6 660
jmitc91516 0:a5c253316af6 661 #ifdef GuiConst_DISP_VAR_NOW
jmitc91516 0:a5c253316af6 662 displayVarNow = 0;
jmitc91516 0:a5c253316af6 663 #endif
jmitc91516 0:a5c253316af6 664
jmitc91516 0:a5c253316af6 665 UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1, sgl.CurItem.X2, sgl.CurItem.Y2);
jmitc91516 0:a5c253316af6 666 #endif
jmitc91516 0:a5c253316af6 667 }
jmitc91516 0:a5c253316af6 668
jmitc91516 0:a5c253316af6 669 break;
jmitc91516 0:a5c253316af6 670
jmitc91516 0:a5c253316af6 671 case GuiLib_ITEM_DOT:
jmitc91516 0:a5c253316af6 672 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 673 {
jmitc91516 0:a5c253316af6 674 GuiLib_Dot(sgl.CurItem.X1, sgl.CurItem.Y1, ForeColor);
jmitc91516 0:a5c253316af6 675 UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1, sgl.CurItem.X1, sgl.CurItem.Y1);
jmitc91516 0:a5c253316af6 676 }
jmitc91516 0:a5c253316af6 677
jmitc91516 0:a5c253316af6 678 break;
jmitc91516 0:a5c253316af6 679
jmitc91516 0:a5c253316af6 680 case GuiLib_ITEM_LINE:
jmitc91516 0:a5c253316af6 681 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 682 {
jmitc91516 0:a5c253316af6 683 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 684 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 685 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 686 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 687 if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_PATTERNEDLINE)
jmitc91516 0:a5c253316af6 688 GuiLib_LinePattern(X1, Y1, X2, Y2, sgl.CurItem.LinePattern, ForeColor);
jmitc91516 0:a5c253316af6 689 else
jmitc91516 0:a5c253316af6 690 GuiLib_Line(X1, Y1, X2, Y2, ForeColor);
jmitc91516 0:a5c253316af6 691 UpdateDrawLimits(X1, Y1, X2, Y2);
jmitc91516 0:a5c253316af6 692 }
jmitc91516 0:a5c253316af6 693 break;
jmitc91516 0:a5c253316af6 694
jmitc91516 0:a5c253316af6 695 case GuiLib_ITEM_FRAME:
jmitc91516 0:a5c253316af6 696 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 697 {
jmitc91516 0:a5c253316af6 698 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 699 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 700 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 701 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 702 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 703 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 704 if (sgl.CurItem.FrameThickness == 0)
jmitc91516 0:a5c253316af6 705 N = sgl.ThicknessMemory;
jmitc91516 0:a5c253316af6 706 else
jmitc91516 0:a5c253316af6 707 N = sgl.CurItem.FrameThickness;
jmitc91516 0:a5c253316af6 708 DrawBorderBox(X1, Y1, X2, Y2, ForeColor, BackColor, BackColorTransp, N);
jmitc91516 0:a5c253316af6 709 UpdateDrawLimits(X1, Y1, X2, Y2);
jmitc91516 0:a5c253316af6 710 }
jmitc91516 0:a5c253316af6 711
jmitc91516 0:a5c253316af6 712 break;
jmitc91516 0:a5c253316af6 713
jmitc91516 0:a5c253316af6 714 case GuiLib_ITEM_ROUNDEDFRAME:
jmitc91516 0:a5c253316af6 715 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 716 {
jmitc91516 0:a5c253316af6 717 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 718 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 719 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 720 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 721 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 722 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 723
jmitc91516 0:a5c253316af6 724 if (BackColorTransp)
jmitc91516 0:a5c253316af6 725 BackColor2 = GuiLib_NO_COLOR;
jmitc91516 0:a5c253316af6 726 else
jmitc91516 0:a5c253316af6 727 BackColor2 = BackColor;
jmitc91516 0:a5c253316af6 728
jmitc91516 0:a5c253316af6 729 if (sgl.CurItem.R1 <= 0)
jmitc91516 0:a5c253316af6 730 DrawBorderBox(
jmitc91516 0:a5c253316af6 731 X1, Y1, X2, Y2,
jmitc91516 0:a5c253316af6 732 ForeColor, BackColor, BackColorTransp, 1);
jmitc91516 0:a5c253316af6 733 else
jmitc91516 0:a5c253316af6 734 {
jmitc91516 0:a5c253316af6 735 Ellipse(
jmitc91516 0:a5c253316af6 736 X1 + sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 737 ForeColor, BackColor2, 0, 0, 1, 0);
jmitc91516 0:a5c253316af6 738 if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
jmitc91516 0:a5c253316af6 739 {
jmitc91516 0:a5c253316af6 740 GuiLib_HLine(X1 + sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y1, ForeColor);
jmitc91516 0:a5c253316af6 741 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 742 GuiLib_FillBox(
jmitc91516 0:a5c253316af6 743 X1 + sgl.CurItem.R1, Y1 + 1, X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 744 BackColor);
jmitc91516 0:a5c253316af6 745 }
jmitc91516 0:a5c253316af6 746 Ellipse(
jmitc91516 0:a5c253316af6 747 X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 748 ForeColor, BackColor2, 0, 0, 0, 1);
jmitc91516 0:a5c253316af6 749 if (Y2 - Y1 + 1 - 2 * sgl.CurItem.R1 > 0)
jmitc91516 0:a5c253316af6 750 {
jmitc91516 0:a5c253316af6 751 GuiLib_VLine(X1, Y1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, ForeColor);
jmitc91516 0:a5c253316af6 752 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 753 GuiLib_FillBox(
jmitc91516 0:a5c253316af6 754 X1 + 1, Y1 + sgl.CurItem.R1, X2 - 1, Y2 - sgl.CurItem.R1, BackColor);
jmitc91516 0:a5c253316af6 755 GuiLib_VLine(X2 , Y1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, ForeColor);
jmitc91516 0:a5c253316af6 756 }
jmitc91516 0:a5c253316af6 757 Ellipse(
jmitc91516 0:a5c253316af6 758 X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 759 ForeColor, BackColor2, 0, 1, 0, 0);
jmitc91516 0:a5c253316af6 760 if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
jmitc91516 0:a5c253316af6 761 {
jmitc91516 0:a5c253316af6 762 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 763 GuiLib_FillBox(
jmitc91516 0:a5c253316af6 764 X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y2 - 1,
jmitc91516 0:a5c253316af6 765 BackColor);
jmitc91516 0:a5c253316af6 766 GuiLib_HLine(X1 + sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y2, ForeColor);
jmitc91516 0:a5c253316af6 767 }
jmitc91516 0:a5c253316af6 768 Ellipse(
jmitc91516 0:a5c253316af6 769 X2 - sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 770 ForeColor, BackColor2, 1, 0, 0, 0);
jmitc91516 0:a5c253316af6 771 }
jmitc91516 0:a5c253316af6 772 }
jmitc91516 0:a5c253316af6 773 break;
jmitc91516 0:a5c253316af6 774
jmitc91516 0:a5c253316af6 775 case GuiLib_ITEM_BLOCK:
jmitc91516 0:a5c253316af6 776 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 777 {
jmitc91516 0:a5c253316af6 778 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 779 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 780 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 781 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 782 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 783 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 784 GuiLib_FillBox(X1, Y1, X2, Y2, ForeColor);
jmitc91516 0:a5c253316af6 785 UpdateDrawLimits(X1, Y1, X2, Y2);
jmitc91516 0:a5c253316af6 786 }
jmitc91516 0:a5c253316af6 787
jmitc91516 0:a5c253316af6 788 break;
jmitc91516 0:a5c253316af6 789
jmitc91516 0:a5c253316af6 790 case GuiLib_ITEM_ROUNDEDBLOCK:
jmitc91516 0:a5c253316af6 791 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 792 {
jmitc91516 0:a5c253316af6 793 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 794 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 795 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 796 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 797 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 798 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 799
jmitc91516 0:a5c253316af6 800 if (sgl.CurItem.R1 <= 0)
jmitc91516 0:a5c253316af6 801 GuiLib_FillBox(X1, Y1, X2, Y2, ForeColor);
jmitc91516 0:a5c253316af6 802 else
jmitc91516 0:a5c253316af6 803 {
jmitc91516 0:a5c253316af6 804 Ellipse(
jmitc91516 0:a5c253316af6 805 X1 + sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 806 ForeColor, ForeColor, 0, 0, 1, 0);
jmitc91516 0:a5c253316af6 807 if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
jmitc91516 0:a5c253316af6 808 GuiLib_FillBox(
jmitc91516 0:a5c253316af6 809 X1 + sgl.CurItem.R1, Y1, X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 810 ForeColor);
jmitc91516 0:a5c253316af6 811 Ellipse(
jmitc91516 0:a5c253316af6 812 X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 813 ForeColor, ForeColor, 0, 0, 0, 1);
jmitc91516 0:a5c253316af6 814 if (Y2 - Y1 + 1 - 2 * sgl.CurItem.R1 > 0)
jmitc91516 0:a5c253316af6 815 GuiLib_FillBox(X1, Y1 + sgl.CurItem.R1, X2, Y2 - sgl.CurItem.R1, ForeColor);
jmitc91516 0:a5c253316af6 816 Ellipse(
jmitc91516 0:a5c253316af6 817 X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 818 ForeColor, ForeColor, 0, 1, 0, 0);
jmitc91516 0:a5c253316af6 819 if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
jmitc91516 0:a5c253316af6 820 GuiLib_FillBox(
jmitc91516 0:a5c253316af6 821 X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y2,
jmitc91516 0:a5c253316af6 822 ForeColor);
jmitc91516 0:a5c253316af6 823 Ellipse(
jmitc91516 0:a5c253316af6 824 X2 - sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 825 ForeColor, ForeColor, 1, 0, 0, 0);
jmitc91516 0:a5c253316af6 826 }
jmitc91516 0:a5c253316af6 827 }
jmitc91516 0:a5c253316af6 828 break;
jmitc91516 0:a5c253316af6 829
jmitc91516 0:a5c253316af6 830 case GuiLib_ITEM_CIRCLE:
jmitc91516 0:a5c253316af6 831 if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0))
jmitc91516 0:a5c253316af6 832 {
jmitc91516 0:a5c253316af6 833 if (BackColorTransp)
jmitc91516 0:a5c253316af6 834 BackColor2 = GuiLib_NO_COLOR;
jmitc91516 0:a5c253316af6 835 else
jmitc91516 0:a5c253316af6 836 BackColor2 = BackColor;
jmitc91516 0:a5c253316af6 837 if ((sgl.CurItem.FrameThickness == 0xFF) &&
jmitc91516 0:a5c253316af6 838 !(sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CIRCLE_IF))
jmitc91516 0:a5c253316af6 839 {
jmitc91516 0:a5c253316af6 840 Ellipse(sgl.CurItem.X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 841 sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 842 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 843 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 844 ForeColor, BackColor2,
jmitc91516 0:a5c253316af6 845 1, 1, 1, 1);
jmitc91516 0:a5c253316af6 846 UpdateDrawLimits(sgl.CurItem.X1,
jmitc91516 0:a5c253316af6 847 sgl.CurItem.Y1 - sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 848 sgl.CurItem.X1 + 2 * sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 849 sgl.CurItem.Y1 + sgl.CurItem.R1);
jmitc91516 0:a5c253316af6 850 }
jmitc91516 0:a5c253316af6 851 else
jmitc91516 0:a5c253316af6 852 {
jmitc91516 0:a5c253316af6 853 Circle(sgl.CurItem.X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 854 sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 855 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 856 ForeColor,
jmitc91516 0:a5c253316af6 857 sgl.CurItem.FrameThickness & 0x01,
jmitc91516 0:a5c253316af6 858 sgl.CurItem.FrameThickness & 0x02,
jmitc91516 0:a5c253316af6 859 sgl.CurItem.FrameThickness & 0x04,
jmitc91516 0:a5c253316af6 860 sgl.CurItem.FrameThickness & 0x08,
jmitc91516 0:a5c253316af6 861 sgl.CurItem.FrameThickness & 0x10,
jmitc91516 0:a5c253316af6 862 sgl.CurItem.FrameThickness & 0x20,
jmitc91516 0:a5c253316af6 863 sgl.CurItem.FrameThickness & 0x40,
jmitc91516 0:a5c253316af6 864 sgl.CurItem.FrameThickness & 0x80,
jmitc91516 0:a5c253316af6 865 sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CIRCLE_IF);
jmitc91516 0:a5c253316af6 866 X1 = sgl.CurItem.X1 + sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 867 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 868 X2 = sgl.CurItem.X1 + sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 869 Y2 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 870 if (sgl.CurItem.FrameThickness & 0xC3)
jmitc91516 0:a5c253316af6 871 X2 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 872 if (sgl.CurItem.FrameThickness & 0x3C)
jmitc91516 0:a5c253316af6 873 X1 -= sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 874 if (sgl.CurItem.FrameThickness & 0xF0)
jmitc91516 0:a5c253316af6 875 Y1 -= sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 876 if (sgl.CurItem.FrameThickness & 0x0F)
jmitc91516 0:a5c253316af6 877 Y2 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 878 UpdateDrawLimits(X1, Y1, X2, Y2);
jmitc91516 0:a5c253316af6 879 }
jmitc91516 0:a5c253316af6 880 }
jmitc91516 0:a5c253316af6 881 break;
jmitc91516 0:a5c253316af6 882
jmitc91516 0:a5c253316af6 883 case GuiLib_ITEM_QUARTERCIRCLE:
jmitc91516 0:a5c253316af6 884 if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0))
jmitc91516 0:a5c253316af6 885 {
jmitc91516 0:a5c253316af6 886 if (BackColorTransp)
jmitc91516 0:a5c253316af6 887 BackColor2 = GuiLib_NO_COLOR;
jmitc91516 0:a5c253316af6 888 else
jmitc91516 0:a5c253316af6 889 BackColor2 = BackColor;
jmitc91516 0:a5c253316af6 890
jmitc91516 0:a5c253316af6 891 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 892 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 893 Ellipse(X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 894 Y1,
jmitc91516 0:a5c253316af6 895 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 896 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 897 ForeColor, BackColor2,
jmitc91516 0:a5c253316af6 898 (sgl.CurItem.FrameThickness == 0),
jmitc91516 0:a5c253316af6 899 (sgl.CurItem.FrameThickness == 1),
jmitc91516 0:a5c253316af6 900 (sgl.CurItem.FrameThickness == 2),
jmitc91516 0:a5c253316af6 901 (sgl.CurItem.FrameThickness == 3));
jmitc91516 0:a5c253316af6 902
jmitc91516 0:a5c253316af6 903 switch (sgl.CurItem.FrameThickness)
jmitc91516 0:a5c253316af6 904 {
jmitc91516 0:a5c253316af6 905 case 1:
jmitc91516 0:a5c253316af6 906 X1 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 907 break;
jmitc91516 0:a5c253316af6 908 case 2:
jmitc91516 0:a5c253316af6 909 X1 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 910 Y1 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 911 break;
jmitc91516 0:a5c253316af6 912 case 3:
jmitc91516 0:a5c253316af6 913 Y1 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 914 break;
jmitc91516 0:a5c253316af6 915 }
jmitc91516 0:a5c253316af6 916 UpdateDrawLimits(sgl.CurItem.X1,
jmitc91516 0:a5c253316af6 917 sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 918 sgl.CurItem.X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 919 sgl.CurItem.Y1 + sgl.CurItem.R1);
jmitc91516 0:a5c253316af6 920 }
jmitc91516 0:a5c253316af6 921 break;
jmitc91516 0:a5c253316af6 922
jmitc91516 0:a5c253316af6 923 case GuiLib_ITEM_ELLIPSE:
jmitc91516 0:a5c253316af6 924 if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0) && (sgl.CurItem.R2 >= 0))
jmitc91516 0:a5c253316af6 925 {
jmitc91516 0:a5c253316af6 926 if (BackColorTransp)
jmitc91516 0:a5c253316af6 927 BackColor2 = GuiLib_NO_COLOR;
jmitc91516 0:a5c253316af6 928 else
jmitc91516 0:a5c253316af6 929 BackColor2 = BackColor;
jmitc91516 0:a5c253316af6 930 Ellipse(sgl.CurItem.X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 931 sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 932 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 933 sgl.CurItem.R2,
jmitc91516 0:a5c253316af6 934 ForeColor, BackColor2, 1, 1, 1, 1);
jmitc91516 0:a5c253316af6 935
jmitc91516 0:a5c253316af6 936 UpdateDrawLimits(sgl.CurItem.X1,
jmitc91516 0:a5c253316af6 937 sgl.CurItem.Y1 - sgl.CurItem.R2,
jmitc91516 0:a5c253316af6 938 sgl.CurItem.X1 + 2 * sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 939 sgl.CurItem.Y1 + sgl.CurItem.R2);
jmitc91516 0:a5c253316af6 940 }
jmitc91516 0:a5c253316af6 941 break;
jmitc91516 0:a5c253316af6 942
jmitc91516 0:a5c253316af6 943 case GuiLib_ITEM_QUARTERELLIPSE:
jmitc91516 0:a5c253316af6 944 if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0) && (sgl.CurItem.R2 >= 0))
jmitc91516 0:a5c253316af6 945 {
jmitc91516 0:a5c253316af6 946 if (BackColorTransp)
jmitc91516 0:a5c253316af6 947 BackColor2 = GuiLib_NO_COLOR;
jmitc91516 0:a5c253316af6 948 else
jmitc91516 0:a5c253316af6 949 BackColor2 = BackColor;
jmitc91516 0:a5c253316af6 950
jmitc91516 0:a5c253316af6 951 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 952 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 953 Ellipse(X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 954 Y1,
jmitc91516 0:a5c253316af6 955 sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 956 sgl.CurItem.R2,
jmitc91516 0:a5c253316af6 957 ForeColor, BackColor2,
jmitc91516 0:a5c253316af6 958 (sgl.CurItem.FrameThickness == 0),
jmitc91516 0:a5c253316af6 959 (sgl.CurItem.FrameThickness == 1),
jmitc91516 0:a5c253316af6 960 (sgl.CurItem.FrameThickness == 2),
jmitc91516 0:a5c253316af6 961 (sgl.CurItem.FrameThickness == 3));
jmitc91516 0:a5c253316af6 962
jmitc91516 0:a5c253316af6 963 switch (sgl.CurItem.FrameThickness)
jmitc91516 0:a5c253316af6 964 {
jmitc91516 0:a5c253316af6 965 case 1:
jmitc91516 0:a5c253316af6 966 X1 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 967 break;
jmitc91516 0:a5c253316af6 968 case 2:
jmitc91516 0:a5c253316af6 969 X1 += sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 970 Y1 += sgl.CurItem.R2;
jmitc91516 0:a5c253316af6 971 break;
jmitc91516 0:a5c253316af6 972 case 3:
jmitc91516 0:a5c253316af6 973 Y1 += sgl.CurItem.R2;
jmitc91516 0:a5c253316af6 974 break;
jmitc91516 0:a5c253316af6 975 }
jmitc91516 0:a5c253316af6 976 UpdateDrawLimits(sgl.CurItem.X1,
jmitc91516 0:a5c253316af6 977 sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 978 sgl.CurItem.X1 + sgl.CurItem.R1,
jmitc91516 0:a5c253316af6 979 sgl.CurItem.Y1 + sgl.CurItem.R2);
jmitc91516 0:a5c253316af6 980 }
jmitc91516 0:a5c253316af6 981 break;
jmitc91516 0:a5c253316af6 982
jmitc91516 0:a5c253316af6 983 case GuiLib_ITEM_BITMAP:
jmitc91516 0:a5c253316af6 984 case GuiLib_ITEM_BACKGROUND:
jmitc91516 0:a5c253316af6 985 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 986 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 987 {
jmitc91516 0:a5c253316af6 988 if (sgl.CommonByte6 & 0x02)
jmitc91516 0:a5c253316af6 989 BackColor2 = sgl.CurItem.CompPars.CompBitmap.TranspColor;
jmitc91516 0:a5c253316af6 990 else
jmitc91516 0:a5c253316af6 991 BackColor2 = -1;
jmitc91516 0:a5c253316af6 992 GuiLib_ShowBitmap(sgl.CurItem.StructToCallIndex,
jmitc91516 0:a5c253316af6 993 sgl.CurItem.X1,
jmitc91516 0:a5c253316af6 994 sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 995 BackColor2);
jmitc91516 0:a5c253316af6 996 UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 997 sgl.BitmapWriteX2, sgl.BitmapWriteY2);
jmitc91516 0:a5c253316af6 998 }
jmitc91516 0:a5c253316af6 999
jmitc91516 0:a5c253316af6 1000 if (sgl.CurItem.ItemType == GuiLib_ITEM_BACKGROUND)
jmitc91516 0:a5c253316af6 1001 {
jmitc91516 0:a5c253316af6 1002 sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].InUse = 1;
jmitc91516 0:a5c253316af6 1003 sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].Index =
jmitc91516 0:a5c253316af6 1004 sgl.CurItem.StructToCallIndex;
jmitc91516 0:a5c253316af6 1005 sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].X = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1006 sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].Y = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1007 if (sgl.GlobalBackgrBitmapIndex < GuiConst_MAX_BACKGROUND_BITMAPS - 1)
jmitc91516 0:a5c253316af6 1008 sgl.GlobalBackgrBitmapIndex++;
jmitc91516 0:a5c253316af6 1009 }
jmitc91516 0:a5c253316af6 1010 #endif
jmitc91516 0:a5c253316af6 1011
jmitc91516 0:a5c253316af6 1012 break;
jmitc91516 0:a5c253316af6 1013
jmitc91516 0:a5c253316af6 1014 case GuiLib_ITEM_ACTIVEAREA:
jmitc91516 0:a5c253316af6 1015 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 1016 {
jmitc91516 0:a5c253316af6 1017 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1018 if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CLIPPING)
jmitc91516 0:a5c253316af6 1019 {
jmitc91516 0:a5c253316af6 1020 sgl.CurItem.ClipRectX1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1021 sgl.CurItem.ClipRectY1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1022 sgl.CurItem.ClipRectX2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1023 sgl.CurItem.ClipRectY2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1024 sgl.ActiveAreaX1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1025 sgl.ActiveAreaY1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1026 sgl.ActiveAreaX2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1027 sgl.ActiveAreaY2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1028 OrderCoord(&sgl.ActiveAreaX1, &sgl.ActiveAreaX2);
jmitc91516 0:a5c253316af6 1029 OrderCoord(&sgl.ActiveAreaY1, &sgl.ActiveAreaY2);
jmitc91516 0:a5c253316af6 1030 #ifdef GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
jmitc91516 0:a5c253316af6 1031 if (sgl.ActiveAreaX1 < sgl.DisplayActiveAreaX1)
jmitc91516 0:a5c253316af6 1032 sgl.ActiveAreaX1 = sgl.DisplayActiveAreaX1;
jmitc91516 0:a5c253316af6 1033 if (sgl.ActiveAreaY1 < sgl.DisplayActiveAreaY1)
jmitc91516 0:a5c253316af6 1034 sgl.ActiveAreaY1 = sgl.DisplayActiveAreaY1;
jmitc91516 0:a5c253316af6 1035 if (sgl.ActiveAreaX2 > sgl.DisplayActiveAreaX2)
jmitc91516 0:a5c253316af6 1036 sgl.ActiveAreaX2 = sgl.DisplayActiveAreaX2;
jmitc91516 0:a5c253316af6 1037 if (sgl.ActiveAreaY2 > sgl.DisplayActiveAreaY2)
jmitc91516 0:a5c253316af6 1038 sgl.ActiveAreaY2 = sgl.DisplayActiveAreaY2;
jmitc91516 0:a5c253316af6 1039 #endif
jmitc91516 0:a5c253316af6 1040 GuiLib_SetClipping(sgl.ActiveAreaX1, sgl.ActiveAreaY1,
jmitc91516 0:a5c253316af6 1041 sgl.ActiveAreaX2, sgl.ActiveAreaY2);
jmitc91516 0:a5c253316af6 1042 }
jmitc91516 0:a5c253316af6 1043 #endif
jmitc91516 0:a5c253316af6 1044
jmitc91516 0:a5c253316af6 1045 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1046 #ifdef GuiConst_REL_COORD_ORIGO_INUSE
jmitc91516 0:a5c253316af6 1047 if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_ACTIVEAREARELCOORD)
jmitc91516 0:a5c253316af6 1048 {
jmitc91516 0:a5c253316af6 1049 sgl.CurItem.ClipRectX1 += sgl.CoordOrigoX;
jmitc91516 0:a5c253316af6 1050 sgl.CurItem.ClipRectY1 += sgl.CoordOrigoY;
jmitc91516 0:a5c253316af6 1051 sgl.CurItem.ClipRectX2 += sgl.CoordOrigoX;
jmitc91516 0:a5c253316af6 1052 sgl.CurItem.ClipRectY2 += sgl.CoordOrigoY;
jmitc91516 0:a5c253316af6 1053 }
jmitc91516 0:a5c253316af6 1054 #endif
jmitc91516 0:a5c253316af6 1055 #endif
jmitc91516 0:a5c253316af6 1056
jmitc91516 0:a5c253316af6 1057 sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
jmitc91516 0:a5c253316af6 1058 sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
jmitc91516 0:a5c253316af6 1059 if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_ACTIVEAREARELCOORD)
jmitc91516 0:a5c253316af6 1060 {
jmitc91516 0:a5c253316af6 1061 sgl.CoordOrigoX += sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1062 sgl.CoordOrigoY += sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1063 }
jmitc91516 0:a5c253316af6 1064 #ifdef GuiConst_REL_COORD_ORIGO_INUSE
jmitc91516 0:a5c253316af6 1065 sgl.CurItem.CoordOrigoX = sgl.CoordOrigoX;
jmitc91516 0:a5c253316af6 1066 sgl.CurItem.CoordOrigoY = sgl.CoordOrigoY;
jmitc91516 0:a5c253316af6 1067 #endif
jmitc91516 0:a5c253316af6 1068
jmitc91516 0:a5c253316af6 1069 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1070 #ifdef GuiConst_REL_COORD_ORIGO_INUSE
jmitc91516 0:a5c253316af6 1071 sgl.CurItem.ClipRectX1 -= sgl.CoordOrigoX;
jmitc91516 0:a5c253316af6 1072 sgl.CurItem.ClipRectY1 -= sgl.CoordOrigoY;
jmitc91516 0:a5c253316af6 1073 sgl.CurItem.ClipRectX2 -= sgl.CoordOrigoX;
jmitc91516 0:a5c253316af6 1074 sgl.CurItem.ClipRectY2 -= sgl.CoordOrigoY;
jmitc91516 0:a5c253316af6 1075 #endif
jmitc91516 0:a5c253316af6 1076 #endif
jmitc91516 0:a5c253316af6 1077 }
jmitc91516 0:a5c253316af6 1078 break;
jmitc91516 0:a5c253316af6 1079
jmitc91516 0:a5c253316af6 1080 case GuiLib_ITEM_CLIPRECT:
jmitc91516 0:a5c253316af6 1081 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1082 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 1083 {
jmitc91516 0:a5c253316af6 1084 if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CLIPPING)
jmitc91516 0:a5c253316af6 1085 {
jmitc91516 0:a5c253316af6 1086 sgl.CurItem.ClipRectX1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1087 sgl.CurItem.ClipRectY1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1088 sgl.CurItem.ClipRectX2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1089 sgl.CurItem.ClipRectY2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1090 }
jmitc91516 0:a5c253316af6 1091 StartClipping(
jmitc91516 0:a5c253316af6 1092 (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CLIPPING) != 0);
jmitc91516 0:a5c253316af6 1093 }
jmitc91516 0:a5c253316af6 1094 #endif
jmitc91516 0:a5c253316af6 1095 break;
jmitc91516 0:a5c253316af6 1096
jmitc91516 0:a5c253316af6 1097 case GuiLib_ITEM_STRUCTURE:
jmitc91516 0:a5c253316af6 1098 case GuiLib_ITEM_STRUCTARRAY:
jmitc91516 0:a5c253316af6 1099 case GuiLib_ITEM_STRUCTCOND:
jmitc91516 0:a5c253316af6 1100 if (sgl.DisplayWriting && (sgl.CurItem.TextPar[0].BackBoxSizeX > 0))
jmitc91516 0:a5c253316af6 1101 {
jmitc91516 0:a5c253316af6 1102 DrawBackBox(BackColor, BackColorTransp, 0);
jmitc91516 0:a5c253316af6 1103 UpdateDrawLimits(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2);
jmitc91516 0:a5c253316af6 1104 }
jmitc91516 0:a5c253316af6 1105
jmitc91516 0:a5c253316af6 1106 StructToCallIndex = sgl.CurItem.StructToCallIndex;
jmitc91516 0:a5c253316af6 1107 if (sgl.CurItem.ItemType == GuiLib_ITEM_STRUCTARRAY)
jmitc91516 0:a5c253316af6 1108 {
jmitc91516 0:a5c253316af6 1109 if (StructToCallIndex != 0xFFFF)
jmitc91516 0:a5c253316af6 1110 {
jmitc91516 0:a5c253316af6 1111 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 1112
jmitc91516 0:a5c253316af6 1113 I = sgl.CurItem.CompPars.StructCall.IndexCount;
jmitc91516 0:a5c253316af6 1114 while (I > 0)
jmitc91516 0:a5c253316af6 1115 {
jmitc91516 0:a5c253316af6 1116 if (ReadWord(GuiStruct_StructNdxList[StructToCallIndex]) ==
jmitc91516 0:a5c253316af6 1117 VarValue)
jmitc91516 0:a5c253316af6 1118 break;
jmitc91516 0:a5c253316af6 1119
jmitc91516 0:a5c253316af6 1120 StructToCallIndex++;
jmitc91516 0:a5c253316af6 1121 I--;
jmitc91516 0:a5c253316af6 1122 }
jmitc91516 0:a5c253316af6 1123 if (I == 0)
jmitc91516 0:a5c253316af6 1124 {
jmitc91516 0:a5c253316af6 1125 if (ReadWord(GuiStruct_StructNdxList[sgl.CurItem.StructToCallIndex]) == 0xFFFF)
jmitc91516 0:a5c253316af6 1126 StructToCallIndex = sgl.CurItem.StructToCallIndex;
jmitc91516 0:a5c253316af6 1127 else
jmitc91516 0:a5c253316af6 1128 StructToCallIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 1129 }
jmitc91516 0:a5c253316af6 1130 }
jmitc91516 0:a5c253316af6 1131 }
jmitc91516 0:a5c253316af6 1132 #ifdef GuiConst_ITEM_STRUCTCOND_INUSE
jmitc91516 0:a5c253316af6 1133 else if (sgl.CurItem.ItemType == GuiLib_ITEM_STRUCTCOND)
jmitc91516 0:a5c253316af6 1134 {
jmitc91516 0:a5c253316af6 1135 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 1136
jmitc91516 0:a5c253316af6 1137 I = sgl.CurItem.CompPars.StructCall.IndexCount - 1;
jmitc91516 0:a5c253316af6 1138 FirstRound = 1;
jmitc91516 0:a5c253316af6 1139 while (I >= 0)
jmitc91516 0:a5c253316af6 1140 {
jmitc91516 0:a5c253316af6 1141 if ((VarValue >= sgl.CurItem.CompPars.StructCall.IndexFirst[I]) &&
jmitc91516 0:a5c253316af6 1142 (VarValue <= sgl.CurItem.CompPars.StructCall.IndexLast[I]) &&
jmitc91516 0:a5c253316af6 1143 ((sgl.CurItem.CompPars.StructCall.IndexFirst[I] ==
jmitc91516 0:a5c253316af6 1144 sgl.CurItem.CompPars.StructCall.IndexLast[I]) ||
jmitc91516 0:a5c253316af6 1145 !FirstRound))
jmitc91516 0:a5c253316af6 1146 {
jmitc91516 0:a5c253316af6 1147 StructToCallIndex = sgl.CurItem.CompPars.StructCall.CallIndex[I];
jmitc91516 0:a5c253316af6 1148 break;
jmitc91516 0:a5c253316af6 1149 }
jmitc91516 0:a5c253316af6 1150
jmitc91516 0:a5c253316af6 1151 I--;
jmitc91516 0:a5c253316af6 1152
jmitc91516 0:a5c253316af6 1153 if ((I == -1) && FirstRound)
jmitc91516 0:a5c253316af6 1154 {
jmitc91516 0:a5c253316af6 1155 FirstRound = 0;
jmitc91516 0:a5c253316af6 1156 I = sgl.CurItem.CompPars.StructCall.IndexCount - 1;
jmitc91516 0:a5c253316af6 1157 }
jmitc91516 0:a5c253316af6 1158 }
jmitc91516 0:a5c253316af6 1159 }
jmitc91516 0:a5c253316af6 1160 #endif
jmitc91516 0:a5c253316af6 1161 DrawSubStruct(StructToCallIndex, ColorInvert, 0);
jmitc91516 0:a5c253316af6 1162 break;
jmitc91516 0:a5c253316af6 1163
jmitc91516 0:a5c253316af6 1164 #ifdef GuiConst_ITEM_TOUCHAREA_INUSE
jmitc91516 0:a5c253316af6 1165 case GuiLib_ITEM_TOUCHAREA:
jmitc91516 0:a5c253316af6 1166 TouchIndex = -1;
jmitc91516 0:a5c253316af6 1167 for (TouchSearch = 0; TouchSearch < sgl.TouchAreaCnt; TouchSearch++)
jmitc91516 0:a5c253316af6 1168 if (sgl.TouchAreas[TouchSearch].IndexNo ==
jmitc91516 0:a5c253316af6 1169 sgl.CurItem.CompPars.CompTouch.AreaNo)
jmitc91516 0:a5c253316af6 1170 {
jmitc91516 0:a5c253316af6 1171 TouchIndex = TouchSearch;
jmitc91516 0:a5c253316af6 1172 break;
jmitc91516 0:a5c253316af6 1173 }
jmitc91516 0:a5c253316af6 1174 if (TouchIndex == -1)
jmitc91516 0:a5c253316af6 1175 {
jmitc91516 0:a5c253316af6 1176 TouchIndex = sgl.TouchAreaCnt;
jmitc91516 0:a5c253316af6 1177 sgl.TouchAreaCnt++;
jmitc91516 0:a5c253316af6 1178 }
jmitc91516 0:a5c253316af6 1179 sgl.TouchAreas[TouchIndex].IndexNo = sgl.CurItem.CompPars.CompTouch.AreaNo;
jmitc91516 0:a5c253316af6 1180 sgl.TouchAreas[TouchIndex].X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1181 sgl.TouchAreas[TouchIndex].Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1182 sgl.TouchAreas[TouchIndex].X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1183 sgl.TouchAreas[TouchIndex].Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1184 OrderCoord(&sgl.TouchAreas[TouchIndex].X1, &sgl.TouchAreas[TouchIndex].X2);
jmitc91516 0:a5c253316af6 1185 OrderCoord(&sgl.TouchAreas[TouchIndex].Y1, &sgl.TouchAreas[TouchIndex].Y2);
jmitc91516 0:a5c253316af6 1186
jmitc91516 0:a5c253316af6 1187 break;
jmitc91516 0:a5c253316af6 1188 #endif
jmitc91516 0:a5c253316af6 1189
jmitc91516 0:a5c253316af6 1190 case GuiLib_ITEM_POSCALLBACK:
jmitc91516 0:a5c253316af6 1191 for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++)
jmitc91516 0:a5c253316af6 1192 if (sgl.PosCallbacks[I].InUse &&
jmitc91516 0:a5c253316af6 1193 (sgl.PosCallbacks[I].IndexNo == sgl.CurItem.PosCallbackNo) &&
jmitc91516 0:a5c253316af6 1194 (sgl.PosCallbacks[I].PosCallbackFunc != 0))
jmitc91516 0:a5c253316af6 1195 {
jmitc91516 0:a5c253316af6 1196 (*sgl.PosCallbacks[I].PosCallbackFunc)(sgl.CurItem.PosCallbackNo,
jmitc91516 0:a5c253316af6 1197 sgl.CurItem.X1,
jmitc91516 0:a5c253316af6 1198 sgl.CurItem.Y1);
jmitc91516 0:a5c253316af6 1199 break;
jmitc91516 0:a5c253316af6 1200 }
jmitc91516 0:a5c253316af6 1201 break;
jmitc91516 0:a5c253316af6 1202
jmitc91516 0:a5c253316af6 1203 #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
jmitc91516 0:a5c253316af6 1204 case GuiLib_ITEM_SCROLLBOX:
jmitc91516 0:a5c253316af6 1205 break;
jmitc91516 0:a5c253316af6 1206 #endif
jmitc91516 0:a5c253316af6 1207
jmitc91516 0:a5c253316af6 1208 #ifdef GuiConst_ITEM_CHECKBOX_INUSE
jmitc91516 0:a5c253316af6 1209 case GuiLib_ITEM_CHECKBOX:
jmitc91516 0:a5c253316af6 1210 PrepareInternalStruct();
jmitc91516 0:a5c253316af6 1211
jmitc91516 0:a5c253316af6 1212 GuiVarCompInt1 = sgl.CurItem.CompPars.CompCheckBox.Size;
jmitc91516 0:a5c253316af6 1213 sgl.Memory.C[0] = ForeColor;
jmitc91516 0:a5c253316af6 1214
jmitc91516 0:a5c253316af6 1215 Y2 = sgl.CurItem.Y1 + sgl.CurItem.CompPars.CompCheckBox.Size - 1;
jmitc91516 0:a5c253316af6 1216 switch (sgl.CurItem.CompPars.CompCheckBox.Style)
jmitc91516 0:a5c253316af6 1217 {
jmitc91516 0:a5c253316af6 1218 case GuiLib_CHECKBOX_FLAT:
jmitc91516 0:a5c253316af6 1219 if (BackColorTransp)
jmitc91516 0:a5c253316af6 1220 DrawSubStruct(GuiStructCOMP_CBFLATTRANSP, 0, 1);
jmitc91516 0:a5c253316af6 1221 else
jmitc91516 0:a5c253316af6 1222 DrawSubStruct(GuiStructCOMP_CBFLAT, 0, 1);
jmitc91516 0:a5c253316af6 1223 break;
jmitc91516 0:a5c253316af6 1224 case GuiLib_CHECKBOX_3D:
jmitc91516 0:a5c253316af6 1225 DrawSubStruct(GuiStructCOMP_CB3D, 0, 1);
jmitc91516 0:a5c253316af6 1226 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1227 DrawSubStruct(GuiStructCOMP_CB3DINNER, 0, 1);
jmitc91516 0:a5c253316af6 1228 break;
jmitc91516 0:a5c253316af6 1229 case GuiLib_CHECKBOX_ICON:
jmitc91516 0:a5c253316af6 1230 TempTextPar = sgl.CurItem.TextPar[0];
jmitc91516 0:a5c253316af6 1231 SetCurFont(sgl.CurItem.CompPars.CompCheckBox.IconFont);
jmitc91516 0:a5c253316af6 1232 sgl.CurItem.X1 = sgl.CurItem.X1 + sgl.CurItem.CompPars.CompCheckBox.IconOffsetX;
jmitc91516 0:a5c253316af6 1233 sgl.CurItem.Y1 = sgl.CurItem.Y1 + sgl.CurItem.CompPars.CompCheckBox.IconOffsetY;
jmitc91516 0:a5c253316af6 1234 sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
jmitc91516 0:a5c253316af6 1235 sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
jmitc91516 0:a5c253316af6 1236 sgl.CurItem.TextPar[0].BitFlags = 0;
jmitc91516 0:a5c253316af6 1237 sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1238 sgl.CurItem.TextPar[0].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1239 DrawText(sgl.CurItem.CompPars.CompCheckBox.IconPtr,
jmitc91516 0:a5c253316af6 1240 1,
jmitc91516 0:a5c253316af6 1241 0,
jmitc91516 0:a5c253316af6 1242 ForeColor,
jmitc91516 0:a5c253316af6 1243 BackColor,
jmitc91516 0:a5c253316af6 1244 BackColorTransp);
jmitc91516 0:a5c253316af6 1245 Y2 = sgl.FontWriteY2;
jmitc91516 0:a5c253316af6 1246 sgl.CurItem.TextPar[0] = TempTextPar;
jmitc91516 0:a5c253316af6 1247 break;
jmitc91516 0:a5c253316af6 1248 case GuiLib_CHECKBOX_BITMAP:
jmitc91516 0:a5c253316af6 1249 if (sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent)
jmitc91516 0:a5c253316af6 1250 BackColor2 = sgl.CurItem.CompPars.CompCheckBox.BitmapTranspColor;
jmitc91516 0:a5c253316af6 1251 else
jmitc91516 0:a5c253316af6 1252 BackColor2 = -1;
jmitc91516 0:a5c253316af6 1253 GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompCheckBox.BitmapIndex,
jmitc91516 0:a5c253316af6 1254 sgl.CurItem.X1, sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 1255 BackColor2);
jmitc91516 0:a5c253316af6 1256 break;
jmitc91516 0:a5c253316af6 1257 }
jmitc91516 0:a5c253316af6 1258
jmitc91516 0:a5c253316af6 1259 if ((sgl.CurItem.VarPtr != 0) && (sgl.CurItem.VarType != GuiLib_VAR_STRING))
jmitc91516 0:a5c253316af6 1260 {
jmitc91516 0:a5c253316af6 1261 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 1262
jmitc91516 0:a5c253316af6 1263 if (VarValue != 0)
jmitc91516 0:a5c253316af6 1264 CheckmarkMode = 1;
jmitc91516 0:a5c253316af6 1265 else if ((sgl.CurItem.CompPars.CompCheckBox.Style == GuiLib_CHECKBOX_NONE) &&
jmitc91516 0:a5c253316af6 1266 (!BackColorTransp))
jmitc91516 0:a5c253316af6 1267 CheckmarkMode = 2;
jmitc91516 0:a5c253316af6 1268 else
jmitc91516 0:a5c253316af6 1269 CheckmarkMode = 0;
jmitc91516 0:a5c253316af6 1270
jmitc91516 0:a5c253316af6 1271 if (CheckmarkMode > 0)
jmitc91516 0:a5c253316af6 1272 {
jmitc91516 0:a5c253316af6 1273 GuiVarCompInt1 = sgl.CurItem.CompPars.CompCheckBox.Size;
jmitc91516 0:a5c253316af6 1274 if (CheckmarkMode == 1)
jmitc91516 0:a5c253316af6 1275 sgl.Memory.C[0] = sgl.CurItem.CompPars.CompCheckBox.MarkColor;
jmitc91516 0:a5c253316af6 1276 else
jmitc91516 0:a5c253316af6 1277 sgl.Memory.C[0] = BackColor;
jmitc91516 0:a5c253316af6 1278
jmitc91516 0:a5c253316af6 1279 switch (sgl.CurItem.CompPars.CompCheckBox.MarkStyle)
jmitc91516 0:a5c253316af6 1280 {
jmitc91516 0:a5c253316af6 1281 case GuiLib_CHECKBOX_MARK_CHECKED:
jmitc91516 0:a5c253316af6 1282 GuiVarCompInt1 =
jmitc91516 0:a5c253316af6 1283 (sgl.CurItem.CompPars.CompCheckBox.Size / 2) -
jmitc91516 0:a5c253316af6 1284 ((sgl.CurItem.CompPars.CompCheckBox.Size - 6) / 6);
jmitc91516 0:a5c253316af6 1285 GuiVarCompInt2 =
jmitc91516 0:a5c253316af6 1286 (sgl.CurItem.CompPars.CompCheckBox.Size /
jmitc91516 0:a5c253316af6 1287 2) +
jmitc91516 0:a5c253316af6 1288 ((sgl.CurItem.CompPars.CompCheckBox.Size - 8) / 6);
jmitc91516 0:a5c253316af6 1289 GuiVarCompInt3 = GuiVarCompInt2 -
jmitc91516 0:a5c253316af6 1290 ((sgl.CurItem.CompPars.CompCheckBox.Size - 1) / 5);
jmitc91516 0:a5c253316af6 1291 GuiVarCompInt4 = -GuiVarCompInt3;
jmitc91516 0:a5c253316af6 1292 GuiVarCompInt5 = -((GuiVarCompInt3 - 1) / 2);
jmitc91516 0:a5c253316af6 1293 if (((sgl.CurItem.CompPars.CompCheckBox.Style ==
jmitc91516 0:a5c253316af6 1294 GuiLib_CHECKBOX_FLAT) ||
jmitc91516 0:a5c253316af6 1295 (sgl.CurItem.CompPars.CompCheckBox.Style ==
jmitc91516 0:a5c253316af6 1296 GuiLib_CHECKBOX_3D) ||
jmitc91516 0:a5c253316af6 1297 (sgl.CurItem.CompPars.CompCheckBox.Style ==
jmitc91516 0:a5c253316af6 1298 GuiLib_CHECKBOX_NONE)) &&
jmitc91516 0:a5c253316af6 1299 (sgl.CurItem.CompPars.CompCheckBox.Size <= 10))
jmitc91516 0:a5c253316af6 1300 DrawSubStruct(GuiStructCOMP_CBMCHSMALL, 0, 1);
jmitc91516 0:a5c253316af6 1301 else
jmitc91516 0:a5c253316af6 1302 DrawSubStruct(GuiStructCOMP_CBMCHBIG, 0, 1);
jmitc91516 0:a5c253316af6 1303 break;
jmitc91516 0:a5c253316af6 1304 case GuiLib_CHECKBOX_MARK_CROSSED:
jmitc91516 0:a5c253316af6 1305 if ((sgl.CurItem.CompPars.CompCheckBox.Style ==
jmitc91516 0:a5c253316af6 1306 GuiLib_CHECKBOX_FLAT) &&
jmitc91516 0:a5c253316af6 1307 (sgl.CurItem.CompPars.CompCheckBox.Size <= 8))
jmitc91516 0:a5c253316af6 1308 DrawSubStruct(GuiStructCOMP_CBMCRFLSMALL, 0, 1);
jmitc91516 0:a5c253316af6 1309 else if (((sgl.CurItem.CompPars.CompCheckBox.Style ==
jmitc91516 0:a5c253316af6 1310 GuiLib_CHECKBOX_3D) ||
jmitc91516 0:a5c253316af6 1311 (sgl.CurItem.CompPars.CompCheckBox.Style ==
jmitc91516 0:a5c253316af6 1312 GuiLib_CHECKBOX_NONE)) &&
jmitc91516 0:a5c253316af6 1313 (sgl.CurItem.CompPars.CompCheckBox.Size <= 8))
jmitc91516 0:a5c253316af6 1314 DrawSubStruct(GuiStructCOMP_CBMCR3DSMALL, 0, 1);
jmitc91516 0:a5c253316af6 1315 else
jmitc91516 0:a5c253316af6 1316 DrawSubStruct(GuiStructCOMP_CBMCRBIG, 0, 1);
jmitc91516 0:a5c253316af6 1317 break;
jmitc91516 0:a5c253316af6 1318 case GuiLib_CHECKBOX_MARK_FILLED:
jmitc91516 0:a5c253316af6 1319 if (sgl.CurItem.CompPars.CompCheckBox.Style == GuiLib_CHECKBOX_FLAT)
jmitc91516 0:a5c253316af6 1320 DrawSubStruct(GuiStructCOMP_CBMFIFLAT, 0, 1);
jmitc91516 0:a5c253316af6 1321 else
jmitc91516 0:a5c253316af6 1322 DrawSubStruct(GuiStructCOMP_CBMFI3D, 0, 1);
jmitc91516 0:a5c253316af6 1323 break;
jmitc91516 0:a5c253316af6 1324 case GuiLib_CHECKBOX_MARK_ICON:
jmitc91516 0:a5c253316af6 1325 TempTextPar = sgl.CurItem.TextPar[0];
jmitc91516 0:a5c253316af6 1326 SetCurFont(sgl.CurItem.CompPars.CompCheckBox.MarkIconFont);
jmitc91516 0:a5c253316af6 1327 sgl.CurItem.X1 = sgl.CurItem.X1 +
jmitc91516 0:a5c253316af6 1328 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX;
jmitc91516 0:a5c253316af6 1329 sgl.CurItem.Y1 = Y2 +
jmitc91516 0:a5c253316af6 1330 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY;
jmitc91516 0:a5c253316af6 1331 sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
jmitc91516 0:a5c253316af6 1332 sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
jmitc91516 0:a5c253316af6 1333 sgl.CurItem.TextPar[0].BitFlags = 0;
jmitc91516 0:a5c253316af6 1334 sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1335 sgl.CurItem.TextPar[0].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1336 if (CheckmarkMode == 1)
jmitc91516 0:a5c253316af6 1337 DrawText(sgl.CurItem.CompPars.CompCheckBox.MarkIconPtr,
jmitc91516 0:a5c253316af6 1338 1,
jmitc91516 0:a5c253316af6 1339 0,
jmitc91516 0:a5c253316af6 1340 sgl.CurItem.CompPars.CompCheckBox.MarkColor,
jmitc91516 0:a5c253316af6 1341 0,
jmitc91516 0:a5c253316af6 1342 1);
jmitc91516 0:a5c253316af6 1343 else
jmitc91516 0:a5c253316af6 1344 DrawText(sgl.CurItem.CompPars.CompCheckBox.MarkIconPtr,
jmitc91516 0:a5c253316af6 1345 1,
jmitc91516 0:a5c253316af6 1346 0,
jmitc91516 0:a5c253316af6 1347 BackColor,
jmitc91516 0:a5c253316af6 1348 0,
jmitc91516 0:a5c253316af6 1349 2);
jmitc91516 0:a5c253316af6 1350 sgl.CurItem.TextPar[0] = TempTextPar;
jmitc91516 0:a5c253316af6 1351 break;
jmitc91516 0:a5c253316af6 1352 case GuiLib_CHECKBOX_MARK_BITMAP:
jmitc91516 0:a5c253316af6 1353 if (CheckmarkMode == 1)
jmitc91516 0:a5c253316af6 1354 {
jmitc91516 0:a5c253316af6 1355 if (sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent)
jmitc91516 0:a5c253316af6 1356 BackColor2 = sgl.CurItem.CompPars.CompCheckBox.MarkBitmapTranspColor;
jmitc91516 0:a5c253316af6 1357 else
jmitc91516 0:a5c253316af6 1358 BackColor2 = -1;
jmitc91516 0:a5c253316af6 1359 GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIndex,
jmitc91516 0:a5c253316af6 1360 sgl.CurItem.X1 +
jmitc91516 0:a5c253316af6 1361 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX,
jmitc91516 0:a5c253316af6 1362 sgl.CurItem.Y1 +
jmitc91516 0:a5c253316af6 1363 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY,
jmitc91516 0:a5c253316af6 1364 BackColor2);
jmitc91516 0:a5c253316af6 1365 }
jmitc91516 0:a5c253316af6 1366 else
jmitc91516 0:a5c253316af6 1367 {
jmitc91516 0:a5c253316af6 1368 ReadBitmapSizes(sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIndex);
jmitc91516 0:a5c253316af6 1369 GuiLib_FillBox(sgl.CurItem.X1, sgl.CurItem.Y1,
jmitc91516 0:a5c253316af6 1370 sgl.CurItem.X1 + sgl.BitmapSizeX -1, sgl.CurItem.Y1 + sgl.BitmapSizeY - 1,
jmitc91516 0:a5c253316af6 1371 BackColor);
jmitc91516 0:a5c253316af6 1372 }
jmitc91516 0:a5c253316af6 1373 break;
jmitc91516 0:a5c253316af6 1374 }
jmitc91516 0:a5c253316af6 1375 }
jmitc91516 0:a5c253316af6 1376 }
jmitc91516 0:a5c253316af6 1377 break;
jmitc91516 0:a5c253316af6 1378 #endif
jmitc91516 0:a5c253316af6 1379
jmitc91516 0:a5c253316af6 1380 #ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
jmitc91516 0:a5c253316af6 1381 case GuiLib_ITEM_RADIOBUTTON:
jmitc91516 0:a5c253316af6 1382 PrepareInternalStruct();
jmitc91516 0:a5c253316af6 1383
jmitc91516 0:a5c253316af6 1384 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1385 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1386 RemYMemory = sgl.Memory.Y[GuiLib_MEMORY_CNT];
jmitc91516 0:a5c253316af6 1387
jmitc91516 0:a5c253316af6 1388 if ((sgl.CurItem.VarPtr != 0) &&
jmitc91516 0:a5c253316af6 1389 (sgl.CurItem.VarType != GuiLib_VAR_STRING))
jmitc91516 0:a5c253316af6 1390 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 1391 else
jmitc91516 0:a5c253316af6 1392 VarValue = -1;
jmitc91516 0:a5c253316af6 1393
jmitc91516 0:a5c253316af6 1394 for (N = 0; N < sgl.CurItem.CompPars.CompRadioButton.Count; N++)
jmitc91516 0:a5c253316af6 1395 {
jmitc91516 0:a5c253316af6 1396 GuiVarCompInt1 = sgl.CurItem.CompPars.CompRadioButton.Size;
jmitc91516 0:a5c253316af6 1397 sgl.Memory.C[0] = ForeColor;
jmitc91516 0:a5c253316af6 1398 switch (sgl.CurItem.CompPars.CompRadioButton.Style)
jmitc91516 0:a5c253316af6 1399 {
jmitc91516 0:a5c253316af6 1400 case GuiLib_RADIOBUTTON_FLAT:
jmitc91516 0:a5c253316af6 1401 if (BackColorTransp)
jmitc91516 0:a5c253316af6 1402 DrawSubStruct(GuiStructCOMP_RBFLATTRANSP, 0, 1);
jmitc91516 0:a5c253316af6 1403 else
jmitc91516 0:a5c253316af6 1404 DrawSubStruct(GuiStructCOMP_RBFLAT, 0, 1);
jmitc91516 0:a5c253316af6 1405 break;
jmitc91516 0:a5c253316af6 1406 case GuiLib_RADIOBUTTON_3D:
jmitc91516 0:a5c253316af6 1407 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1408 DrawSubStruct(GuiStructCOMP_RB3DINNER, 0, 1);
jmitc91516 0:a5c253316af6 1409 DrawSubStruct(GuiStructCOMP_RB3D, 0, 1);
jmitc91516 0:a5c253316af6 1410 break;
jmitc91516 0:a5c253316af6 1411 case GuiLib_RADIOBUTTON_ICON:
jmitc91516 0:a5c253316af6 1412 TempTextPar = sgl.CurItem.TextPar[0];
jmitc91516 0:a5c253316af6 1413 SetCurFont(sgl.CurItem.CompPars.CompRadioButton.IconFont);
jmitc91516 0:a5c253316af6 1414 sgl.CurItem.X1 = X1 + sgl.CurItem.CompPars.CompRadioButton.IconOffsetX;
jmitc91516 0:a5c253316af6 1415 sgl.CurItem.Y1 = Y1 + sgl.CurItem.CompPars.CompRadioButton.IconOffsetY +
jmitc91516 0:a5c253316af6 1416 sgl.CurFont->BaseLine;
jmitc91516 0:a5c253316af6 1417 sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
jmitc91516 0:a5c253316af6 1418 sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
jmitc91516 0:a5c253316af6 1419 sgl.CurItem.TextPar[0].BitFlags = 0;
jmitc91516 0:a5c253316af6 1420 sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1421 sgl.CurItem.TextPar[0].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1422 DrawText(sgl.CurItem.CompPars.CompRadioButton.IconPtr,
jmitc91516 0:a5c253316af6 1423 1,
jmitc91516 0:a5c253316af6 1424 0,
jmitc91516 0:a5c253316af6 1425 ForeColor,
jmitc91516 0:a5c253316af6 1426 BackColor,
jmitc91516 0:a5c253316af6 1427 BackColorTransp);
jmitc91516 0:a5c253316af6 1428 sgl.CurItem.TextPar[0] = TempTextPar;
jmitc91516 0:a5c253316af6 1429 break;
jmitc91516 0:a5c253316af6 1430 case GuiLib_RADIOBUTTON_BITMAP:
jmitc91516 0:a5c253316af6 1431 if (sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent)
jmitc91516 0:a5c253316af6 1432 BackColor2 = sgl.CurItem.CompPars.CompRadioButton.BitmapTranspColor;
jmitc91516 0:a5c253316af6 1433 else
jmitc91516 0:a5c253316af6 1434 BackColor2 = -1;
jmitc91516 0:a5c253316af6 1435 GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompRadioButton.BitmapIndex,
jmitc91516 0:a5c253316af6 1436 X1, Y1,
jmitc91516 0:a5c253316af6 1437 BackColor2);
jmitc91516 0:a5c253316af6 1438 break;
jmitc91516 0:a5c253316af6 1439 }
jmitc91516 0:a5c253316af6 1440
jmitc91516 0:a5c253316af6 1441 if (VarValue == N)
jmitc91516 0:a5c253316af6 1442 {
jmitc91516 0:a5c253316af6 1443 GuiVarCompInt1 = sgl.CurItem.CompPars.CompRadioButton.Size;
jmitc91516 0:a5c253316af6 1444 GuiVarCompInt2 = sgl.CurItem.CompPars.CompRadioButton.Size - 3;
jmitc91516 0:a5c253316af6 1445 if (sgl.CurItem.CompPars.CompRadioButton.Style ==
jmitc91516 0:a5c253316af6 1446 GuiLib_RADIOBUTTON_FLAT)
jmitc91516 0:a5c253316af6 1447 GuiVarCompInt2++;
jmitc91516 0:a5c253316af6 1448 sgl.Memory.C[0] = sgl.CurItem.CompPars.CompRadioButton.MarkColor;
jmitc91516 0:a5c253316af6 1449 switch (sgl.CurItem.CompPars.CompRadioButton.MarkStyle)
jmitc91516 0:a5c253316af6 1450 {
jmitc91516 0:a5c253316af6 1451 case GuiLib_RADIOBUTTON_MARK_STANDARD:
jmitc91516 0:a5c253316af6 1452 if (GuiVarCompInt1 <= 1)
jmitc91516 0:a5c253316af6 1453 DrawSubStruct(GuiStructCOMP_RBMSQUA, 0, 1);
jmitc91516 0:a5c253316af6 1454 else if (sgl.CurItem.CompPars.CompRadioButton.Style ==
jmitc91516 0:a5c253316af6 1455 GuiLib_RADIOBUTTON_FLAT)
jmitc91516 0:a5c253316af6 1456 DrawSubStruct(GuiStructCOMP_RBMFLAT, 0, 1);
jmitc91516 0:a5c253316af6 1457 else
jmitc91516 0:a5c253316af6 1458 DrawSubStruct(GuiStructCOMP_RBM3D, 0, 1);
jmitc91516 0:a5c253316af6 1459 break;
jmitc91516 0:a5c253316af6 1460 case GuiLib_RADIOBUTTON_MARK_ICON:
jmitc91516 0:a5c253316af6 1461 TempTextPar = sgl.CurItem.TextPar[0];
jmitc91516 0:a5c253316af6 1462 SetCurFont(sgl.CurItem.CompPars.CompRadioButton.MarkIconFont);
jmitc91516 0:a5c253316af6 1463 sgl.CurItem.X1 = X1 + sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX;
jmitc91516 0:a5c253316af6 1464 sgl.CurItem.Y1 = Y1 + sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY +
jmitc91516 0:a5c253316af6 1465 sgl.CurFont->BaseLine;
jmitc91516 0:a5c253316af6 1466 sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
jmitc91516 0:a5c253316af6 1467 sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
jmitc91516 0:a5c253316af6 1468 sgl.CurItem.TextPar[0].BitFlags = 0;
jmitc91516 0:a5c253316af6 1469 sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1470 sgl.CurItem.TextPar[0].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1471 DrawText(sgl.CurItem.CompPars.CompRadioButton.MarkIconPtr,
jmitc91516 0:a5c253316af6 1472 1,
jmitc91516 0:a5c253316af6 1473 0,
jmitc91516 0:a5c253316af6 1474 ForeColor,
jmitc91516 0:a5c253316af6 1475 BackColor,
jmitc91516 0:a5c253316af6 1476 BackColorTransp);
jmitc91516 0:a5c253316af6 1477 sgl.CurItem.TextPar[0] = TempTextPar;
jmitc91516 0:a5c253316af6 1478 break;
jmitc91516 0:a5c253316af6 1479 case GuiLib_RADIOBUTTON_MARK_BITMAP:
jmitc91516 0:a5c253316af6 1480 if (sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent)
jmitc91516 0:a5c253316af6 1481 BackColor2 = sgl.CurItem.CompPars.CompRadioButton.MarkBitmapTranspColor;
jmitc91516 0:a5c253316af6 1482 else
jmitc91516 0:a5c253316af6 1483 BackColor2 = -1;
jmitc91516 0:a5c253316af6 1484 GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIndex,
jmitc91516 0:a5c253316af6 1485 X1 +
jmitc91516 0:a5c253316af6 1486 sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX,
jmitc91516 0:a5c253316af6 1487 Y1 +
jmitc91516 0:a5c253316af6 1488 sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY,
jmitc91516 0:a5c253316af6 1489 BackColor2);
jmitc91516 0:a5c253316af6 1490 break;
jmitc91516 0:a5c253316af6 1491 }
jmitc91516 0:a5c253316af6 1492 }
jmitc91516 0:a5c253316af6 1493
jmitc91516 0:a5c253316af6 1494 Y1 += sgl.CurItem.CompPars.CompRadioButton.InterDistance;
jmitc91516 0:a5c253316af6 1495 sgl.Memory.Y[GuiLib_MEMORY_CNT] +=
jmitc91516 0:a5c253316af6 1496 sgl.CurItem.CompPars.CompRadioButton.InterDistance;
jmitc91516 0:a5c253316af6 1497 }
jmitc91516 0:a5c253316af6 1498
jmitc91516 0:a5c253316af6 1499 sgl.Memory.Y[GuiLib_MEMORY_CNT] = RemYMemory;
jmitc91516 0:a5c253316af6 1500 break;
jmitc91516 0:a5c253316af6 1501 #endif
jmitc91516 0:a5c253316af6 1502
jmitc91516 0:a5c253316af6 1503 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 1504 case GuiLib_ITEM_BUTTON:
jmitc91516 0:a5c253316af6 1505 PrepareInternalStruct();
jmitc91516 0:a5c253316af6 1506
jmitc91516 0:a5c253316af6 1507 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1508 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1509 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1510 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1511 RemX1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1512 RemY1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1513
jmitc91516 0:a5c253316af6 1514 GuiVarCompInt1 = X2 - X1 + 1;
jmitc91516 0:a5c253316af6 1515 GuiVarCompInt2 = Y2 - Y1 + 1;
jmitc91516 0:a5c253316af6 1516 GuiVarCompInt3 = sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 1517 GuiVarCompInt4 = GuiVarCompInt1 - sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 1518 GuiVarCompInt5 = GuiVarCompInt2 - sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 1519
jmitc91516 0:a5c253316af6 1520 sgl.Memory.C[0] = ForeColor;
jmitc91516 0:a5c253316af6 1521 sgl.Memory.C[1] = BackColor;
jmitc91516 0:a5c253316af6 1522
jmitc91516 0:a5c253316af6 1523 if (sgl.ButtonColorOverride == GuiLib_TRUE)
jmitc91516 0:a5c253316af6 1524 sgl.Memory.C[2] = sgl.DisabledButtonColor;
jmitc91516 0:a5c253316af6 1525 else
jmitc91516 0:a5c253316af6 1526 sgl.Memory.C[2] = GuiLib_DesaturatePixelColor(BackColor,800);
jmitc91516 0:a5c253316af6 1527
jmitc91516 0:a5c253316af6 1528 if ((sgl.CurItem.VarPtr != 0) &&
jmitc91516 0:a5c253316af6 1529 (sgl.CurItem.VarType != GuiLib_VAR_STRING))
jmitc91516 0:a5c253316af6 1530 {
jmitc91516 0:a5c253316af6 1531 VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
jmitc91516 0:a5c253316af6 1532 if ((VarValue < GuiLib_BUTTON_STATE_UP) ||
jmitc91516 0:a5c253316af6 1533 (VarValue > GuiLib_BUTTON_STATE_DISABLED))
jmitc91516 0:a5c253316af6 1534 VarValue = GuiLib_BUTTON_STATE_UP;
jmitc91516 0:a5c253316af6 1535 }
jmitc91516 0:a5c253316af6 1536 else
jmitc91516 0:a5c253316af6 1537 VarValue = GuiLib_BUTTON_STATE_UP;
jmitc91516 0:a5c253316af6 1538
jmitc91516 0:a5c253316af6 1539 DisabledGlyphColorInUse = 0;
jmitc91516 0:a5c253316af6 1540 DisabledTextColorInUse = 0;
jmitc91516 0:a5c253316af6 1541 switch (sgl.CurItem.CompPars.CompButton.BodyStyle)
jmitc91516 0:a5c253316af6 1542 {
jmitc91516 0:a5c253316af6 1543 case GuiLib_BUTTON_BODY_FLAT:
jmitc91516 0:a5c253316af6 1544 switch (VarValue)
jmitc91516 0:a5c253316af6 1545 {
jmitc91516 0:a5c253316af6 1546 case 0 :
jmitc91516 0:a5c253316af6 1547 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1548 DrawSubStruct(GuiStructCOMP_BUFLAT0, 0, 1);
jmitc91516 0:a5c253316af6 1549 else
jmitc91516 0:a5c253316af6 1550 DrawSubStruct(GuiStructCOMP_BUFLATR0, 0, 1);
jmitc91516 0:a5c253316af6 1551 break;
jmitc91516 0:a5c253316af6 1552 case 1 :
jmitc91516 0:a5c253316af6 1553 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1554 DrawSubStruct(GuiStructCOMP_BUFLAT1, 0, 1);
jmitc91516 0:a5c253316af6 1555 else
jmitc91516 0:a5c253316af6 1556 DrawSubStruct(GuiStructCOMP_BUFLATR1, 0, 1);
jmitc91516 0:a5c253316af6 1557 break;
jmitc91516 0:a5c253316af6 1558 case 2 :
jmitc91516 0:a5c253316af6 1559 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1560 DrawSubStruct(GuiStructCOMP_BUFLAT2, 0, 1);
jmitc91516 0:a5c253316af6 1561 else
jmitc91516 0:a5c253316af6 1562 DrawSubStruct(GuiStructCOMP_BUFLATR2, 0, 1);
jmitc91516 0:a5c253316af6 1563 DisabledGlyphColorInUse =
jmitc91516 0:a5c253316af6 1564 (sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x02);
jmitc91516 0:a5c253316af6 1565 DisabledTextColorInUse =
jmitc91516 0:a5c253316af6 1566 (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x08);
jmitc91516 0:a5c253316af6 1567 break;
jmitc91516 0:a5c253316af6 1568 }
jmitc91516 0:a5c253316af6 1569 break;
jmitc91516 0:a5c253316af6 1570 case GuiLib_BUTTON_BODY_3D:
jmitc91516 0:a5c253316af6 1571 switch (VarValue)
jmitc91516 0:a5c253316af6 1572 {
jmitc91516 0:a5c253316af6 1573 case 0 :
jmitc91516 0:a5c253316af6 1574 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1575 DrawSubStruct(GuiStructCOMP_BU3D0, 0, 1);
jmitc91516 0:a5c253316af6 1576 else
jmitc91516 0:a5c253316af6 1577 DrawSubStruct(GuiStructCOMP_BU3DR0, 0, 1);
jmitc91516 0:a5c253316af6 1578 break;
jmitc91516 0:a5c253316af6 1579 case 1 :
jmitc91516 0:a5c253316af6 1580 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1581 DrawSubStruct(GuiStructCOMP_BU3D1, 0, 1);
jmitc91516 0:a5c253316af6 1582 else
jmitc91516 0:a5c253316af6 1583 DrawSubStruct(GuiStructCOMP_BU3DR1, 0, 1);
jmitc91516 0:a5c253316af6 1584 break;
jmitc91516 0:a5c253316af6 1585 case 2 :
jmitc91516 0:a5c253316af6 1586 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1587 DrawSubStruct(GuiStructCOMP_BU3D2, 0, 1);
jmitc91516 0:a5c253316af6 1588 else
jmitc91516 0:a5c253316af6 1589 DrawSubStruct(GuiStructCOMP_BU3DR2, 0, 1);
jmitc91516 0:a5c253316af6 1590 DisabledGlyphColorInUse =
jmitc91516 0:a5c253316af6 1591 !(sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x02);
jmitc91516 0:a5c253316af6 1592 DisabledTextColorInUse =
jmitc91516 0:a5c253316af6 1593 !(sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x08);
jmitc91516 0:a5c253316af6 1594 break;
jmitc91516 0:a5c253316af6 1595 }
jmitc91516 0:a5c253316af6 1596 break;
jmitc91516 0:a5c253316af6 1597 case GuiLib_BUTTON_BODY_ICON:
jmitc91516 0:a5c253316af6 1598 TempTextPar = sgl.CurItem.TextPar[VarValue];
jmitc91516 0:a5c253316af6 1599 SetCurFont(sgl.CurItem.CompPars.CompButton.BodyIconFont[VarValue]);
jmitc91516 0:a5c253316af6 1600 sgl.CurItem.X1 =
jmitc91516 0:a5c253316af6 1601 X1 +
jmitc91516 0:a5c253316af6 1602 sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[VarValue];
jmitc91516 0:a5c253316af6 1603 sgl.CurItem.Y1 =
jmitc91516 0:a5c253316af6 1604 Y1 +
jmitc91516 0:a5c253316af6 1605 sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[VarValue] +
jmitc91516 0:a5c253316af6 1606 sgl.CurFont->BaseLine;
jmitc91516 0:a5c253316af6 1607 sgl.CurItem.TextPar[VarValue].Alignment = GuiLib_ALIGN_LEFT;
jmitc91516 0:a5c253316af6 1608 sgl.CurItem.TextPar[VarValue].Ps = GuiLib_PS_OFF;
jmitc91516 0:a5c253316af6 1609 sgl.CurItem.TextPar[VarValue].BitFlags = 0;
jmitc91516 0:a5c253316af6 1610 sgl.CurItem.TextPar[VarValue].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1611 sgl.CurItem.TextPar[VarValue].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1612 DrawText(sgl.CurItem.CompPars.CompButton.BodyIconPtr[VarValue],
jmitc91516 0:a5c253316af6 1613 1,
jmitc91516 0:a5c253316af6 1614 VarValue,
jmitc91516 0:a5c253316af6 1615 ForeColor,
jmitc91516 0:a5c253316af6 1616 BackColor,
jmitc91516 0:a5c253316af6 1617 BackColorTransp);
jmitc91516 0:a5c253316af6 1618 sgl.CurItem.TextPar[VarValue] = TempTextPar;
jmitc91516 0:a5c253316af6 1619 X1 = sgl.FontWriteX1;
jmitc91516 0:a5c253316af6 1620 Y1 = sgl.FontWriteY1;
jmitc91516 0:a5c253316af6 1621 X2 = sgl.FontWriteX2;
jmitc91516 0:a5c253316af6 1622 Y2 = sgl.FontWriteY2;
jmitc91516 0:a5c253316af6 1623 break;
jmitc91516 0:a5c253316af6 1624 case GuiLib_BUTTON_BODY_BITMAP:
jmitc91516 0:a5c253316af6 1625 if (sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[VarValue])
jmitc91516 0:a5c253316af6 1626 BackColor2 =
jmitc91516 0:a5c253316af6 1627 sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[VarValue];
jmitc91516 0:a5c253316af6 1628 else
jmitc91516 0:a5c253316af6 1629 BackColor2 = -1;
jmitc91516 0:a5c253316af6 1630 GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[VarValue],
jmitc91516 0:a5c253316af6 1631 X1, Y1,
jmitc91516 0:a5c253316af6 1632 BackColor2);
jmitc91516 0:a5c253316af6 1633 X2 = sgl.BitmapWriteX2;
jmitc91516 0:a5c253316af6 1634 Y2 = sgl.BitmapWriteY2;
jmitc91516 0:a5c253316af6 1635 break;
jmitc91516 0:a5c253316af6 1636 }
jmitc91516 0:a5c253316af6 1637
jmitc91516 0:a5c253316af6 1638 CX = (X1 + X2) / 2;
jmitc91516 0:a5c253316af6 1639 CY = (Y1 + Y2) / 2;
jmitc91516 0:a5c253316af6 1640
jmitc91516 0:a5c253316af6 1641 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1642 RemClippingX1 = sgl.CurItem.ClipRectX1;
jmitc91516 0:a5c253316af6 1643 RemClippingY1 = sgl.CurItem.ClipRectY1;
jmitc91516 0:a5c253316af6 1644 RemClippingX2 = sgl.CurItem.ClipRectX2;
jmitc91516 0:a5c253316af6 1645 RemClippingY2 = sgl.CurItem.ClipRectY2;
jmitc91516 0:a5c253316af6 1646 sgl.CurItem.ClipRectX1 = GuiLib_GET_MAX(sgl.CurItem.ClipRectX1, X1);
jmitc91516 0:a5c253316af6 1647 sgl.CurItem.ClipRectY1 = GuiLib_GET_MAX(sgl.CurItem.ClipRectY1, Y1);
jmitc91516 0:a5c253316af6 1648 sgl.CurItem.ClipRectX2 = GuiLib_GET_MIN(sgl.CurItem.ClipRectX2, X2);
jmitc91516 0:a5c253316af6 1649 sgl.CurItem.ClipRectY2 = GuiLib_GET_MIN(sgl.CurItem.ClipRectY2, Y2);
jmitc91516 0:a5c253316af6 1650 GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
jmitc91516 0:a5c253316af6 1651 sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
jmitc91516 0:a5c253316af6 1652 #endif // GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1653
jmitc91516 0:a5c253316af6 1654 if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_TEXT)
jmitc91516 0:a5c253316af6 1655 {
jmitc91516 0:a5c253316af6 1656 switch (sgl.CurItem.CompPars.CompButton.Layout)
jmitc91516 0:a5c253316af6 1657 {
jmitc91516 0:a5c253316af6 1658 case GuiLib_BUTTON_LAYOUT_GLYPH:
jmitc91516 0:a5c253316af6 1659 GX1 = CX;
jmitc91516 0:a5c253316af6 1660 GY1 = CY;
jmitc91516 0:a5c253316af6 1661 break;
jmitc91516 0:a5c253316af6 1662 case GuiLib_BUTTON_LAYOUT_GLYPHLEFT:
jmitc91516 0:a5c253316af6 1663 GX1 = X1 + GuiLib_GET_MIN((Y2 - Y1) / 2, (X2 - X1) / 4);
jmitc91516 0:a5c253316af6 1664 GY1 = CY;
jmitc91516 0:a5c253316af6 1665 break;
jmitc91516 0:a5c253316af6 1666 case GuiLib_BUTTON_LAYOUT_GLYPHRIGHT:
jmitc91516 0:a5c253316af6 1667 GX1 = X2 - GuiLib_GET_MIN((Y2 - Y1) / 2, (X2 - X1) / 4);
jmitc91516 0:a5c253316af6 1668 GY1 = CY;
jmitc91516 0:a5c253316af6 1669 break;
jmitc91516 0:a5c253316af6 1670 case GuiLib_BUTTON_LAYOUT_GLYPHTOP:
jmitc91516 0:a5c253316af6 1671 GX1 = CX;
jmitc91516 0:a5c253316af6 1672 GY1 = Y1 + ((Y2 - Y1) / 4);
jmitc91516 0:a5c253316af6 1673 break;
jmitc91516 0:a5c253316af6 1674 case GuiLib_BUTTON_LAYOUT_GLYPHBOTTOM:
jmitc91516 0:a5c253316af6 1675 GX1 = CX;
jmitc91516 0:a5c253316af6 1676 GY1 = Y2 - ((Y2 - Y1) / 4);
jmitc91516 0:a5c253316af6 1677 break;
jmitc91516 0:a5c253316af6 1678 }
jmitc91516 0:a5c253316af6 1679 switch (sgl.CurItem.CompPars.CompButton.GlyphStyle)
jmitc91516 0:a5c253316af6 1680 {
jmitc91516 0:a5c253316af6 1681 case GuiLib_BUTTON_GLYPH_ICON:
jmitc91516 0:a5c253316af6 1682 TempTextPar = sgl.CurItem.TextPar[VarValue];
jmitc91516 0:a5c253316af6 1683 SetCurFont(sgl.CurItem.CompPars.CompButton.GlyphIconFont[VarValue]);
jmitc91516 0:a5c253316af6 1684 sgl.CurItem.X1 =
jmitc91516 0:a5c253316af6 1685 GX1 +
jmitc91516 0:a5c253316af6 1686 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[VarValue];
jmitc91516 0:a5c253316af6 1687 sgl.CurItem.Y1 =
jmitc91516 0:a5c253316af6 1688 GY1 +
jmitc91516 0:a5c253316af6 1689 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[VarValue] +
jmitc91516 0:a5c253316af6 1690 GuiLib_FONT_MID_Y(sgl.CurFont->BaseLine, sgl.CurFont->TopLine);
jmitc91516 0:a5c253316af6 1691 sgl.CurItem.TextPar[VarValue].Alignment = GuiLib_ALIGN_CENTER;
jmitc91516 0:a5c253316af6 1692 sgl.CurItem.TextPar[VarValue].Ps = GuiLib_PS_OFF;
jmitc91516 0:a5c253316af6 1693 sgl.CurItem.TextPar[VarValue].BitFlags = 0;
jmitc91516 0:a5c253316af6 1694 sgl.CurItem.TextPar[VarValue].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1695 sgl.CurItem.TextPar[VarValue].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1696 if (DisabledGlyphColorInUse)
jmitc91516 0:a5c253316af6 1697 ButtonColor = GuiLib_MiddlePixelColor(
jmitc91516 0:a5c253316af6 1698 sgl.CurItem.CompPars.CompButton.GlyphIconColor[VarValue],
jmitc91516 0:a5c253316af6 1699 sgl.Memory.C[2],
jmitc91516 0:a5c253316af6 1700 800);
jmitc91516 0:a5c253316af6 1701 else
jmitc91516 0:a5c253316af6 1702 ButtonColor = sgl.CurItem.CompPars.CompButton.GlyphIconColor[VarValue];
jmitc91516 0:a5c253316af6 1703 DrawText(sgl.CurItem.CompPars.CompButton.GlyphIconPtr[VarValue],
jmitc91516 0:a5c253316af6 1704 1,
jmitc91516 0:a5c253316af6 1705 VarValue,
jmitc91516 0:a5c253316af6 1706 ButtonColor,
jmitc91516 0:a5c253316af6 1707 0,
jmitc91516 0:a5c253316af6 1708 GuiLib_TRUE);
jmitc91516 0:a5c253316af6 1709 sgl.CurItem.TextPar[VarValue] = TempTextPar;
jmitc91516 0:a5c253316af6 1710 GX1 = sgl.FontWriteX1;
jmitc91516 0:a5c253316af6 1711 GY1 = sgl.FontWriteY1;
jmitc91516 0:a5c253316af6 1712 GX2 = sgl.FontWriteX2;
jmitc91516 0:a5c253316af6 1713 GY2 = sgl.FontWriteY2;
jmitc91516 0:a5c253316af6 1714 break;
jmitc91516 0:a5c253316af6 1715 case GuiLib_BUTTON_GLYPH_BITMAP:
jmitc91516 0:a5c253316af6 1716 ReadBitmapSizes(sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[VarValue]);
jmitc91516 0:a5c253316af6 1717 GX1 -= sgl.BitmapSizeX / 2;
jmitc91516 0:a5c253316af6 1718 GY1 -= sgl.BitmapSizeY / 2;
jmitc91516 0:a5c253316af6 1719
jmitc91516 0:a5c253316af6 1720 GX1 += sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[VarValue];
jmitc91516 0:a5c253316af6 1721 GY1 += sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[VarValue];
jmitc91516 0:a5c253316af6 1722 if (sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[VarValue])
jmitc91516 0:a5c253316af6 1723 BackColor2 = sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[VarValue];
jmitc91516 0:a5c253316af6 1724 else
jmitc91516 0:a5c253316af6 1725 BackColor2 = -1;
jmitc91516 0:a5c253316af6 1726 GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[VarValue],
jmitc91516 0:a5c253316af6 1727 GX1, GY1,
jmitc91516 0:a5c253316af6 1728 BackColor2);
jmitc91516 0:a5c253316af6 1729 GX2 = sgl.BitmapWriteX2;
jmitc91516 0:a5c253316af6 1730 GY2 = sgl.BitmapWriteY2;
jmitc91516 0:a5c253316af6 1731 break;
jmitc91516 0:a5c253316af6 1732 }
jmitc91516 0:a5c253316af6 1733 }
jmitc91516 0:a5c253316af6 1734
jmitc91516 0:a5c253316af6 1735 if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_GLYPH)
jmitc91516 0:a5c253316af6 1736 {
jmitc91516 0:a5c253316af6 1737 TempTextPar = sgl.CurItem.TextPar[VarValue];
jmitc91516 0:a5c253316af6 1738 SetCurFont(sgl.CurItem.TextPar[VarValue].FontIndex);
jmitc91516 0:a5c253316af6 1739 switch (sgl.CurItem.CompPars.CompButton.Layout)
jmitc91516 0:a5c253316af6 1740 {
jmitc91516 0:a5c253316af6 1741 case GuiLib_BUTTON_LAYOUT_TEXT:
jmitc91516 0:a5c253316af6 1742 sgl.CurItem.X1 = CX;
jmitc91516 0:a5c253316af6 1743 sgl.CurItem.Y1 = CY;
jmitc91516 0:a5c253316af6 1744 break;
jmitc91516 0:a5c253316af6 1745 case GuiLib_BUTTON_LAYOUT_GLYPHLEFT:
jmitc91516 0:a5c253316af6 1746 sgl.CurItem.X1 = X2 - ((X2 - GX2 + 1) / 2);
jmitc91516 0:a5c253316af6 1747 sgl.CurItem.Y1 = CY;
jmitc91516 0:a5c253316af6 1748 break;
jmitc91516 0:a5c253316af6 1749 case GuiLib_BUTTON_LAYOUT_GLYPHRIGHT:
jmitc91516 0:a5c253316af6 1750 sgl.CurItem.X1 = X1 + ((GX1 - X1 + 1) / 2);
jmitc91516 0:a5c253316af6 1751 sgl.CurItem.Y1 = CY;
jmitc91516 0:a5c253316af6 1752 break;
jmitc91516 0:a5c253316af6 1753 case GuiLib_BUTTON_LAYOUT_GLYPHTOP:
jmitc91516 0:a5c253316af6 1754 sgl.CurItem.X1 = CX;
jmitc91516 0:a5c253316af6 1755 sgl.CurItem.Y1 = Y2 - ((Y2 - GY2 + 1) / 2);
jmitc91516 0:a5c253316af6 1756 break;
jmitc91516 0:a5c253316af6 1757 case GuiLib_BUTTON_LAYOUT_GLYPHBOTTOM:
jmitc91516 0:a5c253316af6 1758 sgl.CurItem.X1 = CX;
jmitc91516 0:a5c253316af6 1759 sgl.CurItem.Y1 = Y1 + ((GY1 - Y1 + 1) / 2);
jmitc91516 0:a5c253316af6 1760 break;
jmitc91516 0:a5c253316af6 1761 }
jmitc91516 0:a5c253316af6 1762 sgl.CurItem.Y1 +=
jmitc91516 0:a5c253316af6 1763 GuiLib_FONT_MID_Y(sgl.CurFont->BaseLine, sgl.CurFont->TopLine);
jmitc91516 0:a5c253316af6 1764 sgl.CurItem.TextPar[VarValue].Alignment = GuiLib_ALIGN_CENTER;
jmitc91516 0:a5c253316af6 1765 sgl.CurItem.TextPar[VarValue].BitFlags = 0;
jmitc91516 0:a5c253316af6 1766 sgl.CurItem.TextPar[VarValue].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 1767 sgl.CurItem.TextPar[VarValue].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 1768 if (DisabledTextColorInUse)
jmitc91516 0:a5c253316af6 1769 ButtonColor = GuiLib_MiddlePixelColor(
jmitc91516 0:a5c253316af6 1770 sgl.CurItem.CompPars.CompButton.TextColor[VarValue],
jmitc91516 0:a5c253316af6 1771 sgl.Memory.C[2],
jmitc91516 0:a5c253316af6 1772 800);
jmitc91516 0:a5c253316af6 1773 else
jmitc91516 0:a5c253316af6 1774 ButtonColor = sgl.CurItem.CompPars.CompButton.TextColor[VarValue];
jmitc91516 0:a5c253316af6 1775 DRAW_ROM_TEXT(GetItemTextPtr(VarValue),
jmitc91516 0:a5c253316af6 1776 sgl.CurItem.TextLength[VarValue],
jmitc91516 0:a5c253316af6 1777 VarValue,
jmitc91516 0:a5c253316af6 1778 ButtonColor,
jmitc91516 0:a5c253316af6 1779 0,
jmitc91516 0:a5c253316af6 1780 GuiLib_TRUE);
jmitc91516 0:a5c253316af6 1781 sgl.CurItem.TextPar[VarValue] = TempTextPar;
jmitc91516 0:a5c253316af6 1782 }
jmitc91516 0:a5c253316af6 1783
jmitc91516 0:a5c253316af6 1784 sgl.CurItem.X1 = RemX1;
jmitc91516 0:a5c253316af6 1785 sgl.CurItem.Y1 = RemY1;
jmitc91516 0:a5c253316af6 1786
jmitc91516 0:a5c253316af6 1787 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1788 sgl.CurItem.ClipRectX1 = RemClippingX1;
jmitc91516 0:a5c253316af6 1789 sgl.CurItem.ClipRectY1 = RemClippingY1;
jmitc91516 0:a5c253316af6 1790 sgl.CurItem.ClipRectX2 = RemClippingX2;
jmitc91516 0:a5c253316af6 1791 sgl.CurItem.ClipRectY2 = RemClippingY2;
jmitc91516 0:a5c253316af6 1792 GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
jmitc91516 0:a5c253316af6 1793 sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
jmitc91516 0:a5c253316af6 1794 #endif // GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1795
jmitc91516 0:a5c253316af6 1796 break;
jmitc91516 0:a5c253316af6 1797 #endif
jmitc91516 0:a5c253316af6 1798
jmitc91516 0:a5c253316af6 1799 #ifdef GuiConst_ITEM_PANEL_INUSE
jmitc91516 0:a5c253316af6 1800 case GuiLib_ITEM_PANEL:
jmitc91516 0:a5c253316af6 1801 PrepareInternalStruct();
jmitc91516 0:a5c253316af6 1802
jmitc91516 0:a5c253316af6 1803 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1804 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1805 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1806 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1807 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 1808 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 1809
jmitc91516 0:a5c253316af6 1810 GuiVarCompInt1 = X2 - X1 + 1;
jmitc91516 0:a5c253316af6 1811 GuiVarCompInt2 = Y2 - Y1 + 1;
jmitc91516 0:a5c253316af6 1812 GuiVarCompInt3 = sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 1813 GuiVarCompInt4 = GuiVarCompInt1 - sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 1814 GuiVarCompInt5 = GuiVarCompInt2 - sgl.CurItem.R1;
jmitc91516 0:a5c253316af6 1815
jmitc91516 0:a5c253316af6 1816 sgl.Memory.C[0] = ForeColor;
jmitc91516 0:a5c253316af6 1817 switch (sgl.CurItem.CompPars.CompPanel.Style)
jmitc91516 0:a5c253316af6 1818 {
jmitc91516 0:a5c253316af6 1819 case GuiLib_PANEL_FLAT:
jmitc91516 0:a5c253316af6 1820 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1821 {
jmitc91516 0:a5c253316af6 1822 if (BackColorTransp)
jmitc91516 0:a5c253316af6 1823 DrawSubStruct(GuiStructCOMP_PAFLATTRANSP, 0, 1);
jmitc91516 0:a5c253316af6 1824 else
jmitc91516 0:a5c253316af6 1825 DrawSubStruct(GuiStructCOMP_PAFLAT, 0, 1);
jmitc91516 0:a5c253316af6 1826 }
jmitc91516 0:a5c253316af6 1827 else
jmitc91516 0:a5c253316af6 1828 {
jmitc91516 0:a5c253316af6 1829 if (BackColorTransp)
jmitc91516 0:a5c253316af6 1830 DrawSubStruct(GuiStructCOMP_PAFLATTRANSPR, 0, 1);
jmitc91516 0:a5c253316af6 1831 else
jmitc91516 0:a5c253316af6 1832 DrawSubStruct(GuiStructCOMP_PAFLATR, 0, 1);
jmitc91516 0:a5c253316af6 1833 }
jmitc91516 0:a5c253316af6 1834 break;
jmitc91516 0:a5c253316af6 1835
jmitc91516 0:a5c253316af6 1836 case GuiLib_PANEL_3D_RAISED:
jmitc91516 0:a5c253316af6 1837 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1838 {
jmitc91516 0:a5c253316af6 1839 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1840 DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
jmitc91516 0:a5c253316af6 1841 DrawSubStruct(GuiStructCOMP_PA3DRAIS, 0, 1);
jmitc91516 0:a5c253316af6 1842 }
jmitc91516 0:a5c253316af6 1843 else
jmitc91516 0:a5c253316af6 1844 {
jmitc91516 0:a5c253316af6 1845 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1846 DrawSubStruct(GuiStructCOMP_PA3DINNERR, 0, 1);
jmitc91516 0:a5c253316af6 1847 DrawSubStruct(GuiStructCOMP_PA3DRAISR, 0, 1);
jmitc91516 0:a5c253316af6 1848 }
jmitc91516 0:a5c253316af6 1849 break;
jmitc91516 0:a5c253316af6 1850
jmitc91516 0:a5c253316af6 1851 case GuiLib_PANEL_3D_LOWERED:
jmitc91516 0:a5c253316af6 1852 if (sgl.CurItem.R1 == 0)
jmitc91516 0:a5c253316af6 1853 {
jmitc91516 0:a5c253316af6 1854 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1855 DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
jmitc91516 0:a5c253316af6 1856 DrawSubStruct(GuiStructCOMP_PA3DLOW, 0, 1);
jmitc91516 0:a5c253316af6 1857 }
jmitc91516 0:a5c253316af6 1858 else
jmitc91516 0:a5c253316af6 1859 {
jmitc91516 0:a5c253316af6 1860 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1861 DrawSubStruct(GuiStructCOMP_PA3DINNERR, 0, 1);
jmitc91516 0:a5c253316af6 1862 DrawSubStruct(GuiStructCOMP_PA3DLOWR, 0, 1);
jmitc91516 0:a5c253316af6 1863 }
jmitc91516 0:a5c253316af6 1864 break;
jmitc91516 0:a5c253316af6 1865
jmitc91516 0:a5c253316af6 1866 case GuiLib_PANEL_EMBOSSED_RAISED:
jmitc91516 0:a5c253316af6 1867 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1868 DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
jmitc91516 0:a5c253316af6 1869 DrawSubStruct(GuiStructCOMP_PAEMBRAIS, 0, 1);
jmitc91516 0:a5c253316af6 1870 break;
jmitc91516 0:a5c253316af6 1871
jmitc91516 0:a5c253316af6 1872 case GuiLib_PANEL_EMBOSSED_LOWERED:
jmitc91516 0:a5c253316af6 1873 if (!BackColorTransp)
jmitc91516 0:a5c253316af6 1874 DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
jmitc91516 0:a5c253316af6 1875 DrawSubStruct(GuiStructCOMP_PAEMBLOW, 0, 1);
jmitc91516 0:a5c253316af6 1876 break;
jmitc91516 0:a5c253316af6 1877 }
jmitc91516 0:a5c253316af6 1878 break;
jmitc91516 0:a5c253316af6 1879 #endif
jmitc91516 0:a5c253316af6 1880
jmitc91516 0:a5c253316af6 1881 #ifdef GuiConst_ITEM_GRAPH_INUSE
jmitc91516 0:a5c253316af6 1882 case GuiLib_ITEM_GRAPH:
jmitc91516 0:a5c253316af6 1883 break;
jmitc91516 0:a5c253316af6 1884 #endif
jmitc91516 0:a5c253316af6 1885
jmitc91516 0:a5c253316af6 1886 #ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
jmitc91516 0:a5c253316af6 1887 case GuiLib_ITEM_GRAPHICSLAYER:
jmitc91516 0:a5c253316af6 1888 #ifdef GuiLib_LAYERS_SUPPORTED
jmitc91516 0:a5c253316af6 1889 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 1890 {
jmitc91516 0:a5c253316af6 1891 sgl.LayerOrigoX = 0;
jmitc91516 0:a5c253316af6 1892 sgl.LayerOrigoY = 0;
jmitc91516 0:a5c253316af6 1893 sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
jmitc91516 0:a5c253316af6 1894 sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
jmitc91516 0:a5c253316af6 1895
jmitc91516 0:a5c253316af6 1896 X1 = sgl.CurItem.X1;
jmitc91516 0:a5c253316af6 1897 X2 = sgl.CurItem.X2;
jmitc91516 0:a5c253316af6 1898 Y1 = sgl.CurItem.Y1;
jmitc91516 0:a5c253316af6 1899 Y2 = sgl.CurItem.Y2;
jmitc91516 0:a5c253316af6 1900 GuiLib_COORD_ADJUST(X1, Y1);
jmitc91516 0:a5c253316af6 1901 GuiLib_COORD_ADJUST(X2, Y2);
jmitc91516 0:a5c253316af6 1902 OrderCoord(&X1, &X2);
jmitc91516 0:a5c253316af6 1903 OrderCoord(&Y1, &Y2);
jmitc91516 0:a5c253316af6 1904
jmitc91516 0:a5c253316af6 1905 switch (sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].SizeMode)
jmitc91516 0:a5c253316af6 1906 {
jmitc91516 0:a5c253316af6 1907 case GuiLib_GRAPHICS_LAYER_SIZE_COORD:
jmitc91516 0:a5c253316af6 1908 X1 = GuiLib_GET_MINMAX(X1, 0, GuiConst_DISPLAY_WIDTH_HW - 1);
jmitc91516 0:a5c253316af6 1909 Y1 = GuiLib_GET_MINMAX(Y1, 0, GuiConst_DISPLAY_HEIGHT_HW - 1);
jmitc91516 0:a5c253316af6 1910 X2 = GuiLib_GET_MINMAX(X2, 0, GuiConst_DISPLAY_WIDTH_HW - 1);
jmitc91516 0:a5c253316af6 1911 Y2 = GuiLib_GET_MINMAX(Y2, 0, GuiConst_DISPLAY_HEIGHT_HW - 1);
jmitc91516 0:a5c253316af6 1912 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X = GuiLib_GET_MINMAX(
jmitc91516 0:a5c253316af6 1913 X1, 0, GuiConst_DISPLAY_WIDTH_HW);
jmitc91516 0:a5c253316af6 1914 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y = GuiLib_GET_MINMAX(
jmitc91516 0:a5c253316af6 1915 Y1, 0, GuiConst_DISPLAY_HEIGHT_HW);
jmitc91516 0:a5c253316af6 1916 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width = X2 - X1 + 1;
jmitc91516 0:a5c253316af6 1917 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height = Y2 - Y1 + 1;
jmitc91516 0:a5c253316af6 1918 break;
jmitc91516 0:a5c253316af6 1919
jmitc91516 0:a5c253316af6 1920 case GuiLib_GRAPHICS_LAYER_SIZE_SCREEN:
jmitc91516 0:a5c253316af6 1921 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X = 0;
jmitc91516 0:a5c253316af6 1922 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y = 0;
jmitc91516 0:a5c253316af6 1923 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width =
jmitc91516 0:a5c253316af6 1924 GuiConst_DISPLAY_WIDTH_HW;
jmitc91516 0:a5c253316af6 1925 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height =
jmitc91516 0:a5c253316af6 1926 GuiConst_DISPLAY_HEIGHT_HW;
jmitc91516 0:a5c253316af6 1927 break;
jmitc91516 0:a5c253316af6 1928
jmitc91516 0:a5c253316af6 1929 case GuiLib_GRAPHICS_LAYER_SIZE_CLIP:
jmitc91516 0:a5c253316af6 1930 CX1 = sgl.CurItem.ClipRectX1;
jmitc91516 0:a5c253316af6 1931 CX2 = sgl.CurItem.ClipRectX2;
jmitc91516 0:a5c253316af6 1932 CY1 = sgl.CurItem.ClipRectY1;
jmitc91516 0:a5c253316af6 1933 CY2 = sgl.CurItem.ClipRectY2;
jmitc91516 0:a5c253316af6 1934 GuiLib_COORD_ADJUST(CX1, CY1);
jmitc91516 0:a5c253316af6 1935 GuiLib_COORD_ADJUST(CX2, CY2);
jmitc91516 0:a5c253316af6 1936 OrderCoord(&CX1, &CX2);
jmitc91516 0:a5c253316af6 1937 OrderCoord(&CY1, &CY2);
jmitc91516 0:a5c253316af6 1938 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X = CX1;
jmitc91516 0:a5c253316af6 1939 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y = CY1;
jmitc91516 0:a5c253316af6 1940 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width = CX2 - CX1 + 1;
jmitc91516 0:a5c253316af6 1941 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height = CY2 - CY1 + 1;
jmitc91516 0:a5c253316af6 1942 break;
jmitc91516 0:a5c253316af6 1943 }
jmitc91516 0:a5c253316af6 1944 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].LineSize =
jmitc91516 0:a5c253316af6 1945 GuiConst_PIXEL_BYTE_SIZE *
jmitc91516 0:a5c253316af6 1946 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width;
jmitc91516 0:a5c253316af6 1947 sgl.CurItem.ClipRectX1 = 0;
jmitc91516 0:a5c253316af6 1948 sgl.CurItem.ClipRectY1 = 0;
jmitc91516 0:a5c253316af6 1949 sgl.CurItem.ClipRectX2 =
jmitc91516 0:a5c253316af6 1950 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width - 1;
jmitc91516 0:a5c253316af6 1951 sgl.CurItem.ClipRectY2 =
jmitc91516 0:a5c253316af6 1952 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height - 1;
jmitc91516 0:a5c253316af6 1953 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 1954 StartClipping(1);
jmitc91516 0:a5c253316af6 1955 #endif
jmitc91516 0:a5c253316af6 1956 sgl.LayerOrigoX = -sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X;
jmitc91516 0:a5c253316af6 1957 sgl.LayerOrigoY = -sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y;
jmitc91516 0:a5c253316af6 1958 sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
jmitc91516 0:a5c253316af6 1959 sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
jmitc91516 0:a5c253316af6 1960
jmitc91516 0:a5c253316af6 1961 if (GraphicsLayer_Push(sgl.GlobalGraphicsLayerIndex))
jmitc91516 0:a5c253316af6 1962 {
jmitc91516 0:a5c253316af6 1963 switch (sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].InitMode)
jmitc91516 0:a5c253316af6 1964 {
jmitc91516 0:a5c253316af6 1965 case GuiLib_GRAPHICS_LAYER_INIT_NONE:
jmitc91516 0:a5c253316af6 1966 break;
jmitc91516 0:a5c253316af6 1967
jmitc91516 0:a5c253316af6 1968 case GuiLib_GRAPHICS_LAYER_INIT_COL:
jmitc91516 0:a5c253316af6 1969 GuiLib_FillBox(
jmitc91516 0:a5c253316af6 1970 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X,
jmitc91516 0:a5c253316af6 1971 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y,
jmitc91516 0:a5c253316af6 1972 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X +
jmitc91516 0:a5c253316af6 1973 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width - 1,
jmitc91516 0:a5c253316af6 1974 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y +
jmitc91516 0:a5c253316af6 1975 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height - 1,
jmitc91516 0:a5c253316af6 1976 BackColor);
jmitc91516 0:a5c253316af6 1977 break;
jmitc91516 0:a5c253316af6 1978
jmitc91516 0:a5c253316af6 1979 case GuiLib_GRAPHICS_LAYER_INIT_COPY:
jmitc91516 0:a5c253316af6 1980 GraphicsLayer_Copy(
jmitc91516 0:a5c253316af6 1981 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].BaseAddress,
jmitc91516 0:a5c253316af6 1982 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].LineSize,
jmitc91516 0:a5c253316af6 1983 0,
jmitc91516 0:a5c253316af6 1984 0,
jmitc91516 0:a5c253316af6 1985 #ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 1986 #ifdef GuiLib_COLOR_UNIT_16
jmitc91516 0:a5c253316af6 1987 (GuiConst_INT8U*)GuiLib_DisplayBuf.Bytes,
jmitc91516 0:a5c253316af6 1988 #else
jmitc91516 0:a5c253316af6 1989 (GuiConst_INT8U*)GuiLib_DisplayBuf,
jmitc91516 0:a5c253316af6 1990 #endif
jmitc91516 0:a5c253316af6 1991 #else // GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 1992 0,
jmitc91516 0:a5c253316af6 1993 #endif // GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 1994 GuiConst_BYTES_PR_LINE,
jmitc91516 0:a5c253316af6 1995 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X,
jmitc91516 0:a5c253316af6 1996 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y,
jmitc91516 0:a5c253316af6 1997 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width,
jmitc91516 0:a5c253316af6 1998 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height);
jmitc91516 0:a5c253316af6 1999 break;
jmitc91516 0:a5c253316af6 2000 }
jmitc91516 0:a5c253316af6 2001 }
jmitc91516 0:a5c253316af6 2002 }
jmitc91516 0:a5c253316af6 2003 #endif
jmitc91516 0:a5c253316af6 2004 break;
jmitc91516 0:a5c253316af6 2005
jmitc91516 0:a5c253316af6 2006 case GuiLib_ITEM_GRAPHICSFILTER:
jmitc91516 0:a5c253316af6 2007 #ifdef GuiLib_LAYERS_SUPPORTED
jmitc91516 0:a5c253316af6 2008 if (sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 2009 {
jmitc91516 0:a5c253316af6 2010 sgl.LayerOrigoX = 0;
jmitc91516 0:a5c253316af6 2011 sgl.LayerOrigoY = 0;
jmitc91516 0:a5c253316af6 2012 sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
jmitc91516 0:a5c253316af6 2013 sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
jmitc91516 0:a5c253316af6 2014
jmitc91516 0:a5c253316af6 2015 SourceLayerIndexNo = IndexOfGraphicsLayer(
jmitc91516 0:a5c253316af6 2016 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].SourceLayerIndexNo);
jmitc91516 0:a5c253316af6 2017 DestLayerIndexNo = IndexOfGraphicsLayer(
jmitc91516 0:a5c253316af6 2018 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].DestLayerIndexNo);
jmitc91516 0:a5c253316af6 2019 if (SourceLayerIndexNo != DestLayerIndexNo)
jmitc91516 0:a5c253316af6 2020 {
jmitc91516 0:a5c253316af6 2021 if (SourceLayerIndexNo == GuiLib_GRAPHICS_LAYER_BASE)
jmitc91516 0:a5c253316af6 2022 {
jmitc91516 0:a5c253316af6 2023 #ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 2024 #ifdef GuiLib_COLOR_UNIT_16
jmitc91516 0:a5c253316af6 2025 SourceAddress = &(GuiLib_DisplayBuf.Bytes[0][0]);
jmitc91516 0:a5c253316af6 2026 #else
jmitc91516 0:a5c253316af6 2027 #ifdef GuiConst_COLOR_DEPTH_2
jmitc91516 0:a5c253316af6 2028 #ifdef GuiConst_BYTE_HORIZONTAL
jmitc91516 0:a5c253316af6 2029 #ifdef GuiConst_COLOR_PLANES_2
jmitc91516 0:a5c253316af6 2030 SourceAddress = &(GuiLib_DisplayBuf[0][0][0]);
jmitc91516 0:a5c253316af6 2031 #else
jmitc91516 0:a5c253316af6 2032 SourceAddress = &(GuiLib_DisplayBuf[0][0]);
jmitc91516 0:a5c253316af6 2033 #endif
jmitc91516 0:a5c253316af6 2034 #else
jmitc91516 0:a5c253316af6 2035 #ifdef GuiConst_COLOR_PLANES_2
jmitc91516 0:a5c253316af6 2036 SourceAddress = &(GuiLib_DisplayBuf[0][0][0]);
jmitc91516 0:a5c253316af6 2037 #else
jmitc91516 0:a5c253316af6 2038 SourceAddress = &(GuiLib_DisplayBuf[0][0]);
jmitc91516 0:a5c253316af6 2039 #endif
jmitc91516 0:a5c253316af6 2040 #endif
jmitc91516 0:a5c253316af6 2041 #else
jmitc91516 0:a5c253316af6 2042 SourceAddress = &(GuiLib_DisplayBuf[0][0]);
jmitc91516 0:a5c253316af6 2043 #endif
jmitc91516 0:a5c253316af6 2044 #endif // GuiLib_COLOR_UNIT_16
jmitc91516 0:a5c253316af6 2045 #else // GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 2046 SourceAddress = 0;
jmitc91516 0:a5c253316af6 2047 #endif // GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 2048 SourceLineSize = GuiConst_BYTES_PR_LINE;
jmitc91516 0:a5c253316af6 2049 SourceX = 0;
jmitc91516 0:a5c253316af6 2050 SourceY = 0;
jmitc91516 0:a5c253316af6 2051 SourceWidth = GuiConst_DISPLAY_WIDTH_HW;
jmitc91516 0:a5c253316af6 2052 SourceHeight = GuiConst_DISPLAY_HEIGHT_HW;
jmitc91516 0:a5c253316af6 2053 }
jmitc91516 0:a5c253316af6 2054 else
jmitc91516 0:a5c253316af6 2055 {
jmitc91516 0:a5c253316af6 2056 SourceAddress = sgl.GraphicsLayerList[SourceLayerIndexNo].BaseAddress;
jmitc91516 0:a5c253316af6 2057 SourceLineSize = sgl.GraphicsLayerList[SourceLayerIndexNo].LineSize;
jmitc91516 0:a5c253316af6 2058 SourceX = sgl.GraphicsLayerList[SourceLayerIndexNo].X;
jmitc91516 0:a5c253316af6 2059 SourceY = sgl.GraphicsLayerList[SourceLayerIndexNo].Y;
jmitc91516 0:a5c253316af6 2060 SourceWidth = sgl.GraphicsLayerList[SourceLayerIndexNo].Width;
jmitc91516 0:a5c253316af6 2061 SourceHeight = sgl.GraphicsLayerList[SourceLayerIndexNo].Height;
jmitc91516 0:a5c253316af6 2062 }
jmitc91516 0:a5c253316af6 2063 if (DestLayerIndexNo == GuiLib_GRAPHICS_LAYER_BASE)
jmitc91516 0:a5c253316af6 2064 {
jmitc91516 0:a5c253316af6 2065 #ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 2066 #ifdef GuiLib_COLOR_UNIT_16
jmitc91516 0:a5c253316af6 2067 DestAddress = &(GuiLib_DisplayBuf.Bytes[0][0]);
jmitc91516 0:a5c253316af6 2068 #else
jmitc91516 0:a5c253316af6 2069 #ifdef GuiConst_COLOR_DEPTH_2
jmitc91516 0:a5c253316af6 2070 #ifdef GuiConst_BYTE_HORIZONTAL
jmitc91516 0:a5c253316af6 2071 #ifdef GuiConst_COLOR_PLANES_2
jmitc91516 0:a5c253316af6 2072 DestAddress = &(GuiLib_DisplayBuf[0][0][0]);
jmitc91516 0:a5c253316af6 2073 #else
jmitc91516 0:a5c253316af6 2074 DestAddress = &(GuiLib_DisplayBuf[0][0]);
jmitc91516 0:a5c253316af6 2075 #endif
jmitc91516 0:a5c253316af6 2076 #else
jmitc91516 0:a5c253316af6 2077 #ifdef GuiConst_COLOR_PLANES_2
jmitc91516 0:a5c253316af6 2078 DestAddress = &(GuiLib_DisplayBuf[0][0][0]);
jmitc91516 0:a5c253316af6 2079 #else
jmitc91516 0:a5c253316af6 2080 DestAddress = &(GuiLib_DisplayBuf[0][0]);
jmitc91516 0:a5c253316af6 2081 #endif
jmitc91516 0:a5c253316af6 2082 #endif
jmitc91516 0:a5c253316af6 2083 #else
jmitc91516 0:a5c253316af6 2084 DestAddress = &(GuiLib_DisplayBuf[0][0]);
jmitc91516 0:a5c253316af6 2085 #endif
jmitc91516 0:a5c253316af6 2086 #endif
jmitc91516 0:a5c253316af6 2087 #else // GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 2088 DestAddress = 0;
jmitc91516 0:a5c253316af6 2089 #endif // GuiConst_DISPLAY_BUFFER_EASYGUI
jmitc91516 0:a5c253316af6 2090 DestLineSize = GuiConst_BYTES_PR_LINE;
jmitc91516 0:a5c253316af6 2091 DestX = SourceX;
jmitc91516 0:a5c253316af6 2092 DestY = SourceY;
jmitc91516 0:a5c253316af6 2093 DestWidth = SourceWidth;
jmitc91516 0:a5c253316af6 2094 DestHeight = SourceHeight;
jmitc91516 0:a5c253316af6 2095 }
jmitc91516 0:a5c253316af6 2096 else
jmitc91516 0:a5c253316af6 2097 {
jmitc91516 0:a5c253316af6 2098 DestAddress = sgl.GraphicsLayerList[DestLayerIndexNo].BaseAddress;
jmitc91516 0:a5c253316af6 2099 DestLineSize = sgl.GraphicsLayerList[DestLayerIndexNo].LineSize;
jmitc91516 0:a5c253316af6 2100 DestX = sgl.GraphicsLayerList[DestLayerIndexNo].X;
jmitc91516 0:a5c253316af6 2101 DestY = sgl.GraphicsLayerList[DestLayerIndexNo].Y;
jmitc91516 0:a5c253316af6 2102 DestWidth = sgl.GraphicsLayerList[DestLayerIndexNo].Width;
jmitc91516 0:a5c253316af6 2103 DestHeight = sgl.GraphicsLayerList[DestLayerIndexNo].Height;
jmitc91516 0:a5c253316af6 2104 }
jmitc91516 0:a5c253316af6 2105
jmitc91516 0:a5c253316af6 2106 if ((DestX <= SourceX) && (DestY <= SourceY) &&
jmitc91516 0:a5c253316af6 2107 (DestX + DestWidth >= SourceX + SourceWidth) &&
jmitc91516 0:a5c253316af6 2108 (DestY + DestHeight >= SourceY + SourceHeight) &&
jmitc91516 0:a5c253316af6 2109 (sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].
jmitc91516 0:a5c253316af6 2110 GraphicsFilterFunc != 0))
jmitc91516 0:a5c253316af6 2111 {
jmitc91516 0:a5c253316af6 2112 if (DestLayerIndexNo != GuiLib_GRAPHICS_LAYER_BASE)
jmitc91516 0:a5c253316af6 2113 {
jmitc91516 0:a5c253316af6 2114 DestX = SourceX - DestX;
jmitc91516 0:a5c253316af6 2115 DestY = SourceY - DestY;
jmitc91516 0:a5c253316af6 2116 }
jmitc91516 0:a5c253316af6 2117 if (SourceLayerIndexNo != GuiLib_GRAPHICS_LAYER_BASE)
jmitc91516 0:a5c253316af6 2118 {
jmitc91516 0:a5c253316af6 2119 SourceX = 0;
jmitc91516 0:a5c253316af6 2120 SourceY = 0;
jmitc91516 0:a5c253316af6 2121 }
jmitc91516 0:a5c253316af6 2122
jmitc91516 0:a5c253316af6 2123 for (I = 0; I <= 9; I++)
jmitc91516 0:a5c253316af6 2124 {
jmitc91516 0:a5c253316af6 2125 if (sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParVarType[I] ==
jmitc91516 0:a5c253316af6 2126 GuiLib_VAR_NONE)
jmitc91516 0:a5c253316af6 2127 FilterPars[I] =
jmitc91516 0:a5c253316af6 2128 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParValueNum[I];
jmitc91516 0:a5c253316af6 2129 else
jmitc91516 0:a5c253316af6 2130 FilterPars[I] = ReadVar(
jmitc91516 0:a5c253316af6 2131 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParVarPtr[I],
jmitc91516 0:a5c253316af6 2132 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParVarType[I]);
jmitc91516 0:a5c253316af6 2133 }
jmitc91516 0:a5c253316af6 2134 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].GraphicsFilterFunc(
jmitc91516 0:a5c253316af6 2135 DestAddress + DestY * DestLineSize +
jmitc91516 0:a5c253316af6 2136 DestX * GuiConst_PIXEL_BYTE_SIZE,
jmitc91516 0:a5c253316af6 2137 DestLineSize,
jmitc91516 0:a5c253316af6 2138 SourceAddress + SourceY * SourceLineSize +
jmitc91516 0:a5c253316af6 2139 SourceX * GuiConst_PIXEL_BYTE_SIZE,
jmitc91516 0:a5c253316af6 2140 SourceLineSize,
jmitc91516 0:a5c253316af6 2141 sgl.GraphicsLayerList[SourceLayerIndexNo].Width,
jmitc91516 0:a5c253316af6 2142 sgl.GraphicsLayerList[SourceLayerIndexNo].Height,
jmitc91516 0:a5c253316af6 2143 FilterPars);
jmitc91516 0:a5c253316af6 2144 }
jmitc91516 0:a5c253316af6 2145
jmitc91516 0:a5c253316af6 2146 GraphicsLayer_Pop(
jmitc91516 0:a5c253316af6 2147 sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ContAtLayerIndexNo);
jmitc91516 0:a5c253316af6 2148 MarkDisplayBoxRepaint(
jmitc91516 0:a5c253316af6 2149 DestX,
jmitc91516 0:a5c253316af6 2150 DestY,
jmitc91516 0:a5c253316af6 2151 DestX + sgl.GraphicsLayerList[SourceLayerIndexNo].Width - 1,
jmitc91516 0:a5c253316af6 2152 DestY + sgl.GraphicsLayerList[SourceLayerIndexNo].Height - 1);
jmitc91516 0:a5c253316af6 2153 }
jmitc91516 0:a5c253316af6 2154 else
jmitc91516 0:a5c253316af6 2155 GraphicsLayer_Pop(GuiLib_GRAPHICS_LAYER_BASE);
jmitc91516 0:a5c253316af6 2156
jmitc91516 0:a5c253316af6 2157 if (sgl.BaseLayerDrawing)
jmitc91516 0:a5c253316af6 2158 {
jmitc91516 0:a5c253316af6 2159 sgl.LayerOrigoX = 0;
jmitc91516 0:a5c253316af6 2160 sgl.LayerOrigoY = 0;
jmitc91516 0:a5c253316af6 2161 }
jmitc91516 0:a5c253316af6 2162 else
jmitc91516 0:a5c253316af6 2163 {
jmitc91516 0:a5c253316af6 2164 I = sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1];
jmitc91516 0:a5c253316af6 2165 sgl.LayerOrigoX = -sgl.GraphicsLayerList[I].X;
jmitc91516 0:a5c253316af6 2166 sgl.LayerOrigoY = -sgl.GraphicsLayerList[I].Y;
jmitc91516 0:a5c253316af6 2167 }
jmitc91516 0:a5c253316af6 2168 sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
jmitc91516 0:a5c253316af6 2169 sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
jmitc91516 0:a5c253316af6 2170
jmitc91516 0:a5c253316af6 2171 if (sgl.BaseLayerDrawing)
jmitc91516 0:a5c253316af6 2172 {
jmitc91516 0:a5c253316af6 2173 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 2174 StartClipping(0);
jmitc91516 0:a5c253316af6 2175 #endif
jmitc91516 0:a5c253316af6 2176 }
jmitc91516 0:a5c253316af6 2177 else
jmitc91516 0:a5c253316af6 2178 {
jmitc91516 0:a5c253316af6 2179 I = sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1];
jmitc91516 0:a5c253316af6 2180 sgl.CurItem.ClipRectX1 = 0;
jmitc91516 0:a5c253316af6 2181 sgl.CurItem.ClipRectY1 = 0;
jmitc91516 0:a5c253316af6 2182 sgl.CurItem.ClipRectX2 = sgl.GraphicsLayerList[I].Width - 1;
jmitc91516 0:a5c253316af6 2183 sgl.CurItem.ClipRectY2 = sgl.GraphicsLayerList[I].Height - 1;
jmitc91516 0:a5c253316af6 2184 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 2185 StartClipping(1);
jmitc91516 0:a5c253316af6 2186 #endif
jmitc91516 0:a5c253316af6 2187 }
jmitc91516 0:a5c253316af6 2188 }
jmitc91516 0:a5c253316af6 2189 #endif
jmitc91516 0:a5c253316af6 2190 break;
jmitc91516 0:a5c253316af6 2191 #endif
jmitc91516 0:a5c253316af6 2192 }
jmitc91516 0:a5c253316af6 2193
jmitc91516 0:a5c253316af6 2194 if (sgl.CurItem.UpdateType == GuiLib_UPDATE_ON_CHANGE)
jmitc91516 0:a5c253316af6 2195 if ((sgl.InitialDrawing) || (sgl.AutoRedrawUpdate == GuiLib_TRUE))
jmitc91516 0:a5c253316af6 2196 AutoRedraw_UpdateOnChange(sgl.AutoRedrawSaveIndex);
jmitc91516 0:a5c253316af6 2197
jmitc91516 0:a5c253316af6 2198 if (sgl.AutoRedrawSaveIndex >= 0)
jmitc91516 0:a5c253316af6 2199 AutoRedraw_UpdateDrawn(sgl.AutoRedrawSaveIndex, &sgl.CurItem);
jmitc91516 0:a5c253316af6 2200
jmitc91516 0:a5c253316af6 2201 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 2202 if (((sgl.CurItem.ItemType == GuiLib_ITEM_TEXTBLOCK) ||
jmitc91516 0:a5c253316af6 2203 (sgl.CurItem.ItemType == GuiLib_ITEM_VARBLOCK)) &&
jmitc91516 0:a5c253316af6 2204 (sgl.CurItem.CompPars.CompTextBox.ScrollIndex != 0xFF))
jmitc91516 0:a5c253316af6 2205 {
jmitc91516 0:a5c253316af6 2206 found = AutoRedraw_GetTextBox(
jmitc91516 0:a5c253316af6 2207 sgl.CurItem.CompPars.CompTextBox.ScrollIndex, -1);
jmitc91516 0:a5c253316af6 2208 if (found == -1)
jmitc91516 0:a5c253316af6 2209 {
jmitc91516 0:a5c253316af6 2210 if (sgl.AutoRedrawSaveIndex >= 0)
jmitc91516 0:a5c253316af6 2211 AutoRedraw_SetAsTextBox(sgl.AutoRedrawSaveIndex);
jmitc91516 0:a5c253316af6 2212 else
jmitc91516 0:a5c253316af6 2213 AutoRedraw_InsertTextBox(&sgl.CurItem, 0, sgl.DisplayLevel);
jmitc91516 0:a5c253316af6 2214 }
jmitc91516 0:a5c253316af6 2215
jmitc91516 0:a5c253316af6 2216 found = 0;
jmitc91516 0:a5c253316af6 2217
jmitc91516 0:a5c253316af6 2218 for (N = 0; N < GuiConst_TEXTBOX_FIELDS_MAX; N++)
jmitc91516 0:a5c253316af6 2219 {
jmitc91516 0:a5c253316af6 2220 if (sgl.TextBoxScrollPositions[N].index ==
jmitc91516 0:a5c253316af6 2221 sgl.CurItem.CompPars.CompTextBox.ScrollIndex)
jmitc91516 0:a5c253316af6 2222 {
jmitc91516 0:a5c253316af6 2223 found = 1;
jmitc91516 0:a5c253316af6 2224 break;
jmitc91516 0:a5c253316af6 2225 }
jmitc91516 0:a5c253316af6 2226 }
jmitc91516 0:a5c253316af6 2227
jmitc91516 0:a5c253316af6 2228 if (found == 0)
jmitc91516 0:a5c253316af6 2229 {
jmitc91516 0:a5c253316af6 2230 for (N = 0; N < GuiConst_TEXTBOX_FIELDS_MAX; N++)
jmitc91516 0:a5c253316af6 2231 {
jmitc91516 0:a5c253316af6 2232 if (sgl.TextBoxScrollPositions[N].index == -1)
jmitc91516 0:a5c253316af6 2233 {
jmitc91516 0:a5c253316af6 2234 sgl.TextBoxScrollPositions[N].index =
jmitc91516 0:a5c253316af6 2235 sgl.CurItem.CompPars.CompTextBox.ScrollIndex;
jmitc91516 0:a5c253316af6 2236 sgl.TextBoxScrollPositions[N].pos =
jmitc91516 0:a5c253316af6 2237 sgl.CurItem.CompPars.CompTextBox.ScrollPos;
jmitc91516 0:a5c253316af6 2238 break;
jmitc91516 0:a5c253316af6 2239 }
jmitc91516 0:a5c253316af6 2240 }
jmitc91516 0:a5c253316af6 2241 }
jmitc91516 0:a5c253316af6 2242 }
jmitc91516 0:a5c253316af6 2243 #endif
jmitc91516 0:a5c253316af6 2244
jmitc91516 0:a5c253316af6 2245 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 2246 if (sgl.InitialDrawing && IsCursorField)
jmitc91516 0:a5c253316af6 2247 sgl.CurItem.CursorFieldLevel--;
jmitc91516 0:a5c253316af6 2248
jmitc91516 0:a5c253316af6 2249 if ((ColorInvert == GuiLib_COL_INVERT_IF_CURSOR) && FoundActiveCursorField)
jmitc91516 0:a5c253316af6 2250 sgl.SwapColors = 0;
jmitc91516 0:a5c253316af6 2251 #endif
jmitc91516 0:a5c253316af6 2252
jmitc91516 0:a5c253316af6 2253 #ifdef GuiConst_REL_COORD_ORIGO_INUSE
jmitc91516 0:a5c253316af6 2254 if (!sgl.InitialDrawing)
jmitc91516 0:a5c253316af6 2255 {
jmitc91516 0:a5c253316af6 2256 sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
jmitc91516 0:a5c253316af6 2257 sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
jmitc91516 0:a5c253316af6 2258 }
jmitc91516 0:a5c253316af6 2259 #endif
jmitc91516 0:a5c253316af6 2260 #ifdef GuiConst_CLIPPING_SUPPORT_ON
jmitc91516 0:a5c253316af6 2261 if (!sgl.InitialDrawing && sgl.DisplayWriting)
jmitc91516 0:a5c253316af6 2262 GuiLib_ResetClipping();
jmitc91516 0:a5c253316af6 2263 #endif
jmitc91516 0:a5c253316af6 2264 }
jmitc91516 0:a5c253316af6 2265 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 2266 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 2267 static void ReadItem(GuiConst_INT16S LanguageIndex)
jmitc91516 0:a5c253316af6 2268 {
jmitc91516 0:a5c253316af6 2269 GuiConst_INT16S X;
jmitc91516 0:a5c253316af6 2270 GuiConst_INT16S N;
jmitc91516 0:a5c253316af6 2271 GuiConst_INT16S I,J;
jmitc91516 0:a5c253316af6 2272 GuiConst_INTCOLOR TmpForeColor, TmpBackColor;
jmitc91516 0:a5c253316af6 2273 GuiConst_INTCOLOR PrefixLocate *ColVarPtr;
jmitc91516 0:a5c253316af6 2274 GuiConst_INT16U ColVarPtrIdx, PtrIdx;
jmitc91516 0:a5c253316af6 2275 GuiConst_INT16U TmpColIdx;
jmitc91516 0:a5c253316af6 2276 GuiConst_INT16U TmpForeColIdx;
jmitc91516 0:a5c253316af6 2277 #ifdef GuiConst_ADV_CONTROLS
jmitc91516 0:a5c253316af6 2278 GuiConst_INT16U TmpBackColIdx;
jmitc91516 0:a5c253316af6 2279 #endif
jmitc91516 0:a5c253316af6 2280 GuiConst_INT8U B1;
jmitc91516 0:a5c253316af6 2281 GuiConst_INT16U W1;
jmitc91516 0:a5c253316af6 2282 #ifdef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 2283 GuiConst_INT16U Ti;
jmitc91516 0:a5c253316af6 2284 #endif
jmitc91516 0:a5c253316af6 2285 GuiConst_INT16U TxtSize;
jmitc91516 0:a5c253316af6 2286 #ifndef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 2287 GuiConst_INT16U TxtSum1, TxtSum2;
jmitc91516 0:a5c253316af6 2288 #endif
jmitc91516 0:a5c253316af6 2289 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 2290 GuiConst_INT16U TxtReadSize;
jmitc91516 0:a5c253316af6 2291 #endif
jmitc91516 0:a5c253316af6 2292 #ifdef GuiConst_BLINK_SUPPORT_ON
jmitc91516 0:a5c253316af6 2293 GuiConst_INT8S BS2;
jmitc91516 0:a5c253316af6 2294 #endif
jmitc91516 0:a5c253316af6 2295 #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
jmitc91516 0:a5c253316af6 2296 GuiConst_INT8U ScrollBoxIndex;
jmitc91516 0:a5c253316af6 2297 #ifndef GuiConst_SCROLLITEM_BAR_NONE
jmitc91516 0:a5c253316af6 2298 #ifdef GuiConst_REMOTE_BITMAP_DATA
jmitc91516 0:a5c253316af6 2299 GuiConst_INT8U * PixelDataPtr;
jmitc91516 0:a5c253316af6 2300 GuiConst_INT8U BitmapHeader[4];
jmitc91516 0:a5c253316af6 2301 #else
jmitc91516 0:a5c253316af6 2302 GuiConst_INT8U PrefixRom * PixelDataPtr;
jmitc91516 0:a5c253316af6 2303 #endif // GuiConst_REMOTE_BITMAP_DATA
jmitc91516 0:a5c253316af6 2304 #endif // GuiConst_SCROLLITEM_BAR_NONE
jmitc91516 0:a5c253316af6 2305 #endif // GuiConst_ITEM_SCROLLBOX_INUSE
jmitc91516 0:a5c253316af6 2306 #ifdef GuiConst_ADV_COMPONENTS
jmitc91516 0:a5c253316af6 2307 GuiConst_INT8U L;
jmitc91516 0:a5c253316af6 2308 #endif
jmitc91516 0:a5c253316af6 2309 #ifdef GuiConst_ITEM_GRAPH_INUSE
jmitc91516 0:a5c253316af6 2310 GuiConst_INT8U GraphIndex;
jmitc91516 0:a5c253316af6 2311 GuiConst_INT8U Axis;
jmitc91516 0:a5c253316af6 2312 GuiConst_INT8U B;
jmitc91516 0:a5c253316af6 2313 #endif
jmitc91516 0:a5c253316af6 2314 #ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
jmitc91516 0:a5c253316af6 2315 GuiConst_INT8U GraphicsLayerIndex;
jmitc91516 0:a5c253316af6 2316 GuiConst_INT8U GraphicsFilterIndex;
jmitc91516 0:a5c253316af6 2317 #endif
jmitc91516 0:a5c253316af6 2318 #ifdef GuiConst_ITEM_STRUCTCOND_INUSE
jmitc91516 0:a5c253316af6 2319 GuiConst_INT16U CondI;
jmitc91516 0:a5c253316af6 2320 #endif
jmitc91516 0:a5c253316af6 2321 GuiConst_INT8U ColMemoryFore;
jmitc91516 0:a5c253316af6 2322 GuiConst_INT8U ColMemoryBack;
jmitc91516 0:a5c253316af6 2323
jmitc91516 0:a5c253316af6 2324 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_INUSE;
jmitc91516 0:a5c253316af6 2325
jmitc91516 0:a5c253316af6 2326 #ifdef GuiConst_REL_COORD_ORIGO_INUSE
jmitc91516 0:a5c253316af6 2327 if (sgl.DisplayLevel == 0)
jmitc91516 0:a5c253316af6 2328 {
jmitc91516 0:a5c253316af6 2329 sgl.CurItem.CoordOrigoX = sgl.CoordOrigoX;
jmitc91516 0:a5c253316af6 2330 sgl.CurItem.CoordOrigoY = sgl.CoordOrigoY;
jmitc91516 0:a5c253316af6 2331 }
jmitc91516 0:a5c253316af6 2332 #endif
jmitc91516 0:a5c253316af6 2333
jmitc91516 0:a5c253316af6 2334 sgl.CommonByte0 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2335 sgl.CommonByte1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2336 sgl.CommonByte2 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2337 sgl.CommonByte3 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2338 sgl.CommonByte4 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2339 sgl.CommonByte5 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2340 sgl.CommonByte6 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2341 sgl.CommonByte7 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2342
jmitc91516 0:a5c253316af6 2343 sgl.CurItem.ItemType = sgl.CommonByte0 & 0x3F;
jmitc91516 0:a5c253316af6 2344 if (sgl.CurItem.ItemType < 32)
jmitc91516 0:a5c253316af6 2345 sgl.ItemTypeBit1 = (GuiConst_INT32U)0x00000001 << (sgl.CurItem.ItemType & 0x1F);
jmitc91516 0:a5c253316af6 2346 else
jmitc91516 0:a5c253316af6 2347 sgl.ItemTypeBit1 = 0;
jmitc91516 0:a5c253316af6 2348 if (sgl.CurItem.ItemType >= 32)
jmitc91516 0:a5c253316af6 2349 sgl.ItemTypeBit2 = (GuiConst_INT32U)0x00000001 << (sgl.CurItem.ItemType - 32);
jmitc91516 0:a5c253316af6 2350 else
jmitc91516 0:a5c253316af6 2351 sgl.ItemTypeBit2 = 0;
jmitc91516 0:a5c253316af6 2352
jmitc91516 0:a5c253316af6 2353 if (sgl.CommonByte7 & 0x20)
jmitc91516 0:a5c253316af6 2354 {
jmitc91516 0:a5c253316af6 2355 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2356 if (B1 & 0x01)
jmitc91516 0:a5c253316af6 2357 sgl.CurItem.ForeColorEnhance = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2358 if (B1 & 0x02)
jmitc91516 0:a5c253316af6 2359 sgl.CurItem.BackColorEnhance = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2360 if (B1 & 0x04)
jmitc91516 0:a5c253316af6 2361 sgl.CurItem.BarForeColorEnhance = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2362 if (B1 & 0x08)
jmitc91516 0:a5c253316af6 2363 sgl.CurItem.BarBackColorEnhance = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2364 }
jmitc91516 0:a5c253316af6 2365 else
jmitc91516 0:a5c253316af6 2366 {
jmitc91516 0:a5c253316af6 2367 sgl.CurItem.ForeColorEnhance = 0;
jmitc91516 0:a5c253316af6 2368 sgl.CurItem.BackColorEnhance = 0;
jmitc91516 0:a5c253316af6 2369 sgl.CurItem.BarForeColorEnhance = 0;
jmitc91516 0:a5c253316af6 2370 sgl.CurItem.BarBackColorEnhance = 0;
jmitc91516 0:a5c253316af6 2371 }
jmitc91516 0:a5c253316af6 2372 if (sgl.CommonByte7 & 0x40)
jmitc91516 0:a5c253316af6 2373 {
jmitc91516 0:a5c253316af6 2374 ColMemoryFore = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2375 ColMemoryBack = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2376 }
jmitc91516 0:a5c253316af6 2377 else
jmitc91516 0:a5c253316af6 2378 {
jmitc91516 0:a5c253316af6 2379 ColMemoryFore = 0;
jmitc91516 0:a5c253316af6 2380 ColMemoryBack = 0;
jmitc91516 0:a5c253316af6 2381 }
jmitc91516 0:a5c253316af6 2382
jmitc91516 0:a5c253316af6 2383 TmpForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 2384 TmpForeColIdx = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 2385
jmitc91516 0:a5c253316af6 2386 TmpBackColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 2387 #ifdef GuiConst_ADV_CONTROLS
jmitc91516 0:a5c253316af6 2388 TmpBackColIdx = sgl.CurItem.BackColorIndex;
jmitc91516 0:a5c253316af6 2389 #endif
jmitc91516 0:a5c253316af6 2390
jmitc91516 0:a5c253316af6 2391 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2392 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 2393 GuiLib_ITEMBIT_DOT +
jmitc91516 0:a5c253316af6 2394 GuiLib_ITEMBIT_LINE +
jmitc91516 0:a5c253316af6 2395 GuiLib_ITEMBIT_FRAME +
jmitc91516 0:a5c253316af6 2396 GuiLib_ITEMBIT_BLOCK +
jmitc91516 0:a5c253316af6 2397 GuiLib_ITEMBIT_CIRCLE +
jmitc91516 0:a5c253316af6 2398 GuiLib_ITEMBIT_ELLIPSE +
jmitc91516 0:a5c253316af6 2399 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2400 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2401 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 2402 GuiLib_ITEMBIT_VARBLOCK +
jmitc91516 0:a5c253316af6 2403 GuiLib_ITEMBIT_SCROLLBOX +
jmitc91516 0:a5c253316af6 2404 GuiLib_ITEMBIT_GRAPH)) ||
jmitc91516 0:a5c253316af6 2405 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
jmitc91516 0:a5c253316af6 2406 GuiLib_ITEMBIT_ROUNDEDBLOCK +
jmitc91516 0:a5c253316af6 2407 GuiLib_ITEMBIT_QUARTERCIRCLE +
jmitc91516 0:a5c253316af6 2408 GuiLib_ITEMBIT_QUARTERELLIPSE +
jmitc91516 0:a5c253316af6 2409 GuiLib_ITEMBIT_CHECKBOX +
jmitc91516 0:a5c253316af6 2410 GuiLib_ITEMBIT_RADIOBUTTON +
jmitc91516 0:a5c253316af6 2411 GuiLib_ITEMBIT_BUTTON +
jmitc91516 0:a5c253316af6 2412 GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 2413 GuiLib_ITEMBIT_PANEL +
jmitc91516 0:a5c253316af6 2414 GuiLib_ITEMBIT_MEMO +
jmitc91516 0:a5c253316af6 2415 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 2416 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 2417 GuiLib_ITEMBIT_SCROLLAREA +
jmitc91516 0:a5c253316af6 2418 GuiLib_ITEMBIT_PROGRESSBAR +
jmitc91516 0:a5c253316af6 2419 GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2420 {
jmitc91516 0:a5c253316af6 2421 B1 = ColMemoryFore & 0x03;
jmitc91516 0:a5c253316af6 2422 if (B1)
jmitc91516 0:a5c253316af6 2423 {
jmitc91516 0:a5c253316af6 2424 sgl.CurItem.ForeColor = sgl.Memory.C[B1-1];
jmitc91516 0:a5c253316af6 2425 sgl.CurItem.ForeColorIndex = sgl.ColMemoryIndex[B1-1];
jmitc91516 0:a5c253316af6 2426 }
jmitc91516 0:a5c253316af6 2427 else
jmitc91516 0:a5c253316af6 2428 {
jmitc91516 0:a5c253316af6 2429 TmpColIdx = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 2430 sgl.CurItem.ForeColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 2431 switch (sgl.CommonByte3 & 0x07)
jmitc91516 0:a5c253316af6 2432 {
jmitc91516 0:a5c253316af6 2433 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 2434 sgl.CurItem.ForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2435 break;
jmitc91516 0:a5c253316af6 2436 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 2437 sgl.CurItem.ForeColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 2438 break;
jmitc91516 0:a5c253316af6 2439 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 2440 sgl.CurItem.ForeColor = (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2441 break;
jmitc91516 0:a5c253316af6 2442 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 2443 sgl.CurItem.ForeColor = TmpBackColor;
jmitc91516 0:a5c253316af6 2444 break;
jmitc91516 0:a5c253316af6 2445 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 2446 sgl.CurItem.ForeColor =
jmitc91516 0:a5c253316af6 2447 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 2448 break;
jmitc91516 0:a5c253316af6 2449 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 2450 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2451 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2452 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 2453 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 2454 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 2455 {
jmitc91516 0:a5c253316af6 2456 sgl.CurItem.ForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2457 }
jmitc91516 0:a5c253316af6 2458 else
jmitc91516 0:a5c253316af6 2459 {
jmitc91516 0:a5c253316af6 2460 sgl.CurItem.ForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 2461 sgl.CurItem.ForeColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 2462 }
jmitc91516 0:a5c253316af6 2463 break;
jmitc91516 0:a5c253316af6 2464 default:
jmitc91516 0:a5c253316af6 2465 sgl.CurItem.ForeColorIndex = TmpColIdx;
jmitc91516 0:a5c253316af6 2466 break;
jmitc91516 0:a5c253316af6 2467 }
jmitc91516 0:a5c253316af6 2468 }
jmitc91516 0:a5c253316af6 2469 if (sgl.CurItem.ForeColorEnhance > 0)
jmitc91516 0:a5c253316af6 2470 sgl.CurItem.ForeColor = GuiLib_BrightenPixelColor(
jmitc91516 0:a5c253316af6 2471 sgl.CurItem.ForeColor, sgl.CurItem.ForeColorEnhance);
jmitc91516 0:a5c253316af6 2472 else if (sgl.CurItem.ForeColorEnhance < 0)
jmitc91516 0:a5c253316af6 2473 sgl.CurItem.ForeColor = GuiLib_DarkenPixelColor(
jmitc91516 0:a5c253316af6 2474 sgl.CurItem.ForeColor, -sgl.CurItem.ForeColorEnhance);
jmitc91516 0:a5c253316af6 2475
jmitc91516 0:a5c253316af6 2476 B1 = ColMemoryFore & 0x30;
jmitc91516 0:a5c253316af6 2477 if (B1)
jmitc91516 0:a5c253316af6 2478 {
jmitc91516 0:a5c253316af6 2479 sgl.CurItem.BarForeColor = sgl.Memory.C[B1-1];
jmitc91516 0:a5c253316af6 2480 sgl.CurItem.BarForeColorIndex = sgl.ColMemoryIndex[B1-1];
jmitc91516 0:a5c253316af6 2481 }
jmitc91516 0:a5c253316af6 2482 else
jmitc91516 0:a5c253316af6 2483 {
jmitc91516 0:a5c253316af6 2484 TmpColIdx = sgl.CurItem.BarForeColorIndex;
jmitc91516 0:a5c253316af6 2485 sgl.CurItem.BarForeColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 2486 switch ((sgl.CommonByte5 >> 1) & 0x07)
jmitc91516 0:a5c253316af6 2487 {
jmitc91516 0:a5c253316af6 2488 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 2489 sgl.CurItem.BarForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2490 break;
jmitc91516 0:a5c253316af6 2491 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 2492 sgl.CurItem.BarForeColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 2493 break;
jmitc91516 0:a5c253316af6 2494 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 2495 sgl.CurItem.BarForeColor = (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2496 break;
jmitc91516 0:a5c253316af6 2497 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 2498 sgl.CurItem.BarForeColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 2499 break;
jmitc91516 0:a5c253316af6 2500 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 2501 sgl.CurItem.BarForeColor =
jmitc91516 0:a5c253316af6 2502 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 2503 break;
jmitc91516 0:a5c253316af6 2504 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 2505 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2506 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2507 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 2508 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 2509 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 2510 {
jmitc91516 0:a5c253316af6 2511 sgl.CurItem.BarForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2512 }
jmitc91516 0:a5c253316af6 2513 else
jmitc91516 0:a5c253316af6 2514 {
jmitc91516 0:a5c253316af6 2515 sgl.CurItem.BarForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 2516 sgl.CurItem.BarForeColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 2517 }
jmitc91516 0:a5c253316af6 2518 break;
jmitc91516 0:a5c253316af6 2519 default:
jmitc91516 0:a5c253316af6 2520 sgl.CurItem.BarForeColorIndex = TmpColIdx;
jmitc91516 0:a5c253316af6 2521 break;
jmitc91516 0:a5c253316af6 2522 }
jmitc91516 0:a5c253316af6 2523 }
jmitc91516 0:a5c253316af6 2524 if (sgl.CurItem.BarForeColorEnhance > 0)
jmitc91516 0:a5c253316af6 2525 sgl.CurItem.BarForeColor = GuiLib_BrightenPixelColor(
jmitc91516 0:a5c253316af6 2526 sgl.CurItem.BarForeColor, sgl.CurItem.BarForeColorEnhance);
jmitc91516 0:a5c253316af6 2527 else if (sgl.CurItem.BarForeColorEnhance < 0)
jmitc91516 0:a5c253316af6 2528 sgl.CurItem.BarForeColor = GuiLib_DarkenPixelColor(
jmitc91516 0:a5c253316af6 2529 sgl.CurItem.BarForeColor, -sgl.CurItem.BarForeColorEnhance);
jmitc91516 0:a5c253316af6 2530 }
jmitc91516 0:a5c253316af6 2531
jmitc91516 0:a5c253316af6 2532 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
jmitc91516 0:a5c253316af6 2533 GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2534 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 2535 GuiLib_ITEMBIT_FRAME +
jmitc91516 0:a5c253316af6 2536 GuiLib_ITEMBIT_CIRCLE +
jmitc91516 0:a5c253316af6 2537 GuiLib_ITEMBIT_ELLIPSE +
jmitc91516 0:a5c253316af6 2538 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2539 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2540 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 2541 GuiLib_ITEMBIT_VARBLOCK +
jmitc91516 0:a5c253316af6 2542 GuiLib_ITEMBIT_SCROLLBOX +
jmitc91516 0:a5c253316af6 2543 GuiLib_ITEMBIT_GRAPH +
jmitc91516 0:a5c253316af6 2544 GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
jmitc91516 0:a5c253316af6 2545 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
jmitc91516 0:a5c253316af6 2546 GuiLib_ITEMBIT_QUARTERCIRCLE +
jmitc91516 0:a5c253316af6 2547 GuiLib_ITEMBIT_QUARTERELLIPSE +
jmitc91516 0:a5c253316af6 2548 GuiLib_ITEMBIT_CHECKBOX +
jmitc91516 0:a5c253316af6 2549 GuiLib_ITEMBIT_RADIOBUTTON +
jmitc91516 0:a5c253316af6 2550 GuiLib_ITEMBIT_BUTTON +
jmitc91516 0:a5c253316af6 2551 GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 2552 GuiLib_ITEMBIT_PANEL +
jmitc91516 0:a5c253316af6 2553 GuiLib_ITEMBIT_MEMO +
jmitc91516 0:a5c253316af6 2554 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 2555 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 2556 GuiLib_ITEMBIT_SCROLLAREA +
jmitc91516 0:a5c253316af6 2557 GuiLib_ITEMBIT_PROGRESSBAR +
jmitc91516 0:a5c253316af6 2558 GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2559 {
jmitc91516 0:a5c253316af6 2560 B1 = ColMemoryBack & 0x03;
jmitc91516 0:a5c253316af6 2561 if (B1)
jmitc91516 0:a5c253316af6 2562 {
jmitc91516 0:a5c253316af6 2563 sgl.CurItem.BackColor = sgl.Memory.C[B1-1];
jmitc91516 0:a5c253316af6 2564 sgl.CurItem.BackColorIndex = sgl.ColMemoryIndex[B1-1];
jmitc91516 0:a5c253316af6 2565 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2566 }
jmitc91516 0:a5c253316af6 2567 else
jmitc91516 0:a5c253316af6 2568 {
jmitc91516 0:a5c253316af6 2569 TmpColIdx = sgl.CurItem.BackColorIndex;
jmitc91516 0:a5c253316af6 2570 sgl.CurItem.BackColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 2571 switch ((sgl.CommonByte3 >> 3) & 0x07)
jmitc91516 0:a5c253316af6 2572 {
jmitc91516 0:a5c253316af6 2573 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 2574 sgl.CurItem.BackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2575 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2576 break;
jmitc91516 0:a5c253316af6 2577 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 2578 sgl.CurItem.BackColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 2579 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2580 break;
jmitc91516 0:a5c253316af6 2581 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 2582 sgl.CurItem.BackColor = GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2583 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2584 break;
jmitc91516 0:a5c253316af6 2585 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 2586 sgl.CurItem.BackColor = TmpForeColor;
jmitc91516 0:a5c253316af6 2587 sgl.CurItem.BackColorIndex = TmpForeColIdx;
jmitc91516 0:a5c253316af6 2588 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2589 break;
jmitc91516 0:a5c253316af6 2590 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 2591 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2592 break;
jmitc91516 0:a5c253316af6 2593 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 2594 sgl.CurItem.BackColor =
jmitc91516 0:a5c253316af6 2595 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 2596 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2597 break;
jmitc91516 0:a5c253316af6 2598 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 2599 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2600 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2601 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 2602 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 2603 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 2604 {
jmitc91516 0:a5c253316af6 2605 sgl.CurItem.BackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2606 }
jmitc91516 0:a5c253316af6 2607 else
jmitc91516 0:a5c253316af6 2608 {
jmitc91516 0:a5c253316af6 2609 sgl.CurItem.BackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 2610 sgl.CurItem.BackColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 2611 }
jmitc91516 0:a5c253316af6 2612 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
jmitc91516 0:a5c253316af6 2613 break;
jmitc91516 0:a5c253316af6 2614 default:
jmitc91516 0:a5c253316af6 2615 sgl.CurItem.BackColorIndex = TmpColIdx;
jmitc91516 0:a5c253316af6 2616 break;
jmitc91516 0:a5c253316af6 2617 }
jmitc91516 0:a5c253316af6 2618 }
jmitc91516 0:a5c253316af6 2619 if (sgl.CurItem.BackColorEnhance > 0)
jmitc91516 0:a5c253316af6 2620 sgl.CurItem.BackColor = GuiLib_BrightenPixelColor(
jmitc91516 0:a5c253316af6 2621 sgl.CurItem.BackColor, sgl.CurItem.BackColorEnhance);
jmitc91516 0:a5c253316af6 2622 else if (sgl.CurItem.BackColorEnhance < 0)
jmitc91516 0:a5c253316af6 2623 sgl.CurItem.BackColor = GuiLib_DarkenPixelColor(
jmitc91516 0:a5c253316af6 2624 sgl.CurItem.BackColor, -sgl.CurItem.BackColorEnhance);
jmitc91516 0:a5c253316af6 2625
jmitc91516 0:a5c253316af6 2626 B1 = ColMemoryBack & 0x30;
jmitc91516 0:a5c253316af6 2627 if (B1)
jmitc91516 0:a5c253316af6 2628 {
jmitc91516 0:a5c253316af6 2629 sgl.CurItem.BarBackColor = sgl.Memory.C[B1-1];
jmitc91516 0:a5c253316af6 2630 sgl.CurItem.BarBackColorIndex = sgl.ColMemoryIndex[B1-1];
jmitc91516 0:a5c253316af6 2631 }
jmitc91516 0:a5c253316af6 2632 else
jmitc91516 0:a5c253316af6 2633 {
jmitc91516 0:a5c253316af6 2634 TmpColIdx = sgl.CurItem.BarBackColorIndex;
jmitc91516 0:a5c253316af6 2635 sgl.CurItem.BarBackColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 2636 switch ((sgl.CommonByte5 >> 4) & 0x07)
jmitc91516 0:a5c253316af6 2637 {
jmitc91516 0:a5c253316af6 2638 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 2639 sgl.CurItem.BarBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2640 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2641 break;
jmitc91516 0:a5c253316af6 2642 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 2643 sgl.CurItem.BarBackColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 2644 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2645 break;
jmitc91516 0:a5c253316af6 2646 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 2647 sgl.CurItem.BarBackColor = GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2648 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2649 break;
jmitc91516 0:a5c253316af6 2650 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 2651 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2652 sgl.CurItem.BarBackColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 2653 break;
jmitc91516 0:a5c253316af6 2654 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 2655 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2656 break;
jmitc91516 0:a5c253316af6 2657 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 2658 sgl.CurItem.BarBackColor =
jmitc91516 0:a5c253316af6 2659 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 2660 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2661 break;
jmitc91516 0:a5c253316af6 2662 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 2663 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2664 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2665 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 2666 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 2667 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 2668 {
jmitc91516 0:a5c253316af6 2669 sgl.CurItem.BarBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 2670 }
jmitc91516 0:a5c253316af6 2671 else
jmitc91516 0:a5c253316af6 2672 {
jmitc91516 0:a5c253316af6 2673 sgl.CurItem.BarBackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 2674 sgl.CurItem.BarBackColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 2675 }
jmitc91516 0:a5c253316af6 2676 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
jmitc91516 0:a5c253316af6 2677 break;
jmitc91516 0:a5c253316af6 2678 default:
jmitc91516 0:a5c253316af6 2679 sgl.CurItem.BarBackColorIndex = TmpColIdx;
jmitc91516 0:a5c253316af6 2680 break;
jmitc91516 0:a5c253316af6 2681 }
jmitc91516 0:a5c253316af6 2682 }
jmitc91516 0:a5c253316af6 2683 if (sgl.CurItem.BarBackColorEnhance > 0)
jmitc91516 0:a5c253316af6 2684 sgl.CurItem.BarBackColor = GuiLib_BrightenPixelColor(
jmitc91516 0:a5c253316af6 2685 sgl.CurItem.BarBackColor, sgl.CurItem.BarBackColorEnhance);
jmitc91516 0:a5c253316af6 2686 else if (sgl.CurItem.BarBackColorEnhance < 0)
jmitc91516 0:a5c253316af6 2687 sgl.CurItem.BarBackColor = GuiLib_DarkenPixelColor(
jmitc91516 0:a5c253316af6 2688 sgl.CurItem.BarBackColor, -sgl.CurItem.BarBackColorEnhance);
jmitc91516 0:a5c253316af6 2689 }
jmitc91516 0:a5c253316af6 2690
jmitc91516 0:a5c253316af6 2691 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 2692 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 2693 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_BITMAP +
jmitc91516 0:a5c253316af6 2694 GuiLib_ITEMBIT_BACKGROUND)) &&
jmitc91516 0:a5c253316af6 2695 (sgl.CommonByte6 & 0x02))
jmitc91516 0:a5c253316af6 2696 sgl.CurItem.CompPars.CompBitmap.TranspColor = (sgl.CommonByte6 >> 2) & 0x01;
jmitc91516 0:a5c253316af6 2697 #endif
jmitc91516 0:a5c253316af6 2698 #else
jmitc91516 0:a5c253316af6 2699 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 2700 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_BITMAP +
jmitc91516 0:a5c253316af6 2701 GuiLib_ITEMBIT_BACKGROUND)) &&
jmitc91516 0:a5c253316af6 2702 (sgl.CommonByte6 & 0x02))
jmitc91516 0:a5c253316af6 2703 {
jmitc91516 0:a5c253316af6 2704 sgl.CurItem.CompPars.CompBitmap.TranspColor = GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2705 }
jmitc91516 0:a5c253316af6 2706 #endif
jmitc91516 0:a5c253316af6 2707 #endif
jmitc91516 0:a5c253316af6 2708
jmitc91516 0:a5c253316af6 2709 B1 = ColMemoryFore & 0x0C;
jmitc91516 0:a5c253316af6 2710 if (B1)
jmitc91516 0:a5c253316af6 2711 {
jmitc91516 0:a5c253316af6 2712 sgl.Memory.C[B1 - 1] = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 2713 sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 2714 }
jmitc91516 0:a5c253316af6 2715 B1 = ColMemoryFore & 0xC0;
jmitc91516 0:a5c253316af6 2716 if (B1)
jmitc91516 0:a5c253316af6 2717 {
jmitc91516 0:a5c253316af6 2718 sgl.Memory.C[B1 - 1] = sgl.CurItem.BarForeColor;
jmitc91516 0:a5c253316af6 2719 sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.BarForeColorIndex;
jmitc91516 0:a5c253316af6 2720 }
jmitc91516 0:a5c253316af6 2721 B1 = ColMemoryBack & 0x0C;
jmitc91516 0:a5c253316af6 2722 if (B1)
jmitc91516 0:a5c253316af6 2723 {
jmitc91516 0:a5c253316af6 2724 sgl.Memory.C[B1 - 1] = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 2725 sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.BackColorIndex;
jmitc91516 0:a5c253316af6 2726 }
jmitc91516 0:a5c253316af6 2727 B1 = ColMemoryBack & 0xC0;
jmitc91516 0:a5c253316af6 2728 if (B1)
jmitc91516 0:a5c253316af6 2729 {
jmitc91516 0:a5c253316af6 2730 sgl.Memory.C[B1 - 1] = sgl.CurItem.BarBackColor;
jmitc91516 0:a5c253316af6 2731 sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.BarBackColorIndex;
jmitc91516 0:a5c253316af6 2732 }
jmitc91516 0:a5c253316af6 2733
jmitc91516 0:a5c253316af6 2734 if (sgl.CommonByte0 & 0x40)
jmitc91516 0:a5c253316af6 2735 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2736 else
jmitc91516 0:a5c253316af6 2737 B1 = 0;
jmitc91516 0:a5c253316af6 2738 sgl.X1MemoryRead = B1 & 0x03;
jmitc91516 0:a5c253316af6 2739 sgl.X1MemoryWrite = (B1 >> 2) & 0x03;
jmitc91516 0:a5c253316af6 2740 sgl.Y1MemoryRead = (B1 >> 4) & 0x03;
jmitc91516 0:a5c253316af6 2741 sgl.Y1MemoryWrite = (B1 >> 6) & 0x03;
jmitc91516 0:a5c253316af6 2742 if (sgl.CommonByte0 & 0x80)
jmitc91516 0:a5c253316af6 2743 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2744 else
jmitc91516 0:a5c253316af6 2745 B1 = 0;
jmitc91516 0:a5c253316af6 2746 sgl.X2MemoryRead = B1 & 0x03;
jmitc91516 0:a5c253316af6 2747 sgl.X2MemoryWrite = (B1 >> 2) & 0x03;
jmitc91516 0:a5c253316af6 2748 sgl.Y2MemoryRead = (B1 >> 4) & 0x03;
jmitc91516 0:a5c253316af6 2749 sgl.Y2MemoryWrite = (B1 >> 6) & 0x03;
jmitc91516 0:a5c253316af6 2750 if (sgl.CommonByte7 & 0x01)
jmitc91516 0:a5c253316af6 2751 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2752 else
jmitc91516 0:a5c253316af6 2753 B1 = 0;
jmitc91516 0:a5c253316af6 2754 sgl.R1MemoryRead = B1 & 0x03;
jmitc91516 0:a5c253316af6 2755 sgl.R1MemoryWrite = (B1 >> 2) & 0x03;
jmitc91516 0:a5c253316af6 2756 sgl.R2MemoryRead = (B1 >> 4) & 0x03;
jmitc91516 0:a5c253316af6 2757 sgl.R2MemoryWrite = (B1 >> 6) & 0x03;
jmitc91516 0:a5c253316af6 2758 if (sgl.CommonByte7 & 0x80)
jmitc91516 0:a5c253316af6 2759 {
jmitc91516 0:a5c253316af6 2760 if (sgl.X1MemoryRead)
jmitc91516 0:a5c253316af6 2761 sgl.X1MemoryRead += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2762 if (sgl.X1MemoryWrite)
jmitc91516 0:a5c253316af6 2763 sgl.X1MemoryWrite += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2764 if (sgl.Y1MemoryRead)
jmitc91516 0:a5c253316af6 2765 sgl.Y1MemoryRead += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2766 if (sgl.Y1MemoryWrite)
jmitc91516 0:a5c253316af6 2767 sgl.Y1MemoryWrite += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2768 if (sgl.X2MemoryRead)
jmitc91516 0:a5c253316af6 2769 sgl.X2MemoryRead += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2770 if (sgl.X2MemoryWrite)
jmitc91516 0:a5c253316af6 2771 sgl.X2MemoryWrite += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2772 if (sgl.Y2MemoryRead)
jmitc91516 0:a5c253316af6 2773 sgl.Y2MemoryRead += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2774 if (sgl.Y2MemoryWrite)
jmitc91516 0:a5c253316af6 2775 sgl.Y2MemoryWrite += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2776 if (sgl.R1MemoryRead)
jmitc91516 0:a5c253316af6 2777 sgl.R1MemoryRead += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2778 if (sgl.R1MemoryWrite)
jmitc91516 0:a5c253316af6 2779 sgl.R1MemoryWrite += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2780 if (sgl.R2MemoryRead)
jmitc91516 0:a5c253316af6 2781 sgl.R2MemoryRead += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2782 if (sgl.R2MemoryWrite)
jmitc91516 0:a5c253316af6 2783 sgl.R2MemoryWrite += GuiLib_MEMORY_CNT;
jmitc91516 0:a5c253316af6 2784 }
jmitc91516 0:a5c253316af6 2785
jmitc91516 0:a5c253316af6 2786 if (sgl.CommonByte6 & 0x01)
jmitc91516 0:a5c253316af6 2787 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2788 else
jmitc91516 0:a5c253316af6 2789 B1 = 0;
jmitc91516 0:a5c253316af6 2790 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2791 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 2792 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2793 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2794 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 2795 GuiLib_ITEMBIT_VARBLOCK)) ||
jmitc91516 0:a5c253316af6 2796 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2797 sgl.CurItem.TextPar[0].BackBorderPixels = B1;
jmitc91516 0:a5c253316af6 2798 else
jmitc91516 0:a5c253316af6 2799 sgl.CurItem.TextPar[0].BackBorderPixels = 0;
jmitc91516 0:a5c253316af6 2800
jmitc91516 0:a5c253316af6 2801 if (sgl.CommonByte6 & 0x08)
jmitc91516 0:a5c253316af6 2802 {
jmitc91516 0:a5c253316af6 2803 N = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2804 sgl.CurItem.TextPar[0].BackBoxSizeY1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2805 sgl.CurItem.TextPar[0].BackBoxSizeY2 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2806 }
jmitc91516 0:a5c253316af6 2807 else
jmitc91516 0:a5c253316af6 2808 N = 0;
jmitc91516 0:a5c253316af6 2809 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2810 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2811 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2812 GuiLib_ITEMBIT_VAR)) ||
jmitc91516 0:a5c253316af6 2813 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2814 sgl.CurItem.TextPar[0].BackBoxSizeX = N;
jmitc91516 0:a5c253316af6 2815 else
jmitc91516 0:a5c253316af6 2816 sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
jmitc91516 0:a5c253316af6 2817 #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
jmitc91516 0:a5c253316af6 2818 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_SCROLLBOX)
jmitc91516 0:a5c253316af6 2819 {
jmitc91516 0:a5c253316af6 2820 if (sgl.NextScrollLineReading)
jmitc91516 0:a5c253316af6 2821 if (sgl.CommonByte6 & 0x08)
jmitc91516 0:a5c253316af6 2822 {
jmitc91516 0:a5c253316af6 2823 sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].LineSizeX =
jmitc91516 0:a5c253316af6 2824 sgl.CurItem.TextPar[0].BackBoxSizeX;
jmitc91516 0:a5c253316af6 2825 sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].LineSizeY =
jmitc91516 0:a5c253316af6 2826 sgl.CurItem.TextPar[0].BackBoxSizeY1;
jmitc91516 0:a5c253316af6 2827 sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].LineSizeY2 =
jmitc91516 0:a5c253316af6 2828 sgl.CurItem.TextPar[0].BackBoxSizeY2;
jmitc91516 0:a5c253316af6 2829 }
jmitc91516 0:a5c253316af6 2830 }
jmitc91516 0:a5c253316af6 2831 #endif
jmitc91516 0:a5c253316af6 2832
jmitc91516 0:a5c253316af6 2833 sgl.X1Mode = sgl.CommonByte1 & 0x03;
jmitc91516 0:a5c253316af6 2834 sgl.Y1Mode = (sgl.CommonByte1 >> 2) & 0x03;
jmitc91516 0:a5c253316af6 2835 sgl.X2Mode = (sgl.CommonByte1 >> 4) & 0x03;
jmitc91516 0:a5c253316af6 2836 sgl.Y2Mode = (sgl.CommonByte1 >> 6) & 0x03;
jmitc91516 0:a5c253316af6 2837 sgl.R1Mode = (sgl.CommonByte7 >> 1) & 0x03;
jmitc91516 0:a5c253316af6 2838 sgl.R2Mode = (sgl.CommonByte7 >> 3) & 0x03;
jmitc91516 0:a5c253316af6 2839
jmitc91516 0:a5c253316af6 2840 if (sgl.CommonByte2 & 0x01)
jmitc91516 0:a5c253316af6 2841 sgl.ItemX1 = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2842 else
jmitc91516 0:a5c253316af6 2843 sgl.ItemX1 = 0;
jmitc91516 0:a5c253316af6 2844 if (sgl.CommonByte2 & 0x02)
jmitc91516 0:a5c253316af6 2845 sgl.ItemY1 = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2846 else
jmitc91516 0:a5c253316af6 2847 sgl.ItemY1 = 0;
jmitc91516 0:a5c253316af6 2848 if (sgl.CommonByte2 & 0x04)
jmitc91516 0:a5c253316af6 2849 sgl.ItemX2 = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2850 else
jmitc91516 0:a5c253316af6 2851 sgl.ItemX2 = 0;
jmitc91516 0:a5c253316af6 2852 if (sgl.CommonByte2 & 0x08)
jmitc91516 0:a5c253316af6 2853 sgl.ItemY2 = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2854 else
jmitc91516 0:a5c253316af6 2855 sgl.ItemY2 = 0;
jmitc91516 0:a5c253316af6 2856 if (sgl.CommonByte6 & 0x10)
jmitc91516 0:a5c253316af6 2857 sgl.ItemR1 = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2858 else
jmitc91516 0:a5c253316af6 2859 sgl.ItemR1 = 0;
jmitc91516 0:a5c253316af6 2860 if (sgl.CommonByte6 & 0x20)
jmitc91516 0:a5c253316af6 2861 sgl.ItemR2 = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2862 else
jmitc91516 0:a5c253316af6 2863 sgl.ItemR2 = 0;
jmitc91516 0:a5c253316af6 2864
jmitc91516 0:a5c253316af6 2865 if (sgl.CommonByte2 & 0x10)
jmitc91516 0:a5c253316af6 2866 {
jmitc91516 0:a5c253316af6 2867 sgl.X1VarIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2868 if (sgl.X1VarIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2869 sgl.X1VarIdx = 0;
jmitc91516 0:a5c253316af6 2870 }
jmitc91516 0:a5c253316af6 2871 if (sgl.CommonByte2 & 0x20)
jmitc91516 0:a5c253316af6 2872 {
jmitc91516 0:a5c253316af6 2873 sgl.Y1VarIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2874 if (sgl.Y1VarIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2875 sgl.Y1VarIdx = 0;
jmitc91516 0:a5c253316af6 2876 }
jmitc91516 0:a5c253316af6 2877 if (sgl.CommonByte2 & 0x40)
jmitc91516 0:a5c253316af6 2878 {
jmitc91516 0:a5c253316af6 2879 sgl.X2VarIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2880 if (sgl.X2VarIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2881 sgl.X2VarIdx = 0;
jmitc91516 0:a5c253316af6 2882 }
jmitc91516 0:a5c253316af6 2883 if (sgl.CommonByte2 & 0x80)
jmitc91516 0:a5c253316af6 2884 {
jmitc91516 0:a5c253316af6 2885 sgl.Y2VarIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2886 if (sgl.Y2VarIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2887 sgl.Y2VarIdx = 0;
jmitc91516 0:a5c253316af6 2888 }
jmitc91516 0:a5c253316af6 2889 if (sgl.CommonByte6 & 0x40)
jmitc91516 0:a5c253316af6 2890 {
jmitc91516 0:a5c253316af6 2891 sgl.R1VarIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2892 if (sgl.R1VarIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2893 sgl.R1VarIdx = 0;
jmitc91516 0:a5c253316af6 2894 }
jmitc91516 0:a5c253316af6 2895 if (sgl.CommonByte6 & 0x80)
jmitc91516 0:a5c253316af6 2896 {
jmitc91516 0:a5c253316af6 2897 sgl.R2VarIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2898 if (sgl.R2VarIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 2899 sgl.R2VarIdx = 0;
jmitc91516 0:a5c253316af6 2900 }
jmitc91516 0:a5c253316af6 2901 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
jmitc91516 0:a5c253316af6 2902 GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2903 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 2904 GuiLib_ITEMBIT_LINE +
jmitc91516 0:a5c253316af6 2905 GuiLib_ITEMBIT_FRAME +
jmitc91516 0:a5c253316af6 2906 GuiLib_ITEMBIT_BLOCK +
jmitc91516 0:a5c253316af6 2907 GuiLib_ITEMBIT_CIRCLE +
jmitc91516 0:a5c253316af6 2908 GuiLib_ITEMBIT_ELLIPSE +
jmitc91516 0:a5c253316af6 2909 GuiLib_ITEMBIT_BITMAP +
jmitc91516 0:a5c253316af6 2910 GuiLib_ITEMBIT_BACKGROUND +
jmitc91516 0:a5c253316af6 2911 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2912 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2913 GuiLib_ITEMBIT_ACTIVEAREA +
jmitc91516 0:a5c253316af6 2914 GuiLib_ITEMBIT_CLIPRECT +
jmitc91516 0:a5c253316af6 2915 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 2916 GuiLib_ITEMBIT_VARBLOCK +
jmitc91516 0:a5c253316af6 2917 GuiLib_ITEMBIT_TOUCHAREA +
jmitc91516 0:a5c253316af6 2918 GuiLib_ITEMBIT_SCROLLBOX +
jmitc91516 0:a5c253316af6 2919 GuiLib_ITEMBIT_GRAPH +
jmitc91516 0:a5c253316af6 2920 GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
jmitc91516 0:a5c253316af6 2921 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
jmitc91516 0:a5c253316af6 2922 GuiLib_ITEMBIT_ROUNDEDBLOCK +
jmitc91516 0:a5c253316af6 2923 GuiLib_ITEMBIT_QUARTERCIRCLE +
jmitc91516 0:a5c253316af6 2924 GuiLib_ITEMBIT_QUARTERELLIPSE +
jmitc91516 0:a5c253316af6 2925 GuiLib_ITEMBIT_CHECKBOX +
jmitc91516 0:a5c253316af6 2926 GuiLib_ITEMBIT_RADIOBUTTON +
jmitc91516 0:a5c253316af6 2927 GuiLib_ITEMBIT_BUTTON +
jmitc91516 0:a5c253316af6 2928 GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 2929 GuiLib_ITEMBIT_PANEL +
jmitc91516 0:a5c253316af6 2930 GuiLib_ITEMBIT_MEMO +
jmitc91516 0:a5c253316af6 2931 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 2932 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 2933 GuiLib_ITEMBIT_SCROLLAREA +
jmitc91516 0:a5c253316af6 2934 GuiLib_ITEMBIT_PROGRESSBAR +
jmitc91516 0:a5c253316af6 2935 GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2936 {
jmitc91516 0:a5c253316af6 2937 B1 = (sgl.CommonByte3 >> 6) & 0x03;
jmitc91516 0:a5c253316af6 2938 if (B1 != GuiLib_ALIGN_NOCHANGE)
jmitc91516 0:a5c253316af6 2939 sgl.CurItem.TextPar[0].Alignment = B1;
jmitc91516 0:a5c253316af6 2940 }
jmitc91516 0:a5c253316af6 2941
jmitc91516 0:a5c253316af6 2942 B1 = sgl.CommonByte4 & 0x03;
jmitc91516 0:a5c253316af6 2943 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2944 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 2945 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2946 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2947 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 2948 GuiLib_ITEMBIT_VARBLOCK)) ||
jmitc91516 0:a5c253316af6 2949 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 2950 GuiLib_ITEMBIT_MEMO +
jmitc91516 0:a5c253316af6 2951 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 2952 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 2953 GuiLib_ITEMBIT_PROGRESSBAR +
jmitc91516 0:a5c253316af6 2954 GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2955 {
jmitc91516 0:a5c253316af6 2956 if (B1 != GuiLib_PS_NOCHANGE)
jmitc91516 0:a5c253316af6 2957 sgl.CurItem.TextPar[0].Ps = B1;
jmitc91516 0:a5c253316af6 2958 }
jmitc91516 0:a5c253316af6 2959
jmitc91516 0:a5c253316af6 2960 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 2961 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 2962 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 2963 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 2964 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 2965 GuiLib_ITEMBIT_VARBLOCK)) ||
jmitc91516 0:a5c253316af6 2966 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 2967 GuiLib_ITEMBIT_MEMO +
jmitc91516 0:a5c253316af6 2968 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 2969 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 2970 GuiLib_ITEMBIT_PROGRESSBAR +
jmitc91516 0:a5c253316af6 2971 GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 2972 {
jmitc91516 0:a5c253316af6 2973 if (sgl.CommonByte4 & 0x10)
jmitc91516 0:a5c253316af6 2974 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_UNDERLINE;
jmitc91516 0:a5c253316af6 2975 else
jmitc91516 0:a5c253316af6 2976 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_UNDERLINE;
jmitc91516 0:a5c253316af6 2977 }
jmitc91516 0:a5c253316af6 2978 else if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_LINE +
jmitc91516 0:a5c253316af6 2979 GuiLib_ITEMBIT_CIRCLE))
jmitc91516 0:a5c253316af6 2980 {
jmitc91516 0:a5c253316af6 2981 if (sgl.CommonByte4 & 0x10)
jmitc91516 0:a5c253316af6 2982 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_PATTERNEDLINE;
jmitc91516 0:a5c253316af6 2983 else
jmitc91516 0:a5c253316af6 2984 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_PATTERNEDLINE;
jmitc91516 0:a5c253316af6 2985 }
jmitc91516 0:a5c253316af6 2986
jmitc91516 0:a5c253316af6 2987 if (sgl.CommonByte4 & 0x20)
jmitc91516 0:a5c253316af6 2988 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_AUTOREDRAWFIELD;
jmitc91516 0:a5c253316af6 2989 else
jmitc91516 0:a5c253316af6 2990 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_AUTOREDRAWFIELD;
jmitc91516 0:a5c253316af6 2991
jmitc91516 0:a5c253316af6 2992 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 2993 if (sgl.CommonByte4 & 0x40)
jmitc91516 0:a5c253316af6 2994 sgl.CurItem.CursorFieldNo = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 2995 else
jmitc91516 0:a5c253316af6 2996 sgl.CurItem.CursorFieldNo = -1;
jmitc91516 0:a5c253316af6 2997 #endif
jmitc91516 0:a5c253316af6 2998
jmitc91516 0:a5c253316af6 2999 #ifdef GuiConst_BLINK_SUPPORT_ON
jmitc91516 0:a5c253316af6 3000 if (sgl.CommonByte5 & 0x01)
jmitc91516 0:a5c253316af6 3001 BS2 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3002 else
jmitc91516 0:a5c253316af6 3003 BS2 = -1;
jmitc91516 0:a5c253316af6 3004 if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 3005 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3006 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 3007 GuiLib_ITEMBIT_VARBLOCK))
jmitc91516 0:a5c253316af6 3008 sgl.CurItem.BlinkFieldNo = BS2;
jmitc91516 0:a5c253316af6 3009 else
jmitc91516 0:a5c253316af6 3010 sgl.CurItem.BlinkFieldNo = -1;
jmitc91516 0:a5c253316af6 3011 #endif
jmitc91516 0:a5c253316af6 3012
jmitc91516 0:a5c253316af6 3013 if (sgl.CommonByte4 & 0x80)
jmitc91516 0:a5c253316af6 3014 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_TRANSLATION;
jmitc91516 0:a5c253316af6 3015 else
jmitc91516 0:a5c253316af6 3016 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSLATION;
jmitc91516 0:a5c253316af6 3017 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 3018 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3019 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 3020 GuiLib_ITEMBIT_VARBLOCK)) ||
jmitc91516 0:a5c253316af6 3021 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON)))
jmitc91516 0:a5c253316af6 3022 {
jmitc91516 0:a5c253316af6 3023 if (sgl.CommonByte5 & 0x80)
jmitc91516 0:a5c253316af6 3024 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3025 else
jmitc91516 0:a5c253316af6 3026 {
jmitc91516 0:a5c253316af6 3027 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 3028 GuiLib_ITEMBIT_VARBLOCK)) ||
jmitc91516 0:a5c253316af6 3029 (sgl.CommonByte4 & 0x80))
jmitc91516 0:a5c253316af6 3030 I = LanguageIndex;
jmitc91516 0:a5c253316af6 3031 else
jmitc91516 0:a5c253316af6 3032 I = 0;
jmitc91516 0:a5c253316af6 3033 B1 = ReadByte(GuiFont_LanguageTextDir[I]);
jmitc91516 0:a5c253316af6 3034 }
jmitc91516 0:a5c253316af6 3035 }
jmitc91516 0:a5c253316af6 3036 else
jmitc91516 0:a5c253316af6 3037 B1 = 0;
jmitc91516 0:a5c253316af6 3038 if (B1)
jmitc91516 0:a5c253316af6 3039 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_REVERSEWRITING;
jmitc91516 0:a5c253316af6 3040 else
jmitc91516 0:a5c253316af6 3041 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_REVERSEWRITING;
jmitc91516 0:a5c253316af6 3042
jmitc91516 0:a5c253316af6 3043 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_LINE)) &&
jmitc91516 0:a5c253316af6 3044 (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_PATTERNEDLINE))
jmitc91516 0:a5c253316af6 3045 sgl.CurItem.LinePattern = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3046
jmitc91516 0:a5c253316af6 3047 #ifdef GuiConst_BLINK_SUPPORT_ON
jmitc91516 0:a5c253316af6 3048 if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 3049 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3050 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 3051 GuiLib_ITEMBIT_VARBLOCK))
jmitc91516 0:a5c253316af6 3052 {
jmitc91516 0:a5c253316af6 3053 if (sgl.CommonByte5 & 0x01)
jmitc91516 0:a5c253316af6 3054 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_BLINKTEXTFIELD;
jmitc91516 0:a5c253316af6 3055 else
jmitc91516 0:a5c253316af6 3056 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BLINKTEXTFIELD;
jmitc91516 0:a5c253316af6 3057 }
jmitc91516 0:a5c253316af6 3058 #endif
jmitc91516 0:a5c253316af6 3059
jmitc91516 0:a5c253316af6 3060 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 3061 GuiLib_ITEMBIT_TEXTBLOCK)) ||
jmitc91516 0:a5c253316af6 3062 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON)))
jmitc91516 0:a5c253316af6 3063 sgl.CurItem.TextCnt = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3064 else
jmitc91516 0:a5c253316af6 3065 sgl.CurItem.TextCnt = 1;
jmitc91516 0:a5c253316af6 3066 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 3067 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3068 GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 3069 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 3070 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 3071 GuiLib_ITEMBIT_VARBLOCK +
jmitc91516 0:a5c253316af6 3072 GuiLib_ITEMBIT_SCROLLBOX +
jmitc91516 0:a5c253316af6 3073 GuiLib_ITEMBIT_GRAPH)) ||
jmitc91516 0:a5c253316af6 3074 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON +
jmitc91516 0:a5c253316af6 3075 GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 3076 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 3077 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 3078 GuiLib_ITEMBIT_PROGRESSBAR +
jmitc91516 0:a5c253316af6 3079 GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 3080 {
jmitc91516 0:a5c253316af6 3081 if (sgl.CurItem.ItemType == GuiLib_ITEM_BUTTON)
jmitc91516 0:a5c253316af6 3082 J = 3;
jmitc91516 0:a5c253316af6 3083 else
jmitc91516 0:a5c253316af6 3084 J = 1;
jmitc91516 0:a5c253316af6 3085 for (I = 0; I < J; I++)
jmitc91516 0:a5c253316af6 3086 {
jmitc91516 0:a5c253316af6 3087 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3088 if (B1 != 0xFF)
jmitc91516 0:a5c253316af6 3089 sgl.CurItem.TextPar[I].FontIndex = B1 + 1;
jmitc91516 0:a5c253316af6 3090 }
jmitc91516 0:a5c253316af6 3091 }
jmitc91516 0:a5c253316af6 3092
jmitc91516 0:a5c253316af6 3093 if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3094 GuiLib_ITEMBIT_VARBLOCK))
jmitc91516 0:a5c253316af6 3095 {
jmitc91516 0:a5c253316af6 3096 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 3097 sgl.CurItem.CompPars.CompTextBox.ScrollPos = 0;
jmitc91516 0:a5c253316af6 3098 sgl.CurItem.CompPars.CompTextBox.ScrollIndex = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3099 #else
jmitc91516 0:a5c253316af6 3100 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3101 #endif
jmitc91516 0:a5c253316af6 3102 }
jmitc91516 0:a5c253316af6 3103
jmitc91516 0:a5c253316af6 3104 sgl.CurItem.UpdateType = GuiLib_AUTOREDRAW_MODE;
jmitc91516 0:a5c253316af6 3105
jmitc91516 0:a5c253316af6 3106 if (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_CHECKBOX +
jmitc91516 0:a5c253316af6 3107 GuiLib_ITEMBIT_RADIOBUTTON +
jmitc91516 0:a5c253316af6 3108 GuiLib_ITEMBIT_BUTTON +
jmitc91516 0:a5c253316af6 3109 GuiLib_ITEMBIT_EDITBOX +
jmitc91516 0:a5c253316af6 3110 GuiLib_ITEMBIT_LISTBOX +
jmitc91516 0:a5c253316af6 3111 GuiLib_ITEMBIT_COMBOBOX +
jmitc91516 0:a5c253316af6 3112 GuiLib_ITEMBIT_PROGRESSBAR))
jmitc91516 0:a5c253316af6 3113 {
jmitc91516 0:a5c253316af6 3114 PtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3115 if (PtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3116 PtrIdx = 0;
jmitc91516 0:a5c253316af6 3117
jmitc91516 0:a5c253316af6 3118 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_AUTOREDRAWFIELD;
jmitc91516 0:a5c253316af6 3119 sgl.CurItem.UpdateType = GuiLib_UPDATE_ON_CHANGE;
jmitc91516 0:a5c253316af6 3120 sgl.CurItem.VarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
jmitc91516 0:a5c253316af6 3121 sgl.CurItem.VarType = ReadByte(GuiStruct_VarTypeList[PtrIdx]);
jmitc91516 0:a5c253316af6 3122 }
jmitc91516 0:a5c253316af6 3123
jmitc91516 0:a5c253316af6 3124 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 3125 GuiLib_ITEMBIT_VAR +
jmitc91516 0:a5c253316af6 3126 GuiLib_ITEMBIT_VARBLOCK)) ||
jmitc91516 0:a5c253316af6 3127 (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_STRUCTCOND))
jmitc91516 0:a5c253316af6 3128 {
jmitc91516 0:a5c253316af6 3129 PtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3130 if (PtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3131 PtrIdx = 0;
jmitc91516 0:a5c253316af6 3132
jmitc91516 0:a5c253316af6 3133 sgl.CurItem.UpdateType = GuiLib_AUTOREDRAW_MODE;
jmitc91516 0:a5c253316af6 3134 sgl.CurItem.VarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
jmitc91516 0:a5c253316af6 3135 sgl.CurItem.VarType = ReadByte(GuiStruct_VarTypeList[PtrIdx]);
jmitc91516 0:a5c253316af6 3136
jmitc91516 0:a5c253316af6 3137 }
jmitc91516 0:a5c253316af6 3138
jmitc91516 0:a5c253316af6 3139 #ifdef GuiConst_AUTOREDRAW_ON_CHANGE
jmitc91516 0:a5c253316af6 3140 if ((sgl.CommonByte4 & 0x20) &&
jmitc91516 0:a5c253316af6 3141 ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 3142 GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3143 GuiLib_ITEMBIT_DOT +
jmitc91516 0:a5c253316af6 3144 GuiLib_ITEMBIT_LINE +
jmitc91516 0:a5c253316af6 3145 GuiLib_ITEMBIT_FRAME +
jmitc91516 0:a5c253316af6 3146 GuiLib_ITEMBIT_BLOCK +
jmitc91516 0:a5c253316af6 3147 GuiLib_ITEMBIT_CIRCLE +
jmitc91516 0:a5c253316af6 3148 GuiLib_ITEMBIT_ELLIPSE +
jmitc91516 0:a5c253316af6 3149 GuiLib_ITEMBIT_BITMAP +
jmitc91516 0:a5c253316af6 3150 GuiLib_ITEMBIT_BACKGROUND +
jmitc91516 0:a5c253316af6 3151 GuiLib_ITEMBIT_STRUCTURE)) ||
jmitc91516 0:a5c253316af6 3152 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
jmitc91516 0:a5c253316af6 3153 GuiLib_ITEMBIT_ROUNDEDBLOCK +
jmitc91516 0:a5c253316af6 3154 GuiLib_ITEMBIT_QUARTERCIRCLE +
jmitc91516 0:a5c253316af6 3155 GuiLib_ITEMBIT_QUARTERELLIPSE))))
jmitc91516 0:a5c253316af6 3156 {
jmitc91516 0:a5c253316af6 3157 PtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3158 if (PtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3159 PtrIdx = 0;
jmitc91516 0:a5c253316af6 3160
jmitc91516 0:a5c253316af6 3161 sgl.CurItem.UpdateType = GuiLib_AUTOREDRAW_MODE;
jmitc91516 0:a5c253316af6 3162 sgl.CurItem.VarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
jmitc91516 0:a5c253316af6 3163 sgl.CurItem.VarType = ReadByte(GuiStruct_VarTypeList[PtrIdx]);
jmitc91516 0:a5c253316af6 3164 }
jmitc91516 0:a5c253316af6 3165 #endif
jmitc91516 0:a5c253316af6 3166
jmitc91516 0:a5c253316af6 3167 if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_FRAME +
jmitc91516 0:a5c253316af6 3168 GuiLib_ITEMBIT_CIRCLE +
jmitc91516 0:a5c253316af6 3169 GuiLib_ITEMBIT_ELLIPSE))
jmitc91516 0:a5c253316af6 3170 {
jmitc91516 0:a5c253316af6 3171 sgl.CurItem.FrameThickness = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3172 }
jmitc91516 0:a5c253316af6 3173
jmitc91516 0:a5c253316af6 3174 if (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_QUARTERCIRCLE +
jmitc91516 0:a5c253316af6 3175 GuiLib_ITEMBIT_QUARTERELLIPSE))
jmitc91516 0:a5c253316af6 3176 {
jmitc91516 0:a5c253316af6 3177 sgl.CurItem.FrameThickness = GetItemByte(&sgl.ItemDataPtr) % 4;
jmitc91516 0:a5c253316af6 3178 }
jmitc91516 0:a5c253316af6 3179
jmitc91516 0:a5c253316af6 3180 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_STRUCTARRAY)) ||
jmitc91516 0:a5c253316af6 3181 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 3182 sgl.CurItem.CompPars.StructCall.IndexCount = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3183
jmitc91516 0:a5c253316af6 3184 #ifdef GuiConst_ITEM_STRUCTCOND_INUSE
jmitc91516 0:a5c253316af6 3185 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_STRUCTCOND)
jmitc91516 0:a5c253316af6 3186 {
jmitc91516 0:a5c253316af6 3187 for (CondI = 0; CondI < sgl.CurItem.CompPars.StructCall.IndexCount; CondI++)
jmitc91516 0:a5c253316af6 3188 {
jmitc91516 0:a5c253316af6 3189 sgl.CurItem.CompPars.StructCall.IndexFirst[CondI] = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3190 sgl.CurItem.CompPars.StructCall.IndexLast[CondI] = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3191 sgl.CurItem.CompPars.StructCall.CallIndex[CondI] = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3192 }
jmitc91516 0:a5c253316af6 3193 }
jmitc91516 0:a5c253316af6 3194 #endif
jmitc91516 0:a5c253316af6 3195
jmitc91516 0:a5c253316af6 3196 if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_ACTIVEAREA +
jmitc91516 0:a5c253316af6 3197 GuiLib_ITEMBIT_CLIPRECT))
jmitc91516 0:a5c253316af6 3198 {
jmitc91516 0:a5c253316af6 3199 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3200 if (B1 & 0x01)
jmitc91516 0:a5c253316af6 3201 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_CLIPPING;
jmitc91516 0:a5c253316af6 3202 else
jmitc91516 0:a5c253316af6 3203 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_CLIPPING;
jmitc91516 0:a5c253316af6 3204 if (B1 & 0x02)
jmitc91516 0:a5c253316af6 3205 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_ACTIVEAREARELCOORD;
jmitc91516 0:a5c253316af6 3206 else
jmitc91516 0:a5c253316af6 3207 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_ACTIVEAREARELCOORD;
jmitc91516 0:a5c253316af6 3208 }
jmitc91516 0:a5c253316af6 3209
jmitc91516 0:a5c253316af6 3210 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_FORMATTER)
jmitc91516 0:a5c253316af6 3211 {
jmitc91516 0:a5c253316af6 3212 sgl.CurItem.FormatFormat = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3213 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3214 if (B1 & 0x01)
jmitc91516 0:a5c253316af6 3215 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATSHOWSIGN;
jmitc91516 0:a5c253316af6 3216 else
jmitc91516 0:a5c253316af6 3217 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATSHOWSIGN;
jmitc91516 0:a5c253316af6 3218 if (B1 & 0x02)
jmitc91516 0:a5c253316af6 3219 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATZEROPADDING;
jmitc91516 0:a5c253316af6 3220 else
jmitc91516 0:a5c253316af6 3221 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATZEROPADDING;
jmitc91516 0:a5c253316af6 3222 sgl.CurItem.FormatAlignment = (B1 >> 2) & 0x03;
jmitc91516 0:a5c253316af6 3223 if (B1 & 0x10)
jmitc91516 0:a5c253316af6 3224 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATTRAILINGZEROS;
jmitc91516 0:a5c253316af6 3225 else
jmitc91516 0:a5c253316af6 3226 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATTRAILINGZEROS;
jmitc91516 0:a5c253316af6 3227 if (B1 & 0x20)
jmitc91516 0:a5c253316af6 3228 sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
jmitc91516 0:a5c253316af6 3229 else
jmitc91516 0:a5c253316af6 3230 sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
jmitc91516 0:a5c253316af6 3231 sgl.CurItem.FormatFieldWidth = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3232 sgl.CurItem.FormatDecimals = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3233 }
jmitc91516 0:a5c253316af6 3234
jmitc91516 0:a5c253316af6 3235 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_STRUCTURE +
jmitc91516 0:a5c253316af6 3236 GuiLib_ITEMBIT_STRUCTARRAY +
jmitc91516 0:a5c253316af6 3237 GuiLib_ITEMBIT_BITMAP +
jmitc91516 0:a5c253316af6 3238 GuiLib_ITEMBIT_BACKGROUND)) ||
jmitc91516 0:a5c253316af6 3239 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
jmitc91516 0:a5c253316af6 3240 sgl.CurItem.StructToCallIndex = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3241
jmitc91516 0:a5c253316af6 3242 #ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
jmitc91516 0:a5c253316af6 3243 if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXTBLOCK +
jmitc91516 0:a5c253316af6 3244 GuiLib_ITEMBIT_VARBLOCK))
jmitc91516 0:a5c253316af6 3245 {
jmitc91516 0:a5c253316af6 3246 sgl.CurItem.CompPars.CompTextBox.HorzAlignment = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3247 sgl.CurItem.CompPars.CompTextBox.VertAlignment = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3248 sgl.CurItem.CompPars.CompTextBox.LineDist = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3249 sgl.CurItem.CompPars.CompTextBox.LineDistRelToFont = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3250 }
jmitc91516 0:a5c253316af6 3251 #endif
jmitc91516 0:a5c253316af6 3252
jmitc91516 0:a5c253316af6 3253 #ifdef GuiConst_ITEM_TOUCHAREA_INUSE
jmitc91516 0:a5c253316af6 3254 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_TOUCHAREA)
jmitc91516 0:a5c253316af6 3255 sgl.CurItem.CompPars.CompTouch.AreaNo = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3256 #endif
jmitc91516 0:a5c253316af6 3257
jmitc91516 0:a5c253316af6 3258 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_POSCALLBACK)
jmitc91516 0:a5c253316af6 3259 sgl.CurItem.PosCallbackNo = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3260
jmitc91516 0:a5c253316af6 3261 #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
jmitc91516 0:a5c253316af6 3262 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_SCROLLBOX)
jmitc91516 0:a5c253316af6 3263 {
jmitc91516 0:a5c253316af6 3264 ScrollBoxIndex = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3265 sgl.GlobalScrollBoxIndex = ScrollBoxIndex;
jmitc91516 0:a5c253316af6 3266 sgl.ScrollBoxesAry[ScrollBoxIndex].InUse = GuiLib_SCROLL_STRUCTURE_READ;
jmitc91516 0:a5c253316af6 3267 sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3268 sgl.ScrollBoxesAry[ScrollBoxIndex].MakeUpStructIndex =
jmitc91516 0:a5c253316af6 3269 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3270 sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines =
jmitc91516 0:a5c253316af6 3271 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3272 sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset =
jmitc91516 0:a5c253316af6 3273 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3274 sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3275 sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3276 sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3277 sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3278 sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3279 sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetX =
jmitc91516 0:a5c253316af6 3280 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3281 sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetY =
jmitc91516 0:a5c253316af6 3282 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3283 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3284 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent = 0;
jmitc91516 0:a5c253316af6 3285 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 3286
jmitc91516 0:a5c253316af6 3287 switch (B1)
jmitc91516 0:a5c253316af6 3288 {
jmitc91516 0:a5c253316af6 3289 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3290 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3291 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 3292 break;
jmitc91516 0:a5c253316af6 3293 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3294 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3295 break;
jmitc91516 0:a5c253316af6 3296 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3297 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3298 break;
jmitc91516 0:a5c253316af6 3299 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3300 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 3301 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3302 break;
jmitc91516 0:a5c253316af6 3303 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3304 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = TmpForeColor;
jmitc91516 0:a5c253316af6 3305 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = TmpForeColIdx;
jmitc91516 0:a5c253316af6 3306 break;
jmitc91516 0:a5c253316af6 3307 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3308 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent = 1;
jmitc91516 0:a5c253316af6 3309 break;
jmitc91516 0:a5c253316af6 3310 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3311 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor =
jmitc91516 0:a5c253316af6 3312 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3313 break;
jmitc91516 0:a5c253316af6 3314 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3315 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3316 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3317 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3318 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3319 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3320 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3321 else
jmitc91516 0:a5c253316af6 3322 {
jmitc91516 0:a5c253316af6 3323 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3324 sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 3325 }
jmitc91516 0:a5c253316af6 3326 break;
jmitc91516 0:a5c253316af6 3327 }
jmitc91516 0:a5c253316af6 3328 sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3329 sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3330 sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3331 sgl.ScrollBoxesAry[ScrollBoxIndex].LineMarkerCount = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3332 for (L = 0; L < sgl.ScrollBoxesAry[ScrollBoxIndex].LineMarkerCount; L++)
jmitc91516 0:a5c253316af6 3333 {
jmitc91516 0:a5c253316af6 3334 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = 0xFFFF;
jmitc91516 0:a5c253316af6 3335 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3336 switch (B1)
jmitc91516 0:a5c253316af6 3337 {
jmitc91516 0:a5c253316af6 3338 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3339 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 3340 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = sgl.CurItem.BackColorIndex;
jmitc91516 0:a5c253316af6 3341 break;
jmitc91516 0:a5c253316af6 3342 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3343 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3344 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
jmitc91516 0:a5c253316af6 3345 break;
jmitc91516 0:a5c253316af6 3346 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3347 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3348 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
jmitc91516 0:a5c253316af6 3349 break;
jmitc91516 0:a5c253316af6 3350 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3351 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 3352 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3353 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
jmitc91516 0:a5c253316af6 3354 break;
jmitc91516 0:a5c253316af6 3355 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3356 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = TmpForeColor;
jmitc91516 0:a5c253316af6 3357 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = TmpForeColIdx;
jmitc91516 0:a5c253316af6 3358 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
jmitc91516 0:a5c253316af6 3359 break;
jmitc91516 0:a5c253316af6 3360 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3361 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 1;
jmitc91516 0:a5c253316af6 3362 break;
jmitc91516 0:a5c253316af6 3363 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3364 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] =
jmitc91516 0:a5c253316af6 3365 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3366 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
jmitc91516 0:a5c253316af6 3367 break;
jmitc91516 0:a5c253316af6 3368 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3369 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3370 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3371 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3372 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3373 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3374 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3375 else
jmitc91516 0:a5c253316af6 3376 {
jmitc91516 0:a5c253316af6 3377 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = *ColVarPtr;
jmitc91516 0:a5c253316af6 3378 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 3379 }
jmitc91516 0:a5c253316af6 3380 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
jmitc91516 0:a5c253316af6 3381 break;
jmitc91516 0:a5c253316af6 3382 }
jmitc91516 0:a5c253316af6 3383 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[L] =
jmitc91516 0:a5c253316af6 3384 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3385 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerDrawingOrder[L] =
jmitc91516 0:a5c253316af6 3386 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3387 if (L || (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType))
jmitc91516 0:a5c253316af6 3388 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[L] = 0;
jmitc91516 0:a5c253316af6 3389 else
jmitc91516 0:a5c253316af6 3390 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[L] = 1;
jmitc91516 0:a5c253316af6 3391 sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[L] = 0;
jmitc91516 0:a5c253316af6 3392 }
jmitc91516 0:a5c253316af6 3393
jmitc91516 0:a5c253316af6 3394 sgl.ScrollBoxesAry[ScrollBoxIndex].BarType = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3395 #ifndef GuiConst_SCROLLITEM_BAR_NONE
jmitc91516 0:a5c253316af6 3396 if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType != GuiLib_MARKER_NONE)
jmitc91516 0:a5c253316af6 3397 {
jmitc91516 0:a5c253316af6 3398 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMode = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3399 sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3400 sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3401 sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3402 sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3403 sgl.ScrollBoxesAry[ScrollBoxIndex].BarStructIndex = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3404 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3405 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 3406 {
jmitc91516 0:a5c253316af6 3407 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3408 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3409 break;
jmitc91516 0:a5c253316af6 3410 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3411 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3412 break;
jmitc91516 0:a5c253316af6 3413 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3414 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3415 break;
jmitc91516 0:a5c253316af6 3416 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3417 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 3418 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3419 break;
jmitc91516 0:a5c253316af6 3420 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3421 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = TmpBackColor;
jmitc91516 0:a5c253316af6 3422 break;
jmitc91516 0:a5c253316af6 3423 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3424 break;
jmitc91516 0:a5c253316af6 3425 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3426 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor =
jmitc91516 0:a5c253316af6 3427 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3428 break;
jmitc91516 0:a5c253316af6 3429 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3430 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3431 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3432 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3433 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3434 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3435 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3436 else
jmitc91516 0:a5c253316af6 3437 sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3438 break;
jmitc91516 0:a5c253316af6 3439 }
jmitc91516 0:a5c253316af6 3440 sgl.ScrollBoxesAry[ScrollBoxIndex].BarTransparent = 0;
jmitc91516 0:a5c253316af6 3441 switch ((B1 & 0x38) >> 3)
jmitc91516 0:a5c253316af6 3442 {
jmitc91516 0:a5c253316af6 3443 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3444 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3445 break;
jmitc91516 0:a5c253316af6 3446 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3447 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3448 break;
jmitc91516 0:a5c253316af6 3449 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3450 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3451 break;
jmitc91516 0:a5c253316af6 3452 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3453 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 3454 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3455 break;
jmitc91516 0:a5c253316af6 3456 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3457 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = TmpForeColor;
jmitc91516 0:a5c253316af6 3458 break;
jmitc91516 0:a5c253316af6 3459 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3460 sgl.ScrollBoxesAry[ScrollBoxIndex].BarTransparent = 1;
jmitc91516 0:a5c253316af6 3461 break;
jmitc91516 0:a5c253316af6 3462 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3463 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor =
jmitc91516 0:a5c253316af6 3464 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3465 break;
jmitc91516 0:a5c253316af6 3466 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3467 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3468 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3469 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3470 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3471 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3472 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3473 else
jmitc91516 0:a5c253316af6 3474 sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3475 break;
jmitc91516 0:a5c253316af6 3476 }
jmitc91516 0:a5c253316af6 3477 sgl.ScrollBoxesAry[ScrollBoxIndex].BarThickness = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3478 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset =
jmitc91516 0:a5c253316af6 3479 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3480 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset =
jmitc91516 0:a5c253316af6 3481 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3482 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTopOffset =
jmitc91516 0:a5c253316af6 3483 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3484 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBottomOffset =
jmitc91516 0:a5c253316af6 3485 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3486 sgl.ScrollBoxesAry[ScrollBoxIndex].BarIconPtr =
jmitc91516 0:a5c253316af6 3487 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 3488 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 3489 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 3490 #else
jmitc91516 0:a5c253316af6 3491 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 3492 #endif
jmitc91516 0:a5c253316af6 3493 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconFont =
jmitc91516 0:a5c253316af6 3494 GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 3495 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetX =
jmitc91516 0:a5c253316af6 3496 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3497 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetY =
jmitc91516 0:a5c253316af6 3498 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3499 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3500 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 3501 {
jmitc91516 0:a5c253316af6 3502 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3503 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3504 break;
jmitc91516 0:a5c253316af6 3505 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3506 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3507 break;
jmitc91516 0:a5c253316af6 3508 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3509 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor =
jmitc91516 0:a5c253316af6 3510 GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3511 break;
jmitc91516 0:a5c253316af6 3512 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3513 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor =
jmitc91516 0:a5c253316af6 3514 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3515 break;
jmitc91516 0:a5c253316af6 3516 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3517 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = TmpBackColor;
jmitc91516 0:a5c253316af6 3518 break;
jmitc91516 0:a5c253316af6 3519 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3520 break;
jmitc91516 0:a5c253316af6 3521 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3522 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor =
jmitc91516 0:a5c253316af6 3523 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3524 break;
jmitc91516 0:a5c253316af6 3525 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3526 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3527 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3528 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3529 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3530 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3531 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3532 else
jmitc91516 0:a5c253316af6 3533 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3534 break;
jmitc91516 0:a5c253316af6 3535 }
jmitc91516 0:a5c253316af6 3536 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent = 0;
jmitc91516 0:a5c253316af6 3537 switch ((B1 & 0x38) >> 3)
jmitc91516 0:a5c253316af6 3538 {
jmitc91516 0:a5c253316af6 3539 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3540 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 3541 break;
jmitc91516 0:a5c253316af6 3542
jmitc91516 0:a5c253316af6 3543 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3544 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3545 break;
jmitc91516 0:a5c253316af6 3546
jmitc91516 0:a5c253316af6 3547 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3548 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor =
jmitc91516 0:a5c253316af6 3549 GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3550 break;
jmitc91516 0:a5c253316af6 3551
jmitc91516 0:a5c253316af6 3552 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3553 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor =
jmitc91516 0:a5c253316af6 3554 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3555 break;
jmitc91516 0:a5c253316af6 3556
jmitc91516 0:a5c253316af6 3557 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3558 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = TmpForeColor;
jmitc91516 0:a5c253316af6 3559 break;
jmitc91516 0:a5c253316af6 3560
jmitc91516 0:a5c253316af6 3561 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3562 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent = 1;
jmitc91516 0:a5c253316af6 3563 break;
jmitc91516 0:a5c253316af6 3564 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3565 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor =
jmitc91516 0:a5c253316af6 3566 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3567 break;
jmitc91516 0:a5c253316af6 3568 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3569 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3570 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3571 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3572 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3573 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3574 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3575 else
jmitc91516 0:a5c253316af6 3576 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3577 break;
jmitc91516 0:a5c253316af6 3578 }
jmitc91516 0:a5c253316af6 3579 if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType == GuiLib_MARKER_BITMAP)
jmitc91516 0:a5c253316af6 3580 {
jmitc91516 0:a5c253316af6 3581 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex =
jmitc91516 0:a5c253316af6 3582 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3583 #ifdef GuiConst_REMOTE_BITMAP_DATA
jmitc91516 0:a5c253316af6 3584 GuiLib_RemoteDataReadBlock(
jmitc91516 0:a5c253316af6 3585 (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[
jmitc91516 0:a5c253316af6 3586 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex], 4,
jmitc91516 0:a5c253316af6 3587 BitmapHeader);
jmitc91516 0:a5c253316af6 3588 PixelDataPtr = &BitmapHeader[0] + 2;
jmitc91516 0:a5c253316af6 3589 #else
jmitc91516 0:a5c253316af6 3590 PixelDataPtr = (GuiConst_INT8U PrefixRom *)ReadWord(GuiStruct_BitmapPtrList[
jmitc91516 0:a5c253316af6 3591 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex]) + 2;
jmitc91516 0:a5c253316af6 3592 #endif
jmitc91516 0:a5c253316af6 3593 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapHeight =
jmitc91516 0:a5c253316af6 3594 (GuiConst_INT16S)*PixelDataPtr;
jmitc91516 0:a5c253316af6 3595 PixelDataPtr++;
jmitc91516 0:a5c253316af6 3596 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapHeight +=
jmitc91516 0:a5c253316af6 3597 256*(GuiConst_INT16S)*PixelDataPtr;
jmitc91516 0:a5c253316af6 3598 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3599 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 3600 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent =
jmitc91516 0:a5c253316af6 3601 (B1 & 0x01);
jmitc91516 0:a5c253316af6 3602 if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent)
jmitc91516 0:a5c253316af6 3603 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 3604 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapTranspColor =
jmitc91516 0:a5c253316af6 3605 (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 3606 #else
jmitc91516 0:a5c253316af6 3607 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapTranspColor =
jmitc91516 0:a5c253316af6 3608 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3609 #endif
jmitc91516 0:a5c253316af6 3610 #else
jmitc91516 0:a5c253316af6 3611 sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent = 0;
jmitc91516 0:a5c253316af6 3612 #endif
jmitc91516 0:a5c253316af6 3613 }
jmitc91516 0:a5c253316af6 3614 }
jmitc91516 0:a5c253316af6 3615 #endif
jmitc91516 0:a5c253316af6 3616
jmitc91516 0:a5c253316af6 3617 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3618 #ifndef GuiConst_SCROLLITEM_INDICATOR_NONE
jmitc91516 0:a5c253316af6 3619 if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType != GuiLib_INDICATOR_NONE)
jmitc91516 0:a5c253316af6 3620 {
jmitc91516 0:a5c253316af6 3621 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMode = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3622 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionX =
jmitc91516 0:a5c253316af6 3623 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3624 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionY =
jmitc91516 0:a5c253316af6 3625 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3626 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX =
jmitc91516 0:a5c253316af6 3627 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3628 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY =
jmitc91516 0:a5c253316af6 3629 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3630 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorStructIndex =
jmitc91516 0:a5c253316af6 3631 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3632 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3633 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 3634 {
jmitc91516 0:a5c253316af6 3635 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3636 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3637 break;
jmitc91516 0:a5c253316af6 3638 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3639 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3640 break;
jmitc91516 0:a5c253316af6 3641 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3642 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor =
jmitc91516 0:a5c253316af6 3643 GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3644 break;
jmitc91516 0:a5c253316af6 3645 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3646 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor =
jmitc91516 0:a5c253316af6 3647 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3648 break;
jmitc91516 0:a5c253316af6 3649 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3650 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = TmpBackColor;
jmitc91516 0:a5c253316af6 3651 break;
jmitc91516 0:a5c253316af6 3652 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3653 break;
jmitc91516 0:a5c253316af6 3654 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3655 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor =
jmitc91516 0:a5c253316af6 3656 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3657 break;
jmitc91516 0:a5c253316af6 3658 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3659 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3660 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3661 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3662 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3663 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3664 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3665 else
jmitc91516 0:a5c253316af6 3666 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3667 break;
jmitc91516 0:a5c253316af6 3668 }
jmitc91516 0:a5c253316af6 3669 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorTransparent = 0;
jmitc91516 0:a5c253316af6 3670 switch ((B1 & 0x38) >> 3)
jmitc91516 0:a5c253316af6 3671 {
jmitc91516 0:a5c253316af6 3672 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3673 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 3674 break;
jmitc91516 0:a5c253316af6 3675 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3676 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3677 break;
jmitc91516 0:a5c253316af6 3678 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3679 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor =
jmitc91516 0:a5c253316af6 3680 GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3681 break;
jmitc91516 0:a5c253316af6 3682 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3683 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor =
jmitc91516 0:a5c253316af6 3684 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3685 break;
jmitc91516 0:a5c253316af6 3686 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3687 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = TmpForeColor;
jmitc91516 0:a5c253316af6 3688 break;
jmitc91516 0:a5c253316af6 3689 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3690 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorTransparent = 1;
jmitc91516 0:a5c253316af6 3691 break;
jmitc91516 0:a5c253316af6 3692 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3693 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor =
jmitc91516 0:a5c253316af6 3694 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3695 break;
jmitc91516 0:a5c253316af6 3696 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3697 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3698 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3699 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3700 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3701 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3702 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3703 else
jmitc91516 0:a5c253316af6 3704 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3705 break;
jmitc91516 0:a5c253316af6 3706 }
jmitc91516 0:a5c253316af6 3707 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorThickness =
jmitc91516 0:a5c253316af6 3708 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3709 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerLeftOffset =
jmitc91516 0:a5c253316af6 3710 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3711 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerRightOffset =
jmitc91516 0:a5c253316af6 3712 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3713 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTopOffset =
jmitc91516 0:a5c253316af6 3714 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3715 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBottomOffset =
jmitc91516 0:a5c253316af6 3716 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3717 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorIconPtr =
jmitc91516 0:a5c253316af6 3718 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 3719 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 3720 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 3721 #else
jmitc91516 0:a5c253316af6 3722 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 3723 #endif
jmitc91516 0:a5c253316af6 3724 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconFont =
jmitc91516 0:a5c253316af6 3725 GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 3726 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetX =
jmitc91516 0:a5c253316af6 3727 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3728 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetY =
jmitc91516 0:a5c253316af6 3729 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3730 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3731 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 3732 {
jmitc91516 0:a5c253316af6 3733 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3734 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
jmitc91516 0:a5c253316af6 3735 sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3736 break;
jmitc91516 0:a5c253316af6 3737 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3738 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
jmitc91516 0:a5c253316af6 3739 GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3740 break;
jmitc91516 0:a5c253316af6 3741 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3742 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
jmitc91516 0:a5c253316af6 3743 GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3744 break;
jmitc91516 0:a5c253316af6 3745 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3746 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
jmitc91516 0:a5c253316af6 3747 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3748 break;
jmitc91516 0:a5c253316af6 3749 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3750 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
jmitc91516 0:a5c253316af6 3751 TmpBackColor;
jmitc91516 0:a5c253316af6 3752 break;
jmitc91516 0:a5c253316af6 3753 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3754 break;
jmitc91516 0:a5c253316af6 3755 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3756 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
jmitc91516 0:a5c253316af6 3757 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3758 break;
jmitc91516 0:a5c253316af6 3759 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3760 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3761 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3762 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3763 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3764 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3765 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3766 else
jmitc91516 0:a5c253316af6 3767 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3768 break;
jmitc91516 0:a5c253316af6 3769 }
jmitc91516 0:a5c253316af6 3770 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTransparent = 0;
jmitc91516 0:a5c253316af6 3771 switch ((B1 & 0x38) >> 3)
jmitc91516 0:a5c253316af6 3772 {
jmitc91516 0:a5c253316af6 3773 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3774 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
jmitc91516 0:a5c253316af6 3775 sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 3776 break;
jmitc91516 0:a5c253316af6 3777 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3778 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
jmitc91516 0:a5c253316af6 3779 GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3780 break;
jmitc91516 0:a5c253316af6 3781 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3782 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
jmitc91516 0:a5c253316af6 3783 GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3784 break;
jmitc91516 0:a5c253316af6 3785 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3786 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
jmitc91516 0:a5c253316af6 3787 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3788 break;
jmitc91516 0:a5c253316af6 3789 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3790 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
jmitc91516 0:a5c253316af6 3791 TmpForeColor;
jmitc91516 0:a5c253316af6 3792 break;
jmitc91516 0:a5c253316af6 3793 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3794 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTransparent = 1;
jmitc91516 0:a5c253316af6 3795 break;
jmitc91516 0:a5c253316af6 3796 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3797 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
jmitc91516 0:a5c253316af6 3798 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3799 break;
jmitc91516 0:a5c253316af6 3800 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3801 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3802 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3803 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3804 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3805 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3806 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3807 else
jmitc91516 0:a5c253316af6 3808 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3809 break;
jmitc91516 0:a5c253316af6 3810 }
jmitc91516 0:a5c253316af6 3811 if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType == GuiLib_MARKER_BITMAP)
jmitc91516 0:a5c253316af6 3812 {
jmitc91516 0:a5c253316af6 3813 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIndex =
jmitc91516 0:a5c253316af6 3814 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3815 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3816 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 3817 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent =
jmitc91516 0:a5c253316af6 3818 (B1 & 0x01);
jmitc91516 0:a5c253316af6 3819 if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent)
jmitc91516 0:a5c253316af6 3820 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 3821 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapTranspColor =
jmitc91516 0:a5c253316af6 3822 (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 3823 #else
jmitc91516 0:a5c253316af6 3824 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapTranspColor =
jmitc91516 0:a5c253316af6 3825 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3826 #endif
jmitc91516 0:a5c253316af6 3827 #else
jmitc91516 0:a5c253316af6 3828 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent = 0;
jmitc91516 0:a5c253316af6 3829 #endif
jmitc91516 0:a5c253316af6 3830 }
jmitc91516 0:a5c253316af6 3831 sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine = -1;
jmitc91516 0:a5c253316af6 3832 }
jmitc91516 0:a5c253316af6 3833 #endif
jmitc91516 0:a5c253316af6 3834 }
jmitc91516 0:a5c253316af6 3835 #endif
jmitc91516 0:a5c253316af6 3836
jmitc91516 0:a5c253316af6 3837 #ifdef GuiConst_ITEM_GRAPH_INUSE
jmitc91516 0:a5c253316af6 3838 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPH)
jmitc91516 0:a5c253316af6 3839 {
jmitc91516 0:a5c253316af6 3840 GraphIndex = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3841 sgl.GlobalGraphIndex = GraphIndex;
jmitc91516 0:a5c253316af6 3842
jmitc91516 0:a5c253316af6 3843 sgl.GraphAry[GraphIndex].InUse = GuiLib_GRAPH_STRUCTURE_USED;
jmitc91516 0:a5c253316af6 3844 sgl.GraphAry[GraphIndex].OriginOffsetX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3845 sgl.GraphAry[GraphIndex].OriginOffsetY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3846 sgl.GraphAry[GraphIndex].ForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3847 sgl.GraphAry[GraphIndex].BackColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 3848
jmitc91516 0:a5c253316af6 3849 for (Axis = GuiLib_GRAPHAXIS_X; Axis <= GuiLib_GRAPHAXIS_Y; Axis++)
jmitc91516 0:a5c253316af6 3850 {
jmitc91516 0:a5c253316af6 3851 sgl.GraphAry[GraphIndex].GraphAxesCnt[Axis] = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3852 for (L = 0; L < sgl.GraphAry[GraphIndex].GraphAxesCnt[Axis]; L++)
jmitc91516 0:a5c253316af6 3853 {
jmitc91516 0:a5c253316af6 3854 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags = 0;
jmitc91516 0:a5c253316af6 3855 B = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3856 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Visible = 1;
jmitc91516 0:a5c253316af6 3857 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Line = B & 0x01;
jmitc91516 0:a5c253316af6 3858 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].LineBetweenAxes = (B >> 7) & 0x01;
jmitc91516 0:a5c253316af6 3859 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].LineNegative = (B >> 1) & 0x01;
jmitc91516 0:a5c253316af6 3860 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Arrow = (B >> 2) & 0x01;
jmitc91516 0:a5c253316af6 3861 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMajor = (B >> 3) & 0x01;
jmitc91516 0:a5c253316af6 3862 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMinor = (B >> 4) & 0x01;
jmitc91516 0:a5c253316af6 3863 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Numbers = (B >> 5) & 0x01;
jmitc91516 0:a5c253316af6 3864 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersAtOrigo = (B >> 6) & 0x01;
jmitc91516 0:a5c253316af6 3865 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Offset =
jmitc91516 0:a5c253316af6 3866 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3867 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].ArrowLength =
jmitc91516 0:a5c253316af6 3868 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3869 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].ArrowWidth =
jmitc91516 0:a5c253316af6 3870 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3871 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMajorLength =
jmitc91516 0:a5c253316af6 3872 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3873 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMajorWidth =
jmitc91516 0:a5c253316af6 3874 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3875 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMinorLength =
jmitc91516 0:a5c253316af6 3876 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3877 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMinorWidth =
jmitc91516 0:a5c253316af6 3878 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3879 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMinValue =
jmitc91516 0:a5c253316af6 3880 GetItemLong(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3881 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMinValueOrg =
jmitc91516 0:a5c253316af6 3882 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMinValue;
jmitc91516 0:a5c253316af6 3883 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMaxValue =
jmitc91516 0:a5c253316af6 3884 GetItemLong(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3885 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMaxValueOrg =
jmitc91516 0:a5c253316af6 3886 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMaxValue;
jmitc91516 0:a5c253316af6 3887 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersStepMajor =
jmitc91516 0:a5c253316af6 3888 GetItemLong(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3889 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersStepMinor =
jmitc91516 0:a5c253316af6 3890 GetItemLong(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3891 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersOffset =
jmitc91516 0:a5c253316af6 3892 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3893 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersAtEnd =
jmitc91516 0:a5c253316af6 3894 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3895 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatFieldWidth =
jmitc91516 0:a5c253316af6 3896 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3897 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatDecimals =
jmitc91516 0:a5c253316af6 3898 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3899 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatAlignment =
jmitc91516 0:a5c253316af6 3900 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3901 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatFormat =
jmitc91516 0:a5c253316af6 3902 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3903 B = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3904 if (B & 0x01)
jmitc91516 0:a5c253316af6 3905 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATSHOWSIGN;
jmitc91516 0:a5c253316af6 3906 else
jmitc91516 0:a5c253316af6 3907 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATSHOWSIGN;
jmitc91516 0:a5c253316af6 3908 if (B & 0x02)
jmitc91516 0:a5c253316af6 3909 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATZEROPADDING;
jmitc91516 0:a5c253316af6 3910 else
jmitc91516 0:a5c253316af6 3911 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATZEROPADDING;
jmitc91516 0:a5c253316af6 3912 if (B & 0x04)
jmitc91516 0:a5c253316af6 3913 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATTRAILINGZEROS;
jmitc91516 0:a5c253316af6 3914 else
jmitc91516 0:a5c253316af6 3915 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATTRAILINGZEROS;
jmitc91516 0:a5c253316af6 3916 if (B & 0x08)
jmitc91516 0:a5c253316af6 3917 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
jmitc91516 0:a5c253316af6 3918 else
jmitc91516 0:a5c253316af6 3919 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
jmitc91516 0:a5c253316af6 3920 sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Scale = 10000;
jmitc91516 0:a5c253316af6 3921 }
jmitc91516 0:a5c253316af6 3922 }
jmitc91516 0:a5c253316af6 3923
jmitc91516 0:a5c253316af6 3924 sgl.GraphAry[GraphIndex].GraphDataSetCnt = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3925 for (L = 0; L < sgl.GraphAry[GraphIndex].GraphDataSetCnt; L++)
jmitc91516 0:a5c253316af6 3926 {
jmitc91516 0:a5c253316af6 3927 sgl.GraphAry[GraphIndex].GraphDataSets[L].DataSize = 0;
jmitc91516 0:a5c253316af6 3928 sgl.GraphAry[GraphIndex].GraphDataSets[L].DataFirst = 0;
jmitc91516 0:a5c253316af6 3929 sgl.GraphAry[GraphIndex].GraphDataSets[L].DataCount = 0;
jmitc91516 0:a5c253316af6 3930 sgl.GraphAry[GraphIndex].GraphDataSets[L].AxisIndexX = 0;
jmitc91516 0:a5c253316af6 3931 sgl.GraphAry[GraphIndex].GraphDataSets[L].AxisIndexY = 0;
jmitc91516 0:a5c253316af6 3932 sgl.GraphAry[GraphIndex].GraphDataSets[L].Visible = 1;
jmitc91516 0:a5c253316af6 3933 sgl.GraphAry[GraphIndex].GraphDataSets[L].Representation =
jmitc91516 0:a5c253316af6 3934 GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3935 sgl.GraphAry[GraphIndex].GraphDataSets[L].Width =
jmitc91516 0:a5c253316af6 3936 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3937 sgl.GraphAry[GraphIndex].GraphDataSets[L].Thickness =
jmitc91516 0:a5c253316af6 3938 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3939 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3940 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 3941 {
jmitc91516 0:a5c253316af6 3942 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3943 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 3944 break;
jmitc91516 0:a5c253316af6 3945 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3946 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3947 break;
jmitc91516 0:a5c253316af6 3948 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3949 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3950 break;
jmitc91516 0:a5c253316af6 3951 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3952 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 3953 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3954 break;
jmitc91516 0:a5c253316af6 3955 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3956 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = TmpBackColor;
jmitc91516 0:a5c253316af6 3957 break;
jmitc91516 0:a5c253316af6 3958 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3959 break;
jmitc91516 0:a5c253316af6 3960 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3961 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor =
jmitc91516 0:a5c253316af6 3962 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 3963 break;
jmitc91516 0:a5c253316af6 3964 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 3965 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3966 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 3967 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 3968 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 3969 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 3970 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3971 else
jmitc91516 0:a5c253316af6 3972 sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 3973 break;
jmitc91516 0:a5c253316af6 3974 }
jmitc91516 0:a5c253316af6 3975 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColorTransparent = 0;
jmitc91516 0:a5c253316af6 3976 switch ((B1 & 0x38) >> 3)
jmitc91516 0:a5c253316af6 3977 {
jmitc91516 0:a5c253316af6 3978 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 3979 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = sgl.CurItem.BackColor;
jmitc91516 0:a5c253316af6 3980 break;
jmitc91516 0:a5c253316af6 3981 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 3982 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 3983 break;
jmitc91516 0:a5c253316af6 3984 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 3985 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 3986 break;
jmitc91516 0:a5c253316af6 3987 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 3988 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 3989 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 3990 break;
jmitc91516 0:a5c253316af6 3991 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 3992 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = TmpForeColor;
jmitc91516 0:a5c253316af6 3993 break;
jmitc91516 0:a5c253316af6 3994 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 3995 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColorTransparent = 1;
jmitc91516 0:a5c253316af6 3996 break;
jmitc91516 0:a5c253316af6 3997 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 3998 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor =
jmitc91516 0:a5c253316af6 3999 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 4000 break;
jmitc91516 0:a5c253316af6 4001 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 4002 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4003 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 4004 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 4005 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 4006 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 4007 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4008 else
jmitc91516 0:a5c253316af6 4009 sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 4010 break;
jmitc91516 0:a5c253316af6 4011 }
jmitc91516 0:a5c253316af6 4012 }
jmitc91516 0:a5c253316af6 4013 }
jmitc91516 0:a5c253316af6 4014 #endif
jmitc91516 0:a5c253316af6 4015
jmitc91516 0:a5c253316af6 4016 #ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
jmitc91516 0:a5c253316af6 4017 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPHICSLAYER)
jmitc91516 0:a5c253316af6 4018 {
jmitc91516 0:a5c253316af6 4019 GraphicsLayerIndex = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4020 sgl.GlobalGraphicsLayerIndex = GraphicsLayerIndex;
jmitc91516 0:a5c253316af6 4021
jmitc91516 0:a5c253316af6 4022 sgl.GraphicsLayerList[GraphicsLayerIndex].InUse = GuiLib_GRAPHICS_LAYER_USED;
jmitc91516 0:a5c253316af6 4023 sgl.GraphicsLayerList[GraphicsLayerIndex].SizeMode = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4024 sgl.GraphicsLayerList[GraphicsLayerIndex].InitMode = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4025 }
jmitc91516 0:a5c253316af6 4026
jmitc91516 0:a5c253316af6 4027 if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPHICSFILTER)
jmitc91516 0:a5c253316af6 4028 {
jmitc91516 0:a5c253316af6 4029 GraphicsFilterIndex = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4030 sgl.GlobalGraphicsFilterIndex = GraphicsFilterIndex;
jmitc91516 0:a5c253316af6 4031
jmitc91516 0:a5c253316af6 4032 sgl.GraphicsFilterList[GraphicsFilterIndex].InUse = GuiLib_GRAPHICS_FILTER_USED;
jmitc91516 0:a5c253316af6 4033 sgl.GraphicsFilterList[GraphicsFilterIndex].SourceLayerIndexNo =
jmitc91516 0:a5c253316af6 4034 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4035 sgl.GraphicsFilterList[GraphicsFilterIndex].DestLayerIndexNo =
jmitc91516 0:a5c253316af6 4036 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4037 sgl.GraphicsFilterList[GraphicsFilterIndex].ContAtLayerIndexNo =
jmitc91516 0:a5c253316af6 4038 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4039 for (I = 0; I <= 9; I++)
jmitc91516 0:a5c253316af6 4040 {
jmitc91516 0:a5c253316af6 4041 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4042 if (B1 == 0)
jmitc91516 0:a5c253316af6 4043 {
jmitc91516 0:a5c253316af6 4044 sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarType[I] = GuiLib_VAR_NONE;
jmitc91516 0:a5c253316af6 4045 sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarPtr[I] = 0;
jmitc91516 0:a5c253316af6 4046 sgl.GraphicsFilterList[GraphicsFilterIndex].ParValueNum[I] =
jmitc91516 0:a5c253316af6 4047 GetItemLong(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4048 }
jmitc91516 0:a5c253316af6 4049 else
jmitc91516 0:a5c253316af6 4050 {
jmitc91516 0:a5c253316af6 4051 PtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4052 if (PtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 4053 PtrIdx = 0;
jmitc91516 0:a5c253316af6 4054
jmitc91516 0:a5c253316af6 4055 sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarType[I] =
jmitc91516 0:a5c253316af6 4056 ReadByte(GuiStruct_VarTypeList[PtrIdx]);
jmitc91516 0:a5c253316af6 4057 sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarPtr[I] =
jmitc91516 0:a5c253316af6 4058 (void*)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
jmitc91516 0:a5c253316af6 4059 sgl.GraphicsFilterList[GraphicsFilterIndex].ParValueNum[I] = 0;
jmitc91516 0:a5c253316af6 4060 }
jmitc91516 0:a5c253316af6 4061 }
jmitc91516 0:a5c253316af6 4062 }
jmitc91516 0:a5c253316af6 4063 #endif
jmitc91516 0:a5c253316af6 4064
jmitc91516 0:a5c253316af6 4065 #ifdef GuiConst_ITEM_CHECKBOX_INUSE
jmitc91516 0:a5c253316af6 4066 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_CHECKBOX)
jmitc91516 0:a5c253316af6 4067 {
jmitc91516 0:a5c253316af6 4068 sgl.CurItem.CompPars.CompCheckBox.Style = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4069 sgl.CurItem.CompPars.CompCheckBox.Size = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4070 switch (sgl.CurItem.CompPars.CompCheckBox.Style)
jmitc91516 0:a5c253316af6 4071 {
jmitc91516 0:a5c253316af6 4072 case GuiLib_CHECKBOX_ICON:
jmitc91516 0:a5c253316af6 4073 sgl.CurItem.CompPars.CompCheckBox.IconPtr =
jmitc91516 0:a5c253316af6 4074 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 4075 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4076 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 4077 #else
jmitc91516 0:a5c253316af6 4078 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 4079 #endif
jmitc91516 0:a5c253316af6 4080 sgl.CurItem.CompPars.CompCheckBox.IconFont = GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 4081 sgl.CurItem.CompPars.CompCheckBox.IconOffsetX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4082 sgl.CurItem.CompPars.CompCheckBox.IconOffsetY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4083 break;
jmitc91516 0:a5c253316af6 4084 case GuiLib_CHECKBOX_BITMAP:
jmitc91516 0:a5c253316af6 4085 sgl.CurItem.CompPars.CompCheckBox.BitmapIndex = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4086 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4087 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 4088 sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent = (B1 & 0x01);
jmitc91516 0:a5c253316af6 4089 if (sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent)
jmitc91516 0:a5c253316af6 4090 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 4091 sgl.CurItem.CompPars.CompCheckBox.BitmapTranspColor = (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 4092 #else
jmitc91516 0:a5c253316af6 4093 sgl.CurItem.CompPars.CompCheckBox.BitmapTranspColor =
jmitc91516 0:a5c253316af6 4094 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4095 #endif
jmitc91516 0:a5c253316af6 4096 #else
jmitc91516 0:a5c253316af6 4097 sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent = 0;
jmitc91516 0:a5c253316af6 4098 #endif
jmitc91516 0:a5c253316af6 4099 break;
jmitc91516 0:a5c253316af6 4100 }
jmitc91516 0:a5c253316af6 4101
jmitc91516 0:a5c253316af6 4102 sgl.CurItem.CompPars.CompCheckBox.MarkStyle = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4103 if (sgl.CurItem.CompPars.CompCheckBox.MarkStyle != GuiLib_CHECKBOX_MARK_BITMAP)
jmitc91516 0:a5c253316af6 4104 {
jmitc91516 0:a5c253316af6 4105 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4106 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 4107 {
jmitc91516 0:a5c253316af6 4108 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 4109 sgl.CurItem.CompPars.CompCheckBox.MarkColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 4110 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 4111 break;
jmitc91516 0:a5c253316af6 4112 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 4113 sgl.CurItem.CompPars.CompCheckBox.MarkColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4114 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4115 break;
jmitc91516 0:a5c253316af6 4116 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 4117 sgl.CurItem.CompPars.CompCheckBox.MarkColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 4118 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4119 break;
jmitc91516 0:a5c253316af6 4120 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 4121 sgl.CurItem.CompPars.CompCheckBox.MarkColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 4122 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4123 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4124 break;
jmitc91516 0:a5c253316af6 4125 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 4126 sgl.CurItem.CompPars.CompCheckBox.MarkColor = TmpBackColor;
jmitc91516 0:a5c253316af6 4127 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = TmpBackColIdx;
jmitc91516 0:a5c253316af6 4128 break;
jmitc91516 0:a5c253316af6 4129 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 4130 break;
jmitc91516 0:a5c253316af6 4131 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 4132 sgl.CurItem.CompPars.CompCheckBox.MarkColor =
jmitc91516 0:a5c253316af6 4133 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 4134 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4135 break;
jmitc91516 0:a5c253316af6 4136 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 4137 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4138 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 4139 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 4140 ColVarPtr = (GuiConst_INTCOLOR*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 4141 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 4142 {
jmitc91516 0:a5c253316af6 4143 sgl.CurItem.CompPars.CompCheckBox.MarkColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4144 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4145 }
jmitc91516 0:a5c253316af6 4146 else
jmitc91516 0:a5c253316af6 4147 {
jmitc91516 0:a5c253316af6 4148 sgl.CurItem.CompPars.CompCheckBox.MarkColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 4149 sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 4150 }
jmitc91516 0:a5c253316af6 4151 break;
jmitc91516 0:a5c253316af6 4152 }
jmitc91516 0:a5c253316af6 4153 }
jmitc91516 0:a5c253316af6 4154 switch (sgl.CurItem.CompPars.CompCheckBox.MarkStyle)
jmitc91516 0:a5c253316af6 4155 {
jmitc91516 0:a5c253316af6 4156 case GuiLib_CHECKBOX_MARK_ICON:
jmitc91516 0:a5c253316af6 4157 sgl.CurItem.CompPars.CompCheckBox.MarkIconPtr =
jmitc91516 0:a5c253316af6 4158 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 4159 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4160 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 4161 #else
jmitc91516 0:a5c253316af6 4162 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 4163 #endif
jmitc91516 0:a5c253316af6 4164 sgl.CurItem.CompPars.CompCheckBox.MarkIconFont =
jmitc91516 0:a5c253316af6 4165 GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 4166 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX =
jmitc91516 0:a5c253316af6 4167 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4168 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY =
jmitc91516 0:a5c253316af6 4169 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4170 break;
jmitc91516 0:a5c253316af6 4171 case GuiLib_CHECKBOX_MARK_BITMAP:
jmitc91516 0:a5c253316af6 4172 sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIndex =
jmitc91516 0:a5c253316af6 4173 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4174 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4175 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 4176 sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent = (B1 & 0x01);
jmitc91516 0:a5c253316af6 4177 if (sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent)
jmitc91516 0:a5c253316af6 4178 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 4179 sgl.CurItem.CompPars.CompCheckBox.MarkBitmapTranspColor =
jmitc91516 0:a5c253316af6 4180 (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 4181 #else
jmitc91516 0:a5c253316af6 4182 sgl.CurItem.CompPars.CompCheckBox.MarkBitmapTranspColor =
jmitc91516 0:a5c253316af6 4183 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4184 #endif
jmitc91516 0:a5c253316af6 4185 #else
jmitc91516 0:a5c253316af6 4186 sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent = 0;
jmitc91516 0:a5c253316af6 4187 #endif
jmitc91516 0:a5c253316af6 4188 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX =
jmitc91516 0:a5c253316af6 4189 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4190 sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY =
jmitc91516 0:a5c253316af6 4191 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4192 break;
jmitc91516 0:a5c253316af6 4193 }
jmitc91516 0:a5c253316af6 4194 }
jmitc91516 0:a5c253316af6 4195 #endif
jmitc91516 0:a5c253316af6 4196
jmitc91516 0:a5c253316af6 4197 #ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
jmitc91516 0:a5c253316af6 4198 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_RADIOBUTTON)
jmitc91516 0:a5c253316af6 4199 {
jmitc91516 0:a5c253316af6 4200 sgl.CurItem.CompPars.CompRadioButton.Style = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4201 sgl.CurItem.CompPars.CompRadioButton.Size = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4202 sgl.CurItem.CompPars.CompRadioButton.Count = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4203 sgl.CurItem.CompPars.CompRadioButton.InterDistance = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4204 switch (sgl.CurItem.CompPars.CompRadioButton.Style)
jmitc91516 0:a5c253316af6 4205 {
jmitc91516 0:a5c253316af6 4206 case GuiLib_RADIOBUTTON_ICON:
jmitc91516 0:a5c253316af6 4207 sgl.CurItem.CompPars.CompRadioButton.IconPtr =
jmitc91516 0:a5c253316af6 4208 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 4209 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4210 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 4211 #else
jmitc91516 0:a5c253316af6 4212 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 4213 #endif
jmitc91516 0:a5c253316af6 4214 sgl.CurItem.CompPars.CompRadioButton.IconFont = GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 4215 sgl.CurItem.CompPars.CompRadioButton.IconOffsetX = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4216 sgl.CurItem.CompPars.CompRadioButton.IconOffsetY = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4217 break;
jmitc91516 0:a5c253316af6 4218 case GuiLib_RADIOBUTTON_BITMAP:
jmitc91516 0:a5c253316af6 4219 sgl.CurItem.CompPars.CompRadioButton.BitmapIndex = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4220 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4221 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 4222 sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent = (B1 & 0x01);
jmitc91516 0:a5c253316af6 4223 if (sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent)
jmitc91516 0:a5c253316af6 4224 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 4225 sgl.CurItem.CompPars.CompRadioButton.BitmapTranspColor = (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 4226 #else
jmitc91516 0:a5c253316af6 4227 sgl.CurItem.CompPars.CompRadioButton.BitmapTranspColor =
jmitc91516 0:a5c253316af6 4228 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4229 #endif
jmitc91516 0:a5c253316af6 4230 #else
jmitc91516 0:a5c253316af6 4231 sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent = 0;
jmitc91516 0:a5c253316af6 4232 #endif
jmitc91516 0:a5c253316af6 4233 break;
jmitc91516 0:a5c253316af6 4234 }
jmitc91516 0:a5c253316af6 4235
jmitc91516 0:a5c253316af6 4236 sgl.CurItem.CompPars.CompRadioButton.MarkStyle = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4237 if (sgl.CurItem.CompPars.CompRadioButton.MarkStyle != GuiLib_RADIOBUTTON_MARK_BITMAP)
jmitc91516 0:a5c253316af6 4238 {
jmitc91516 0:a5c253316af6 4239 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4240 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 4241 {
jmitc91516 0:a5c253316af6 4242 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 4243 sgl.CurItem.CompPars.CompRadioButton.MarkColor = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 4244 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 4245 break;
jmitc91516 0:a5c253316af6 4246 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 4247 sgl.CurItem.CompPars.CompRadioButton.MarkColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4248 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4249 break;
jmitc91516 0:a5c253316af6 4250 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 4251 sgl.CurItem.CompPars.CompRadioButton.MarkColor = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 4252 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4253 break;
jmitc91516 0:a5c253316af6 4254 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 4255 sgl.CurItem.CompPars.CompRadioButton.MarkColor = (GuiConst_INTCOLOR)
jmitc91516 0:a5c253316af6 4256 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4257 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4258 break;
jmitc91516 0:a5c253316af6 4259 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 4260 sgl.CurItem.CompPars.CompRadioButton.MarkColor = TmpBackColor;
jmitc91516 0:a5c253316af6 4261 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = TmpBackColIdx;
jmitc91516 0:a5c253316af6 4262 break;
jmitc91516 0:a5c253316af6 4263 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 4264 break;
jmitc91516 0:a5c253316af6 4265 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 4266 sgl.CurItem.CompPars.CompRadioButton.MarkColor =
jmitc91516 0:a5c253316af6 4267 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 4268 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4269 break;
jmitc91516 0:a5c253316af6 4270 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 4271 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4272 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 4273 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 4274 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 4275 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 4276 {
jmitc91516 0:a5c253316af6 4277 sgl.CurItem.CompPars.CompRadioButton.MarkColor = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4278 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
jmitc91516 0:a5c253316af6 4279 }
jmitc91516 0:a5c253316af6 4280 else
jmitc91516 0:a5c253316af6 4281 {
jmitc91516 0:a5c253316af6 4282 sgl.CurItem.CompPars.CompRadioButton.MarkColor = *ColVarPtr;
jmitc91516 0:a5c253316af6 4283 sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 4284 }
jmitc91516 0:a5c253316af6 4285 break;
jmitc91516 0:a5c253316af6 4286 }
jmitc91516 0:a5c253316af6 4287 }
jmitc91516 0:a5c253316af6 4288 switch (sgl.CurItem.CompPars.CompRadioButton.MarkStyle)
jmitc91516 0:a5c253316af6 4289 {
jmitc91516 0:a5c253316af6 4290 case GuiLib_RADIOBUTTON_MARK_ICON:
jmitc91516 0:a5c253316af6 4291 sgl.CurItem.CompPars.CompRadioButton.MarkIconPtr =
jmitc91516 0:a5c253316af6 4292 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 4293 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4294 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 4295 #else
jmitc91516 0:a5c253316af6 4296 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 4297 #endif
jmitc91516 0:a5c253316af6 4298 sgl.CurItem.CompPars.CompRadioButton.MarkIconFont =
jmitc91516 0:a5c253316af6 4299 GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 4300 sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX =
jmitc91516 0:a5c253316af6 4301 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4302 sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY =
jmitc91516 0:a5c253316af6 4303 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4304 break;
jmitc91516 0:a5c253316af6 4305 case GuiLib_RADIOBUTTON_MARK_BITMAP:
jmitc91516 0:a5c253316af6 4306 sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIndex =
jmitc91516 0:a5c253316af6 4307 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4308 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4309 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 4310 sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent = (B1 & 0x01);
jmitc91516 0:a5c253316af6 4311 if (sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent)
jmitc91516 0:a5c253316af6 4312 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 4313 sgl.CurItem.CompPars.CompRadioButton.MarkBitmapTranspColor =
jmitc91516 0:a5c253316af6 4314 (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 4315 #else
jmitc91516 0:a5c253316af6 4316 sgl.CurItem.CompPars.CompRadioButton.MarkBitmapTranspColor =
jmitc91516 0:a5c253316af6 4317 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4318 #endif
jmitc91516 0:a5c253316af6 4319 #else
jmitc91516 0:a5c253316af6 4320 sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent = 0;
jmitc91516 0:a5c253316af6 4321 #endif
jmitc91516 0:a5c253316af6 4322 sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX =
jmitc91516 0:a5c253316af6 4323 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4324 sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY =
jmitc91516 0:a5c253316af6 4325 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4326 break;
jmitc91516 0:a5c253316af6 4327 }
jmitc91516 0:a5c253316af6 4328 }
jmitc91516 0:a5c253316af6 4329 #endif
jmitc91516 0:a5c253316af6 4330
jmitc91516 0:a5c253316af6 4331 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 4332 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON)
jmitc91516 0:a5c253316af6 4333 {
jmitc91516 0:a5c253316af6 4334 sgl.CurItem.CompPars.CompButton.Layout = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4335
jmitc91516 0:a5c253316af6 4336 sgl.CurItem.CompPars.CompButton.BodyStyle = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4337 if ((sgl.CurItem.CompPars.CompButton.BodyStyle == GuiLib_BUTTON_BODY_ICON) ||
jmitc91516 0:a5c253316af6 4338 (sgl.CurItem.CompPars.CompButton.BodyStyle == GuiLib_BUTTON_BODY_BITMAP))
jmitc91516 0:a5c253316af6 4339 {
jmitc91516 0:a5c253316af6 4340 sgl.CurItem.CompPars.CompButton.BodyLikeUp = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4341 for (I = 0; I < 3; I++)
jmitc91516 0:a5c253316af6 4342 if ((I == 0) ||
jmitc91516 0:a5c253316af6 4343 ((I == 1) && !(sgl.CurItem.CompPars.CompButton.BodyLikeUp & 0x01)) ||
jmitc91516 0:a5c253316af6 4344 ((I == 2) && !(sgl.CurItem.CompPars.CompButton.BodyLikeUp & 0x02)))
jmitc91516 0:a5c253316af6 4345 {
jmitc91516 0:a5c253316af6 4346 switch (sgl.CurItem.CompPars.CompButton.BodyStyle)
jmitc91516 0:a5c253316af6 4347 {
jmitc91516 0:a5c253316af6 4348 case GuiLib_BUTTON_BODY_ICON:
jmitc91516 0:a5c253316af6 4349 sgl.CurItem.CompPars.CompButton.BodyIconPtr[I] =
jmitc91516 0:a5c253316af6 4350 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 4351 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4352 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 4353 #else
jmitc91516 0:a5c253316af6 4354 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 4355 #endif
jmitc91516 0:a5c253316af6 4356 sgl.CurItem.CompPars.CompButton.BodyIconFont[I] =
jmitc91516 0:a5c253316af6 4357 GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 4358 sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[I] =
jmitc91516 0:a5c253316af6 4359 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4360 sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[I] =
jmitc91516 0:a5c253316af6 4361 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4362 break;
jmitc91516 0:a5c253316af6 4363 case GuiLib_BUTTON_BODY_BITMAP:
jmitc91516 0:a5c253316af6 4364 sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[I] =
jmitc91516 0:a5c253316af6 4365 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4366 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4367 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 4368 sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I] =
jmitc91516 0:a5c253316af6 4369 (B1 & 0x01);
jmitc91516 0:a5c253316af6 4370 if (sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I])
jmitc91516 0:a5c253316af6 4371 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 4372 sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[I] =
jmitc91516 0:a5c253316af6 4373 (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 4374 #else
jmitc91516 0:a5c253316af6 4375 sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[I] =
jmitc91516 0:a5c253316af6 4376 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4377 #endif
jmitc91516 0:a5c253316af6 4378 #else
jmitc91516 0:a5c253316af6 4379 sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I] = 0;
jmitc91516 0:a5c253316af6 4380 #endif
jmitc91516 0:a5c253316af6 4381 break;
jmitc91516 0:a5c253316af6 4382 }
jmitc91516 0:a5c253316af6 4383 }
jmitc91516 0:a5c253316af6 4384 else
jmitc91516 0:a5c253316af6 4385 {
jmitc91516 0:a5c253316af6 4386 switch (sgl.CurItem.CompPars.CompButton.BodyStyle)
jmitc91516 0:a5c253316af6 4387 {
jmitc91516 0:a5c253316af6 4388 case GuiLib_BUTTON_BODY_ICON:
jmitc91516 0:a5c253316af6 4389 sgl.CurItem.CompPars.CompButton.BodyIconPtr[I] =
jmitc91516 0:a5c253316af6 4390 sgl.CurItem.CompPars.CompButton.BodyIconPtr[0];
jmitc91516 0:a5c253316af6 4391 sgl.CurItem.CompPars.CompButton.BodyIconFont[I] =
jmitc91516 0:a5c253316af6 4392 sgl.CurItem.CompPars.CompButton.BodyIconFont[0];
jmitc91516 0:a5c253316af6 4393 sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[I] =
jmitc91516 0:a5c253316af6 4394 sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[0];
jmitc91516 0:a5c253316af6 4395 sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[I] =
jmitc91516 0:a5c253316af6 4396 sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[0];
jmitc91516 0:a5c253316af6 4397 break;
jmitc91516 0:a5c253316af6 4398 case GuiLib_BUTTON_BODY_BITMAP:
jmitc91516 0:a5c253316af6 4399 sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[I] =
jmitc91516 0:a5c253316af6 4400 sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[0];
jmitc91516 0:a5c253316af6 4401 sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I] =
jmitc91516 0:a5c253316af6 4402 sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[0];
jmitc91516 0:a5c253316af6 4403 sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[I] =
jmitc91516 0:a5c253316af6 4404 sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[0];
jmitc91516 0:a5c253316af6 4405 break;
jmitc91516 0:a5c253316af6 4406 }
jmitc91516 0:a5c253316af6 4407 }
jmitc91516 0:a5c253316af6 4408 }
jmitc91516 0:a5c253316af6 4409
jmitc91516 0:a5c253316af6 4410 if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_GLYPH)
jmitc91516 0:a5c253316af6 4411 {
jmitc91516 0:a5c253316af6 4412 sgl.CurItem.CompPars.CompButton.TextLikeUp = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4413 for (I = 0; I < 3; I++)
jmitc91516 0:a5c253316af6 4414 {
jmitc91516 0:a5c253316af6 4415 if ((I == 0) ||
jmitc91516 0:a5c253316af6 4416 ((I == 1) && !(sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x04)) ||
jmitc91516 0:a5c253316af6 4417 ((I == 2) && !(sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x08)))
jmitc91516 0:a5c253316af6 4418 {
jmitc91516 0:a5c253316af6 4419 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4420 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 4421 {
jmitc91516 0:a5c253316af6 4422 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 4423 sgl.CurItem.CompPars.CompButton.TextColor[I] = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 4424 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 4425 break;
jmitc91516 0:a5c253316af6 4426 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 4427 sgl.CurItem.CompPars.CompButton.TextColor[I] = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4428 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4429 break;
jmitc91516 0:a5c253316af6 4430 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 4431 sgl.CurItem.CompPars.CompButton.TextColor[I] = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 4432 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4433 break;
jmitc91516 0:a5c253316af6 4434 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 4435 sgl.CurItem.CompPars.CompButton.TextColor[I] =
jmitc91516 0:a5c253316af6 4436 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4437 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4438 break;
jmitc91516 0:a5c253316af6 4439 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 4440 sgl.CurItem.CompPars.CompButton.TextColor[I] = TmpBackColor;
jmitc91516 0:a5c253316af6 4441 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = TmpBackColIdx;
jmitc91516 0:a5c253316af6 4442 break;
jmitc91516 0:a5c253316af6 4443 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 4444 break;
jmitc91516 0:a5c253316af6 4445 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 4446 sgl.CurItem.CompPars.CompButton.TextColor[I] =
jmitc91516 0:a5c253316af6 4447 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 4448 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4449 break;
jmitc91516 0:a5c253316af6 4450 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 4451 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4452 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 4453 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 4454 ColVarPtr = (GuiConst_INTCOLOR*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 4455 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 4456 {
jmitc91516 0:a5c253316af6 4457 sgl.CurItem.CompPars.CompButton.TextColor[I] = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4458 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4459 }
jmitc91516 0:a5c253316af6 4460 else
jmitc91516 0:a5c253316af6 4461 {
jmitc91516 0:a5c253316af6 4462 sgl.CurItem.CompPars.CompButton.TextColor[I] = *ColVarPtr;
jmitc91516 0:a5c253316af6 4463 sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 4464 }
jmitc91516 0:a5c253316af6 4465 break;
jmitc91516 0:a5c253316af6 4466 }
jmitc91516 0:a5c253316af6 4467
jmitc91516 0:a5c253316af6 4468 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4469 if (B1 & 0x04)
jmitc91516 0:a5c253316af6 4470 sgl.CurItem.TextPar[I].BitFlags |= GuiLib_BITFLAG_UNDERLINE;
jmitc91516 0:a5c253316af6 4471 else
jmitc91516 0:a5c253316af6 4472 sgl.CurItem.TextPar[I].BitFlags &= ~GuiLib_BITFLAG_UNDERLINE;
jmitc91516 0:a5c253316af6 4473 B1 = B1 & 0x03;
jmitc91516 0:a5c253316af6 4474 if (B1 != GuiLib_PS_NOCHANGE)
jmitc91516 0:a5c253316af6 4475 sgl.CurItem.TextPar[I].Ps = B1;
jmitc91516 0:a5c253316af6 4476 }
jmitc91516 0:a5c253316af6 4477 else
jmitc91516 0:a5c253316af6 4478 {
jmitc91516 0:a5c253316af6 4479 sgl.CurItem.CompPars.CompButton.TextColor[I] =
jmitc91516 0:a5c253316af6 4480 sgl.CurItem.CompPars.CompButton.TextColor[0];
jmitc91516 0:a5c253316af6 4481 sgl.CurItem.TextPar[I] = sgl.CurItem.TextPar[0];
jmitc91516 0:a5c253316af6 4482 }
jmitc91516 0:a5c253316af6 4483 }
jmitc91516 0:a5c253316af6 4484 }
jmitc91516 0:a5c253316af6 4485
jmitc91516 0:a5c253316af6 4486 if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_TEXT)
jmitc91516 0:a5c253316af6 4487 {
jmitc91516 0:a5c253316af6 4488 sgl.CurItem.CompPars.CompButton.GlyphStyle = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4489 sgl.CurItem.CompPars.CompButton.GlyphLikeUp = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4490 for (I = 0; I < 3; I++)
jmitc91516 0:a5c253316af6 4491 if ((I == 0) ||
jmitc91516 0:a5c253316af6 4492 ((I == 1) && !(sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x01)) ||
jmitc91516 0:a5c253316af6 4493 ((I == 2) && !(sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x02)))
jmitc91516 0:a5c253316af6 4494 {
jmitc91516 0:a5c253316af6 4495 switch (sgl.CurItem.CompPars.CompButton.GlyphStyle)
jmitc91516 0:a5c253316af6 4496 {
jmitc91516 0:a5c253316af6 4497 case GuiLib_BUTTON_GLYPH_ICON:
jmitc91516 0:a5c253316af6 4498 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4499 switch (B1 & 0x07)
jmitc91516 0:a5c253316af6 4500 {
jmitc91516 0:a5c253316af6 4501 case GuiLib_COLOR_NOCHANGE:
jmitc91516 0:a5c253316af6 4502 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = sgl.CurItem.ForeColor;
jmitc91516 0:a5c253316af6 4503 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = sgl.CurItem.ForeColorIndex;
jmitc91516 0:a5c253316af6 4504 break;
jmitc91516 0:a5c253316af6 4505 case GuiLib_COLOR_FORE:
jmitc91516 0:a5c253316af6 4506 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4507 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4508 break;
jmitc91516 0:a5c253316af6 4509 case GuiLib_COLOR_BACK:
jmitc91516 0:a5c253316af6 4510 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = GuiConst_PIXEL_OFF;
jmitc91516 0:a5c253316af6 4511 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4512 break;
jmitc91516 0:a5c253316af6 4513 case GuiLib_COLOR_OTHER:
jmitc91516 0:a5c253316af6 4514 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] =
jmitc91516 0:a5c253316af6 4515 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4516 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4517 break;
jmitc91516 0:a5c253316af6 4518 case GuiLib_COLOR_INVERT:
jmitc91516 0:a5c253316af6 4519 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = TmpBackColor;
jmitc91516 0:a5c253316af6 4520 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = TmpBackColIdx;
jmitc91516 0:a5c253316af6 4521 break;
jmitc91516 0:a5c253316af6 4522 case GuiLib_COLOR_TRANSP:
jmitc91516 0:a5c253316af6 4523 break;
jmitc91516 0:a5c253316af6 4524 case GuiLib_COLOR_TABLE:
jmitc91516 0:a5c253316af6 4525 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] =
jmitc91516 0:a5c253316af6 4526 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
jmitc91516 0:a5c253316af6 4527 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4528 break;
jmitc91516 0:a5c253316af6 4529 case GuiLib_COLOR_VAR:
jmitc91516 0:a5c253316af6 4530 ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4531 if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 4532 ColVarPtrIdx = 0;
jmitc91516 0:a5c253316af6 4533 ColVarPtr = (GuiConst_INTCOLOR*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
jmitc91516 0:a5c253316af6 4534 if (ColVarPtr == 0)
jmitc91516 0:a5c253316af6 4535 {
jmitc91516 0:a5c253316af6 4536 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = GuiConst_PIXEL_ON;
jmitc91516 0:a5c253316af6 4537 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
jmitc91516 0:a5c253316af6 4538 }
jmitc91516 0:a5c253316af6 4539 else
jmitc91516 0:a5c253316af6 4540 {
jmitc91516 0:a5c253316af6 4541 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = *ColVarPtr;
jmitc91516 0:a5c253316af6 4542 sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = ColVarPtrIdx;
jmitc91516 0:a5c253316af6 4543 }
jmitc91516 0:a5c253316af6 4544 break;
jmitc91516 0:a5c253316af6 4545 }
jmitc91516 0:a5c253316af6 4546
jmitc91516 0:a5c253316af6 4547 sgl.CurItem.CompPars.CompButton.GlyphIconPtr[I] =
jmitc91516 0:a5c253316af6 4548 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
jmitc91516 0:a5c253316af6 4549 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4550 sgl.ItemDataPtr++;
jmitc91516 0:a5c253316af6 4551 #else
jmitc91516 0:a5c253316af6 4552 sgl.ItemDataPtr += 2;
jmitc91516 0:a5c253316af6 4553 #endif
jmitc91516 0:a5c253316af6 4554 sgl.CurItem.CompPars.CompButton.GlyphIconFont[I] =
jmitc91516 0:a5c253316af6 4555 GetItemByte(&sgl.ItemDataPtr) + 1;
jmitc91516 0:a5c253316af6 4556 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[I] =
jmitc91516 0:a5c253316af6 4557 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4558 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[I] =
jmitc91516 0:a5c253316af6 4559 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4560 break;
jmitc91516 0:a5c253316af6 4561 case GuiLib_BUTTON_GLYPH_BITMAP:
jmitc91516 0:a5c253316af6 4562 sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[I] =
jmitc91516 0:a5c253316af6 4563 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4564 B1 = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4565 #ifdef GuiConst_BITMAP_SUPPORT_ON
jmitc91516 0:a5c253316af6 4566 sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I] =
jmitc91516 0:a5c253316af6 4567 (B1 & 0x01);
jmitc91516 0:a5c253316af6 4568 if (sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I])
jmitc91516 0:a5c253316af6 4569 #ifdef GuiConst_COLOR_DEPTH_1
jmitc91516 0:a5c253316af6 4570 sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[I] =
jmitc91516 0:a5c253316af6 4571 (B1 >> 1) & 0x01;
jmitc91516 0:a5c253316af6 4572 #else
jmitc91516 0:a5c253316af6 4573 sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[I] =
jmitc91516 0:a5c253316af6 4574 GetItemColor(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4575 #endif
jmitc91516 0:a5c253316af6 4576 #else
jmitc91516 0:a5c253316af6 4577 sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I] = 0;
jmitc91516 0:a5c253316af6 4578 #endif
jmitc91516 0:a5c253316af6 4579 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[I] =
jmitc91516 0:a5c253316af6 4580 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4581 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[I] =
jmitc91516 0:a5c253316af6 4582 GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4583 break;
jmitc91516 0:a5c253316af6 4584 }
jmitc91516 0:a5c253316af6 4585 }
jmitc91516 0:a5c253316af6 4586 else
jmitc91516 0:a5c253316af6 4587 {
jmitc91516 0:a5c253316af6 4588 switch (sgl.CurItem.CompPars.CompButton.GlyphStyle)
jmitc91516 0:a5c253316af6 4589 {
jmitc91516 0:a5c253316af6 4590 case GuiLib_BUTTON_GLYPH_ICON:
jmitc91516 0:a5c253316af6 4591 sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] =
jmitc91516 0:a5c253316af6 4592 sgl.CurItem.CompPars.CompButton.GlyphIconColor[0];
jmitc91516 0:a5c253316af6 4593 sgl.CurItem.CompPars.CompButton.GlyphIconPtr[I] =
jmitc91516 0:a5c253316af6 4594 sgl.CurItem.CompPars.CompButton.GlyphIconPtr[0];
jmitc91516 0:a5c253316af6 4595 sgl.CurItem.CompPars.CompButton.GlyphIconFont[I] =
jmitc91516 0:a5c253316af6 4596 sgl.CurItem.CompPars.CompButton.GlyphIconFont[0];
jmitc91516 0:a5c253316af6 4597 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[I] =
jmitc91516 0:a5c253316af6 4598 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[0];
jmitc91516 0:a5c253316af6 4599 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[I] =
jmitc91516 0:a5c253316af6 4600 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[0];
jmitc91516 0:a5c253316af6 4601 break;
jmitc91516 0:a5c253316af6 4602 case GuiLib_BUTTON_GLYPH_BITMAP:
jmitc91516 0:a5c253316af6 4603 sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[I] =
jmitc91516 0:a5c253316af6 4604 sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[0];
jmitc91516 0:a5c253316af6 4605 sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I] =
jmitc91516 0:a5c253316af6 4606 sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[0];
jmitc91516 0:a5c253316af6 4607 sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[I] =
jmitc91516 0:a5c253316af6 4608 sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[0];
jmitc91516 0:a5c253316af6 4609 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[I] =
jmitc91516 0:a5c253316af6 4610 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[0];
jmitc91516 0:a5c253316af6 4611 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[I] =
jmitc91516 0:a5c253316af6 4612 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[0];
jmitc91516 0:a5c253316af6 4613 break;
jmitc91516 0:a5c253316af6 4614 }
jmitc91516 0:a5c253316af6 4615 }
jmitc91516 0:a5c253316af6 4616 }
jmitc91516 0:a5c253316af6 4617 }
jmitc91516 0:a5c253316af6 4618 #endif
jmitc91516 0:a5c253316af6 4619
jmitc91516 0:a5c253316af6 4620 #ifdef GuiConst_ITEM_PANEL_INUSE
jmitc91516 0:a5c253316af6 4621 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_PANEL)
jmitc91516 0:a5c253316af6 4622 {
jmitc91516 0:a5c253316af6 4623 sgl.CurItem.CompPars.CompPanel.Style = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4624 }
jmitc91516 0:a5c253316af6 4625 #endif
jmitc91516 0:a5c253316af6 4626
jmitc91516 0:a5c253316af6 4627 if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
jmitc91516 0:a5c253316af6 4628 GuiLib_ITEMBIT_TEXTBLOCK)) ||
jmitc91516 0:a5c253316af6 4629 (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON)))
jmitc91516 0:a5c253316af6 4630 {
jmitc91516 0:a5c253316af6 4631 if (sgl.CommonByte4 & 0x80)
jmitc91516 0:a5c253316af6 4632 {
jmitc91516 0:a5c253316af6 4633 #ifdef GuiConst_LANGUAGE_ALL_ACTIVE
jmitc91516 0:a5c253316af6 4634 N = GuiConst_LANGUAGE_CNT;
jmitc91516 0:a5c253316af6 4635 W1 = LanguageIndex;
jmitc91516 0:a5c253316af6 4636 #else
jmitc91516 0:a5c253316af6 4637 N = GuiConst_LANGUAGE_ACTIVE_CNT;
jmitc91516 0:a5c253316af6 4638 W1 = ReadWord(GuiFont_LanguageIndex[LanguageIndex]);
jmitc91516 0:a5c253316af6 4639 #endif
jmitc91516 0:a5c253316af6 4640 }
jmitc91516 0:a5c253316af6 4641 else
jmitc91516 0:a5c253316af6 4642 {
jmitc91516 0:a5c253316af6 4643 N = 1;
jmitc91516 0:a5c253316af6 4644 W1 = 0;
jmitc91516 0:a5c253316af6 4645 }
jmitc91516 0:a5c253316af6 4646
jmitc91516 0:a5c253316af6 4647 J = 0;
jmitc91516 0:a5c253316af6 4648 for (I = 0; I < sgl.CurItem.TextCnt; I++)
jmitc91516 0:a5c253316af6 4649 {
jmitc91516 0:a5c253316af6 4650 #ifndef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4651 TxtSum1 = 0;
jmitc91516 0:a5c253316af6 4652 TxtSum2 = 0;
jmitc91516 0:a5c253316af6 4653 #endif
jmitc91516 0:a5c253316af6 4654 for (X = 0; X < N; X++)
jmitc91516 0:a5c253316af6 4655 {
jmitc91516 0:a5c253316af6 4656 #ifdef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4657 Ti = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4658 if (X == W1)
jmitc91516 0:a5c253316af6 4659 {
jmitc91516 0:a5c253316af6 4660 sgl.CurItem.TextLength[J] = GetRemoteText(Ti);
jmitc91516 0:a5c253316af6 4661 sgl.CurItem.TextIndex[J] = Ti;
jmitc91516 0:a5c253316af6 4662 sgl.CurItem.TextPtr[J] = &sgl.GuiLib_RemoteTextBuffer[0];
jmitc91516 0:a5c253316af6 4663 }
jmitc91516 0:a5c253316af6 4664 #else
jmitc91516 0:a5c253316af6 4665 TxtSize = GetItemByte(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4666 if (TxtSize == 0xFF)
jmitc91516 0:a5c253316af6 4667 TxtSize = GetItemWord(&sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4668
jmitc91516 0:a5c253316af6 4669 if (X == W1)
jmitc91516 0:a5c253316af6 4670 {
jmitc91516 0:a5c253316af6 4671 sgl.CurItem.TextLength[J] = GuiLib_GET_MIN(TxtSize, GuiConst_MAX_TEXT_LEN);
jmitc91516 0:a5c253316af6 4672 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 4673 TxtReadSize = sgl.CurItem.TextLength[J] + 1;
jmitc91516 0:a5c253316af6 4674 #ifndef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4675 TxtReadSize *= 2;
jmitc91516 0:a5c253316af6 4676 #endif
jmitc91516 0:a5c253316af6 4677 #endif
jmitc91516 0:a5c253316af6 4678 }
jmitc91516 0:a5c253316af6 4679
jmitc91516 0:a5c253316af6 4680 TxtSize++;
jmitc91516 0:a5c253316af6 4681 #ifndef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4682 TxtSize *= 2;
jmitc91516 0:a5c253316af6 4683 #endif
jmitc91516 0:a5c253316af6 4684
jmitc91516 0:a5c253316af6 4685 #ifndef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4686 if (X < W1)
jmitc91516 0:a5c253316af6 4687 TxtSum1 += TxtSize;
jmitc91516 0:a5c253316af6 4688 else
jmitc91516 0:a5c253316af6 4689 TxtSum2 += TxtSize;
jmitc91516 0:a5c253316af6 4690 #endif
jmitc91516 0:a5c253316af6 4691 #endif // GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4692 }
jmitc91516 0:a5c253316af6 4693
jmitc91516 0:a5c253316af6 4694 #ifndef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4695 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 4696 sgl.RemoteStructOffset += TxtSum1;
jmitc91516 0:a5c253316af6 4697 GuiLib_RemoteDataReadBlock(
jmitc91516 0:a5c253316af6 4698 sgl.RemoteStructOffset,
jmitc91516 0:a5c253316af6 4699 TxtReadSize,
jmitc91516 0:a5c253316af6 4700 (GuiConst_INT8U*)&sgl.GuiLib_RemoteStructText);
jmitc91516 0:a5c253316af6 4701 sgl.CurItem.TextOffset[J] = sgl.RemoteStructOffset;
jmitc91516 0:a5c253316af6 4702 sgl.CurItem.TextPtr[J] = (GuiConst_TEXT PrefixGeneric *)&sgl.GuiLib_RemoteStructText;
jmitc91516 0:a5c253316af6 4703 sgl.RemoteStructOffset += TxtSum2;
jmitc91516 0:a5c253316af6 4704 #else
jmitc91516 0:a5c253316af6 4705 sgl.ItemDataPtr += TxtSum1;
jmitc91516 0:a5c253316af6 4706 sgl.CurItem.TextPtr[J] = (GuiConst_TEXT PrefixGeneric *)(sgl.ItemDataPtr);
jmitc91516 0:a5c253316af6 4707 sgl.ItemDataPtr += TxtSum2;
jmitc91516 0:a5c253316af6 4708 #endif
jmitc91516 0:a5c253316af6 4709 #endif // GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4710
jmitc91516 0:a5c253316af6 4711 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 4712 if ((sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON) &&
jmitc91516 0:a5c253316af6 4713 (((I == 0) && (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x01)) ||
jmitc91516 0:a5c253316af6 4714 ((I == 1) && (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x02))))
jmitc91516 0:a5c253316af6 4715 J++;
jmitc91516 0:a5c253316af6 4716 #endif
jmitc91516 0:a5c253316af6 4717 J++;
jmitc91516 0:a5c253316af6 4718 }
jmitc91516 0:a5c253316af6 4719
jmitc91516 0:a5c253316af6 4720 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 4721 if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON)
jmitc91516 0:a5c253316af6 4722 {
jmitc91516 0:a5c253316af6 4723 if (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x01)
jmitc91516 0:a5c253316af6 4724 {
jmitc91516 0:a5c253316af6 4725 sgl.CurItem.TextLength[1] = sgl.CurItem.TextLength[0];
jmitc91516 0:a5c253316af6 4726 sgl.CurItem.TextPtr[1] = sgl.CurItem.TextPtr[0];
jmitc91516 0:a5c253316af6 4727
jmitc91516 0:a5c253316af6 4728 #ifdef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4729 sgl.CurItem.TextIndex[1] = sgl.CurItem.TextIndex[0];
jmitc91516 0:a5c253316af6 4730 #else
jmitc91516 0:a5c253316af6 4731 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 4732 sgl.CurItem.TextOffset[1] = sgl.CurItem.TextOffset[0];
jmitc91516 0:a5c253316af6 4733 #endif
jmitc91516 0:a5c253316af6 4734 #endif
jmitc91516 0:a5c253316af6 4735
jmitc91516 0:a5c253316af6 4736 }
jmitc91516 0:a5c253316af6 4737 if (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x02)
jmitc91516 0:a5c253316af6 4738 {
jmitc91516 0:a5c253316af6 4739 sgl.CurItem.TextLength[2] = sgl.CurItem.TextLength[0];
jmitc91516 0:a5c253316af6 4740 sgl.CurItem.TextPtr[2] = sgl.CurItem.TextPtr[0];
jmitc91516 0:a5c253316af6 4741
jmitc91516 0:a5c253316af6 4742 #ifdef GuiConst_REMOTE_TEXT_DATA
jmitc91516 0:a5c253316af6 4743 sgl.CurItem.TextIndex[2] = sgl.CurItem.TextIndex[0];
jmitc91516 0:a5c253316af6 4744 #else
jmitc91516 0:a5c253316af6 4745 #ifdef GuiConst_REMOTE_STRUCT_DATA
jmitc91516 0:a5c253316af6 4746 sgl.CurItem.TextOffset[2] = sgl.CurItem.TextOffset[0];
jmitc91516 0:a5c253316af6 4747 #endif
jmitc91516 0:a5c253316af6 4748 #endif
jmitc91516 0:a5c253316af6 4749 }
jmitc91516 0:a5c253316af6 4750 }
jmitc91516 0:a5c253316af6 4751 #endif
jmitc91516 0:a5c253316af6 4752 }
jmitc91516 0:a5c253316af6 4753 }
jmitc91516 0:a5c253316af6 4754 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4755 static GuiConst_INT16S VarStrCmp(
jmitc91516 0:a5c253316af6 4756 GuiConst_INT8U PrefixLocate *S1,
jmitc91516 0:a5c253316af6 4757 GuiConst_INT8U PrefixLocate *S2)
jmitc91516 0:a5c253316af6 4758 {
jmitc91516 0:a5c253316af6 4759 GuiConst_INT16S len = 0;
jmitc91516 0:a5c253316af6 4760
jmitc91516 0:a5c253316af6 4761 #ifdef GuiConst_CHARMODE_ANSI
jmitc91516 0:a5c253316af6 4762 do
jmitc91516 0:a5c253316af6 4763 {
jmitc91516 0:a5c253316af6 4764 if ((*S1 == 0) && (*S2 == 0))
jmitc91516 0:a5c253316af6 4765 return (0);
jmitc91516 0:a5c253316af6 4766
jmitc91516 0:a5c253316af6 4767 else if (*S1 == 0)
jmitc91516 0:a5c253316af6 4768 return (-1);
jmitc91516 0:a5c253316af6 4769 else if (*S2 == 0)
jmitc91516 0:a5c253316af6 4770 return (1);
jmitc91516 0:a5c253316af6 4771 else if (*S1 < *S2)
jmitc91516 0:a5c253316af6 4772 return (-1);
jmitc91516 0:a5c253316af6 4773 else if (*S1 > *S2)
jmitc91516 0:a5c253316af6 4774 return (1);
jmitc91516 0:a5c253316af6 4775 S1++;
jmitc91516 0:a5c253316af6 4776 S2++;
jmitc91516 0:a5c253316af6 4777 }
jmitc91516 0:a5c253316af6 4778 while ((len++) < GuiConst_AUTOREDRAW_MAX_VAR_SIZE);
jmitc91516 0:a5c253316af6 4779 #else
jmitc91516 0:a5c253316af6 4780 GuiConst_INT16U T1, T2, T3;
jmitc91516 0:a5c253316af6 4781
jmitc91516 0:a5c253316af6 4782 do
jmitc91516 0:a5c253316af6 4783 {
jmitc91516 0:a5c253316af6 4784 T1 = *S1++;
jmitc91516 0:a5c253316af6 4785 T3 = *S1++;
jmitc91516 0:a5c253316af6 4786 T1 |= T3 << 8;
jmitc91516 0:a5c253316af6 4787
jmitc91516 0:a5c253316af6 4788 T2 = *S2++;
jmitc91516 0:a5c253316af6 4789 T3 = *S2++;
jmitc91516 0:a5c253316af6 4790 T2 |= T3 << 8;
jmitc91516 0:a5c253316af6 4791
jmitc91516 0:a5c253316af6 4792 if (T1 < T2)
jmitc91516 0:a5c253316af6 4793 return (-1);
jmitc91516 0:a5c253316af6 4794 else if (T1 > T2)
jmitc91516 0:a5c253316af6 4795 return (1);
jmitc91516 0:a5c253316af6 4796 else if (T1 == 0)
jmitc91516 0:a5c253316af6 4797 return (0);
jmitc91516 0:a5c253316af6 4798 }
jmitc91516 0:a5c253316af6 4799 while ((len++) < GuiConst_AUTOREDRAW_MAX_VAR_SIZE);
jmitc91516 0:a5c253316af6 4800 #endif
jmitc91516 0:a5c253316af6 4801 return (1);
jmitc91516 0:a5c253316af6 4802 }
jmitc91516 0:a5c253316af6 4803 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4804 void AutoRedraw_Init(void)
jmitc91516 0:a5c253316af6 4805 {
jmitc91516 0:a5c253316af6 4806 GuiConst_INT16S I;
jmitc91516 0:a5c253316af6 4807
jmitc91516 0:a5c253316af6 4808 for (I=0;I<GuiConst_MAX_DYNAMIC_ITEMS;I++)
jmitc91516 0:a5c253316af6 4809 {
jmitc91516 0:a5c253316af6 4810 sgl.AutoRedraw[I].Next = -1;
jmitc91516 0:a5c253316af6 4811 sgl.AutoRedraw[I].Prev = -1;
jmitc91516 0:a5c253316af6 4812 sgl.AutoRedraw[I].Valid = ITEM_NONE;
jmitc91516 0:a5c253316af6 4813 }
jmitc91516 0:a5c253316af6 4814
jmitc91516 0:a5c253316af6 4815 sgl.AutoRedrawCount = 0;
jmitc91516 0:a5c253316af6 4816 sgl.AutoRedrawFirst = -1;
jmitc91516 0:a5c253316af6 4817 sgl.AutoRedrawLast = -1;
jmitc91516 0:a5c253316af6 4818 sgl.AutoRedrawCount = 0;
jmitc91516 0:a5c253316af6 4819 sgl.AutoRedrawParent = -1;
jmitc91516 0:a5c253316af6 4820 sgl.AutoRedrawUpdate = GuiLib_FALSE;
jmitc91516 0:a5c253316af6 4821 sgl.AutoRedrawInsertPoint = GuiConst_MAX_DYNAMIC_ITEMS;
jmitc91516 0:a5c253316af6 4822 sgl.AutoRedrawLatest = -1;
jmitc91516 0:a5c253316af6 4823
jmitc91516 0:a5c253316af6 4824 return;
jmitc91516 0:a5c253316af6 4825 }
jmitc91516 0:a5c253316af6 4826 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4827 GuiConst_INT16S AutoRedraw_Reset(void)
jmitc91516 0:a5c253316af6 4828 {
jmitc91516 0:a5c253316af6 4829 sgl.AutoRedrawNext = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 4830
jmitc91516 0:a5c253316af6 4831 return sgl.AutoRedrawNext;
jmitc91516 0:a5c253316af6 4832 }
jmitc91516 0:a5c253316af6 4833 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4834 GuiConst_INT16S AutoRedraw_GetNext(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 4835 {
jmitc91516 0:a5c253316af6 4836 GuiConst_INT16S N, result;
jmitc91516 0:a5c253316af6 4837
jmitc91516 0:a5c253316af6 4838 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4839 return -1;
jmitc91516 0:a5c253316af6 4840
jmitc91516 0:a5c253316af6 4841 result = -1;
jmitc91516 0:a5c253316af6 4842
jmitc91516 0:a5c253316af6 4843 N = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 4844 while ((N >= 0) && (N < GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4845 {
jmitc91516 0:a5c253316af6 4846 if ((sgl.AutoRedraw[N].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 4847 {
jmitc91516 0:a5c253316af6 4848 result = N;
jmitc91516 0:a5c253316af6 4849 break;
jmitc91516 0:a5c253316af6 4850 }
jmitc91516 0:a5c253316af6 4851 else if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 4852 break;
jmitc91516 0:a5c253316af6 4853 else
jmitc91516 0:a5c253316af6 4854 {
jmitc91516 0:a5c253316af6 4855 N = sgl.AutoRedraw[N].Next;
jmitc91516 0:a5c253316af6 4856 if ((N < 0) || (N >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4857 break;
jmitc91516 0:a5c253316af6 4858 }
jmitc91516 0:a5c253316af6 4859 }
jmitc91516 0:a5c253316af6 4860
jmitc91516 0:a5c253316af6 4861 return result;
jmitc91516 0:a5c253316af6 4862 }
jmitc91516 0:a5c253316af6 4863 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4864 GuiConst_INT8S AutoRedraw_ItemIsStruct(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 4865 {
jmitc91516 0:a5c253316af6 4866 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4867 return GuiLib_FALSE;
jmitc91516 0:a5c253316af6 4868
jmitc91516 0:a5c253316af6 4869 if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 4870 {
jmitc91516 0:a5c253316af6 4871 if ((sgl.AutoRedraw[I].Item.ItemType == GuiLib_ITEM_STRUCTARRAY) ||
jmitc91516 0:a5c253316af6 4872 (sgl.AutoRedraw[I].Item.ItemType == GuiLib_ITEM_STRUCTCOND))
jmitc91516 0:a5c253316af6 4873 return GuiLib_TRUE;
jmitc91516 0:a5c253316af6 4874 else
jmitc91516 0:a5c253316af6 4875 return GuiLib_FALSE;
jmitc91516 0:a5c253316af6 4876 }
jmitc91516 0:a5c253316af6 4877 else
jmitc91516 0:a5c253316af6 4878 return GuiLib_FALSE;
jmitc91516 0:a5c253316af6 4879 }
jmitc91516 0:a5c253316af6 4880 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4881 GuiConst_INT8S AutoRedraw_GetLevel(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 4882 {
jmitc91516 0:a5c253316af6 4883 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4884 return -1;
jmitc91516 0:a5c253316af6 4885
jmitc91516 0:a5c253316af6 4886 if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 4887 return sgl.AutoRedraw[I].Level;
jmitc91516 0:a5c253316af6 4888 else
jmitc91516 0:a5c253316af6 4889 return 0;
jmitc91516 0:a5c253316af6 4890 }
jmitc91516 0:a5c253316af6 4891 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4892 GuiConst_INT16S AutoRedraw_Add(PrefixLocate GuiLib_ItemRec * PrefixLocate Item, GuiConst_INT16S Struct, GuiConst_INT8U Level)
jmitc91516 0:a5c253316af6 4893 {
jmitc91516 0:a5c253316af6 4894 GuiConst_INT16S I, N;
jmitc91516 0:a5c253316af6 4895
jmitc91516 0:a5c253316af6 4896 I = -1;
jmitc91516 0:a5c253316af6 4897
jmitc91516 0:a5c253316af6 4898 if (sgl.AutoRedrawCount < GuiConst_MAX_DYNAMIC_ITEMS)
jmitc91516 0:a5c253316af6 4899 {
jmitc91516 0:a5c253316af6 4900
jmitc91516 0:a5c253316af6 4901 if (sgl.AutoRedrawFirst == -1)
jmitc91516 0:a5c253316af6 4902 {
jmitc91516 0:a5c253316af6 4903 I = 0;
jmitc91516 0:a5c253316af6 4904 sgl.AutoRedrawFirst = 0;
jmitc91516 0:a5c253316af6 4905 sgl.AutoRedrawLast = -1;
jmitc91516 0:a5c253316af6 4906 sgl.AutoRedrawNext = 0;
jmitc91516 0:a5c253316af6 4907 }
jmitc91516 0:a5c253316af6 4908 else
jmitc91516 0:a5c253316af6 4909 {
jmitc91516 0:a5c253316af6 4910 for (N=0;N<GuiConst_MAX_DYNAMIC_ITEMS;N++)
jmitc91516 0:a5c253316af6 4911 {
jmitc91516 0:a5c253316af6 4912 if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 4913 {
jmitc91516 0:a5c253316af6 4914 I = N;
jmitc91516 0:a5c253316af6 4915 break;
jmitc91516 0:a5c253316af6 4916 }
jmitc91516 0:a5c253316af6 4917 }
jmitc91516 0:a5c253316af6 4918 }
jmitc91516 0:a5c253316af6 4919
jmitc91516 0:a5c253316af6 4920 if (I >= 0)
jmitc91516 0:a5c253316af6 4921 {
jmitc91516 0:a5c253316af6 4922 sgl.AutoRedraw[I].Next = -1;
jmitc91516 0:a5c253316af6 4923 sgl.AutoRedraw[I].Prev = sgl.AutoRedrawLast;
jmitc91516 0:a5c253316af6 4924 sgl.AutoRedraw[I].Valid = ITEM_AUTOREDRAW;
jmitc91516 0:a5c253316af6 4925 sgl.AutoRedraw[I].Parent = sgl.AutoRedrawParent;
jmitc91516 0:a5c253316af6 4926 sgl.AutoRedraw[I].Level = Level;
jmitc91516 0:a5c253316af6 4927 memcpy(&sgl.AutoRedraw[I].Item, Item, sizeof(GuiLib_ItemRec));
jmitc91516 0:a5c253316af6 4928 memcpy(&sgl.AutoRedraw[I].Memory, &sgl.Memory, sizeof(ItemMemory));
jmitc91516 0:a5c253316af6 4929
jmitc91516 0:a5c253316af6 4930 if ((sgl.AutoRedrawLast >= 0)
jmitc91516 0:a5c253316af6 4931 && (sgl.AutoRedrawLast < GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4932 sgl.AutoRedraw[sgl.AutoRedrawLast].Next = I;
jmitc91516 0:a5c253316af6 4933
jmitc91516 0:a5c253316af6 4934 sgl.AutoRedrawCount++;
jmitc91516 0:a5c253316af6 4935 sgl.AutoRedrawLast = I;
jmitc91516 0:a5c253316af6 4936 sgl.AutoRedrawLatest = I;
jmitc91516 0:a5c253316af6 4937 }
jmitc91516 0:a5c253316af6 4938
jmitc91516 0:a5c253316af6 4939 }
jmitc91516 0:a5c253316af6 4940
jmitc91516 0:a5c253316af6 4941 return I;
jmitc91516 0:a5c253316af6 4942 }
jmitc91516 0:a5c253316af6 4943 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 4944 GuiConst_INT16S AutoRedraw_Insert(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
jmitc91516 0:a5c253316af6 4945 GuiConst_INT16S Struct,
jmitc91516 0:a5c253316af6 4946 GuiConst_INT8U Level)
jmitc91516 0:a5c253316af6 4947 {
jmitc91516 0:a5c253316af6 4948 GuiConst_INT16S I, N;
jmitc91516 0:a5c253316af6 4949
jmitc91516 0:a5c253316af6 4950 if ((sgl.AutoRedrawFirst == -1) ||
jmitc91516 0:a5c253316af6 4951 (sgl.AutoRedrawInsertPoint >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 4952 {
jmitc91516 0:a5c253316af6 4953 return AutoRedraw_Add(Item, Struct, Level);
jmitc91516 0:a5c253316af6 4954 }
jmitc91516 0:a5c253316af6 4955
jmitc91516 0:a5c253316af6 4956 if (sgl.AutoRedrawCount < GuiConst_MAX_DYNAMIC_ITEMS)
jmitc91516 0:a5c253316af6 4957 {
jmitc91516 0:a5c253316af6 4958 I = -1;
jmitc91516 0:a5c253316af6 4959
jmitc91516 0:a5c253316af6 4960 for (N=0;N<GuiConst_MAX_DYNAMIC_ITEMS;N++)
jmitc91516 0:a5c253316af6 4961 {
jmitc91516 0:a5c253316af6 4962 if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 4963 {
jmitc91516 0:a5c253316af6 4964 I = N;
jmitc91516 0:a5c253316af6 4965 break;
jmitc91516 0:a5c253316af6 4966 }
jmitc91516 0:a5c253316af6 4967 }
jmitc91516 0:a5c253316af6 4968 }
jmitc91516 0:a5c253316af6 4969 else
jmitc91516 0:a5c253316af6 4970 return -1;
jmitc91516 0:a5c253316af6 4971
jmitc91516 0:a5c253316af6 4972 if (I >= 0)
jmitc91516 0:a5c253316af6 4973 {
jmitc91516 0:a5c253316af6 4974 if (sgl.AutoRedrawInsertPoint < 0)
jmitc91516 0:a5c253316af6 4975 {
jmitc91516 0:a5c253316af6 4976 sgl.AutoRedraw[I].Next = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 4977 sgl.AutoRedraw[I].Prev = -1;
jmitc91516 0:a5c253316af6 4978 }
jmitc91516 0:a5c253316af6 4979 else
jmitc91516 0:a5c253316af6 4980 {
jmitc91516 0:a5c253316af6 4981 sgl.AutoRedraw[I].Next = sgl.AutoRedraw[sgl.AutoRedrawInsertPoint].Next;
jmitc91516 0:a5c253316af6 4982 sgl.AutoRedraw[I].Prev = sgl.AutoRedrawInsertPoint;
jmitc91516 0:a5c253316af6 4983 sgl.AutoRedraw[sgl.AutoRedraw[I].Prev].Next = I;
jmitc91516 0:a5c253316af6 4984 }
jmitc91516 0:a5c253316af6 4985
jmitc91516 0:a5c253316af6 4986 if (sgl.AutoRedraw[I].Next != -1)
jmitc91516 0:a5c253316af6 4987 sgl.AutoRedraw[sgl.AutoRedraw[I].Next].Prev = I;
jmitc91516 0:a5c253316af6 4988
jmitc91516 0:a5c253316af6 4989 sgl.AutoRedraw[I].Valid = ITEM_AUTOREDRAW;
jmitc91516 0:a5c253316af6 4990 sgl.AutoRedraw[I].Parent = sgl.AutoRedrawParent;
jmitc91516 0:a5c253316af6 4991 sgl.AutoRedraw[I].Level = Level;
jmitc91516 0:a5c253316af6 4992
jmitc91516 0:a5c253316af6 4993 memcpy(&sgl.AutoRedraw[I].Item, Item, sizeof(GuiLib_ItemRec));
jmitc91516 0:a5c253316af6 4994 memcpy(&sgl.AutoRedraw[I].Memory, &sgl.Memory, sizeof(ItemMemory));
jmitc91516 0:a5c253316af6 4995
jmitc91516 0:a5c253316af6 4996 if (sgl.AutoRedraw[I].Next == -1)
jmitc91516 0:a5c253316af6 4997 sgl.AutoRedrawLast = I;
jmitc91516 0:a5c253316af6 4998
jmitc91516 0:a5c253316af6 4999 if (sgl.AutoRedraw[I].Prev == -1)
jmitc91516 0:a5c253316af6 5000 sgl.AutoRedrawFirst = I;
jmitc91516 0:a5c253316af6 5001
jmitc91516 0:a5c253316af6 5002 sgl.AutoRedrawInsertPoint = I;
jmitc91516 0:a5c253316af6 5003 sgl.AutoRedrawLatest = I;
jmitc91516 0:a5c253316af6 5004 sgl.AutoRedrawCount++;
jmitc91516 0:a5c253316af6 5005 }
jmitc91516 0:a5c253316af6 5006
jmitc91516 0:a5c253316af6 5007 return I;
jmitc91516 0:a5c253316af6 5008 }
jmitc91516 0:a5c253316af6 5009 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5010 void AutoRedraw_UpdateDrawn(GuiConst_INT16S I, PrefixLocate GuiLib_ItemRec * PrefixLocate Item)
jmitc91516 0:a5c253316af6 5011 {
jmitc91516 0:a5c253316af6 5012 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5013 return;
jmitc91516 0:a5c253316af6 5014
jmitc91516 0:a5c253316af6 5015 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5016 {
jmitc91516 0:a5c253316af6 5017 sgl.AutoRedraw[I].Item.Drawn = Item->Drawn;
jmitc91516 0:a5c253316af6 5018 sgl.AutoRedraw[I].Item.DrawnX1 = Item->DrawnX1;
jmitc91516 0:a5c253316af6 5019 sgl.AutoRedraw[I].Item.DrawnY1 = Item->DrawnY1;
jmitc91516 0:a5c253316af6 5020 sgl.AutoRedraw[I].Item.DrawnX2 = Item->DrawnX2;
jmitc91516 0:a5c253316af6 5021 sgl.AutoRedraw[I].Item.DrawnY2 = Item->DrawnY2;
jmitc91516 0:a5c253316af6 5022 }
jmitc91516 0:a5c253316af6 5023
jmitc91516 0:a5c253316af6 5024 return;
jmitc91516 0:a5c253316af6 5025 }
jmitc91516 0:a5c253316af6 5026 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5027 void AutoRedraw_Delete(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5028 {
jmitc91516 0:a5c253316af6 5029 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5030 return;
jmitc91516 0:a5c253316af6 5031
jmitc91516 0:a5c253316af6 5032 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5033 {
jmitc91516 0:a5c253316af6 5034 if (sgl.AutoRedrawLast == I)
jmitc91516 0:a5c253316af6 5035 sgl.AutoRedrawLast = sgl.AutoRedraw[I].Prev;
jmitc91516 0:a5c253316af6 5036
jmitc91516 0:a5c253316af6 5037 if (sgl.AutoRedrawFirst == I)
jmitc91516 0:a5c253316af6 5038 sgl.AutoRedrawFirst = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5039
jmitc91516 0:a5c253316af6 5040 if (sgl.AutoRedraw[I].Prev != -1)
jmitc91516 0:a5c253316af6 5041 sgl.AutoRedraw[sgl.AutoRedraw[I].Prev].Next = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5042
jmitc91516 0:a5c253316af6 5043 if (sgl.AutoRedraw[I].Next != -1)
jmitc91516 0:a5c253316af6 5044 sgl.AutoRedraw[sgl.AutoRedraw[I].Next].Prev = sgl.AutoRedraw[I].Prev;
jmitc91516 0:a5c253316af6 5045
jmitc91516 0:a5c253316af6 5046 sgl.AutoRedraw[I].Next = -1;
jmitc91516 0:a5c253316af6 5047 sgl.AutoRedraw[I].Prev = -1;
jmitc91516 0:a5c253316af6 5048 sgl.AutoRedraw[I].Valid = ITEM_NONE;
jmitc91516 0:a5c253316af6 5049
jmitc91516 0:a5c253316af6 5050 sgl.AutoRedrawCount--;
jmitc91516 0:a5c253316af6 5051 }
jmitc91516 0:a5c253316af6 5052
jmitc91516 0:a5c253316af6 5053 return;
jmitc91516 0:a5c253316af6 5054 }
jmitc91516 0:a5c253316af6 5055 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5056 GuiConst_INT16S AutoRedraw_DeleteStruct(GuiConst_INT16S Struct_id)
jmitc91516 0:a5c253316af6 5057 {
jmitc91516 0:a5c253316af6 5058 GuiConst_INT16S I, N, X;
jmitc91516 0:a5c253316af6 5059
jmitc91516 0:a5c253316af6 5060 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5061
jmitc91516 0:a5c253316af6 5062 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5063 return -1;
jmitc91516 0:a5c253316af6 5064
jmitc91516 0:a5c253316af6 5065 if ((Struct_id < 0) || (Struct_id >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5066 return -1;
jmitc91516 0:a5c253316af6 5067
jmitc91516 0:a5c253316af6 5068 if (sgl.AutoRedraw[Struct_id].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 5069 return -1;
jmitc91516 0:a5c253316af6 5070
jmitc91516 0:a5c253316af6 5071 while (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5072 {
jmitc91516 0:a5c253316af6 5073 N = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5074 if (sgl.AutoRedraw[I].Parent == Struct_id)
jmitc91516 0:a5c253316af6 5075 {
jmitc91516 0:a5c253316af6 5076 X = AutoRedraw_DeleteStruct(I);
jmitc91516 0:a5c253316af6 5077 if ((X >= 0) && (X < GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5078 N = sgl.AutoRedraw[X].Next;
jmitc91516 0:a5c253316af6 5079 }
jmitc91516 0:a5c253316af6 5080
jmitc91516 0:a5c253316af6 5081 I = N;
jmitc91516 0:a5c253316af6 5082
jmitc91516 0:a5c253316af6 5083 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5084 break;
jmitc91516 0:a5c253316af6 5085 }
jmitc91516 0:a5c253316af6 5086
jmitc91516 0:a5c253316af6 5087 sgl.AutoRedrawInsertPoint = sgl.AutoRedraw[Struct_id].Prev;
jmitc91516 0:a5c253316af6 5088
jmitc91516 0:a5c253316af6 5089 AutoRedraw_Delete(Struct_id);
jmitc91516 0:a5c253316af6 5090
jmitc91516 0:a5c253316af6 5091 if (sgl.AutoRedrawInsertPoint >= 0)
jmitc91516 0:a5c253316af6 5092 return sgl.AutoRedrawInsertPoint;
jmitc91516 0:a5c253316af6 5093 else
jmitc91516 0:a5c253316af6 5094 return sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5095 }
jmitc91516 0:a5c253316af6 5096 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5097 void AutoRedraw_Destroy(void)
jmitc91516 0:a5c253316af6 5098 {
jmitc91516 0:a5c253316af6 5099 GuiConst_INT16S I;
jmitc91516 0:a5c253316af6 5100
jmitc91516 0:a5c253316af6 5101 for (I=0;I<GuiConst_MAX_DYNAMIC_ITEMS;I++)
jmitc91516 0:a5c253316af6 5102 {
jmitc91516 0:a5c253316af6 5103 sgl.AutoRedraw[I].Next = -1;
jmitc91516 0:a5c253316af6 5104 sgl.AutoRedraw[I].Prev = -1;
jmitc91516 0:a5c253316af6 5105 sgl.AutoRedraw[I].Valid = ITEM_NONE;
jmitc91516 0:a5c253316af6 5106 }
jmitc91516 0:a5c253316af6 5107
jmitc91516 0:a5c253316af6 5108 sgl.AutoRedrawCount = 0;
jmitc91516 0:a5c253316af6 5109 sgl.AutoRedrawFirst = -1;
jmitc91516 0:a5c253316af6 5110 sgl.AutoRedrawLast = -1;
jmitc91516 0:a5c253316af6 5111 sgl.AutoRedrawCount = 0;
jmitc91516 0:a5c253316af6 5112 sgl.AutoRedrawParent = -1;
jmitc91516 0:a5c253316af6 5113 sgl.AutoRedrawUpdate = GuiLib_FALSE;
jmitc91516 0:a5c253316af6 5114 sgl.AutoRedrawInsertPoint = GuiConst_MAX_DYNAMIC_ITEMS;
jmitc91516 0:a5c253316af6 5115 sgl.AutoRedrawLatest = -1;
jmitc91516 0:a5c253316af6 5116
jmitc91516 0:a5c253316af6 5117 return;
jmitc91516 0:a5c253316af6 5118 }
jmitc91516 0:a5c253316af6 5119 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5120 PrefixLocate GuiLib_ItemRec *AutoRedraw_GetItem(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5121 {
jmitc91516 0:a5c253316af6 5122 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5123 return NULL;
jmitc91516 0:a5c253316af6 5124 else
jmitc91516 0:a5c253316af6 5125 return &sgl.AutoRedraw[I].Item;
jmitc91516 0:a5c253316af6 5126 }
jmitc91516 0:a5c253316af6 5127 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5128 PrefixLocate ItemMemory *AutoRedraw_GetItemMemory(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5129 {
jmitc91516 0:a5c253316af6 5130 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5131 return NULL;
jmitc91516 0:a5c253316af6 5132 else
jmitc91516 0:a5c253316af6 5133 return &sgl.AutoRedraw[I].Memory;
jmitc91516 0:a5c253316af6 5134 }
jmitc91516 0:a5c253316af6 5135 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5136 void AutoRedraw_UpdateOnChange(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5137 {
jmitc91516 0:a5c253316af6 5138 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5139 return;
jmitc91516 0:a5c253316af6 5140
jmitc91516 0:a5c253316af6 5141 if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 5142 {
jmitc91516 0:a5c253316af6 5143 sgl.AutoRedraw[I].ValueSize = 0;
jmitc91516 0:a5c253316af6 5144
jmitc91516 0:a5c253316af6 5145 if (sgl.AutoRedraw[I].Item.UpdateType == GuiLib_UPDATE_ON_CHANGE)
jmitc91516 0:a5c253316af6 5146 {
jmitc91516 0:a5c253316af6 5147 if (sgl.AutoRedraw[I].Item.VarPtr != 0)
jmitc91516 0:a5c253316af6 5148 {
jmitc91516 0:a5c253316af6 5149 switch (sgl.AutoRedraw[I].Item.VarType)
jmitc91516 0:a5c253316af6 5150 {
jmitc91516 0:a5c253316af6 5151 case GuiLib_VAR_BOOL:
jmitc91516 0:a5c253316af6 5152 case GuiLib_VAR_UNSIGNED_CHAR:
jmitc91516 0:a5c253316af6 5153 case GuiLib_VAR_SIGNED_CHAR:
jmitc91516 0:a5c253316af6 5154 sgl.AutoRedraw[I].ValueSize = 1;
jmitc91516 0:a5c253316af6 5155 break;
jmitc91516 0:a5c253316af6 5156
jmitc91516 0:a5c253316af6 5157 case GuiLib_VAR_UNSIGNED_INT:
jmitc91516 0:a5c253316af6 5158 case GuiLib_VAR_SIGNED_INT:
jmitc91516 0:a5c253316af6 5159 sgl.AutoRedraw[I].ValueSize = 2;
jmitc91516 0:a5c253316af6 5160 break;
jmitc91516 0:a5c253316af6 5161
jmitc91516 0:a5c253316af6 5162 case GuiLib_VAR_UNSIGNED_LONG:
jmitc91516 0:a5c253316af6 5163 case GuiLib_VAR_SIGNED_LONG:
jmitc91516 0:a5c253316af6 5164 case GuiLib_VAR_FLOAT:
jmitc91516 0:a5c253316af6 5165 sgl.AutoRedraw[I].ValueSize = 4;
jmitc91516 0:a5c253316af6 5166 break;
jmitc91516 0:a5c253316af6 5167
jmitc91516 0:a5c253316af6 5168 case GuiLib_VAR_DOUBLE:
jmitc91516 0:a5c253316af6 5169 sgl.AutoRedraw[I].ValueSize = 8;
jmitc91516 0:a5c253316af6 5170 break;
jmitc91516 0:a5c253316af6 5171
jmitc91516 0:a5c253316af6 5172 case GuiLib_VAR_COLOR:
jmitc91516 0:a5c253316af6 5173 sgl.AutoRedraw[I].ValueSize =
jmitc91516 0:a5c253316af6 5174 GuiConst_PIXEL_BYTE_SIZE;
jmitc91516 0:a5c253316af6 5175 break;
jmitc91516 0:a5c253316af6 5176
jmitc91516 0:a5c253316af6 5177 case GuiLib_VAR_STRING:
jmitc91516 0:a5c253316af6 5178 sgl.AutoRedraw[I].ValueSize =
jmitc91516 0:a5c253316af6 5179 GuiLib_AUTOREDRAW_MAX_VAR_SIZE;
jmitc91516 0:a5c253316af6 5180 break;
jmitc91516 0:a5c253316af6 5181
jmitc91516 0:a5c253316af6 5182 default:
jmitc91516 0:a5c253316af6 5183 sgl.AutoRedraw[I].ValueSize = 0;
jmitc91516 0:a5c253316af6 5184 }
jmitc91516 0:a5c253316af6 5185 if (sgl.AutoRedraw[I].ValueSize > 0)
jmitc91516 0:a5c253316af6 5186 {
jmitc91516 0:a5c253316af6 5187 memcpy(&sgl.AutoRedraw[I].Value[0],
jmitc91516 0:a5c253316af6 5188 sgl.AutoRedraw[I].Item.VarPtr,
jmitc91516 0:a5c253316af6 5189 sgl.AutoRedraw[I].ValueSize);
jmitc91516 0:a5c253316af6 5190 }
jmitc91516 0:a5c253316af6 5191 }
jmitc91516 0:a5c253316af6 5192 }
jmitc91516 0:a5c253316af6 5193 }
jmitc91516 0:a5c253316af6 5194
jmitc91516 0:a5c253316af6 5195 return;
jmitc91516 0:a5c253316af6 5196 }
jmitc91516 0:a5c253316af6 5197 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5198 GuiConst_INT8S RefreshColorVariable(GuiConst_INTCOLOR PrefixLocate *comp, GuiConst_INT16U idx)
jmitc91516 0:a5c253316af6 5199 {
jmitc91516 0:a5c253316af6 5200 GuiConst_INTCOLOR PrefixLocate *ColVarPtr;
jmitc91516 0:a5c253316af6 5201 GuiConst_INTCOLOR ColVal;
jmitc91516 0:a5c253316af6 5202 GuiConst_INT8S changed = GuiLib_FALSE;
jmitc91516 0:a5c253316af6 5203
jmitc91516 0:a5c253316af6 5204 if (idx != 0xFFFF)
jmitc91516 0:a5c253316af6 5205 {
jmitc91516 0:a5c253316af6 5206 if (idx < GuiStruct_VarPtrCnt)
jmitc91516 0:a5c253316af6 5207 {
jmitc91516 0:a5c253316af6 5208 ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[idx]);
jmitc91516 0:a5c253316af6 5209 if (ColVarPtr != 0)
jmitc91516 0:a5c253316af6 5210 {
jmitc91516 0:a5c253316af6 5211 ColVal = *ColVarPtr;
jmitc91516 0:a5c253316af6 5212 if (*comp != ColVal)
jmitc91516 0:a5c253316af6 5213 {
jmitc91516 0:a5c253316af6 5214 *comp = ColVal;
jmitc91516 0:a5c253316af6 5215 changed = GuiLib_TRUE;
jmitc91516 0:a5c253316af6 5216 }
jmitc91516 0:a5c253316af6 5217 }
jmitc91516 0:a5c253316af6 5218 }
jmitc91516 0:a5c253316af6 5219 }
jmitc91516 0:a5c253316af6 5220
jmitc91516 0:a5c253316af6 5221 return changed;
jmitc91516 0:a5c253316af6 5222 }
jmitc91516 0:a5c253316af6 5223 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5224 GuiConst_INT8S AutoRedraw_VarChanged(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5225 {
jmitc91516 0:a5c253316af6 5226 GuiLib_ItemRecPtr Item;
jmitc91516 0:a5c253316af6 5227 GuiConst_INT16S VarChange;
jmitc91516 0:a5c253316af6 5228 GuiConst_INT8S changed;
jmitc91516 0:a5c253316af6 5229
jmitc91516 0:a5c253316af6 5230 changed = GuiLib_FALSE;
jmitc91516 0:a5c253316af6 5231
jmitc91516 0:a5c253316af6 5232 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5233 return changed;
jmitc91516 0:a5c253316af6 5234
jmitc91516 0:a5c253316af6 5235 if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 5236 {
jmitc91516 0:a5c253316af6 5237 Item = &sgl.AutoRedraw[I].Item;
jmitc91516 0:a5c253316af6 5238 if (Item->UpdateType == GuiLib_UPDATE_ON_CHANGE)
jmitc91516 0:a5c253316af6 5239 {
jmitc91516 0:a5c253316af6 5240 if ((Item->TextPar[0].BitFlags & GuiLib_BITFLAG_INUSE) &&
jmitc91516 0:a5c253316af6 5241 (Item->VarPtr != 0))
jmitc91516 0:a5c253316af6 5242 {
jmitc91516 0:a5c253316af6 5243 VarChange = 0;
jmitc91516 0:a5c253316af6 5244 if (sgl.AutoRedraw[I].ValueSize > 0)
jmitc91516 0:a5c253316af6 5245 {
jmitc91516 0:a5c253316af6 5246 if (Item->VarType == GuiLib_VAR_STRING)
jmitc91516 0:a5c253316af6 5247 VarChange = VarStrCmp(&sgl.AutoRedraw[I].Value[0],
jmitc91516 0:a5c253316af6 5248 (GuiConst_INT8U PrefixLocate *)Item->VarPtr);
jmitc91516 0:a5c253316af6 5249 else
jmitc91516 0:a5c253316af6 5250 VarChange =
jmitc91516 0:a5c253316af6 5251 memcmp(&sgl.AutoRedraw[I].Value[0],
jmitc91516 0:a5c253316af6 5252 Item->VarPtr,
jmitc91516 0:a5c253316af6 5253 sgl.AutoRedraw[I].ValueSize);
jmitc91516 0:a5c253316af6 5254 }
jmitc91516 0:a5c253316af6 5255 if ((sgl.AutoRedraw[I].ValueSize == 0) || (VarChange != 0))
jmitc91516 0:a5c253316af6 5256 changed = GuiLib_TRUE;
jmitc91516 0:a5c253316af6 5257 }
jmitc91516 0:a5c253316af6 5258 }
jmitc91516 0:a5c253316af6 5259 else
jmitc91516 0:a5c253316af6 5260 changed = GuiLib_TRUE;
jmitc91516 0:a5c253316af6 5261
jmitc91516 0:a5c253316af6 5262 changed |= RefreshColorVariable(&Item->ForeColor, Item->ForeColorIndex);
jmitc91516 0:a5c253316af6 5263 changed |= RefreshColorVariable(&Item->BackColor, Item->BackColorIndex);
jmitc91516 0:a5c253316af6 5264 changed |= RefreshColorVariable(&Item->BarForeColor, Item->BarForeColorIndex);
jmitc91516 0:a5c253316af6 5265 changed |= RefreshColorVariable(&Item->BarBackColor, Item->BarBackColorIndex);
jmitc91516 0:a5c253316af6 5266
jmitc91516 0:a5c253316af6 5267 #ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
jmitc91516 0:a5c253316af6 5268 if (Item->ItemType == GuiLib_ITEM_RADIOBUTTON)
jmitc91516 0:a5c253316af6 5269 changed |= RefreshColorVariable(&Item->CompPars.CompRadioButton.MarkColor,
jmitc91516 0:a5c253316af6 5270 Item->CompPars.CompRadioButton.MarkColorIndex);
jmitc91516 0:a5c253316af6 5271 #endif
jmitc91516 0:a5c253316af6 5272 #ifdef GuiConst_ITEM_CHECKBOX_INUSE
jmitc91516 0:a5c253316af6 5273 if (Item->ItemType == GuiLib_ITEM_CHECKBOX)
jmitc91516 0:a5c253316af6 5274 changed |= RefreshColorVariable(&Item->CompPars.CompCheckBox.MarkColor,
jmitc91516 0:a5c253316af6 5275 Item->CompPars.CompCheckBox.MarkColorIndex);
jmitc91516 0:a5c253316af6 5276 #endif
jmitc91516 0:a5c253316af6 5277 #ifdef GuiConst_ITEM_BUTTON_INUSE
jmitc91516 0:a5c253316af6 5278 if (Item->ItemType == GuiLib_ITEM_BUTTON)
jmitc91516 0:a5c253316af6 5279 {
jmitc91516 0:a5c253316af6 5280 GuiConst_INT32S state;
jmitc91516 0:a5c253316af6 5281
jmitc91516 0:a5c253316af6 5282 if ((sgl.CurItem.VarPtr != 0) &&
jmitc91516 0:a5c253316af6 5283 (sgl.CurItem.VarType != GuiLib_VAR_STRING))
jmitc91516 0:a5c253316af6 5284 {
jmitc91516 0:a5c253316af6 5285 state = ReadVar(Item->VarPtr, Item->VarType);
jmitc91516 0:a5c253316af6 5286 if ((state < GuiLib_BUTTON_STATE_UP) ||
jmitc91516 0:a5c253316af6 5287 (state > GuiLib_BUTTON_STATE_DISABLED))
jmitc91516 0:a5c253316af6 5288 state = GuiLib_BUTTON_STATE_UP;
jmitc91516 0:a5c253316af6 5289 }
jmitc91516 0:a5c253316af6 5290 else
jmitc91516 0:a5c253316af6 5291 state = GuiLib_BUTTON_STATE_UP;
jmitc91516 0:a5c253316af6 5292
jmitc91516 0:a5c253316af6 5293
jmitc91516 0:a5c253316af6 5294 changed |= RefreshColorVariable(&Item->CompPars.CompButton.TextColor[state],
jmitc91516 0:a5c253316af6 5295 Item->CompPars.CompButton.TextColorIndex[state]);
jmitc91516 0:a5c253316af6 5296
jmitc91516 0:a5c253316af6 5297 changed |= RefreshColorVariable(&Item->CompPars.CompButton.GlyphIconColor[state],
jmitc91516 0:a5c253316af6 5298 Item->CompPars.CompButton.GlyphIconColorIndex[state]);
jmitc91516 0:a5c253316af6 5299 }
jmitc91516 0:a5c253316af6 5300 #endif
jmitc91516 0:a5c253316af6 5301 }
jmitc91516 0:a5c253316af6 5302
jmitc91516 0:a5c253316af6 5303 return changed;
jmitc91516 0:a5c253316af6 5304 }
jmitc91516 0:a5c253316af6 5305 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5306 void AutoRedraw_UpdateVar(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5307 {
jmitc91516 0:a5c253316af6 5308 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5309 return;
jmitc91516 0:a5c253316af6 5310
jmitc91516 0:a5c253316af6 5311 if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 5312 {
jmitc91516 0:a5c253316af6 5313 if (sgl.AutoRedraw[I].Item.UpdateType == GuiLib_UPDATE_ON_CHANGE)
jmitc91516 0:a5c253316af6 5314 {
jmitc91516 0:a5c253316af6 5315 if ((sgl.AutoRedraw[I].Item.TextPar[0].BitFlags & GuiLib_BITFLAG_INUSE) &&
jmitc91516 0:a5c253316af6 5316 (sgl.AutoRedraw[I].Item.VarPtr != 0))
jmitc91516 0:a5c253316af6 5317 {
jmitc91516 0:a5c253316af6 5318 if (sgl.AutoRedraw[I].ValueSize > 0)
jmitc91516 0:a5c253316af6 5319 {
jmitc91516 0:a5c253316af6 5320 memcpy(&sgl.AutoRedraw[I].Value[0],
jmitc91516 0:a5c253316af6 5321 sgl.AutoRedraw[I].Item.VarPtr,
jmitc91516 0:a5c253316af6 5322 sgl.AutoRedraw[I].ValueSize);
jmitc91516 0:a5c253316af6 5323 }
jmitc91516 0:a5c253316af6 5324 }
jmitc91516 0:a5c253316af6 5325 }
jmitc91516 0:a5c253316af6 5326 }
jmitc91516 0:a5c253316af6 5327
jmitc91516 0:a5c253316af6 5328 return;
jmitc91516 0:a5c253316af6 5329 }
jmitc91516 0:a5c253316af6 5330
jmitc91516 0:a5c253316af6 5331 #ifdef GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 5332
jmitc91516 0:a5c253316af6 5333 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5334 GuiConst_INT16S AutoRedraw_InsertTextBox(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
jmitc91516 0:a5c253316af6 5335 GuiConst_INT16S Struct,
jmitc91516 0:a5c253316af6 5336 GuiConst_INT8U Level)
jmitc91516 0:a5c253316af6 5337 {
jmitc91516 0:a5c253316af6 5338 GuiConst_INT16S I;
jmitc91516 0:a5c253316af6 5339
jmitc91516 0:a5c253316af6 5340 I = AutoRedraw_Insert(Item, Struct, Level);
jmitc91516 0:a5c253316af6 5341
jmitc91516 0:a5c253316af6 5342 if (I != -1)
jmitc91516 0:a5c253316af6 5343 sgl.AutoRedraw[I].Valid = ITEM_TEXTBOX;
jmitc91516 0:a5c253316af6 5344
jmitc91516 0:a5c253316af6 5345 return I;
jmitc91516 0:a5c253316af6 5346 }//------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5347 void AutoRedraw_SetAsTextBox(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5348 {
jmitc91516 0:a5c253316af6 5349 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5350 return;
jmitc91516 0:a5c253316af6 5351
jmitc91516 0:a5c253316af6 5352 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5353 sgl.AutoRedraw[I].Valid |= ITEM_TEXTBOX;
jmitc91516 0:a5c253316af6 5354
jmitc91516 0:a5c253316af6 5355 return;
jmitc91516 0:a5c253316af6 5356 }
jmitc91516 0:a5c253316af6 5357 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5358 GuiConst_INT16S AutoRedraw_GetTextBox(GuiConst_INT8S T, GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5359 {
jmitc91516 0:a5c253316af6 5360 if (I == -1)
jmitc91516 0:a5c253316af6 5361 {
jmitc91516 0:a5c253316af6 5362 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5363
jmitc91516 0:a5c253316af6 5364 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5365 return -1;
jmitc91516 0:a5c253316af6 5366 }
jmitc91516 0:a5c253316af6 5367 else
jmitc91516 0:a5c253316af6 5368 {
jmitc91516 0:a5c253316af6 5369 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5370 return -1;
jmitc91516 0:a5c253316af6 5371
jmitc91516 0:a5c253316af6 5372 if (sgl.AutoRedraw[I].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 5373 return -1;
jmitc91516 0:a5c253316af6 5374
jmitc91516 0:a5c253316af6 5375 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5376
jmitc91516 0:a5c253316af6 5377 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5378 return -1;
jmitc91516 0:a5c253316af6 5379 }
jmitc91516 0:a5c253316af6 5380
jmitc91516 0:a5c253316af6 5381 while (I != -1)
jmitc91516 0:a5c253316af6 5382 {
jmitc91516 0:a5c253316af6 5383 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5384 {
jmitc91516 0:a5c253316af6 5385 if ((sgl.AutoRedraw[I].Valid & ITEM_TEXTBOX) == ITEM_TEXTBOX)
jmitc91516 0:a5c253316af6 5386 {
jmitc91516 0:a5c253316af6 5387 if (sgl.AutoRedraw[I].Item.CompPars.CompTextBox.ScrollIndex == T)
jmitc91516 0:a5c253316af6 5388 break;
jmitc91516 0:a5c253316af6 5389 }
jmitc91516 0:a5c253316af6 5390 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5391 }
jmitc91516 0:a5c253316af6 5392 else
jmitc91516 0:a5c253316af6 5393 return -1;
jmitc91516 0:a5c253316af6 5394 }
jmitc91516 0:a5c253316af6 5395
jmitc91516 0:a5c253316af6 5396 return I;
jmitc91516 0:a5c253316af6 5397 }
jmitc91516 0:a5c253316af6 5398
jmitc91516 0:a5c253316af6 5399 #endif // GuiConst_TEXTBOX_FIELDS_ON
jmitc91516 0:a5c253316af6 5400 #ifdef GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 5401 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5402 GuiConst_INT16S AutoRedraw_InsertCursor(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
jmitc91516 0:a5c253316af6 5403 GuiConst_INT16S Struct,
jmitc91516 0:a5c253316af6 5404 GuiConst_INT8U Level)
jmitc91516 0:a5c253316af6 5405 {
jmitc91516 0:a5c253316af6 5406 GuiConst_INT16S I;
jmitc91516 0:a5c253316af6 5407
jmitc91516 0:a5c253316af6 5408 I = AutoRedraw_Insert(Item, Struct, Level);
jmitc91516 0:a5c253316af6 5409
jmitc91516 0:a5c253316af6 5410 if (I != -1)
jmitc91516 0:a5c253316af6 5411 sgl.AutoRedraw[I].Valid = ITEM_CURSOR;
jmitc91516 0:a5c253316af6 5412
jmitc91516 0:a5c253316af6 5413 return I;
jmitc91516 0:a5c253316af6 5414 }
jmitc91516 0:a5c253316af6 5415 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5416 void AutoRedraw_SetAsCursor(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5417 {
jmitc91516 0:a5c253316af6 5418 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5419 return;
jmitc91516 0:a5c253316af6 5420
jmitc91516 0:a5c253316af6 5421 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5422 sgl.AutoRedraw[I].Valid |= ITEM_CURSOR;
jmitc91516 0:a5c253316af6 5423
jmitc91516 0:a5c253316af6 5424 return;
jmitc91516 0:a5c253316af6 5425 }
jmitc91516 0:a5c253316af6 5426 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5427 GuiConst_INT16S AutoRedraw_IsOnlyCursor(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5428 {
jmitc91516 0:a5c253316af6 5429 GuiConst_INT16S ret = GuiLib_FALSE;
jmitc91516 0:a5c253316af6 5430
jmitc91516 0:a5c253316af6 5431 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5432 return ret;
jmitc91516 0:a5c253316af6 5433
jmitc91516 0:a5c253316af6 5434 if (sgl.AutoRedraw[I].Valid == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5435 ret = GuiLib_TRUE;
jmitc91516 0:a5c253316af6 5436
jmitc91516 0:a5c253316af6 5437 return ret;
jmitc91516 0:a5c253316af6 5438 }
jmitc91516 0:a5c253316af6 5439 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5440 GuiConst_INT16S AutoRedraw_GetCursor(GuiConst_INT8S C, GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5441 {
jmitc91516 0:a5c253316af6 5442 if (I == -1)
jmitc91516 0:a5c253316af6 5443 {
jmitc91516 0:a5c253316af6 5444 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5445
jmitc91516 0:a5c253316af6 5446 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5447 return -1;
jmitc91516 0:a5c253316af6 5448 }
jmitc91516 0:a5c253316af6 5449 else
jmitc91516 0:a5c253316af6 5450 {
jmitc91516 0:a5c253316af6 5451 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5452 return -1;
jmitc91516 0:a5c253316af6 5453
jmitc91516 0:a5c253316af6 5454 if (sgl.AutoRedraw[I].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 5455 return -1;
jmitc91516 0:a5c253316af6 5456
jmitc91516 0:a5c253316af6 5457 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5458
jmitc91516 0:a5c253316af6 5459 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5460 return -1;
jmitc91516 0:a5c253316af6 5461 }
jmitc91516 0:a5c253316af6 5462
jmitc91516 0:a5c253316af6 5463 while (I != -1)
jmitc91516 0:a5c253316af6 5464 {
jmitc91516 0:a5c253316af6 5465 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5466 {
jmitc91516 0:a5c253316af6 5467 if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5468 {
jmitc91516 0:a5c253316af6 5469 if (sgl.AutoRedraw[I].Item.CursorFieldNo == C)
jmitc91516 0:a5c253316af6 5470 break;
jmitc91516 0:a5c253316af6 5471 }
jmitc91516 0:a5c253316af6 5472 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5473 }
jmitc91516 0:a5c253316af6 5474 else
jmitc91516 0:a5c253316af6 5475 return -1;
jmitc91516 0:a5c253316af6 5476 }
jmitc91516 0:a5c253316af6 5477
jmitc91516 0:a5c253316af6 5478 return I;
jmitc91516 0:a5c253316af6 5479 }
jmitc91516 0:a5c253316af6 5480 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5481 GuiConst_INT8S AutoRedraw_GetCursorNumber(GuiConst_INT16S I)
jmitc91516 0:a5c253316af6 5482 {
jmitc91516 0:a5c253316af6 5483 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5484 return -1;
jmitc91516 0:a5c253316af6 5485
jmitc91516 0:a5c253316af6 5486 if (sgl.AutoRedraw[I].Valid & ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5487 return sgl.AutoRedraw[I].Item.CursorFieldNo;
jmitc91516 0:a5c253316af6 5488
jmitc91516 0:a5c253316af6 5489 return -1;
jmitc91516 0:a5c253316af6 5490 }
jmitc91516 0:a5c253316af6 5491 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5492 GuiConst_INT16S AutoRedraw_GetFirstCursor(void)
jmitc91516 0:a5c253316af6 5493 {
jmitc91516 0:a5c253316af6 5494 GuiConst_INT16S I, result;
jmitc91516 0:a5c253316af6 5495 GuiConst_INT8S C;
jmitc91516 0:a5c253316af6 5496
jmitc91516 0:a5c253316af6 5497 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5498 C = 0x7F;
jmitc91516 0:a5c253316af6 5499
jmitc91516 0:a5c253316af6 5500 result = -1;
jmitc91516 0:a5c253316af6 5501
jmitc91516 0:a5c253316af6 5502 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5503 return result;
jmitc91516 0:a5c253316af6 5504
jmitc91516 0:a5c253316af6 5505 while (I != -1)
jmitc91516 0:a5c253316af6 5506 {
jmitc91516 0:a5c253316af6 5507 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5508 {
jmitc91516 0:a5c253316af6 5509 if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5510 {
jmitc91516 0:a5c253316af6 5511 if (sgl.AutoRedraw[I].Item.CursorFieldNo < C)
jmitc91516 0:a5c253316af6 5512 {
jmitc91516 0:a5c253316af6 5513 C = sgl.AutoRedraw[I].Item.CursorFieldNo;
jmitc91516 0:a5c253316af6 5514 result = I;
jmitc91516 0:a5c253316af6 5515 }
jmitc91516 0:a5c253316af6 5516 }
jmitc91516 0:a5c253316af6 5517 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5518 }
jmitc91516 0:a5c253316af6 5519 else
jmitc91516 0:a5c253316af6 5520 return -1;
jmitc91516 0:a5c253316af6 5521 }
jmitc91516 0:a5c253316af6 5522
jmitc91516 0:a5c253316af6 5523 return result;
jmitc91516 0:a5c253316af6 5524 }
jmitc91516 0:a5c253316af6 5525 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5526 GuiConst_INT16S AutoRedraw_GetLastCursor(void)
jmitc91516 0:a5c253316af6 5527 {
jmitc91516 0:a5c253316af6 5528 GuiConst_INT16S I, result;
jmitc91516 0:a5c253316af6 5529 GuiConst_INT8S C;
jmitc91516 0:a5c253316af6 5530
jmitc91516 0:a5c253316af6 5531 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5532 C = 0;
jmitc91516 0:a5c253316af6 5533
jmitc91516 0:a5c253316af6 5534 result = -1;
jmitc91516 0:a5c253316af6 5535
jmitc91516 0:a5c253316af6 5536 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5537 return result;
jmitc91516 0:a5c253316af6 5538
jmitc91516 0:a5c253316af6 5539 while (I != -1)
jmitc91516 0:a5c253316af6 5540 {
jmitc91516 0:a5c253316af6 5541 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5542 {
jmitc91516 0:a5c253316af6 5543 if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5544 {
jmitc91516 0:a5c253316af6 5545 if (sgl.AutoRedraw[I].Item.CursorFieldNo > C)
jmitc91516 0:a5c253316af6 5546 {
jmitc91516 0:a5c253316af6 5547 C = sgl.AutoRedraw[I].Item.CursorFieldNo;
jmitc91516 0:a5c253316af6 5548 result = I;
jmitc91516 0:a5c253316af6 5549 }
jmitc91516 0:a5c253316af6 5550 }
jmitc91516 0:a5c253316af6 5551 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5552 }
jmitc91516 0:a5c253316af6 5553 else
jmitc91516 0:a5c253316af6 5554 return -1;
jmitc91516 0:a5c253316af6 5555 }
jmitc91516 0:a5c253316af6 5556
jmitc91516 0:a5c253316af6 5557 return result;
jmitc91516 0:a5c253316af6 5558 }
jmitc91516 0:a5c253316af6 5559 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5560 GuiConst_INT16S AutoRedraw_GetNextCursor(GuiConst_INT8S C)
jmitc91516 0:a5c253316af6 5561 {
jmitc91516 0:a5c253316af6 5562 GuiConst_INT16S I, result;
jmitc91516 0:a5c253316af6 5563 GuiConst_INT8S closest;
jmitc91516 0:a5c253316af6 5564
jmitc91516 0:a5c253316af6 5565 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5566 closest = 0x7f;
jmitc91516 0:a5c253316af6 5567
jmitc91516 0:a5c253316af6 5568 result = -1;
jmitc91516 0:a5c253316af6 5569
jmitc91516 0:a5c253316af6 5570 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5571 return result;
jmitc91516 0:a5c253316af6 5572
jmitc91516 0:a5c253316af6 5573 while (I != -1)
jmitc91516 0:a5c253316af6 5574 {
jmitc91516 0:a5c253316af6 5575 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5576 {
jmitc91516 0:a5c253316af6 5577 if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5578 {
jmitc91516 0:a5c253316af6 5579 if ((sgl.AutoRedraw[I].Item.CursorFieldNo > C)
jmitc91516 0:a5c253316af6 5580 && (sgl.AutoRedraw[I].Item.CursorFieldNo <= closest))
jmitc91516 0:a5c253316af6 5581 {
jmitc91516 0:a5c253316af6 5582 closest = sgl.AutoRedraw[I].Item.CursorFieldNo;
jmitc91516 0:a5c253316af6 5583 result = I;
jmitc91516 0:a5c253316af6 5584 }
jmitc91516 0:a5c253316af6 5585 }
jmitc91516 0:a5c253316af6 5586 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5587 }
jmitc91516 0:a5c253316af6 5588 else
jmitc91516 0:a5c253316af6 5589 return -1;
jmitc91516 0:a5c253316af6 5590 }
jmitc91516 0:a5c253316af6 5591
jmitc91516 0:a5c253316af6 5592 return result;
jmitc91516 0:a5c253316af6 5593 }
jmitc91516 0:a5c253316af6 5594 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5595 GuiConst_INT16S AutoRedraw_GetPrevCursor(GuiConst_INT8S C)
jmitc91516 0:a5c253316af6 5596 {
jmitc91516 0:a5c253316af6 5597 GuiConst_INT16S I, result;
jmitc91516 0:a5c253316af6 5598 GuiConst_INT8S closest;
jmitc91516 0:a5c253316af6 5599
jmitc91516 0:a5c253316af6 5600 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5601 closest = 0;
jmitc91516 0:a5c253316af6 5602
jmitc91516 0:a5c253316af6 5603 result = -1;
jmitc91516 0:a5c253316af6 5604
jmitc91516 0:a5c253316af6 5605 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5606 return result;
jmitc91516 0:a5c253316af6 5607
jmitc91516 0:a5c253316af6 5608 while (I != -1)
jmitc91516 0:a5c253316af6 5609 {
jmitc91516 0:a5c253316af6 5610 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5611 {
jmitc91516 0:a5c253316af6 5612 if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5613 {
jmitc91516 0:a5c253316af6 5614 if ((sgl.AutoRedraw[I].Item.CursorFieldNo < C)
jmitc91516 0:a5c253316af6 5615 && (sgl.AutoRedraw[I].Item.CursorFieldNo >= closest))
jmitc91516 0:a5c253316af6 5616 {
jmitc91516 0:a5c253316af6 5617 closest = sgl.AutoRedraw[I].Item.CursorFieldNo;
jmitc91516 0:a5c253316af6 5618 result = I;
jmitc91516 0:a5c253316af6 5619 }
jmitc91516 0:a5c253316af6 5620 }
jmitc91516 0:a5c253316af6 5621 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5622 }
jmitc91516 0:a5c253316af6 5623 else
jmitc91516 0:a5c253316af6 5624 return -1;
jmitc91516 0:a5c253316af6 5625 }
jmitc91516 0:a5c253316af6 5626
jmitc91516 0:a5c253316af6 5627 return result;
jmitc91516 0:a5c253316af6 5628 }
jmitc91516 0:a5c253316af6 5629 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5630 GuiConst_INT16S AutoRedraw_CheckCursorInheritance(GuiConst_INT16S N)
jmitc91516 0:a5c253316af6 5631 {
jmitc91516 0:a5c253316af6 5632 GuiConst_INT16S I, J, result;
jmitc91516 0:a5c253316af6 5633 GuiConst_INT16S cursor_id;
jmitc91516 0:a5c253316af6 5634
jmitc91516 0:a5c253316af6 5635 if (GuiLib_ActiveCursorFieldNo < 0)
jmitc91516 0:a5c253316af6 5636 return -1;
jmitc91516 0:a5c253316af6 5637
jmitc91516 0:a5c253316af6 5638 if ((N < 0) || (N >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5639 return -1;
jmitc91516 0:a5c253316af6 5640
jmitc91516 0:a5c253316af6 5641 if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
jmitc91516 0:a5c253316af6 5642 return -1;
jmitc91516 0:a5c253316af6 5643
jmitc91516 0:a5c253316af6 5644 I = sgl.AutoRedraw[N].Parent;
jmitc91516 0:a5c253316af6 5645 result = 1;
jmitc91516 0:a5c253316af6 5646
jmitc91516 0:a5c253316af6 5647 while (result == 1)
jmitc91516 0:a5c253316af6 5648 {
jmitc91516 0:a5c253316af6 5649 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5650 {
jmitc91516 0:a5c253316af6 5651 result = -1;
jmitc91516 0:a5c253316af6 5652 break;
jmitc91516 0:a5c253316af6 5653 }
jmitc91516 0:a5c253316af6 5654
jmitc91516 0:a5c253316af6 5655 if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
jmitc91516 0:a5c253316af6 5656 {
jmitc91516 0:a5c253316af6 5657 if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
jmitc91516 0:a5c253316af6 5658 {
jmitc91516 0:a5c253316af6 5659 cursor_id = sgl.AutoRedraw[I].Item.CursorFieldNo;
jmitc91516 0:a5c253316af6 5660
jmitc91516 0:a5c253316af6 5661 if (cursor_id == GuiLib_ActiveCursorFieldNo)
jmitc91516 0:a5c253316af6 5662 {
jmitc91516 0:a5c253316af6 5663 result = 0;
jmitc91516 0:a5c253316af6 5664 break;
jmitc91516 0:a5c253316af6 5665 }
jmitc91516 0:a5c253316af6 5666 }
jmitc91516 0:a5c253316af6 5667 J = sgl.AutoRedraw[I].Parent;
jmitc91516 0:a5c253316af6 5668 if (J == I)
jmitc91516 0:a5c253316af6 5669 result = -1;
jmitc91516 0:a5c253316af6 5670 I = J;
jmitc91516 0:a5c253316af6 5671 }
jmitc91516 0:a5c253316af6 5672 else
jmitc91516 0:a5c253316af6 5673 {
jmitc91516 0:a5c253316af6 5674 result = -1;
jmitc91516 0:a5c253316af6 5675 break;
jmitc91516 0:a5c253316af6 5676 }
jmitc91516 0:a5c253316af6 5677
jmitc91516 0:a5c253316af6 5678 }
jmitc91516 0:a5c253316af6 5679
jmitc91516 0:a5c253316af6 5680 return result;
jmitc91516 0:a5c253316af6 5681 }
jmitc91516 0:a5c253316af6 5682 //------------------------------------------------------------------------------
jmitc91516 0:a5c253316af6 5683 void AutoRedraw_ResetCursor(void)
jmitc91516 0:a5c253316af6 5684 {
jmitc91516 0:a5c253316af6 5685 GuiConst_INT16S I;
jmitc91516 0:a5c253316af6 5686
jmitc91516 0:a5c253316af6 5687 I = sgl.AutoRedrawFirst;
jmitc91516 0:a5c253316af6 5688
jmitc91516 0:a5c253316af6 5689 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5690 return;
jmitc91516 0:a5c253316af6 5691
jmitc91516 0:a5c253316af6 5692 while ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
jmitc91516 0:a5c253316af6 5693 {
jmitc91516 0:a5c253316af6 5694 sgl.AutoRedraw[I].Item.CursorFieldNo = GuiLib_NO_CURSOR;
jmitc91516 0:a5c253316af6 5695
jmitc91516 0:a5c253316af6 5696 I = sgl.AutoRedraw[I].Next;
jmitc91516 0:a5c253316af6 5697 if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
jmitc91516 0:a5c253316af6 5698 break;
jmitc91516 0:a5c253316af6 5699 }
jmitc91516 0:a5c253316af6 5700
jmitc91516 0:a5c253316af6 5701 return;
jmitc91516 0:a5c253316af6 5702 }
jmitc91516 0:a5c253316af6 5703 #endif // GuiConst_CURSOR_SUPPORT_ON
jmitc91516 0:a5c253316af6 5704