diff options
author | csaba <csaba> | 2023-11-10 20:28:59 (GMT) |
---|---|---|
committer | csaba <csaba> | 2023-11-10 20:28:59 (GMT) |
commit | 3c2b81f90f8bb785d3f364558c578685d85943fd (patch) | |
tree | 79eda50b8057917ae166ab5bc1c1cb377f365df8 /win/ttkWinXPTheme.c | |
parent | e057ae9cc33c7b8c75c853c562b8da55f20529f9 (diff) | |
download | tk-3c2b81f90f8bb785d3f364558c578685d85943fd.zip tk-3c2b81f90f8bb785d3f364558c578685d85943fd.tar.gz tk-3c2b81f90f8bb785d3f364558c578685d85943fd.tar.bz2 |
Extended the man page for ttk::notebook; updated ttkWinTheme.c and ttkWinXPTheme.c.
Diffstat (limited to 'win/ttkWinXPTheme.c')
-rw-r--r-- | win/ttkWinXPTheme.c | 66 |
1 files changed, 30 insertions, 36 deletions
diff --git a/win/ttkWinXPTheme.c b/win/ttkWinXPTheme.c index 75866ce..03bbc48 100644 --- a/win/ttkWinXPTheme.c +++ b/win/ttkWinXPTheme.c @@ -767,6 +767,7 @@ static void TabElementDraw( { ElementData *elementData = (ElementData *)clientData; int partId = elementData->info->partId; + int isSelected = (state & TTK_STATE_SELECTED); int stateId = Ttk_StateTableLookup(elementData->info->statemap, state); /* @@ -777,13 +778,13 @@ static void TabElementDraw( case TTK_STICK_S: break; case TTK_STICK_N: - b.y -= 4; + b.y -= isSelected ? 0 : 1; b.height -= isSelected ? 1 : 0; break; case TTK_STICK_E: - b.width += 3; + b.width -= isSelected ? 1 : 0; break; case TTK_STICK_W: - b.x -= 5; b.width += 5; + b.x -= isSelected ? 3 : 4; b.width += isSelected ? 1 : 2; break; } @@ -792,9 +793,11 @@ static void TabElementDraw( if (!InitElementData(elementData, tkwin, d)) return; - if (state & TTK_STATE_USER1) - partId = TABP_TABITEMLEFTEDGE; if (nbTabsStickBit == TTK_STICK_S) { + if (state & TTK_STATE_USER1) { + partId = TABP_TABITEMLEFTEDGE; + } + /* * Draw the border and fill into rc */ @@ -810,37 +813,28 @@ static void TabElementDraw( elementData->hTheme, elementData->hDC, partId, stateId, &rc2, &rc); } - if (state & TTK_STATE_SELECTED) { - /* - * Draw a flat border at 3 edges - */ - switch (nbTabsStickBit) { - default: - case TTK_STICK_S: - break; - case TTK_STICK_N: - elementData->procs->DrawThemeEdge( - elementData->hTheme, elementData->hDC, partId, stateId, &rc, - BDR_RAISEDINNER, BF_FLAT|BF_LEFT|BF_RIGHT|BF_BOTTOM, NULL); - break; - case TTK_STICK_E: - elementData->procs->DrawThemeEdge( - elementData->hTheme, elementData->hDC, partId, stateId, &rc, - BDR_RAISEDINNER, BF_FLAT|BF_LEFT|BF_TOP|BF_BOTTOM, NULL); - break; - case TTK_STICK_W: - elementData->procs->DrawThemeEdge( - elementData->hTheme, elementData->hDC, partId, stateId, &rc, - BDR_RAISEDINNER, BF_FLAT|BF_TOP|BF_RIGHT|BF_BOTTOM, NULL); - break; - } - } else if (nbTabsStickBit != TTK_STICK_S) { - /* - * Draw a flat border at all 4 edges - */ - elementData->procs->DrawThemeEdge( - elementData->hTheme, elementData->hDC, partId, stateId, &rc, - BDR_RAISEDINNER, BF_FLAT|BF_RECT, NULL); + /* + * Draw a flat border at 3 edges + */ + switch (nbTabsStickBit) { + default: + case TTK_STICK_S: + break; + case TTK_STICK_N: + elementData->procs->DrawThemeEdge( + elementData->hTheme, elementData->hDC, partId, stateId, &rc, + BDR_RAISEDINNER, BF_FLAT|BF_LEFT|BF_RIGHT|BF_BOTTOM, NULL); + break; + case TTK_STICK_E: + elementData->procs->DrawThemeEdge( + elementData->hTheme, elementData->hDC, partId, stateId, &rc, + BDR_RAISEDINNER, BF_FLAT|BF_LEFT|BF_TOP|BF_BOTTOM, NULL); + break; + case TTK_STICK_W: + elementData->procs->DrawThemeEdge( + elementData->hTheme, elementData->hDC, partId, stateId, &rc, + BDR_RAISEDINNER, BF_FLAT|BF_TOP|BF_RIGHT|BF_BOTTOM, NULL); + break; } FreeElementData(elementData); |