diff options
author | treectrl <treectrl> | 2005-07-07 03:17:14 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2005-07-07 03:17:14 (GMT) |
commit | f0a19ef372b96f4fbc034f0f962c06063996a8bc (patch) | |
tree | 021f5b357059588d49b2861d6cac7d2435e20515 /generic | |
parent | 22d8d10ad1a3fee221b452be6d4ad97156898538 (diff) | |
download | tktreectrl-f0a19ef372b96f4fbc034f0f962c06063996a8bc.zip tktreectrl-f0a19ef372b96f4fbc034f0f962c06063996a8bc.tar.gz tktreectrl-f0a19ef372b96f4fbc034f0f962c06063996a8bc.tar.bz2 |
TreeTheme_DrawHeaderArrow implemented on WinXP to draw an arrow that looks like Explorer's.
TreeTheme_GetArrowSize added.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkTreeTheme.c | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/generic/tkTreeTheme.c b/generic/tkTreeTheme.c index 0d1d1b7..3056e22 100644 --- a/generic/tkTreeTheme.c +++ b/generic/tkTreeTheme.c @@ -5,7 +5,7 @@ * * Copyright (c) 2005 Tim Baker * - * RCS: @(#) $Id: tkTreeTheme.c,v 1.9 2005/06/30 19:47:08 treectrl Exp $ + * RCS: @(#) $Id: tkTreeTheme.c,v 1.10 2005/07/07 03:17:14 treectrl Exp $ */ #ifdef WIN32 @@ -342,10 +342,35 @@ dbwin("margins %d %d %d %d\n", bounds[0], bounds[1], bounds[2], bounds[3]); int TreeTheme_DrawHeaderArrow(TreeCtrl *tree, Drawable drawable, int up, int x, int y, int width, int height) { - /* Doesn't seem that Microsoft actually implemented this */ - return TCL_ERROR; +#if 1 + XColor *color; + GC gc; + int i; -#if 0 + if (!themeData->themeEnabled || !procs) + return TCL_ERROR; + + color = Tk_GetColor(tree->interp, tree->tkwin, "#ACA899"); + gc = Tk_GCForColor(color, drawable); + + if (up) { + for (i = 0; i < height; i++) { + XDrawLine(tree->display, drawable, gc, + x + width / 2 - i, y + i, + x + width / 2 + i + 1, y + i); + } + } else { + for (i = 0; i < height; i++) { + XDrawLine(tree->display, drawable, gc, + x + width / 2 - i, y + (height - 1) - i, + x + width / 2 + i + 1, y + (height - 1) - i); + } + } + + Tk_FreeColor(color); + return TCL_OK; +#else + /* Doesn't seem that Microsoft actually implemented this */ Window win = Tk_WindowId(tree->tkwin); HWND hwnd = Tk_GetHWND(win); HTHEME hTheme; @@ -526,6 +551,16 @@ int TreeTheme_GetButtonSize(TreeCtrl *tree, Drawable drawable, int open, return TCL_OK; } +int TreeTheme_GetArrowSize(TreeCtrl *tree, Drawable drawable, int up, int *widthPtr, int *heightPtr) +{ + if (!themeData->themeEnabled || !procs) + return TCL_ERROR; + + *widthPtr = 9; + *heightPtr = 5; + return TCL_OK; +} + #if !defined(WM_THEMECHANGED) #define WM_THEMECHANGED 0x031A #endif @@ -797,6 +832,11 @@ int TreeTheme_GetButtonSize(TreeCtrl *tree, Drawable drawable, int open, int *wi return TCL_OK; } +int TreeTheme_GetArrowSize(TreeCtrl *tree, Drawable drawable, int up, int *widthPtr, int *heightPtr) +{ + return TCL_ERROR; +} + int TreeTheme_Init(Tcl_Interp *interp) { return TCL_OK; @@ -829,6 +869,11 @@ int TreeTheme_GetButtonSize(TreeCtrl *tree, Drawable drawable, int open, int *wi return TCL_ERROR; } +int TreeTheme_GetArrowSize(TreeCtrl *tree, Drawable drawable, int up, int *widthPtr, int *heightPtr) +{ + return TCL_ERROR; +} + int TreeTheme_Init(Tcl_Interp *interp) { return TCL_ERROR; |