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 y2;
|
||||
int showLevel1;
|
||||
int showLevel2;
|
||||
|
||||
y1=AQDG_Object_GetAbsoluteY(o)+AQDG_Object_GetBorderTop(o);
|
||||
y2=AQDG_Object_GetAbsoluteY(o)+AQDG_Object_GetHeight(o)-AQDG_Object_GetBorderBottom(o);
|
||||
@@ -236,20 +237,22 @@ void _drawVerticalGrid(AQDG_OBJECT *o, AQDG_DRAW_CONTEXT *dc)
|
||||
pen1=AQDG_GraphWidget_GetPen(xo->graphObject, AQDG_GRAPHWIDGET_PEN_IDX_GRID1);
|
||||
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;
|
||||
showLevel2=(_screenDistBetweenLevelTicksY(tickList, 2, contentSize, minValue, maxValue)>AQDG_WIDGET_VIEWPORT_TICK_MIN_X)?1:0;
|
||||
|
||||
tick=AQDG_Graph_Tick_List_First(tickList);
|
||||
while(tick) {
|
||||
double value;
|
||||
int xpos;
|
||||
int tickLevel;
|
||||
|
||||
value=AQDG_Graph_Tick_GetValue(tick);
|
||||
xpos=_calcHorizontalPos(value, contentSize, minValue, maxValue);
|
||||
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);
|
||||
else {
|
||||
if (showLevel1)
|
||||
AQDG_Draw_Context_DrawLine(dc, pen2, absX+xpos, y1, absX+xpos, y2);
|
||||
else if ((tickLevel==1 && showLevel1) || ((tickLevel==2 && showLevel2))) {
|
||||
AQDG_Draw_Context_DrawLine(dc, pen2, absX+xpos, y1, absX+xpos, y2);
|
||||
}
|
||||
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 pen;
|
||||
int showLevel1;
|
||||
int showLevel2;
|
||||
|
||||
contentSize=AQDG_Object_GetWidth(o)-AQDG_Object_GetBorderLeft(o)-AQDG_Object_GetBorderRight(o);
|
||||
scaleSize=AQDG_AxisWidget_GetScaleSize(o);
|
||||
@@ -141,20 +142,22 @@ void _drawTicks(AQDG_OBJECT *o, AQDG_DRAW_CONTEXT *dc, int absY)
|
||||
maxValue=AQDG_AxisWidget_GetMaxValue(o);
|
||||
pen=AQDG_DrawableWidget_GetForegroundPenId(o);
|
||||
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);
|
||||
while(tick) {
|
||||
double value;
|
||||
int xpos;
|
||||
int tickLevel;
|
||||
|
||||
value=AQDG_Graph_Tick_GetValue(tick);
|
||||
xpos=_calcHorizontalPos(value, contentSize, minValue, maxValue);
|
||||
xpos+=AQDG_Object_GetBorderLeft(o);
|
||||
tickLevel=AQDG_Graph_Tick_GetLevel(tick);
|
||||
if (AQDG_Graph_Tick_GetLevel(tick)==0)
|
||||
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/2), absX+xpos, absY+(scaleSize/2));
|
||||
else if (AQDG_Graph_Tick_GetLevel(tick)==1) {
|
||||
if (showLevel1)
|
||||
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/4), absX+xpos, absY+(scaleSize/4));
|
||||
else if ((tickLevel==1 && showLevel1) || ((tickLevel==2 && showLevel2))) {
|
||||
AQDG_Draw_Context_DrawLine(dc, pen, absX+xpos, absY-(scaleSize/4), absX+xpos, absY+(scaleSize/4));
|
||||
}
|
||||
tick=AQDG_Graph_Tick_List_Next(tick);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user