Single Photo displayed on LPC4088
Dependencies: DMBasicGUI DMSupport
easyGUIFixed/GuiComponents.h@0:9140ec6aa604, 2017-07-28 (annotated)
- Committer:
- jmitc91516
- Date:
- Fri Jul 28 14:19:12 2017 +0000
- Revision:
- 0:9140ec6aa604
Simple application that displays a single photograph on the LPC4088 display.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmitc91516 | 0:9140ec6aa604 | 1 | /* ************************************************************************ */ |
jmitc91516 | 0:9140ec6aa604 | 2 | /* */ |
jmitc91516 | 0:9140ec6aa604 | 3 | /* (C)2004-2015 IBIS Solutions ApS */ |
jmitc91516 | 0:9140ec6aa604 | 4 | /* sales@easyGUI.com */ |
jmitc91516 | 0:9140ec6aa604 | 5 | /* www.easyGUI.com */ |
jmitc91516 | 0:9140ec6aa604 | 6 | /* */ |
jmitc91516 | 0:9140ec6aa604 | 7 | /* v6.0.9.005 */ |
jmitc91516 | 0:9140ec6aa604 | 8 | /* */ |
jmitc91516 | 0:9140ec6aa604 | 9 | /* GuiLib.c include file - do NOT reference it in your linker setup */ |
jmitc91516 | 0:9140ec6aa604 | 10 | /* */ |
jmitc91516 | 0:9140ec6aa604 | 11 | /* ************************************************************************ */ |
jmitc91516 | 0:9140ec6aa604 | 12 | |
jmitc91516 | 0:9140ec6aa604 | 13 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 14 | void GuiLib_ClearPositionCallbacks(void) |
jmitc91516 | 0:9140ec6aa604 | 15 | { |
jmitc91516 | 0:9140ec6aa604 | 16 | GuiConst_INT16U I; |
jmitc91516 | 0:9140ec6aa604 | 17 | |
jmitc91516 | 0:9140ec6aa604 | 18 | for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++) |
jmitc91516 | 0:9140ec6aa604 | 19 | sgl.PosCallbacks[I].InUse = 0; |
jmitc91516 | 0:9140ec6aa604 | 20 | } |
jmitc91516 | 0:9140ec6aa604 | 21 | |
jmitc91516 | 0:9140ec6aa604 | 22 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 23 | void GuiLib_SetPositionCallbackFunc( |
jmitc91516 | 0:9140ec6aa604 | 24 | GuiConst_INT16U IndexNo, |
jmitc91516 | 0:9140ec6aa604 | 25 | void (*PosCallbackFunc) (GuiConst_INT16U IndexNo, |
jmitc91516 | 0:9140ec6aa604 | 26 | GuiConst_INT16S X, |
jmitc91516 | 0:9140ec6aa604 | 27 | GuiConst_INT16S Y)) |
jmitc91516 | 0:9140ec6aa604 | 28 | { |
jmitc91516 | 0:9140ec6aa604 | 29 | GuiConst_INT32S I, J; |
jmitc91516 | 0:9140ec6aa604 | 30 | |
jmitc91516 | 0:9140ec6aa604 | 31 | J = -1; |
jmitc91516 | 0:9140ec6aa604 | 32 | for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++) |
jmitc91516 | 0:9140ec6aa604 | 33 | if (sgl.PosCallbacks[I].IndexNo == IndexNo) |
jmitc91516 | 0:9140ec6aa604 | 34 | { |
jmitc91516 | 0:9140ec6aa604 | 35 | J = I; |
jmitc91516 | 0:9140ec6aa604 | 36 | break; |
jmitc91516 | 0:9140ec6aa604 | 37 | } |
jmitc91516 | 0:9140ec6aa604 | 38 | if (J == -1) |
jmitc91516 | 0:9140ec6aa604 | 39 | for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++) |
jmitc91516 | 0:9140ec6aa604 | 40 | if (!sgl.PosCallbacks[I].InUse) |
jmitc91516 | 0:9140ec6aa604 | 41 | { |
jmitc91516 | 0:9140ec6aa604 | 42 | J = I; |
jmitc91516 | 0:9140ec6aa604 | 43 | break; |
jmitc91516 | 0:9140ec6aa604 | 44 | } |
jmitc91516 | 0:9140ec6aa604 | 45 | |
jmitc91516 | 0:9140ec6aa604 | 46 | if (J >= 0) |
jmitc91516 | 0:9140ec6aa604 | 47 | { |
jmitc91516 | 0:9140ec6aa604 | 48 | sgl.PosCallbacks[J].InUse = 1; |
jmitc91516 | 0:9140ec6aa604 | 49 | sgl.PosCallbacks[J].PosCallbackFunc = PosCallbackFunc; |
jmitc91516 | 0:9140ec6aa604 | 50 | sgl.PosCallbacks[J].IndexNo = IndexNo; |
jmitc91516 | 0:9140ec6aa604 | 51 | } |
jmitc91516 | 0:9140ec6aa604 | 52 | } |
jmitc91516 | 0:9140ec6aa604 | 53 | |
jmitc91516 | 0:9140ec6aa604 | 54 | #ifdef GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 55 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 56 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 57 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 58 | static void DrawCursorItem( |
jmitc91516 | 0:9140ec6aa604 | 59 | GuiConst_INT8U CursorVisible) |
jmitc91516 | 0:9140ec6aa604 | 60 | { |
jmitc91516 | 0:9140ec6aa604 | 61 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 62 | GuiConst_INT16S RemCursorFieldNo, I; |
jmitc91516 | 0:9140ec6aa604 | 63 | PrefixLocate ItemMemory RemMemory; |
jmitc91516 | 0:9140ec6aa604 | 64 | PrefixLocate ItemMemory *PrefixLocate CursorMemory; |
jmitc91516 | 0:9140ec6aa604 | 65 | PrefixLocate GuiLib_ItemRec *CursorItem; |
jmitc91516 | 0:9140ec6aa604 | 66 | |
jmitc91516 | 0:9140ec6aa604 | 67 | if (sgl.CursorInUse && (GuiLib_ActiveCursorFieldNo >= 0)) |
jmitc91516 | 0:9140ec6aa604 | 68 | { |
jmitc91516 | 0:9140ec6aa604 | 69 | I = -1; |
jmitc91516 | 0:9140ec6aa604 | 70 | memcpy(&RemMemory, &sgl.Memory, sizeof(ItemMemory)); |
jmitc91516 | 0:9140ec6aa604 | 71 | while ((I = AutoRedraw_GetCursor(GuiLib_ActiveCursorFieldNo, I)) != -1) |
jmitc91516 | 0:9140ec6aa604 | 72 | { |
jmitc91516 | 0:9140ec6aa604 | 73 | CursorItem = AutoRedraw_GetItem(I); |
jmitc91516 | 0:9140ec6aa604 | 74 | CursorMemory = AutoRedraw_GetItemMemory(I); |
jmitc91516 | 0:9140ec6aa604 | 75 | |
jmitc91516 | 0:9140ec6aa604 | 76 | if ((CursorItem == NULL) || (CursorMemory == NULL)) |
jmitc91516 | 0:9140ec6aa604 | 77 | return; |
jmitc91516 | 0:9140ec6aa604 | 78 | |
jmitc91516 | 0:9140ec6aa604 | 79 | memcpy(&sgl.CurItem, CursorItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 80 | memcpy(&sgl.Memory, CursorMemory, sizeof(ItemMemory)); |
jmitc91516 | 0:9140ec6aa604 | 81 | |
jmitc91516 | 0:9140ec6aa604 | 82 | |
jmitc91516 | 0:9140ec6aa604 | 83 | #ifdef GuiConst_ITEM_SCROLLBOX_INUSE |
jmitc91516 | 0:9140ec6aa604 | 84 | if ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_FIELDSCROLLBOX) && |
jmitc91516 | 0:9140ec6aa604 | 85 | (sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].ScrollLineDataFunc != 0)) |
jmitc91516 | 0:9140ec6aa604 | 86 | sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].ScrollLineDataFunc( |
jmitc91516 | 0:9140ec6aa604 | 87 | sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].MarkerStartLine[0]); |
jmitc91516 | 0:9140ec6aa604 | 88 | #endif // GuiConst_ITEM_SCROLLBOX_INUSE |
jmitc91516 | 0:9140ec6aa604 | 89 | |
jmitc91516 | 0:9140ec6aa604 | 90 | if (!CursorVisible) |
jmitc91516 | 0:9140ec6aa604 | 91 | { |
jmitc91516 | 0:9140ec6aa604 | 92 | RemCursorFieldNo = GuiLib_ActiveCursorFieldNo; |
jmitc91516 | 0:9140ec6aa604 | 93 | GuiLib_ActiveCursorFieldNo = -1; |
jmitc91516 | 0:9140ec6aa604 | 94 | } |
jmitc91516 | 0:9140ec6aa604 | 95 | else |
jmitc91516 | 0:9140ec6aa604 | 96 | RemCursorFieldNo = 0; |
jmitc91516 | 0:9140ec6aa604 | 97 | |
jmitc91516 | 0:9140ec6aa604 | 98 | sgl.SwapColors = 0; |
jmitc91516 | 0:9140ec6aa604 | 99 | #ifdef GuiConst_ITEM_SCROLLBOX_INUSE |
jmitc91516 | 0:9140ec6aa604 | 100 | if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_FIELDSCROLLBOX) |
jmitc91516 | 0:9140ec6aa604 | 101 | ScrollBox_DrawScrollLine(sgl.CurItem.CursorScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 102 | sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].MarkerStartLine[0]); |
jmitc91516 | 0:9140ec6aa604 | 103 | else |
jmitc91516 | 0:9140ec6aa604 | 104 | #endif // GuiConst_ITEM_SCROLLBOX_INUSE |
jmitc91516 | 0:9140ec6aa604 | 105 | { |
jmitc91516 | 0:9140ec6aa604 | 106 | #ifdef GuiConst_BITMAP_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 107 | UpdateBackgroundBitmap(); |
jmitc91516 | 0:9140ec6aa604 | 108 | #endif |
jmitc91516 | 0:9140ec6aa604 | 109 | |
jmitc91516 | 0:9140ec6aa604 | 110 | DrawItem(GuiLib_COL_INVERT_IF_CURSOR); |
jmitc91516 | 0:9140ec6aa604 | 111 | } |
jmitc91516 | 0:9140ec6aa604 | 112 | |
jmitc91516 | 0:9140ec6aa604 | 113 | if (!CursorVisible) |
jmitc91516 | 0:9140ec6aa604 | 114 | GuiLib_ActiveCursorFieldNo = RemCursorFieldNo; |
jmitc91516 | 0:9140ec6aa604 | 115 | } |
jmitc91516 | 0:9140ec6aa604 | 116 | memcpy(&sgl.Memory, &RemMemory, sizeof(ItemMemory)); |
jmitc91516 | 0:9140ec6aa604 | 117 | } |
jmitc91516 | 0:9140ec6aa604 | 118 | #else // GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 119 | CursorVisible = 0; |
jmitc91516 | 0:9140ec6aa604 | 120 | #endif // GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 121 | } |
jmitc91516 | 0:9140ec6aa604 | 122 | |
jmitc91516 | 0:9140ec6aa604 | 123 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 124 | void GuiLib_Cursor_Hide(void) |
jmitc91516 | 0:9140ec6aa604 | 125 | { |
jmitc91516 | 0:9140ec6aa604 | 126 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 127 | GuiDisplay_Lock(); |
jmitc91516 | 0:9140ec6aa604 | 128 | DrawCursorItem(0); |
jmitc91516 | 0:9140ec6aa604 | 129 | GuiDisplay_Unlock(); |
jmitc91516 | 0:9140ec6aa604 | 130 | GuiLib_ActiveCursorFieldNo = -1; |
jmitc91516 | 0:9140ec6aa604 | 131 | #endif // GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 132 | } |
jmitc91516 | 0:9140ec6aa604 | 133 | |
jmitc91516 | 0:9140ec6aa604 | 134 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 135 | GuiConst_INT8U GuiLib_IsCursorFieldInUse( |
jmitc91516 | 0:9140ec6aa604 | 136 | GuiConst_INT16S AskCursorFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 137 | { |
jmitc91516 | 0:9140ec6aa604 | 138 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 139 | if (AskCursorFieldNo >= 0) |
jmitc91516 | 0:9140ec6aa604 | 140 | { |
jmitc91516 | 0:9140ec6aa604 | 141 | if (AutoRedraw_GetCursor(AskCursorFieldNo, -1) != -1) |
jmitc91516 | 0:9140ec6aa604 | 142 | return 1; |
jmitc91516 | 0:9140ec6aa604 | 143 | } |
jmitc91516 | 0:9140ec6aa604 | 144 | |
jmitc91516 | 0:9140ec6aa604 | 145 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 146 | #else // GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 147 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 148 | #endif // GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 149 | } |
jmitc91516 | 0:9140ec6aa604 | 150 | |
jmitc91516 | 0:9140ec6aa604 | 151 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 152 | GuiConst_INT8U GuiLib_Cursor_Select( |
jmitc91516 | 0:9140ec6aa604 | 153 | GuiConst_INT16S NewCursorFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 154 | { |
jmitc91516 | 0:9140ec6aa604 | 155 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 156 | if (NewCursorFieldNo == -1) |
jmitc91516 | 0:9140ec6aa604 | 157 | { |
jmitc91516 | 0:9140ec6aa604 | 158 | GuiLib_Cursor_Hide(); |
jmitc91516 | 0:9140ec6aa604 | 159 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 160 | } |
jmitc91516 | 0:9140ec6aa604 | 161 | else if (NewCursorFieldNo >= 0) |
jmitc91516 | 0:9140ec6aa604 | 162 | { |
jmitc91516 | 0:9140ec6aa604 | 163 | if (AutoRedraw_GetCursor(NewCursorFieldNo, -1) != -1) |
jmitc91516 | 0:9140ec6aa604 | 164 | { |
jmitc91516 | 0:9140ec6aa604 | 165 | GuiDisplay_Lock(); |
jmitc91516 | 0:9140ec6aa604 | 166 | |
jmitc91516 | 0:9140ec6aa604 | 167 | DrawCursorItem(0); |
jmitc91516 | 0:9140ec6aa604 | 168 | GuiLib_ActiveCursorFieldNo = NewCursorFieldNo; |
jmitc91516 | 0:9140ec6aa604 | 169 | DrawCursorItem(1); |
jmitc91516 | 0:9140ec6aa604 | 170 | |
jmitc91516 | 0:9140ec6aa604 | 171 | GuiDisplay_Unlock(); |
jmitc91516 | 0:9140ec6aa604 | 172 | |
jmitc91516 | 0:9140ec6aa604 | 173 | return 1; |
jmitc91516 | 0:9140ec6aa604 | 174 | } |
jmitc91516 | 0:9140ec6aa604 | 175 | } |
jmitc91516 | 0:9140ec6aa604 | 176 | |
jmitc91516 | 0:9140ec6aa604 | 177 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 178 | #else |
jmitc91516 | 0:9140ec6aa604 | 179 | NewCursorFieldNo = 0; |
jmitc91516 | 0:9140ec6aa604 | 180 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 181 | #endif |
jmitc91516 | 0:9140ec6aa604 | 182 | } |
jmitc91516 | 0:9140ec6aa604 | 183 | |
jmitc91516 | 0:9140ec6aa604 | 184 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 185 | GuiConst_INT8U GuiLib_Cursor_Down(void) |
jmitc91516 | 0:9140ec6aa604 | 186 | { |
jmitc91516 | 0:9140ec6aa604 | 187 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 188 | GuiConst_INT16S NewCursorFieldNo, Index; |
jmitc91516 | 0:9140ec6aa604 | 189 | |
jmitc91516 | 0:9140ec6aa604 | 190 | Index = AutoRedraw_GetNextCursor(GuiLib_ActiveCursorFieldNo); |
jmitc91516 | 0:9140ec6aa604 | 191 | |
jmitc91516 | 0:9140ec6aa604 | 192 | NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index); |
jmitc91516 | 0:9140ec6aa604 | 193 | |
jmitc91516 | 0:9140ec6aa604 | 194 | #ifdef GuiConst_CURSOR_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 195 | if ((NewCursorFieldNo == GuiLib_ActiveCursorFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 196 | || (Index == -1)) |
jmitc91516 | 0:9140ec6aa604 | 197 | return GuiLib_Cursor_Home(); |
jmitc91516 | 0:9140ec6aa604 | 198 | #else |
jmitc91516 | 0:9140ec6aa604 | 199 | if (Index == -1) |
jmitc91516 | 0:9140ec6aa604 | 200 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 201 | #endif |
jmitc91516 | 0:9140ec6aa604 | 202 | |
jmitc91516 | 0:9140ec6aa604 | 203 | GuiLib_Cursor_Select(NewCursorFieldNo); |
jmitc91516 | 0:9140ec6aa604 | 204 | |
jmitc91516 | 0:9140ec6aa604 | 205 | return 1; |
jmitc91516 | 0:9140ec6aa604 | 206 | #else |
jmitc91516 | 0:9140ec6aa604 | 207 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 208 | #endif |
jmitc91516 | 0:9140ec6aa604 | 209 | } |
jmitc91516 | 0:9140ec6aa604 | 210 | |
jmitc91516 | 0:9140ec6aa604 | 211 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 212 | GuiConst_INT8U GuiLib_Cursor_Up(void) |
jmitc91516 | 0:9140ec6aa604 | 213 | { |
jmitc91516 | 0:9140ec6aa604 | 214 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 215 | GuiConst_INT16S NewCursorFieldNo, Index; |
jmitc91516 | 0:9140ec6aa604 | 216 | |
jmitc91516 | 0:9140ec6aa604 | 217 | Index = AutoRedraw_GetPrevCursor(GuiLib_ActiveCursorFieldNo); |
jmitc91516 | 0:9140ec6aa604 | 218 | |
jmitc91516 | 0:9140ec6aa604 | 219 | NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index); |
jmitc91516 | 0:9140ec6aa604 | 220 | |
jmitc91516 | 0:9140ec6aa604 | 221 | #ifdef GuiConst_CURSOR_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 222 | if ((NewCursorFieldNo == GuiLib_ActiveCursorFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 223 | || (Index == -1)) |
jmitc91516 | 0:9140ec6aa604 | 224 | return GuiLib_Cursor_End(); |
jmitc91516 | 0:9140ec6aa604 | 225 | #else |
jmitc91516 | 0:9140ec6aa604 | 226 | if (Index == -1) |
jmitc91516 | 0:9140ec6aa604 | 227 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 228 | #endif |
jmitc91516 | 0:9140ec6aa604 | 229 | |
jmitc91516 | 0:9140ec6aa604 | 230 | GuiLib_Cursor_Select(NewCursorFieldNo); |
jmitc91516 | 0:9140ec6aa604 | 231 | |
jmitc91516 | 0:9140ec6aa604 | 232 | return 1; |
jmitc91516 | 0:9140ec6aa604 | 233 | #else |
jmitc91516 | 0:9140ec6aa604 | 234 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 235 | #endif |
jmitc91516 | 0:9140ec6aa604 | 236 | |
jmitc91516 | 0:9140ec6aa604 | 237 | } |
jmitc91516 | 0:9140ec6aa604 | 238 | |
jmitc91516 | 0:9140ec6aa604 | 239 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 240 | GuiConst_INT8U GuiLib_Cursor_Home(void) |
jmitc91516 | 0:9140ec6aa604 | 241 | { |
jmitc91516 | 0:9140ec6aa604 | 242 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 243 | GuiConst_INT16S NewCursorFieldNo, Index; |
jmitc91516 | 0:9140ec6aa604 | 244 | |
jmitc91516 | 0:9140ec6aa604 | 245 | Index = AutoRedraw_GetFirstCursor(); |
jmitc91516 | 0:9140ec6aa604 | 246 | |
jmitc91516 | 0:9140ec6aa604 | 247 | NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index); |
jmitc91516 | 0:9140ec6aa604 | 248 | |
jmitc91516 | 0:9140ec6aa604 | 249 | if (NewCursorFieldNo == GuiLib_ActiveCursorFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 250 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 251 | |
jmitc91516 | 0:9140ec6aa604 | 252 | GuiLib_Cursor_Select(NewCursorFieldNo); |
jmitc91516 | 0:9140ec6aa604 | 253 | |
jmitc91516 | 0:9140ec6aa604 | 254 | return 1; |
jmitc91516 | 0:9140ec6aa604 | 255 | #else |
jmitc91516 | 0:9140ec6aa604 | 256 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 257 | #endif |
jmitc91516 | 0:9140ec6aa604 | 258 | } |
jmitc91516 | 0:9140ec6aa604 | 259 | |
jmitc91516 | 0:9140ec6aa604 | 260 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 261 | GuiConst_INT8U GuiLib_Cursor_End(void) |
jmitc91516 | 0:9140ec6aa604 | 262 | { |
jmitc91516 | 0:9140ec6aa604 | 263 | #ifndef GuiConst_CURSOR_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 264 | GuiConst_INT16S NewCursorFieldNo, Index; |
jmitc91516 | 0:9140ec6aa604 | 265 | |
jmitc91516 | 0:9140ec6aa604 | 266 | Index = AutoRedraw_GetLastCursor(); |
jmitc91516 | 0:9140ec6aa604 | 267 | |
jmitc91516 | 0:9140ec6aa604 | 268 | NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index); |
jmitc91516 | 0:9140ec6aa604 | 269 | |
jmitc91516 | 0:9140ec6aa604 | 270 | if (NewCursorFieldNo == GuiLib_ActiveCursorFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 271 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 272 | |
jmitc91516 | 0:9140ec6aa604 | 273 | GuiLib_Cursor_Select(NewCursorFieldNo); |
jmitc91516 | 0:9140ec6aa604 | 274 | |
jmitc91516 | 0:9140ec6aa604 | 275 | return 1; |
jmitc91516 | 0:9140ec6aa604 | 276 | #else |
jmitc91516 | 0:9140ec6aa604 | 277 | return 0; |
jmitc91516 | 0:9140ec6aa604 | 278 | #endif |
jmitc91516 | 0:9140ec6aa604 | 279 | } |
jmitc91516 | 0:9140ec6aa604 | 280 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 281 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 282 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 283 | #endif // GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 284 | |
jmitc91516 | 0:9140ec6aa604 | 285 | #ifdef GuiConst_BLINK_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 286 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 287 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 288 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 289 | static void BlinkBox(void) |
jmitc91516 | 0:9140ec6aa604 | 290 | { |
jmitc91516 | 0:9140ec6aa604 | 291 | if ((sgl.BlinkBoxRate) && (sgl.DisplayWriting)) |
jmitc91516 | 0:9140ec6aa604 | 292 | GuiLib_InvertBox(sgl.BlinkBoxX1, sgl.BlinkBoxY1, sgl.BlinkBoxX2, sgl.BlinkBoxY2); |
jmitc91516 | 0:9140ec6aa604 | 293 | sgl.BlinkBoxInverted = !sgl.BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 294 | } |
jmitc91516 | 0:9140ec6aa604 | 295 | |
jmitc91516 | 0:9140ec6aa604 | 296 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 297 | void GuiLib_BlinkBoxStart( |
jmitc91516 | 0:9140ec6aa604 | 298 | GuiConst_INT16S X1, |
jmitc91516 | 0:9140ec6aa604 | 299 | GuiConst_INT16S Y1, |
jmitc91516 | 0:9140ec6aa604 | 300 | GuiConst_INT16S X2, |
jmitc91516 | 0:9140ec6aa604 | 301 | GuiConst_INT16S Y2, |
jmitc91516 | 0:9140ec6aa604 | 302 | GuiConst_INT16S Rate) |
jmitc91516 | 0:9140ec6aa604 | 303 | { |
jmitc91516 | 0:9140ec6aa604 | 304 | GuiLib_BlinkBoxStop(); |
jmitc91516 | 0:9140ec6aa604 | 305 | sgl.BlinkBoxX1 = X1; |
jmitc91516 | 0:9140ec6aa604 | 306 | sgl.BlinkBoxY1 = Y1; |
jmitc91516 | 0:9140ec6aa604 | 307 | sgl.BlinkBoxX2 = X2; |
jmitc91516 | 0:9140ec6aa604 | 308 | sgl.BlinkBoxY2 = Y2; |
jmitc91516 | 0:9140ec6aa604 | 309 | if (Rate < 1) |
jmitc91516 | 0:9140ec6aa604 | 310 | sgl.BlinkBoxRate = 1; |
jmitc91516 | 0:9140ec6aa604 | 311 | else |
jmitc91516 | 0:9140ec6aa604 | 312 | sgl.BlinkBoxRate = Rate; |
jmitc91516 | 0:9140ec6aa604 | 313 | sgl.BlinkBoxState = sgl.BlinkBoxRate; |
jmitc91516 | 0:9140ec6aa604 | 314 | sgl.BlinkBoxInverted = 0; |
jmitc91516 | 0:9140ec6aa604 | 315 | BlinkBox(); |
jmitc91516 | 0:9140ec6aa604 | 316 | } |
jmitc91516 | 0:9140ec6aa604 | 317 | |
jmitc91516 | 0:9140ec6aa604 | 318 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 319 | void GuiLib_BlinkBoxStop(void) |
jmitc91516 | 0:9140ec6aa604 | 320 | { |
jmitc91516 | 0:9140ec6aa604 | 321 | #ifndef GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 322 | GuiConst_INT16U I; |
jmitc91516 | 0:9140ec6aa604 | 323 | #endif |
jmitc91516 | 0:9140ec6aa604 | 324 | |
jmitc91516 | 0:9140ec6aa604 | 325 | if (sgl.BlinkBoxRate && sgl.BlinkBoxInverted) |
jmitc91516 | 0:9140ec6aa604 | 326 | BlinkBox(); |
jmitc91516 | 0:9140ec6aa604 | 327 | sgl.BlinkBoxRate = 0; |
jmitc91516 | 0:9140ec6aa604 | 328 | |
jmitc91516 | 0:9140ec6aa604 | 329 | #ifndef GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 330 | for (I = 0; I < GuiConst_BLINK_FIELDS_MAX; I++) |
jmitc91516 | 0:9140ec6aa604 | 331 | if (sgl.BlinkTextItems[I].InUse && sgl.BlinkTextItems[I].Active) |
jmitc91516 | 0:9140ec6aa604 | 332 | GuiLib_BlinkBoxMarkedItemStop(I); |
jmitc91516 | 0:9140ec6aa604 | 333 | #endif |
jmitc91516 | 0:9140ec6aa604 | 334 | } |
jmitc91516 | 0:9140ec6aa604 | 335 | |
jmitc91516 | 0:9140ec6aa604 | 336 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 337 | void GuiLib_BlinkBoxMarkedItem( |
jmitc91516 | 0:9140ec6aa604 | 338 | GuiConst_INT16U BlinkFieldNo, |
jmitc91516 | 0:9140ec6aa604 | 339 | GuiConst_INT16U CharNo, |
jmitc91516 | 0:9140ec6aa604 | 340 | GuiConst_INT16S Rate) |
jmitc91516 | 0:9140ec6aa604 | 341 | { |
jmitc91516 | 0:9140ec6aa604 | 342 | #ifndef GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 343 | GuiConst_INT16S TextXOfs[GuiConst_MAX_TEXT_LEN + 2]; |
jmitc91516 | 0:9140ec6aa604 | 344 | TextParRec TempTextPar; |
jmitc91516 | 0:9140ec6aa604 | 345 | GuiConst_INT8U TempPs; |
jmitc91516 | 0:9140ec6aa604 | 346 | GuiConst_INT16U CharCnt; |
jmitc91516 | 0:9140ec6aa604 | 347 | GuiConst_INT16U TempTextLength; |
jmitc91516 | 0:9140ec6aa604 | 348 | GuiConst_INT8U TempFormatFieldWidth; |
jmitc91516 | 0:9140ec6aa604 | 349 | GuiConst_INT8U TempFormatDecimals; |
jmitc91516 | 0:9140ec6aa604 | 350 | GuiConst_INT8U TempFormatAlignment; |
jmitc91516 | 0:9140ec6aa604 | 351 | GuiConst_INT8U TempFormatFormat; |
jmitc91516 | 0:9140ec6aa604 | 352 | #ifdef GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 353 | GuiConst_INT32U PrefixRom TempOfs; |
jmitc91516 | 0:9140ec6aa604 | 354 | GuiConst_INT8U CharHeader[GuiLib_CHR_LINECTRL_OFS]; |
jmitc91516 | 0:9140ec6aa604 | 355 | #else // GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 356 | GuiConst_INT8U PrefixRom * TempPtr; |
jmitc91516 | 0:9140ec6aa604 | 357 | #endif // GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 358 | #ifdef GuiConst_ITEM_TEXTBLOCK_INUSE |
jmitc91516 | 0:9140ec6aa604 | 359 | GuiConst_INT8U CharHeader1[GuiLib_CHR_LINECTRL_OFS]; |
jmitc91516 | 0:9140ec6aa604 | 360 | GuiConst_INT8U CharHeader2[GuiLib_CHR_LINECTRL_OFS]; |
jmitc91516 | 0:9140ec6aa604 | 361 | GuiConst_INT16S TextCharLineStart[GuiConst_MAX_PARAGRAPH_LINE_CNT]; |
jmitc91516 | 0:9140ec6aa604 | 362 | GuiConst_INT16S TextCharLineEnd[GuiConst_MAX_PARAGRAPH_LINE_CNT]; |
jmitc91516 | 0:9140ec6aa604 | 363 | GuiConst_INT16S M; |
jmitc91516 | 0:9140ec6aa604 | 364 | GuiConst_INT16S LineCnt; |
jmitc91516 | 0:9140ec6aa604 | 365 | GuiConst_INT16S LineCnt2; |
jmitc91516 | 0:9140ec6aa604 | 366 | GuiConst_INT16S LineLen; |
jmitc91516 | 0:9140ec6aa604 | 367 | GuiConst_INT16S XStart, XEnd; |
jmitc91516 | 0:9140ec6aa604 | 368 | GuiConst_INT16S P2; |
jmitc91516 | 0:9140ec6aa604 | 369 | #endif // GuiConst_ITEM_TEXTBLOCK_INUSE |
jmitc91516 | 0:9140ec6aa604 | 370 | GuiConst_INT16S N; |
jmitc91516 | 0:9140ec6aa604 | 371 | #ifndef GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 372 | GuiConst_INT16S P1; |
jmitc91516 | 0:9140ec6aa604 | 373 | #endif |
jmitc91516 | 0:9140ec6aa604 | 374 | GuiConst_TEXT PrefixGeneric *CharPtr; |
jmitc91516 | 0:9140ec6aa604 | 375 | GuiConst_INT32S VarValue; |
jmitc91516 | 0:9140ec6aa604 | 376 | GuiConst_INT16S TextPixelLen; |
jmitc91516 | 0:9140ec6aa604 | 377 | |
jmitc91516 | 0:9140ec6aa604 | 378 | if ((BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 379 | !sgl.BlinkTextItems[BlinkFieldNo].InUse) |
jmitc91516 | 0:9140ec6aa604 | 380 | return; |
jmitc91516 | 0:9140ec6aa604 | 381 | |
jmitc91516 | 0:9140ec6aa604 | 382 | if (sgl.BlinkTextItems[BlinkFieldNo].Active && |
jmitc91516 | 0:9140ec6aa604 | 383 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate && |
jmitc91516 | 0:9140ec6aa604 | 384 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted) |
jmitc91516 | 0:9140ec6aa604 | 385 | { |
jmitc91516 | 0:9140ec6aa604 | 386 | if (sgl.DisplayWriting) |
jmitc91516 | 0:9140ec6aa604 | 387 | { |
jmitc91516 | 0:9140ec6aa604 | 388 | GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1, |
jmitc91516 | 0:9140ec6aa604 | 389 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1, |
jmitc91516 | 0:9140ec6aa604 | 390 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2, |
jmitc91516 | 0:9140ec6aa604 | 391 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2); |
jmitc91516 | 0:9140ec6aa604 | 392 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted = |
jmitc91516 | 0:9140ec6aa604 | 393 | !sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 394 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast = |
jmitc91516 | 0:9140ec6aa604 | 395 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 396 | } |
jmitc91516 | 0:9140ec6aa604 | 397 | } |
jmitc91516 | 0:9140ec6aa604 | 398 | |
jmitc91516 | 0:9140ec6aa604 | 399 | sgl.BlinkTextItems[BlinkFieldNo].Active = 0; |
jmitc91516 | 0:9140ec6aa604 | 400 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = 0; |
jmitc91516 | 0:9140ec6aa604 | 401 | |
jmitc91516 | 0:9140ec6aa604 | 402 | if ((BlinkFieldNo < GuiConst_BLINK_FIELDS_MAX) && |
jmitc91516 | 0:9140ec6aa604 | 403 | sgl.BlinkTextItems[BlinkFieldNo].InUse) |
jmitc91516 | 0:9140ec6aa604 | 404 | { |
jmitc91516 | 0:9140ec6aa604 | 405 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = sgl.BlinkTextItems[BlinkFieldNo].X1; |
jmitc91516 | 0:9140ec6aa604 | 406 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = sgl.BlinkTextItems[BlinkFieldNo].X2; |
jmitc91516 | 0:9140ec6aa604 | 407 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 = sgl.BlinkTextItems[BlinkFieldNo].Y1; |
jmitc91516 | 0:9140ec6aa604 | 408 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2 = sgl.BlinkTextItems[BlinkFieldNo].Y2; |
jmitc91516 | 0:9140ec6aa604 | 409 | |
jmitc91516 | 0:9140ec6aa604 | 410 | if (sgl.BlinkTextItems[BlinkFieldNo].InUse) |
jmitc91516 | 0:9140ec6aa604 | 411 | { |
jmitc91516 | 0:9140ec6aa604 | 412 | TempTextPar = sgl.CurItem.TextPar[0]; |
jmitc91516 | 0:9140ec6aa604 | 413 | TempTextLength = sgl.CurItem.TextLength[0]; |
jmitc91516 | 0:9140ec6aa604 | 414 | TempFormatFieldWidth = sgl.CurItem.FormatFieldWidth; |
jmitc91516 | 0:9140ec6aa604 | 415 | TempFormatDecimals = sgl.CurItem.FormatDecimals; |
jmitc91516 | 0:9140ec6aa604 | 416 | TempFormatAlignment = sgl.CurItem.FormatAlignment; |
jmitc91516 | 0:9140ec6aa604 | 417 | TempFormatFormat = sgl.CurItem.FormatFormat; |
jmitc91516 | 0:9140ec6aa604 | 418 | |
jmitc91516 | 0:9140ec6aa604 | 419 | sgl.CurItem.FormatFieldWidth = sgl.BlinkTextItems[BlinkFieldNo].FormatFieldWidth; |
jmitc91516 | 0:9140ec6aa604 | 420 | sgl.CurItem.FormatDecimals = sgl.BlinkTextItems[BlinkFieldNo].FormatDecimals; |
jmitc91516 | 0:9140ec6aa604 | 421 | sgl.CurItem.FormatAlignment = sgl.BlinkTextItems[BlinkFieldNo].FormatAlignment; |
jmitc91516 | 0:9140ec6aa604 | 422 | sgl.CurItem.FormatFormat = sgl.BlinkTextItems[BlinkFieldNo].FormatFormat; |
jmitc91516 | 0:9140ec6aa604 | 423 | sgl.CurItem.TextPar[0] = sgl.BlinkTextItems[BlinkFieldNo].TextPar; |
jmitc91516 | 0:9140ec6aa604 | 424 | CharCnt = sgl.BlinkTextItems[BlinkFieldNo].CharCnt; |
jmitc91516 | 0:9140ec6aa604 | 425 | sgl.CurItem.TextLength[0] = CharCnt; |
jmitc91516 | 0:9140ec6aa604 | 426 | |
jmitc91516 | 0:9140ec6aa604 | 427 | SetCurFont(sgl.BlinkTextItems[BlinkFieldNo].TextPar.FontIndex); |
jmitc91516 | 0:9140ec6aa604 | 428 | |
jmitc91516 | 0:9140ec6aa604 | 429 | if ((sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_TEXT) || |
jmitc91516 | 0:9140ec6aa604 | 430 | (sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_TEXTBLOCK)) |
jmitc91516 | 0:9140ec6aa604 | 431 | { |
jmitc91516 | 0:9140ec6aa604 | 432 | #ifdef GuiConst_CHARMODE_UNICODE |
jmitc91516 | 0:9140ec6aa604 | 433 | ExtractUnicodeString( |
jmitc91516 | 0:9140ec6aa604 | 434 | (GuiConst_INT8U PrefixRom *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr, |
jmitc91516 | 0:9140ec6aa604 | 435 | sgl.CurItem.TextLength[0]); |
jmitc91516 | 0:9140ec6aa604 | 436 | #ifdef GuiConst_ARAB_CHARS_INUSE |
jmitc91516 | 0:9140ec6aa604 | 437 | if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 438 | GuiLib_BITFLAG_REVERSEWRITING) |
jmitc91516 | 0:9140ec6aa604 | 439 | { |
jmitc91516 | 0:9140ec6aa604 | 440 | CharCnt = ArabicCorrection( |
jmitc91516 | 0:9140ec6aa604 | 441 | sgl.UnicodeTextBuf, CharCnt, |
jmitc91516 | 0:9140ec6aa604 | 442 | (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 443 | GuiLib_BITFLAG_REVERSEWRITING) > 0); |
jmitc91516 | 0:9140ec6aa604 | 444 | } |
jmitc91516 | 0:9140ec6aa604 | 445 | #endif // GuiConst_ARAB_CHARS_INUSE |
jmitc91516 | 0:9140ec6aa604 | 446 | #endif // GuiConst_CHARMODE_UNICODE |
jmitc91516 | 0:9140ec6aa604 | 447 | |
jmitc91516 | 0:9140ec6aa604 | 448 | #ifdef GuiConst_CHARMODE_UNICODE |
jmitc91516 | 0:9140ec6aa604 | 449 | CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.UnicodeTextBuf; |
jmitc91516 | 0:9140ec6aa604 | 450 | #else // GuiConst_CHARMODE_UNICODE |
jmitc91516 | 0:9140ec6aa604 | 451 | CharPtr = (GuiConst_TEXT PrefixRom *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr; |
jmitc91516 | 0:9140ec6aa604 | 452 | #endif // GuiConst_CHARMODE_UNICODE |
jmitc91516 | 0:9140ec6aa604 | 453 | PrepareText(CharPtr,CharCnt,0); |
jmitc91516 | 0:9140ec6aa604 | 454 | } |
jmitc91516 | 0:9140ec6aa604 | 455 | else |
jmitc91516 | 0:9140ec6aa604 | 456 | { |
jmitc91516 | 0:9140ec6aa604 | 457 | #ifdef GuiConst_DISP_VAR_NOW |
jmitc91516 | 0:9140ec6aa604 | 458 | displayVarNow = 1; |
jmitc91516 | 0:9140ec6aa604 | 459 | #endif |
jmitc91516 | 0:9140ec6aa604 | 460 | if (sgl.BlinkTextItems[BlinkFieldNo].VarType == GuiLib_VAR_STRING) |
jmitc91516 | 0:9140ec6aa604 | 461 | { |
jmitc91516 | 0:9140ec6aa604 | 462 | CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr; |
jmitc91516 | 0:9140ec6aa604 | 463 | #ifdef GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 464 | CharCnt = strlen(CharPtr); |
jmitc91516 | 0:9140ec6aa604 | 465 | #else |
jmitc91516 | 0:9140ec6aa604 | 466 | #ifdef GuiConst_CODEVISION_COMPILER |
jmitc91516 | 0:9140ec6aa604 | 467 | CharCnt = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr); |
jmitc91516 | 0:9140ec6aa604 | 468 | #else // GuiConst_CODEVISION_COMPILER |
jmitc91516 | 0:9140ec6aa604 | 469 | CharCnt = GuiLib_UnicodeStrLen(CharPtr); |
jmitc91516 | 0:9140ec6aa604 | 470 | #endif // GuiConst_CODEVISION_COMPILER |
jmitc91516 | 0:9140ec6aa604 | 471 | #endif // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 472 | } |
jmitc91516 | 0:9140ec6aa604 | 473 | else |
jmitc91516 | 0:9140ec6aa604 | 474 | { |
jmitc91516 | 0:9140ec6aa604 | 475 | VarValue = ReadVar(sgl.BlinkTextItems[BlinkFieldNo].TextPtr, |
jmitc91516 | 0:9140ec6aa604 | 476 | sgl.BlinkTextItems[BlinkFieldNo].VarType); |
jmitc91516 | 0:9140ec6aa604 | 477 | |
jmitc91516 | 0:9140ec6aa604 | 478 | CharCnt = |
jmitc91516 | 0:9140ec6aa604 | 479 | DataNumStr(VarValue, sgl.BlinkTextItems[BlinkFieldNo].VarType, 0); |
jmitc91516 | 0:9140ec6aa604 | 480 | |
jmitc91516 | 0:9140ec6aa604 | 481 | #ifdef GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 482 | CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr; |
jmitc91516 | 0:9140ec6aa604 | 483 | #else // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 484 | for (P1=0; P1<=CharCnt; P1++) |
jmitc91516 | 0:9140ec6aa604 | 485 | sgl.VarNumUnicodeTextStr[P1] = sgl.VarNumTextStr[P1]; |
jmitc91516 | 0:9140ec6aa604 | 486 | CharPtr = (GuiConst_TEXT *) sgl.VarNumUnicodeTextStr; |
jmitc91516 | 0:9140ec6aa604 | 487 | #endif // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 488 | } |
jmitc91516 | 0:9140ec6aa604 | 489 | #ifdef GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 490 | strcpy(sgl.AnsiTextBuf, CharPtr); |
jmitc91516 | 0:9140ec6aa604 | 491 | #else // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 492 | GuiLib_UnicodeStrCpy(sgl.UnicodeTextBuf, CharPtr); |
jmitc91516 | 0:9140ec6aa604 | 493 | #endif // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 494 | #ifdef GuiConst_ARAB_CHARS_INUSE |
jmitc91516 | 0:9140ec6aa604 | 495 | if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 496 | GuiLib_BITFLAG_REVERSEWRITING) |
jmitc91516 | 0:9140ec6aa604 | 497 | { |
jmitc91516 | 0:9140ec6aa604 | 498 | CharCnt = ArabicCorrection( |
jmitc91516 | 0:9140ec6aa604 | 499 | sgl.UnicodeTextBuf, CharCnt, |
jmitc91516 | 0:9140ec6aa604 | 500 | (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 501 | GuiLib_BITFLAG_REVERSEWRITING) > 0); |
jmitc91516 | 0:9140ec6aa604 | 502 | } |
jmitc91516 | 0:9140ec6aa604 | 503 | #endif // GuiConst_ARAB_CHARS_INUSE |
jmitc91516 | 0:9140ec6aa604 | 504 | #ifdef GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 505 | CharPtr = sgl.AnsiTextBuf; |
jmitc91516 | 0:9140ec6aa604 | 506 | #else // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 507 | CharPtr = sgl.UnicodeTextBuf; |
jmitc91516 | 0:9140ec6aa604 | 508 | #endif // GuiConst_CHARMODE_ANSI |
jmitc91516 | 0:9140ec6aa604 | 509 | PrepareText(CharPtr, CharCnt,0); |
jmitc91516 | 0:9140ec6aa604 | 510 | |
jmitc91516 | 0:9140ec6aa604 | 511 | #ifdef GuiConst_DISP_VAR_NOW |
jmitc91516 | 0:9140ec6aa604 | 512 | displayVarNow = 0; |
jmitc91516 | 0:9140ec6aa604 | 513 | #endif |
jmitc91516 | 0:9140ec6aa604 | 514 | } |
jmitc91516 | 0:9140ec6aa604 | 515 | |
jmitc91516 | 0:9140ec6aa604 | 516 | if (CharNo > CharCnt) |
jmitc91516 | 0:9140ec6aa604 | 517 | { |
jmitc91516 | 0:9140ec6aa604 | 518 | SetCurFont(sgl.CurItem.TextPar[0].FontIndex); |
jmitc91516 | 0:9140ec6aa604 | 519 | sgl.CurItem.TextPar[0] = TempTextPar; |
jmitc91516 | 0:9140ec6aa604 | 520 | sgl.CurItem.TextLength[0] = TempTextLength; |
jmitc91516 | 0:9140ec6aa604 | 521 | sgl.CurItem.FormatFieldWidth = TempFormatFieldWidth; |
jmitc91516 | 0:9140ec6aa604 | 522 | sgl.CurItem.FormatDecimals = TempFormatDecimals; |
jmitc91516 | 0:9140ec6aa604 | 523 | sgl.CurItem.FormatAlignment = TempFormatAlignment; |
jmitc91516 | 0:9140ec6aa604 | 524 | sgl.CurItem.FormatFormat = TempFormatFormat; |
jmitc91516 | 0:9140ec6aa604 | 525 | return; |
jmitc91516 | 0:9140ec6aa604 | 526 | } |
jmitc91516 | 0:9140ec6aa604 | 527 | |
jmitc91516 | 0:9140ec6aa604 | 528 | if(CharNo > 0) |
jmitc91516 | 0:9140ec6aa604 | 529 | { |
jmitc91516 | 0:9140ec6aa604 | 530 | #ifdef GuiConst_BLINK_LF_COUNTS |
jmitc91516 | 0:9140ec6aa604 | 531 | if (*(CharPtr + (CharNo - 1)) != GuiLib_LINEFEED) |
jmitc91516 | 0:9140ec6aa604 | 532 | #endif |
jmitc91516 | 0:9140ec6aa604 | 533 | { |
jmitc91516 | 0:9140ec6aa604 | 534 | sgl.BlinkTextItems[BlinkFieldNo].Active = 0; |
jmitc91516 | 0:9140ec6aa604 | 535 | sgl.BlinkTextItems[BlinkFieldNo].CharNo = CharNo; |
jmitc91516 | 0:9140ec6aa604 | 536 | } |
jmitc91516 | 0:9140ec6aa604 | 537 | } |
jmitc91516 | 0:9140ec6aa604 | 538 | |
jmitc91516 | 0:9140ec6aa604 | 539 | #ifdef GuiConst_ITEM_TEXTBLOCK_INUSE |
jmitc91516 | 0:9140ec6aa604 | 540 | if ((sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_TEXTBLOCK)|| |
jmitc91516 | 0:9140ec6aa604 | 541 | (sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_VARBLOCK)) |
jmitc91516 | 0:9140ec6aa604 | 542 | { |
jmitc91516 | 0:9140ec6aa604 | 543 | if(CharNo > 0) |
jmitc91516 | 0:9140ec6aa604 | 544 | { |
jmitc91516 | 0:9140ec6aa604 | 545 | TextPixelLength(sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps, |
jmitc91516 | 0:9140ec6aa604 | 546 | CharCnt, TextXOfs); |
jmitc91516 | 0:9140ec6aa604 | 547 | |
jmitc91516 | 0:9140ec6aa604 | 548 | TextCharLineStart[0] = 0; |
jmitc91516 | 0:9140ec6aa604 | 549 | TextCharLineEnd[0] = -1; |
jmitc91516 | 0:9140ec6aa604 | 550 | |
jmitc91516 | 0:9140ec6aa604 | 551 | LineCnt = 1 - sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop; |
jmitc91516 | 0:9140ec6aa604 | 552 | if (LineCnt >= 1) |
jmitc91516 | 0:9140ec6aa604 | 553 | LineCnt = 1; |
jmitc91516 | 0:9140ec6aa604 | 554 | LineCnt2 = 1; |
jmitc91516 | 0:9140ec6aa604 | 555 | P2 = 0; |
jmitc91516 | 0:9140ec6aa604 | 556 | |
jmitc91516 | 0:9140ec6aa604 | 557 | |
jmitc91516 | 0:9140ec6aa604 | 558 | #ifdef GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 559 | GuiLib_RemoteDataReadBlock( |
jmitc91516 | 0:9140ec6aa604 | 560 | (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[ |
jmitc91516 | 0:9140ec6aa604 | 561 | sgl.TextCharNdx[TextCharLineStart[LineCnt2 - 1]]], |
jmitc91516 | 0:9140ec6aa604 | 562 | GuiLib_CHR_LINECTRL_OFS, |
jmitc91516 | 0:9140ec6aa604 | 563 | CharHeader2); |
jmitc91516 | 0:9140ec6aa604 | 564 | #endif // GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 565 | |
jmitc91516 | 0:9140ec6aa604 | 566 | while (P2 < CharCnt) |
jmitc91516 | 0:9140ec6aa604 | 567 | { |
jmitc91516 | 0:9140ec6aa604 | 568 | while ((P2 < CharCnt - 1) && |
jmitc91516 | 0:9140ec6aa604 | 569 | !((ReadBytePtr(CharPtr + P2) == GuiLib_LINEFEED) || |
jmitc91516 | 0:9140ec6aa604 | 570 | ((ReadBytePtr(CharPtr + P2) != ' ') && (ReadBytePtr(CharPtr + P2 + 1) == ' ')) || |
jmitc91516 | 0:9140ec6aa604 | 571 | ((ReadBytePtr(CharPtr + P2) == '-') && (ReadBytePtr(CharPtr + P2 + 1) != ' ')))) |
jmitc91516 | 0:9140ec6aa604 | 572 | P2++; |
jmitc91516 | 0:9140ec6aa604 | 573 | |
jmitc91516 | 0:9140ec6aa604 | 574 | if (CalcCharsWidth(TextCharLineStart[LineCnt2 - 1], P2, |
jmitc91516 | 0:9140ec6aa604 | 575 | TextXOfs, &XStart, &XEnd) > |
jmitc91516 | 0:9140ec6aa604 | 576 | (sgl.BlinkTextItems[BlinkFieldNo].X2 - |
jmitc91516 | 0:9140ec6aa604 | 577 | sgl.BlinkTextItems[BlinkFieldNo].X1 + 1)) |
jmitc91516 | 0:9140ec6aa604 | 578 | { |
jmitc91516 | 0:9140ec6aa604 | 579 | if (TextCharLineEnd[LineCnt2 - 1] == -1) |
jmitc91516 | 0:9140ec6aa604 | 580 | { |
jmitc91516 | 0:9140ec6aa604 | 581 | TextCharLineEnd[LineCnt2 - 1] = P2; |
jmitc91516 | 0:9140ec6aa604 | 582 | TextCharLineStart[LineCnt2] = P2 + 1; |
jmitc91516 | 0:9140ec6aa604 | 583 | TextCharLineEnd[LineCnt2] = -1; |
jmitc91516 | 0:9140ec6aa604 | 584 | } |
jmitc91516 | 0:9140ec6aa604 | 585 | else |
jmitc91516 | 0:9140ec6aa604 | 586 | { |
jmitc91516 | 0:9140ec6aa604 | 587 | TextCharLineStart[LineCnt2] = TextCharLineEnd[LineCnt2 - 1] + 1; |
jmitc91516 | 0:9140ec6aa604 | 588 | while ((TextCharLineStart[LineCnt2] < P2) && |
jmitc91516 | 0:9140ec6aa604 | 589 | (ReadBytePtr(CharPtr + TextCharLineStart[LineCnt2]) == |
jmitc91516 | 0:9140ec6aa604 | 590 | ' ')) |
jmitc91516 | 0:9140ec6aa604 | 591 | TextCharLineStart[LineCnt2]++; |
jmitc91516 | 0:9140ec6aa604 | 592 | TextCharLineEnd[LineCnt2] = P2; |
jmitc91516 | 0:9140ec6aa604 | 593 | } |
jmitc91516 | 0:9140ec6aa604 | 594 | if (LineCnt >= GuiConst_MAX_PARAGRAPH_LINE_CNT) |
jmitc91516 | 0:9140ec6aa604 | 595 | { |
jmitc91516 | 0:9140ec6aa604 | 596 | P2 = CharCnt; |
jmitc91516 | 0:9140ec6aa604 | 597 | break; |
jmitc91516 | 0:9140ec6aa604 | 598 | } |
jmitc91516 | 0:9140ec6aa604 | 599 | LineCnt++; |
jmitc91516 | 0:9140ec6aa604 | 600 | if (LineCnt > 1) |
jmitc91516 | 0:9140ec6aa604 | 601 | LineCnt2 = LineCnt; |
jmitc91516 | 0:9140ec6aa604 | 602 | else |
jmitc91516 | 0:9140ec6aa604 | 603 | TextCharLineStart[LineCnt2 - 1] = TextCharLineStart[LineCnt2]; |
jmitc91516 | 0:9140ec6aa604 | 604 | } |
jmitc91516 | 0:9140ec6aa604 | 605 | else |
jmitc91516 | 0:9140ec6aa604 | 606 | TextCharLineEnd[LineCnt2 - 1] = P2; |
jmitc91516 | 0:9140ec6aa604 | 607 | if (ReadBytePtr(CharPtr + P2) == GuiLib_LINEFEED) |
jmitc91516 | 0:9140ec6aa604 | 608 | { |
jmitc91516 | 0:9140ec6aa604 | 609 | TextCharLineEnd[LineCnt2 - 1] = P2 - 1; |
jmitc91516 | 0:9140ec6aa604 | 610 | TextCharLineStart[LineCnt2] = P2 + 1; |
jmitc91516 | 0:9140ec6aa604 | 611 | TextCharLineEnd[LineCnt2] = -1; |
jmitc91516 | 0:9140ec6aa604 | 612 | if (LineCnt >= GuiConst_MAX_PARAGRAPH_LINE_CNT) |
jmitc91516 | 0:9140ec6aa604 | 613 | { |
jmitc91516 | 0:9140ec6aa604 | 614 | P2 = CharCnt; |
jmitc91516 | 0:9140ec6aa604 | 615 | break; |
jmitc91516 | 0:9140ec6aa604 | 616 | } |
jmitc91516 | 0:9140ec6aa604 | 617 | LineCnt++; |
jmitc91516 | 0:9140ec6aa604 | 618 | if (LineCnt > 1) |
jmitc91516 | 0:9140ec6aa604 | 619 | LineCnt2 = LineCnt; |
jmitc91516 | 0:9140ec6aa604 | 620 | else |
jmitc91516 | 0:9140ec6aa604 | 621 | TextCharLineStart[LineCnt2 - 1] = TextCharLineStart[LineCnt2]; |
jmitc91516 | 0:9140ec6aa604 | 622 | } |
jmitc91516 | 0:9140ec6aa604 | 623 | P2++; |
jmitc91516 | 0:9140ec6aa604 | 624 | } |
jmitc91516 | 0:9140ec6aa604 | 625 | |
jmitc91516 | 0:9140ec6aa604 | 626 | if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 627 | GuiLib_BITFLAG_REVERSEWRITING) |
jmitc91516 | 0:9140ec6aa604 | 628 | { |
jmitc91516 | 0:9140ec6aa604 | 629 | for (M = 0; M < LineCnt2 ; M++) |
jmitc91516 | 0:9140ec6aa604 | 630 | { |
jmitc91516 | 0:9140ec6aa604 | 631 | for (P2 = TextCharLineStart[M]; P2 <= (TextCharLineStart[M] + |
jmitc91516 | 0:9140ec6aa604 | 632 | ((TextCharLineEnd[M] - TextCharLineStart[M] + 1) / 2) - 1); |
jmitc91516 | 0:9140ec6aa604 | 633 | P2++) |
jmitc91516 | 0:9140ec6aa604 | 634 | { |
jmitc91516 | 0:9140ec6aa604 | 635 | #ifdef GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 636 | TempOfs = sgl.TextCharNdx[P2]; |
jmitc91516 | 0:9140ec6aa604 | 637 | sgl.TextCharNdx[P2] = |
jmitc91516 | 0:9140ec6aa604 | 638 | sgl.TextCharNdx[TextCharLineEnd[M] - (P2 - TextCharLineStart[M])]; |
jmitc91516 | 0:9140ec6aa604 | 639 | sgl.TextCharNdx[TextCharLineEnd[M] - (P2 - TextCharLineStart[M])] = |
jmitc91516 | 0:9140ec6aa604 | 640 | TempOfs; |
jmitc91516 | 0:9140ec6aa604 | 641 | #else // GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 642 | TempPtr = sgl.TextCharPtrAry[P2]; |
jmitc91516 | 0:9140ec6aa604 | 643 | sgl.TextCharPtrAry[P2] = |
jmitc91516 | 0:9140ec6aa604 | 644 | (GuiConst_INT8U PrefixRom *)sgl.TextCharPtrAry[ |
jmitc91516 | 0:9140ec6aa604 | 645 | TextCharLineEnd[M] - (P2 - TextCharLineStart[M])]; |
jmitc91516 | 0:9140ec6aa604 | 646 | sgl.TextCharPtrAry[TextCharLineEnd[M] - (P2 - TextCharLineStart[M])] = |
jmitc91516 | 0:9140ec6aa604 | 647 | (GuiConst_INT8U PrefixRom *)TempPtr; |
jmitc91516 | 0:9140ec6aa604 | 648 | #endif // GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 649 | } |
jmitc91516 | 0:9140ec6aa604 | 650 | } |
jmitc91516 | 0:9140ec6aa604 | 651 | TextPixelLength(sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps, |
jmitc91516 | 0:9140ec6aa604 | 652 | CharCnt, TextXOfs); |
jmitc91516 | 0:9140ec6aa604 | 653 | } |
jmitc91516 | 0:9140ec6aa604 | 654 | |
jmitc91516 | 0:9140ec6aa604 | 655 | #ifdef GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 656 | if (sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop < 0) |
jmitc91516 | 0:9140ec6aa604 | 657 | sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop = 0; |
jmitc91516 | 0:9140ec6aa604 | 658 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 -= |
jmitc91516 | 0:9140ec6aa604 | 659 | sgl.BlinkTextItems[BlinkFieldNo].TextBoxScrollPos - |
jmitc91516 | 0:9140ec6aa604 | 660 | (sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist * |
jmitc91516 | 0:9140ec6aa604 | 661 | sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop); |
jmitc91516 | 0:9140ec6aa604 | 662 | #endif // GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 663 | |
jmitc91516 | 0:9140ec6aa604 | 664 | switch (sgl.BlinkTextItems[BlinkFieldNo].TextBoxVertAlignment) |
jmitc91516 | 0:9140ec6aa604 | 665 | { |
jmitc91516 | 0:9140ec6aa604 | 666 | case GuiLib_ALIGN_CENTER: |
jmitc91516 | 0:9140ec6aa604 | 667 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 += |
jmitc91516 | 0:9140ec6aa604 | 668 | (sgl.BlinkTextItems[BlinkFieldNo].Y2 - |
jmitc91516 | 0:9140ec6aa604 | 669 | sgl.BlinkTextItems[BlinkFieldNo].Y1 + 1 - |
jmitc91516 | 0:9140ec6aa604 | 670 | (sgl.BlinkTextItems[BlinkFieldNo].YSize + |
jmitc91516 | 0:9140ec6aa604 | 671 | (LineCnt2 - 1) * |
jmitc91516 | 0:9140ec6aa604 | 672 | sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist)) / 2; |
jmitc91516 | 0:9140ec6aa604 | 673 | break; |
jmitc91516 | 0:9140ec6aa604 | 674 | |
jmitc91516 | 0:9140ec6aa604 | 675 | case GuiLib_ALIGN_RIGHT: |
jmitc91516 | 0:9140ec6aa604 | 676 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 += |
jmitc91516 | 0:9140ec6aa604 | 677 | sgl.BlinkTextItems[BlinkFieldNo].Y2 - |
jmitc91516 | 0:9140ec6aa604 | 678 | sgl.BlinkTextItems[BlinkFieldNo].Y1 + 1 - |
jmitc91516 | 0:9140ec6aa604 | 679 | (sgl.BlinkTextItems[BlinkFieldNo].YSize + |
jmitc91516 | 0:9140ec6aa604 | 680 | (LineCnt2 - 1) * |
jmitc91516 | 0:9140ec6aa604 | 681 | sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist); |
jmitc91516 | 0:9140ec6aa604 | 682 | break; |
jmitc91516 | 0:9140ec6aa604 | 683 | } |
jmitc91516 | 0:9140ec6aa604 | 684 | |
jmitc91516 | 0:9140ec6aa604 | 685 | for (N = 0; N < LineCnt2; N++) |
jmitc91516 | 0:9140ec6aa604 | 686 | { |
jmitc91516 | 0:9140ec6aa604 | 687 | if (((CharNo - 1) <= TextCharLineEnd[N]) |
jmitc91516 | 0:9140ec6aa604 | 688 | && ((CharNo - 1) >= TextCharLineStart[N])) |
jmitc91516 | 0:9140ec6aa604 | 689 | { |
jmitc91516 | 0:9140ec6aa604 | 690 | if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 691 | GuiLib_BITFLAG_REVERSEWRITING) |
jmitc91516 | 0:9140ec6aa604 | 692 | CharNo = TextCharLineStart[N] + TextCharLineEnd[N] + 2 - CharNo; |
jmitc91516 | 0:9140ec6aa604 | 693 | |
jmitc91516 | 0:9140ec6aa604 | 694 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = |
jmitc91516 | 0:9140ec6aa604 | 695 | sgl.BlinkTextItems[BlinkFieldNo].X1; |
jmitc91516 | 0:9140ec6aa604 | 696 | |
jmitc91516 | 0:9140ec6aa604 | 697 | LineLen = CalcCharsWidth(TextCharLineStart[N], |
jmitc91516 | 0:9140ec6aa604 | 698 | TextCharLineEnd[N], |
jmitc91516 | 0:9140ec6aa604 | 699 | TextXOfs, |
jmitc91516 | 0:9140ec6aa604 | 700 | &XStart, |
jmitc91516 | 0:9140ec6aa604 | 701 | &XEnd); |
jmitc91516 | 0:9140ec6aa604 | 702 | switch (sgl.BlinkTextItems[BlinkFieldNo].TextBoxHorzAlignment) |
jmitc91516 | 0:9140ec6aa604 | 703 | { |
jmitc91516 | 0:9140ec6aa604 | 704 | case GuiLib_ALIGN_CENTER: |
jmitc91516 | 0:9140ec6aa604 | 705 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 += |
jmitc91516 | 0:9140ec6aa604 | 706 | (sgl.BlinkTextItems[BlinkFieldNo].X2 - |
jmitc91516 | 0:9140ec6aa604 | 707 | sgl.BlinkTextItems[BlinkFieldNo].X1 + LineLen - 1) / 2; |
jmitc91516 | 0:9140ec6aa604 | 708 | break; |
jmitc91516 | 0:9140ec6aa604 | 709 | |
jmitc91516 | 0:9140ec6aa604 | 710 | case GuiLib_ALIGN_RIGHT: |
jmitc91516 | 0:9140ec6aa604 | 711 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 += |
jmitc91516 | 0:9140ec6aa604 | 712 | sgl.BlinkTextItems[BlinkFieldNo].X2 - |
jmitc91516 | 0:9140ec6aa604 | 713 | sgl.BlinkTextItems[BlinkFieldNo].X1 + LineLen - 1; |
jmitc91516 | 0:9140ec6aa604 | 714 | break; |
jmitc91516 | 0:9140ec6aa604 | 715 | } |
jmitc91516 | 0:9140ec6aa604 | 716 | |
jmitc91516 | 0:9140ec6aa604 | 717 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 -= XStart; |
jmitc91516 | 0:9140ec6aa604 | 718 | LineLen = CalcCharsWidth(CharNo - 1, |
jmitc91516 | 0:9140ec6aa604 | 719 | CharNo - 1, |
jmitc91516 | 0:9140ec6aa604 | 720 | TextXOfs, |
jmitc91516 | 0:9140ec6aa604 | 721 | &XStart, |
jmitc91516 | 0:9140ec6aa604 | 722 | &XEnd); |
jmitc91516 | 0:9140ec6aa604 | 723 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = |
jmitc91516 | 0:9140ec6aa604 | 724 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + XEnd; |
jmitc91516 | 0:9140ec6aa604 | 725 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 += XStart; |
jmitc91516 | 0:9140ec6aa604 | 726 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2 = |
jmitc91516 | 0:9140ec6aa604 | 727 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 + |
jmitc91516 | 0:9140ec6aa604 | 728 | sgl.BlinkTextItems[BlinkFieldNo].YSize - 1; |
jmitc91516 | 0:9140ec6aa604 | 729 | |
jmitc91516 | 0:9140ec6aa604 | 730 | sgl.BlinkTextItems[BlinkFieldNo].Active = 1; |
jmitc91516 | 0:9140ec6aa604 | 731 | break; |
jmitc91516 | 0:9140ec6aa604 | 732 | } |
jmitc91516 | 0:9140ec6aa604 | 733 | |
jmitc91516 | 0:9140ec6aa604 | 734 | #ifndef GuiConst_BLINK_LF_COUNTS |
jmitc91516 | 0:9140ec6aa604 | 735 | if ((N+1) < LineCnt2) |
jmitc91516 | 0:9140ec6aa604 | 736 | if ((TextCharLineEnd[N]+1) != TextCharLineStart[N+1]) |
jmitc91516 | 0:9140ec6aa604 | 737 | CharNo++; |
jmitc91516 | 0:9140ec6aa604 | 738 | #endif |
jmitc91516 | 0:9140ec6aa604 | 739 | |
jmitc91516 | 0:9140ec6aa604 | 740 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 += |
jmitc91516 | 0:9140ec6aa604 | 741 | sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist; |
jmitc91516 | 0:9140ec6aa604 | 742 | } |
jmitc91516 | 0:9140ec6aa604 | 743 | } |
jmitc91516 | 0:9140ec6aa604 | 744 | else |
jmitc91516 | 0:9140ec6aa604 | 745 | { |
jmitc91516 | 0:9140ec6aa604 | 746 | sgl.BlinkTextItems[BlinkFieldNo].Active = 1; |
jmitc91516 | 0:9140ec6aa604 | 747 | sgl.BlinkTextItems[BlinkFieldNo].CharNo = CharNo; |
jmitc91516 | 0:9140ec6aa604 | 748 | } |
jmitc91516 | 0:9140ec6aa604 | 749 | } |
jmitc91516 | 0:9140ec6aa604 | 750 | else |
jmitc91516 | 0:9140ec6aa604 | 751 | #endif // GuiConst_ITEM_TEXTBLOCK_INUSE |
jmitc91516 | 0:9140ec6aa604 | 752 | { |
jmitc91516 | 0:9140ec6aa604 | 753 | if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 754 | GuiLib_BITFLAG_REVERSEWRITING) |
jmitc91516 | 0:9140ec6aa604 | 755 | { |
jmitc91516 | 0:9140ec6aa604 | 756 | for (N = 0; N < CharCnt / 2; N++) |
jmitc91516 | 0:9140ec6aa604 | 757 | { |
jmitc91516 | 0:9140ec6aa604 | 758 | #ifdef GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 759 | TempOfs = sgl.TextCharNdx[N]; |
jmitc91516 | 0:9140ec6aa604 | 760 | sgl.TextCharNdx[N] = |
jmitc91516 | 0:9140ec6aa604 | 761 | sgl.TextCharNdx[CharCnt - 1 - N]; |
jmitc91516 | 0:9140ec6aa604 | 762 | sgl.TextCharNdx[CharCnt - 1 - N] = |
jmitc91516 | 0:9140ec6aa604 | 763 | TempOfs; |
jmitc91516 | 0:9140ec6aa604 | 764 | #else |
jmitc91516 | 0:9140ec6aa604 | 765 | TempPtr = sgl.TextCharPtrAry[N]; |
jmitc91516 | 0:9140ec6aa604 | 766 | sgl.TextCharPtrAry[N] = (GuiConst_INT8U PrefixRom *) |
jmitc91516 | 0:9140ec6aa604 | 767 | sgl.TextCharPtrAry[CharCnt - 1 - N]; |
jmitc91516 | 0:9140ec6aa604 | 768 | sgl.TextCharPtrAry[CharCnt - 1 - N] = |
jmitc91516 | 0:9140ec6aa604 | 769 | (GuiConst_INT8U PrefixRom *)TempPtr; |
jmitc91516 | 0:9140ec6aa604 | 770 | #endif |
jmitc91516 | 0:9140ec6aa604 | 771 | } |
jmitc91516 | 0:9140ec6aa604 | 772 | CharNo = CharCnt + 1 - CharNo; |
jmitc91516 | 0:9140ec6aa604 | 773 | } |
jmitc91516 | 0:9140ec6aa604 | 774 | |
jmitc91516 | 0:9140ec6aa604 | 775 | TextPixelLen = TextPixelLength(sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps, |
jmitc91516 | 0:9140ec6aa604 | 776 | CharCnt, TextXOfs); |
jmitc91516 | 0:9140ec6aa604 | 777 | |
jmitc91516 | 0:9140ec6aa604 | 778 | switch (sgl.BlinkTextItems[BlinkFieldNo].TextPar.Alignment) |
jmitc91516 | 0:9140ec6aa604 | 779 | { |
jmitc91516 | 0:9140ec6aa604 | 780 | case GuiLib_ALIGN_CENTER: |
jmitc91516 | 0:9140ec6aa604 | 781 | if (CharCnt > 0) |
jmitc91516 | 0:9140ec6aa604 | 782 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 -= TextPixelLen / 2; |
jmitc91516 | 0:9140ec6aa604 | 783 | break; |
jmitc91516 | 0:9140ec6aa604 | 784 | case GuiLib_ALIGN_RIGHT: |
jmitc91516 | 0:9140ec6aa604 | 785 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 -= TextPixelLen - 1; |
jmitc91516 | 0:9140ec6aa604 | 786 | break; |
jmitc91516 | 0:9140ec6aa604 | 787 | } |
jmitc91516 | 0:9140ec6aa604 | 788 | |
jmitc91516 | 0:9140ec6aa604 | 789 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + |
jmitc91516 | 0:9140ec6aa604 | 790 | TextPixelLen - 1; |
jmitc91516 | 0:9140ec6aa604 | 791 | |
jmitc91516 | 0:9140ec6aa604 | 792 | if (CharNo) |
jmitc91516 | 0:9140ec6aa604 | 793 | { |
jmitc91516 | 0:9140ec6aa604 | 794 | if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps == GuiLib_PS_OFF) |
jmitc91516 | 0:9140ec6aa604 | 795 | { |
jmitc91516 | 0:9140ec6aa604 | 796 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = |
jmitc91516 | 0:9140ec6aa604 | 797 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + TextXOfs[CharNo-1] - 1; |
jmitc91516 | 0:9140ec6aa604 | 798 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = |
jmitc91516 | 0:9140ec6aa604 | 799 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + |
jmitc91516 | 0:9140ec6aa604 | 800 | sgl.BlinkTextItems[BlinkFieldNo].XSize; |
jmitc91516 | 0:9140ec6aa604 | 801 | } |
jmitc91516 | 0:9140ec6aa604 | 802 | else if ((sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps == GuiLib_PS_NUM) && |
jmitc91516 | 0:9140ec6aa604 | 803 | (sgl.TextPsMode[CharNo - 1] == 0)) |
jmitc91516 | 0:9140ec6aa604 | 804 | { |
jmitc91516 | 0:9140ec6aa604 | 805 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = |
jmitc91516 | 0:9140ec6aa604 | 806 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + TextXOfs[CharNo - 1] - 1; |
jmitc91516 | 0:9140ec6aa604 | 807 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = |
jmitc91516 | 0:9140ec6aa604 | 808 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + |
jmitc91516 | 0:9140ec6aa604 | 809 | sgl.BlinkTextItems[BlinkFieldNo].PsNumWidth + |
jmitc91516 | 0:9140ec6aa604 | 810 | sgl.BlinkTextItems[BlinkFieldNo].PsSpace; |
jmitc91516 | 0:9140ec6aa604 | 811 | } |
jmitc91516 | 0:9140ec6aa604 | 812 | else |
jmitc91516 | 0:9140ec6aa604 | 813 | { |
jmitc91516 | 0:9140ec6aa604 | 814 | #ifdef GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 815 | GuiLib_RemoteDataReadBlock((GuiConst_INT32U PrefixRom) |
jmitc91516 | 0:9140ec6aa604 | 816 | GuiFont_ChPtrList[sgl.TextCharNdx[CharNo - 1]], |
jmitc91516 | 0:9140ec6aa604 | 817 | GuiLib_CHR_LINECTRL_OFS, CharHeader); |
jmitc91516 | 0:9140ec6aa604 | 818 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = |
jmitc91516 | 0:9140ec6aa604 | 819 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + |
jmitc91516 | 0:9140ec6aa604 | 820 | TextXOfs[CharNo-1] + CharHeader[GuiLib_CHR_XLEFT_OFS] - 1; |
jmitc91516 | 0:9140ec6aa604 | 821 | #else |
jmitc91516 | 0:9140ec6aa604 | 822 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = |
jmitc91516 | 0:9140ec6aa604 | 823 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + TextXOfs[CharNo - 1] + |
jmitc91516 | 0:9140ec6aa604 | 824 | ReadBytePtr(sgl.TextCharPtrAry[CharNo - 1] + |
jmitc91516 | 0:9140ec6aa604 | 825 | GuiLib_CHR_XLEFT_OFS) - 1; |
jmitc91516 | 0:9140ec6aa604 | 826 | #endif |
jmitc91516 | 0:9140ec6aa604 | 827 | #ifdef GuiConst_REMOTE_FONT_DATA |
jmitc91516 | 0:9140ec6aa604 | 828 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = |
jmitc91516 | 0:9140ec6aa604 | 829 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + |
jmitc91516 | 0:9140ec6aa604 | 830 | CharHeader[GuiLib_CHR_XWIDTH_OFS] + 1; |
jmitc91516 | 0:9140ec6aa604 | 831 | #else |
jmitc91516 | 0:9140ec6aa604 | 832 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = |
jmitc91516 | 0:9140ec6aa604 | 833 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + |
jmitc91516 | 0:9140ec6aa604 | 834 | ReadBytePtr(sgl.TextCharPtrAry[CharNo - 1] + |
jmitc91516 | 0:9140ec6aa604 | 835 | GuiLib_CHR_XWIDTH_OFS) + 1; |
jmitc91516 | 0:9140ec6aa604 | 836 | #endif |
jmitc91516 | 0:9140ec6aa604 | 837 | } |
jmitc91516 | 0:9140ec6aa604 | 838 | sgl.BlinkTextItems[BlinkFieldNo].Active = 1; |
jmitc91516 | 0:9140ec6aa604 | 839 | } |
jmitc91516 | 0:9140ec6aa604 | 840 | else |
jmitc91516 | 0:9140ec6aa604 | 841 | { |
jmitc91516 | 0:9140ec6aa604 | 842 | sgl.BlinkTextItems[BlinkFieldNo].Active = 1; |
jmitc91516 | 0:9140ec6aa604 | 843 | sgl.BlinkTextItems[BlinkFieldNo].CharNo = CharNo; |
jmitc91516 | 0:9140ec6aa604 | 844 | } |
jmitc91516 | 0:9140ec6aa604 | 845 | } |
jmitc91516 | 0:9140ec6aa604 | 846 | SetCurFont(sgl.CurItem.TextPar[0].FontIndex); |
jmitc91516 | 0:9140ec6aa604 | 847 | sgl.CurItem.TextPar[0] = TempTextPar; |
jmitc91516 | 0:9140ec6aa604 | 848 | sgl.CurItem.TextLength[0] = TempTextLength; |
jmitc91516 | 0:9140ec6aa604 | 849 | sgl.CurItem.FormatFieldWidth = TempFormatFieldWidth; |
jmitc91516 | 0:9140ec6aa604 | 850 | sgl.CurItem.FormatDecimals = TempFormatDecimals; |
jmitc91516 | 0:9140ec6aa604 | 851 | sgl.CurItem.FormatAlignment = TempFormatAlignment; |
jmitc91516 | 0:9140ec6aa604 | 852 | sgl.CurItem.FormatFormat = TempFormatFormat; |
jmitc91516 | 0:9140ec6aa604 | 853 | |
jmitc91516 | 0:9140ec6aa604 | 854 | } |
jmitc91516 | 0:9140ec6aa604 | 855 | |
jmitc91516 | 0:9140ec6aa604 | 856 | if (sgl.BlinkTextItems[BlinkFieldNo].Active) |
jmitc91516 | 0:9140ec6aa604 | 857 | { |
jmitc91516 | 0:9140ec6aa604 | 858 | if (Rate < 1) |
jmitc91516 | 0:9140ec6aa604 | 859 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = 1; |
jmitc91516 | 0:9140ec6aa604 | 860 | else |
jmitc91516 | 0:9140ec6aa604 | 861 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = Rate; |
jmitc91516 | 0:9140ec6aa604 | 862 | if (sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate < 255) |
jmitc91516 | 0:9140ec6aa604 | 863 | { |
jmitc91516 | 0:9140ec6aa604 | 864 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxState = |
jmitc91516 | 0:9140ec6aa604 | 865 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate - |
jmitc91516 | 0:9140ec6aa604 | 866 | (sgl.RefreshClock % sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate); |
jmitc91516 | 0:9140ec6aa604 | 867 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted = |
jmitc91516 | 0:9140ec6aa604 | 868 | ((sgl.RefreshClock / sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate) % 2) == |
jmitc91516 | 0:9140ec6aa604 | 869 | 0; |
jmitc91516 | 0:9140ec6aa604 | 870 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast = |
jmitc91516 | 0:9140ec6aa604 | 871 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 872 | if (sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted && sgl.DisplayWriting) |
jmitc91516 | 0:9140ec6aa604 | 873 | GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1, |
jmitc91516 | 0:9140ec6aa604 | 874 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1, |
jmitc91516 | 0:9140ec6aa604 | 875 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2, |
jmitc91516 | 0:9140ec6aa604 | 876 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2); |
jmitc91516 | 0:9140ec6aa604 | 877 | } |
jmitc91516 | 0:9140ec6aa604 | 878 | else |
jmitc91516 | 0:9140ec6aa604 | 879 | { |
jmitc91516 | 0:9140ec6aa604 | 880 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxState = |
jmitc91516 | 0:9140ec6aa604 | 881 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate; |
jmitc91516 | 0:9140ec6aa604 | 882 | if (sgl.DisplayWriting) |
jmitc91516 | 0:9140ec6aa604 | 883 | GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1, |
jmitc91516 | 0:9140ec6aa604 | 884 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1, |
jmitc91516 | 0:9140ec6aa604 | 885 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2, |
jmitc91516 | 0:9140ec6aa604 | 886 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2); |
jmitc91516 | 0:9140ec6aa604 | 887 | |
jmitc91516 | 0:9140ec6aa604 | 888 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted = |
jmitc91516 | 0:9140ec6aa604 | 889 | !sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 890 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast = |
jmitc91516 | 0:9140ec6aa604 | 891 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 892 | } |
jmitc91516 | 0:9140ec6aa604 | 893 | } |
jmitc91516 | 0:9140ec6aa604 | 894 | } |
jmitc91516 | 0:9140ec6aa604 | 895 | #else // GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 896 | gl.Dummy1_16U = BlinkFieldNo; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 897 | gl.Dummy2_16U = CharNo; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 898 | gl.Dummy1_16S = Rate; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 899 | #endif // GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 900 | } |
jmitc91516 | 0:9140ec6aa604 | 901 | |
jmitc91516 | 0:9140ec6aa604 | 902 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 903 | void GuiLib_BlinkBoxMarkedItemStop( |
jmitc91516 | 0:9140ec6aa604 | 904 | GuiConst_INT16U BlinkFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 905 | { |
jmitc91516 | 0:9140ec6aa604 | 906 | #ifndef GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 907 | if ((BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 908 | !sgl.BlinkTextItems[BlinkFieldNo].InUse) |
jmitc91516 | 0:9140ec6aa604 | 909 | return; |
jmitc91516 | 0:9140ec6aa604 | 910 | |
jmitc91516 | 0:9140ec6aa604 | 911 | if (sgl.BlinkTextItems[BlinkFieldNo].Active && |
jmitc91516 | 0:9140ec6aa604 | 912 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate && |
jmitc91516 | 0:9140ec6aa604 | 913 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted) |
jmitc91516 | 0:9140ec6aa604 | 914 | { |
jmitc91516 | 0:9140ec6aa604 | 915 | if (sgl.DisplayWriting) |
jmitc91516 | 0:9140ec6aa604 | 916 | { |
jmitc91516 | 0:9140ec6aa604 | 917 | GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1, |
jmitc91516 | 0:9140ec6aa604 | 918 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1, |
jmitc91516 | 0:9140ec6aa604 | 919 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2, |
jmitc91516 | 0:9140ec6aa604 | 920 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2); |
jmitc91516 | 0:9140ec6aa604 | 921 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted = |
jmitc91516 | 0:9140ec6aa604 | 922 | !sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 923 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast = |
jmitc91516 | 0:9140ec6aa604 | 924 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted; |
jmitc91516 | 0:9140ec6aa604 | 925 | } |
jmitc91516 | 0:9140ec6aa604 | 926 | } |
jmitc91516 | 0:9140ec6aa604 | 927 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = 0; |
jmitc91516 | 0:9140ec6aa604 | 928 | sgl.BlinkTextItems[BlinkFieldNo].Active = 0; |
jmitc91516 | 0:9140ec6aa604 | 929 | #else // GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 930 | gl.Dummy1_16U = BlinkFieldNo; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 931 | #endif // GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 932 | } |
jmitc91516 | 0:9140ec6aa604 | 933 | |
jmitc91516 | 0:9140ec6aa604 | 934 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 935 | void GuiLib_BlinkBoxMarkedItemUpdate( |
jmitc91516 | 0:9140ec6aa604 | 936 | GuiConst_INT16U BlinkFieldNo) |
jmitc91516 | 0:9140ec6aa604 | 937 | { |
jmitc91516 | 0:9140ec6aa604 | 938 | #ifndef GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 939 | if ((BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 940 | !sgl.BlinkTextItems[BlinkFieldNo].InUse) |
jmitc91516 | 0:9140ec6aa604 | 941 | return; |
jmitc91516 | 0:9140ec6aa604 | 942 | |
jmitc91516 | 0:9140ec6aa604 | 943 | if (sgl.BlinkTextItems[BlinkFieldNo].Active && |
jmitc91516 | 0:9140ec6aa604 | 944 | ((sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_VAR) || |
jmitc91516 | 0:9140ec6aa604 | 945 | (sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_VARBLOCK))) |
jmitc91516 | 0:9140ec6aa604 | 946 | GuiLib_BlinkBoxMarkedItem( |
jmitc91516 | 0:9140ec6aa604 | 947 | BlinkFieldNo, |
jmitc91516 | 0:9140ec6aa604 | 948 | sgl.BlinkTextItems[BlinkFieldNo].CharNo, |
jmitc91516 | 0:9140ec6aa604 | 949 | sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate); |
jmitc91516 | 0:9140ec6aa604 | 950 | #else // GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 951 | gl.Dummy1_16U = BlinkFieldNo; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 952 | #endif // GuiConst_BLINK_FIELDS_OFF |
jmitc91516 | 0:9140ec6aa604 | 953 | } |
jmitc91516 | 0:9140ec6aa604 | 954 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 955 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 956 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 957 | #endif // GuiConst_BLINK_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 958 | |
jmitc91516 | 0:9140ec6aa604 | 959 | #ifdef GuiConst_ITEM_TOUCHAREA_INUSE |
jmitc91516 | 0:9140ec6aa604 | 960 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 961 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 962 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 963 | GuiConst_INT32S GuiLib_TouchCheck( |
jmitc91516 | 0:9140ec6aa604 | 964 | GuiConst_INT16S X, |
jmitc91516 | 0:9140ec6aa604 | 965 | GuiConst_INT16S Y) |
jmitc91516 | 0:9140ec6aa604 | 966 | { |
jmitc91516 | 0:9140ec6aa604 | 967 | GuiConst_INT32S TouchSearch; |
jmitc91516 | 0:9140ec6aa604 | 968 | GuiConst_INT32S XX, YY; |
jmitc91516 | 0:9140ec6aa604 | 969 | GuiConst_INT32S XL, XR, YT, YB; |
jmitc91516 | 0:9140ec6aa604 | 970 | GuiConst_INT32S TouchArea; |
jmitc91516 | 0:9140ec6aa604 | 971 | |
jmitc91516 | 0:9140ec6aa604 | 972 | if (sgl.TouchAdjustActive) |
jmitc91516 | 0:9140ec6aa604 | 973 | { |
jmitc91516 | 0:9140ec6aa604 | 974 | XX = 10 * (GuiConst_INT32S)X; |
jmitc91516 | 0:9140ec6aa604 | 975 | YY = 10 * (GuiConst_INT32S)Y; |
jmitc91516 | 0:9140ec6aa604 | 976 | XL = sgl.TouchAdjustXTL + |
jmitc91516 | 0:9140ec6aa604 | 977 | (YY - sgl.TouchAdjustYTL) * (sgl.TouchAdjustXBL - sgl.TouchAdjustXTL) / |
jmitc91516 | 0:9140ec6aa604 | 978 | (sgl.TouchAdjustYBL - sgl.TouchAdjustYTL); |
jmitc91516 | 0:9140ec6aa604 | 979 | XR = sgl.TouchAdjustXTR + |
jmitc91516 | 0:9140ec6aa604 | 980 | (YY - sgl.TouchAdjustYTR) * (sgl.TouchAdjustXBR - sgl.TouchAdjustXTR) / |
jmitc91516 | 0:9140ec6aa604 | 981 | (sgl.TouchAdjustYBR - sgl.TouchAdjustYTR); |
jmitc91516 | 0:9140ec6aa604 | 982 | YT = sgl.TouchAdjustYTL + |
jmitc91516 | 0:9140ec6aa604 | 983 | (XX - sgl.TouchAdjustXTL) * (sgl.TouchAdjustYTR - sgl.TouchAdjustYTL) / |
jmitc91516 | 0:9140ec6aa604 | 984 | (sgl.TouchAdjustXTR - sgl.TouchAdjustXTL); |
jmitc91516 | 0:9140ec6aa604 | 985 | YB = sgl.TouchAdjustYBL + |
jmitc91516 | 0:9140ec6aa604 | 986 | (XX - sgl.TouchAdjustXBL) * (sgl.TouchAdjustYBR - sgl.TouchAdjustYBL) / |
jmitc91516 | 0:9140ec6aa604 | 987 | (sgl.TouchAdjustXBR - sgl.TouchAdjustXBL); |
jmitc91516 | 0:9140ec6aa604 | 988 | sgl.TouchConvertX = GuiConst_DISPLAY_WIDTH * (XX - XL) / (XR - XL); |
jmitc91516 | 0:9140ec6aa604 | 989 | sgl.TouchConvertY = GuiConst_DISPLAY_HEIGHT * (YY - YT) / (YB - YT); |
jmitc91516 | 0:9140ec6aa604 | 990 | } |
jmitc91516 | 0:9140ec6aa604 | 991 | else |
jmitc91516 | 0:9140ec6aa604 | 992 | { |
jmitc91516 | 0:9140ec6aa604 | 993 | sgl.TouchConvertX = X; |
jmitc91516 | 0:9140ec6aa604 | 994 | sgl.TouchConvertY = Y; |
jmitc91516 | 0:9140ec6aa604 | 995 | } |
jmitc91516 | 0:9140ec6aa604 | 996 | |
jmitc91516 | 0:9140ec6aa604 | 997 | TouchArea = -1; |
jmitc91516 | 0:9140ec6aa604 | 998 | if ((sgl.TouchConvertX >= 0) && (sgl.TouchConvertX < GuiConst_DISPLAY_WIDTH) && |
jmitc91516 | 0:9140ec6aa604 | 999 | (sgl.TouchConvertY >= 0) && (sgl.TouchConvertY < GuiConst_DISPLAY_HEIGHT)) |
jmitc91516 | 0:9140ec6aa604 | 1000 | for (TouchSearch = 0; TouchSearch < sgl.TouchAreaCnt; TouchSearch++) |
jmitc91516 | 0:9140ec6aa604 | 1001 | if ((sgl.TouchConvertX >= sgl.TouchAreas[TouchSearch].X1) && |
jmitc91516 | 0:9140ec6aa604 | 1002 | (sgl.TouchConvertX <= sgl.TouchAreas[TouchSearch].X2) && |
jmitc91516 | 0:9140ec6aa604 | 1003 | (sgl.TouchConvertY >= sgl.TouchAreas[TouchSearch].Y1) && |
jmitc91516 | 0:9140ec6aa604 | 1004 | (sgl.TouchConvertY <= sgl.TouchAreas[TouchSearch].Y2)) |
jmitc91516 | 0:9140ec6aa604 | 1005 | { |
jmitc91516 | 0:9140ec6aa604 | 1006 | if (TouchArea == -1) |
jmitc91516 | 0:9140ec6aa604 | 1007 | TouchArea = sgl.TouchAreas[TouchSearch].IndexNo; |
jmitc91516 | 0:9140ec6aa604 | 1008 | else if (sgl.TouchAreas[TouchSearch].IndexNo < TouchArea) |
jmitc91516 | 0:9140ec6aa604 | 1009 | TouchArea = sgl.TouchAreas[TouchSearch].IndexNo; |
jmitc91516 | 0:9140ec6aa604 | 1010 | } |
jmitc91516 | 0:9140ec6aa604 | 1011 | return TouchArea; |
jmitc91516 | 0:9140ec6aa604 | 1012 | } |
jmitc91516 | 0:9140ec6aa604 | 1013 | |
jmitc91516 | 0:9140ec6aa604 | 1014 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1015 | GuiConst_INT32S GuiLib_TouchGet( |
jmitc91516 | 0:9140ec6aa604 | 1016 | GuiConst_INT16S X, |
jmitc91516 | 0:9140ec6aa604 | 1017 | GuiConst_INT16S Y, |
jmitc91516 | 0:9140ec6aa604 | 1018 | GuiConst_INT16S* TouchX, |
jmitc91516 | 0:9140ec6aa604 | 1019 | GuiConst_INT16S* TouchY) |
jmitc91516 | 0:9140ec6aa604 | 1020 | { |
jmitc91516 | 0:9140ec6aa604 | 1021 | GuiConst_INT32S Result; |
jmitc91516 | 0:9140ec6aa604 | 1022 | |
jmitc91516 | 0:9140ec6aa604 | 1023 | Result = GuiLib_TouchCheck(X, Y); |
jmitc91516 | 0:9140ec6aa604 | 1024 | |
jmitc91516 | 0:9140ec6aa604 | 1025 | *TouchX = sgl.TouchConvertX; |
jmitc91516 | 0:9140ec6aa604 | 1026 | *TouchY = sgl.TouchConvertY; |
jmitc91516 | 0:9140ec6aa604 | 1027 | |
jmitc91516 | 0:9140ec6aa604 | 1028 | return (Result); |
jmitc91516 | 0:9140ec6aa604 | 1029 | } |
jmitc91516 | 0:9140ec6aa604 | 1030 | |
jmitc91516 | 0:9140ec6aa604 | 1031 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1032 | void GuiLib_TouchAdjustReset(void) |
jmitc91516 | 0:9140ec6aa604 | 1033 | { |
jmitc91516 | 0:9140ec6aa604 | 1034 | sgl.TouchAdjustActive = 0; |
jmitc91516 | 0:9140ec6aa604 | 1035 | sgl.TouchAdjustInUse[0] = 0; |
jmitc91516 | 0:9140ec6aa604 | 1036 | sgl.TouchAdjustInUse[1] = 0; |
jmitc91516 | 0:9140ec6aa604 | 1037 | sgl.TouchAdjustInUse[2] = 0; |
jmitc91516 | 0:9140ec6aa604 | 1038 | sgl.TouchAdjustInUse[3] = 0; |
jmitc91516 | 0:9140ec6aa604 | 1039 | } |
jmitc91516 | 0:9140ec6aa604 | 1040 | |
jmitc91516 | 0:9140ec6aa604 | 1041 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1042 | void GuiLib_TouchAdjustSet( |
jmitc91516 | 0:9140ec6aa604 | 1043 | GuiConst_INT16S XTrue, |
jmitc91516 | 0:9140ec6aa604 | 1044 | GuiConst_INT16S YTrue, |
jmitc91516 | 0:9140ec6aa604 | 1045 | GuiConst_INT16S XMeasured, |
jmitc91516 | 0:9140ec6aa604 | 1046 | GuiConst_INT16S YMeasured) |
jmitc91516 | 0:9140ec6aa604 | 1047 | { |
jmitc91516 | 0:9140ec6aa604 | 1048 | GuiConst_INT8U I; |
jmitc91516 | 0:9140ec6aa604 | 1049 | GuiConst_INT32S XTL, YTL, XTR, YTR, XBL, YBL, XBR, YBR, XL, XR, YT, YB; |
jmitc91516 | 0:9140ec6aa604 | 1050 | |
jmitc91516 | 0:9140ec6aa604 | 1051 | if (YTrue < GuiConst_DISPLAY_HEIGHT / 2) |
jmitc91516 | 0:9140ec6aa604 | 1052 | { |
jmitc91516 | 0:9140ec6aa604 | 1053 | if (XTrue < GuiConst_DISPLAY_WIDTH / 2) |
jmitc91516 | 0:9140ec6aa604 | 1054 | I = 0; |
jmitc91516 | 0:9140ec6aa604 | 1055 | else |
jmitc91516 | 0:9140ec6aa604 | 1056 | I = 1; |
jmitc91516 | 0:9140ec6aa604 | 1057 | } |
jmitc91516 | 0:9140ec6aa604 | 1058 | else |
jmitc91516 | 0:9140ec6aa604 | 1059 | { |
jmitc91516 | 0:9140ec6aa604 | 1060 | if (XTrue < GuiConst_DISPLAY_WIDTH / 2) |
jmitc91516 | 0:9140ec6aa604 | 1061 | I = 2; |
jmitc91516 | 0:9140ec6aa604 | 1062 | else |
jmitc91516 | 0:9140ec6aa604 | 1063 | I = 3; |
jmitc91516 | 0:9140ec6aa604 | 1064 | } |
jmitc91516 | 0:9140ec6aa604 | 1065 | |
jmitc91516 | 0:9140ec6aa604 | 1066 | sgl.TouchAdjustInUse[I] = 1; |
jmitc91516 | 0:9140ec6aa604 | 1067 | |
jmitc91516 | 0:9140ec6aa604 | 1068 | sgl.TouchAdjustXTrue[I] = XTrue; |
jmitc91516 | 0:9140ec6aa604 | 1069 | sgl.TouchAdjustYTrue[I] = YTrue; |
jmitc91516 | 0:9140ec6aa604 | 1070 | sgl.TouchAdjustXMeasured[I] = XMeasured; |
jmitc91516 | 0:9140ec6aa604 | 1071 | sgl.TouchAdjustYMeasured[I] = YMeasured; |
jmitc91516 | 0:9140ec6aa604 | 1072 | |
jmitc91516 | 0:9140ec6aa604 | 1073 | if (sgl.TouchAdjustInUse[0] && sgl.TouchAdjustInUse[3]) |
jmitc91516 | 0:9140ec6aa604 | 1074 | { |
jmitc91516 | 0:9140ec6aa604 | 1075 | sgl.TouchAdjustActive = 1; |
jmitc91516 | 0:9140ec6aa604 | 1076 | if (!sgl.TouchAdjustInUse[1]) |
jmitc91516 | 0:9140ec6aa604 | 1077 | { |
jmitc91516 | 0:9140ec6aa604 | 1078 | sgl.TouchAdjustInUse[1] = 1; |
jmitc91516 | 0:9140ec6aa604 | 1079 | sgl.TouchAdjustXTrue[1] = sgl.TouchAdjustXTrue[3]; |
jmitc91516 | 0:9140ec6aa604 | 1080 | sgl.TouchAdjustYTrue[1] = sgl.TouchAdjustYTrue[0]; |
jmitc91516 | 0:9140ec6aa604 | 1081 | sgl.TouchAdjustXMeasured[1] = sgl.TouchAdjustXMeasured[3]; |
jmitc91516 | 0:9140ec6aa604 | 1082 | sgl.TouchAdjustYMeasured[1] = sgl.TouchAdjustYMeasured[0]; |
jmitc91516 | 0:9140ec6aa604 | 1083 | } |
jmitc91516 | 0:9140ec6aa604 | 1084 | if (!sgl.TouchAdjustInUse[2]) |
jmitc91516 | 0:9140ec6aa604 | 1085 | { |
jmitc91516 | 0:9140ec6aa604 | 1086 | sgl.TouchAdjustInUse[2] = 1; |
jmitc91516 | 0:9140ec6aa604 | 1087 | sgl.TouchAdjustXTrue[2] = sgl.TouchAdjustXTrue[0]; |
jmitc91516 | 0:9140ec6aa604 | 1088 | sgl.TouchAdjustYTrue[2] = sgl.TouchAdjustYTrue[3]; |
jmitc91516 | 0:9140ec6aa604 | 1089 | sgl.TouchAdjustXMeasured[2] = sgl.TouchAdjustXMeasured[0]; |
jmitc91516 | 0:9140ec6aa604 | 1090 | sgl.TouchAdjustYMeasured[2] = sgl.TouchAdjustYMeasured[3]; |
jmitc91516 | 0:9140ec6aa604 | 1091 | } |
jmitc91516 | 0:9140ec6aa604 | 1092 | } |
jmitc91516 | 0:9140ec6aa604 | 1093 | else if (sgl.TouchAdjustInUse[1] && sgl.TouchAdjustInUse[2]) |
jmitc91516 | 0:9140ec6aa604 | 1094 | { |
jmitc91516 | 0:9140ec6aa604 | 1095 | sgl.TouchAdjustActive = 1; |
jmitc91516 | 0:9140ec6aa604 | 1096 | if (!sgl.TouchAdjustInUse[0]) |
jmitc91516 | 0:9140ec6aa604 | 1097 | { |
jmitc91516 | 0:9140ec6aa604 | 1098 | sgl.TouchAdjustInUse[0] = 1; |
jmitc91516 | 0:9140ec6aa604 | 1099 | sgl.TouchAdjustXTrue[0] = sgl.TouchAdjustXTrue[2]; |
jmitc91516 | 0:9140ec6aa604 | 1100 | sgl.TouchAdjustYTrue[0] = sgl.TouchAdjustYTrue[1]; |
jmitc91516 | 0:9140ec6aa604 | 1101 | sgl.TouchAdjustXMeasured[0] = sgl.TouchAdjustXMeasured[2]; |
jmitc91516 | 0:9140ec6aa604 | 1102 | sgl.TouchAdjustYMeasured[0] = sgl.TouchAdjustYMeasured[1]; |
jmitc91516 | 0:9140ec6aa604 | 1103 | } |
jmitc91516 | 0:9140ec6aa604 | 1104 | if (!sgl.TouchAdjustInUse[3]) |
jmitc91516 | 0:9140ec6aa604 | 1105 | { |
jmitc91516 | 0:9140ec6aa604 | 1106 | sgl.TouchAdjustInUse[3] = 1; |
jmitc91516 | 0:9140ec6aa604 | 1107 | sgl.TouchAdjustXTrue[3] = sgl.TouchAdjustXTrue[1]; |
jmitc91516 | 0:9140ec6aa604 | 1108 | sgl.TouchAdjustYTrue[3] = sgl.TouchAdjustYTrue[2]; |
jmitc91516 | 0:9140ec6aa604 | 1109 | sgl.TouchAdjustXMeasured[3] = sgl.TouchAdjustXMeasured[1]; |
jmitc91516 | 0:9140ec6aa604 | 1110 | sgl.TouchAdjustYMeasured[3] = sgl.TouchAdjustYMeasured[2]; |
jmitc91516 | 0:9140ec6aa604 | 1111 | } |
jmitc91516 | 0:9140ec6aa604 | 1112 | } |
jmitc91516 | 0:9140ec6aa604 | 1113 | |
jmitc91516 | 0:9140ec6aa604 | 1114 | if (sgl.TouchAdjustActive) |
jmitc91516 | 0:9140ec6aa604 | 1115 | { |
jmitc91516 | 0:9140ec6aa604 | 1116 | XTL = (10 * sgl.TouchAdjustXMeasured[1]) - ((10 * sgl.TouchAdjustXTrue[1] * |
jmitc91516 | 0:9140ec6aa604 | 1117 | (sgl.TouchAdjustXMeasured[1] - sgl.TouchAdjustXMeasured[0])) / |
jmitc91516 | 0:9140ec6aa604 | 1118 | (sgl.TouchAdjustXTrue[1] - sgl.TouchAdjustXTrue[0])); |
jmitc91516 | 0:9140ec6aa604 | 1119 | XTR = (10 * sgl.TouchAdjustXMeasured[0]) + |
jmitc91516 | 0:9140ec6aa604 | 1120 | ((10 * (GuiConst_DISPLAY_WIDTH - sgl.TouchAdjustXTrue[0]) * |
jmitc91516 | 0:9140ec6aa604 | 1121 | (sgl.TouchAdjustXMeasured[1] - sgl.TouchAdjustXMeasured[0])) / |
jmitc91516 | 0:9140ec6aa604 | 1122 | (sgl.TouchAdjustXTrue[1] - sgl.TouchAdjustXTrue[0])); |
jmitc91516 | 0:9140ec6aa604 | 1123 | XBL = (10 * sgl.TouchAdjustXMeasured[3]) - ((10 * sgl.TouchAdjustXTrue[3] * |
jmitc91516 | 0:9140ec6aa604 | 1124 | (sgl.TouchAdjustXMeasured[3] - sgl.TouchAdjustXMeasured[2])) / |
jmitc91516 | 0:9140ec6aa604 | 1125 | (sgl.TouchAdjustXTrue[3] - sgl.TouchAdjustXTrue[2])); |
jmitc91516 | 0:9140ec6aa604 | 1126 | XBR = (10 * sgl.TouchAdjustXMeasured[2]) + |
jmitc91516 | 0:9140ec6aa604 | 1127 | ((10 * (GuiConst_DISPLAY_WIDTH - sgl.TouchAdjustXTrue[2]) * |
jmitc91516 | 0:9140ec6aa604 | 1128 | (sgl.TouchAdjustXMeasured[3] - sgl.TouchAdjustXMeasured[2])) / |
jmitc91516 | 0:9140ec6aa604 | 1129 | (sgl.TouchAdjustXTrue[3] - sgl.TouchAdjustXTrue[2])); |
jmitc91516 | 0:9140ec6aa604 | 1130 | |
jmitc91516 | 0:9140ec6aa604 | 1131 | YT = 5 * (sgl.TouchAdjustYTrue[0] + sgl.TouchAdjustYTrue[1]); |
jmitc91516 | 0:9140ec6aa604 | 1132 | YB = 5 * (sgl.TouchAdjustYTrue[2] + sgl.TouchAdjustYTrue[3]); |
jmitc91516 | 0:9140ec6aa604 | 1133 | |
jmitc91516 | 0:9140ec6aa604 | 1134 | sgl.TouchAdjustXTL = XBL - (YB * (XBL - XTL) / (YB - YT)); |
jmitc91516 | 0:9140ec6aa604 | 1135 | sgl.TouchAdjustXBL = |
jmitc91516 | 0:9140ec6aa604 | 1136 | XTL + (((10 * GuiConst_DISPLAY_HEIGHT) - YT) * (XBL - XTL) / (YB - YT)); |
jmitc91516 | 0:9140ec6aa604 | 1137 | sgl.TouchAdjustXTR = XBR - (YB * (XBR - XTR) / (YB - YT)); |
jmitc91516 | 0:9140ec6aa604 | 1138 | sgl.TouchAdjustXBR = |
jmitc91516 | 0:9140ec6aa604 | 1139 | XTR + (((10 * GuiConst_DISPLAY_HEIGHT) - YT) * (XBR - XTR) / (YB - YT)); |
jmitc91516 | 0:9140ec6aa604 | 1140 | |
jmitc91516 | 0:9140ec6aa604 | 1141 | YTL = (10 * sgl.TouchAdjustYMeasured[2]) - ((10 * sgl.TouchAdjustYTrue[2] * |
jmitc91516 | 0:9140ec6aa604 | 1142 | (sgl.TouchAdjustYMeasured[2] - sgl.TouchAdjustYMeasured[0])) / |
jmitc91516 | 0:9140ec6aa604 | 1143 | (sgl.TouchAdjustYTrue[2] - sgl.TouchAdjustYTrue[0])); |
jmitc91516 | 0:9140ec6aa604 | 1144 | YBL = (10 * sgl.TouchAdjustYMeasured[0]) + |
jmitc91516 | 0:9140ec6aa604 | 1145 | ((10 * (GuiConst_DISPLAY_HEIGHT - sgl.TouchAdjustYTrue[0]) * |
jmitc91516 | 0:9140ec6aa604 | 1146 | (sgl.TouchAdjustYMeasured[2] - sgl.TouchAdjustYMeasured[0])) / |
jmitc91516 | 0:9140ec6aa604 | 1147 | (sgl.TouchAdjustYTrue[2] - sgl.TouchAdjustYTrue[0])); |
jmitc91516 | 0:9140ec6aa604 | 1148 | YTR = (10 * sgl.TouchAdjustYMeasured[3]) - ((10 * sgl.TouchAdjustYTrue[3] * |
jmitc91516 | 0:9140ec6aa604 | 1149 | (sgl.TouchAdjustYMeasured[3] - sgl.TouchAdjustYMeasured[1])) / |
jmitc91516 | 0:9140ec6aa604 | 1150 | (sgl.TouchAdjustYTrue[3] - sgl.TouchAdjustYTrue[1])); |
jmitc91516 | 0:9140ec6aa604 | 1151 | YBR = (10 * sgl.TouchAdjustYMeasured[1]) + |
jmitc91516 | 0:9140ec6aa604 | 1152 | ((10 * (GuiConst_DISPLAY_HEIGHT - sgl.TouchAdjustYTrue[1]) * |
jmitc91516 | 0:9140ec6aa604 | 1153 | (sgl.TouchAdjustYMeasured[3] - sgl.TouchAdjustYMeasured[1])) / |
jmitc91516 | 0:9140ec6aa604 | 1154 | (sgl.TouchAdjustYTrue[3] - sgl.TouchAdjustYTrue[1])); |
jmitc91516 | 0:9140ec6aa604 | 1155 | |
jmitc91516 | 0:9140ec6aa604 | 1156 | XL = 5 * (sgl.TouchAdjustXTrue[0] + sgl.TouchAdjustXTrue[2]); |
jmitc91516 | 0:9140ec6aa604 | 1157 | XR = 5 * (sgl.TouchAdjustXTrue[1] + sgl.TouchAdjustXTrue[3]); |
jmitc91516 | 0:9140ec6aa604 | 1158 | |
jmitc91516 | 0:9140ec6aa604 | 1159 | sgl.TouchAdjustYTL = YTR - (XR * (YTR - YTL) / (XR - XL)); |
jmitc91516 | 0:9140ec6aa604 | 1160 | sgl.TouchAdjustYTR = |
jmitc91516 | 0:9140ec6aa604 | 1161 | YTL + (((10 * GuiConst_DISPLAY_WIDTH) - XL) * (YTR - YTL) / (XR - XL)); |
jmitc91516 | 0:9140ec6aa604 | 1162 | sgl.TouchAdjustYBL = YBR - (XR * (YBR - YBL) / (XR - XL)); |
jmitc91516 | 0:9140ec6aa604 | 1163 | sgl.TouchAdjustYBR = |
jmitc91516 | 0:9140ec6aa604 | 1164 | YBL + (((10 * GuiConst_DISPLAY_WIDTH) - XL) * (YBR - YBL) / (XR - XL)); |
jmitc91516 | 0:9140ec6aa604 | 1165 | } |
jmitc91516 | 0:9140ec6aa604 | 1166 | } |
jmitc91516 | 0:9140ec6aa604 | 1167 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1168 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1169 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1170 | #endif // GuiConst_ITEM_TOUCHAREA_INUSE |
jmitc91516 | 0:9140ec6aa604 | 1171 | |
jmitc91516 | 0:9140ec6aa604 | 1172 | #ifdef GuiConst_ITEM_SCROLLBOX_INUSE |
jmitc91516 | 0:9140ec6aa604 | 1173 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1174 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1175 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1176 | static void ScrollBox_ShowLineStruct( |
jmitc91516 | 0:9140ec6aa604 | 1177 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1178 | GuiConst_INT16U StructToCallIndex, |
jmitc91516 | 0:9140ec6aa604 | 1179 | GuiConst_INT16S X, |
jmitc91516 | 0:9140ec6aa604 | 1180 | GuiConst_INT16S Y, |
jmitc91516 | 0:9140ec6aa604 | 1181 | GuiConst_INT8U ColorInvert) |
jmitc91516 | 0:9140ec6aa604 | 1182 | { |
jmitc91516 | 0:9140ec6aa604 | 1183 | GuiLib_StructPtr StructToCall; |
jmitc91516 | 0:9140ec6aa604 | 1184 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1185 | GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1186 | #endif //GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1187 | |
jmitc91516 | 0:9140ec6aa604 | 1188 | if (StructToCallIndex != 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1189 | { |
jmitc91516 | 0:9140ec6aa604 | 1190 | sgl.DisplayLevel++; |
jmitc91516 | 0:9140ec6aa604 | 1191 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1192 | RemClippingX1 = sgl.CurItem.ClipRectX1; |
jmitc91516 | 0:9140ec6aa604 | 1193 | RemClippingY1 = sgl.CurItem.ClipRectY1; |
jmitc91516 | 0:9140ec6aa604 | 1194 | RemClippingX2 = sgl.CurItem.ClipRectX2; |
jmitc91516 | 0:9140ec6aa604 | 1195 | RemClippingY2 = sgl.CurItem.ClipRectY2; |
jmitc91516 | 0:9140ec6aa604 | 1196 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1197 | memcpy(&sgl.CurItem, &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem, |
jmitc91516 | 0:9140ec6aa604 | 1198 | sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1199 | sgl.CurItem.RX = X; |
jmitc91516 | 0:9140ec6aa604 | 1200 | sgl.CurItem.RY = Y; |
jmitc91516 | 0:9140ec6aa604 | 1201 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1202 | sgl.CurItem.ClipRectX1 = RemClippingX1; |
jmitc91516 | 0:9140ec6aa604 | 1203 | sgl.CurItem.ClipRectY1 = RemClippingY1; |
jmitc91516 | 0:9140ec6aa604 | 1204 | sgl.CurItem.ClipRectX2 = RemClippingX2; |
jmitc91516 | 0:9140ec6aa604 | 1205 | sgl.CurItem.ClipRectY2 = RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1206 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1207 | StructToCall = (GuiLib_StructPtr) |
jmitc91516 | 0:9140ec6aa604 | 1208 | #ifdef GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1209 | GetRemoteStructData(StructToCallIndex); |
jmitc91516 | 0:9140ec6aa604 | 1210 | #else // GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1211 | (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]); |
jmitc91516 | 0:9140ec6aa604 | 1212 | #endif // GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1213 | |
jmitc91516 | 0:9140ec6aa604 | 1214 | if (ColorInvert == GuiLib_COL_INVERT_ON) |
jmitc91516 | 0:9140ec6aa604 | 1215 | { |
jmitc91516 | 0:9140ec6aa604 | 1216 | #ifdef GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1217 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ContainsCursorFields) |
jmitc91516 | 0:9140ec6aa604 | 1218 | ColorInvert = GuiLib_COL_INVERT_IF_CURSOR; |
jmitc91516 | 0:9140ec6aa604 | 1219 | #endif // GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1220 | } |
jmitc91516 | 0:9140ec6aa604 | 1221 | else |
jmitc91516 | 0:9140ec6aa604 | 1222 | { |
jmitc91516 | 0:9140ec6aa604 | 1223 | #ifdef GuiConst_BITMAP_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1224 | UpdateBackgroundBitmap(); |
jmitc91516 | 0:9140ec6aa604 | 1225 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1226 | } |
jmitc91516 | 0:9140ec6aa604 | 1227 | |
jmitc91516 | 0:9140ec6aa604 | 1228 | DrawStructure(StructToCall, ColorInvert); |
jmitc91516 | 0:9140ec6aa604 | 1229 | ResetLayerBufPtr(); |
jmitc91516 | 0:9140ec6aa604 | 1230 | sgl.DisplayLevel--; |
jmitc91516 | 0:9140ec6aa604 | 1231 | } |
jmitc91516 | 0:9140ec6aa604 | 1232 | } |
jmitc91516 | 0:9140ec6aa604 | 1233 | |
jmitc91516 | 0:9140ec6aa604 | 1234 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1235 | static void ScrollBox_ShowLineBlock( |
jmitc91516 | 0:9140ec6aa604 | 1236 | GuiConst_INTCOLOR Color, |
jmitc91516 | 0:9140ec6aa604 | 1237 | GuiConst_INT8U Transparent, |
jmitc91516 | 0:9140ec6aa604 | 1238 | GuiConst_INT16S X1, |
jmitc91516 | 0:9140ec6aa604 | 1239 | GuiConst_INT16S Y1, |
jmitc91516 | 0:9140ec6aa604 | 1240 | GuiConst_INT16S X2, |
jmitc91516 | 0:9140ec6aa604 | 1241 | GuiConst_INT16S Y2) |
jmitc91516 | 0:9140ec6aa604 | 1242 | { |
jmitc91516 | 0:9140ec6aa604 | 1243 | if (!Transparent) |
jmitc91516 | 0:9140ec6aa604 | 1244 | GuiLib_FillBox(X1, Y1, X2, Y2, Color); |
jmitc91516 | 0:9140ec6aa604 | 1245 | } |
jmitc91516 | 0:9140ec6aa604 | 1246 | |
jmitc91516 | 0:9140ec6aa604 | 1247 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1248 | static void ScrollBox_ShowBarBlock( |
jmitc91516 | 0:9140ec6aa604 | 1249 | GuiConst_INTCOLOR ForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1250 | GuiConst_INTCOLOR BackColor, |
jmitc91516 | 0:9140ec6aa604 | 1251 | GuiConst_INT8U Thickness, |
jmitc91516 | 0:9140ec6aa604 | 1252 | GuiConst_INT16S X, |
jmitc91516 | 0:9140ec6aa604 | 1253 | GuiConst_INT16S Y, |
jmitc91516 | 0:9140ec6aa604 | 1254 | GuiConst_INT16S SizeX, |
jmitc91516 | 0:9140ec6aa604 | 1255 | GuiConst_INT16S SizeY) |
jmitc91516 | 0:9140ec6aa604 | 1256 | { |
jmitc91516 | 0:9140ec6aa604 | 1257 | GuiConst_INT8U T; |
jmitc91516 | 0:9140ec6aa604 | 1258 | GuiConst_INT16S BX1, BY1, BX2, BY2; |
jmitc91516 | 0:9140ec6aa604 | 1259 | |
jmitc91516 | 0:9140ec6aa604 | 1260 | if (Thickness > 0) |
jmitc91516 | 0:9140ec6aa604 | 1261 | for (T = 0; T < Thickness; T++) |
jmitc91516 | 0:9140ec6aa604 | 1262 | { |
jmitc91516 | 0:9140ec6aa604 | 1263 | BX1 = X + T; |
jmitc91516 | 0:9140ec6aa604 | 1264 | BY1 = Y + T; |
jmitc91516 | 0:9140ec6aa604 | 1265 | BX2 = X + SizeX - 1 - T; |
jmitc91516 | 0:9140ec6aa604 | 1266 | BY2 = Y + SizeY - 1 - T; |
jmitc91516 | 0:9140ec6aa604 | 1267 | GuiLib_Box(BX1, BY1, BX2, BY2, ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 1268 | } |
jmitc91516 | 0:9140ec6aa604 | 1269 | BX1 = X + Thickness; |
jmitc91516 | 0:9140ec6aa604 | 1270 | BY1 = Y + Thickness; |
jmitc91516 | 0:9140ec6aa604 | 1271 | BX2 = X + SizeX - 1 - Thickness; |
jmitc91516 | 0:9140ec6aa604 | 1272 | BY2 = Y + SizeY - 1 - Thickness; |
jmitc91516 | 0:9140ec6aa604 | 1273 | GuiLib_FillBox(BX1, BY1, BX2, BY2, BackColor); |
jmitc91516 | 0:9140ec6aa604 | 1274 | } |
jmitc91516 | 0:9140ec6aa604 | 1275 | |
jmitc91516 | 0:9140ec6aa604 | 1276 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1277 | static void ScrollBox_SetTopLine( |
jmitc91516 | 0:9140ec6aa604 | 1278 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 1279 | { |
jmitc91516 | 0:9140ec6aa604 | 1280 | GuiConst_INT16U LowerLimtA=0; |
jmitc91516 | 0:9140ec6aa604 | 1281 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 1282 | { |
jmitc91516 | 0:9140ec6aa604 | 1283 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 1284 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] - |
jmitc91516 | 0:9140ec6aa604 | 1285 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 1286 | GuiLib_LIMIT_MINMAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, |
jmitc91516 | 0:9140ec6aa604 | 1287 | LowerLimtA, sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 1288 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines); |
jmitc91516 | 0:9140ec6aa604 | 1289 | } |
jmitc91516 | 0:9140ec6aa604 | 1290 | else |
jmitc91516 | 0:9140ec6aa604 | 1291 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 1292 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] - |
jmitc91516 | 0:9140ec6aa604 | 1293 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 1294 | } |
jmitc91516 | 0:9140ec6aa604 | 1295 | |
jmitc91516 | 0:9140ec6aa604 | 1296 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1297 | static void ScrollBox_DrawScrollLine( |
jmitc91516 | 0:9140ec6aa604 | 1298 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1299 | GuiConst_INT16S LineNdx) |
jmitc91516 | 0:9140ec6aa604 | 1300 | { |
jmitc91516 | 0:9140ec6aa604 | 1301 | GuiConst_INT16U N; |
jmitc91516 | 0:9140ec6aa604 | 1302 | GuiConst_INT16S SX1, SY1; |
jmitc91516 | 0:9140ec6aa604 | 1303 | GuiConst_INT16S X1, Y1, X2, Y2; |
jmitc91516 | 0:9140ec6aa604 | 1304 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1305 | GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1306 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1307 | |
jmitc91516 | 0:9140ec6aa604 | 1308 | if ((LineNdx < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 1309 | (LineNdx >= sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 1310 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines)) |
jmitc91516 | 0:9140ec6aa604 | 1311 | return; |
jmitc91516 | 0:9140ec6aa604 | 1312 | |
jmitc91516 | 0:9140ec6aa604 | 1313 | X1 = sgl.ScrollBoxesAry[ScrollBoxIndex].X1 + |
jmitc91516 | 0:9140ec6aa604 | 1314 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetX; |
jmitc91516 | 0:9140ec6aa604 | 1315 | Y1 = sgl.ScrollBoxesAry[ScrollBoxIndex].Y1 + |
jmitc91516 | 0:9140ec6aa604 | 1316 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetY + |
jmitc91516 | 0:9140ec6aa604 | 1317 | (LineNdx - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) * |
jmitc91516 | 0:9140ec6aa604 | 1318 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset; |
jmitc91516 | 0:9140ec6aa604 | 1319 | X2 = X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeX - 1; |
jmitc91516 | 0:9140ec6aa604 | 1320 | Y2 = Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY - 1; |
jmitc91516 | 0:9140ec6aa604 | 1321 | |
jmitc91516 | 0:9140ec6aa604 | 1322 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1323 | RemClippingX1 = sgl.CurItem.ClipRectX1; |
jmitc91516 | 0:9140ec6aa604 | 1324 | RemClippingY1 = sgl.CurItem.ClipRectY1; |
jmitc91516 | 0:9140ec6aa604 | 1325 | RemClippingX2 = sgl.CurItem.ClipRectX2; |
jmitc91516 | 0:9140ec6aa604 | 1326 | RemClippingY2 = sgl.CurItem.ClipRectY2; |
jmitc91516 | 0:9140ec6aa604 | 1327 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, X1, X2); |
jmitc91516 | 0:9140ec6aa604 | 1328 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, Y1, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1329 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, X1, X2); |
jmitc91516 | 0:9140ec6aa604 | 1330 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, Y1, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1331 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1332 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1333 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1334 | |
jmitc91516 | 0:9140ec6aa604 | 1335 | if ((LineNdx >= 0) && |
jmitc91516 | 0:9140ec6aa604 | 1336 | (LineNdx < sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines)) |
jmitc91516 | 0:9140ec6aa604 | 1337 | { |
jmitc91516 | 0:9140ec6aa604 | 1338 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc(LineNdx); |
jmitc91516 | 0:9140ec6aa604 | 1339 | |
jmitc91516 | 0:9140ec6aa604 | 1340 | SX1 = X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetX; |
jmitc91516 | 0:9140ec6aa604 | 1341 | SY1 = Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetY; |
jmitc91516 | 0:9140ec6aa604 | 1342 | for (N = 0; N <= GuiConst_SCROLLITEM_MARKERS_MAX; N++) |
jmitc91516 | 0:9140ec6aa604 | 1343 | { |
jmitc91516 | 0:9140ec6aa604 | 1344 | if (N < GuiConst_SCROLLITEM_MARKERS_MAX) |
jmitc91516 | 0:9140ec6aa604 | 1345 | { |
jmitc91516 | 0:9140ec6aa604 | 1346 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[N] >= 0) && |
jmitc91516 | 0:9140ec6aa604 | 1347 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[N] >= 1)) |
jmitc91516 | 0:9140ec6aa604 | 1348 | { |
jmitc91516 | 0:9140ec6aa604 | 1349 | if ((LineNdx >= sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[N]) && |
jmitc91516 | 0:9140ec6aa604 | 1350 | (LineNdx <= (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[N] + |
jmitc91516 | 0:9140ec6aa604 | 1351 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[N] - 1))) |
jmitc91516 | 0:9140ec6aa604 | 1352 | { |
jmitc91516 | 0:9140ec6aa604 | 1353 | ScrollBox_ShowLineBlock( |
jmitc91516 | 0:9140ec6aa604 | 1354 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[N], |
jmitc91516 | 0:9140ec6aa604 | 1355 | sgl.ScrollBoxesAry[ScrollBoxIndex]. |
jmitc91516 | 0:9140ec6aa604 | 1356 | MarkerColorTransparent[N], X1, Y1, X2, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1357 | switch (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerDrawingOrder[N]) |
jmitc91516 | 0:9140ec6aa604 | 1358 | { |
jmitc91516 | 0:9140ec6aa604 | 1359 | case 0: |
jmitc91516 | 0:9140ec6aa604 | 1360 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1361 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1, |
jmitc91516 | 0:9140ec6aa604 | 1362 | GuiLib_COL_INVERT_ON); |
jmitc91516 | 0:9140ec6aa604 | 1363 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N] != |
jmitc91516 | 0:9140ec6aa604 | 1364 | 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1365 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1366 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N], |
jmitc91516 | 0:9140ec6aa604 | 1367 | SX1, SY1, GuiLib_COL_INVERT_ON); |
jmitc91516 | 0:9140ec6aa604 | 1368 | break; |
jmitc91516 | 0:9140ec6aa604 | 1369 | |
jmitc91516 | 0:9140ec6aa604 | 1370 | case 1: |
jmitc91516 | 0:9140ec6aa604 | 1371 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N] != |
jmitc91516 | 0:9140ec6aa604 | 1372 | 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1373 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1374 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N], |
jmitc91516 | 0:9140ec6aa604 | 1375 | SX1, SY1, GuiLib_COL_INVERT_ON); |
jmitc91516 | 0:9140ec6aa604 | 1376 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1377 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1, |
jmitc91516 | 0:9140ec6aa604 | 1378 | GuiLib_COL_INVERT_ON); |
jmitc91516 | 0:9140ec6aa604 | 1379 | break; |
jmitc91516 | 0:9140ec6aa604 | 1380 | |
jmitc91516 | 0:9140ec6aa604 | 1381 | case 2: |
jmitc91516 | 0:9140ec6aa604 | 1382 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1383 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1, |
jmitc91516 | 0:9140ec6aa604 | 1384 | GuiLib_COL_INVERT_ON); |
jmitc91516 | 0:9140ec6aa604 | 1385 | break; |
jmitc91516 | 0:9140ec6aa604 | 1386 | |
jmitc91516 | 0:9140ec6aa604 | 1387 | case 3: |
jmitc91516 | 0:9140ec6aa604 | 1388 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N] != |
jmitc91516 | 0:9140ec6aa604 | 1389 | 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1390 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1391 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N], |
jmitc91516 | 0:9140ec6aa604 | 1392 | SX1, SY1, GuiLib_COL_INVERT_ON); |
jmitc91516 | 0:9140ec6aa604 | 1393 | break; |
jmitc91516 | 0:9140ec6aa604 | 1394 | } |
jmitc91516 | 0:9140ec6aa604 | 1395 | |
jmitc91516 | 0:9140ec6aa604 | 1396 | break; |
jmitc91516 | 0:9140ec6aa604 | 1397 | } |
jmitc91516 | 0:9140ec6aa604 | 1398 | } |
jmitc91516 | 0:9140ec6aa604 | 1399 | } |
jmitc91516 | 0:9140ec6aa604 | 1400 | else |
jmitc91516 | 0:9140ec6aa604 | 1401 | { |
jmitc91516 | 0:9140ec6aa604 | 1402 | ScrollBox_ShowLineBlock( |
jmitc91516 | 0:9140ec6aa604 | 1403 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor, |
jmitc91516 | 0:9140ec6aa604 | 1404 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent, |
jmitc91516 | 0:9140ec6aa604 | 1405 | X1, Y1, X2, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1406 | ScrollBox_ShowLineStruct(ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1407 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1, |
jmitc91516 | 0:9140ec6aa604 | 1408 | GuiLib_COL_INVERT_OFF); |
jmitc91516 | 0:9140ec6aa604 | 1409 | } |
jmitc91516 | 0:9140ec6aa604 | 1410 | } |
jmitc91516 | 0:9140ec6aa604 | 1411 | } |
jmitc91516 | 0:9140ec6aa604 | 1412 | else |
jmitc91516 | 0:9140ec6aa604 | 1413 | ScrollBox_ShowLineBlock(sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor, |
jmitc91516 | 0:9140ec6aa604 | 1414 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent, |
jmitc91516 | 0:9140ec6aa604 | 1415 | X1, Y1, X2, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1416 | |
jmitc91516 | 0:9140ec6aa604 | 1417 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1418 | sgl.CurItem.ClipRectX1 = RemClippingX1; |
jmitc91516 | 0:9140ec6aa604 | 1419 | sgl.CurItem.ClipRectY1 = RemClippingY1; |
jmitc91516 | 0:9140ec6aa604 | 1420 | sgl.CurItem.ClipRectX2 = RemClippingX2; |
jmitc91516 | 0:9140ec6aa604 | 1421 | sgl.CurItem.ClipRectY2 = RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1422 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1423 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1424 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1425 | } |
jmitc91516 | 0:9140ec6aa604 | 1426 | |
jmitc91516 | 0:9140ec6aa604 | 1427 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1428 | GuiConst_INT8U GuiLib_ScrollBox_Init( |
jmitc91516 | 0:9140ec6aa604 | 1429 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1430 | void (*DataFuncPtr) (GuiConst_INT16S LineIndex), |
jmitc91516 | 0:9140ec6aa604 | 1431 | GuiConst_INT16S NoOfLines, |
jmitc91516 | 0:9140ec6aa604 | 1432 | GuiConst_INT16S ActiveLine) |
jmitc91516 | 0:9140ec6aa604 | 1433 | { |
jmitc91516 | 0:9140ec6aa604 | 1434 | GuiConst_INT16U StructToCallIndex; |
jmitc91516 | 0:9140ec6aa604 | 1435 | GuiLib_StructPtr StructToCall; |
jmitc91516 | 0:9140ec6aa604 | 1436 | GuiLib_ItemRec RemCurItem; |
jmitc91516 | 0:9140ec6aa604 | 1437 | #ifdef GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1438 | GuiConst_INT8U RemCursorInUse; |
jmitc91516 | 0:9140ec6aa604 | 1439 | #endif // GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1440 | |
jmitc91516 | 0:9140ec6aa604 | 1441 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 1442 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_READ) || |
jmitc91516 | 0:9140ec6aa604 | 1443 | (ActiveLine >= NoOfLines)) |
jmitc91516 | 0:9140ec6aa604 | 1444 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 1445 | |
jmitc91516 | 0:9140ec6aa604 | 1446 | memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1447 | |
jmitc91516 | 0:9140ec6aa604 | 1448 | sgl.GlobalScrollBoxIndex = ScrollBoxIndex; |
jmitc91516 | 0:9140ec6aa604 | 1449 | |
jmitc91516 | 0:9140ec6aa604 | 1450 | memcpy(&sgl.CurItem, &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem, |
jmitc91516 | 0:9140ec6aa604 | 1451 | sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1452 | StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex; |
jmitc91516 | 0:9140ec6aa604 | 1453 | if (StructToCallIndex != 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1454 | { |
jmitc91516 | 0:9140ec6aa604 | 1455 | sgl.DisplayLevel++; |
jmitc91516 | 0:9140ec6aa604 | 1456 | StructToCall = (GuiLib_StructPtr) |
jmitc91516 | 0:9140ec6aa604 | 1457 | #ifdef GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1458 | GetRemoteStructData(StructToCallIndex); |
jmitc91516 | 0:9140ec6aa604 | 1459 | #else |
jmitc91516 | 0:9140ec6aa604 | 1460 | (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]); |
jmitc91516 | 0:9140ec6aa604 | 1461 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1462 | sgl.NextScrollLineReading = 1; |
jmitc91516 | 0:9140ec6aa604 | 1463 | sgl.InitialDrawing = 1; |
jmitc91516 | 0:9140ec6aa604 | 1464 | #ifdef GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1465 | RemCursorInUse = sgl.CursorInUse; |
jmitc91516 | 0:9140ec6aa604 | 1466 | sgl.ScrollBoxesAry[ScrollBoxIndex].ContainsCursorFields = 0; |
jmitc91516 | 0:9140ec6aa604 | 1467 | sgl.CursorInUse = (GuiLib_ActiveCursorFieldNo >= 0); |
jmitc91516 | 0:9140ec6aa604 | 1468 | sgl.CursorFieldFound = -1; |
jmitc91516 | 0:9140ec6aa604 | 1469 | sgl.CursorActiveFieldFound = 0; |
jmitc91516 | 0:9140ec6aa604 | 1470 | #endif // GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1471 | DrawStructure(StructToCall, GuiLib_COL_INVERT_OFF); |
jmitc91516 | 0:9140ec6aa604 | 1472 | ResetLayerBufPtr(); |
jmitc91516 | 0:9140ec6aa604 | 1473 | #ifdef GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1474 | sgl.InitialDrawing = 0; |
jmitc91516 | 0:9140ec6aa604 | 1475 | if (sgl.CursorFieldFound == -1) |
jmitc91516 | 0:9140ec6aa604 | 1476 | { |
jmitc91516 | 0:9140ec6aa604 | 1477 | sgl.CursorInUse = 0; |
jmitc91516 | 0:9140ec6aa604 | 1478 | GuiLib_ActiveCursorFieldNo = -1; |
jmitc91516 | 0:9140ec6aa604 | 1479 | } |
jmitc91516 | 0:9140ec6aa604 | 1480 | else |
jmitc91516 | 0:9140ec6aa604 | 1481 | { |
jmitc91516 | 0:9140ec6aa604 | 1482 | sgl.ScrollBoxesAry[ScrollBoxIndex].ContainsCursorFields = 1; |
jmitc91516 | 0:9140ec6aa604 | 1483 | if (sgl.CursorActiveFieldFound == 0) |
jmitc91516 | 0:9140ec6aa604 | 1484 | { |
jmitc91516 | 0:9140ec6aa604 | 1485 | GuiLib_ActiveCursorFieldNo = sgl.CursorFieldFound; |
jmitc91516 | 0:9140ec6aa604 | 1486 | |
jmitc91516 | 0:9140ec6aa604 | 1487 | DrawCursorItem(1); |
jmitc91516 | 0:9140ec6aa604 | 1488 | } |
jmitc91516 | 0:9140ec6aa604 | 1489 | } |
jmitc91516 | 0:9140ec6aa604 | 1490 | sgl.CursorInUse = sgl.CursorInUse | RemCursorInUse; |
jmitc91516 | 0:9140ec6aa604 | 1491 | #endif // GuiConst_CURSOR_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1492 | sgl.NextScrollLineReading = 0; |
jmitc91516 | 0:9140ec6aa604 | 1493 | sgl.DisplayLevel--; |
jmitc91516 | 0:9140ec6aa604 | 1494 | } |
jmitc91516 | 0:9140ec6aa604 | 1495 | |
jmitc91516 | 0:9140ec6aa604 | 1496 | SetCurFont(sgl.CurItem.TextPar[0].FontIndex); |
jmitc91516 | 0:9140ec6aa604 | 1497 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY == 0) && |
jmitc91516 | 0:9140ec6aa604 | 1498 | (sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY2 == 0)) |
jmitc91516 | 0:9140ec6aa604 | 1499 | { |
jmitc91516 | 0:9140ec6aa604 | 1500 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY = sgl.CurFont->BaseLine; |
jmitc91516 | 0:9140ec6aa604 | 1501 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY2 = |
jmitc91516 | 0:9140ec6aa604 | 1502 | sgl.CurFont->YSize - sgl.CurFont->BaseLine - 1; |
jmitc91516 | 0:9140ec6aa604 | 1503 | } |
jmitc91516 | 0:9140ec6aa604 | 1504 | |
jmitc91516 | 0:9140ec6aa604 | 1505 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1506 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1,sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1507 | sgl.CurItem.ClipRectX2,sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1508 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1509 | |
jmitc91516 | 0:9140ec6aa604 | 1510 | StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].MakeUpStructIndex; |
jmitc91516 | 0:9140ec6aa604 | 1511 | if (StructToCallIndex != 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1512 | { |
jmitc91516 | 0:9140ec6aa604 | 1513 | sgl.DisplayLevel++; |
jmitc91516 | 0:9140ec6aa604 | 1514 | memcpy(&sgl.CurItem, &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem, |
jmitc91516 | 0:9140ec6aa604 | 1515 | sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1516 | sgl.CurItem.RX = sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].X1; |
jmitc91516 | 0:9140ec6aa604 | 1517 | sgl.CurItem.RY = sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].Y1; |
jmitc91516 | 0:9140ec6aa604 | 1518 | StructToCall = (GuiLib_StructPtr) |
jmitc91516 | 0:9140ec6aa604 | 1519 | #ifdef GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1520 | GetRemoteStructData(StructToCallIndex); |
jmitc91516 | 0:9140ec6aa604 | 1521 | #else |
jmitc91516 | 0:9140ec6aa604 | 1522 | (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]); |
jmitc91516 | 0:9140ec6aa604 | 1523 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1524 | DrawStructure(StructToCall,GuiLib_COL_INVERT_OFF); |
jmitc91516 | 0:9140ec6aa604 | 1525 | ResetLayerBufPtr(); |
jmitc91516 | 0:9140ec6aa604 | 1526 | sgl.DisplayLevel--; |
jmitc91516 | 0:9140ec6aa604 | 1527 | } |
jmitc91516 | 0:9140ec6aa604 | 1528 | |
jmitc91516 | 0:9140ec6aa604 | 1529 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc = DataFuncPtr; |
jmitc91516 | 0:9140ec6aa604 | 1530 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = ActiveLine; |
jmitc91516 | 0:9140ec6aa604 | 1531 | sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine = ActiveLine; |
jmitc91516 | 0:9140ec6aa604 | 1532 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines = NoOfLines; |
jmitc91516 | 0:9140ec6aa604 | 1533 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) && |
jmitc91516 | 0:9140ec6aa604 | 1534 | (NoOfLines < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines)) |
jmitc91516 | 0:9140ec6aa604 | 1535 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines = NoOfLines; |
jmitc91516 | 0:9140ec6aa604 | 1536 | sgl.ScrollBoxesAry[ScrollBoxIndex].InUse = GuiLib_SCROLL_STRUCTURE_USED; |
jmitc91516 | 0:9140ec6aa604 | 1537 | ScrollBox_SetTopLine(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 1538 | GuiLib_ScrollBox_Redraw(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 1539 | sgl.ScrollBoxesAry[ScrollBoxIndex].LastScrollTopLine = 0xFFFF; |
jmitc91516 | 0:9140ec6aa604 | 1540 | |
jmitc91516 | 0:9140ec6aa604 | 1541 | memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1542 | |
jmitc91516 | 0:9140ec6aa604 | 1543 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 1544 | } |
jmitc91516 | 0:9140ec6aa604 | 1545 | |
jmitc91516 | 0:9140ec6aa604 | 1546 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1547 | GuiConst_INT8U GuiLib_ScrollBox_Redraw( |
jmitc91516 | 0:9140ec6aa604 | 1548 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 1549 | { |
jmitc91516 | 0:9140ec6aa604 | 1550 | GuiConst_INT16S N, ScrollStartLine, ScrollStopLine; |
jmitc91516 | 0:9140ec6aa604 | 1551 | GuiLib_ItemRec RemCurItem; |
jmitc91516 | 0:9140ec6aa604 | 1552 | #ifndef GuiConst_SCROLLITEM_BAR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1553 | #define GuiLib_SCROLL_REDRAW_VAR |
jmitc91516 | 0:9140ec6aa604 | 1554 | #else |
jmitc91516 | 0:9140ec6aa604 | 1555 | #ifndef GuiConst_SCROLLITEM_INDICATOR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1556 | #define GuiLib_SCROLL_REDRAW_VAR |
jmitc91516 | 0:9140ec6aa604 | 1557 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1558 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1559 | #ifdef GuiLib_SCROLL_REDRAW_VAR |
jmitc91516 | 0:9140ec6aa604 | 1560 | GuiLib_StructPtr StructToCall; |
jmitc91516 | 0:9140ec6aa604 | 1561 | GuiConst_INT16U StructToCallIndex; |
jmitc91516 | 0:9140ec6aa604 | 1562 | GuiConst_INT16S SX1, SY1; |
jmitc91516 | 0:9140ec6aa604 | 1563 | GuiConst_INT16S X1, Y1; |
jmitc91516 | 0:9140ec6aa604 | 1564 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1565 | GuiConst_INT16S SX2, SY2; |
jmitc91516 | 0:9140ec6aa604 | 1566 | GuiConst_INT16S X2, Y2; |
jmitc91516 | 0:9140ec6aa604 | 1567 | GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1568 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1569 | #endif // GuiLib_SCROLL_REDRAW_VAR |
jmitc91516 | 0:9140ec6aa604 | 1570 | #ifndef GuiConst_SCROLLITEM_BAR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1571 | GuiConst_INT16S BarMarkerY; |
jmitc91516 | 0:9140ec6aa604 | 1572 | GuiConst_INT16S BarMarkerHeight; |
jmitc91516 | 0:9140ec6aa604 | 1573 | GuiConst_INT16S BarMarkerMovementDY; |
jmitc91516 | 0:9140ec6aa604 | 1574 | GuiConst_INT32S N1, N2; |
jmitc91516 | 0:9140ec6aa604 | 1575 | #endif // GuiConst_SCROLLITEM_BAR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1576 | GuiConst_INT32S BackColor; |
jmitc91516 | 0:9140ec6aa604 | 1577 | |
jmitc91516 | 0:9140ec6aa604 | 1578 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 1579 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 1580 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 1581 | |
jmitc91516 | 0:9140ec6aa604 | 1582 | memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1583 | |
jmitc91516 | 0:9140ec6aa604 | 1584 | sgl.GlobalScrollBoxIndex = ScrollBoxIndex; |
jmitc91516 | 0:9140ec6aa604 | 1585 | |
jmitc91516 | 0:9140ec6aa604 | 1586 | ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 1587 | ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 1588 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1; |
jmitc91516 | 0:9140ec6aa604 | 1589 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastScrollTopLine == |
jmitc91516 | 0:9140ec6aa604 | 1590 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) |
jmitc91516 | 0:9140ec6aa604 | 1591 | { |
jmitc91516 | 0:9140ec6aa604 | 1592 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine == -1) || |
jmitc91516 | 0:9140ec6aa604 | 1593 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == -1)) |
jmitc91516 | 0:9140ec6aa604 | 1594 | { |
jmitc91516 | 0:9140ec6aa604 | 1595 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine != |
jmitc91516 | 0:9140ec6aa604 | 1596 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]) |
jmitc91516 | 0:9140ec6aa604 | 1597 | { |
jmitc91516 | 0:9140ec6aa604 | 1598 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine == -1) |
jmitc91516 | 0:9140ec6aa604 | 1599 | { |
jmitc91516 | 0:9140ec6aa604 | 1600 | ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 1601 | ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 1602 | } |
jmitc91516 | 0:9140ec6aa604 | 1603 | else |
jmitc91516 | 0:9140ec6aa604 | 1604 | { |
jmitc91516 | 0:9140ec6aa604 | 1605 | ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine; |
jmitc91516 | 0:9140ec6aa604 | 1606 | ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine; |
jmitc91516 | 0:9140ec6aa604 | 1607 | } |
jmitc91516 | 0:9140ec6aa604 | 1608 | } |
jmitc91516 | 0:9140ec6aa604 | 1609 | } |
jmitc91516 | 0:9140ec6aa604 | 1610 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine < |
jmitc91516 | 0:9140ec6aa604 | 1611 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]) |
jmitc91516 | 0:9140ec6aa604 | 1612 | { |
jmitc91516 | 0:9140ec6aa604 | 1613 | ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine; |
jmitc91516 | 0:9140ec6aa604 | 1614 | if (ScrollStartLine < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) |
jmitc91516 | 0:9140ec6aa604 | 1615 | ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 1616 | ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 1617 | } |
jmitc91516 | 0:9140ec6aa604 | 1618 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine > |
jmitc91516 | 0:9140ec6aa604 | 1619 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]) |
jmitc91516 | 0:9140ec6aa604 | 1620 | { |
jmitc91516 | 0:9140ec6aa604 | 1621 | ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 1622 | ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine; |
jmitc91516 | 0:9140ec6aa604 | 1623 | GuiLib_LIMIT_MAX(ScrollStartLine, |
jmitc91516 | 0:9140ec6aa604 | 1624 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 1625 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1); |
jmitc91516 | 0:9140ec6aa604 | 1626 | } |
jmitc91516 | 0:9140ec6aa604 | 1627 | } |
jmitc91516 | 0:9140ec6aa604 | 1628 | |
jmitc91516 | 0:9140ec6aa604 | 1629 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc != 0) |
jmitc91516 | 0:9140ec6aa604 | 1630 | for (N = ScrollStartLine; N <= ScrollStopLine; N++) |
jmitc91516 | 0:9140ec6aa604 | 1631 | ScrollBox_DrawScrollLine(ScrollBoxIndex, N); |
jmitc91516 | 0:9140ec6aa604 | 1632 | |
jmitc91516 | 0:9140ec6aa604 | 1633 | sgl.ScrollBoxesAry[ScrollBoxIndex].LastScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 1634 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 1635 | sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine = |
jmitc91516 | 0:9140ec6aa604 | 1636 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 1637 | |
jmitc91516 | 0:9140ec6aa604 | 1638 | #ifndef GuiConst_SCROLLITEM_BAR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1639 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType != GuiLib_MARKER_NONE) |
jmitc91516 | 0:9140ec6aa604 | 1640 | { |
jmitc91516 | 0:9140ec6aa604 | 1641 | SX1 = sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionX; |
jmitc91516 | 0:9140ec6aa604 | 1642 | SY1 = sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionY; |
jmitc91516 | 0:9140ec6aa604 | 1643 | X1 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset; |
jmitc91516 | 0:9140ec6aa604 | 1644 | Y1 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTopOffset; |
jmitc91516 | 0:9140ec6aa604 | 1645 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1646 | SX2 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX - 1; |
jmitc91516 | 0:9140ec6aa604 | 1647 | SY2 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY - 1; |
jmitc91516 | 0:9140ec6aa604 | 1648 | X2 = SX2 - sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset; |
jmitc91516 | 0:9140ec6aa604 | 1649 | Y2 = SY2 - sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBottomOffset; |
jmitc91516 | 0:9140ec6aa604 | 1650 | RemClippingX1 = sgl.CurItem.ClipRectX1; |
jmitc91516 | 0:9140ec6aa604 | 1651 | RemClippingY1 = sgl.CurItem.ClipRectY1; |
jmitc91516 | 0:9140ec6aa604 | 1652 | RemClippingX2 = sgl.CurItem.ClipRectX2; |
jmitc91516 | 0:9140ec6aa604 | 1653 | RemClippingY2 = sgl.CurItem.ClipRectY2; |
jmitc91516 | 0:9140ec6aa604 | 1654 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, SX1, SX2); |
jmitc91516 | 0:9140ec6aa604 | 1655 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, SY1, SY2); |
jmitc91516 | 0:9140ec6aa604 | 1656 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, SX1, SX2); |
jmitc91516 | 0:9140ec6aa604 | 1657 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, SY1, SY2); |
jmitc91516 | 0:9140ec6aa604 | 1658 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1659 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1660 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1661 | |
jmitc91516 | 0:9140ec6aa604 | 1662 | StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].BarStructIndex; |
jmitc91516 | 0:9140ec6aa604 | 1663 | if (StructToCallIndex != 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1664 | { |
jmitc91516 | 0:9140ec6aa604 | 1665 | ScrollBox_ShowBarBlock( |
jmitc91516 | 0:9140ec6aa604 | 1666 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1667 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor, |
jmitc91516 | 0:9140ec6aa604 | 1668 | 0, |
jmitc91516 | 0:9140ec6aa604 | 1669 | SX1, |
jmitc91516 | 0:9140ec6aa604 | 1670 | SY1, |
jmitc91516 | 0:9140ec6aa604 | 1671 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX, |
jmitc91516 | 0:9140ec6aa604 | 1672 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY); |
jmitc91516 | 0:9140ec6aa604 | 1673 | |
jmitc91516 | 0:9140ec6aa604 | 1674 | sgl.DisplayLevel++; |
jmitc91516 | 0:9140ec6aa604 | 1675 | memcpy(&sgl.CurItem, |
jmitc91516 | 0:9140ec6aa604 | 1676 | &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem, |
jmitc91516 | 0:9140ec6aa604 | 1677 | sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1678 | sgl.CurItem.RX = SX1; |
jmitc91516 | 0:9140ec6aa604 | 1679 | sgl.CurItem.RY = SY1; |
jmitc91516 | 0:9140ec6aa604 | 1680 | StructToCall = (GuiLib_StructPtr) |
jmitc91516 | 0:9140ec6aa604 | 1681 | #ifdef GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1682 | GetRemoteStructData(StructToCallIndex); |
jmitc91516 | 0:9140ec6aa604 | 1683 | #else |
jmitc91516 | 0:9140ec6aa604 | 1684 | (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]); |
jmitc91516 | 0:9140ec6aa604 | 1685 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1686 | DrawStructure(StructToCall, GuiLib_COL_INVERT_OFF); |
jmitc91516 | 0:9140ec6aa604 | 1687 | ResetLayerBufPtr(); |
jmitc91516 | 0:9140ec6aa604 | 1688 | sgl.DisplayLevel--; |
jmitc91516 | 0:9140ec6aa604 | 1689 | } |
jmitc91516 | 0:9140ec6aa604 | 1690 | else |
jmitc91516 | 0:9140ec6aa604 | 1691 | ScrollBox_ShowBarBlock( |
jmitc91516 | 0:9140ec6aa604 | 1692 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1693 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor, |
jmitc91516 | 0:9140ec6aa604 | 1694 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarThickness, |
jmitc91516 | 0:9140ec6aa604 | 1695 | SX1, |
jmitc91516 | 0:9140ec6aa604 | 1696 | SY1, |
jmitc91516 | 0:9140ec6aa604 | 1697 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX, |
jmitc91516 | 0:9140ec6aa604 | 1698 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY); |
jmitc91516 | 0:9140ec6aa604 | 1699 | |
jmitc91516 | 0:9140ec6aa604 | 1700 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1701 | sgl.CurItem.ClipRectX1 = RemClippingX1; |
jmitc91516 | 0:9140ec6aa604 | 1702 | sgl.CurItem.ClipRectY1 = RemClippingY1; |
jmitc91516 | 0:9140ec6aa604 | 1703 | sgl.CurItem.ClipRectX2 = RemClippingX2; |
jmitc91516 | 0:9140ec6aa604 | 1704 | sgl.CurItem.ClipRectY2 = RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1705 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1706 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1707 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1708 | |
jmitc91516 | 0:9140ec6aa604 | 1709 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines > |
jmitc91516 | 0:9140ec6aa604 | 1710 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines) |
jmitc91516 | 0:9140ec6aa604 | 1711 | { |
jmitc91516 | 0:9140ec6aa604 | 1712 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1713 | RemClippingX1 = sgl.CurItem.ClipRectX1; |
jmitc91516 | 0:9140ec6aa604 | 1714 | RemClippingY1 = sgl.CurItem.ClipRectY1; |
jmitc91516 | 0:9140ec6aa604 | 1715 | RemClippingX2 = sgl.CurItem.ClipRectX2; |
jmitc91516 | 0:9140ec6aa604 | 1716 | RemClippingY2 = sgl.CurItem.ClipRectY2; |
jmitc91516 | 0:9140ec6aa604 | 1717 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, X1, X2); |
jmitc91516 | 0:9140ec6aa604 | 1718 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, Y1, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1719 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, X1, X2); |
jmitc91516 | 0:9140ec6aa604 | 1720 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, Y1, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1721 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1722 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1723 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1724 | |
jmitc91516 | 0:9140ec6aa604 | 1725 | BarMarkerHeight = 0; |
jmitc91516 | 0:9140ec6aa604 | 1726 | BarMarkerMovementDY = sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY - |
jmitc91516 | 0:9140ec6aa604 | 1727 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBottomOffset - |
jmitc91516 | 0:9140ec6aa604 | 1728 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTopOffset; |
jmitc91516 | 0:9140ec6aa604 | 1729 | |
jmitc91516 | 0:9140ec6aa604 | 1730 | switch (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType) |
jmitc91516 | 0:9140ec6aa604 | 1731 | { |
jmitc91516 | 0:9140ec6aa604 | 1732 | case GuiLib_MARKER_ICON: |
jmitc91516 | 0:9140ec6aa604 | 1733 | sgl.CurFont = (GuiLib_FontRecPtr)ReadWord(GuiFont_FontList[ |
jmitc91516 | 0:9140ec6aa604 | 1734 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconFont]); |
jmitc91516 | 0:9140ec6aa604 | 1735 | BarMarkerHeight = sgl.CurFont->YSize; |
jmitc91516 | 0:9140ec6aa604 | 1736 | break; |
jmitc91516 | 0:9140ec6aa604 | 1737 | |
jmitc91516 | 0:9140ec6aa604 | 1738 | case GuiLib_MARKER_BITMAP: |
jmitc91516 | 0:9140ec6aa604 | 1739 | BarMarkerHeight = |
jmitc91516 | 0:9140ec6aa604 | 1740 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapHeight; |
jmitc91516 | 0:9140ec6aa604 | 1741 | break; |
jmitc91516 | 0:9140ec6aa604 | 1742 | |
jmitc91516 | 0:9140ec6aa604 | 1743 | case GuiLib_MARKER_FIXED_BLOCK: |
jmitc91516 | 0:9140ec6aa604 | 1744 | BarMarkerHeight = |
jmitc91516 | 0:9140ec6aa604 | 1745 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX - |
jmitc91516 | 0:9140ec6aa604 | 1746 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset - |
jmitc91516 | 0:9140ec6aa604 | 1747 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset; |
jmitc91516 | 0:9140ec6aa604 | 1748 | break; |
jmitc91516 | 0:9140ec6aa604 | 1749 | |
jmitc91516 | 0:9140ec6aa604 | 1750 | case GuiLib_MARKER_VARIABLE_BLOCK: |
jmitc91516 | 0:9140ec6aa604 | 1751 | BarMarkerHeight = |
jmitc91516 | 0:9140ec6aa604 | 1752 | (((10 * BarMarkerMovementDY * |
jmitc91516 | 0:9140ec6aa604 | 1753 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines) + 5) / |
jmitc91516 | 0:9140ec6aa604 | 1754 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines) / 10; |
jmitc91516 | 0:9140ec6aa604 | 1755 | GuiLib_LIMIT_MIN(BarMarkerHeight, 4); |
jmitc91516 | 0:9140ec6aa604 | 1756 | break; |
jmitc91516 | 0:9140ec6aa604 | 1757 | } |
jmitc91516 | 0:9140ec6aa604 | 1758 | |
jmitc91516 | 0:9140ec6aa604 | 1759 | N1 = sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 1760 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines; |
jmitc91516 | 0:9140ec6aa604 | 1761 | N2 = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 1762 | GuiLib_LIMIT_MINMAX(N2, 0, N1); |
jmitc91516 | 0:9140ec6aa604 | 1763 | BarMarkerY = (((10 * (BarMarkerMovementDY - BarMarkerHeight) * |
jmitc91516 | 0:9140ec6aa604 | 1764 | N2) + 5) / N1) / 10; |
jmitc91516 | 0:9140ec6aa604 | 1765 | |
jmitc91516 | 0:9140ec6aa604 | 1766 | switch (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType) |
jmitc91516 | 0:9140ec6aa604 | 1767 | { |
jmitc91516 | 0:9140ec6aa604 | 1768 | case GuiLib_MARKER_ICON: |
jmitc91516 | 0:9140ec6aa604 | 1769 | sgl.CurItem.X1 = X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetX; |
jmitc91516 | 0:9140ec6aa604 | 1770 | sgl.CurItem.Y1 = Y1 + BarMarkerY + |
jmitc91516 | 0:9140ec6aa604 | 1771 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetY + |
jmitc91516 | 0:9140ec6aa604 | 1772 | sgl.CurFont->BaseLine; |
jmitc91516 | 0:9140ec6aa604 | 1773 | sgl.CurItem.TextPar[0].FontIndex = |
jmitc91516 | 0:9140ec6aa604 | 1774 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconFont; |
jmitc91516 | 0:9140ec6aa604 | 1775 | sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT; |
jmitc91516 | 0:9140ec6aa604 | 1776 | sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF; |
jmitc91516 | 0:9140ec6aa604 | 1777 | sgl.CurItem.TextPar[0].BitFlags = 0; |
jmitc91516 | 0:9140ec6aa604 | 1778 | sgl.CurItem.TextPar[0].BackBoxSizeX = 0; |
jmitc91516 | 0:9140ec6aa604 | 1779 | sgl.CurItem.TextPar[0].BackBorderPixels = 0; |
jmitc91516 | 0:9140ec6aa604 | 1780 | DrawText(sgl.ScrollBoxesAry[ScrollBoxIndex].BarIconPtr, 1, 0, |
jmitc91516 | 0:9140ec6aa604 | 1781 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1782 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor, |
jmitc91516 | 0:9140ec6aa604 | 1783 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent); |
jmitc91516 | 0:9140ec6aa604 | 1784 | break; |
jmitc91516 | 0:9140ec6aa604 | 1785 | |
jmitc91516 | 0:9140ec6aa604 | 1786 | case GuiLib_MARKER_BITMAP: |
jmitc91516 | 0:9140ec6aa604 | 1787 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent) |
jmitc91516 | 0:9140ec6aa604 | 1788 | BackColor = |
jmitc91516 | 0:9140ec6aa604 | 1789 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapTranspColor; |
jmitc91516 | 0:9140ec6aa604 | 1790 | else |
jmitc91516 | 0:9140ec6aa604 | 1791 | BackColor = -1; |
jmitc91516 | 0:9140ec6aa604 | 1792 | GuiLib_ShowBitmap(sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex, |
jmitc91516 | 0:9140ec6aa604 | 1793 | X1, Y1 + BarMarkerY, BackColor); |
jmitc91516 | 0:9140ec6aa604 | 1794 | break; |
jmitc91516 | 0:9140ec6aa604 | 1795 | |
jmitc91516 | 0:9140ec6aa604 | 1796 | case GuiLib_MARKER_FIXED_BLOCK: |
jmitc91516 | 0:9140ec6aa604 | 1797 | case GuiLib_MARKER_VARIABLE_BLOCK: |
jmitc91516 | 0:9140ec6aa604 | 1798 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent) |
jmitc91516 | 0:9140ec6aa604 | 1799 | GuiLib_Box(X1, Y1 + BarMarkerY, |
jmitc91516 | 0:9140ec6aa604 | 1800 | X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX - |
jmitc91516 | 0:9140ec6aa604 | 1801 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset - |
jmitc91516 | 0:9140ec6aa604 | 1802 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset - 1, |
jmitc91516 | 0:9140ec6aa604 | 1803 | Y1 + BarMarkerY + BarMarkerHeight - 1, |
jmitc91516 | 0:9140ec6aa604 | 1804 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor); |
jmitc91516 | 0:9140ec6aa604 | 1805 | else |
jmitc91516 | 0:9140ec6aa604 | 1806 | GuiLib_BorderBox(X1, Y1 + BarMarkerY, |
jmitc91516 | 0:9140ec6aa604 | 1807 | X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX - |
jmitc91516 | 0:9140ec6aa604 | 1808 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset - |
jmitc91516 | 0:9140ec6aa604 | 1809 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset - 1, |
jmitc91516 | 0:9140ec6aa604 | 1810 | Y1 + BarMarkerY + BarMarkerHeight - 1, |
jmitc91516 | 0:9140ec6aa604 | 1811 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1812 | sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor); |
jmitc91516 | 0:9140ec6aa604 | 1813 | break; |
jmitc91516 | 0:9140ec6aa604 | 1814 | } |
jmitc91516 | 0:9140ec6aa604 | 1815 | |
jmitc91516 | 0:9140ec6aa604 | 1816 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1817 | sgl.CurItem.ClipRectX1 = RemClippingX1; |
jmitc91516 | 0:9140ec6aa604 | 1818 | sgl.CurItem.ClipRectY1 = RemClippingY1; |
jmitc91516 | 0:9140ec6aa604 | 1819 | sgl.CurItem.ClipRectX2 = RemClippingX2; |
jmitc91516 | 0:9140ec6aa604 | 1820 | sgl.CurItem.ClipRectY2 = RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1821 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1822 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1823 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1824 | } |
jmitc91516 | 0:9140ec6aa604 | 1825 | } |
jmitc91516 | 0:9140ec6aa604 | 1826 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1827 | |
jmitc91516 | 0:9140ec6aa604 | 1828 | #ifndef GuiConst_SCROLLITEM_INDICATOR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1829 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType != GuiLib_INDICATOR_NONE) |
jmitc91516 | 0:9140ec6aa604 | 1830 | { |
jmitc91516 | 0:9140ec6aa604 | 1831 | SX1 = sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionX; |
jmitc91516 | 0:9140ec6aa604 | 1832 | SY1 = sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionY; |
jmitc91516 | 0:9140ec6aa604 | 1833 | X1 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerLeftOffset; |
jmitc91516 | 0:9140ec6aa604 | 1834 | Y1 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTopOffset; |
jmitc91516 | 0:9140ec6aa604 | 1835 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1836 | SX2 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX - 1; |
jmitc91516 | 0:9140ec6aa604 | 1837 | SY2 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY - 1; |
jmitc91516 | 0:9140ec6aa604 | 1838 | X2 = SX2 - sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerRightOffset; |
jmitc91516 | 0:9140ec6aa604 | 1839 | Y2 = SY2 - sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBottomOffset; |
jmitc91516 | 0:9140ec6aa604 | 1840 | RemClippingX1 = sgl.CurItem.ClipRectX1; |
jmitc91516 | 0:9140ec6aa604 | 1841 | RemClippingY1 = sgl.CurItem.ClipRectY1; |
jmitc91516 | 0:9140ec6aa604 | 1842 | RemClippingX2 = sgl.CurItem.ClipRectX2; |
jmitc91516 | 0:9140ec6aa604 | 1843 | RemClippingY2 = sgl.CurItem.ClipRectY2; |
jmitc91516 | 0:9140ec6aa604 | 1844 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, SX1, SX2); |
jmitc91516 | 0:9140ec6aa604 | 1845 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, SY1, SY2); |
jmitc91516 | 0:9140ec6aa604 | 1846 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, SX1, SX2); |
jmitc91516 | 0:9140ec6aa604 | 1847 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, SY1, SY2); |
jmitc91516 | 0:9140ec6aa604 | 1848 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1849 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1850 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1851 | |
jmitc91516 | 0:9140ec6aa604 | 1852 | StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorStructIndex; |
jmitc91516 | 0:9140ec6aa604 | 1853 | if (StructToCallIndex != 0xFFFF) |
jmitc91516 | 0:9140ec6aa604 | 1854 | { |
jmitc91516 | 0:9140ec6aa604 | 1855 | ScrollBox_ShowBarBlock( |
jmitc91516 | 0:9140ec6aa604 | 1856 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1857 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor, |
jmitc91516 | 0:9140ec6aa604 | 1858 | 0, |
jmitc91516 | 0:9140ec6aa604 | 1859 | SX1, |
jmitc91516 | 0:9140ec6aa604 | 1860 | SY1, |
jmitc91516 | 0:9140ec6aa604 | 1861 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX, |
jmitc91516 | 0:9140ec6aa604 | 1862 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY); |
jmitc91516 | 0:9140ec6aa604 | 1863 | |
jmitc91516 | 0:9140ec6aa604 | 1864 | sgl.DisplayLevel++; |
jmitc91516 | 0:9140ec6aa604 | 1865 | memcpy(&sgl.CurItem, |
jmitc91516 | 0:9140ec6aa604 | 1866 | &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem, |
jmitc91516 | 0:9140ec6aa604 | 1867 | sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1868 | sgl.CurItem.RX = SX1; |
jmitc91516 | 0:9140ec6aa604 | 1869 | sgl.CurItem.RY = SY1; |
jmitc91516 | 0:9140ec6aa604 | 1870 | StructToCall = (GuiLib_StructPtr) |
jmitc91516 | 0:9140ec6aa604 | 1871 | #ifdef GuiConst_REMOTE_STRUCT_DATA |
jmitc91516 | 0:9140ec6aa604 | 1872 | GetRemoteStructData(StructToCallIndex); |
jmitc91516 | 0:9140ec6aa604 | 1873 | #else |
jmitc91516 | 0:9140ec6aa604 | 1874 | (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]); |
jmitc91516 | 0:9140ec6aa604 | 1875 | #endif |
jmitc91516 | 0:9140ec6aa604 | 1876 | DrawStructure(StructToCall, GuiLib_COL_INVERT_OFF); |
jmitc91516 | 0:9140ec6aa604 | 1877 | ResetLayerBufPtr(); |
jmitc91516 | 0:9140ec6aa604 | 1878 | sgl.DisplayLevel--; |
jmitc91516 | 0:9140ec6aa604 | 1879 | } |
jmitc91516 | 0:9140ec6aa604 | 1880 | else |
jmitc91516 | 0:9140ec6aa604 | 1881 | ScrollBox_ShowBarBlock( |
jmitc91516 | 0:9140ec6aa604 | 1882 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1883 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor, |
jmitc91516 | 0:9140ec6aa604 | 1884 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorThickness, |
jmitc91516 | 0:9140ec6aa604 | 1885 | SX1, |
jmitc91516 | 0:9140ec6aa604 | 1886 | SY1, |
jmitc91516 | 0:9140ec6aa604 | 1887 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX, |
jmitc91516 | 0:9140ec6aa604 | 1888 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY); |
jmitc91516 | 0:9140ec6aa604 | 1889 | |
jmitc91516 | 0:9140ec6aa604 | 1890 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1891 | sgl.CurItem.ClipRectX1 = RemClippingX1; |
jmitc91516 | 0:9140ec6aa604 | 1892 | sgl.CurItem.ClipRectY1 = RemClippingY1; |
jmitc91516 | 0:9140ec6aa604 | 1893 | sgl.CurItem.ClipRectX2 = RemClippingX2; |
jmitc91516 | 0:9140ec6aa604 | 1894 | sgl.CurItem.ClipRectY2 = RemClippingY2; |
jmitc91516 | 0:9140ec6aa604 | 1895 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1896 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1897 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1898 | |
jmitc91516 | 0:9140ec6aa604 | 1899 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine >= 0) && |
jmitc91516 | 0:9140ec6aa604 | 1900 | (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine >= |
jmitc91516 | 0:9140ec6aa604 | 1901 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) && |
jmitc91516 | 0:9140ec6aa604 | 1902 | (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine < |
jmitc91516 | 0:9140ec6aa604 | 1903 | (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 1904 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines))) |
jmitc91516 | 0:9140ec6aa604 | 1905 | { |
jmitc91516 | 0:9140ec6aa604 | 1906 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1907 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, X1, X2); |
jmitc91516 | 0:9140ec6aa604 | 1908 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, Y1, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1909 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, X1, X2); |
jmitc91516 | 0:9140ec6aa604 | 1910 | GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, Y1, Y2); |
jmitc91516 | 0:9140ec6aa604 | 1911 | GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 1912 | sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 1913 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 1914 | |
jmitc91516 | 0:9140ec6aa604 | 1915 | switch (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType) |
jmitc91516 | 0:9140ec6aa604 | 1916 | { |
jmitc91516 | 0:9140ec6aa604 | 1917 | case GuiLib_MARKER_ICON: |
jmitc91516 | 0:9140ec6aa604 | 1918 | sgl.CurFont = (GuiLib_FontRecPtr)ReadWord(GuiFont_FontList[ |
jmitc91516 | 0:9140ec6aa604 | 1919 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconFont]); |
jmitc91516 | 0:9140ec6aa604 | 1920 | sgl.CurItem.X1 = |
jmitc91516 | 0:9140ec6aa604 | 1921 | X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetX; |
jmitc91516 | 0:9140ec6aa604 | 1922 | sgl.CurItem.Y1 = |
jmitc91516 | 0:9140ec6aa604 | 1923 | Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetY + |
jmitc91516 | 0:9140ec6aa604 | 1924 | sgl.CurFont->BaseLine + |
jmitc91516 | 0:9140ec6aa604 | 1925 | sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset * |
jmitc91516 | 0:9140ec6aa604 | 1926 | (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine - |
jmitc91516 | 0:9140ec6aa604 | 1927 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine); |
jmitc91516 | 0:9140ec6aa604 | 1928 | sgl.CurItem.TextPar[0].FontIndex = |
jmitc91516 | 0:9140ec6aa604 | 1929 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconFont; |
jmitc91516 | 0:9140ec6aa604 | 1930 | sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT; |
jmitc91516 | 0:9140ec6aa604 | 1931 | sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF; |
jmitc91516 | 0:9140ec6aa604 | 1932 | sgl.CurItem.TextPar[0].BitFlags = 0; |
jmitc91516 | 0:9140ec6aa604 | 1933 | sgl.CurItem.TextPar[0].BackBoxSizeX = 0; |
jmitc91516 | 0:9140ec6aa604 | 1934 | sgl.CurItem.TextPar[0].BackBorderPixels = 0; |
jmitc91516 | 0:9140ec6aa604 | 1935 | DrawText(sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorIconPtr, 1, 0, |
jmitc91516 | 0:9140ec6aa604 | 1936 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor, |
jmitc91516 | 0:9140ec6aa604 | 1937 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor, |
jmitc91516 | 0:9140ec6aa604 | 1938 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTransparent); |
jmitc91516 | 0:9140ec6aa604 | 1939 | break; |
jmitc91516 | 0:9140ec6aa604 | 1940 | |
jmitc91516 | 0:9140ec6aa604 | 1941 | case GuiLib_MARKER_BITMAP: |
jmitc91516 | 0:9140ec6aa604 | 1942 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent) |
jmitc91516 | 0:9140ec6aa604 | 1943 | BackColor = |
jmitc91516 | 0:9140ec6aa604 | 1944 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapTranspColor; |
jmitc91516 | 0:9140ec6aa604 | 1945 | else |
jmitc91516 | 0:9140ec6aa604 | 1946 | BackColor = -1; |
jmitc91516 | 0:9140ec6aa604 | 1947 | GuiLib_ShowBitmap( |
jmitc91516 | 0:9140ec6aa604 | 1948 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIndex, |
jmitc91516 | 0:9140ec6aa604 | 1949 | X1, Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset * |
jmitc91516 | 0:9140ec6aa604 | 1950 | (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine - |
jmitc91516 | 0:9140ec6aa604 | 1951 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine), BackColor); |
jmitc91516 | 0:9140ec6aa604 | 1952 | break; |
jmitc91516 | 0:9140ec6aa604 | 1953 | } |
jmitc91516 | 0:9140ec6aa604 | 1954 | } |
jmitc91516 | 0:9140ec6aa604 | 1955 | } |
jmitc91516 | 0:9140ec6aa604 | 1956 | #endif // GuiConst_SCROLLITEM_INDICATOR_NONE |
jmitc91516 | 0:9140ec6aa604 | 1957 | |
jmitc91516 | 0:9140ec6aa604 | 1958 | memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1959 | |
jmitc91516 | 0:9140ec6aa604 | 1960 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 1961 | } |
jmitc91516 | 0:9140ec6aa604 | 1962 | |
jmitc91516 | 0:9140ec6aa604 | 1963 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1964 | GuiConst_INT8U GuiLib_ScrollBox_RedrawLine( |
jmitc91516 | 0:9140ec6aa604 | 1965 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 1966 | GuiConst_INT16U ScrollLine) |
jmitc91516 | 0:9140ec6aa604 | 1967 | { |
jmitc91516 | 0:9140ec6aa604 | 1968 | GuiLib_ItemRec RemCurItem; |
jmitc91516 | 0:9140ec6aa604 | 1969 | |
jmitc91516 | 0:9140ec6aa604 | 1970 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 1971 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 1972 | (ScrollLine > (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1)) || |
jmitc91516 | 0:9140ec6aa604 | 1973 | (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc == 0)) |
jmitc91516 | 0:9140ec6aa604 | 1974 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 1975 | |
jmitc91516 | 0:9140ec6aa604 | 1976 | memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1977 | sgl.GlobalScrollBoxIndex = ScrollBoxIndex; |
jmitc91516 | 0:9140ec6aa604 | 1978 | |
jmitc91516 | 0:9140ec6aa604 | 1979 | ScrollBox_DrawScrollLine(ScrollBoxIndex, ScrollLine); |
jmitc91516 | 0:9140ec6aa604 | 1980 | |
jmitc91516 | 0:9140ec6aa604 | 1981 | memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 1982 | |
jmitc91516 | 0:9140ec6aa604 | 1983 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 1984 | } |
jmitc91516 | 0:9140ec6aa604 | 1985 | |
jmitc91516 | 0:9140ec6aa604 | 1986 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 1987 | GuiConst_INT8U GuiLib_ScrollBox_Close( |
jmitc91516 | 0:9140ec6aa604 | 1988 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 1989 | { |
jmitc91516 | 0:9140ec6aa604 | 1990 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 1991 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 1992 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 1993 | |
jmitc91516 | 0:9140ec6aa604 | 1994 | sgl.ScrollBoxesAry[ScrollBoxIndex].InUse = GuiLib_SCROLL_STRUCTURE_READ; |
jmitc91516 | 0:9140ec6aa604 | 1995 | |
jmitc91516 | 0:9140ec6aa604 | 1996 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 1997 | } |
jmitc91516 | 0:9140ec6aa604 | 1998 | |
jmitc91516 | 0:9140ec6aa604 | 1999 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2000 | GuiConst_INT8U GuiLib_ScrollBox_Down( |
jmitc91516 | 0:9140ec6aa604 | 2001 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 2002 | { |
jmitc91516 | 0:9140ec6aa604 | 2003 | GuiConst_INT16U ScrollBottomLine; |
jmitc91516 | 0:9140ec6aa604 | 2004 | GuiConst_INT16S RemScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2005 | GuiConst_INT16S RemMarkerStartLine; |
jmitc91516 | 0:9140ec6aa604 | 2006 | |
jmitc91516 | 0:9140ec6aa604 | 2007 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2008 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 2009 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2010 | |
jmitc91516 | 0:9140ec6aa604 | 2011 | RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2012 | RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 2013 | |
jmitc91516 | 0:9140ec6aa604 | 2014 | ScrollBottomLine = (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 2015 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1); |
jmitc91516 | 0:9140ec6aa604 | 2016 | |
jmitc91516 | 0:9140ec6aa604 | 2017 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType) |
jmitc91516 | 0:9140ec6aa604 | 2018 | { |
jmitc91516 | 0:9140ec6aa604 | 2019 | if (ScrollBottomLine >= (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1)) |
jmitc91516 | 0:9140ec6aa604 | 2020 | { |
jmitc91516 | 0:9140ec6aa604 | 2021 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1) |
jmitc91516 | 0:9140ec6aa604 | 2022 | #ifdef GuiConst_SCROLL_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 2023 | || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2) |
jmitc91516 | 0:9140ec6aa604 | 2024 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2025 | ) |
jmitc91516 | 0:9140ec6aa604 | 2026 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0; |
jmitc91516 | 0:9140ec6aa604 | 2027 | } |
jmitc91516 | 0:9140ec6aa604 | 2028 | else |
jmitc91516 | 0:9140ec6aa604 | 2029 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine++; |
jmitc91516 | 0:9140ec6aa604 | 2030 | } |
jmitc91516 | 0:9140ec6aa604 | 2031 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0) |
jmitc91516 | 0:9140ec6aa604 | 2032 | { |
jmitc91516 | 0:9140ec6aa604 | 2033 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 2034 | { |
jmitc91516 | 0:9140ec6aa604 | 2035 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == |
jmitc91516 | 0:9140ec6aa604 | 2036 | (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1)) |
jmitc91516 | 0:9140ec6aa604 | 2037 | { |
jmitc91516 | 0:9140ec6aa604 | 2038 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1) |
jmitc91516 | 0:9140ec6aa604 | 2039 | #ifdef GuiConst_SCROLL_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 2040 | || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2) |
jmitc91516 | 0:9140ec6aa604 | 2041 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2042 | ) |
jmitc91516 | 0:9140ec6aa604 | 2043 | { |
jmitc91516 | 0:9140ec6aa604 | 2044 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0; |
jmitc91516 | 0:9140ec6aa604 | 2045 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = 0; |
jmitc91516 | 0:9140ec6aa604 | 2046 | } |
jmitc91516 | 0:9140ec6aa604 | 2047 | } |
jmitc91516 | 0:9140ec6aa604 | 2048 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] < |
jmitc91516 | 0:9140ec6aa604 | 2049 | ScrollBottomLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs) |
jmitc91516 | 0:9140ec6aa604 | 2050 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]++; |
jmitc91516 | 0:9140ec6aa604 | 2051 | else |
jmitc91516 | 0:9140ec6aa604 | 2052 | { |
jmitc91516 | 0:9140ec6aa604 | 2053 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine++; |
jmitc91516 | 0:9140ec6aa604 | 2054 | GuiLib_LIMIT_MAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, |
jmitc91516 | 0:9140ec6aa604 | 2055 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2056 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines); |
jmitc91516 | 0:9140ec6aa604 | 2057 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]++; |
jmitc91516 | 0:9140ec6aa604 | 2058 | } |
jmitc91516 | 0:9140ec6aa604 | 2059 | } |
jmitc91516 | 0:9140ec6aa604 | 2060 | else |
jmitc91516 | 0:9140ec6aa604 | 2061 | { |
jmitc91516 | 0:9140ec6aa604 | 2062 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == |
jmitc91516 | 0:9140ec6aa604 | 2063 | (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1)) |
jmitc91516 | 0:9140ec6aa604 | 2064 | { |
jmitc91516 | 0:9140ec6aa604 | 2065 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1) |
jmitc91516 | 0:9140ec6aa604 | 2066 | #ifdef GuiConst_SCROLL_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 2067 | || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2) |
jmitc91516 | 0:9140ec6aa604 | 2068 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2069 | ) |
jmitc91516 | 0:9140ec6aa604 | 2070 | { |
jmitc91516 | 0:9140ec6aa604 | 2071 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2072 | -sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 2073 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = 0; |
jmitc91516 | 0:9140ec6aa604 | 2074 | } |
jmitc91516 | 0:9140ec6aa604 | 2075 | } |
jmitc91516 | 0:9140ec6aa604 | 2076 | else |
jmitc91516 | 0:9140ec6aa604 | 2077 | { |
jmitc91516 | 0:9140ec6aa604 | 2078 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine++; |
jmitc91516 | 0:9140ec6aa604 | 2079 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]++; |
jmitc91516 | 0:9140ec6aa604 | 2080 | } |
jmitc91516 | 0:9140ec6aa604 | 2081 | } |
jmitc91516 | 0:9140ec6aa604 | 2082 | } |
jmitc91516 | 0:9140ec6aa604 | 2083 | |
jmitc91516 | 0:9140ec6aa604 | 2084 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 2085 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine)) |
jmitc91516 | 0:9140ec6aa604 | 2086 | { |
jmitc91516 | 0:9140ec6aa604 | 2087 | GuiLib_ScrollBox_Redraw(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 2088 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2089 | } |
jmitc91516 | 0:9140ec6aa604 | 2090 | else |
jmitc91516 | 0:9140ec6aa604 | 2091 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2092 | } |
jmitc91516 | 0:9140ec6aa604 | 2093 | |
jmitc91516 | 0:9140ec6aa604 | 2094 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2095 | GuiConst_INT8U GuiLib_ScrollBox_Up( |
jmitc91516 | 0:9140ec6aa604 | 2096 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 2097 | { |
jmitc91516 | 0:9140ec6aa604 | 2098 | GuiConst_INT16S RemScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2099 | GuiConst_INT16S RemMarkerStartLine; |
jmitc91516 | 0:9140ec6aa604 | 2100 | |
jmitc91516 | 0:9140ec6aa604 | 2101 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2102 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 2103 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2104 | |
jmitc91516 | 0:9140ec6aa604 | 2105 | RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2106 | RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 2107 | |
jmitc91516 | 0:9140ec6aa604 | 2108 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType) |
jmitc91516 | 0:9140ec6aa604 | 2109 | { |
jmitc91516 | 0:9140ec6aa604 | 2110 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine == 0) |
jmitc91516 | 0:9140ec6aa604 | 2111 | { |
jmitc91516 | 0:9140ec6aa604 | 2112 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1) |
jmitc91516 | 0:9140ec6aa604 | 2113 | #ifdef GuiConst_SCROLL_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 2114 | || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2) |
jmitc91516 | 0:9140ec6aa604 | 2115 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2116 | ) |
jmitc91516 | 0:9140ec6aa604 | 2117 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2118 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2119 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines; |
jmitc91516 | 0:9140ec6aa604 | 2120 | GuiLib_LIMIT_MIN(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, 0); |
jmitc91516 | 0:9140ec6aa604 | 2121 | } |
jmitc91516 | 0:9140ec6aa604 | 2122 | else |
jmitc91516 | 0:9140ec6aa604 | 2123 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine--; |
jmitc91516 | 0:9140ec6aa604 | 2124 | } |
jmitc91516 | 0:9140ec6aa604 | 2125 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0) |
jmitc91516 | 0:9140ec6aa604 | 2126 | { |
jmitc91516 | 0:9140ec6aa604 | 2127 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 2128 | { |
jmitc91516 | 0:9140ec6aa604 | 2129 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == 0) |
jmitc91516 | 0:9140ec6aa604 | 2130 | { |
jmitc91516 | 0:9140ec6aa604 | 2131 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1) |
jmitc91516 | 0:9140ec6aa604 | 2132 | #ifdef GuiConst_SCROLL_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 2133 | || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2) |
jmitc91516 | 0:9140ec6aa604 | 2134 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2135 | ) |
jmitc91516 | 0:9140ec6aa604 | 2136 | { |
jmitc91516 | 0:9140ec6aa604 | 2137 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2138 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2139 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines; |
jmitc91516 | 0:9140ec6aa604 | 2140 | GuiLib_LIMIT_MIN(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, 0); |
jmitc91516 | 0:9140ec6aa604 | 2141 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = |
jmitc91516 | 0:9140ec6aa604 | 2142 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1; |
jmitc91516 | 0:9140ec6aa604 | 2143 | } |
jmitc91516 | 0:9140ec6aa604 | 2144 | } |
jmitc91516 | 0:9140ec6aa604 | 2145 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] > |
jmitc91516 | 0:9140ec6aa604 | 2146 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 2147 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs) |
jmitc91516 | 0:9140ec6aa604 | 2148 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]--; |
jmitc91516 | 0:9140ec6aa604 | 2149 | else |
jmitc91516 | 0:9140ec6aa604 | 2150 | { |
jmitc91516 | 0:9140ec6aa604 | 2151 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine--; |
jmitc91516 | 0:9140ec6aa604 | 2152 | GuiLib_LIMIT_MIN(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, 0); |
jmitc91516 | 0:9140ec6aa604 | 2153 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]--; |
jmitc91516 | 0:9140ec6aa604 | 2154 | } |
jmitc91516 | 0:9140ec6aa604 | 2155 | } |
jmitc91516 | 0:9140ec6aa604 | 2156 | else |
jmitc91516 | 0:9140ec6aa604 | 2157 | { |
jmitc91516 | 0:9140ec6aa604 | 2158 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == 0) |
jmitc91516 | 0:9140ec6aa604 | 2159 | { |
jmitc91516 | 0:9140ec6aa604 | 2160 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1) |
jmitc91516 | 0:9140ec6aa604 | 2161 | #ifdef GuiConst_SCROLL_MODE_WRAP_AROUND |
jmitc91516 | 0:9140ec6aa604 | 2162 | || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2) |
jmitc91516 | 0:9140ec6aa604 | 2163 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2164 | ) |
jmitc91516 | 0:9140ec6aa604 | 2165 | { |
jmitc91516 | 0:9140ec6aa604 | 2166 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2167 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1 - |
jmitc91516 | 0:9140ec6aa604 | 2168 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 2169 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = |
jmitc91516 | 0:9140ec6aa604 | 2170 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1; |
jmitc91516 | 0:9140ec6aa604 | 2171 | } |
jmitc91516 | 0:9140ec6aa604 | 2172 | } |
jmitc91516 | 0:9140ec6aa604 | 2173 | else |
jmitc91516 | 0:9140ec6aa604 | 2174 | { |
jmitc91516 | 0:9140ec6aa604 | 2175 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine--; |
jmitc91516 | 0:9140ec6aa604 | 2176 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]--; |
jmitc91516 | 0:9140ec6aa604 | 2177 | } |
jmitc91516 | 0:9140ec6aa604 | 2178 | } |
jmitc91516 | 0:9140ec6aa604 | 2179 | } |
jmitc91516 | 0:9140ec6aa604 | 2180 | |
jmitc91516 | 0:9140ec6aa604 | 2181 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 2182 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine)) |
jmitc91516 | 0:9140ec6aa604 | 2183 | { |
jmitc91516 | 0:9140ec6aa604 | 2184 | GuiLib_ScrollBox_Redraw(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 2185 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2186 | } |
jmitc91516 | 0:9140ec6aa604 | 2187 | else |
jmitc91516 | 0:9140ec6aa604 | 2188 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2189 | } |
jmitc91516 | 0:9140ec6aa604 | 2190 | |
jmitc91516 | 0:9140ec6aa604 | 2191 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2192 | GuiConst_INT8U GuiLib_ScrollBox_Home( |
jmitc91516 | 0:9140ec6aa604 | 2193 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 2194 | { |
jmitc91516 | 0:9140ec6aa604 | 2195 | GuiConst_INT16S RemScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2196 | GuiConst_INT16S RemMarkerStartLine; |
jmitc91516 | 0:9140ec6aa604 | 2197 | |
jmitc91516 | 0:9140ec6aa604 | 2198 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2199 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 2200 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2201 | |
jmitc91516 | 0:9140ec6aa604 | 2202 | RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2203 | RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 2204 | |
jmitc91516 | 0:9140ec6aa604 | 2205 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType) |
jmitc91516 | 0:9140ec6aa604 | 2206 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0; |
jmitc91516 | 0:9140ec6aa604 | 2207 | else |
jmitc91516 | 0:9140ec6aa604 | 2208 | { |
jmitc91516 | 0:9140ec6aa604 | 2209 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 2210 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0; |
jmitc91516 | 0:9140ec6aa604 | 2211 | else |
jmitc91516 | 0:9140ec6aa604 | 2212 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2213 | -sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 2214 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0) |
jmitc91516 | 0:9140ec6aa604 | 2215 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = 0; |
jmitc91516 | 0:9140ec6aa604 | 2216 | } |
jmitc91516 | 0:9140ec6aa604 | 2217 | |
jmitc91516 | 0:9140ec6aa604 | 2218 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 2219 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine)) |
jmitc91516 | 0:9140ec6aa604 | 2220 | { |
jmitc91516 | 0:9140ec6aa604 | 2221 | GuiLib_ScrollBox_Redraw(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 2222 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2223 | } |
jmitc91516 | 0:9140ec6aa604 | 2224 | else |
jmitc91516 | 0:9140ec6aa604 | 2225 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2226 | } |
jmitc91516 | 0:9140ec6aa604 | 2227 | |
jmitc91516 | 0:9140ec6aa604 | 2228 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2229 | GuiConst_INT8U GuiLib_ScrollBox_End( |
jmitc91516 | 0:9140ec6aa604 | 2230 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 2231 | { |
jmitc91516 | 0:9140ec6aa604 | 2232 | GuiConst_INT16S RemScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2233 | GuiConst_INT16S RemMarkerStartLine; |
jmitc91516 | 0:9140ec6aa604 | 2234 | |
jmitc91516 | 0:9140ec6aa604 | 2235 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2236 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 2237 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2238 | |
jmitc91516 | 0:9140ec6aa604 | 2239 | RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2240 | RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 2241 | |
jmitc91516 | 0:9140ec6aa604 | 2242 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType) |
jmitc91516 | 0:9140ec6aa604 | 2243 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = GuiLib_GET_MAX( |
jmitc91516 | 0:9140ec6aa604 | 2244 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2245 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines, 0); |
jmitc91516 | 0:9140ec6aa604 | 2246 | else |
jmitc91516 | 0:9140ec6aa604 | 2247 | { |
jmitc91516 | 0:9140ec6aa604 | 2248 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 2249 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = GuiLib_GET_MAX( |
jmitc91516 | 0:9140ec6aa604 | 2250 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2251 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines, 0); |
jmitc91516 | 0:9140ec6aa604 | 2252 | else |
jmitc91516 | 0:9140ec6aa604 | 2253 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2254 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1 - |
jmitc91516 | 0:9140ec6aa604 | 2255 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 2256 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0) |
jmitc91516 | 0:9140ec6aa604 | 2257 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = |
jmitc91516 | 0:9140ec6aa604 | 2258 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1; |
jmitc91516 | 0:9140ec6aa604 | 2259 | } |
jmitc91516 | 0:9140ec6aa604 | 2260 | |
jmitc91516 | 0:9140ec6aa604 | 2261 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 2262 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine)) |
jmitc91516 | 0:9140ec6aa604 | 2263 | { |
jmitc91516 | 0:9140ec6aa604 | 2264 | GuiLib_ScrollBox_Redraw(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 2265 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2266 | } |
jmitc91516 | 0:9140ec6aa604 | 2267 | else |
jmitc91516 | 0:9140ec6aa604 | 2268 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2269 | } |
jmitc91516 | 0:9140ec6aa604 | 2270 | |
jmitc91516 | 0:9140ec6aa604 | 2271 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2272 | GuiConst_INT8U GuiLib_ScrollBox_To_Line( |
jmitc91516 | 0:9140ec6aa604 | 2273 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 2274 | GuiConst_INT16S NewLine) |
jmitc91516 | 0:9140ec6aa604 | 2275 | { |
jmitc91516 | 0:9140ec6aa604 | 2276 | GuiConst_INT16S RemScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2277 | GuiConst_INT16S RemMarkerStartLine; |
jmitc91516 | 0:9140ec6aa604 | 2278 | GuiConst_INT16S TopLine; |
jmitc91516 | 0:9140ec6aa604 | 2279 | GuiConst_INT16S LowerLimtA = 0; |
jmitc91516 | 0:9140ec6aa604 | 2280 | |
jmitc91516 | 0:9140ec6aa604 | 2281 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2282 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 2283 | (NewLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines)) |
jmitc91516 | 0:9140ec6aa604 | 2284 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 2285 | |
jmitc91516 | 0:9140ec6aa604 | 2286 | RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine; |
jmitc91516 | 0:9140ec6aa604 | 2287 | RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]; |
jmitc91516 | 0:9140ec6aa604 | 2288 | |
jmitc91516 | 0:9140ec6aa604 | 2289 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType) |
jmitc91516 | 0:9140ec6aa604 | 2290 | { |
jmitc91516 | 0:9140ec6aa604 | 2291 | TopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2292 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines; |
jmitc91516 | 0:9140ec6aa604 | 2293 | GuiLib_LIMIT_MIN(TopLine, 0); |
jmitc91516 | 0:9140ec6aa604 | 2294 | if (NewLine > TopLine) |
jmitc91516 | 0:9140ec6aa604 | 2295 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = TopLine; |
jmitc91516 | 0:9140ec6aa604 | 2296 | else |
jmitc91516 | 0:9140ec6aa604 | 2297 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = NewLine; |
jmitc91516 | 0:9140ec6aa604 | 2298 | } |
jmitc91516 | 0:9140ec6aa604 | 2299 | else if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 2300 | { |
jmitc91516 | 0:9140ec6aa604 | 2301 | if ((NewLine != -1) && |
jmitc91516 | 0:9140ec6aa604 | 2302 | ((NewLine < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 2303 | (NewLine >= (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine + |
jmitc91516 | 0:9140ec6aa604 | 2304 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines)))) |
jmitc91516 | 0:9140ec6aa604 | 2305 | { |
jmitc91516 | 0:9140ec6aa604 | 2306 | if (NewLine > (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2307 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines + |
jmitc91516 | 0:9140ec6aa604 | 2308 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs)) |
jmitc91516 | 0:9140ec6aa604 | 2309 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2310 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2311 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines; |
jmitc91516 | 0:9140ec6aa604 | 2312 | else |
jmitc91516 | 0:9140ec6aa604 | 2313 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2314 | NewLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 2315 | |
jmitc91516 | 0:9140ec6aa604 | 2316 | GuiLib_LIMIT_MINMAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, |
jmitc91516 | 0:9140ec6aa604 | 2317 | NewLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines + 1, |
jmitc91516 | 0:9140ec6aa604 | 2318 | NewLine + sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1); |
jmitc91516 | 0:9140ec6aa604 | 2319 | GuiLib_LIMIT_MINMAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, LowerLimtA, |
jmitc91516 | 0:9140ec6aa604 | 2320 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2321 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines); |
jmitc91516 | 0:9140ec6aa604 | 2322 | } |
jmitc91516 | 0:9140ec6aa604 | 2323 | } |
jmitc91516 | 0:9140ec6aa604 | 2324 | else |
jmitc91516 | 0:9140ec6aa604 | 2325 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2326 | NewLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs; |
jmitc91516 | 0:9140ec6aa604 | 2327 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = NewLine; |
jmitc91516 | 0:9140ec6aa604 | 2328 | |
jmitc91516 | 0:9140ec6aa604 | 2329 | if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) || |
jmitc91516 | 0:9140ec6aa604 | 2330 | (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine)) |
jmitc91516 | 0:9140ec6aa604 | 2331 | { |
jmitc91516 | 0:9140ec6aa604 | 2332 | GuiLib_ScrollBox_Redraw(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 2333 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2334 | } |
jmitc91516 | 0:9140ec6aa604 | 2335 | else |
jmitc91516 | 0:9140ec6aa604 | 2336 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2337 | } |
jmitc91516 | 0:9140ec6aa604 | 2338 | |
jmitc91516 | 0:9140ec6aa604 | 2339 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2340 | GuiConst_INT8U GuiLib_ScrollBox_SetLineMarker( |
jmitc91516 | 0:9140ec6aa604 | 2341 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 2342 | GuiConst_INT16U ScrollLineMarkerIndex, |
jmitc91516 | 0:9140ec6aa604 | 2343 | GuiConst_INT16S StartLine, |
jmitc91516 | 0:9140ec6aa604 | 2344 | GuiConst_INT16U Size) |
jmitc91516 | 0:9140ec6aa604 | 2345 | { |
jmitc91516 | 0:9140ec6aa604 | 2346 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2347 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 2348 | (ScrollLineMarkerIndex >= GuiConst_SCROLLITEM_MARKERS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2349 | (StartLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines)) |
jmitc91516 | 0:9140ec6aa604 | 2350 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2351 | |
jmitc91516 | 0:9140ec6aa604 | 2352 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[ScrollLineMarkerIndex] = |
jmitc91516 | 0:9140ec6aa604 | 2353 | GuiLib_GET_MINMAX(StartLine, -1, |
jmitc91516 | 0:9140ec6aa604 | 2354 | (GuiConst_INT16S)sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1); |
jmitc91516 | 0:9140ec6aa604 | 2355 | if ((ScrollLineMarkerIndex == 0) && (Size > 1)) |
jmitc91516 | 0:9140ec6aa604 | 2356 | Size = 1; |
jmitc91516 | 0:9140ec6aa604 | 2357 | sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[ScrollLineMarkerIndex] = Size; |
jmitc91516 | 0:9140ec6aa604 | 2358 | if (ScrollLineMarkerIndex == 0) |
jmitc91516 | 0:9140ec6aa604 | 2359 | ScrollBox_SetTopLine(ScrollBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 2360 | |
jmitc91516 | 0:9140ec6aa604 | 2361 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2362 | } |
jmitc91516 | 0:9140ec6aa604 | 2363 | |
jmitc91516 | 0:9140ec6aa604 | 2364 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2365 | GuiConst_INT16S GuiLib_ScrollBox_GetActiveLine( |
jmitc91516 | 0:9140ec6aa604 | 2366 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 2367 | GuiConst_INT16U ScrollLineMarkerIndex) |
jmitc91516 | 0:9140ec6aa604 | 2368 | { |
jmitc91516 | 0:9140ec6aa604 | 2369 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2370 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 2371 | (ScrollLineMarkerIndex >= GuiConst_SCROLLITEM_MARKERS_MAX)) |
jmitc91516 | 0:9140ec6aa604 | 2372 | return (-1); |
jmitc91516 | 0:9140ec6aa604 | 2373 | |
jmitc91516 | 0:9140ec6aa604 | 2374 | return (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[ScrollLineMarkerIndex]); |
jmitc91516 | 0:9140ec6aa604 | 2375 | } |
jmitc91516 | 0:9140ec6aa604 | 2376 | |
jmitc91516 | 0:9140ec6aa604 | 2377 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2378 | GuiConst_INT16S GuiLib_ScrollBox_GetActiveLineCount( |
jmitc91516 | 0:9140ec6aa604 | 2379 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 2380 | GuiConst_INT16U ScrollLineMarkerIndex) |
jmitc91516 | 0:9140ec6aa604 | 2381 | { |
jmitc91516 | 0:9140ec6aa604 | 2382 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2383 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 2384 | (ScrollLineMarkerIndex >= GuiConst_SCROLLITEM_MARKERS_MAX)) |
jmitc91516 | 0:9140ec6aa604 | 2385 | return (-1); |
jmitc91516 | 0:9140ec6aa604 | 2386 | |
jmitc91516 | 0:9140ec6aa604 | 2387 | return (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[ScrollLineMarkerIndex]); |
jmitc91516 | 0:9140ec6aa604 | 2388 | } |
jmitc91516 | 0:9140ec6aa604 | 2389 | |
jmitc91516 | 0:9140ec6aa604 | 2390 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2391 | GuiConst_INT8U GuiLib_ScrollBox_SetIndicator( |
jmitc91516 | 0:9140ec6aa604 | 2392 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 2393 | GuiConst_INT16S StartLine) |
jmitc91516 | 0:9140ec6aa604 | 2394 | { |
jmitc91516 | 0:9140ec6aa604 | 2395 | #ifdef GuiConst_SCROLLITEM_INDICATOR_NONE |
jmitc91516 | 0:9140ec6aa604 | 2396 | gl.Dummy1_8U = ScrollBoxIndex; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 2397 | gl.Dummy1_16S = StartLine; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 2398 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2399 | #else |
jmitc91516 | 0:9140ec6aa604 | 2400 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2401 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 2402 | (StartLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines)) |
jmitc91516 | 0:9140ec6aa604 | 2403 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2404 | |
jmitc91516 | 0:9140ec6aa604 | 2405 | sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine = GuiLib_GET_MINMAX( |
jmitc91516 | 0:9140ec6aa604 | 2406 | StartLine, -1, |
jmitc91516 | 0:9140ec6aa604 | 2407 | (GuiConst_INT16S)sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1); |
jmitc91516 | 0:9140ec6aa604 | 2408 | |
jmitc91516 | 0:9140ec6aa604 | 2409 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2410 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2411 | } |
jmitc91516 | 0:9140ec6aa604 | 2412 | |
jmitc91516 | 0:9140ec6aa604 | 2413 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2414 | GuiConst_INT8U GuiLib_ScrollBox_SetTopLine( |
jmitc91516 | 0:9140ec6aa604 | 2415 | GuiConst_INT8U ScrollBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 2416 | GuiConst_INT16S TopLine) |
jmitc91516 | 0:9140ec6aa604 | 2417 | { |
jmitc91516 | 0:9140ec6aa604 | 2418 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2419 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) || |
jmitc91516 | 0:9140ec6aa604 | 2420 | (TopLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines)) |
jmitc91516 | 0:9140ec6aa604 | 2421 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 2422 | |
jmitc91516 | 0:9140ec6aa604 | 2423 | if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) |
jmitc91516 | 0:9140ec6aa604 | 2424 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = |
jmitc91516 | 0:9140ec6aa604 | 2425 | GuiLib_GET_MINMAX(TopLine, 0, |
jmitc91516 | 0:9140ec6aa604 | 2426 | sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - |
jmitc91516 | 0:9140ec6aa604 | 2427 | sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines); |
jmitc91516 | 0:9140ec6aa604 | 2428 | |
jmitc91516 | 0:9140ec6aa604 | 2429 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 2430 | } |
jmitc91516 | 0:9140ec6aa604 | 2431 | |
jmitc91516 | 0:9140ec6aa604 | 2432 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2433 | GuiConst_INT16S GuiLib_ScrollBox_GetTopLine( |
jmitc91516 | 0:9140ec6aa604 | 2434 | GuiConst_INT8U ScrollBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 2435 | { |
jmitc91516 | 0:9140ec6aa604 | 2436 | if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 2437 | (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 2438 | return (-1); |
jmitc91516 | 0:9140ec6aa604 | 2439 | |
jmitc91516 | 0:9140ec6aa604 | 2440 | return (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine); |
jmitc91516 | 0:9140ec6aa604 | 2441 | } |
jmitc91516 | 0:9140ec6aa604 | 2442 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2443 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2444 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2445 | #endif // GuiConst_ITEM_SCROLLBOX_INUSE |
jmitc91516 | 0:9140ec6aa604 | 2446 | |
jmitc91516 | 0:9140ec6aa604 | 2447 | #ifdef GuiConst_ITEM_GRAPH_INUSE |
jmitc91516 | 0:9140ec6aa604 | 2448 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2449 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2450 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2451 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2452 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2453 | static void Graph_SetClipping( |
jmitc91516 | 0:9140ec6aa604 | 2454 | GuiConst_INT8U GraphIndex) |
jmitc91516 | 0:9140ec6aa604 | 2455 | { |
jmitc91516 | 0:9140ec6aa604 | 2456 | GuiLib_SetClipping(sgl.GraphAry[GraphIndex].GraphItem.ClipRectX1, |
jmitc91516 | 0:9140ec6aa604 | 2457 | sgl.GraphAry[GraphIndex].GraphItem.ClipRectY1, |
jmitc91516 | 0:9140ec6aa604 | 2458 | sgl.GraphAry[GraphIndex].GraphItem.ClipRectX2, |
jmitc91516 | 0:9140ec6aa604 | 2459 | sgl.GraphAry[GraphIndex].GraphItem.ClipRectY2); |
jmitc91516 | 0:9140ec6aa604 | 2460 | } |
jmitc91516 | 0:9140ec6aa604 | 2461 | |
jmitc91516 | 0:9140ec6aa604 | 2462 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2463 | static void Graph_ResetClipping(void) |
jmitc91516 | 0:9140ec6aa604 | 2464 | { |
jmitc91516 | 0:9140ec6aa604 | 2465 | GuiLib_ResetClipping(); |
jmitc91516 | 0:9140ec6aa604 | 2466 | } |
jmitc91516 | 0:9140ec6aa604 | 2467 | #endif // GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2468 | |
jmitc91516 | 0:9140ec6aa604 | 2469 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2470 | static void Graph_CalcScaleX( |
jmitc91516 | 0:9140ec6aa604 | 2471 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 2472 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 2473 | { |
jmitc91516 | 0:9140ec6aa604 | 2474 | GuiConst_INT32S D1,D2; |
jmitc91516 | 0:9140ec6aa604 | 2475 | |
jmitc91516 | 0:9140ec6aa604 | 2476 | D1 = (sgl.GraphAry[GraphIndex].GraphItem.X2 - |
jmitc91516 | 0:9140ec6aa604 | 2477 | sgl.GraphAry[GraphIndex].GraphItem.X1 - |
jmitc91516 | 0:9140ec6aa604 | 2478 | sgl.GraphAry[GraphIndex].OriginOffsetX); |
jmitc91516 | 0:9140ec6aa604 | 2479 | D1 = D1 * 10000; |
jmitc91516 | 0:9140ec6aa604 | 2480 | D2 = (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].NumbersMaxValue - |
jmitc91516 | 0:9140ec6aa604 | 2481 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].NumbersMinValue); |
jmitc91516 | 0:9140ec6aa604 | 2482 | D1 = D1/D2; |
jmitc91516 | 0:9140ec6aa604 | 2483 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale = D1; |
jmitc91516 | 0:9140ec6aa604 | 2484 | } |
jmitc91516 | 0:9140ec6aa604 | 2485 | |
jmitc91516 | 0:9140ec6aa604 | 2486 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2487 | static void Graph_CalcScaleY( |
jmitc91516 | 0:9140ec6aa604 | 2488 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 2489 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 2490 | { |
jmitc91516 | 0:9140ec6aa604 | 2491 | GuiConst_INT32S D1,D2; |
jmitc91516 | 0:9140ec6aa604 | 2492 | |
jmitc91516 | 0:9140ec6aa604 | 2493 | D1 = (sgl.GraphAry[GraphIndex].GraphItem.Y2 - |
jmitc91516 | 0:9140ec6aa604 | 2494 | sgl.GraphAry[GraphIndex].GraphItem.Y1- |
jmitc91516 | 0:9140ec6aa604 | 2495 | sgl.GraphAry[GraphIndex].OriginOffsetY); |
jmitc91516 | 0:9140ec6aa604 | 2496 | D1 = D1 * 10000; |
jmitc91516 | 0:9140ec6aa604 | 2497 | D2 = (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].NumbersMaxValue - |
jmitc91516 | 0:9140ec6aa604 | 2498 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].NumbersMinValue); |
jmitc91516 | 0:9140ec6aa604 | 2499 | D1 = D1/D2; |
jmitc91516 | 0:9140ec6aa604 | 2500 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale= D1; |
jmitc91516 | 0:9140ec6aa604 | 2501 | } |
jmitc91516 | 0:9140ec6aa604 | 2502 | |
jmitc91516 | 0:9140ec6aa604 | 2503 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2504 | static GuiConst_INT32S Graph_CalcNumbersMaxValue( |
jmitc91516 | 0:9140ec6aa604 | 2505 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 2506 | GuiConst_INT8U AxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 2507 | GuiConst_INT8U AxisType) |
jmitc91516 | 0:9140ec6aa604 | 2508 | { |
jmitc91516 | 0:9140ec6aa604 | 2509 | GuiConst_INT32S MV; |
jmitc91516 | 0:9140ec6aa604 | 2510 | |
jmitc91516 | 0:9140ec6aa604 | 2511 | MV = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersMaxValue; |
jmitc91516 | 0:9140ec6aa604 | 2512 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].TicksMinor) |
jmitc91516 | 0:9140ec6aa604 | 2513 | MV -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersAtEnd * |
jmitc91516 | 0:9140ec6aa604 | 2514 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2515 | else if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].TicksMajor) |
jmitc91516 | 0:9140ec6aa604 | 2516 | MV -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersAtEnd * |
jmitc91516 | 0:9140ec6aa604 | 2517 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2518 | return(MV); |
jmitc91516 | 0:9140ec6aa604 | 2519 | } |
jmitc91516 | 0:9140ec6aa604 | 2520 | |
jmitc91516 | 0:9140ec6aa604 | 2521 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2522 | static void Graph_DrawXAxis( |
jmitc91516 | 0:9140ec6aa604 | 2523 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 2524 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 2525 | { |
jmitc91516 | 0:9140ec6aa604 | 2526 | GuiConst_INT16S X, Y; |
jmitc91516 | 0:9140ec6aa604 | 2527 | GuiConst_INT16S DX, DY; |
jmitc91516 | 0:9140ec6aa604 | 2528 | GuiConst_INT32S TX, TY; |
jmitc91516 | 0:9140ec6aa604 | 2529 | #ifdef GuiConst_FLOAT_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2530 | double TDX; |
jmitc91516 | 0:9140ec6aa604 | 2531 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2532 | GuiConst_INT32S F; |
jmitc91516 | 0:9140ec6aa604 | 2533 | GuiConst_INT16S HW; |
jmitc91516 | 0:9140ec6aa604 | 2534 | GuiConst_INT32S MV; |
jmitc91516 | 0:9140ec6aa604 | 2535 | GuiConst_INT16U StrLen; |
jmitc91516 | 0:9140ec6aa604 | 2536 | GuiConst_INT16U I; |
jmitc91516 | 0:9140ec6aa604 | 2537 | GuiConst_INT8U Align; |
jmitc91516 | 0:9140ec6aa604 | 2538 | |
jmitc91516 | 0:9140ec6aa604 | 2539 | Y = sgl.GraphAry[GraphIndex].OrigoY + |
jmitc91516 | 0:9140ec6aa604 | 2540 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Offset; |
jmitc91516 | 0:9140ec6aa604 | 2541 | |
jmitc91516 | 0:9140ec6aa604 | 2542 | MV = Graph_CalcNumbersMaxValue(GraphIndex, AxisIndex, GuiLib_GRAPHAXIS_X); |
jmitc91516 | 0:9140ec6aa604 | 2543 | |
jmitc91516 | 0:9140ec6aa604 | 2544 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Line) |
jmitc91516 | 0:9140ec6aa604 | 2545 | { |
jmitc91516 | 0:9140ec6aa604 | 2546 | X = sgl.GraphAry[GraphIndex].GraphItem.X2 - |
jmitc91516 | 0:9140ec6aa604 | 2547 | sgl.GraphAry[GraphIndex].GraphItem.X1 + 1; |
jmitc91516 | 0:9140ec6aa604 | 2548 | for (I = 0; I < sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]; I++) |
jmitc91516 | 0:9140ec6aa604 | 2549 | if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].Offset < X) |
jmitc91516 | 0:9140ec6aa604 | 2550 | X = sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].Offset; |
jmitc91516 | 0:9140ec6aa604 | 2551 | X += sgl.GraphAry[GraphIndex].OriginOffsetX; |
jmitc91516 | 0:9140ec6aa604 | 2552 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2553 | LineNegative) |
jmitc91516 | 0:9140ec6aa604 | 2554 | GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1, |
jmitc91516 | 0:9140ec6aa604 | 2555 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2556 | sgl.GraphAry[GraphIndex].GraphItem.X1 + X - 1, |
jmitc91516 | 0:9140ec6aa604 | 2557 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2558 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2559 | if ((sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] > 1) && |
jmitc91516 | 0:9140ec6aa604 | 2560 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2561 | LineBetweenAxes) |
jmitc91516 | 0:9140ec6aa604 | 2562 | GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1 + X - 1, |
jmitc91516 | 0:9140ec6aa604 | 2563 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2564 | sgl.GraphAry[GraphIndex].GraphItem.X1 + |
jmitc91516 | 0:9140ec6aa604 | 2565 | sgl.GraphAry[GraphIndex].OriginOffsetX, |
jmitc91516 | 0:9140ec6aa604 | 2566 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2567 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2568 | GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1 + |
jmitc91516 | 0:9140ec6aa604 | 2569 | sgl.GraphAry[GraphIndex].OriginOffsetX, |
jmitc91516 | 0:9140ec6aa604 | 2570 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2571 | sgl.GraphAry[GraphIndex].GraphItem.X2, |
jmitc91516 | 0:9140ec6aa604 | 2572 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2573 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2574 | } |
jmitc91516 | 0:9140ec6aa604 | 2575 | |
jmitc91516 | 0:9140ec6aa604 | 2576 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Arrow) |
jmitc91516 | 0:9140ec6aa604 | 2577 | { |
jmitc91516 | 0:9140ec6aa604 | 2578 | DX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2579 | ArrowLength; |
jmitc91516 | 0:9140ec6aa604 | 2580 | HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2581 | ArrowWidth / 2; |
jmitc91516 | 0:9140ec6aa604 | 2582 | for (DY = -HW; DY <= HW; DY++) |
jmitc91516 | 0:9140ec6aa604 | 2583 | GuiLib_Line(sgl.GraphAry[GraphIndex].GraphItem.X2 - DX, |
jmitc91516 | 0:9140ec6aa604 | 2584 | Y + DY, |
jmitc91516 | 0:9140ec6aa604 | 2585 | sgl.GraphAry[GraphIndex].GraphItem.X2, |
jmitc91516 | 0:9140ec6aa604 | 2586 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2587 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2588 | } |
jmitc91516 | 0:9140ec6aa604 | 2589 | |
jmitc91516 | 0:9140ec6aa604 | 2590 | Graph_CalcScaleX(GraphIndex, AxisIndex); |
jmitc91516 | 0:9140ec6aa604 | 2591 | |
jmitc91516 | 0:9140ec6aa604 | 2592 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].TicksMajor) |
jmitc91516 | 0:9140ec6aa604 | 2593 | { |
jmitc91516 | 0:9140ec6aa604 | 2594 | HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2595 | TicksMajorWidth / 2; |
jmitc91516 | 0:9140ec6aa604 | 2596 | TX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2597 | NumbersMinValue; |
jmitc91516 | 0:9140ec6aa604 | 2598 | F = TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2599 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2600 | if (F != 0) |
jmitc91516 | 0:9140ec6aa604 | 2601 | { |
jmitc91516 | 0:9140ec6aa604 | 2602 | TX -= F; |
jmitc91516 | 0:9140ec6aa604 | 2603 | if (TX < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2604 | NumbersMinValue) |
jmitc91516 | 0:9140ec6aa604 | 2605 | TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2606 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2607 | } |
jmitc91516 | 0:9140ec6aa604 | 2608 | while (TX <= MV) |
jmitc91516 | 0:9140ec6aa604 | 2609 | { |
jmitc91516 | 0:9140ec6aa604 | 2610 | DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX - |
jmitc91516 | 0:9140ec6aa604 | 2611 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2612 | NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 2613 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale) / |
jmitc91516 | 0:9140ec6aa604 | 2614 | 10000; |
jmitc91516 | 0:9140ec6aa604 | 2615 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2616 | NumbersAtOrigo || |
jmitc91516 | 0:9140ec6aa604 | 2617 | (TX != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2618 | NumbersMinValue)) |
jmitc91516 | 0:9140ec6aa604 | 2619 | GuiLib_FillBox( |
jmitc91516 | 0:9140ec6aa604 | 2620 | DX - HW, |
jmitc91516 | 0:9140ec6aa604 | 2621 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2622 | DX - HW + |
jmitc91516 | 0:9140ec6aa604 | 2623 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2624 | TicksMajorWidth - 1, |
jmitc91516 | 0:9140ec6aa604 | 2625 | Y + sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2626 | TicksMajorLength - 1, |
jmitc91516 | 0:9140ec6aa604 | 2627 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2628 | TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2629 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2630 | } |
jmitc91516 | 0:9140ec6aa604 | 2631 | } |
jmitc91516 | 0:9140ec6aa604 | 2632 | |
jmitc91516 | 0:9140ec6aa604 | 2633 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].TicksMinor) |
jmitc91516 | 0:9140ec6aa604 | 2634 | { |
jmitc91516 | 0:9140ec6aa604 | 2635 | HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2636 | TicksMinorWidth / 2; |
jmitc91516 | 0:9140ec6aa604 | 2637 | TX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2638 | NumbersMinValue; |
jmitc91516 | 0:9140ec6aa604 | 2639 | F = TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2640 | NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2641 | if (F != 0) |
jmitc91516 | 0:9140ec6aa604 | 2642 | { |
jmitc91516 | 0:9140ec6aa604 | 2643 | TX -= F; |
jmitc91516 | 0:9140ec6aa604 | 2644 | if (TX < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2645 | NumbersMinValue) |
jmitc91516 | 0:9140ec6aa604 | 2646 | TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2647 | NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2648 | } |
jmitc91516 | 0:9140ec6aa604 | 2649 | while (TX <= MV) |
jmitc91516 | 0:9140ec6aa604 | 2650 | { |
jmitc91516 | 0:9140ec6aa604 | 2651 | DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX - |
jmitc91516 | 0:9140ec6aa604 | 2652 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2653 | NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 2654 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale) / |
jmitc91516 | 0:9140ec6aa604 | 2655 | 10000; |
jmitc91516 | 0:9140ec6aa604 | 2656 | if ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2657 | NumbersAtOrigo || |
jmitc91516 | 0:9140ec6aa604 | 2658 | (TX != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2659 | NumbersMinValue)) && |
jmitc91516 | 0:9140ec6aa604 | 2660 | ((!sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2661 | TicksMajor) || |
jmitc91516 | 0:9140ec6aa604 | 2662 | (TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2663 | NumbersStepMajor != 0))) |
jmitc91516 | 0:9140ec6aa604 | 2664 | GuiLib_FillBox( |
jmitc91516 | 0:9140ec6aa604 | 2665 | DX - HW, |
jmitc91516 | 0:9140ec6aa604 | 2666 | Y, |
jmitc91516 | 0:9140ec6aa604 | 2667 | DX - HW + |
jmitc91516 | 0:9140ec6aa604 | 2668 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2669 | TicksMinorWidth - 1, |
jmitc91516 | 0:9140ec6aa604 | 2670 | Y + sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2671 | TicksMinorLength - 1, |
jmitc91516 | 0:9140ec6aa604 | 2672 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2673 | TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2674 | NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2675 | } |
jmitc91516 | 0:9140ec6aa604 | 2676 | } |
jmitc91516 | 0:9140ec6aa604 | 2677 | |
jmitc91516 | 0:9140ec6aa604 | 2678 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Numbers) |
jmitc91516 | 0:9140ec6aa604 | 2679 | { |
jmitc91516 | 0:9140ec6aa604 | 2680 | memcpy(&sgl.CurItem, &sgl.GraphAry[GraphIndex].GraphItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 2681 | |
jmitc91516 | 0:9140ec6aa604 | 2682 | DY = Y; |
jmitc91516 | 0:9140ec6aa604 | 2683 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2684 | TicksMajor) |
jmitc91516 | 0:9140ec6aa604 | 2685 | DY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2686 | TicksMajorLength; |
jmitc91516 | 0:9140ec6aa604 | 2687 | SetCurFont(sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex); |
jmitc91516 | 0:9140ec6aa604 | 2688 | DY += ReadByte(sgl.CurFont->BaseLine); |
jmitc91516 | 0:9140ec6aa604 | 2689 | DY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2690 | NumbersOffset; |
jmitc91516 | 0:9140ec6aa604 | 2691 | |
jmitc91516 | 0:9140ec6aa604 | 2692 | TX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2693 | NumbersMinValue; |
jmitc91516 | 0:9140ec6aa604 | 2694 | F = TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2695 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2696 | if (F != 0) |
jmitc91516 | 0:9140ec6aa604 | 2697 | { |
jmitc91516 | 0:9140ec6aa604 | 2698 | TX -= F; |
jmitc91516 | 0:9140ec6aa604 | 2699 | if (TX < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2700 | NumbersMinValue) |
jmitc91516 | 0:9140ec6aa604 | 2701 | TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2702 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2703 | } |
jmitc91516 | 0:9140ec6aa604 | 2704 | switch (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatAlignment) |
jmitc91516 | 0:9140ec6aa604 | 2705 | { |
jmitc91516 | 0:9140ec6aa604 | 2706 | case GuiLib_FORMAT_ALIGNMENT_LEFT: |
jmitc91516 | 0:9140ec6aa604 | 2707 | Align = GuiLib_ALIGN_LEFT; |
jmitc91516 | 0:9140ec6aa604 | 2708 | break; |
jmitc91516 | 0:9140ec6aa604 | 2709 | case GuiLib_FORMAT_ALIGNMENT_CENTER: |
jmitc91516 | 0:9140ec6aa604 | 2710 | Align = GuiLib_ALIGN_CENTER; |
jmitc91516 | 0:9140ec6aa604 | 2711 | break; |
jmitc91516 | 0:9140ec6aa604 | 2712 | case GuiLib_FORMAT_ALIGNMENT_RIGHT: |
jmitc91516 | 0:9140ec6aa604 | 2713 | Align = GuiLib_ALIGN_RIGHT; |
jmitc91516 | 0:9140ec6aa604 | 2714 | break; |
jmitc91516 | 0:9140ec6aa604 | 2715 | } |
jmitc91516 | 0:9140ec6aa604 | 2716 | while (TX <= MV) |
jmitc91516 | 0:9140ec6aa604 | 2717 | { |
jmitc91516 | 0:9140ec6aa604 | 2718 | DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX - |
jmitc91516 | 0:9140ec6aa604 | 2719 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2720 | NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 2721 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale) / |
jmitc91516 | 0:9140ec6aa604 | 2722 | 10000; |
jmitc91516 | 0:9140ec6aa604 | 2723 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2724 | NumbersAtOrigo || |
jmitc91516 | 0:9140ec6aa604 | 2725 | (TX != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2726 | NumbersMinValue)) |
jmitc91516 | 0:9140ec6aa604 | 2727 | { |
jmitc91516 | 0:9140ec6aa604 | 2728 | #ifdef GuiConst_FLOAT_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2729 | TDX = TX; |
jmitc91516 | 0:9140ec6aa604 | 2730 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2731 | GuiLib_DrawVar( |
jmitc91516 | 0:9140ec6aa604 | 2732 | DX, |
jmitc91516 | 0:9140ec6aa604 | 2733 | DY, |
jmitc91516 | 0:9140ec6aa604 | 2734 | sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex, |
jmitc91516 | 0:9140ec6aa604 | 2735 | #ifdef GuiConst_FLOAT_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2736 | &TDX, |
jmitc91516 | 0:9140ec6aa604 | 2737 | GuiLib_VAR_DOUBLE, |
jmitc91516 | 0:9140ec6aa604 | 2738 | #else |
jmitc91516 | 0:9140ec6aa604 | 2739 | &TX, |
jmitc91516 | 0:9140ec6aa604 | 2740 | GuiLib_VAR_SIGNED_LONG, |
jmitc91516 | 0:9140ec6aa604 | 2741 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2742 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatFormat, |
jmitc91516 | 0:9140ec6aa604 | 2743 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatFieldWidth, |
jmitc91516 | 0:9140ec6aa604 | 2744 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatAlignment, |
jmitc91516 | 0:9140ec6aa604 | 2745 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatDecimals, |
jmitc91516 | 0:9140ec6aa604 | 2746 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2747 | BitFlags & GuiLib_BITFLAG_FORMATSHOWSIGN) > 0), |
jmitc91516 | 0:9140ec6aa604 | 2748 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2749 | BitFlags & GuiLib_BITFLAG_FORMATZEROPADDING) > 0), |
jmitc91516 | 0:9140ec6aa604 | 2750 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2751 | BitFlags & GuiLib_BITFLAG_FORMATTRAILINGZEROS) > 0), |
jmitc91516 | 0:9140ec6aa604 | 2752 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2753 | BitFlags & GuiLib_BITFLAG_FORMATTHOUSANDSSEP) > 0), |
jmitc91516 | 0:9140ec6aa604 | 2754 | Align, |
jmitc91516 | 0:9140ec6aa604 | 2755 | sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].Ps, |
jmitc91516 | 0:9140ec6aa604 | 2756 | 1, // Transparent |
jmitc91516 | 0:9140ec6aa604 | 2757 | ((sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 2758 | GuiLib_BITFLAG_UNDERLINE) > 0), |
jmitc91516 | 0:9140ec6aa604 | 2759 | 0, |
jmitc91516 | 0:9140ec6aa604 | 2760 | 0, |
jmitc91516 | 0:9140ec6aa604 | 2761 | 0, |
jmitc91516 | 0:9140ec6aa604 | 2762 | 0, |
jmitc91516 | 0:9140ec6aa604 | 2763 | sgl.GraphAry[GraphIndex].GraphItem.ForeColor, |
jmitc91516 | 0:9140ec6aa604 | 2764 | sgl.GraphAry[GraphIndex].GraphItem.BackColor); |
jmitc91516 | 0:9140ec6aa604 | 2765 | } |
jmitc91516 | 0:9140ec6aa604 | 2766 | TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 2767 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2768 | } |
jmitc91516 | 0:9140ec6aa604 | 2769 | } |
jmitc91516 | 0:9140ec6aa604 | 2770 | } |
jmitc91516 | 0:9140ec6aa604 | 2771 | |
jmitc91516 | 0:9140ec6aa604 | 2772 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 2773 | static void Graph_DrawYAxis( |
jmitc91516 | 0:9140ec6aa604 | 2774 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 2775 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 2776 | { |
jmitc91516 | 0:9140ec6aa604 | 2777 | GuiConst_INT16S X, Y; |
jmitc91516 | 0:9140ec6aa604 | 2778 | GuiConst_INT16S DX, DY; |
jmitc91516 | 0:9140ec6aa604 | 2779 | GuiConst_INT32S TX, TY; |
jmitc91516 | 0:9140ec6aa604 | 2780 | #ifdef GuiConst_FLOAT_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2781 | double TDY; |
jmitc91516 | 0:9140ec6aa604 | 2782 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2783 | GuiConst_INT32S F; |
jmitc91516 | 0:9140ec6aa604 | 2784 | GuiConst_INT16S HW; |
jmitc91516 | 0:9140ec6aa604 | 2785 | GuiConst_INT32S MV; |
jmitc91516 | 0:9140ec6aa604 | 2786 | GuiConst_INT16U StrLen; |
jmitc91516 | 0:9140ec6aa604 | 2787 | GuiConst_INT16U I; |
jmitc91516 | 0:9140ec6aa604 | 2788 | GuiConst_INT8U Align; |
jmitc91516 | 0:9140ec6aa604 | 2789 | |
jmitc91516 | 0:9140ec6aa604 | 2790 | X = sgl.GraphAry[GraphIndex].OrigoX + |
jmitc91516 | 0:9140ec6aa604 | 2791 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Offset; |
jmitc91516 | 0:9140ec6aa604 | 2792 | |
jmitc91516 | 0:9140ec6aa604 | 2793 | MV = Graph_CalcNumbersMaxValue(GraphIndex, AxisIndex, GuiLib_GRAPHAXIS_Y); |
jmitc91516 | 0:9140ec6aa604 | 2794 | |
jmitc91516 | 0:9140ec6aa604 | 2795 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Line) |
jmitc91516 | 0:9140ec6aa604 | 2796 | { |
jmitc91516 | 0:9140ec6aa604 | 2797 | Y = 0; |
jmitc91516 | 0:9140ec6aa604 | 2798 | for (I = 0; I < sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]; I++) |
jmitc91516 | 0:9140ec6aa604 | 2799 | if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].Offset > Y) |
jmitc91516 | 0:9140ec6aa604 | 2800 | Y = sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].Offset; |
jmitc91516 | 0:9140ec6aa604 | 2801 | Y = sgl.GraphAry[GraphIndex].OriginOffsetY - Y; |
jmitc91516 | 0:9140ec6aa604 | 2802 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2803 | LineNegative) |
jmitc91516 | 0:9140ec6aa604 | 2804 | GuiLib_FillBox(X, |
jmitc91516 | 0:9140ec6aa604 | 2805 | sgl.GraphAry[GraphIndex].GraphItem.Y2 - Y, |
jmitc91516 | 0:9140ec6aa604 | 2806 | X, |
jmitc91516 | 0:9140ec6aa604 | 2807 | sgl.GraphAry[GraphIndex].GraphItem.Y2, |
jmitc91516 | 0:9140ec6aa604 | 2808 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2809 | if ((sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] > 1) && |
jmitc91516 | 0:9140ec6aa604 | 2810 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2811 | LineBetweenAxes) |
jmitc91516 | 0:9140ec6aa604 | 2812 | GuiLib_FillBox(X, |
jmitc91516 | 0:9140ec6aa604 | 2813 | sgl.GraphAry[GraphIndex].GraphItem.Y2 - |
jmitc91516 | 0:9140ec6aa604 | 2814 | sgl.GraphAry[GraphIndex].OriginOffsetY, |
jmitc91516 | 0:9140ec6aa604 | 2815 | X, |
jmitc91516 | 0:9140ec6aa604 | 2816 | sgl.GraphAry[GraphIndex].GraphItem.Y2 - Y, |
jmitc91516 | 0:9140ec6aa604 | 2817 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2818 | GuiLib_FillBox(X, |
jmitc91516 | 0:9140ec6aa604 | 2819 | sgl.GraphAry[GraphIndex].GraphItem.Y1, |
jmitc91516 | 0:9140ec6aa604 | 2820 | X, |
jmitc91516 | 0:9140ec6aa604 | 2821 | sgl.GraphAry[GraphIndex].GraphItem.Y2 - |
jmitc91516 | 0:9140ec6aa604 | 2822 | sgl.GraphAry[GraphIndex].OriginOffsetY, |
jmitc91516 | 0:9140ec6aa604 | 2823 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2824 | } |
jmitc91516 | 0:9140ec6aa604 | 2825 | |
jmitc91516 | 0:9140ec6aa604 | 2826 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Arrow) |
jmitc91516 | 0:9140ec6aa604 | 2827 | { |
jmitc91516 | 0:9140ec6aa604 | 2828 | DY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2829 | ArrowLength; |
jmitc91516 | 0:9140ec6aa604 | 2830 | HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2831 | ArrowWidth / 2; |
jmitc91516 | 0:9140ec6aa604 | 2832 | for (DX = -HW; DX <= HW; DX++) |
jmitc91516 | 0:9140ec6aa604 | 2833 | GuiLib_Line(X - DX, |
jmitc91516 | 0:9140ec6aa604 | 2834 | sgl.GraphAry[GraphIndex].GraphItem.Y1 + DY, |
jmitc91516 | 0:9140ec6aa604 | 2835 | X, |
jmitc91516 | 0:9140ec6aa604 | 2836 | sgl.GraphAry[GraphIndex].GraphItem.Y1, |
jmitc91516 | 0:9140ec6aa604 | 2837 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2838 | } |
jmitc91516 | 0:9140ec6aa604 | 2839 | |
jmitc91516 | 0:9140ec6aa604 | 2840 | Graph_CalcScaleY(GraphIndex, AxisIndex); |
jmitc91516 | 0:9140ec6aa604 | 2841 | |
jmitc91516 | 0:9140ec6aa604 | 2842 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].TicksMajor) |
jmitc91516 | 0:9140ec6aa604 | 2843 | { |
jmitc91516 | 0:9140ec6aa604 | 2844 | HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2845 | TicksMajorWidth / 2; |
jmitc91516 | 0:9140ec6aa604 | 2846 | TY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2847 | NumbersMinValue; |
jmitc91516 | 0:9140ec6aa604 | 2848 | F = TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2849 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2850 | if (F != 0) |
jmitc91516 | 0:9140ec6aa604 | 2851 | { |
jmitc91516 | 0:9140ec6aa604 | 2852 | TY -= F; |
jmitc91516 | 0:9140ec6aa604 | 2853 | if (TY < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2854 | NumbersMinValue) |
jmitc91516 | 0:9140ec6aa604 | 2855 | TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2856 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2857 | } |
jmitc91516 | 0:9140ec6aa604 | 2858 | while (TY <= MV) |
jmitc91516 | 0:9140ec6aa604 | 2859 | { |
jmitc91516 | 0:9140ec6aa604 | 2860 | DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY - |
jmitc91516 | 0:9140ec6aa604 | 2861 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2862 | NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 2863 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale) / |
jmitc91516 | 0:9140ec6aa604 | 2864 | 10000; |
jmitc91516 | 0:9140ec6aa604 | 2865 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2866 | NumbersAtOrigo || |
jmitc91516 | 0:9140ec6aa604 | 2867 | (TY != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2868 | NumbersMinValue)) |
jmitc91516 | 0:9140ec6aa604 | 2869 | GuiLib_FillBox( |
jmitc91516 | 0:9140ec6aa604 | 2870 | X - sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2871 | TicksMajorLength + 1, |
jmitc91516 | 0:9140ec6aa604 | 2872 | DY - HW, |
jmitc91516 | 0:9140ec6aa604 | 2873 | X, |
jmitc91516 | 0:9140ec6aa604 | 2874 | DY - HW + |
jmitc91516 | 0:9140ec6aa604 | 2875 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2876 | TicksMajorWidth - 1, |
jmitc91516 | 0:9140ec6aa604 | 2877 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2878 | TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2879 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2880 | } |
jmitc91516 | 0:9140ec6aa604 | 2881 | } |
jmitc91516 | 0:9140ec6aa604 | 2882 | |
jmitc91516 | 0:9140ec6aa604 | 2883 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].TicksMinor) |
jmitc91516 | 0:9140ec6aa604 | 2884 | { |
jmitc91516 | 0:9140ec6aa604 | 2885 | HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2886 | TicksMinorWidth / 2; |
jmitc91516 | 0:9140ec6aa604 | 2887 | TY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2888 | NumbersMinValue; |
jmitc91516 | 0:9140ec6aa604 | 2889 | F = TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2890 | NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2891 | if (F != 0) |
jmitc91516 | 0:9140ec6aa604 | 2892 | { |
jmitc91516 | 0:9140ec6aa604 | 2893 | TY -= F; |
jmitc91516 | 0:9140ec6aa604 | 2894 | if (TY < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2895 | NumbersMinValue) |
jmitc91516 | 0:9140ec6aa604 | 2896 | TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2897 | NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2898 | } |
jmitc91516 | 0:9140ec6aa604 | 2899 | while (TY <= MV) |
jmitc91516 | 0:9140ec6aa604 | 2900 | { |
jmitc91516 | 0:9140ec6aa604 | 2901 | DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY - |
jmitc91516 | 0:9140ec6aa604 | 2902 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2903 | NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 2904 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale) / |
jmitc91516 | 0:9140ec6aa604 | 2905 | 10000; |
jmitc91516 | 0:9140ec6aa604 | 2906 | if ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2907 | NumbersAtOrigo || |
jmitc91516 | 0:9140ec6aa604 | 2908 | (TY != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2909 | NumbersMinValue)) && |
jmitc91516 | 0:9140ec6aa604 | 2910 | ((!sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2911 | TicksMajor) || |
jmitc91516 | 0:9140ec6aa604 | 2912 | (TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2913 | NumbersStepMajor != 0))) |
jmitc91516 | 0:9140ec6aa604 | 2914 | GuiLib_FillBox( |
jmitc91516 | 0:9140ec6aa604 | 2915 | X - sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2916 | TicksMinorLength + 1, |
jmitc91516 | 0:9140ec6aa604 | 2917 | DY - HW, |
jmitc91516 | 0:9140ec6aa604 | 2918 | X, |
jmitc91516 | 0:9140ec6aa604 | 2919 | DY - HW + |
jmitc91516 | 0:9140ec6aa604 | 2920 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2921 | TicksMinorWidth - 1, |
jmitc91516 | 0:9140ec6aa604 | 2922 | sgl.GraphAry[GraphIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 2923 | TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2924 | NumbersStepMinor; |
jmitc91516 | 0:9140ec6aa604 | 2925 | } |
jmitc91516 | 0:9140ec6aa604 | 2926 | } |
jmitc91516 | 0:9140ec6aa604 | 2927 | |
jmitc91516 | 0:9140ec6aa604 | 2928 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Numbers) |
jmitc91516 | 0:9140ec6aa604 | 2929 | { |
jmitc91516 | 0:9140ec6aa604 | 2930 | memcpy(&sgl.CurItem, &sgl.GraphAry[GraphIndex].GraphItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 2931 | |
jmitc91516 | 0:9140ec6aa604 | 2932 | SetCurFont(sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex); |
jmitc91516 | 0:9140ec6aa604 | 2933 | |
jmitc91516 | 0:9140ec6aa604 | 2934 | sgl.CurItem.TextPar[0].BitFlags = |
jmitc91516 | 0:9140ec6aa604 | 2935 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].BitFlags; |
jmitc91516 | 0:9140ec6aa604 | 2936 | sgl.CurItem.FormatFieldWidth = |
jmitc91516 | 0:9140ec6aa604 | 2937 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFieldWidth; |
jmitc91516 | 0:9140ec6aa604 | 2938 | sgl.CurItem.FormatDecimals = |
jmitc91516 | 0:9140ec6aa604 | 2939 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatDecimals; |
jmitc91516 | 0:9140ec6aa604 | 2940 | sgl.CurItem.FormatAlignment = |
jmitc91516 | 0:9140ec6aa604 | 2941 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatAlignment; |
jmitc91516 | 0:9140ec6aa604 | 2942 | sgl.CurItem.FormatFormat = |
jmitc91516 | 0:9140ec6aa604 | 2943 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFormat; |
jmitc91516 | 0:9140ec6aa604 | 2944 | |
jmitc91516 | 0:9140ec6aa604 | 2945 | DX = X; |
jmitc91516 | 0:9140ec6aa604 | 2946 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2947 | TicksMajor) |
jmitc91516 | 0:9140ec6aa604 | 2948 | DX -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2949 | TicksMajorLength; |
jmitc91516 | 0:9140ec6aa604 | 2950 | DX -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2951 | NumbersOffset; |
jmitc91516 | 0:9140ec6aa604 | 2952 | |
jmitc91516 | 0:9140ec6aa604 | 2953 | TY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2954 | NumbersMinValue; |
jmitc91516 | 0:9140ec6aa604 | 2955 | F = TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2956 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2957 | if (F != 0) |
jmitc91516 | 0:9140ec6aa604 | 2958 | { |
jmitc91516 | 0:9140ec6aa604 | 2959 | TY -= F; |
jmitc91516 | 0:9140ec6aa604 | 2960 | if (TY < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2961 | NumbersMinValue) |
jmitc91516 | 0:9140ec6aa604 | 2962 | TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2963 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 2964 | } |
jmitc91516 | 0:9140ec6aa604 | 2965 | switch (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatAlignment) |
jmitc91516 | 0:9140ec6aa604 | 2966 | { |
jmitc91516 | 0:9140ec6aa604 | 2967 | case GuiLib_FORMAT_ALIGNMENT_LEFT: |
jmitc91516 | 0:9140ec6aa604 | 2968 | Align = GuiLib_ALIGN_LEFT; |
jmitc91516 | 0:9140ec6aa604 | 2969 | break; |
jmitc91516 | 0:9140ec6aa604 | 2970 | case GuiLib_FORMAT_ALIGNMENT_CENTER: |
jmitc91516 | 0:9140ec6aa604 | 2971 | Align = GuiLib_ALIGN_CENTER; |
jmitc91516 | 0:9140ec6aa604 | 2972 | break; |
jmitc91516 | 0:9140ec6aa604 | 2973 | case GuiLib_FORMAT_ALIGNMENT_RIGHT: |
jmitc91516 | 0:9140ec6aa604 | 2974 | Align = GuiLib_ALIGN_RIGHT; |
jmitc91516 | 0:9140ec6aa604 | 2975 | break; |
jmitc91516 | 0:9140ec6aa604 | 2976 | } |
jmitc91516 | 0:9140ec6aa604 | 2977 | while (TY <= MV) |
jmitc91516 | 0:9140ec6aa604 | 2978 | { |
jmitc91516 | 0:9140ec6aa604 | 2979 | DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY - |
jmitc91516 | 0:9140ec6aa604 | 2980 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2981 | NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 2982 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale) / |
jmitc91516 | 0:9140ec6aa604 | 2983 | 10000; |
jmitc91516 | 0:9140ec6aa604 | 2984 | if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2985 | NumbersAtOrigo || |
jmitc91516 | 0:9140ec6aa604 | 2986 | (TY != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 2987 | NumbersMinValue)) |
jmitc91516 | 0:9140ec6aa604 | 2988 | { |
jmitc91516 | 0:9140ec6aa604 | 2989 | #ifdef GuiConst_FLOAT_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2990 | TDY = TY; |
jmitc91516 | 0:9140ec6aa604 | 2991 | #endif |
jmitc91516 | 0:9140ec6aa604 | 2992 | GuiLib_DrawVar( |
jmitc91516 | 0:9140ec6aa604 | 2993 | DX, |
jmitc91516 | 0:9140ec6aa604 | 2994 | DY + GuiLib_FONT_MID_Y(ReadByte(sgl.CurFont->BaseLine), |
jmitc91516 | 0:9140ec6aa604 | 2995 | ReadByte(sgl.CurFont->TopLine)), |
jmitc91516 | 0:9140ec6aa604 | 2996 | sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex, |
jmitc91516 | 0:9140ec6aa604 | 2997 | #ifdef GuiConst_FLOAT_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 2998 | &TDY, |
jmitc91516 | 0:9140ec6aa604 | 2999 | GuiLib_VAR_DOUBLE, |
jmitc91516 | 0:9140ec6aa604 | 3000 | #else |
jmitc91516 | 0:9140ec6aa604 | 3001 | &TY, |
jmitc91516 | 0:9140ec6aa604 | 3002 | GuiLib_VAR_SIGNED_LONG, |
jmitc91516 | 0:9140ec6aa604 | 3003 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3004 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFormat, |
jmitc91516 | 0:9140ec6aa604 | 3005 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFieldWidth, |
jmitc91516 | 0:9140ec6aa604 | 3006 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatAlignment, |
jmitc91516 | 0:9140ec6aa604 | 3007 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatDecimals, |
jmitc91516 | 0:9140ec6aa604 | 3008 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3009 | BitFlags & GuiLib_BITFLAG_FORMATSHOWSIGN) > 0), |
jmitc91516 | 0:9140ec6aa604 | 3010 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3011 | BitFlags & GuiLib_BITFLAG_FORMATZEROPADDING) > 0), |
jmitc91516 | 0:9140ec6aa604 | 3012 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3013 | BitFlags & GuiLib_BITFLAG_FORMATTRAILINGZEROS) > 0), |
jmitc91516 | 0:9140ec6aa604 | 3014 | ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3015 | BitFlags & GuiLib_BITFLAG_FORMATTHOUSANDSSEP) > 0), |
jmitc91516 | 0:9140ec6aa604 | 3016 | Align, |
jmitc91516 | 0:9140ec6aa604 | 3017 | sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].Ps, |
jmitc91516 | 0:9140ec6aa604 | 3018 | 1, // Transparent |
jmitc91516 | 0:9140ec6aa604 | 3019 | ((sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 3020 | GuiLib_BITFLAG_UNDERLINE) > 0), |
jmitc91516 | 0:9140ec6aa604 | 3021 | 0, |
jmitc91516 | 0:9140ec6aa604 | 3022 | 0, |
jmitc91516 | 0:9140ec6aa604 | 3023 | 0, |
jmitc91516 | 0:9140ec6aa604 | 3024 | 0, |
jmitc91516 | 0:9140ec6aa604 | 3025 | sgl.GraphAry[GraphIndex].GraphItem.ForeColor, |
jmitc91516 | 0:9140ec6aa604 | 3026 | sgl.GraphAry[GraphIndex].GraphItem.BackColor); |
jmitc91516 | 0:9140ec6aa604 | 3027 | } |
jmitc91516 | 0:9140ec6aa604 | 3028 | TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3029 | NumbersStepMajor; |
jmitc91516 | 0:9140ec6aa604 | 3030 | } |
jmitc91516 | 0:9140ec6aa604 | 3031 | } |
jmitc91516 | 0:9140ec6aa604 | 3032 | } |
jmitc91516 | 0:9140ec6aa604 | 3033 | |
jmitc91516 | 0:9140ec6aa604 | 3034 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3035 | static void Graph_DrawDataPoint( |
jmitc91516 | 0:9140ec6aa604 | 3036 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3037 | GuiConst_INT8U DataSetIndex, |
jmitc91516 | 0:9140ec6aa604 | 3038 | GuiConst_INT16U DataIndex, |
jmitc91516 | 0:9140ec6aa604 | 3039 | GuiConst_INT16S X, |
jmitc91516 | 0:9140ec6aa604 | 3040 | GuiConst_INT16S Y, |
jmitc91516 | 0:9140ec6aa604 | 3041 | GuiConst_INT16S LastX, |
jmitc91516 | 0:9140ec6aa604 | 3042 | GuiConst_INT16S LastY) |
jmitc91516 | 0:9140ec6aa604 | 3043 | { |
jmitc91516 | 0:9140ec6aa604 | 3044 | GuiConst_INT16S DX1, DY1; |
jmitc91516 | 0:9140ec6aa604 | 3045 | GuiConst_INT16S DX2, DY2; |
jmitc91516 | 0:9140ec6aa604 | 3046 | GuiConst_INT16S HW; |
jmitc91516 | 0:9140ec6aa604 | 3047 | GuiConst_INT16S AY; |
jmitc91516 | 0:9140ec6aa604 | 3048 | |
jmitc91516 | 0:9140ec6aa604 | 3049 | switch (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Representation) |
jmitc91516 | 0:9140ec6aa604 | 3050 | { |
jmitc91516 | 0:9140ec6aa604 | 3051 | case GuiLib_GRAPH_DATATYPE_DOT: |
jmitc91516 | 0:9140ec6aa604 | 3052 | if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness == 0) |
jmitc91516 | 0:9140ec6aa604 | 3053 | GuiLib_Circle( |
jmitc91516 | 0:9140ec6aa604 | 3054 | X, Y, |
jmitc91516 | 0:9140ec6aa604 | 3055 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width, |
jmitc91516 | 0:9140ec6aa604 | 3056 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor, |
jmitc91516 | 0:9140ec6aa604 | 3057 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor); |
jmitc91516 | 0:9140ec6aa604 | 3058 | else if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex]. |
jmitc91516 | 0:9140ec6aa604 | 3059 | Thickness == 1) |
jmitc91516 | 0:9140ec6aa604 | 3060 | GuiLib_Circle( |
jmitc91516 | 0:9140ec6aa604 | 3061 | X, Y, |
jmitc91516 | 0:9140ec6aa604 | 3062 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width, |
jmitc91516 | 0:9140ec6aa604 | 3063 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor, |
jmitc91516 | 0:9140ec6aa604 | 3064 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor); |
jmitc91516 | 0:9140ec6aa604 | 3065 | else |
jmitc91516 | 0:9140ec6aa604 | 3066 | { |
jmitc91516 | 0:9140ec6aa604 | 3067 | GuiLib_Circle( |
jmitc91516 | 0:9140ec6aa604 | 3068 | X, Y, |
jmitc91516 | 0:9140ec6aa604 | 3069 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width, |
jmitc91516 | 0:9140ec6aa604 | 3070 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor, |
jmitc91516 | 0:9140ec6aa604 | 3071 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3072 | GuiLib_Circle( |
jmitc91516 | 0:9140ec6aa604 | 3073 | X, Y, |
jmitc91516 | 0:9140ec6aa604 | 3074 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width- |
jmitc91516 | 0:9140ec6aa604 | 3075 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness, |
jmitc91516 | 0:9140ec6aa604 | 3076 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor, |
jmitc91516 | 0:9140ec6aa604 | 3077 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor); |
jmitc91516 | 0:9140ec6aa604 | 3078 | } |
jmitc91516 | 0:9140ec6aa604 | 3079 | break; |
jmitc91516 | 0:9140ec6aa604 | 3080 | |
jmitc91516 | 0:9140ec6aa604 | 3081 | case GuiLib_GRAPH_DATATYPE_LINE: |
jmitc91516 | 0:9140ec6aa604 | 3082 | if (DataIndex == |
jmitc91516 | 0:9140ec6aa604 | 3083 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst) |
jmitc91516 | 0:9140ec6aa604 | 3084 | GuiLib_Dot( |
jmitc91516 | 0:9140ec6aa604 | 3085 | X, Y, |
jmitc91516 | 0:9140ec6aa604 | 3086 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3087 | else |
jmitc91516 | 0:9140ec6aa604 | 3088 | GuiLib_Line( |
jmitc91516 | 0:9140ec6aa604 | 3089 | LastX, LastY, |
jmitc91516 | 0:9140ec6aa604 | 3090 | X, Y, |
jmitc91516 | 0:9140ec6aa604 | 3091 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3092 | break; |
jmitc91516 | 0:9140ec6aa604 | 3093 | |
jmitc91516 | 0:9140ec6aa604 | 3094 | case GuiLib_GRAPH_DATATYPE_BAR: |
jmitc91516 | 0:9140ec6aa604 | 3095 | AY = sgl.GraphAry[GraphIndex].OrigoY + |
jmitc91516 | 0:9140ec6aa604 | 3096 | sgl.GraphAry[GraphIndex].GraphAxes[0][GuiLib_GRAPHAXIS_X].Offset; |
jmitc91516 | 0:9140ec6aa604 | 3097 | DX2 = X + (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width / 2); |
jmitc91516 | 0:9140ec6aa604 | 3098 | DX1 = DX2 - sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width + 1; |
jmitc91516 | 0:9140ec6aa604 | 3099 | if (DX1 > DX2) |
jmitc91516 | 0:9140ec6aa604 | 3100 | DX1 = DX2; |
jmitc91516 | 0:9140ec6aa604 | 3101 | DY1 = AY; |
jmitc91516 | 0:9140ec6aa604 | 3102 | DY2 = Y; |
jmitc91516 | 0:9140ec6aa604 | 3103 | if (Y < AY) |
jmitc91516 | 0:9140ec6aa604 | 3104 | DY1--; |
jmitc91516 | 0:9140ec6aa604 | 3105 | if (Y != AY) |
jmitc91516 | 0:9140ec6aa604 | 3106 | { |
jmitc91516 | 0:9140ec6aa604 | 3107 | if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness == 0) |
jmitc91516 | 0:9140ec6aa604 | 3108 | { |
jmitc91516 | 0:9140ec6aa604 | 3109 | if (!sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex]. |
jmitc91516 | 0:9140ec6aa604 | 3110 | BackColorTransparent) |
jmitc91516 | 0:9140ec6aa604 | 3111 | GuiLib_FillBox( |
jmitc91516 | 0:9140ec6aa604 | 3112 | DX1, DY1, |
jmitc91516 | 0:9140ec6aa604 | 3113 | DX2, DY2, |
jmitc91516 | 0:9140ec6aa604 | 3114 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor); |
jmitc91516 | 0:9140ec6aa604 | 3115 | } |
jmitc91516 | 0:9140ec6aa604 | 3116 | else |
jmitc91516 | 0:9140ec6aa604 | 3117 | { |
jmitc91516 | 0:9140ec6aa604 | 3118 | OrderCoord(&DX1, &DX2); |
jmitc91516 | 0:9140ec6aa604 | 3119 | OrderCoord(&DY1, &DY2); |
jmitc91516 | 0:9140ec6aa604 | 3120 | DrawBorderBox( |
jmitc91516 | 0:9140ec6aa604 | 3121 | DX1, DY1, |
jmitc91516 | 0:9140ec6aa604 | 3122 | DX2, DY2, |
jmitc91516 | 0:9140ec6aa604 | 3123 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor, |
jmitc91516 | 0:9140ec6aa604 | 3124 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor, |
jmitc91516 | 0:9140ec6aa604 | 3125 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex]. |
jmitc91516 | 0:9140ec6aa604 | 3126 | BackColorTransparent, |
jmitc91516 | 0:9140ec6aa604 | 3127 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness); |
jmitc91516 | 0:9140ec6aa604 | 3128 | } |
jmitc91516 | 0:9140ec6aa604 | 3129 | } |
jmitc91516 | 0:9140ec6aa604 | 3130 | break; |
jmitc91516 | 0:9140ec6aa604 | 3131 | |
jmitc91516 | 0:9140ec6aa604 | 3132 | case GuiLib_GRAPH_DATATYPE_CROSS: |
jmitc91516 | 0:9140ec6aa604 | 3133 | HW = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width; |
jmitc91516 | 0:9140ec6aa604 | 3134 | DX1 = X - HW; |
jmitc91516 | 0:9140ec6aa604 | 3135 | DY1 = Y - HW; |
jmitc91516 | 0:9140ec6aa604 | 3136 | DX2 = X + HW; |
jmitc91516 | 0:9140ec6aa604 | 3137 | DY2 = Y + HW; |
jmitc91516 | 0:9140ec6aa604 | 3138 | GuiLib_Line( |
jmitc91516 | 0:9140ec6aa604 | 3139 | DX1, Y, |
jmitc91516 | 0:9140ec6aa604 | 3140 | DX2, Y, |
jmitc91516 | 0:9140ec6aa604 | 3141 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3142 | GuiLib_Line( |
jmitc91516 | 0:9140ec6aa604 | 3143 | X, DY1, |
jmitc91516 | 0:9140ec6aa604 | 3144 | X, DY2, |
jmitc91516 | 0:9140ec6aa604 | 3145 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3146 | break; |
jmitc91516 | 0:9140ec6aa604 | 3147 | |
jmitc91516 | 0:9140ec6aa604 | 3148 | case GuiLib_GRAPH_DATATYPE_X: |
jmitc91516 | 0:9140ec6aa604 | 3149 | HW = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width; |
jmitc91516 | 0:9140ec6aa604 | 3150 | DX1 = X - HW; |
jmitc91516 | 0:9140ec6aa604 | 3151 | DY1 = Y - HW; |
jmitc91516 | 0:9140ec6aa604 | 3152 | DX2 = X + HW; |
jmitc91516 | 0:9140ec6aa604 | 3153 | DY2 = Y + HW; |
jmitc91516 | 0:9140ec6aa604 | 3154 | GuiLib_Line( |
jmitc91516 | 0:9140ec6aa604 | 3155 | DX1, DY1, |
jmitc91516 | 0:9140ec6aa604 | 3156 | DX2, DY2, |
jmitc91516 | 0:9140ec6aa604 | 3157 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3158 | GuiLib_Line( |
jmitc91516 | 0:9140ec6aa604 | 3159 | DX1, DY2, |
jmitc91516 | 0:9140ec6aa604 | 3160 | DX2, DY1, |
jmitc91516 | 0:9140ec6aa604 | 3161 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor); |
jmitc91516 | 0:9140ec6aa604 | 3162 | break; |
jmitc91516 | 0:9140ec6aa604 | 3163 | } |
jmitc91516 | 0:9140ec6aa604 | 3164 | } |
jmitc91516 | 0:9140ec6aa604 | 3165 | |
jmitc91516 | 0:9140ec6aa604 | 3166 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3167 | static void Graph_DrawDataSet( |
jmitc91516 | 0:9140ec6aa604 | 3168 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3169 | GuiConst_INT8U DataSetIndex) |
jmitc91516 | 0:9140ec6aa604 | 3170 | { |
jmitc91516 | 0:9140ec6aa604 | 3171 | GuiConst_INT16S DX = 0, DY = 0; |
jmitc91516 | 0:9140ec6aa604 | 3172 | GuiConst_INT16S LastDX, LastDY; |
jmitc91516 | 0:9140ec6aa604 | 3173 | GuiConst_INT32S TX, TY; |
jmitc91516 | 0:9140ec6aa604 | 3174 | GuiConst_INT16U DataIndex; |
jmitc91516 | 0:9140ec6aa604 | 3175 | GuiConst_INT16U DataCount; |
jmitc91516 | 0:9140ec6aa604 | 3176 | |
jmitc91516 | 0:9140ec6aa604 | 3177 | Graph_CalcScaleX(GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3178 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX); |
jmitc91516 | 0:9140ec6aa604 | 3179 | Graph_CalcScaleY(GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3180 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY); |
jmitc91516 | 0:9140ec6aa604 | 3181 | |
jmitc91516 | 0:9140ec6aa604 | 3182 | DataIndex = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst; |
jmitc91516 | 0:9140ec6aa604 | 3183 | for (DataCount = 1; |
jmitc91516 | 0:9140ec6aa604 | 3184 | DataCount <= sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount; |
jmitc91516 | 0:9140ec6aa604 | 3185 | DataCount++) |
jmitc91516 | 0:9140ec6aa604 | 3186 | { |
jmitc91516 | 0:9140ec6aa604 | 3187 | TX = |
jmitc91516 | 0:9140ec6aa604 | 3188 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].X; |
jmitc91516 | 0:9140ec6aa604 | 3189 | TY = |
jmitc91516 | 0:9140ec6aa604 | 3190 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].Y; |
jmitc91516 | 0:9140ec6aa604 | 3191 | |
jmitc91516 | 0:9140ec6aa604 | 3192 | LastDX = DX; |
jmitc91516 | 0:9140ec6aa604 | 3193 | LastDY = DY; |
jmitc91516 | 0:9140ec6aa604 | 3194 | DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX - |
jmitc91516 | 0:9140ec6aa604 | 3195 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3196 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX] |
jmitc91516 | 0:9140ec6aa604 | 3197 | [GuiLib_GRAPHAXIS_X].NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 3198 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3199 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX] |
jmitc91516 | 0:9140ec6aa604 | 3200 | [GuiLib_GRAPHAXIS_X].Scale) / 10000; |
jmitc91516 | 0:9140ec6aa604 | 3201 | DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY - |
jmitc91516 | 0:9140ec6aa604 | 3202 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3203 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY] |
jmitc91516 | 0:9140ec6aa604 | 3204 | [GuiLib_GRAPHAXIS_Y].NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 3205 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3206 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY] |
jmitc91516 | 0:9140ec6aa604 | 3207 | [GuiLib_GRAPHAXIS_Y].Scale) / 10000; |
jmitc91516 | 0:9140ec6aa604 | 3208 | |
jmitc91516 | 0:9140ec6aa604 | 3209 | Graph_DrawDataPoint( |
jmitc91516 | 0:9140ec6aa604 | 3210 | GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3211 | DataSetIndex, |
jmitc91516 | 0:9140ec6aa604 | 3212 | DataIndex, |
jmitc91516 | 0:9140ec6aa604 | 3213 | DX, DY, |
jmitc91516 | 0:9140ec6aa604 | 3214 | LastDX, LastDY); |
jmitc91516 | 0:9140ec6aa604 | 3215 | |
jmitc91516 | 0:9140ec6aa604 | 3216 | if (DataIndex >= sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount) |
jmitc91516 | 0:9140ec6aa604 | 3217 | DataIndex = 0; |
jmitc91516 | 0:9140ec6aa604 | 3218 | else |
jmitc91516 | 0:9140ec6aa604 | 3219 | DataIndex++; |
jmitc91516 | 0:9140ec6aa604 | 3220 | } |
jmitc91516 | 0:9140ec6aa604 | 3221 | } |
jmitc91516 | 0:9140ec6aa604 | 3222 | |
jmitc91516 | 0:9140ec6aa604 | 3223 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3224 | GuiConst_INT8U GuiLib_Graph_Close( |
jmitc91516 | 0:9140ec6aa604 | 3225 | GuiConst_INT8U GraphIndex) |
jmitc91516 | 0:9140ec6aa604 | 3226 | { |
jmitc91516 | 0:9140ec6aa604 | 3227 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3228 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3229 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3230 | |
jmitc91516 | 0:9140ec6aa604 | 3231 | sgl.GraphAry[GraphIndex].InUse = GuiLib_GRAPH_STRUCTURE_UNDEF; |
jmitc91516 | 0:9140ec6aa604 | 3232 | sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] = 0; |
jmitc91516 | 0:9140ec6aa604 | 3233 | sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] = 0; |
jmitc91516 | 0:9140ec6aa604 | 3234 | sgl.GraphAry[GraphIndex].GraphDataSetCnt = 0; |
jmitc91516 | 0:9140ec6aa604 | 3235 | |
jmitc91516 | 0:9140ec6aa604 | 3236 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3237 | } |
jmitc91516 | 0:9140ec6aa604 | 3238 | |
jmitc91516 | 0:9140ec6aa604 | 3239 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3240 | GuiConst_INT8U GuiLib_Graph_AddDataSet( |
jmitc91516 | 0:9140ec6aa604 | 3241 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3242 | GuiConst_INT8U DataSetIndex, |
jmitc91516 | 0:9140ec6aa604 | 3243 | GuiConst_INT8U XAxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 3244 | GuiConst_INT8U YAxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 3245 | GuiLib_GraphDataPoint *DataPtr, |
jmitc91516 | 0:9140ec6aa604 | 3246 | GuiConst_INT16U DataSize, |
jmitc91516 | 0:9140ec6aa604 | 3247 | GuiConst_INT16U DataCount, |
jmitc91516 | 0:9140ec6aa604 | 3248 | GuiConst_INT16U DataFirst) |
jmitc91516 | 0:9140ec6aa604 | 3249 | { |
jmitc91516 | 0:9140ec6aa604 | 3250 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3251 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3252 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3253 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3254 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3255 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3256 | if (DataCount > DataSize) |
jmitc91516 | 0:9140ec6aa604 | 3257 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3258 | if (DataFirst >= DataSize) |
jmitc91516 | 0:9140ec6aa604 | 3259 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3260 | |
jmitc91516 | 0:9140ec6aa604 | 3261 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr = DataPtr; |
jmitc91516 | 0:9140ec6aa604 | 3262 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize = DataSize; |
jmitc91516 | 0:9140ec6aa604 | 3263 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst = DataFirst; |
jmitc91516 | 0:9140ec6aa604 | 3264 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount = DataCount; |
jmitc91516 | 0:9140ec6aa604 | 3265 | if ((XAxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3266 | (XAxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X])) |
jmitc91516 | 0:9140ec6aa604 | 3267 | XAxisIndex = 0; |
jmitc91516 | 0:9140ec6aa604 | 3268 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX = XAxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3269 | if ((YAxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3270 | (YAxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y])) |
jmitc91516 | 0:9140ec6aa604 | 3271 | YAxisIndex = 0; |
jmitc91516 | 0:9140ec6aa604 | 3272 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY = YAxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3273 | |
jmitc91516 | 0:9140ec6aa604 | 3274 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3275 | } |
jmitc91516 | 0:9140ec6aa604 | 3276 | |
jmitc91516 | 0:9140ec6aa604 | 3277 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3278 | GuiConst_INT8U GuiLib_Graph_RemoveDataSet( |
jmitc91516 | 0:9140ec6aa604 | 3279 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3280 | GuiConst_INT8U DataSetIndex) |
jmitc91516 | 0:9140ec6aa604 | 3281 | { |
jmitc91516 | 0:9140ec6aa604 | 3282 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3283 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3284 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3285 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3286 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3287 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3288 | |
jmitc91516 | 0:9140ec6aa604 | 3289 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount = 0; |
jmitc91516 | 0:9140ec6aa604 | 3290 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize = 0; |
jmitc91516 | 0:9140ec6aa604 | 3291 | |
jmitc91516 | 0:9140ec6aa604 | 3292 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3293 | } |
jmitc91516 | 0:9140ec6aa604 | 3294 | |
jmitc91516 | 0:9140ec6aa604 | 3295 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3296 | GuiConst_INT8U GuiLib_Graph_AddDataPoint( |
jmitc91516 | 0:9140ec6aa604 | 3297 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3298 | GuiConst_INT8U DataSetIndex, |
jmitc91516 | 0:9140ec6aa604 | 3299 | GuiConst_INT32S X, |
jmitc91516 | 0:9140ec6aa604 | 3300 | GuiConst_INT32S Y) |
jmitc91516 | 0:9140ec6aa604 | 3301 | { |
jmitc91516 | 0:9140ec6aa604 | 3302 | GuiConst_INT16U I; |
jmitc91516 | 0:9140ec6aa604 | 3303 | |
jmitc91516 | 0:9140ec6aa604 | 3304 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3305 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3306 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3307 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3308 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3309 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3310 | if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount >= |
jmitc91516 | 0:9140ec6aa604 | 3311 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize) |
jmitc91516 | 0:9140ec6aa604 | 3312 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3313 | |
jmitc91516 | 0:9140ec6aa604 | 3314 | I = (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst + |
jmitc91516 | 0:9140ec6aa604 | 3315 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount) % |
jmitc91516 | 0:9140ec6aa604 | 3316 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize; |
jmitc91516 | 0:9140ec6aa604 | 3317 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount++; |
jmitc91516 | 0:9140ec6aa604 | 3318 | |
jmitc91516 | 0:9140ec6aa604 | 3319 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[I].X = X; |
jmitc91516 | 0:9140ec6aa604 | 3320 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[I].Y = Y; |
jmitc91516 | 0:9140ec6aa604 | 3321 | |
jmitc91516 | 0:9140ec6aa604 | 3322 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3323 | } |
jmitc91516 | 0:9140ec6aa604 | 3324 | |
jmitc91516 | 0:9140ec6aa604 | 3325 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3326 | GuiConst_INT8U GuiLib_Graph_ShowDataSet( |
jmitc91516 | 0:9140ec6aa604 | 3327 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3328 | GuiConst_INT8U DataSetIndex) |
jmitc91516 | 0:9140ec6aa604 | 3329 | { |
jmitc91516 | 0:9140ec6aa604 | 3330 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3331 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3332 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3333 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3334 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3335 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3336 | |
jmitc91516 | 0:9140ec6aa604 | 3337 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible = 1; |
jmitc91516 | 0:9140ec6aa604 | 3338 | |
jmitc91516 | 0:9140ec6aa604 | 3339 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3340 | } |
jmitc91516 | 0:9140ec6aa604 | 3341 | |
jmitc91516 | 0:9140ec6aa604 | 3342 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3343 | GuiConst_INT8U GuiLib_Graph_HideDataSet( |
jmitc91516 | 0:9140ec6aa604 | 3344 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3345 | GuiConst_INT8U DataSetIndex) |
jmitc91516 | 0:9140ec6aa604 | 3346 | { |
jmitc91516 | 0:9140ec6aa604 | 3347 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3348 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3349 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3350 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3351 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3352 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3353 | |
jmitc91516 | 0:9140ec6aa604 | 3354 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible = 0; |
jmitc91516 | 0:9140ec6aa604 | 3355 | |
jmitc91516 | 0:9140ec6aa604 | 3356 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3357 | } |
jmitc91516 | 0:9140ec6aa604 | 3358 | |
jmitc91516 | 0:9140ec6aa604 | 3359 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3360 | GuiConst_INT8U GuiLib_Graph_ShowXAxis( |
jmitc91516 | 0:9140ec6aa604 | 3361 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3362 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 3363 | { |
jmitc91516 | 0:9140ec6aa604 | 3364 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3365 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3366 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3367 | if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3368 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X])) |
jmitc91516 | 0:9140ec6aa604 | 3369 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3370 | |
jmitc91516 | 0:9140ec6aa604 | 3371 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Visible = 1; |
jmitc91516 | 0:9140ec6aa604 | 3372 | |
jmitc91516 | 0:9140ec6aa604 | 3373 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3374 | } |
jmitc91516 | 0:9140ec6aa604 | 3375 | |
jmitc91516 | 0:9140ec6aa604 | 3376 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3377 | GuiConst_INT8U GuiLib_Graph_HideXAxis( |
jmitc91516 | 0:9140ec6aa604 | 3378 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3379 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 3380 | { |
jmitc91516 | 0:9140ec6aa604 | 3381 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3382 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3383 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3384 | if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3385 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X])) |
jmitc91516 | 0:9140ec6aa604 | 3386 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3387 | |
jmitc91516 | 0:9140ec6aa604 | 3388 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Visible = 0; |
jmitc91516 | 0:9140ec6aa604 | 3389 | |
jmitc91516 | 0:9140ec6aa604 | 3390 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3391 | } |
jmitc91516 | 0:9140ec6aa604 | 3392 | |
jmitc91516 | 0:9140ec6aa604 | 3393 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3394 | GuiConst_INT8U GuiLib_Graph_ShowYAxis( |
jmitc91516 | 0:9140ec6aa604 | 3395 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3396 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 3397 | { |
jmitc91516 | 0:9140ec6aa604 | 3398 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3399 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3400 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3401 | if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3402 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y])) |
jmitc91516 | 0:9140ec6aa604 | 3403 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3404 | |
jmitc91516 | 0:9140ec6aa604 | 3405 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Visible = 1; |
jmitc91516 | 0:9140ec6aa604 | 3406 | |
jmitc91516 | 0:9140ec6aa604 | 3407 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3408 | } |
jmitc91516 | 0:9140ec6aa604 | 3409 | |
jmitc91516 | 0:9140ec6aa604 | 3410 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3411 | GuiConst_INT8U GuiLib_Graph_HideYAxis( |
jmitc91516 | 0:9140ec6aa604 | 3412 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3413 | GuiConst_INT8U AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 3414 | { |
jmitc91516 | 0:9140ec6aa604 | 3415 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3416 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3417 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3418 | if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3419 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y])) |
jmitc91516 | 0:9140ec6aa604 | 3420 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3421 | |
jmitc91516 | 0:9140ec6aa604 | 3422 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Visible = 0; |
jmitc91516 | 0:9140ec6aa604 | 3423 | |
jmitc91516 | 0:9140ec6aa604 | 3424 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3425 | } |
jmitc91516 | 0:9140ec6aa604 | 3426 | |
jmitc91516 | 0:9140ec6aa604 | 3427 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3428 | GuiConst_INT8U GuiLib_Graph_SetXAxisRange( |
jmitc91516 | 0:9140ec6aa604 | 3429 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3430 | GuiConst_INT8U AxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 3431 | GuiConst_INT32S MinValue, |
jmitc91516 | 0:9140ec6aa604 | 3432 | GuiConst_INT32S MaxValue) |
jmitc91516 | 0:9140ec6aa604 | 3433 | { |
jmitc91516 | 0:9140ec6aa604 | 3434 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3435 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3436 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3437 | if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3438 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X])) |
jmitc91516 | 0:9140ec6aa604 | 3439 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3440 | |
jmitc91516 | 0:9140ec6aa604 | 3441 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 3442 | NumbersMinValue = MinValue; |
jmitc91516 | 0:9140ec6aa604 | 3443 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X]. |
jmitc91516 | 0:9140ec6aa604 | 3444 | NumbersMaxValue = MaxValue; |
jmitc91516 | 0:9140ec6aa604 | 3445 | |
jmitc91516 | 0:9140ec6aa604 | 3446 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3447 | } |
jmitc91516 | 0:9140ec6aa604 | 3448 | |
jmitc91516 | 0:9140ec6aa604 | 3449 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3450 | GuiConst_INT8U GuiLib_Graph_SetYAxisRange( |
jmitc91516 | 0:9140ec6aa604 | 3451 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3452 | GuiConst_INT8U AxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 3453 | GuiConst_INT32S MinValue, |
jmitc91516 | 0:9140ec6aa604 | 3454 | GuiConst_INT32S MaxValue) |
jmitc91516 | 0:9140ec6aa604 | 3455 | { |
jmitc91516 | 0:9140ec6aa604 | 3456 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3457 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3458 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3459 | if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3460 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y])) |
jmitc91516 | 0:9140ec6aa604 | 3461 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3462 | |
jmitc91516 | 0:9140ec6aa604 | 3463 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3464 | NumbersMinValue = MinValue; |
jmitc91516 | 0:9140ec6aa604 | 3465 | sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y]. |
jmitc91516 | 0:9140ec6aa604 | 3466 | NumbersMaxValue = MaxValue; |
jmitc91516 | 0:9140ec6aa604 | 3467 | |
jmitc91516 | 0:9140ec6aa604 | 3468 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3469 | } |
jmitc91516 | 0:9140ec6aa604 | 3470 | |
jmitc91516 | 0:9140ec6aa604 | 3471 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3472 | GuiConst_INT8U GuiLib_Graph_ResetXAxisOrigin( |
jmitc91516 | 0:9140ec6aa604 | 3473 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3474 | GuiConst_INT8S AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 3475 | { |
jmitc91516 | 0:9140ec6aa604 | 3476 | GuiConst_INT8U AxisIndex1,AxisIndex2; |
jmitc91516 | 0:9140ec6aa604 | 3477 | GuiConst_INT8U I; |
jmitc91516 | 0:9140ec6aa604 | 3478 | |
jmitc91516 | 0:9140ec6aa604 | 3479 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3480 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3481 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3482 | if (AxisIndex == -1) |
jmitc91516 | 0:9140ec6aa604 | 3483 | { |
jmitc91516 | 0:9140ec6aa604 | 3484 | AxisIndex1 = 0; |
jmitc91516 | 0:9140ec6aa604 | 3485 | AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] - 1; |
jmitc91516 | 0:9140ec6aa604 | 3486 | } |
jmitc91516 | 0:9140ec6aa604 | 3487 | else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3488 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X])) |
jmitc91516 | 0:9140ec6aa604 | 3489 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3490 | else |
jmitc91516 | 0:9140ec6aa604 | 3491 | { |
jmitc91516 | 0:9140ec6aa604 | 3492 | AxisIndex1 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3493 | AxisIndex2 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3494 | } |
jmitc91516 | 0:9140ec6aa604 | 3495 | |
jmitc91516 | 0:9140ec6aa604 | 3496 | for (I = AxisIndex1; I <= AxisIndex2; I++) |
jmitc91516 | 0:9140ec6aa604 | 3497 | { |
jmitc91516 | 0:9140ec6aa604 | 3498 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMinValue = |
jmitc91516 | 0:9140ec6aa604 | 3499 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMinValueOrg; |
jmitc91516 | 0:9140ec6aa604 | 3500 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMaxValue = |
jmitc91516 | 0:9140ec6aa604 | 3501 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMaxValueOrg; |
jmitc91516 | 0:9140ec6aa604 | 3502 | } |
jmitc91516 | 0:9140ec6aa604 | 3503 | |
jmitc91516 | 0:9140ec6aa604 | 3504 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3505 | } |
jmitc91516 | 0:9140ec6aa604 | 3506 | |
jmitc91516 | 0:9140ec6aa604 | 3507 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3508 | GuiConst_INT8U GuiLib_Graph_OffsetXAxisOrigin( |
jmitc91516 | 0:9140ec6aa604 | 3509 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3510 | GuiConst_INT8S AxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 3511 | GuiConst_INT32S Offset) |
jmitc91516 | 0:9140ec6aa604 | 3512 | { |
jmitc91516 | 0:9140ec6aa604 | 3513 | GuiConst_INT8U AxisIndex1,AxisIndex2; |
jmitc91516 | 0:9140ec6aa604 | 3514 | GuiConst_INT8U I; |
jmitc91516 | 0:9140ec6aa604 | 3515 | |
jmitc91516 | 0:9140ec6aa604 | 3516 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3517 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3518 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3519 | if (AxisIndex == -1) |
jmitc91516 | 0:9140ec6aa604 | 3520 | { |
jmitc91516 | 0:9140ec6aa604 | 3521 | AxisIndex1 = 0; |
jmitc91516 | 0:9140ec6aa604 | 3522 | AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] - 1; |
jmitc91516 | 0:9140ec6aa604 | 3523 | } |
jmitc91516 | 0:9140ec6aa604 | 3524 | else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3525 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X])) |
jmitc91516 | 0:9140ec6aa604 | 3526 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3527 | else |
jmitc91516 | 0:9140ec6aa604 | 3528 | { |
jmitc91516 | 0:9140ec6aa604 | 3529 | AxisIndex1 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3530 | AxisIndex2 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3531 | } |
jmitc91516 | 0:9140ec6aa604 | 3532 | |
jmitc91516 | 0:9140ec6aa604 | 3533 | for (I = AxisIndex1; I <= AxisIndex2; I++) |
jmitc91516 | 0:9140ec6aa604 | 3534 | { |
jmitc91516 | 0:9140ec6aa604 | 3535 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMinValue += Offset; |
jmitc91516 | 0:9140ec6aa604 | 3536 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMaxValue += Offset; |
jmitc91516 | 0:9140ec6aa604 | 3537 | } |
jmitc91516 | 0:9140ec6aa604 | 3538 | |
jmitc91516 | 0:9140ec6aa604 | 3539 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3540 | } |
jmitc91516 | 0:9140ec6aa604 | 3541 | |
jmitc91516 | 0:9140ec6aa604 | 3542 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3543 | GuiConst_INT8U GuiLib_Graph_ResetYAxisOrigin( |
jmitc91516 | 0:9140ec6aa604 | 3544 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3545 | GuiConst_INT8S AxisIndex) |
jmitc91516 | 0:9140ec6aa604 | 3546 | { |
jmitc91516 | 0:9140ec6aa604 | 3547 | GuiConst_INT8U AxisIndex1,AxisIndex2; |
jmitc91516 | 0:9140ec6aa604 | 3548 | GuiConst_INT8U I; |
jmitc91516 | 0:9140ec6aa604 | 3549 | |
jmitc91516 | 0:9140ec6aa604 | 3550 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3551 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3552 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3553 | if (AxisIndex == -1) |
jmitc91516 | 0:9140ec6aa604 | 3554 | { |
jmitc91516 | 0:9140ec6aa604 | 3555 | AxisIndex1 = 0; |
jmitc91516 | 0:9140ec6aa604 | 3556 | AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] - 1; |
jmitc91516 | 0:9140ec6aa604 | 3557 | } |
jmitc91516 | 0:9140ec6aa604 | 3558 | else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3559 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y])) |
jmitc91516 | 0:9140ec6aa604 | 3560 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3561 | else |
jmitc91516 | 0:9140ec6aa604 | 3562 | { |
jmitc91516 | 0:9140ec6aa604 | 3563 | AxisIndex1 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3564 | AxisIndex2 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3565 | } |
jmitc91516 | 0:9140ec6aa604 | 3566 | |
jmitc91516 | 0:9140ec6aa604 | 3567 | for (I = AxisIndex1; I <= AxisIndex2; I++) |
jmitc91516 | 0:9140ec6aa604 | 3568 | { |
jmitc91516 | 0:9140ec6aa604 | 3569 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMinValue = |
jmitc91516 | 0:9140ec6aa604 | 3570 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMinValueOrg; |
jmitc91516 | 0:9140ec6aa604 | 3571 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMaxValue = |
jmitc91516 | 0:9140ec6aa604 | 3572 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMaxValueOrg; |
jmitc91516 | 0:9140ec6aa604 | 3573 | } |
jmitc91516 | 0:9140ec6aa604 | 3574 | |
jmitc91516 | 0:9140ec6aa604 | 3575 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3576 | } |
jmitc91516 | 0:9140ec6aa604 | 3577 | |
jmitc91516 | 0:9140ec6aa604 | 3578 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3579 | GuiConst_INT8U GuiLib_Graph_OffsetYAxisOrigin( |
jmitc91516 | 0:9140ec6aa604 | 3580 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3581 | GuiConst_INT8S AxisIndex, |
jmitc91516 | 0:9140ec6aa604 | 3582 | GuiConst_INT32S Offset) |
jmitc91516 | 0:9140ec6aa604 | 3583 | { |
jmitc91516 | 0:9140ec6aa604 | 3584 | GuiConst_INT8U AxisIndex1,AxisIndex2; |
jmitc91516 | 0:9140ec6aa604 | 3585 | GuiConst_INT8U I; |
jmitc91516 | 0:9140ec6aa604 | 3586 | |
jmitc91516 | 0:9140ec6aa604 | 3587 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3588 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3589 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3590 | if (AxisIndex == -1) |
jmitc91516 | 0:9140ec6aa604 | 3591 | { |
jmitc91516 | 0:9140ec6aa604 | 3592 | AxisIndex1 = 0; |
jmitc91516 | 0:9140ec6aa604 | 3593 | AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] - 1; |
jmitc91516 | 0:9140ec6aa604 | 3594 | } |
jmitc91516 | 0:9140ec6aa604 | 3595 | else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3596 | (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y])) |
jmitc91516 | 0:9140ec6aa604 | 3597 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3598 | else |
jmitc91516 | 0:9140ec6aa604 | 3599 | { |
jmitc91516 | 0:9140ec6aa604 | 3600 | AxisIndex1 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3601 | AxisIndex2 = AxisIndex; |
jmitc91516 | 0:9140ec6aa604 | 3602 | } |
jmitc91516 | 0:9140ec6aa604 | 3603 | |
jmitc91516 | 0:9140ec6aa604 | 3604 | for (I = AxisIndex1; I <= AxisIndex2; I++) |
jmitc91516 | 0:9140ec6aa604 | 3605 | { |
jmitc91516 | 0:9140ec6aa604 | 3606 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMinValue += Offset; |
jmitc91516 | 0:9140ec6aa604 | 3607 | sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMaxValue += Offset; |
jmitc91516 | 0:9140ec6aa604 | 3608 | } |
jmitc91516 | 0:9140ec6aa604 | 3609 | |
jmitc91516 | 0:9140ec6aa604 | 3610 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3611 | } |
jmitc91516 | 0:9140ec6aa604 | 3612 | |
jmitc91516 | 0:9140ec6aa604 | 3613 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3614 | GuiConst_INT8U GuiLib_Graph_Redraw( |
jmitc91516 | 0:9140ec6aa604 | 3615 | GuiConst_INT8U GraphIndex) |
jmitc91516 | 0:9140ec6aa604 | 3616 | { |
jmitc91516 | 0:9140ec6aa604 | 3617 | GuiConst_INT16S I; |
jmitc91516 | 0:9140ec6aa604 | 3618 | |
jmitc91516 | 0:9140ec6aa604 | 3619 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3620 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3621 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3622 | |
jmitc91516 | 0:9140ec6aa604 | 3623 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3624 | Graph_SetClipping(GraphIndex); |
jmitc91516 | 0:9140ec6aa604 | 3625 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3626 | |
jmitc91516 | 0:9140ec6aa604 | 3627 | GuiLib_Graph_DrawAxes(GraphIndex); |
jmitc91516 | 0:9140ec6aa604 | 3628 | |
jmitc91516 | 0:9140ec6aa604 | 3629 | for (I = sgl.GraphAry[GraphIndex].GraphDataSetCnt - 1; I >= 0; I--) |
jmitc91516 | 0:9140ec6aa604 | 3630 | GuiLib_Graph_DrawDataSet(GraphIndex, I); |
jmitc91516 | 0:9140ec6aa604 | 3631 | |
jmitc91516 | 0:9140ec6aa604 | 3632 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3633 | Graph_ResetClipping(); |
jmitc91516 | 0:9140ec6aa604 | 3634 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3635 | |
jmitc91516 | 0:9140ec6aa604 | 3636 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3637 | } |
jmitc91516 | 0:9140ec6aa604 | 3638 | |
jmitc91516 | 0:9140ec6aa604 | 3639 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3640 | GuiConst_INT8U GuiLib_Graph_DrawAxes( |
jmitc91516 | 0:9140ec6aa604 | 3641 | GuiConst_INT8U GraphIndex) |
jmitc91516 | 0:9140ec6aa604 | 3642 | { |
jmitc91516 | 0:9140ec6aa604 | 3643 | GuiConst_INT16S I; |
jmitc91516 | 0:9140ec6aa604 | 3644 | |
jmitc91516 | 0:9140ec6aa604 | 3645 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3646 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3647 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3648 | |
jmitc91516 | 0:9140ec6aa604 | 3649 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3650 | Graph_SetClipping(GraphIndex); |
jmitc91516 | 0:9140ec6aa604 | 3651 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3652 | |
jmitc91516 | 0:9140ec6aa604 | 3653 | if (!(sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].BitFlags & |
jmitc91516 | 0:9140ec6aa604 | 3654 | GuiLib_BITFLAG_TRANSPARENT)) |
jmitc91516 | 0:9140ec6aa604 | 3655 | GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1, |
jmitc91516 | 0:9140ec6aa604 | 3656 | sgl.GraphAry[GraphIndex].GraphItem.Y1, |
jmitc91516 | 0:9140ec6aa604 | 3657 | sgl.GraphAry[GraphIndex].GraphItem.X2, |
jmitc91516 | 0:9140ec6aa604 | 3658 | sgl.GraphAry[GraphIndex].GraphItem.Y2, |
jmitc91516 | 0:9140ec6aa604 | 3659 | sgl.GraphAry[GraphIndex].GraphItem.BackColor); |
jmitc91516 | 0:9140ec6aa604 | 3660 | |
jmitc91516 | 0:9140ec6aa604 | 3661 | for (I = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] - 1; |
jmitc91516 | 0:9140ec6aa604 | 3662 | I >= 0; I--) |
jmitc91516 | 0:9140ec6aa604 | 3663 | if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].Visible) |
jmitc91516 | 0:9140ec6aa604 | 3664 | Graph_DrawXAxis(GraphIndex, I); |
jmitc91516 | 0:9140ec6aa604 | 3665 | |
jmitc91516 | 0:9140ec6aa604 | 3666 | for (I = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] - 1; |
jmitc91516 | 0:9140ec6aa604 | 3667 | I >= 0; I--) |
jmitc91516 | 0:9140ec6aa604 | 3668 | if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].Visible) |
jmitc91516 | 0:9140ec6aa604 | 3669 | Graph_DrawYAxis(GraphIndex, I); |
jmitc91516 | 0:9140ec6aa604 | 3670 | |
jmitc91516 | 0:9140ec6aa604 | 3671 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3672 | Graph_ResetClipping(); |
jmitc91516 | 0:9140ec6aa604 | 3673 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3674 | |
jmitc91516 | 0:9140ec6aa604 | 3675 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3676 | } |
jmitc91516 | 0:9140ec6aa604 | 3677 | |
jmitc91516 | 0:9140ec6aa604 | 3678 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3679 | GuiConst_INT8U GuiLib_Graph_DrawDataSet( |
jmitc91516 | 0:9140ec6aa604 | 3680 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3681 | GuiConst_INT8U DataSetIndex) |
jmitc91516 | 0:9140ec6aa604 | 3682 | { |
jmitc91516 | 0:9140ec6aa604 | 3683 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3684 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3685 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3686 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3687 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3688 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3689 | if (!sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible) |
jmitc91516 | 0:9140ec6aa604 | 3690 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3691 | if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize == 0) |
jmitc91516 | 0:9140ec6aa604 | 3692 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3693 | |
jmitc91516 | 0:9140ec6aa604 | 3694 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3695 | Graph_SetClipping(GraphIndex); |
jmitc91516 | 0:9140ec6aa604 | 3696 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3697 | |
jmitc91516 | 0:9140ec6aa604 | 3698 | Graph_DrawDataSet(GraphIndex, DataSetIndex); |
jmitc91516 | 0:9140ec6aa604 | 3699 | |
jmitc91516 | 0:9140ec6aa604 | 3700 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3701 | Graph_ResetClipping(); |
jmitc91516 | 0:9140ec6aa604 | 3702 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3703 | |
jmitc91516 | 0:9140ec6aa604 | 3704 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3705 | } |
jmitc91516 | 0:9140ec6aa604 | 3706 | |
jmitc91516 | 0:9140ec6aa604 | 3707 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3708 | GuiConst_INT8U GuiLib_Graph_DrawDataPoint( |
jmitc91516 | 0:9140ec6aa604 | 3709 | GuiConst_INT8U GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3710 | GuiConst_INT8U DataSetIndex, |
jmitc91516 | 0:9140ec6aa604 | 3711 | GuiConst_INT16U DataIndex) |
jmitc91516 | 0:9140ec6aa604 | 3712 | { |
jmitc91516 | 0:9140ec6aa604 | 3713 | GuiConst_INT16S Y; |
jmitc91516 | 0:9140ec6aa604 | 3714 | GuiConst_INT16S DX, DY; |
jmitc91516 | 0:9140ec6aa604 | 3715 | GuiConst_INT16S LastDX, LastDY; |
jmitc91516 | 0:9140ec6aa604 | 3716 | GuiConst_INT32S TX, TY; |
jmitc91516 | 0:9140ec6aa604 | 3717 | |
jmitc91516 | 0:9140ec6aa604 | 3718 | if ((GraphIndex >= GuiConst_GRAPH_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3719 | (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED)) |
jmitc91516 | 0:9140ec6aa604 | 3720 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3721 | if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) || |
jmitc91516 | 0:9140ec6aa604 | 3722 | (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt)) |
jmitc91516 | 0:9140ec6aa604 | 3723 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3724 | if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize == 0) |
jmitc91516 | 0:9140ec6aa604 | 3725 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3726 | if (!sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible) |
jmitc91516 | 0:9140ec6aa604 | 3727 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3728 | if (DataIndex >= sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount) |
jmitc91516 | 0:9140ec6aa604 | 3729 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3730 | |
jmitc91516 | 0:9140ec6aa604 | 3731 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3732 | Graph_SetClipping(GraphIndex); |
jmitc91516 | 0:9140ec6aa604 | 3733 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3734 | |
jmitc91516 | 0:9140ec6aa604 | 3735 | Graph_CalcScaleX(GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3736 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX); |
jmitc91516 | 0:9140ec6aa604 | 3737 | Graph_CalcScaleY(GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3738 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY); |
jmitc91516 | 0:9140ec6aa604 | 3739 | |
jmitc91516 | 0:9140ec6aa604 | 3740 | TX = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].X; |
jmitc91516 | 0:9140ec6aa604 | 3741 | TY = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].Y; |
jmitc91516 | 0:9140ec6aa604 | 3742 | DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX - |
jmitc91516 | 0:9140ec6aa604 | 3743 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3744 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX] |
jmitc91516 | 0:9140ec6aa604 | 3745 | [GuiLib_GRAPHAXIS_X].NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 3746 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3747 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX] |
jmitc91516 | 0:9140ec6aa604 | 3748 | [GuiLib_GRAPHAXIS_X].Scale) / 10000; |
jmitc91516 | 0:9140ec6aa604 | 3749 | DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY - |
jmitc91516 | 0:9140ec6aa604 | 3750 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3751 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY] |
jmitc91516 | 0:9140ec6aa604 | 3752 | [GuiLib_GRAPHAXIS_Y].NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 3753 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3754 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY] |
jmitc91516 | 0:9140ec6aa604 | 3755 | [GuiLib_GRAPHAXIS_Y].Scale) / 10000; |
jmitc91516 | 0:9140ec6aa604 | 3756 | if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Representation == |
jmitc91516 | 0:9140ec6aa604 | 3757 | GuiLib_GRAPH_DATATYPE_LINE) |
jmitc91516 | 0:9140ec6aa604 | 3758 | { |
jmitc91516 | 0:9140ec6aa604 | 3759 | if (DataIndex == 0) |
jmitc91516 | 0:9140ec6aa604 | 3760 | DataIndex = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount - 1; |
jmitc91516 | 0:9140ec6aa604 | 3761 | else |
jmitc91516 | 0:9140ec6aa604 | 3762 | DataIndex--; |
jmitc91516 | 0:9140ec6aa604 | 3763 | |
jmitc91516 | 0:9140ec6aa604 | 3764 | TX = |
jmitc91516 | 0:9140ec6aa604 | 3765 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].X; |
jmitc91516 | 0:9140ec6aa604 | 3766 | TY = |
jmitc91516 | 0:9140ec6aa604 | 3767 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].Y; |
jmitc91516 | 0:9140ec6aa604 | 3768 | LastDX = sgl.GraphAry[GraphIndex].OrigoX + ((TX - |
jmitc91516 | 0:9140ec6aa604 | 3769 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3770 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX] |
jmitc91516 | 0:9140ec6aa604 | 3771 | [GuiLib_GRAPHAXIS_X].NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 3772 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3773 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX] |
jmitc91516 | 0:9140ec6aa604 | 3774 | [GuiLib_GRAPHAXIS_X].Scale) / 10000; |
jmitc91516 | 0:9140ec6aa604 | 3775 | LastDY = sgl.GraphAry[GraphIndex].OrigoY - ((TY - |
jmitc91516 | 0:9140ec6aa604 | 3776 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3777 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY] |
jmitc91516 | 0:9140ec6aa604 | 3778 | [GuiLib_GRAPHAXIS_Y].NumbersMinValue) * |
jmitc91516 | 0:9140ec6aa604 | 3779 | sgl.GraphAry[GraphIndex].GraphAxes[ |
jmitc91516 | 0:9140ec6aa604 | 3780 | sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY] |
jmitc91516 | 0:9140ec6aa604 | 3781 | [GuiLib_GRAPHAXIS_Y].Scale) / 10000; |
jmitc91516 | 0:9140ec6aa604 | 3782 | } |
jmitc91516 | 0:9140ec6aa604 | 3783 | else |
jmitc91516 | 0:9140ec6aa604 | 3784 | { |
jmitc91516 | 0:9140ec6aa604 | 3785 | LastDX = DX; |
jmitc91516 | 0:9140ec6aa604 | 3786 | LastDY = DY; |
jmitc91516 | 0:9140ec6aa604 | 3787 | } |
jmitc91516 | 0:9140ec6aa604 | 3788 | |
jmitc91516 | 0:9140ec6aa604 | 3789 | Graph_DrawDataPoint( |
jmitc91516 | 0:9140ec6aa604 | 3790 | GraphIndex, |
jmitc91516 | 0:9140ec6aa604 | 3791 | DataSetIndex, |
jmitc91516 | 0:9140ec6aa604 | 3792 | DataIndex, |
jmitc91516 | 0:9140ec6aa604 | 3793 | DX, DY, |
jmitc91516 | 0:9140ec6aa604 | 3794 | LastDX, LastDY); |
jmitc91516 | 0:9140ec6aa604 | 3795 | |
jmitc91516 | 0:9140ec6aa604 | 3796 | #ifdef GuiConst_CLIPPING_SUPPORT_ON |
jmitc91516 | 0:9140ec6aa604 | 3797 | Graph_ResetClipping(); |
jmitc91516 | 0:9140ec6aa604 | 3798 | #endif |
jmitc91516 | 0:9140ec6aa604 | 3799 | |
jmitc91516 | 0:9140ec6aa604 | 3800 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3801 | } |
jmitc91516 | 0:9140ec6aa604 | 3802 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3803 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3804 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3805 | #endif // GuiConst_ITEM_GRAPH_INUSE |
jmitc91516 | 0:9140ec6aa604 | 3806 | |
jmitc91516 | 0:9140ec6aa604 | 3807 | #ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE |
jmitc91516 | 0:9140ec6aa604 | 3808 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3809 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3810 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3811 | static GuiConst_INT16S IndexOfGraphicsLayer( |
jmitc91516 | 0:9140ec6aa604 | 3812 | GuiConst_INT16S GraphicsLayerIndex) |
jmitc91516 | 0:9140ec6aa604 | 3813 | { |
jmitc91516 | 0:9140ec6aa604 | 3814 | GuiConst_INT16S I; |
jmitc91516 | 0:9140ec6aa604 | 3815 | |
jmitc91516 | 0:9140ec6aa604 | 3816 | if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_BASE) |
jmitc91516 | 0:9140ec6aa604 | 3817 | return(GuiLib_GRAPHICS_LAYER_BASE); |
jmitc91516 | 0:9140ec6aa604 | 3818 | else if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_PREVIOUS) |
jmitc91516 | 0:9140ec6aa604 | 3819 | { |
jmitc91516 | 0:9140ec6aa604 | 3820 | if (sgl.GraphicsLayerLifoCnt <= 1) |
jmitc91516 | 0:9140ec6aa604 | 3821 | return(GuiLib_GRAPHICS_LAYER_BASE); |
jmitc91516 | 0:9140ec6aa604 | 3822 | else |
jmitc91516 | 0:9140ec6aa604 | 3823 | return(sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 2]); |
jmitc91516 | 0:9140ec6aa604 | 3824 | } |
jmitc91516 | 0:9140ec6aa604 | 3825 | else if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_CURRENT) |
jmitc91516 | 0:9140ec6aa604 | 3826 | { |
jmitc91516 | 0:9140ec6aa604 | 3827 | if (sgl.GraphicsLayerLifoCnt > 0) |
jmitc91516 | 0:9140ec6aa604 | 3828 | return(sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1]); |
jmitc91516 | 0:9140ec6aa604 | 3829 | else |
jmitc91516 | 0:9140ec6aa604 | 3830 | return(GuiLib_GRAPHICS_LAYER_BASE); |
jmitc91516 | 0:9140ec6aa604 | 3831 | } |
jmitc91516 | 0:9140ec6aa604 | 3832 | else if (GraphicsLayerIndex < 0) |
jmitc91516 | 0:9140ec6aa604 | 3833 | return(GuiLib_GRAPHICS_LAYER_BASE); |
jmitc91516 | 0:9140ec6aa604 | 3834 | else if (sgl.GraphicsLayerLifoCnt <= 1) |
jmitc91516 | 0:9140ec6aa604 | 3835 | return(GuiLib_GRAPHICS_LAYER_BASE); |
jmitc91516 | 0:9140ec6aa604 | 3836 | for (I = 0; I < sgl.GraphicsLayerLifoCnt; I++) |
jmitc91516 | 0:9140ec6aa604 | 3837 | if (sgl.GraphicsLayerLifo[I] == GraphicsLayerIndex) |
jmitc91516 | 0:9140ec6aa604 | 3838 | return(GraphicsLayerIndex); |
jmitc91516 | 0:9140ec6aa604 | 3839 | return(GuiLib_GRAPHICS_LAYER_BASE); |
jmitc91516 | 0:9140ec6aa604 | 3840 | } |
jmitc91516 | 0:9140ec6aa604 | 3841 | |
jmitc91516 | 0:9140ec6aa604 | 3842 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3843 | static GuiConst_INT8U GraphicsLayer_Push( |
jmitc91516 | 0:9140ec6aa604 | 3844 | GuiConst_INT8U GraphicsLayerIndex) |
jmitc91516 | 0:9140ec6aa604 | 3845 | { |
jmitc91516 | 0:9140ec6aa604 | 3846 | GuiConst_INT16S I; |
jmitc91516 | 0:9140ec6aa604 | 3847 | |
jmitc91516 | 0:9140ec6aa604 | 3848 | if (GraphicsLayerIndex >= GuiConst_GRAPHICS_LAYER_MAX) |
jmitc91516 | 0:9140ec6aa604 | 3849 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3850 | if (sgl.GraphicsLayerList[GraphicsLayerIndex].InUse != GuiLib_GRAPHICS_LAYER_USED) |
jmitc91516 | 0:9140ec6aa604 | 3851 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3852 | if (sgl.GraphicsLayerLifoCnt == GuiConst_GRAPHICS_LAYER_MAX) |
jmitc91516 | 0:9140ec6aa604 | 3853 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3854 | for (I = 0; I < sgl.GraphicsLayerLifoCnt; I++) |
jmitc91516 | 0:9140ec6aa604 | 3855 | if (sgl.GraphicsLayerLifo[I] == GraphicsLayerIndex) |
jmitc91516 | 0:9140ec6aa604 | 3856 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3857 | |
jmitc91516 | 0:9140ec6aa604 | 3858 | sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt] = GraphicsLayerIndex; |
jmitc91516 | 0:9140ec6aa604 | 3859 | sgl.GraphicsLayerLifoCnt++; |
jmitc91516 | 0:9140ec6aa604 | 3860 | sgl.GraphicsLayerList[GraphicsLayerIndex].BaseAddress = |
jmitc91516 | 0:9140ec6aa604 | 3861 | &sgl.LayerBuf[(GuiConst_INT32U)ReadWord( |
jmitc91516 | 0:9140ec6aa604 | 3862 | GuiStruct_GraphicsLayerOfs[GraphicsLayerIndex])]; |
jmitc91516 | 0:9140ec6aa604 | 3863 | |
jmitc91516 | 0:9140ec6aa604 | 3864 | sgl.CurLayerBufPtr = sgl.GraphicsLayerList[GraphicsLayerIndex].BaseAddress; |
jmitc91516 | 0:9140ec6aa604 | 3865 | sgl.CurLayerLineSize = sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize; |
jmitc91516 | 0:9140ec6aa604 | 3866 | sgl.CurLayerWidth = sgl.GraphicsLayerList[GraphicsLayerIndex].Width; |
jmitc91516 | 0:9140ec6aa604 | 3867 | sgl.CurLayerHeight = sgl.GraphicsLayerList[GraphicsLayerIndex].Height; |
jmitc91516 | 0:9140ec6aa604 | 3868 | sgl.CurLayerBytes = |
jmitc91516 | 0:9140ec6aa604 | 3869 | sgl.GraphicsLayerList[GraphicsLayerIndex].Height * |
jmitc91516 | 0:9140ec6aa604 | 3870 | sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize; |
jmitc91516 | 0:9140ec6aa604 | 3871 | sgl.BaseLayerDrawing = 0; |
jmitc91516 | 0:9140ec6aa604 | 3872 | |
jmitc91516 | 0:9140ec6aa604 | 3873 | return(1); |
jmitc91516 | 0:9140ec6aa604 | 3874 | } |
jmitc91516 | 0:9140ec6aa604 | 3875 | |
jmitc91516 | 0:9140ec6aa604 | 3876 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3877 | static GuiConst_INT8U GraphicsLayer_Pop( |
jmitc91516 | 0:9140ec6aa604 | 3878 | GuiConst_INT16S GraphicsLayerIndex) |
jmitc91516 | 0:9140ec6aa604 | 3879 | { |
jmitc91516 | 0:9140ec6aa604 | 3880 | GuiConst_INT16S I; |
jmitc91516 | 0:9140ec6aa604 | 3881 | |
jmitc91516 | 0:9140ec6aa604 | 3882 | if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_BASE) |
jmitc91516 | 0:9140ec6aa604 | 3883 | sgl.GraphicsLayerLifoCnt = 0; |
jmitc91516 | 0:9140ec6aa604 | 3884 | else if ((GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_PREVIOUS) && |
jmitc91516 | 0:9140ec6aa604 | 3885 | (sgl.GraphicsLayerLifoCnt > 0)) |
jmitc91516 | 0:9140ec6aa604 | 3886 | { |
jmitc91516 | 0:9140ec6aa604 | 3887 | sgl.GraphicsLayerLifoCnt--; |
jmitc91516 | 0:9140ec6aa604 | 3888 | GraphicsLayerIndex = sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1]; |
jmitc91516 | 0:9140ec6aa604 | 3889 | } |
jmitc91516 | 0:9140ec6aa604 | 3890 | else if (GraphicsLayerIndex < 0) |
jmitc91516 | 0:9140ec6aa604 | 3891 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3892 | else if (sgl.GraphicsLayerLifoCnt <= 1) |
jmitc91516 | 0:9140ec6aa604 | 3893 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3894 | else |
jmitc91516 | 0:9140ec6aa604 | 3895 | { |
jmitc91516 | 0:9140ec6aa604 | 3896 | for (I = sgl.GraphicsLayerLifoCnt - 2; I >= 0; I--) |
jmitc91516 | 0:9140ec6aa604 | 3897 | if (sgl.GraphicsLayerLifo[I] == GraphicsLayerIndex) |
jmitc91516 | 0:9140ec6aa604 | 3898 | { |
jmitc91516 | 0:9140ec6aa604 | 3899 | sgl.GraphicsLayerLifoCnt = I + 1; |
jmitc91516 | 0:9140ec6aa604 | 3900 | break; |
jmitc91516 | 0:9140ec6aa604 | 3901 | } |
jmitc91516 | 0:9140ec6aa604 | 3902 | if (I == -1) |
jmitc91516 | 0:9140ec6aa604 | 3903 | return(0); |
jmitc91516 | 0:9140ec6aa604 | 3904 | } |
jmitc91516 | 0:9140ec6aa604 | 3905 | |
jmitc91516 | 0:9140ec6aa604 | 3906 | if (sgl.GraphicsLayerLifoCnt == 0) |
jmitc91516 | 0:9140ec6aa604 | 3907 | ResetLayerBufPtr(); |
jmitc91516 | 0:9140ec6aa604 | 3908 | else |
jmitc91516 | 0:9140ec6aa604 | 3909 | { |
jmitc91516 | 0:9140ec6aa604 | 3910 | sgl.CurLayerBufPtr = sgl.GraphicsLayerList[GraphicsLayerIndex].BaseAddress; |
jmitc91516 | 0:9140ec6aa604 | 3911 | sgl.CurLayerLineSize = sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize; |
jmitc91516 | 0:9140ec6aa604 | 3912 | sgl.CurLayerWidth = sgl.GraphicsLayerList[GraphicsLayerIndex].Width; |
jmitc91516 | 0:9140ec6aa604 | 3913 | sgl.CurLayerHeight = sgl.GraphicsLayerList[GraphicsLayerIndex].Height; |
jmitc91516 | 0:9140ec6aa604 | 3914 | sgl.CurLayerBytes = |
jmitc91516 | 0:9140ec6aa604 | 3915 | sgl.GraphicsLayerList[GraphicsLayerIndex].Height * |
jmitc91516 | 0:9140ec6aa604 | 3916 | sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize; |
jmitc91516 | 0:9140ec6aa604 | 3917 | sgl.BaseLayerDrawing = 0; |
jmitc91516 | 0:9140ec6aa604 | 3918 | } |
jmitc91516 | 0:9140ec6aa604 | 3919 | |
jmitc91516 | 0:9140ec6aa604 | 3920 | return(1); |
jmitc91516 | 0:9140ec6aa604 | 3921 | } |
jmitc91516 | 0:9140ec6aa604 | 3922 | |
jmitc91516 | 0:9140ec6aa604 | 3923 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3924 | static void GraphicsLayer_Copy( |
jmitc91516 | 0:9140ec6aa604 | 3925 | GuiConst_INT8U *DestAddress, |
jmitc91516 | 0:9140ec6aa604 | 3926 | GuiConst_INT16U DestLineSize, |
jmitc91516 | 0:9140ec6aa604 | 3927 | GuiConst_INT16S DestX, |
jmitc91516 | 0:9140ec6aa604 | 3928 | GuiConst_INT16S DestY, |
jmitc91516 | 0:9140ec6aa604 | 3929 | GuiConst_INT8U *SourceAddress, |
jmitc91516 | 0:9140ec6aa604 | 3930 | GuiConst_INT16U SourceLineSize, |
jmitc91516 | 0:9140ec6aa604 | 3931 | GuiConst_INT16S SourceX, |
jmitc91516 | 0:9140ec6aa604 | 3932 | GuiConst_INT16S SourceY, |
jmitc91516 | 0:9140ec6aa604 | 3933 | GuiConst_INT16U Width, |
jmitc91516 | 0:9140ec6aa604 | 3934 | GuiConst_INT16U Height) |
jmitc91516 | 0:9140ec6aa604 | 3935 | { |
jmitc91516 | 0:9140ec6aa604 | 3936 | GuiConst_INT16S LineSize; |
jmitc91516 | 0:9140ec6aa604 | 3937 | |
jmitc91516 | 0:9140ec6aa604 | 3938 | SourceAddress += |
jmitc91516 | 0:9140ec6aa604 | 3939 | SourceY * SourceLineSize + GuiConst_PIXEL_BYTE_SIZE * SourceX; |
jmitc91516 | 0:9140ec6aa604 | 3940 | DestAddress += DestY * DestLineSize + GuiConst_PIXEL_BYTE_SIZE * DestX; |
jmitc91516 | 0:9140ec6aa604 | 3941 | LineSize = GuiConst_PIXEL_BYTE_SIZE * Width; |
jmitc91516 | 0:9140ec6aa604 | 3942 | while (Height > 0) |
jmitc91516 | 0:9140ec6aa604 | 3943 | { |
jmitc91516 | 0:9140ec6aa604 | 3944 | memcpy(DestAddress, SourceAddress, LineSize); |
jmitc91516 | 0:9140ec6aa604 | 3945 | SourceAddress += SourceLineSize; |
jmitc91516 | 0:9140ec6aa604 | 3946 | DestAddress += DestLineSize; |
jmitc91516 | 0:9140ec6aa604 | 3947 | Height--; |
jmitc91516 | 0:9140ec6aa604 | 3948 | } |
jmitc91516 | 0:9140ec6aa604 | 3949 | } |
jmitc91516 | 0:9140ec6aa604 | 3950 | |
jmitc91516 | 0:9140ec6aa604 | 3951 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3952 | GuiConst_INT8U GuiLib_GraphicsFilter_Init( |
jmitc91516 | 0:9140ec6aa604 | 3953 | GuiConst_INT8U GraphicsFilterIndex, |
jmitc91516 | 0:9140ec6aa604 | 3954 | void (*FilterFuncPtr) |
jmitc91516 | 0:9140ec6aa604 | 3955 | (GuiConst_INT8U *DestAddress, |
jmitc91516 | 0:9140ec6aa604 | 3956 | GuiConst_INT16U DestLineSize, |
jmitc91516 | 0:9140ec6aa604 | 3957 | GuiConst_INT8U *SourceAddress, |
jmitc91516 | 0:9140ec6aa604 | 3958 | GuiConst_INT16U SourceLineSize, |
jmitc91516 | 0:9140ec6aa604 | 3959 | GuiConst_INT16U Width, |
jmitc91516 | 0:9140ec6aa604 | 3960 | GuiConst_INT16U Height, |
jmitc91516 | 0:9140ec6aa604 | 3961 | GuiConst_INT32S FilterPars[10])) |
jmitc91516 | 0:9140ec6aa604 | 3962 | { |
jmitc91516 | 0:9140ec6aa604 | 3963 | if (GraphicsFilterIndex >= GuiConst_GRAPHICS_FILTER_MAX) |
jmitc91516 | 0:9140ec6aa604 | 3964 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 3965 | |
jmitc91516 | 0:9140ec6aa604 | 3966 | sgl.GraphicsFilterList[GraphicsFilterIndex].GraphicsFilterFunc = FilterFuncPtr; |
jmitc91516 | 0:9140ec6aa604 | 3967 | |
jmitc91516 | 0:9140ec6aa604 | 3968 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 3969 | } |
jmitc91516 | 0:9140ec6aa604 | 3970 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3971 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3972 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3973 | #endif // GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE |
jmitc91516 | 0:9140ec6aa604 | 3974 | |
jmitc91516 | 0:9140ec6aa604 | 3975 | #ifdef GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 3976 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3977 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3978 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3979 | GuiConst_INT16S *TextBox_Scroll_GetPosRec(GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 3980 | { |
jmitc91516 | 0:9140ec6aa604 | 3981 | GuiConst_INT16S I; |
jmitc91516 | 0:9140ec6aa604 | 3982 | GuiConst_INT16S *result = NULL; |
jmitc91516 | 0:9140ec6aa604 | 3983 | |
jmitc91516 | 0:9140ec6aa604 | 3984 | for (I=0;I<GuiConst_TEXTBOX_FIELDS_MAX;I++) |
jmitc91516 | 0:9140ec6aa604 | 3985 | { |
jmitc91516 | 0:9140ec6aa604 | 3986 | if (sgl.TextBoxScrollPositions[I].index == TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 3987 | { |
jmitc91516 | 0:9140ec6aa604 | 3988 | result = &sgl.TextBoxScrollPositions[I].pos; |
jmitc91516 | 0:9140ec6aa604 | 3989 | break; |
jmitc91516 | 0:9140ec6aa604 | 3990 | } |
jmitc91516 | 0:9140ec6aa604 | 3991 | } |
jmitc91516 | 0:9140ec6aa604 | 3992 | |
jmitc91516 | 0:9140ec6aa604 | 3993 | return result; |
jmitc91516 | 0:9140ec6aa604 | 3994 | } |
jmitc91516 | 0:9140ec6aa604 | 3995 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 3996 | static GuiConst_INT16S TextBox_Scroll_CalcEndPos( |
jmitc91516 | 0:9140ec6aa604 | 3997 | GuiLib_ItemRec PrefixLocate *TextBoxItem, |
jmitc91516 | 0:9140ec6aa604 | 3998 | GuiConst_INT8U PerLine) |
jmitc91516 | 0:9140ec6aa604 | 3999 | { |
jmitc91516 | 0:9140ec6aa604 | 4000 | GuiConst_INT16S H; |
jmitc91516 | 0:9140ec6aa604 | 4001 | |
jmitc91516 | 0:9140ec6aa604 | 4002 | H = TextBoxItem->Y2 - |
jmitc91516 | 0:9140ec6aa604 | 4003 | TextBoxItem->Y1 + 1; |
jmitc91516 | 0:9140ec6aa604 | 4004 | if (PerLine) |
jmitc91516 | 0:9140ec6aa604 | 4005 | return (TextBoxItem->CompPars.CompTextBox.LineDist * |
jmitc91516 | 0:9140ec6aa604 | 4006 | (TextBoxItem->CompPars.CompTextBox.Lines - |
jmitc91516 | 0:9140ec6aa604 | 4007 | (H / TextBoxItem->CompPars.CompTextBox.LineDist))); |
jmitc91516 | 0:9140ec6aa604 | 4008 | else |
jmitc91516 | 0:9140ec6aa604 | 4009 | return (TextBoxItem->CompPars.CompTextBox.Lines * |
jmitc91516 | 0:9140ec6aa604 | 4010 | TextBoxItem->CompPars.CompTextBox.LineDist - H); |
jmitc91516 | 0:9140ec6aa604 | 4011 | } |
jmitc91516 | 0:9140ec6aa604 | 4012 | #endif // GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 4013 | |
jmitc91516 | 0:9140ec6aa604 | 4014 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4015 | static GuiConst_INT8U TextBox_Scroll_To( |
jmitc91516 | 0:9140ec6aa604 | 4016 | GuiConst_INT8U TextBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 4017 | GuiConst_INT16S NewPos, |
jmitc91516 | 0:9140ec6aa604 | 4018 | GuiConst_INT8U PerLine, |
jmitc91516 | 0:9140ec6aa604 | 4019 | GuiConst_INT8U AbsoluteMove) |
jmitc91516 | 0:9140ec6aa604 | 4020 | { |
jmitc91516 | 0:9140ec6aa604 | 4021 | #ifdef GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 4022 | GuiLib_ItemRec PrefixLocate *TextBoxItem; |
jmitc91516 | 0:9140ec6aa604 | 4023 | GuiConst_INT16S TextBox; |
jmitc91516 | 0:9140ec6aa604 | 4024 | GuiConst_INT16S PrefixLocate *ScrollPos; |
jmitc91516 | 0:9140ec6aa604 | 4025 | |
jmitc91516 | 0:9140ec6aa604 | 4026 | TextBox = AutoRedraw_GetTextBox(TextBoxIndex, -1); |
jmitc91516 | 0:9140ec6aa604 | 4027 | |
jmitc91516 | 0:9140ec6aa604 | 4028 | if (TextBox == -1) |
jmitc91516 | 0:9140ec6aa604 | 4029 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4030 | |
jmitc91516 | 0:9140ec6aa604 | 4031 | TextBoxItem = AutoRedraw_GetItem(TextBox); |
jmitc91516 | 0:9140ec6aa604 | 4032 | |
jmitc91516 | 0:9140ec6aa604 | 4033 | if (TextBoxItem == NULL) |
jmitc91516 | 0:9140ec6aa604 | 4034 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4035 | else |
jmitc91516 | 0:9140ec6aa604 | 4036 | { |
jmitc91516 | 0:9140ec6aa604 | 4037 | ScrollPos = TextBox_Scroll_GetPosRec(TextBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 4038 | |
jmitc91516 | 0:9140ec6aa604 | 4039 | if (ScrollPos == NULL) |
jmitc91516 | 0:9140ec6aa604 | 4040 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4041 | |
jmitc91516 | 0:9140ec6aa604 | 4042 | if (PerLine) |
jmitc91516 | 0:9140ec6aa604 | 4043 | NewPos *= TextBoxItem->CompPars.CompTextBox.LineDist; |
jmitc91516 | 0:9140ec6aa604 | 4044 | |
jmitc91516 | 0:9140ec6aa604 | 4045 | switch (AbsoluteMove) |
jmitc91516 | 0:9140ec6aa604 | 4046 | { |
jmitc91516 | 0:9140ec6aa604 | 4047 | case 0: |
jmitc91516 | 0:9140ec6aa604 | 4048 | *ScrollPos += NewPos; |
jmitc91516 | 0:9140ec6aa604 | 4049 | break; |
jmitc91516 | 0:9140ec6aa604 | 4050 | |
jmitc91516 | 0:9140ec6aa604 | 4051 | case 1: |
jmitc91516 | 0:9140ec6aa604 | 4052 | *ScrollPos = NewPos; |
jmitc91516 | 0:9140ec6aa604 | 4053 | break; |
jmitc91516 | 0:9140ec6aa604 | 4054 | |
jmitc91516 | 0:9140ec6aa604 | 4055 | case 2: |
jmitc91516 | 0:9140ec6aa604 | 4056 | *ScrollPos = TextBox_Scroll_CalcEndPos(TextBoxItem, PerLine); |
jmitc91516 | 0:9140ec6aa604 | 4057 | break; |
jmitc91516 | 0:9140ec6aa604 | 4058 | } |
jmitc91516 | 0:9140ec6aa604 | 4059 | |
jmitc91516 | 0:9140ec6aa604 | 4060 | TextBoxItem->CompPars.CompTextBox.ScrollPos = *ScrollPos; |
jmitc91516 | 0:9140ec6aa604 | 4061 | |
jmitc91516 | 0:9140ec6aa604 | 4062 | memcpy(&sgl.CurItem, TextBoxItem, sizeof(GuiLib_ItemRec)); |
jmitc91516 | 0:9140ec6aa604 | 4063 | |
jmitc91516 | 0:9140ec6aa604 | 4064 | GuiDisplay_Lock(); |
jmitc91516 | 0:9140ec6aa604 | 4065 | |
jmitc91516 | 0:9140ec6aa604 | 4066 | sgl.DisplayLevel = 0; |
jmitc91516 | 0:9140ec6aa604 | 4067 | sgl.SwapColors = 0; |
jmitc91516 | 0:9140ec6aa604 | 4068 | DrawItem(GuiLib_COL_INVERT_OFF); |
jmitc91516 | 0:9140ec6aa604 | 4069 | |
jmitc91516 | 0:9140ec6aa604 | 4070 | GuiDisplay_Unlock(); |
jmitc91516 | 0:9140ec6aa604 | 4071 | return (1); |
jmitc91516 | 0:9140ec6aa604 | 4072 | } |
jmitc91516 | 0:9140ec6aa604 | 4073 | #else |
jmitc91516 | 0:9140ec6aa604 | 4074 | gl.Dummy1_8U = TextBoxIndex; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4075 | gl.Dummy1_16S = NewPos; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4076 | gl.Dummy2_8U = PerLine; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4077 | gl.Dummy3_8U = AbsoluteMove; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4078 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4079 | #endif |
jmitc91516 | 0:9140ec6aa604 | 4080 | } |
jmitc91516 | 0:9140ec6aa604 | 4081 | |
jmitc91516 | 0:9140ec6aa604 | 4082 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4083 | GuiConst_INT8U GuiLib_TextBox_Scroll_Up( |
jmitc91516 | 0:9140ec6aa604 | 4084 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4085 | { |
jmitc91516 | 0:9140ec6aa604 | 4086 | return (TextBox_Scroll_To(TextBoxIndex, -1, 1, 0)); |
jmitc91516 | 0:9140ec6aa604 | 4087 | } |
jmitc91516 | 0:9140ec6aa604 | 4088 | |
jmitc91516 | 0:9140ec6aa604 | 4089 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4090 | GuiConst_INT8U GuiLib_TextBox_Scroll_Down( |
jmitc91516 | 0:9140ec6aa604 | 4091 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4092 | { |
jmitc91516 | 0:9140ec6aa604 | 4093 | return (TextBox_Scroll_To(TextBoxIndex, 1, 1, 0)); |
jmitc91516 | 0:9140ec6aa604 | 4094 | } |
jmitc91516 | 0:9140ec6aa604 | 4095 | |
jmitc91516 | 0:9140ec6aa604 | 4096 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4097 | GuiConst_INT8U GuiLib_TextBox_Scroll_Home( |
jmitc91516 | 0:9140ec6aa604 | 4098 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4099 | { |
jmitc91516 | 0:9140ec6aa604 | 4100 | return (TextBox_Scroll_To(TextBoxIndex, 0, 1, 1)); |
jmitc91516 | 0:9140ec6aa604 | 4101 | } |
jmitc91516 | 0:9140ec6aa604 | 4102 | |
jmitc91516 | 0:9140ec6aa604 | 4103 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4104 | GuiConst_INT8U GuiLib_TextBox_Scroll_End( |
jmitc91516 | 0:9140ec6aa604 | 4105 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4106 | { |
jmitc91516 | 0:9140ec6aa604 | 4107 | return (TextBox_Scroll_To(TextBoxIndex, 0, 1, 2)); |
jmitc91516 | 0:9140ec6aa604 | 4108 | } |
jmitc91516 | 0:9140ec6aa604 | 4109 | |
jmitc91516 | 0:9140ec6aa604 | 4110 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4111 | GuiConst_INT8U GuiLib_TextBox_Scroll_To_Line( |
jmitc91516 | 0:9140ec6aa604 | 4112 | GuiConst_INT8U TextBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 4113 | GuiConst_INT16S NewLine) |
jmitc91516 | 0:9140ec6aa604 | 4114 | { |
jmitc91516 | 0:9140ec6aa604 | 4115 | return (TextBox_Scroll_To(TextBoxIndex, NewLine, 1, 1)); |
jmitc91516 | 0:9140ec6aa604 | 4116 | } |
jmitc91516 | 0:9140ec6aa604 | 4117 | |
jmitc91516 | 0:9140ec6aa604 | 4118 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4119 | GuiConst_INT8U GuiLib_TextBox_Scroll_Up_Pixel( |
jmitc91516 | 0:9140ec6aa604 | 4120 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4121 | { |
jmitc91516 | 0:9140ec6aa604 | 4122 | return (TextBox_Scroll_To(TextBoxIndex, -1, 0, 0)); |
jmitc91516 | 0:9140ec6aa604 | 4123 | } |
jmitc91516 | 0:9140ec6aa604 | 4124 | |
jmitc91516 | 0:9140ec6aa604 | 4125 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4126 | GuiConst_INT8U GuiLib_TextBox_Scroll_Down_Pixel( |
jmitc91516 | 0:9140ec6aa604 | 4127 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4128 | { |
jmitc91516 | 0:9140ec6aa604 | 4129 | return (TextBox_Scroll_To(TextBoxIndex, 1, 0, 0)); |
jmitc91516 | 0:9140ec6aa604 | 4130 | } |
jmitc91516 | 0:9140ec6aa604 | 4131 | |
jmitc91516 | 0:9140ec6aa604 | 4132 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4133 | GuiConst_INT8U GuiLib_TextBox_Scroll_Home_Pixel( |
jmitc91516 | 0:9140ec6aa604 | 4134 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4135 | { |
jmitc91516 | 0:9140ec6aa604 | 4136 | return (TextBox_Scroll_To(TextBoxIndex, 0, 0, 1)); |
jmitc91516 | 0:9140ec6aa604 | 4137 | } |
jmitc91516 | 0:9140ec6aa604 | 4138 | |
jmitc91516 | 0:9140ec6aa604 | 4139 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4140 | GuiConst_INT8U GuiLib_TextBox_Scroll_End_Pixel( |
jmitc91516 | 0:9140ec6aa604 | 4141 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4142 | { |
jmitc91516 | 0:9140ec6aa604 | 4143 | return (TextBox_Scroll_To(TextBoxIndex, 0, 0, 2)); |
jmitc91516 | 0:9140ec6aa604 | 4144 | } |
jmitc91516 | 0:9140ec6aa604 | 4145 | |
jmitc91516 | 0:9140ec6aa604 | 4146 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4147 | GuiConst_INT8U GuiLib_TextBox_Scroll_To_PixelLine( |
jmitc91516 | 0:9140ec6aa604 | 4148 | GuiConst_INT8U TextBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 4149 | GuiConst_INT16S NewPixelLine) |
jmitc91516 | 0:9140ec6aa604 | 4150 | { |
jmitc91516 | 0:9140ec6aa604 | 4151 | return (TextBox_Scroll_To(TextBoxIndex, NewPixelLine, 0, 1)); |
jmitc91516 | 0:9140ec6aa604 | 4152 | } |
jmitc91516 | 0:9140ec6aa604 | 4153 | |
jmitc91516 | 0:9140ec6aa604 | 4154 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4155 | static GuiConst_INT8U TextBox_Scroll_Get_Pos( |
jmitc91516 | 0:9140ec6aa604 | 4156 | GuiConst_INT8U TextBoxIndex, |
jmitc91516 | 0:9140ec6aa604 | 4157 | GuiConst_INT8U PerLine) |
jmitc91516 | 0:9140ec6aa604 | 4158 | { |
jmitc91516 | 0:9140ec6aa604 | 4159 | #ifdef GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 4160 | GuiConst_INT16S P; |
jmitc91516 | 0:9140ec6aa604 | 4161 | GuiLib_ItemRec PrefixLocate*TextBoxItem; |
jmitc91516 | 0:9140ec6aa604 | 4162 | GuiConst_INT16S TextBox; |
jmitc91516 | 0:9140ec6aa604 | 4163 | GuiConst_INT16S PrefixLocate *ScrollPos; |
jmitc91516 | 0:9140ec6aa604 | 4164 | |
jmitc91516 | 0:9140ec6aa604 | 4165 | TextBox = AutoRedraw_GetTextBox(TextBoxIndex, -1); |
jmitc91516 | 0:9140ec6aa604 | 4166 | |
jmitc91516 | 0:9140ec6aa604 | 4167 | if (TextBox == -1) |
jmitc91516 | 0:9140ec6aa604 | 4168 | return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX); |
jmitc91516 | 0:9140ec6aa604 | 4169 | |
jmitc91516 | 0:9140ec6aa604 | 4170 | TextBoxItem = AutoRedraw_GetItem(TextBox); |
jmitc91516 | 0:9140ec6aa604 | 4171 | |
jmitc91516 | 0:9140ec6aa604 | 4172 | if (TextBoxItem == NULL) |
jmitc91516 | 0:9140ec6aa604 | 4173 | return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX); |
jmitc91516 | 0:9140ec6aa604 | 4174 | |
jmitc91516 | 0:9140ec6aa604 | 4175 | ScrollPos = TextBox_Scroll_GetPosRec(TextBoxIndex); |
jmitc91516 | 0:9140ec6aa604 | 4176 | |
jmitc91516 | 0:9140ec6aa604 | 4177 | if (ScrollPos == NULL) |
jmitc91516 | 0:9140ec6aa604 | 4178 | return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX); |
jmitc91516 | 0:9140ec6aa604 | 4179 | |
jmitc91516 | 0:9140ec6aa604 | 4180 | P = TextBox_Scroll_CalcEndPos(TextBoxItem, PerLine); |
jmitc91516 | 0:9140ec6aa604 | 4181 | if (*ScrollPos == 0) |
jmitc91516 | 0:9140ec6aa604 | 4182 | return (GuiLib_TEXTBOX_SCROLL_AT_HOME); |
jmitc91516 | 0:9140ec6aa604 | 4183 | else if (*ScrollPos == P) |
jmitc91516 | 0:9140ec6aa604 | 4184 | return (GuiLib_TEXTBOX_SCROLL_AT_END); |
jmitc91516 | 0:9140ec6aa604 | 4185 | else if (*ScrollPos < 0) |
jmitc91516 | 0:9140ec6aa604 | 4186 | return (GuiLib_TEXTBOX_SCROLL_ABOVE_HOME); |
jmitc91516 | 0:9140ec6aa604 | 4187 | else if (*ScrollPos > P) |
jmitc91516 | 0:9140ec6aa604 | 4188 | return (GuiLib_TEXTBOX_SCROLL_BELOW_END); |
jmitc91516 | 0:9140ec6aa604 | 4189 | else |
jmitc91516 | 0:9140ec6aa604 | 4190 | return (GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK); |
jmitc91516 | 0:9140ec6aa604 | 4191 | |
jmitc91516 | 0:9140ec6aa604 | 4192 | #else |
jmitc91516 | 0:9140ec6aa604 | 4193 | gl.Dummy1_8U = TextBoxIndex; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4194 | gl.Dummy2_8U = PerLine; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4195 | return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX); |
jmitc91516 | 0:9140ec6aa604 | 4196 | #endif |
jmitc91516 | 0:9140ec6aa604 | 4197 | } |
jmitc91516 | 0:9140ec6aa604 | 4198 | |
jmitc91516 | 0:9140ec6aa604 | 4199 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4200 | GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos( |
jmitc91516 | 0:9140ec6aa604 | 4201 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4202 | { |
jmitc91516 | 0:9140ec6aa604 | 4203 | return (TextBox_Scroll_Get_Pos(TextBoxIndex, 1)); |
jmitc91516 | 0:9140ec6aa604 | 4204 | } |
jmitc91516 | 0:9140ec6aa604 | 4205 | |
jmitc91516 | 0:9140ec6aa604 | 4206 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4207 | GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos_Pixel( |
jmitc91516 | 0:9140ec6aa604 | 4208 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4209 | { |
jmitc91516 | 0:9140ec6aa604 | 4210 | return (TextBox_Scroll_Get_Pos(TextBoxIndex, 0)); |
jmitc91516 | 0:9140ec6aa604 | 4211 | } |
jmitc91516 | 0:9140ec6aa604 | 4212 | |
jmitc91516 | 0:9140ec6aa604 | 4213 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4214 | GuiConst_INT8U GuiLib_TextBox_Scroll_FitsInside( |
jmitc91516 | 0:9140ec6aa604 | 4215 | GuiConst_INT8U TextBoxIndex) |
jmitc91516 | 0:9140ec6aa604 | 4216 | { |
jmitc91516 | 0:9140ec6aa604 | 4217 | #ifdef GuiConst_TEXTBOX_FIELDS_ON |
jmitc91516 | 0:9140ec6aa604 | 4218 | GuiLib_ItemRec PrefixLocate *TextBoxItem; |
jmitc91516 | 0:9140ec6aa604 | 4219 | GuiConst_INT16S TextBox; |
jmitc91516 | 0:9140ec6aa604 | 4220 | GuiConst_INT16S PrefixLocate *ScrollPos; |
jmitc91516 | 0:9140ec6aa604 | 4221 | |
jmitc91516 | 0:9140ec6aa604 | 4222 | TextBox = AutoRedraw_GetTextBox(TextBoxIndex, -1); |
jmitc91516 | 0:9140ec6aa604 | 4223 | |
jmitc91516 | 0:9140ec6aa604 | 4224 | if (TextBox == -1) |
jmitc91516 | 0:9140ec6aa604 | 4225 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4226 | |
jmitc91516 | 0:9140ec6aa604 | 4227 | TextBoxItem = AutoRedraw_GetItem(TextBox); |
jmitc91516 | 0:9140ec6aa604 | 4228 | |
jmitc91516 | 0:9140ec6aa604 | 4229 | if (TextBoxItem == NULL) |
jmitc91516 | 0:9140ec6aa604 | 4230 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4231 | |
jmitc91516 | 0:9140ec6aa604 | 4232 | return (TextBox_Scroll_CalcEndPos(TextBoxItem, 0) < 0); |
jmitc91516 | 0:9140ec6aa604 | 4233 | #else |
jmitc91516 | 0:9140ec6aa604 | 4234 | gl.Dummy1_8U = TextBoxIndex; // To avoid compiler warning |
jmitc91516 | 0:9140ec6aa604 | 4235 | return (0); |
jmitc91516 | 0:9140ec6aa604 | 4236 | #endif |
jmitc91516 | 0:9140ec6aa604 | 4237 | } |
jmitc91516 | 0:9140ec6aa604 | 4238 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4239 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4240 | GuiConst_INTCOLOR GuiLib_SetButtonDisabledColor(GuiConst_INTCOLOR PixelColor) |
jmitc91516 | 0:9140ec6aa604 | 4241 | { |
jmitc91516 | 0:9140ec6aa604 | 4242 | #ifdef GuiConst_ITEM_BUTTON_INUSE |
jmitc91516 | 0:9140ec6aa604 | 4243 | sgl.ButtonColorOverride = GuiLib_TRUE; |
jmitc91516 | 0:9140ec6aa604 | 4244 | sgl.DisabledButtonColor = PixelColor; |
jmitc91516 | 0:9140ec6aa604 | 4245 | #endif |
jmitc91516 | 0:9140ec6aa604 | 4246 | |
jmitc91516 | 0:9140ec6aa604 | 4247 | return PixelColor; |
jmitc91516 | 0:9140ec6aa604 | 4248 | } |
jmitc91516 | 0:9140ec6aa604 | 4249 | //------------------------------------------------------------------------------ |
jmitc91516 | 0:9140ec6aa604 | 4250 |