/* 
   Copyright 2001-2003 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.  

   You may contact the author at:

   mailto::camille@bluegrass.net

   or by snail mail at:

   David Lindauer
   850 Washburn Ave Apt 99
   Louisville, KY 40222
*/
#define LCF_ADJUSTRECT WM_USER + 1
#define LCF_SETFLEX WM_USER + 2
#define LCF_SETVERTICAL WM_USER + 3

#define TCF_SETHEADER (TV_FIRST + 120)
#define TCF_SETDIVIDER (TV_FIRST + 121)

#define TCN_PAINT (TV_FIRST + 150)
#define TCN_EDITDONE (TV_FIRST + 151)
#define TCN_EDITQUERY (TV_FIRST + 152) 

#define TCS_LINE 0x1000
#undef TV_FIRST
#undef HDM_FIRST
#define TV_FIRST 0x1100
#define HDM_FIRST 0x1200

typedef struct {
   char *colText1;
   char *colText2;
   HBITMAP colBmp1 ;
   HBITMAP colBmp2 ;
} TCHeader ;

typedef struct {
   char *col1Text ;
   char *col2Text ;
   DWORD col1Color ;
   DWORD col2Color ;
} TCData ;

#define LSCONTROL 1
#define LSTOOLBAR 2
#define LSMENU 3
#define LSGRIP 4
#define LSBLANK 5
#define LSTBCONT 6

typedef struct {
  int type ;
  int id ;
  int vertical ;
  HWND self ;
  char *title ;
  HWND parent ;
  union {
      struct {
        int flexed ;
        int disabled ;
        HWND closebutton ;
        HWND flexbutton ;
      } cw ;
      struct {
         int width ;
         int height ;
         TBBUTTON *buttons ;
         int btncount ;
         char **hints ;
         int bmpid ;
         int bmpcount ;
         int helpitem ;
         HWND hWnd,vWnd;
         SIZE hsize,vsize ;
         HWND notifyparent ;
      } tb ;
      struct {
         HWND child ;
      } gp ;
  } u ;
} CCW_params ;

typedef struct {
   int vertical ;
   HWND self ;
   RECT position ;
} CFW_params ;

#define DOCK_PRESENT 0x8000
#define DOCK_LEFT 1
#define DOCK_TOP 2
#define DOCK_RIGHT 4
#define DOCK_BOTTOM 8
#define DOCK_AMONG 16

#define FLEX_REQ 1
#define FLEX_UNREQ 2
#define FLEX_SMALL 4
#define FLEX_LARGE 8

typedef struct {
   int flags ;
   int oldflags ;
   int hidden ;
   int flexparams ;
   int rowindex ;  // row for top & bottom, col for other
   int colindex ; // col for top & bottom, row for other 
   int  hiddenwidth ; // adjusted width for top & bottom, height for other
   RECT oldsize ;
   RECT position ;
   RECT lastposition ;
   RECT flexposition ;
} CCD_params ;