changeset 1415:ddf9cfb4a074

Add unique status bar class on Windows so we can identify it when calculating control sizes.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 02 Dec 2011 10:57:58 +0000
parents 38c4484f5b90
children 4256a3323d35
files dw.h win/dw.c
diffstat 2 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/dw.h	Fri Dec 02 10:00:24 2011 +0000
+++ b/dw.h	Fri Dec 02 10:57:58 2011 +0000
@@ -596,6 +596,7 @@
 #define ObjectClassName "dwobjectclass"
 #define BrowserClassName "dwbrowserclass"
 #define ScrollClassName "dwscrollclass"
+#define StatusbarClassName "dwstatusbar"
 #define DefaultFont NULL
 
 typedef struct _color {
--- a/win/dw.c	Fri Dec 02 10:00:24 2011 +0000
+++ b/win/dw.c	Fri Dec 02 10:57:58 2011 +0000
@@ -3745,6 +3745,19 @@
 
    RegisterClass(&wc);
 
+   /* Register a status bar control */
+   memset(&wc, 0, sizeof(WNDCLASS));
+   wc.style = CS_DBLCLKS;
+   wc.lpfnWndProc = (WNDPROC)_statuswndproc;
+   wc.cbClsExtra = 0;
+   wc.cbWndExtra = 32;
+   wc.hbrBackground = (HBRUSH)GetSysColorBrush(COLOR_3DFACE);
+   wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+   wc.lpszMenuName = NULL;
+   wc.lpszClassName = StatusbarClassName;
+
+   RegisterClass(&wc);
+
 #if (defined(BUILD_DLL) || defined(BUILD_HTML)) && !defined(__MINGW32__)
    /* Register HTML renderer class */
    memset(&wc, 0, sizeof(WNDCLASS));
@@ -4381,6 +4394,12 @@
          extraheight = 4;
       }
    }
+   else if(strnicmp(tmpbuf, StatusbarClassName, strlen(StatusbarClassName)+1) == 0)
+   {
+      extrawidth = 4;
+      extraheight = 2;
+   }
+   
 
    /* Set the requested sizes */    
    if(width)
@@ -5531,7 +5550,7 @@
  */
 HWND API dw_status_text_new(char *text, ULONG id)
 {
-   HWND tmp = CreateWindow(ObjectClassName,
+   HWND tmp = CreateWindow(StatusbarClassName,
                      text,
                      BS_TEXT | WS_VISIBLE |
                      WS_CHILD | WS_CLIPCHILDREN,
@@ -5541,7 +5560,6 @@
                      DWInstance,
                      NULL);
    dw_window_set_font(tmp, DefaultFont);
-   SubclassWindow(tmp, _statuswndproc);
    return tmp;
 }