further improve handling of ticks for x axis.
This commit is contained in:
@@ -226,6 +226,7 @@ void _drawVerticalGrid(AQDG_OBJECT *o, AQDG_DRAW_CONTEXT *dc)
|
|||||||
int y1;
|
int y1;
|
||||||
int y2;
|
int y2;
|
||||||
int showLevel1;
|
int showLevel1;
|
||||||
|
int showLevel2;
|
||||||
|
|
||||||
y1=AQDG_Object_GetAbsoluteY(o)+AQDG_Object_GetBorderTop(o);
|
y1=AQDG_Object_GetAbsoluteY(o)+AQDG_Object_GetBorderTop(o);
|
||||||
y2=AQDG_Object_GetAbsoluteY(o)+AQDG_Object_GetHeight(o)-AQDG_Object_GetBorderBottom(o);
|
y2=AQDG_Object_GetAbsoluteY(o)+AQDG_Object_GetHeight(o)-AQDG_Object_GetBorderBottom(o);
|
||||||
@@ -236,19 +237,21 @@ void _drawVerticalGrid(AQDG_OBJECT *o, AQDG_DRAW_CONTEXT *dc)
|
|||||||
pen1=AQDG_GraphWidget_GetPen(xo->graphObject, AQDG_GRAPHWIDGET_PEN_IDX_GRID1);
|
pen1=AQDG_GraphWidget_GetPen(xo->graphObject, AQDG_GRAPHWIDGET_PEN_IDX_GRID1);
|
||||||
pen2=AQDG_GraphWidget_GetPen(xo->graphObject, AQDG_GRAPHWIDGET_PEN_IDX_GRID2);
|
pen2=AQDG_GraphWidget_GetPen(xo->graphObject, AQDG_GRAPHWIDGET_PEN_IDX_GRID2);
|
||||||
showLevel1=(_screenDistBetweenLevelTicksX(tickList, 1, contentSize, minValue, maxValue)>AQDG_WIDGET_VIEWPORT_TICK_MIN_X)?1:0;
|
showLevel1=(_screenDistBetweenLevelTicksX(tickList, 1, contentSize, minValue, maxValue)>AQDG_WIDGET_VIEWPORT_TICK_MIN_X)?1:0;
|
||||||
|
showLevel2=(_screenDistBetweenLevelTicksY(tickList, 2, contentSize, minValue, maxValue)>AQDG_WIDGET_VIEWPORT_TICK_MIN_X)?1:0;
|
||||||
|
|
||||||
tick=AQDG_Graph_Tick_List_First(tickList);
|
tick=AQDG_Graph_Tick_List_First(tickList);
|
||||||
while(tick) {
|
while(tick) {
|
||||||
double value;
|
double value;
|
||||||
int xpos;
|
int xpos;
|
||||||
|
int tickLevel;
|
||||||
|
|
||||||
value=AQDG_Graph_Tick_GetValue(tick);
|
value=AQDG_Graph_Tick_GetValue(tick);
|
||||||
xpos=_calcHorizontalPos(value, contentSize, minValue, maxValue);
|
xpos=_calcHorizontalPos(value, contentSize, minValue, maxValue);
|
||||||
xpos+=AQDG_Object_GetBorderLeft(o);
|
xpos+=AQDG_Object_GetBorderLeft(o);
|
||||||
if (AQDG_Graph_Tick_GetLevel(tick)==0)
|
tickLevel=AQDG_Graph_Tick_GetLevel(tick);
|
||||||
|
if (tickLevel==0)
|
||||||
AQDG_Draw_Context_DrawLine(dc, pen1, absX+xpos, y1, absX+xpos, y2);
|
AQDG_Draw_Context_DrawLine(dc, pen1, absX+xpos, y1, absX+xpos, y2);
|
||||||
else {
|
else if ((tickLevel==1 && showLevel1) || ((tickLevel==2 && showLevel2))) {
|
||||||
if (showLevel1)
|
|
||||||
AQDG_Draw_Context_DrawLine(dc, pen2, absX+xpos, y1, absX+xpos, y2);
|
AQDG_Draw_Context_DrawLine(dc, pen2, absX+xpos, y1, absX+xpos, y2);
|
||||||
}
|
}
|
||||||
tick=AQDG_Graph_Tick_List_Next(tick);
|
tick=AQDG_Graph_Tick_List_Next(tick);
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ void _drawTicks(AQDG_OBJECT *o, AQDG_DRAW_CONTEXT *dc, int absY)
|
|||||||
int absX;
|
int absX;
|
||||||
int pen;
|
int pen;
|
||||||
int showLevel1;
|
int showLevel1;
|
||||||
|
int showLevel2;
|
||||||
|
|
||||||
contentSize=AQDG_Object_GetWidth(o)-AQDG_Object_GetBorderLeft(o)-AQDG_Object_GetBorderRight(o);
|
contentSize=AQDG_Object_GetWidth(o)-AQDG_Object_GetBorderLeft(o)-AQDG_Object_GetBorderRight(o);
|
||||||
scaleSize=AQDG_AxisWidget_GetScaleSize(o);
|
scaleSize=AQDG_AxisWidget_GetScaleSize(o);
|
||||||
@@ -141,19 +142,21 @@ void _drawTicks(AQDG_OBJECT *o, AQDG_DRAW_CONTEXT *dc, int absY)
|
|||||||
maxValue=AQDG_AxisWidget_GetMaxValue(o);
|
maxValue=AQDG_AxisWidget_GetMaxValue(o);
|
||||||
pen=AQDG_DrawableWidget_GetForegroundPenId(o);
|
pen=AQDG_DrawableWidget_GetForegroundPenId(o);
|
||||||
showLevel1=(_screenDistBetweenLevelTicks(tickList, 1, contentSize, minValue, maxValue)>AQDG_WIDGET_XAXIS_TICK_MIN_X)?1:0;
|
showLevel1=(_screenDistBetweenLevelTicks(tickList, 1, contentSize, minValue, maxValue)>AQDG_WIDGET_XAXIS_TICK_MIN_X)?1:0;
|
||||||
|
showLevel2=(_screenDistBetweenLevelTicks(tickList, 2, contentSize, minValue, maxValue)>AQDG_WIDGET_XAXIS_TICK_MIN_X)?1:0;
|
||||||
|
|
||||||
tick=AQDG_Graph_Tick_List_First(tickList);
|
tick=AQDG_Graph_Tick_List_First(tickList);
|
||||||
while(tick) {
|
while(tick) {
|
||||||
double value;
|
double value;
|
||||||
int xpos;
|
int xpos;
|
||||||
|
int tickLevel;
|
||||||
|
|
||||||
value=AQDG_Graph_Tick_GetValue(tick);
|
value=AQDG_Graph_Tick_GetValue(tick);
|
||||||
xpos=_calcHorizontalPos(value, contentSize, minValue, maxValue);
|
xpos=_calcHorizontalPos(value, contentSize, minValue, maxValue);
|
||||||
xpos+=AQDG_Object_GetBorderLeft(o);
|
xpos+=AQDG_Object_GetBorderLeft(o);
|
||||||
|
tickLevel=AQDG_Graph_Tick_GetLevel(tick);
|
||||||
if (AQDG_Graph_Tick_GetLevel(tick)==0)
|
if (AQDG_Graph_Tick_GetLevel(tick)==0)
|
||||||
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/2), absX+xpos, absY+(scaleSize/2));
|
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/2), absX+xpos, absY+(scaleSize/2));
|
||||||
else if (AQDG_Graph_Tick_GetLevel(tick)==1) {
|
else if ((tickLevel==1 && showLevel1) || ((tickLevel==2 && showLevel2))) {
|
||||||
if (showLevel1)
|
|
||||||
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/4), absX+xpos, absY+(scaleSize/4));
|
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/4), absX+xpos, absY+(scaleSize/4));
|
||||||
}
|
}
|
||||||
tick=AQDG_Graph_Tick_List_Next(tick);
|
tick=AQDG_Graph_Tick_List_Next(tick);
|
||||||
|
|||||||
Reference in New Issue
Block a user