# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1068305419 0 # Node ID d6e07d292145720ef04192e240644e1ed359eafc # Parent 3bc712d2c362179058d9b1bb37caee04d05af05c Implemented taskbar icons on windows, so I can keep feature for feature with InJoy Firewall. diff -r 3bc712d2c362 -r d6e07d292145 dw.h --- a/dw.h Sun Oct 19 07:15:37 2003 +0000 +++ b/dw.h Sat Nov 08 15:30:19 2003 +0000 @@ -992,6 +992,8 @@ int API dw_filesystem_setup(HWND handle, unsigned long *flags, char **titles, int count); void API dw_filesystem_set_item(HWND handle, void *pointer, int column, int row, void *data); void API dw_filesystem_set_file(HWND handle, void *pointer, int row, char *filename, unsigned long icon); +void dw_taskbar_insert(HWND handle, unsigned long icon, char *bubbletext); +void dw_taskbar_delete(HWND handle, unsigned long icon); int API dw_screen_width(void); int API dw_screen_height(void); unsigned long API dw_color_depth(void); diff -r 3bc712d2c362 -r d6e07d292145 dwtest.c --- a/dwtest.c Sun Oct 19 07:15:37 2003 +0000 +++ b/dwtest.c Sat Nov 08 15:30:19 2003 +0000 @@ -326,7 +326,7 @@ int DWSIGNAL browse_callback(HWND window, void *data) { char *tmp; - tmp = dw_file_browse("test string", NULL, "c", DW_FILE_OPEN ); + tmp = dw_file_browse("test string", NULL, "c", DW_DIRECTORY_OPEN ); if ( tmp ) { if ( current_file ) diff -r 3bc712d2c362 -r d6e07d292145 gtk/dw.c --- a/gtk/dw.c Sun Oct 19 07:15:37 2003 +0000 +++ b/gtk/dw.c Sat Nov 08 15:30:19 2003 +0000 @@ -5474,6 +5474,29 @@ } /* + * Inserts an icon into the taskbar. + * Parameters: + * handle: Window handle that will handle taskbar icon messages. + * icon: Icon handle to display in the taskbar. + * bubbletext: Text to show when the mouse is above the icon. + */ +void dw_taskbar_insert(HWND handle, unsigned long icon, char *bubbletext) +{ + /* TODO */ +} + +/* + * Deletes an icon from the taskbar. + * Parameters: + * handle: Window handle that was used with dw_taskbar_insert(). + * icon: Icon handle that was used with dw_taskbar_insert(). + */ +void dw_taskbar_delete(HWND handle, unsigned long icon) +{ + /* TODO */ +} + +/* * Creates a rendering context widget (window) to be packed. * Parameters: * id: An id to be used with dw_window_from_id. diff -r 3bc712d2c362 -r d6e07d292145 os2/dw.c --- a/os2/dw.c Sun Oct 19 07:15:37 2003 +0000 +++ b/os2/dw.c Sat Nov 08 15:30:19 2003 +0000 @@ -6943,6 +6943,29 @@ } /* + * Inserts an icon into the taskbar. + * Parameters: + * handle: Window handle that will handle taskbar icon messages. + * icon: Icon handle to display in the taskbar. + * bubbletext: Text to show when the mouse is above the icon. + */ +void dw_taskbar_insert(HWND handle, unsigned long icon, char *bubbletext) +{ + /* TODO */ +} + +/* + * Deletes an icon from the taskbar. + * Parameters: + * handle: Window handle that was used with dw_taskbar_insert(). + * icon: Icon handle that was used with dw_taskbar_insert(). + */ +void dw_taskbar_delete(HWND handle, unsigned long icon) +{ + /* TODO */ +} + +/* * Creates a rendering context widget (window) to be packed. * Parameters: * id: An id to be used with dw_window_from_id. diff -r 3bc712d2c362 -r d6e07d292145 win/dw.c --- a/win/dw.c Sun Oct 19 07:15:37 2003 +0000 +++ b/win/dw.c Sat Nov 08 15:30:19 2003 +0000 @@ -1413,6 +1413,8 @@ msg = WM_VSCROLL; else if(msg == WM_KEYDOWN) /* && mp1 >= VK_F1 && mp1 <= VK_F24) allow ALL special keys */ msg = WM_CHAR; + else if(msg == WM_USER+2) + msg = (UINT)mp2; if(result == -1) { @@ -6969,6 +6971,48 @@ } /* + * Inserts an icon into the taskbar. + * Parameters: + * handle: Window handle that will handle taskbar icon messages. + * icon: Icon handle to display in the taskbar. + * bubbletext: Text to show when the mouse is above the icon. + */ +void dw_taskbar_insert(HWND handle, unsigned long icon, char *bubbletext) +{ + NOTIFYICONDATA tnid; + + tnid.cbSize = sizeof(NOTIFYICONDATA); + tnid.hWnd = handle; + tnid.uID = icon; + tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; + tnid.uCallbackMessage = WM_USER+2; + tnid.hIcon = (HICON)icon; + if(bubbletext) + strncpy(tnid.szTip, bubbletext, sizeof(tnid.szTip)); + else + tnid.szTip[0] = 0; + + Shell_NotifyIcon(NIM_ADD, &tnid); +} + +/* + * Deletes an icon from the taskbar. + * Parameters: + * handle: Window handle that was used with dw_taskbar_insert(). + * icon: Icon handle that was used with dw_taskbar_insert(). + */ +void dw_taskbar_delete(HWND handle, unsigned long icon) +{ + NOTIFYICONDATA tnid; + + tnid.cbSize = sizeof(NOTIFYICONDATA); + tnid.hWnd = handle; + tnid.uID = icon; + + Shell_NotifyIcon(NIM_DELETE, &tnid); +} + +/* * Creates a rendering context widget (window) to be packed. * Parameters: * id: An id to be used with dw_window_from_id.