-*.coff\r
-*.dll\r
-*.d\r
-*.a\r
-*.o\r
-*.sym\r
-*.map\r
-*.tmp\r
+*.coff
+*.dll
+*.d
+*.a
+*.o
+*.sym
+*.map
+*.tmp
#define TB_UNKWN463 (WM_USER+99)
#define TB_UNKWN464 (WM_USER+100)
+#define FLATSB_CLASSA "flatsb_class32"
+
+/* FIXME: Rebar definition hack, should be patched in Wine */
+#undef RB_GETBANDINFO
+#define RB_GETBANDINFO (WM_USER+5) /* just for compatibility */
+
#define Header_GetItemA(w,i,d) (BOOL)SendMessageA((w),HDM_GETITEMA,(WPARAM)(i),(LPARAM)(HDITEMA*)(d))
#define Header_GetItemW(w,i,d) (BOOL)SendMessageW((w),HDM_GETITEMW,(WPARAM)(i),(LPARAM)(HDITEMW*)(d))
#define Header_SetItemA(w,i,d) (BOOL)SendMessageA((w),HDM_SETITEMA,(WPARAM)(i),(LPARAM)(const HDITEMA*)(d))
#define ListView_FindItemA(w,p,i) (INT)SendMessageA((w),LVM_FINDITEMA,(WPARAM)(p),(LPARAM)(LVFINDINFOA*)(i))
#define ListView_FindItemW(w,p,i) (INT)SendMessageW((w),LVM_FINDITEMW,(WPARAM)(p),(LPARAM)(LVFINDINFOW*)(i))
-#define FLATSB_CLASSA "flatsb_class32"
-
-/* FIXME: Rebar definition hack, should be patched in Wine */
-#undef RB_GETBANDINFO
-#define RB_GETBANDINFO (WM_USER+5) /* just for compatibility */
-
/* Property sheet Wizard 97 styles */
#define PSH_WIZARD97_OLD 0x2000
#define PSH_WIZARD97_NEW 0x1000000
+
+/* FIXME: Submit to W32API */
+#ifndef HDM_SETBITMAPMARGIN
+#define HDM_SETBITMAPMARGIN (HDM_FIRST+20)
+#endif
+#ifndef HDM_GETBITMAPMARGIN
+#define HDM_GETBITMAPMARGIN (HDM_FIRST+21)
+#endif
+#ifndef RBBS_USECHEVRON
+#define RBBS_USECHEVRON 0x00000200
#endif
+#ifndef RBHT_CHEVRON
+#define RBHT_CHEVRON 0x0008
+#endif
+#ifndef RB_PUSHCHEVRON
+#define RB_PUSHCHEVRON (WM_USER+43)
+#endif
+#ifndef RBN_CHEVRONPUSHED
+#define RBN_CHEVRONPUSHED (RBN_FIRST-10)
+#endif
+
+#endif /* __REACTOS__ */
#endif /* __WINE_COMCTL32_H */
#include "res/comctl_En.rc"
#include "res/comctl_Cn.rc"
#include "res/comctl_De.rc"
-#include "res/comctl_Fr.rc"
#include "res/comctl_Es.rc"
+#include "res/comctl_Fr.rc"
+#include "res/comctl_It.rc"
#include "res/comctl_Ko.rc"
+#include "res/comctl_Nl.rc"
#include "res/comctl_Pl.rc"
#include "res/comctl_Pt.rc"
#include "res/comctl_Ru.rc"
#include "winuser.h"
#include "winnls.h"
#include "commctrl.h"
-#include "comctl32.h"
#include "wine/debug.h"
+#include "comctl32.h"
WINE_DEFAULT_DEBUG_CHANNEL(commctrl);
*
* Copyright 1998 Eric Kohl
* Copyright 2000 Eric Kohl for CodeWeavers
+ * Copyright 2003 Maxime Bellenge
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* - Use notification format
* - Correct the order maintenance code to preserve valid order
*
- * FIXME:
- * - Little flaw when drawing a bitmap on the right side of the text.
*/
#include <stdarg.h>
INT xOldTrack; /* track offset (see above) after the last WM_MOUSEMOVE */
INT nOldWidth; /* width of a sizing item after the last WM_MOUSEMOVE */
INT iHotItem; /* index of hot item (cursor is over this item) */
+ INT iMargin; /* width of the margin that surrounds a bitmap */
HIMAGELIST himl; /* handle to a image list (may be 0) */
HEADER_ITEM *items; /* pointer to array of HEADER_ITEM's */
}
- if (rx >= bmp.bmWidth + 6) {
+ if (rx >= bmp.bmWidth + infoPtr->iMargin) {
cx = bmp.bmWidth;
}
else {
- cx = rx - 6;
+ cx = rx - infoPtr->iMargin;
}
hdcBitmap = CreateCompatibleDC (hdc);
SelectObject (hdcBitmap, phdi->hbm);
- BitBlt (hdc, r.left + 3, yD, cx, cy, hdcBitmap, 0, yS, SRCCOPY);
+ BitBlt (hdc, r.left + infoPtr->iMargin, yD, cx, cy, hdcBitmap, 0, yS, SRCCOPY);
DeleteDC (hdcBitmap);
- r.left += (bmp.bmWidth + 3);
+ r.left += (bmp.bmWidth + infoPtr->iMargin);
}
GetObjectA (phdi->hbm, sizeof(BITMAP), (LPVOID)&bmp);
textRect = r;
- DrawTextW (hdc, phdi->pszText, -1,
- &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT);
- tx = textRect.right - textRect.left;
+ if (phdi->fmt & HDF_STRING) {
+ DrawTextW (hdc, phdi->pszText, -1,
+ &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT);
+ tx = textRect.right - textRect.left;
+ }
+ else
+ tx = 0;
ry = r.bottom - r.top;
rx = r.right - r.left;
}
- if (r.left + tx + bmp.bmWidth + 9 <= r.right) {
+ if (r.left + tx + bmp.bmWidth + 2*infoPtr->iMargin <= r.right) {
cx = bmp.bmWidth;
- xD = r.left + tx + 6;
+ xD = r.left + tx + infoPtr->iMargin;
}
else {
- if (rx >= bmp.bmWidth + 6) {
+ if (rx >= bmp.bmWidth + infoPtr->iMargin ) {
cx = bmp.bmWidth;
- xD = r.right - bmp.bmWidth - 3;
- r.right = xD - 3;
+ xD = r.right - bmp.bmWidth - infoPtr->iMargin;
+ r.right = xD - infoPtr->iMargin;
}
else {
- cx = rx - 3;
+ cx = rx - infoPtr->iMargin;
xD = r.left;
r.right = r.left;
}
DeleteDC (hdcBitmap);
}
- if ((phdi->fmt & HDF_IMAGE) && (infoPtr->himl)) {
- r.left +=3;
- /* FIXME: (r.bottom- (infoPtr->himl->cy))/2 should horicontal center the image
- It looks like it doesn't work as expected*/
- ImageList_Draw (infoPtr->himl, phdi->iImage,hdc,r.left, (r.bottom- (infoPtr->himl->cy))/2,0);
- r.left += infoPtr->himl->cx;
+ if ((phdi->fmt & HDF_IMAGE) && !(phdi->fmt & HDF_BITMAP_ON_RIGHT) && (infoPtr->himl)) {
+ r.left += infoPtr->iMargin;
+ ImageList_DrawEx(infoPtr->himl, phdi->iImage, hdc, r.left, r.top + (r.bottom-r.top- infoPtr->himl->cy)/2,
+ infoPtr->himl->cx, r.bottom-r.top, CLR_DEFAULT, CLR_DEFAULT, 0);
+ r.left += infoPtr->himl->cx;
}
+ if ((phdi->fmt & HDF_IMAGE) && (phdi->fmt & HDF_BITMAP_ON_RIGHT) && (infoPtr->himl)) {
+ RECT textRect;
+ INT tx;
+
+ textRect = r;
+ if (phdi->fmt & HDF_STRING) {
+ DrawTextW (hdc, phdi->pszText, -1,
+ &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT);
+ tx = textRect.right - textRect.left;
+ }
+ else
+ tx = 0;
+ ImageList_DrawEx(infoPtr->himl, phdi->iImage, hdc, r.left + tx + 2*infoPtr->iMargin,
+ r.top + (r.bottom-r.top-infoPtr->himl->cy)/2, infoPtr->himl->cx, r.bottom-r.top,
+ CLR_DEFAULT, CLR_DEFAULT, 0);
+ }
+
if (((phdi->fmt & HDF_STRING)
|| (!(phdi->fmt & (HDF_OWNERDRAW|HDF_STRING|HDF_BITMAP|
HDF_BITMAP_ON_RIGHT|HDF_IMAGE)))) /* no explicit format specified? */
&& (phdi->pszText)) {
oldBkMode = SetBkMode(hdc, TRANSPARENT);
- r.left += 3 ;
- r.right -= 3;
+ r.left += infoPtr->iMargin;
+ r.right -= infoPtr->iMargin;
SetTextColor (hdc, (bHotTrack) ? COLOR_HIGHLIGHT : COLOR_BTNTEXT);
DrawTextW (hdc, phdi->pszText, -1,
&r, uTextJustify|DT_END_ELLIPSIS|DT_VCENTER|DT_SINGLELINE);
lpItem->cxy = phdi->cxy;
if (phdi->mask & HDI_TEXT) {
+ static char empty[] = "";
if (!phdi->pszText) /* null pointer check */
- phdi->pszText = "";
+ phdi->pszText = empty;
if (phdi->pszText != LPSTR_TEXTCALLBACKA) {
len = MultiByteToWideChar(CP_ACP, 0, phdi->pszText, -1, NULL, 0);
lpItem->pszText = Alloc( len*sizeof(WCHAR) );
}
+static LRESULT
+HEADER_GetBitmapMargin(HWND hwnd)
+{
+ HEADER_INFO *infoPtr = HEADER_GetInfoPtr(hwnd);
+
+ return infoPtr->iMargin;
+}
+
+static LRESULT
+HEADER_SetBitmapMargin(HWND hwnd, WPARAM wParam)
+{
+ HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd);
+ INT oldMargin = infoPtr->iMargin;
+
+ infoPtr->iMargin = (INT)wParam;
+
+ return oldMargin;
+}
+
static LRESULT
HEADER_SetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
{
infoPtr->himl = 0;
infoPtr->iHotItem = -1;
infoPtr->bUnicode = IsWindowUnicode (hwnd);
+ infoPtr->iMargin = 3*GetSystemMetrics(SM_CXEDGE);
infoPtr->nNotifyFormat =
SendMessageA (infoPtr->hwndNotify, WM_NOTIFYFORMAT, (WPARAM)hwnd, NF_QUERY);
/* case HDM_EDITFILTER: */
-/* case HDM_GETBITMAPMARGIN: */
+ case HDM_GETBITMAPMARGIN:
+ return HEADER_GetBitmapMargin(hwnd);
case HDM_GETIMAGELIST:
return HEADER_GetImageList (hwnd);
case HDM_ORDERTOINDEX:
return HEADER_OrderToIndex(hwnd, wParam);
-/* case HDM_SETBITMAPMARGIN: */
+ case HDM_SETBITMAPMARGIN:
+ return HEADER_SetBitmapMargin(hwnd, wParam);
/* case HDM_SETFILTERCHANGETIMEOUT: */
ImageList_Copy (HIMAGELIST himlDst, INT iDst, HIMAGELIST himlSrc,
INT iSrc, UINT uFlags)
{
- TRACE("iDst=%d iSrc=%d\n", iDst, iSrc);
+ TRACE("himlDst=%p iDst=%d himlSrc=%p iSrc=%d\n", himlDst, iDst, himlSrc, iSrc);
if (!is_valid(himlSrc) || !is_valid(himlDst))
return FALSE;
if (fState & ILS_SATURATE) FIXME("ILS_SATURATE: unimplemented!\n");
if (fState & ILS_GLOW) FIXME("ILS_GLOW: unimplemented!\n");
if (fState & ILS_SHADOW) FIXME("ILS_SHADOW: unimplemented!\n");
- if (fState & ILS_ALPHA) FIXME("ILS_SHADOW: unimplemented!\n");
+ if (fState & ILS_ALPHA) FIXME("ILS_ALPHA: unimplemented!\n");
if (fStyle & ILD_PRESERVEALPHA) FIXME("ILD_PRESERVEALPHA: unimplemented!\n");
if (fStyle & ILD_SCALE) FIXME("ILD_SCALE: unimplemented!\n");
/* XXX is this always correct? */
icount = bm.bmWidth / cx;
- nwidth = cx << 2;
- nheight = cy * ((icount+3)>>2);
+ nwidth = cx;
+ nheight = cy * icount;
bitCount = bm.bmBitsPixel == 1 ? 1 : 24;
sizeImage = ((((bm.bmWidth * bitCount)+31) & ~31) >> 3) * bm.bmHeight;
bmih->biPlanes = 1;
bmih->biBitCount = bitCount;
bmih->biCompression = BI_RGB;
- bmih->biSizeImage = nsizeImage;
+ bmih->biSizeImage = sizeImage;
bmih->biXPelsPerMeter = 0;
bmih->biYPelsPerMeter = 0;
bmih->biClrUsed = 0;
bmih->biClrImportant = 0;
- lpBitsOrg = (LPBYTE)LocalAlloc(LMEM_ZEROINIT, nsizeImage);
+ lpBitsOrg = (LPBYTE)LocalAlloc(LMEM_ZEROINIT, sizeImage);
if(!GetDIBits(xdc, hBitmap, 0, bm.bmHeight, lpBitsOrg,
(BITMAPINFO *)bmih, DIB_RGB_COLORS))
goto failed;
bmih->biWidth = nwidth;
bmih->biHeight = nheight;
+ bmih->biSizeImage = nsizeImage;
if(bitCount == 1) {
/* Hack. */
*
* Extended Styles
* -- LVS_EX_BORDERSELECT
- * -- LVS_EX_CHECKBOXES
* -- LVS_EX_FLATSB
* -- LVS_EX_GRIDLINES
* -- LVS_EX_HEADERDRAGDROP
* -- LVS_EX_ONECLICKACTIVATE
* -- LVS_EX_REGIONAL
* -- LVS_EX_SIMPLESELECT
- * -- LVS_EX_SUBITEMIMAGES
* -- LVS_EX_TRACKSELECT
* -- LVS_EX_TWOCLICKACTIVATE
* -- LVS_EX_UNDERLINECOLD
* -- LVS_EX_UNDERLINEHOT
*
* Notifications:
- * -- LVN_BEGINDRAG, LVN_BEGINRDRAG
+ * -- LVN_BEGINRDRAG
* -- LVN_BEGINSCROLL, LVN_ENDSCROLL
* -- LVN_GETINFOTIP
* -- LVN_HOTTRACK
*
* Messages:
* -- LVM_CANCELEDITLABEL
- * -- LVM_CREATEDRAGIMAGE
* -- LVM_ENABLEGROUPVIEW
* -- LVM_GETBKIMAGE, LVM_SETBKIMAGE
* -- LVM_GETGROUPINFO, LVM_SETGROUPINFO
INT nSelectionMark;
INT nHotItem;
SHORT notifyFormat;
+ HWND hwndNotify;
RECT rcList; /* This rectangle is really the window
* client rectangle possibly reduced by the
* horizontal scroll bar and/or header - see
static INT LISTVIEW_GetTopIndex(LISTVIEW_INFO *);
static BOOL LISTVIEW_EnsureVisible(LISTVIEW_INFO *, INT, BOOL);
static HWND CreateEditLabelT(LISTVIEW_INFO *, LPCWSTR, DWORD, INT, INT, INT, INT, BOOL);
+static HIMAGELIST LISTVIEW_SetImageList(LISTVIEW_INFO *, INT, HIMAGELIST);
/******** Text handling functions *************************************/
return buffers[index++ % DEBUG_BUFFERS];
}
-static inline char* debugrange(const RANGE *lprng)
+static inline const char* debugrange(const RANGE *lprng)
{
if (lprng)
{
} else return "(null)";
}
-static inline char* debugpoint(const POINT *lppt)
+static inline const char* debugpoint(const POINT *lppt)
{
if (lppt)
{
} else return "(null)";
}
-static inline char* debugrect(const RECT *rect)
+static inline const char* debugrect(const RECT *rect)
{
if (rect)
{
} else return "(null)";
}
-static char * debugscrollinfo(const SCROLLINFO *pScrollInfo)
+static const char * debugscrollinfo(const SCROLLINFO *pScrollInfo)
{
char* buf = debug_getbuf(), *text = buf;
int len, size = DEBUG_BUFFER_SIZE;
return text;
}
-static char* debugnmlistview(const NMLISTVIEW *plvnm)
+static const char* debugnmlistview(const NMLISTVIEW *plvnm)
{
if (plvnm)
{
} else return "(null)";
}
-static char* debuglvitem_t(const LVITEMW *lpLVItem, BOOL isW)
+static const char* debuglvitem_t(const LVITEMW *lpLVItem, BOOL isW)
{
char* buf = debug_getbuf(), *text = buf;
int len, size = DEBUG_BUFFER_SIZE;
return text;
}
-static char* debuglvcolumn_t(const LVCOLUMNW *lpColumn, BOOL isW)
+static const char* debuglvcolumn_t(const LVCOLUMNW *lpColumn, BOOL isW)
{
char* buf = debug_getbuf(), *text = buf;
int len, size = DEBUG_BUFFER_SIZE;
return text;
}
-static char* debuglvhittestinfo(const LVHITTESTINFO *lpht)
+static const char* debuglvhittestinfo(const LVHITTESTINFO *lpht)
{
if (lpht)
{
pnmh->hwndFrom = infoPtr->hwndSelf;
pnmh->idFrom = GetWindowLongW(infoPtr->hwndSelf, GWL_ID);
pnmh->code = code;
- result = SendMessageW(GetParent(infoPtr->hwndSelf), WM_NOTIFY,
+ result = SendMessageW(infoPtr->hwndNotify, WM_NOTIFY,
(WPARAM)pnmh->idFrom, (LPARAM)pnmh);
TRACE(" <= %ld\n", result);
LISTVIEW_GetItemBox(infoPtr, dis.itemID, &dis.rcItem);
dis.itemData = item.lParam;
- SendMessageW(GetParent(infoPtr->hwndSelf), WM_DRAWITEM, dis.CtlID, (LPARAM)&dis);
+ SendMessageW(infoPtr->hwndNotify, WM_DRAWITEM, dis.CtlID, (LPARAM)&dis);
}
else
{
Icon.left = State.right;
Icon.top = Box.top;
Icon.right = Icon.left;
- if (infoPtr->himlSmall && (!lpColumnInfo || lpLVItem->iSubItem == 0 || (lpColumnInfo->fmt & LVCFMT_IMAGE)))
+ if (infoPtr->himlSmall &&
+ (!lpColumnInfo || lpLVItem->iSubItem == 0 || (lpColumnInfo->fmt & LVCFMT_IMAGE) ||
+ ((infoPtr->dwLvExStyle & LVS_EX_SUBITEMIMAGES) && lpLVItem->iImage != I_IMAGECALLBACK)))
Icon.right += infoPtr->iconSize.cx;
Icon.bottom = Icon.top + infoPtr->nItemHeight;
}
return FALSE;
}
lpSubItem->iSubItem = lpLVItem->iSubItem;
+ lpSubItem->hdr.iImage = I_IMAGECALLBACK;
*bChanged = TRUE;
}
cdsubitemmode = notify_customdraw(infoPtr, CDDS_PREPAINT, &nmlvcd);
if (nSubItem == 0) infoPtr->cditemmode = cdsubitemmode;
if (cdsubitemmode & CDRF_SKIPDEFAULT) goto postpaint;
+ /* we have to send a CDDS_SUBITEM customdraw explicitly for subitem 0 */
+ if (nSubItem == 0 && cdsubitemmode == CDRF_NOTIFYITEMDRAW)
+ {
+ cdsubitemmode = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd);
+ if (cdsubitemmode & CDRF_SKIPDEFAULT) goto postpaint;
+ }
if (nSubItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW))
prepaint_setup(infoPtr, hdc, &nmlvcd);
static void LISTVIEW_RefreshOwnerDraw(LISTVIEW_INFO *infoPtr, ITERATOR *i, HDC hdc, DWORD cdmode)
{
UINT uID = GetWindowLongW(infoPtr->hwndSelf, GWL_ID);
- HWND hwndParent = GetParent(infoPtr->hwndSelf);
DWORD cditemmode = CDRF_DODEFAULT;
NMLVCUSTOMDRAW nmlvcd;
POINT Origin, Position;
TRACE("item=%s, rcItem=%s\n", debuglvitem_t(&item, TRUE), debugrect(&dis.rcItem));
+ /*
+ * Even if we do not send the CDRF_NOTIFYITEMDRAW we need to fill the nmlvcd
+ * structure for the rest. of the paint cycle
+ */
+ customdraw_fill(&nmlvcd, infoPtr, hdc, &dis.rcItem, &item);
if (cdmode & CDRF_NOTIFYITEMDRAW)
- {
- customdraw_fill(&nmlvcd, infoPtr, hdc, &dis.rcItem, &item);
cditemmode = notify_customdraw(infoPtr, CDDS_PREPAINT, &nmlvcd);
- }
if (!(cditemmode & CDRF_SKIPDEFAULT))
{
prepaint_setup (infoPtr, hdc, &nmlvcd);
- SendMessageW(hwndParent, WM_DRAWITEM, dis.CtlID, (LPARAM)&dis);
+ SendMessageW(infoPtr->hwndNotify, WM_DRAWITEM, dis.CtlID, (LPARAM)&dis);
}
if (cditemmode & CDRF_NOTIFYPOSTPAINT)
return dwViewRect;
}
-/* << LISTVIEW_CreateDragImage >> */
+
+/***
+ * DESCRIPTION:
+ * Create a drag image list for the specified item.
+ *
+ * PARAMETER(S):
+ * [I] infoPtr : valid pointer to the listview structure
+ * [I] iItem : index of item
+ * [O] lppt : Upperr-left corner of the image
+ *
+ * RETURN:
+ * Returns a handle to the image list if successful, NULL otherwise.
+ */
+static HIMAGELIST LISTVIEW_CreateDragImage(LISTVIEW_INFO *infoPtr, INT iItem, LPPOINT lppt)
+{
+ RECT rcItem;
+ SIZE size;
+ POINT pos;
+ HDC hdc, hdcOrig;
+ HBITMAP hbmp, hOldbmp;
+ HIMAGELIST dragList = 0;
+ TRACE("iItem=%d Count=%d \n", iItem, infoPtr->nItemCount);
+
+ if (iItem < 0 || iItem >= infoPtr->nItemCount)
+ return 0;
+
+ rcItem.left = LVIR_BOUNDS;
+ if (!LISTVIEW_GetItemRect(infoPtr, iItem, &rcItem))
+ return 0;
+
+ lppt->x = rcItem.left;
+ lppt->y = rcItem.top;
+
+ size.cx = rcItem.right - rcItem.left;
+ size.cy = rcItem.bottom - rcItem.top;
+
+ hdcOrig = GetDC(infoPtr->hwndSelf);
+ hdc = CreateCompatibleDC(hdcOrig);
+ hbmp = CreateCompatibleBitmap(hdcOrig, size.cx, size.cy);
+ hOldbmp = SelectObject(hdc, hbmp);
+
+ rcItem.left = rcItem.top = 0;
+ rcItem.right = size.cx;
+ rcItem.bottom = size.cy;
+ FillRect(hdc, &rcItem, infoPtr->hBkBrush);
+
+ pos.x = pos.y = 0;
+ if (LISTVIEW_DrawItem(infoPtr, hdc, iItem, 0, pos, infoPtr->cditemmode))
+ {
+ dragList = ImageList_Create(size.cx, size.cy, ILC_COLOR, 10, 10);
+ SelectObject(hdc, hOldbmp);
+ ImageList_Add(dragList, hbmp, 0);
+ }
+ else
+ SelectObject(hdc, hOldbmp);
+
+ DeleteObject(hbmp);
+ DeleteDC(hdc);
+ ReleaseDC(infoPtr->hwndSelf, hdcOrig);
+
+ TRACE("ret=%p\n", dragList);
+
+ return dragList;
+}
/***
ITEM_INFO *lpItem;
ITEMHDR* pItemHdr;
HDPA hdpaSubItems;
+ INT isubitem;
TRACE("(lpLVItem=%s, isW=%d)\n", debuglvitem_t(lpLVItem, isW), isW);
if (lpLVItem->mask == 0) return TRUE;
+ /* make a local copy */
+ isubitem = lpLVItem->iSubItem;
+
/* a quick optimization if all we're asked is the focus state
* these queries are worth optimising since they are common,
* and can be answered in constant time, without the heavy accesses */
* depend on the uninitialized fields being 0 */
dispInfo.item.mask = lpLVItem->mask & ~LVIF_PARAM;
dispInfo.item.iItem = lpLVItem->iItem;
- dispInfo.item.iSubItem = lpLVItem->iSubItem;
+ dispInfo.item.iSubItem = isubitem;
if (lpLVItem->mask & LVIF_TEXT)
{
dispInfo.item.pszText = lpLVItem->pszText;
if (lpLVItem->mask & LVIF_PARAM) lpLVItem->lParam = 0;
/* we store only a little state, so if we're not asked, we're done */
- if (!(lpLVItem->mask & LVIF_STATE) || lpLVItem->iSubItem) return TRUE;
+ if (!(lpLVItem->mask & LVIF_STATE) || isubitem) return TRUE;
/* if focus is handled by us, report it */
if ( lpLVItem->stateMask & ~infoPtr->uCallbackMask & LVIS_FOCUSED )
lpItem = (ITEM_INFO *)DPA_GetPtr(hdpaSubItems, 0);
assert (lpItem);
- if (lpLVItem->iSubItem)
+ if (isubitem)
{
- SUBITEM_INFO *lpSubItem = LISTVIEW_GetSubItemPtr(hdpaSubItems, lpLVItem->iSubItem);
+ SUBITEM_INFO *lpSubItem = LISTVIEW_GetSubItemPtr(hdpaSubItems, isubitem);
pItemHdr = lpSubItem ? &lpSubItem->hdr : &callbackHdr;
+ if (!lpSubItem)
+ {
+ WARN(" iSubItem invalid (%08x), ignored.\n", isubitem);
+ isubitem = 0;
+ }
}
else
pItemHdr = &lpItem->hdr;
/* Do we need to query the state from the app? */
- if ((lpLVItem->mask & LVIF_STATE) && infoPtr->uCallbackMask && lpLVItem->iSubItem == 0)
+ if ((lpLVItem->mask & LVIF_STATE) && infoPtr->uCallbackMask && isubitem == 0)
{
dispInfo.item.mask |= LVIF_STATE;
dispInfo.item.stateMask = infoPtr->uCallbackMask;
}
/* Do we need to enquire about the image? */
- if ((lpLVItem->mask & LVIF_IMAGE) && pItemHdr->iImage == I_IMAGECALLBACK)
+ if ((lpLVItem->mask & LVIF_IMAGE) && pItemHdr->iImage == I_IMAGECALLBACK &&
+ (isubitem == 0 || (infoPtr->dwLvExStyle & LVS_EX_SUBITEMIMAGES)))
+ {
dispInfo.item.mask |= LVIF_IMAGE;
+ dispInfo.item.iImage = I_IMAGECALLBACK;
+ }
/* Apps depend on calling back for text if it is NULL or LPSTR_TEXTCALLBACKW */
if ((lpLVItem->mask & LVIF_TEXT) && !is_textW(pItemHdr->pszText))
if (dispInfo.item.mask != 0)
{
dispInfo.item.iItem = lpLVItem->iItem;
- dispInfo.item.iSubItem = lpLVItem->iSubItem;
+ dispInfo.item.iSubItem = lpLVItem->iSubItem; /* yes: the original subitem */
dispInfo.item.lParam = lpItem->lParam;
notify_dispinfoT(infoPtr, LVN_GETDISPINFOW, &dispInfo, isW);
TRACE(" getdispinfo(2):item=%s\n", debuglvitem_t(&dispInfo.item, isW));
}
/* we should not store values for subitems */
- if (lpLVItem->iSubItem) dispInfo.item.mask &= ~LVIF_DI_SETITEM;
+ if (isubitem) dispInfo.item.mask &= ~LVIF_DI_SETITEM;
/* Now, handle the iImage field */
if (dispInfo.item.mask & LVIF_IMAGE)
pItemHdr->iImage = dispInfo.item.iImage;
}
else if (lpLVItem->mask & LVIF_IMAGE)
- lpLVItem->iImage = pItemHdr->iImage;
+ {
+ if(isubitem == 0 || (infoPtr->dwLvExStyle & LVS_EX_SUBITEMIMAGES))
+ lpLVItem->iImage = pItemHdr->iImage;
+ else
+ lpLVItem->iImage = 0;
+ }
/* The pszText field */
if (dispInfo.item.mask & LVIF_TEXT)
}
/* if this is a subitem, we're done */
- if (lpLVItem->iSubItem) return TRUE;
+ if (isubitem) return TRUE;
/* Next is the lParam field */
if (dispInfo.item.mask & LVIF_PARAM)
POINT Position;
LVITEMW lvItem;
- if (!lprc || (infoPtr->dwStyle & LVS_TYPEMASK) != LVS_REPORT) return FALSE;
-
+ if (!lprc) return FALSE;
+
TRACE("(nItem=%d, nSubItem=%ld)\n", nItem, lprc->top);
/* On WinNT, a subitem of '0' calls LISTVIEW_GetItemRect */
if (lprc->top == 0)
return LISTVIEW_GetItemRect(infoPtr, nItem, lprc);
+ if ((infoPtr->dwStyle & LVS_TYPEMASK) != LVS_REPORT) return FALSE;
+
if (!LISTVIEW_GetItemPosition(infoPtr, nItem, &Position)) return FALSE;
- lvItem.mask = lprc->top == 0 ? LVIF_INDENT : 0;
+ lvItem.mask = 0;
lvItem.iItem = nItem;
lvItem.iSubItem = lprc->top;
if (select && !(uView == LVS_REPORT && (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT)))
{
- if (uView == LVS_REPORT) UnionRect(&rcBounds, &rcIcon, &rcLabel);
+ if (uView == LVS_REPORT)
+ {
+ UnionRect(&rcBounds, &rcIcon, &rcLabel);
+ UnionRect(&rcBounds, &rcBounds, &rcState);
+ }
if (!PtInRect(&rcBounds, opt)) iItem = -1;
}
return lpht->iItem = iItem;
return Header_SetItemW(infoPtr->hwndHeader, nColumn, (LPARAM)&hdi);
}
+/***
+ * Creates the checkbox imagelist. Helper for LISTVIEW_SetExtendedListViewStyle
+ *
+ */
+static HIMAGELIST LISTVIEW_CreateCheckBoxIL(LISTVIEW_INFO *infoPtr)
+{
+ HDC hdc_wnd, hdc;
+ HBITMAP hbm_im, hbm_mask, hbm_orig;
+ RECT rc;
+ HBRUSH hbr_white = GetStockObject(WHITE_BRUSH);
+ HBRUSH hbr_black = GetStockObject(BLACK_BRUSH);
+ HIMAGELIST himl;
+
+ himl = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON),
+ ILC_COLOR | ILC_MASK, 2, 2);
+ hdc_wnd = GetDC(infoPtr->hwndSelf);
+ hdc = CreateCompatibleDC(hdc_wnd);
+ hbm_im = CreateCompatibleBitmap(hdc_wnd, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON));
+ hbm_mask = CreateBitmap(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 1, 1, NULL);
+ ReleaseDC(infoPtr->hwndSelf, hdc_wnd);
+
+ rc.left = rc.top = 0;
+ rc.right = GetSystemMetrics(SM_CXSMICON);
+ rc.bottom = GetSystemMetrics(SM_CYSMICON);
+
+ hbm_orig = SelectObject(hdc, hbm_mask);
+ FillRect(hdc, &rc, hbr_white);
+ InflateRect(&rc, -3, -3);
+ FillRect(hdc, &rc, hbr_black);
+
+ SelectObject(hdc, hbm_im);
+ DrawFrameControl(hdc, &rc, DFC_BUTTON, DFCS_BUTTONCHECK | DFCS_MONO);
+ SelectObject(hdc, hbm_orig);
+ ImageList_Add(himl, hbm_im, hbm_mask);
+
+ SelectObject(hdc, hbm_im);
+ DrawFrameControl(hdc, &rc, DFC_BUTTON, DFCS_BUTTONCHECK | DFCS_MONO | DFCS_CHECKED);
+ SelectObject(hdc, hbm_orig);
+ ImageList_Add(himl, hbm_im, hbm_mask);
+
+ DeleteObject(hbm_mask);
+ DeleteObject(hbm_im);
+ DeleteDC(hdc);
+
+ return himl;
+}
+
/***
* DESCRIPTION:
* Sets the extended listview style.
else
infoPtr->dwLvExStyle = dwStyle;
+ if((infoPtr->dwLvExStyle ^ dwOldStyle) & LVS_EX_CHECKBOXES)
+ {
+ HIMAGELIST himl = 0;
+ if(infoPtr->dwLvExStyle & LVS_EX_CHECKBOXES)
+ himl = LISTVIEW_CreateCheckBoxIL(infoPtr);
+ LISTVIEW_SetImageList(infoPtr, LVSIL_STATE, himl);
+ }
+
return dwOldStyle;
}
infoPtr->hwndSelf = hwnd;
infoPtr->dwStyle = lpcs->style;
/* determine the type of structures to use */
- infoPtr->notifyFormat = SendMessageW(GetParent(infoPtr->hwndSelf), WM_NOTIFYFORMAT,
+ infoPtr->hwndNotify = lpcs->hwndParent;
+ infoPtr->notifyFormat = SendMessageW(infoPtr->hwndNotify, WM_NOTIFYFORMAT,
(WPARAM)infoPtr->hwndSelf, (LPARAM)NF_QUERY);
/* initialize color information */
return 0;
}
+
+/***
+ * DESCRIPTION:
+ * Track mouse/dragging
+ *
+ * PARAMETER(S):
+ * [I] infoPtr : valid pointer to the listview structure
+ * [I] pt : mouse coordinate
+ *
+ * RETURN:
+ * Zero
+ */
+static LRESULT LISTVIEW_TrackMouse(LISTVIEW_INFO *infoPtr, POINT pt)
+{
+ INT cxDrag = GetSystemMetrics(SM_CXDRAG);
+ INT cyDrag = GetSystemMetrics(SM_CYDRAG);
+ RECT r;
+ MSG msg;
+
+ TRACE("\n");
+
+ r.top = pt.y - cyDrag;
+ r.left = pt.x - cxDrag;
+ r.bottom = pt.y + cyDrag;
+ r.right = pt.x + cxDrag;
+
+ SetCapture(infoPtr->hwndSelf);
+
+ while (1)
+ {
+ if (PeekMessageW(&msg, 0, 0, 0, PM_REMOVE | PM_NOYIELD))
+ {
+ if (msg.message == WM_MOUSEMOVE)
+ {
+ pt.x = (short)LOWORD(msg.lParam);
+ pt.y = (short)HIWORD(msg.lParam);
+ if (PtInRect(&r, pt))
+ continue;
+ else
+ {
+ ReleaseCapture();
+ return 1;
+ }
+ }
+ else if (msg.message >= WM_LBUTTONDOWN &&
+ msg.message <= WM_RBUTTONDBLCLK)
+ {
+ break;
+ }
+
+ DispatchMessageW(&msg);
+ }
+
+ if (GetCapture() != infoPtr->hwndSelf)
+ return 0;
+ }
+
+ ReleaseCapture();
+ return 0;
+}
+
+
/***
* DESCRIPTION:
* Processes double click messages (left mouse button).
infoPtr->nEditLabelItem = -1;
if ((nItem >= 0) && (nItem < infoPtr->nItemCount))
{
+ if ((infoPtr->dwLvExStyle & LVS_EX_CHECKBOXES) && (lvHitTestInfo.flags & LVHT_ONITEMSTATEICON))
+ {
+ DWORD state = LISTVIEW_GetItemState(infoPtr, nItem, LVIS_STATEIMAGEMASK) >> 12;
+ if(state == 1 || state == 2)
+ {
+ LVITEMW lvitem;
+ state ^= 3;
+ lvitem.state = state << 12;
+ lvitem.stateMask = LVIS_STATEIMAGEMASK;
+ LISTVIEW_SetItemState(infoPtr, nItem, &lvitem);
+ }
+ return 0;
+ }
+ if (LISTVIEW_TrackMouse(infoPtr, lvHitTestInfo.pt))
+ {
+ NMLISTVIEW nmlv;
+
+ ZeroMemory(&nmlv, sizeof(nmlv));
+ nmlv.iItem = nItem;
+ nmlv.ptAction.x = lvHitTestInfo.pt.x;
+ nmlv.ptAction.y = lvHitTestInfo.pt.y;
+
+ notify_listview(infoPtr, LVN_BEGINDRAG, &nmlv);
+
+ return 0;
+ }
+
if (infoPtr->dwStyle & LVS_SINGLESEL)
{
if (LISTVIEW_GetItemState(infoPtr, nItem, LVIS_SELECTED))
{
/* remove all selections */
LISTVIEW_DeselectAll(infoPtr);
+ ReleaseCapture();
}
return 0;
/* case LVM_CANCELEDITLABEL: */
-/* case LVM_CREATEDRAGIMAGE: */
+ case LVM_CREATEDRAGIMAGE:
+ return (LRESULT)LISTVIEW_CreateDragImage(infoPtr, (INT)wParam, (LPPOINT)lParam);
case LVM_DELETEALLITEMS:
return LISTVIEW_DeleteAllItems(infoPtr);
}
default:
- return SendMessageW (GetParent (infoPtr->hwndSelf), WM_COMMAND, wParam, lParam);
+ return SendMessageW (infoPtr->hwndNotify, WM_COMMAND, wParam, lParam);
}
return 0;
}
if (psInfo->proppage[index].useCallback)
- (*(ppshpage->pfnCallback))(hwndParent,
- PSPCB_CREATE,
+ (*(ppshpage->pfnCallback))(0, PSPCB_CREATE,
(LPPROPSHEETPAGEW)ppshpage);
if(ppshpage->dwFlags & PSP_INTERNAL_UNICODE)
index+=skipdir;
if (index < 0) {
index = 0;
- FIXME("Tried to skip before first property sheet page!\n");
+ WARN("Tried to skip before first property sheet page!\n");
break;
}
if (index >= psInfo->nPages) {
- FIXME("Tried to skip after last property sheet page!\n");
+ WARN("Tried to skip after last property sheet page!\n");
index = psInfo->nPages-1;
break;
}
}
else if (result != 0)
{
- index = PROPSHEET_FindPageByResId(psInfo, result);
- continue;
+ int old_index = index;
+ index = PROPSHEET_FindPageByResId(psInfo, result);
+ if(index >= psInfo->nPages) {
+ index = old_index;
+ WARN("Tried to skip to nonexistant page by res id\n");
+ break;
+ }
+ continue;
}
}
/*
*
* Still to do:
* 2. Following still not handled: RBBS_FIXEDBMP,
- * RBBS_USECHEVRON, CCS_NORESIZE,
+ * CCS_NORESIZE,
* CCS_NOMOVEX, CCS_NOMOVEY
* 3. Following are only partially handled:
* RBS_AUTOSIZE, RBBS_VARIABLEHEIGHT
* WM_SYSCOLORCHANGE, WM_VKEYTOITEM, WM_WININICHANGE
* 7. The following notifications are not implemented:
* NM_CUSTOMDRAW, NM_RELEASEDCAPTURE
- * RB_CHEVRONPUSHED, RBN_MINMAX
+ * RBN_MINMAX
*/
#include <stdarg.h>
RECT rcCapImage; /* calculated caption image rectangle */
RECT rcCapText; /* calculated caption text rectangle */
RECT rcChild; /* calculated child rectangle */
+ RECT rcChevron; /* calculated chevron rectangle */
LPWSTR lpText;
HWND hwndPrevParent;
#define DRAW_TEXT 0x00000004
#define DRAW_RIGHTSEP 0x00000010
#define DRAW_BOTTOMSEP 0x00000020
+#define DRAW_CHEVRONHOT 0x00000040
+#define DRAW_CHEVRONPUSHED 0x00000080
#define NTF_INVALIDATE 0x01000000
typedef struct
INT iVersion; /* version number */
POINTS dragStart; /* x,y of button down */
POINTS dragNow; /* x,y of this MouseMove */
- INT ihitBand; /* band number of band whose gripper was grabbed */
+ INT iOldBand; /* last band that had the mouse cursor over it */
INT ihitoffset; /* offset of hotspot from gripper.left */
POINT origin; /* left/upper corner of client */
+ INT ichevronhotBand; /* last band that had a hot chevron */
+ INT iGrabbedBand;/* band number of band whose gripper was grabbed */
REBAR_ROW *rows; /* pointer to row indexes */
REBAR_BAND *bands; /* pointer to the array of rebar bands */
/* if present. */
#define GRIPPER_WIDTH 3
+/* Width of the chevron button if present */
+#define CHEVRON_WIDTH 10
+
/* Height of divider for Rebar if not disabled (CCS_NODIVIDER) */
/* either top or bottom */
#define REBAR_DIVIDER 2
static UINT mindragx = 0;
static UINT mindragy = 0;
-static char *band_stylename[] = {
+static const char *band_stylename[] = {
"RBBS_BREAK", /* 0001 */
"RBBS_FIXEDSIZE", /* 0002 */
"RBBS_CHILDEDGE", /* 0004 */
"RBBS_NOGRIPPER", /* 0100 */
NULL };
-static char *band_maskname[] = {
+static const char *band_maskname[] = {
"RBBIM_STYLE", /* 0x00000001 */
"RBBIM_COLORS", /* 0x00000002 */
"RBBIM_TEXT", /* 0x00000004 */
TRACE("hwnd=%p: color=%08lx/%08lx, bands=%u, rows=%u, cSize=%ld,%ld\n",
iP->hwndSelf, iP->clrText, iP->clrBk, iP->uNumBands, iP->uNumRows,
iP->calcSize.cx, iP->calcSize.cy);
- TRACE("hwnd=%p: flags=%08x, dragStart=%d,%d, dragNow=%d,%d, ihitBand=%d\n",
+ TRACE("hwnd=%p: flags=%08x, dragStart=%d,%d, dragNow=%d,%d, iGrabbedBand=%d\n",
iP->hwndSelf, iP->fStatus, iP->dragStart.x, iP->dragStart.y,
iP->dragNow.x, iP->dragNow.y,
- iP->ihitBand);
+ iP->iGrabbedBand);
TRACE("hwnd=%p: style=%08lx, I'm Unicode=%s, notify in Unicode=%s, redraw=%s\n",
iP->hwndSelf, iP->dwStyle, (iP->bUnicode)?"TRUE":"FALSE",
(iP->NtfUnicode)?"TRUE":"FALSE", (iP->DoRedraw)?"TRUE":"FALSE");
}
+static void
+REBAR_DrawChevron (HDC hdc, INT left, INT top, INT colorRef)
+{
+ INT x, y;
+ HPEN hPen, hOldPen;
+
+ if (!(hPen = CreatePen( PS_SOLID, 1, GetSysColor( colorRef )))) return;
+ hOldPen = SelectObject ( hdc, hPen );
+ x = left + 2;
+ y = top;
+ MoveToEx (hdc, x, y, NULL);
+ LineTo (hdc, x+5, y++); x++;
+ MoveToEx (hdc, x, y, NULL);
+ LineTo (hdc, x+3, y++); x++;
+ MoveToEx (hdc, x, y, NULL);
+ LineTo (hdc, x+1, y++);
+ SelectObject( hdc, hOldPen );
+ DeleteObject( hPen );
+}
static HWND
REBAR_GetNotifyParent (REBAR_INFO *infoPtr)
SelectObject (hdc, hOldFont);
}
+ if (!IsRectEmpty(&lpBand->rcChevron))
+ {
+ if (lpBand->fDraw & DRAW_CHEVRONPUSHED)
+ {
+ DrawEdge(hdc, &lpBand->rcChevron, BDR_SUNKENOUTER, BF_RECT | BF_MIDDLE);
+ REBAR_DrawChevron(hdc, lpBand->rcChevron.left+1, lpBand->rcChevron.top + 11, COLOR_WINDOWFRAME);
+ }
+ else if (lpBand->fDraw & DRAW_CHEVRONHOT)
+ {
+ DrawEdge(hdc, &lpBand->rcChevron, BDR_RAISEDINNER, BF_RECT | BF_MIDDLE);
+ REBAR_DrawChevron(hdc, lpBand->rcChevron.left, lpBand->rcChevron.top + 10, COLOR_WINDOWFRAME);
+ }
+ else
+ REBAR_DrawChevron(hdc, lpBand->rcChevron.left, lpBand->rcChevron.top + 10, COLOR_WINDOWFRAME);
+ }
+
if (lpBand->uCDret == (CDRF_NOTIFYPOSTPAINT | CDRF_NOTIFYITEMDRAW)) {
nmcd.dwDrawStage = CDDS_ITEMPOSTPAINT;
nmcd.hdc = hdc;
SetRect (&lpBand->rcChild,
lpBand->rcBand.left+lpBand->cxHeader, lpBand->rcBand.top+yoff,
lpBand->rcBand.right-xoff, lpBand->rcBand.bottom-yoff);
+ if ((lpBand->fStyle & RBBS_USECHEVRON) && (lpBand->rcChild.right - lpBand->rcChild.left < lpBand->cxIdeal))
+ {
+ lpBand->rcChild.right -= CHEVRON_WIDTH;
+ SetRect(&lpBand->rcChevron, lpBand->rcChild.right,
+ lpBand->rcChild.top, lpBand->rcChild.right + CHEVRON_WIDTH,
+ lpBand->rcChild.bottom);
+ }
}
else {
SetRect (&lpBand->rcChild,
lpBand->fDraw = 0;
lpBand->iRow = row;
+ SetRectEmpty(&lpBand->rcChevron);
+
if (HIDDENBAND(lpBand)) continue;
lpBand->rcoldBand = lpBand->rcBand;
}
static void
-REBAR_InternalHitTest (REBAR_INFO *infoPtr, LPPOINT lpPt, UINT *pFlags, INT *pBand)
+REBAR_InternalHitTest (REBAR_INFO *infoPtr, const LPPOINT lpPt, UINT *pFlags, INT *pBand)
{
REBAR_BAND *lpBand;
RECT rect;
}
else {
/* somewhere inside */
- infoPtr->ihitBand = -1;
for (iCount = 0; iCount < infoPtr->uNumBands; iCount++) {
lpBand = &infoPtr->bands[iCount];
if (HIDDENBAND(lpBand)) continue;
*pBand = iCount;
if (PtInRect (&lpBand->rcGripper, *lpPt)) {
*pFlags = RBHT_GRABBER;
- infoPtr->ihitBand = iCount;
TRACE("ON GRABBER %d\n", iCount);
return;
}
TRACE("ON CLIENT %d\n", iCount);
return;
}
+ else if (PtInRect (&lpBand->rcChevron, *lpPt)) {
+ *pFlags = RBHT_CHEVRON;
+ TRACE("ON CHEVRON %d\n", iCount);
+ return;
+ }
else {
*pFlags = RBHT_NOWHERE;
TRACE("NOWHERE %d\n", iCount);
infoPtr->dragStart.x = 0;
infoPtr->dragStart.y = 0;
infoPtr->dragNow = infoPtr->dragStart;
- infoPtr->ihitBand = -1;
+ infoPtr->iGrabbedBand = -1;
ReleaseCapture ();
return ;
}
infoPtr->fStatus |= BEGIN_DRAG_ISSUED;
}
- ihitBand = infoPtr->ihitBand;
+ ihitBand = infoPtr->iGrabbedBand;
hitBand = &infoPtr->bands[ihitBand];
imaxdBand = ihitBand; /* to suppress warning message */
}
if (lprbbi->lpText) {
INT len = MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, NULL, 0 );
- lpBand->lpText = (LPWSTR)Alloc (len*sizeof(WCHAR));
- MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, lpBand->lpText, len );
+ if (len > 1)
+ {
+ lpBand->lpText = (LPWSTR)Alloc (len*sizeof(WCHAR));
+ MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, lpBand->lpText, len );
+ }
}
}
}
if (lprbbi->lpText) {
INT len = lstrlenW (lprbbi->lpText);
- lpBand->lpText = (LPWSTR)Alloc ((len + 1)*sizeof(WCHAR));
- strcpyW (lpBand->lpText, lprbbi->lpText);
+ if (len > 0)
+ {
+ lpBand->lpText = (LPWSTR)Alloc ((len + 1)*sizeof(WCHAR));
+ strcpyW (lpBand->lpText, lprbbi->lpText);
+ }
}
}
return (LRESULT)infoPtr->hFont;
}
+static LRESULT
+REBAR_PushChevron(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
+{
+ if (wParam >= 0 && (UINT)wParam < infoPtr->uNumBands)
+ {
+ NMREBARCHEVRON nmrbc;
+ REBAR_BAND *lpBand = &infoPtr->bands[wParam];
+
+ TRACE("Pressed chevron on band %d\n", wParam);
+
+ /* redraw chevron in pushed state */
+ lpBand->fDraw |= DRAW_CHEVRONPUSHED;
+ RedrawWindow(infoPtr->hwndSelf, &lpBand->rcChevron,0,
+ RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
+
+ /* notify app so it can display a popup menu or whatever */
+ nmrbc.uBand = wParam;
+ nmrbc.wID = lpBand->wID;
+ nmrbc.lParam = lpBand->lParam;
+ nmrbc.rc = lpBand->rcChevron;
+ nmrbc.lParamNM = lParam;
+ REBAR_Notify((NMHDR*)&nmrbc, infoPtr, RBN_CHEVRONPUSHED);
+
+ /* redraw chevron in previous state */
+ lpBand->fDraw &= ~DRAW_CHEVRONPUSHED;
+ InvalidateRect(infoPtr->hwndSelf, &lpBand->rcChevron, TRUE);
+
+ return TRUE;
+ }
+ return FALSE;
+}
static LRESULT
REBAR_LButtonDown (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
{
REBAR_BAND *lpBand;
+ UINT htFlags;
+ UINT iHitBand;
+ POINT ptMouseDown;
+ ptMouseDown.x = (INT)LOWORD(lParam);
+ ptMouseDown.y = (INT)HIWORD(lParam);
- /* If InternalHitTest did not find a hit on the Gripper, */
- /* then ignore the button click. */
- if (infoPtr->ihitBand == -1) return 0;
+ REBAR_InternalHitTest(infoPtr, &ptMouseDown, &htFlags, &iHitBand);
+ lpBand = &infoPtr->bands[iHitBand];
- SetCapture (infoPtr->hwndSelf);
+ if (htFlags == RBHT_CHEVRON)
+ {
+ REBAR_PushChevron(infoPtr, iHitBand, 0);
+ }
+ else if (htFlags == RBHT_GRABBER || htFlags == RBHT_CAPTION)
+ {
+ TRACE("Starting drag\n");
- /* save off the LOWORD and HIWORD of lParam as initial x,y */
- lpBand = &infoPtr->bands[infoPtr->ihitBand];
- infoPtr->dragStart = MAKEPOINTS(lParam);
- infoPtr->dragNow = infoPtr->dragStart;
- if (infoPtr->dwStyle & CCS_VERT)
- infoPtr->ihitoffset = infoPtr->dragStart.y - (lpBand->rcBand.top+REBAR_PRE_GRIPPER);
- else
- infoPtr->ihitoffset = infoPtr->dragStart.x - (lpBand->rcBand.left+REBAR_PRE_GRIPPER);
+ SetCapture (infoPtr->hwndSelf);
+ infoPtr->iGrabbedBand = iHitBand;
+ /* save off the LOWORD and HIWORD of lParam as initial x,y */
+ infoPtr->dragStart = MAKEPOINTS(lParam);
+ infoPtr->dragNow = infoPtr->dragStart;
+ if (infoPtr->dwStyle & CCS_VERT)
+ infoPtr->ihitoffset = infoPtr->dragStart.y - (lpBand->rcBand.top+REBAR_PRE_GRIPPER);
+ else
+ infoPtr->ihitoffset = infoPtr->dragStart.x - (lpBand->rcBand.left+REBAR_PRE_GRIPPER);
+ }
return 0;
}
-
static LRESULT
REBAR_LButtonUp (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
{
- NMHDR layout;
- RECT rect;
- INT ihitBand;
+ if (infoPtr->iGrabbedBand >= 0)
+ {
+ NMHDR layout;
+ RECT rect;
+
+ infoPtr->dragStart.x = 0;
+ infoPtr->dragStart.y = 0;
+ infoPtr->dragNow = infoPtr->dragStart;
- /* If InternalHitTest did not find a hit on the Gripper, */
- /* then ignore the button click. */
- if (infoPtr->ihitBand == -1) return 0;
+ ReleaseCapture ();
- ihitBand = infoPtr->ihitBand;
- infoPtr->dragStart.x = 0;
- infoPtr->dragStart.y = 0;
- infoPtr->dragNow = infoPtr->dragStart;
- infoPtr->ihitBand = -1;
+ if (infoPtr->fStatus & BEGIN_DRAG_ISSUED) {
+ REBAR_Notify(&layout, infoPtr, RBN_LAYOUTCHANGED);
+ REBAR_Notify_NMREBAR (infoPtr, infoPtr->iGrabbedBand, RBN_ENDDRAG);
+ infoPtr->fStatus &= ~BEGIN_DRAG_ISSUED;
+ }
- ReleaseCapture ();
+ infoPtr->iGrabbedBand = -1;
- if (infoPtr->fStatus & BEGIN_DRAG_ISSUED) {
- REBAR_Notify((NMHDR *) &layout, infoPtr, RBN_LAYOUTCHANGED);
- REBAR_Notify_NMREBAR (infoPtr, ihitBand, RBN_ENDDRAG);
- infoPtr->fStatus &= ~BEGIN_DRAG_ISSUED;
+ GetClientRect(infoPtr->hwndSelf, &rect);
+ InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
}
- GetClientRect(infoPtr->hwndSelf, &rect);
- InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
-
return 0;
}
+static LRESULT
+REBAR_MouseLeave (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
+{
+ if (infoPtr->ichevronhotBand >= 0)
+ {
+ REBAR_BAND *lpChevronBand = &infoPtr->bands[infoPtr->ichevronhotBand];
+ if (lpChevronBand->fDraw & DRAW_CHEVRONHOT)
+ {
+ lpChevronBand->fDraw &= ~DRAW_CHEVRONHOT;
+ InvalidateRect(infoPtr->hwndSelf, &lpChevronBand->rcChevron, TRUE);
+ }
+ }
+ infoPtr->iOldBand = -1;
+ infoPtr->ichevronhotBand = -2;
+
+ return TRUE;
+}
static LRESULT
REBAR_MouseMove (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
{
- REBAR_BAND *band1, *band2;
+ REBAR_BAND *lpChevronBand;
POINTS ptsmove;
- /* Validate entry as hit on Gripper has occurred */
- if (GetCapture() != infoPtr->hwndSelf) return 0;
- if (infoPtr->ihitBand == -1) return 0;
-
ptsmove = MAKEPOINTS(lParam);
- /* if mouse did not move much, exit */
- if ((abs(ptsmove.x - infoPtr->dragNow.x) <= mindragx) &&
- (abs(ptsmove.y - infoPtr->dragNow.y) <= mindragy)) return 0;
+ /* if we are currently dragging a band */
+ if (infoPtr->iGrabbedBand >= 0)
+ {
+ REBAR_BAND *band1, *band2;
+
+ if (GetCapture() != infoPtr->hwndSelf)
+ ERR("We are dragging but haven't got capture?!?\n");
- band1 = &infoPtr->bands[infoPtr->ihitBand-1];
- band2 = &infoPtr->bands[infoPtr->ihitBand];
+ band1 = &infoPtr->bands[infoPtr->iGrabbedBand-1];
+ band2 = &infoPtr->bands[infoPtr->iGrabbedBand];
- /* Test for valid drag case - must not be first band in row */
- if (infoPtr->dwStyle & CCS_VERT) {
- if ((ptsmove.x < band2->rcBand.left) ||
- (ptsmove.x > band2->rcBand.right) ||
- ((infoPtr->ihitBand > 0) && (band1->iRow != band2->iRow))) {
- FIXME("Cannot drag to other rows yet!!\n");
- }
- else {
- REBAR_HandleLRDrag (infoPtr, &ptsmove);
- }
+ /* if mouse did not move much, exit */
+ if ((abs(ptsmove.x - infoPtr->dragNow.x) <= mindragx) &&
+ (abs(ptsmove.y - infoPtr->dragNow.y) <= mindragy)) return 0;
+
+ /* Test for valid drag case - must not be first band in row */
+ if (infoPtr->dwStyle & CCS_VERT) {
+ if ((ptsmove.x < band2->rcBand.left) ||
+ (ptsmove.x > band2->rcBand.right) ||
+ ((infoPtr->iGrabbedBand > 0) && (band1->iRow != band2->iRow))) {
+ FIXME("Cannot drag to other rows yet!!\n");
+ }
+ else {
+ REBAR_HandleLRDrag (infoPtr, &ptsmove);
+ }
+ }
+ else {
+ if ((ptsmove.y < band2->rcBand.top) ||
+ (ptsmove.y > band2->rcBand.bottom) ||
+ ((infoPtr->iGrabbedBand > 0) && (band1->iRow != band2->iRow))) {
+ FIXME("Cannot drag to other rows yet!!\n");
+ }
+ else {
+ REBAR_HandleLRDrag (infoPtr, &ptsmove);
+ }
+ }
}
- else {
- if ((ptsmove.y < band2->rcBand.top) ||
- (ptsmove.y > band2->rcBand.bottom) ||
- ((infoPtr->ihitBand > 0) && (band1->iRow != band2->iRow))) {
- FIXME("Cannot drag to other rows yet!!\n");
- }
- else {
- REBAR_HandleLRDrag (infoPtr, &ptsmove);
- }
+ else
+ {
+ POINT ptMove;
+ INT iHitBand;
+ UINT htFlags;
+ TRACKMOUSEEVENT trackinfo;
+
+ ptMove.x = (INT)ptsmove.x;
+ ptMove.y = (INT)ptsmove.y;
+ REBAR_InternalHitTest(infoPtr, &ptMove, &htFlags, &iHitBand);
+
+ if (infoPtr->iOldBand >= 0 && infoPtr->iOldBand == infoPtr->ichevronhotBand)
+ {
+ lpChevronBand = &infoPtr->bands[infoPtr->ichevronhotBand];
+ if (lpChevronBand->fDraw & DRAW_CHEVRONHOT)
+ {
+ lpChevronBand->fDraw &= ~DRAW_CHEVRONHOT;
+ InvalidateRect(infoPtr->hwndSelf, &lpChevronBand->rcChevron, TRUE);
+ }
+ infoPtr->ichevronhotBand = -2;
+ }
+
+ if (htFlags == RBHT_CHEVRON)
+ {
+ /* fill in the TRACKMOUSEEVENT struct */
+ trackinfo.cbSize = sizeof(TRACKMOUSEEVENT);
+ trackinfo.dwFlags = TME_QUERY;
+ trackinfo.hwndTrack = infoPtr->hwndSelf;
+ trackinfo.dwHoverTime = 0;
+
+ /* call _TrackMouseEvent to see if we are currently tracking for this hwnd */
+ _TrackMouseEvent(&trackinfo);
+
+ /* Make sure tracking is enabled so we receive a WM_MOUSELEAVE message */
+ if(!(trackinfo.dwFlags & TME_LEAVE))
+ {
+ trackinfo.dwFlags = TME_LEAVE; /* notify upon leaving */
+
+ /* call TRACKMOUSEEVENT so we receive a WM_MOUSELEAVE message */
+ /* and can properly deactivate the hot chevron */
+ _TrackMouseEvent(&trackinfo);
+ }
+
+ lpChevronBand = &infoPtr->bands[iHitBand];
+ if (!(lpChevronBand->fDraw & DRAW_CHEVRONHOT))
+ {
+ lpChevronBand->fDraw |= DRAW_CHEVRONHOT;
+ InvalidateRect(infoPtr->hwndSelf, &lpChevronBand->rcChevron, TRUE);
+ infoPtr->ichevronhotBand = iHitBand;
+ }
+ }
+ infoPtr->iOldBand = iHitBand;
}
+
return 0;
}
infoPtr->clrText = CLR_NONE;
infoPtr->clrBtnText = GetSysColor (COLOR_BTNTEXT);
infoPtr->clrBtnFace = GetSysColor (COLOR_BTNFACE);
- infoPtr->ihitBand = -1;
+ infoPtr->iOldBand = -1;
+ infoPtr->ichevronhotBand = -2;
+ infoPtr->iGrabbedBand = -1;
infoPtr->hwndSelf = hwnd;
infoPtr->DoRedraw = TRUE;
infoPtr->hcurArrow = LoadCursorA (0, (LPSTR)IDC_ARROW);
case RB_MOVEBAND:
return REBAR_MoveBand (infoPtr, wParam, lParam);
+ case RB_PUSHCHEVRON:
+ return REBAR_PushChevron (infoPtr, wParam, lParam);
+
case RB_SETBANDINFOA:
return REBAR_SetBandInfoA (infoPtr, wParam, lParam);
case WM_MOUSEMOVE:
return REBAR_MouseMove (infoPtr, wParam, lParam);
+ case WM_MOUSELEAVE:
+ return REBAR_MouseLeave (infoPtr, wParam, lParam);
+
case WM_NCCALCSIZE:
return REBAR_NCCalcSize (infoPtr, wParam, lParam);
-/*\r
- * Copyright 2002 Tisheng Chen\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED\r
-#pragma code_page(936)\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "ÊôÐÔ "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "È·¶¨", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "È¡Ïû", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "Ó¦ÓÃ(&A)", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "°ïÖú", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Wizard"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "½áÊø", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "ÏÂÒ»²½(&N) >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< ÉÏÒ»²½(&B)", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "È¡Ïû", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "°ïÖú", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "×Ô¶¨Ò幤¾ßÀ¸"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "¹Ø±Õ(&C)", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "ÖØÖÃ(&e)", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "°ïÖú(&H)", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "ÉÏÒÆ(&U)", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "ÏÂÒÆ(&D)", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "¿ÉÓù¤¾ßÀ¸°´Å¥(&V):", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "Ìí¼Ó(&A) ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- ɾ³ý(&R)", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "µ±Ç°¹¤¾ßÀ¸°´Å¥(&T):", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "¹Ø±Õ"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Today:"\r
- IDM_GOTODAY "Go to today"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "·Ö¸ô·û"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- HKY_NONE "None"\r
-}\r
-\r
-#pragma code_page(default)\r
+/*
+ * Copyright 2002 Tisheng Chen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+#pragma code_page(936)
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "ÊôÐÔ "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "È·¶¨", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "È¡Ïû", IDCANCEL,58,122,50,14
+ PUSHBUTTON "Ó¦ÓÃ(&A)", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "°ïÖú", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Wizard"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "½áÊø", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "ÏÂÒ»²½(&N) >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< ÉÏÒ»²½(&B)", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "È¡Ïû", IDCANCEL,178,138,50,14
+ PUSHBUTTON "°ïÖú", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "×Ô¶¨Ò幤¾ßÀ¸"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "¹Ø±Õ(&C)", IDCANCEL,308,6,44,14
+ PUSHBUTTON "ÖØÖÃ(&e)", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "°ïÖú(&H)", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "ÉÏÒÆ(&U)", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "ÏÂÒÆ(&D)", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "¿ÉÓù¤¾ßÀ¸°´Å¥(&V):", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "Ìí¼Ó(&A) ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- ɾ³ý(&R)", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "µ±Ç°¹¤¾ßÀ¸°´Å¥(&T):", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "¹Ø±Õ"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Today:"
+ IDM_GOTODAY "Go to today"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "·Ö¸ô·û"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "None"
+}
+
+#pragma code_page(default)
-/*\r
- * Copyright 2000 Uwe Bonnes\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Schließen"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Heute:"\r
- IDM_GOTODAY "Gehe zu Heute"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Trennzeichen"\r
-}\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Eigenschaften für "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "A&bbrechen", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Anwenden", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "&Hilfe", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Wizard"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Beenden", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Weiter >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Zurück", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Abbrechen", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "&Hilfe", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Toolbar einrichten"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Schließen", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "&Zurücksetzen", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Hilfe", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "Nach &Oben verschieben", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Nach &Unten verschieben", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "&Vorhandene Knöpfe:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "H&inzufügen ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Löschen", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Toolbarknöpfe:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
+/*
+ * Copyright 2000 Uwe Bonnes
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Schließen"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Heute:"
+ IDM_GOTODAY "Gehe zu Heute"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Trennzeichen"
+}
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Eigenschaften für "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "A&bbrechen", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Anwenden", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "&Hilfe", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Wizard"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Beenden", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Weiter >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Zurück", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Abbrechen", IDCANCEL,178,138,50,14
+ PUSHBUTTON "&Hilfe", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Toolbar einrichten"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Schließen", IDCANCEL,308,6,44,14
+ PUSHBUTTON "&Zurücksetzen", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Hilfe", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Nach &Oben verschieben", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Nach &Unten verschieben", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "&Vorhandene Knöpfe:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "H&inzufügen ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Löschen", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Toolbarknöpfe:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
-/*\r
- * Copyright 1999 Eric Kohl\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Properties for "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Cancel", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Apply", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "Help", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Wizard"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Finish", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Next >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Back", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Cancel", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "Help", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Customize Toolbar"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Close", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "R&eset", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Help", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "Move &Up", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Move &Down", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "A&vailable buttons:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "&Add ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Remove", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Toolbar buttons:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Close"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Today:"\r
- IDM_GOTODAY "Go to today"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Separator"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- HKY_NONE "None"\r
-}\r
+/*
+ * Copyright 1999 Eric Kohl
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Properties for "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Cancel", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Apply", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Help", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Wizard"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Finish", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Next >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Back", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Cancel", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Help", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Toolbar"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Close", IDCANCEL,308,6,44,14
+ PUSHBUTTON "R&eset", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Help", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Move &Up", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Move &Down", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "A&vailable buttons:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Add ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Remove", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Toolbar buttons:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Close"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Today:"
+ IDM_GOTODAY "Go to today"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Separator"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "None"
+}
-/*\r
- * Copyright 2003 José Manuel Ferrer Ortiz\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Propiedades de "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Aceptar", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Cancelar", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Aplicar", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "Ayuda", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Ayudante"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Terminar", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Siguiente >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Anterior", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Cancelar", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "Ayuda", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Personalizar barra de herramientas"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Cerrar", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "R&estaurar", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Ayuda", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "Mover A&rriba", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Mover A&bajo", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "Botones &disponibles:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "A&ñadir ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Eliminar", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "B&otones de la barra:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Cerrar"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Hoy:"\r
- IDM_GOTODAY "Ir a hoy"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Separador"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- HKY_NONE "Ninguno"\r
-}\r
+/*
+ * Copyright 2003 José Manuel Ferrer Ortiz
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Propiedades de "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Aceptar", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Cancelar", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Aplicar", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Ayuda", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Ayudante"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Terminar", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Siguiente >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Anterior", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Cancelar", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Ayuda", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Personalizar barra de herramientas"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Cerrar", IDCANCEL,308,6,44,14
+ PUSHBUTTON "R&estaurar", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Ayuda", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Mover A&rriba", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Mover A&bajo", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "Botones &disponibles:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "A&ñadir ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Eliminar", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "B&otones de la barra:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Cerrar"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Hoy:"
+ IDM_GOTODAY "Ir a hoy"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Separador"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "Ninguno"
+}
-/*\r
- * Comctl32\r
- * French language support\r
- *\r
- * Copyright 1999 Eric Kohl\r
- * Copyright 2003 Vincent Béron\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Propriétés pour "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Annuler", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Appliquer", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "Aide", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "onglet", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Assistant"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Terminer", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Suivant >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Précédent", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Annuler", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "Aide", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Onglet", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Personnaliser la barre d'outils"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Fermer", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "&Réinitialiser", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Aide", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "&Monter", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "&Descendre", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "Boutons disponibles :", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "A&jouter ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Enlever", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Boutons de la barre d'outils :", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Fermer"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Aujourd'hui:"\r
- IDM_GOTODAY "Aller à aujourd'hui"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Séparateur"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- HKY_NONE "Aucun"\r
-}\r
+/*
+ * Comctl32
+ * French language support
+ *
+ * Copyright 1999 Eric Kohl
+ * Copyright 2003 Vincent Béron
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Propriétés pour "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Annuler", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Appliquer", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Aide", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "onglet", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Assistant"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Terminer", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Suivant >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Précédent", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Annuler", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Aide", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Onglet", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Personnaliser la barre d'outils"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Fermer", IDCANCEL,308,6,44,14
+ PUSHBUTTON "&Réinitialiser", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Aide", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "&Monter", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "&Descendre", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "Boutons disponibles :", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "A&jouter ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Enlever", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Boutons de la barre d'outils :", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Fermer"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Aujourd'hui:"
+ IDM_GOTODAY "Aller à aujourd'hui"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Séparateur"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "Aucun"
+}
--- /dev/null
+/*
+ * Copyright 1999 Eric Kohl
+ * Copyright 2003 Ivan Leo Murray-Smith
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Proprietà per "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Annulla", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Applica", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Aiuto", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Linguetta", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Wizard"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Fine", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Avanti >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Indietro", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Anulla", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Aiuto", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Linguetta", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Personalitta la barra degli strumenti"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Chiudi", IDCANCEL,308,6,44,14
+ PUSHBUTTON "R&eimpostare", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Aiuto", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Muovi &Su", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Muovi &giù", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "&Tasti disponibili:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Aggiungi ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Rimuovi", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Tast della barra degli strumenti:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Chiudi"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Oggi:"
+ IDM_GOTODAY "Vai a oggi"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Separatore"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "Nessuno"
+}
-/*\r
- * Copyright 2002 Won-kyu Park <wkpark@kldp.org>\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Properties for "\r
-FONT 9, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "È®ÀÎ", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Ãë¼Ò", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "Àû¿ë(&A)", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "µµ¿ò¸»", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Wizard"\r
-FONT 9, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Á¾·á", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "´ÙÀ½(&N) >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< ÀÌÀü(&B)", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Ãë¼Ò", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "µµ¿ò¸»", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Customize Toolbar"\r
-FONT 9, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "´Ý±â(&C)", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "´Ù½Ã(&e)", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "µµ¿ò¸»(&H)", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "Move &Up", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Move &Down", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "A&vailable buttons:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "&Add ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Remove", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Toolbar buttons:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "´Ý±â"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "¿À´Ã:"\r
- IDM_GOTODAY "Go to today"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Separator"\r
-}\r
+/*
+ * Copyright 2002 Won-kyu Park <wkpark@kldp.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Properties for "
+FONT 9, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "È®ÀÎ", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Ãë¼Ò", IDCANCEL,58,122,50,14
+ PUSHBUTTON "Àû¿ë(&A)", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "µµ¿ò¸»", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Wizard"
+FONT 9, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Á¾·á", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "´ÙÀ½(&N) >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< ÀÌÀü(&B)", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Ãë¼Ò", IDCANCEL,178,138,50,14
+ PUSHBUTTON "µµ¿ò¸»", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Toolbar"
+FONT 9, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "´Ý±â(&C)", IDCANCEL,308,6,44,14
+ PUSHBUTTON "´Ù½Ã(&e)", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "µµ¿ò¸»(&H)", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Move &Up", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Move &Down", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "A&vailable buttons:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Add ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Remove", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Toolbar buttons:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "´Ý±â"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "¿À´Ã:"
+ IDM_GOTODAY "Go to today"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Separator"
+}
--- /dev/null
+/*
+ * comctl (Dutch resources)
+ *
+ * Copyright 2003 Hans Leidekker
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Eigenschappen van "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Annuleren", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Toepassen", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Help", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tabblad", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Assistent"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Beëindigen", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Volgende >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< V&orige", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Annuleren", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Help", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tabblad", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Gereedschappenbalk aanpassen"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Afsluiten", IDCANCEL,308,6,44,14
+ PUSHBUTTON "&Reset", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Help", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Verplaats Om&hoog", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Verplaats Om&laag", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "&Beschikbare knoppen:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Toevoegen ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Verwijderen", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Knoppen:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Sluiten"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Vandaag:"
+ IDM_GOTODAY "Ga vandaag naar"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Scheidingsteken"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "Geen"
+}
-/*\r
- * Copyright 1999 Eric Kohl\r
- * Copyright 2002 Jacek Bator\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_POLISH, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "W³a\9cciwo\9cci "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Anuluj", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Zastosuj", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "Pomoc", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Kreator"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Zakoñcz", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Dalej >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Wstecz", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Anuluj", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "Pomoc", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Dostosowywanie paska narzêdzi"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Zamknij", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "Z&resetuj", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Pomoc", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "Przenie\9c &w górê", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Przenie\9c w &dó³", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "Do&stêpne przyciski:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "D&odaj ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Usuñ", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Przyciski paska narzêdzi:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Zamknij"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Dzi\9c:"\r
- IDM_GOTODAY "Id\9f do dzi\9c"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Odstêp"\r
-}\r
+/*
+ * Copyright 1999 Eric Kohl
+ * Copyright 2002 Jacek Bator
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "W³a\9cciwo\9cci "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Anuluj", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Zastosuj", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Pomoc", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Kreator"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Zakoñcz", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Dalej >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Wstecz", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Anuluj", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Pomoc", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Dostosowywanie paska narzêdzi"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Zamknij", IDCANCEL,308,6,44,14
+ PUSHBUTTON "Z&resetuj", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Pomoc", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Przenie\9c &w górê", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Przenie\9c w &dó³", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "Do&stêpne przyciski:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "D&odaj ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Usuñ", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Przyciski paska narzêdzi:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Zamknij"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Dzi\9c:"
+ IDM_GOTODAY "Id\9f do dzi\9c"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Odstêp"
+}
-/*\r
- * Copyright 2003 Marcelo Duarte\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Propriedades para "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Cancelar", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Aplicar", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "Ajuda", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Assistente"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Finalizar", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Avançar >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Voltar", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Cancelar", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "Ajuda", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Personalizar barra de ferramentas"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Fechar", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "R&estaurar", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Ajuda", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "A&cima", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "A&baixo", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "Botões &disponíveis:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "&Adicionar ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Remover", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Botões da barra de ferramentas:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Fechar"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Hoje:"\r
- IDM_GOTODAY "Ir para hoje"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Separador"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- HKY_NONE "Nenhum"\r
-}\r
+/*
+ * Copyright 2003 Marcelo Duarte
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Propriedades para "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Cancelar", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Aplicar", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Ajuda", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Assistente"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Finalizar", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Avançar >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Voltar", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Cancelar", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Ajuda", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Personalizar barra de ferramentas"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Fechar", IDCANCEL,308,6,44,14
+ PUSHBUTTON "R&estaurar", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Ajuda", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "A&cima", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "A&baixo", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "Botões &disponíveis:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Adicionar ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Remover", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Botões da barra de ferramentas:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Fechar"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Hoje:"
+ IDM_GOTODAY "Ir para hoje"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Separador"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "Nenhum"
+}
-/*\r
- * comctl (Russian resources)\r
- *\r
- * Copyright 2003 Igor Stepin\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Ñâîéñòâà äëÿ "\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Îòìåíà", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "Ïðè&ìåíèòü", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "&Ñïðàâêà", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Ìàñòåð"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Çàâåðøèòü", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "&Äàëåå >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< &Íàçàä", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Îòìåíà", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "&Ñïðàâêà", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Íàñòðîéêà ïàíåëè èíñòðóìåíòîâ"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Çàêðûòü", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "Ñ&áðîñèòü", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Ñïðàâêà", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "Ïåðåìåñòèòü &ââåðõ", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Ïåðåìåñòèòü &âíèç", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "&Äîñòóïíûå êíîïêè:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "&Äîáàâèòü ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Óäàëèòü", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "&Êíîïêè ïàíåëè èíñòðóìåíòîâ:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Çàêðûòü"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Ñåãîäíÿ:"\r
- IDM_GOTODAY "Òåêóùàÿ äàòà"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Ðàçäåëèòåëü"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- HKY_NONE "Íåò"\r
-}\r
+/*
+ * comctl (Russian resources)
+ *
+ * Copyright 2003 Igor Stepin
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Ñâîéñòâà äëÿ "
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Îòìåíà", IDCANCEL,58,122,50,14
+ PUSHBUTTON "Ïðè&ìåíèòü", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "&Ñïðàâêà", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Ìàñòåð"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Çàâåðøèòü", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "&Äàëåå >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< &Íàçàä", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Îòìåíà", IDCANCEL,178,138,50,14
+ PUSHBUTTON "&Ñïðàâêà", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Íàñòðîéêà ïàíåëè èíñòðóìåíòîâ"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Çàêðûòü", IDCANCEL,308,6,44,14
+ PUSHBUTTON "Ñ&áðîñèòü", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Ñïðàâêà", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "Ïåðåìåñòèòü &ââåðõ", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Ïåðåìåñòèòü &âíèç", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "&Äîñòóïíûå êíîïêè:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Äîáàâèòü ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Óäàëèòü", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "&Êíîïêè ïàíåëè èíñòðóìåíòîâ:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Çàêðûòü"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Ñåãîäíÿ:"
+ IDM_GOTODAY "Òåêóùàÿ äàòà"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Ðàçäåëèòåëü"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ HKY_NONE "Íåò"
+}
-/*\r
- * Copyright 2002-2003 Rok Mandeljc <rok.mandeljc@gimb.org>\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
- */\r
-\r
-LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT\r
-\r
-IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Lastnosti"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "V redu", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP\r
- PUSHBUTTON "Preklièi", IDCANCEL,58,122,50,14\r
- PUSHBUTTON "&Uporabi", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED\r
- PUSHBUTTON "Pomoè", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114\r
-END\r
-\r
-\r
-IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE\r
-CAPTION "Èarovnik"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "Dokonèaj", IDC_FINISH_BUTTON,121,138,50,14\r
- DEFPUSHBUTTON "Naprej >", IDC_NEXT_BUTTON,121,138,50,14\r
- PUSHBUTTON "< Na&zaj", IDC_BACK_BUTTON,71,138,50,14\r
- PUSHBUTTON "Preklièi", IDCANCEL,178,138,50,14\r
- PUSHBUTTON "Pomoè", IDHELP,235,138,50,14,WS_GROUP\r
- LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN\r
- CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5\r
-END\r
-\r
-\r
-IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Prilagoditev orodne vrstice"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
- DEFPUSHBUTTON "&Zapri", IDCANCEL,308,6,44,14\r
- PUSHBUTTON "Po&nastavi", IDC_RESET_BTN,308,23,44,14\r
- PUSHBUTTON "&Pomoè", IDC_HELP_BTN,308,40,44,14\r
- PUSHBUTTON "N&avzgor", IDC_MOVEUP_BTN,308,74,44,14\r
- PUSHBUTTON "Na&vzdol", IDC_MOVEDN_BTN,308,91,44,14\r
- LTEXT "&Gumbi na voljo:", -1,4,5,84,10\r
- LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
- PUSHBUTTON "&Dodaj ->", IDOK, 131, 42, 44, 14\r
- PUSHBUTTON "<- &Odstrani", IDC_REMOVE_BTN,131,62,44,14\r
- LTEXT "G&umbi orodne vrstice:", -1,182,5,78,10\r
- LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_CLOSE "Zapri"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDM_TODAY "Danes:"\r
- IDM_GOTODAY "&Poglejte danes"\r
-}\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
- IDS_SEPARATOR "Loèilo"\r
-}\r
+/*
+ * Copyright 2002-2003 Rok Mandeljc <rok.mandeljc@gimb.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
+
+IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Lastnosti"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "V redu", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
+ PUSHBUTTON "Preklièi", IDCANCEL,58,122,50,14
+ PUSHBUTTON "&Uporabi", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
+ PUSHBUTTON "Pomoè", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
+END
+
+
+IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+CAPTION "Èarovnik"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "Dokonèaj", IDC_FINISH_BUTTON,121,138,50,14
+ DEFPUSHBUTTON "Naprej >", IDC_NEXT_BUTTON,121,138,50,14
+ PUSHBUTTON "< Na&zaj", IDC_BACK_BUTTON,71,138,50,14
+ PUSHBUTTON "Preklièi", IDCANCEL,178,138,50,14
+ PUSHBUTTON "Pomoè", IDHELP,235,138,50,14,WS_GROUP
+ LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
+ CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
+END
+
+
+IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Prilagoditev orodne vrstice"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "&Zapri", IDCANCEL,308,6,44,14
+ PUSHBUTTON "Po&nastavi", IDC_RESET_BTN,308,23,44,14
+ PUSHBUTTON "&Pomoè", IDC_HELP_BTN,308,40,44,14
+ PUSHBUTTON "N&avzgor", IDC_MOVEUP_BTN,308,74,44,14
+ PUSHBUTTON "Na&vzdol", IDC_MOVEDN_BTN,308,91,44,14
+ LTEXT "&Gumbi na voljo:", -1,4,5,84,10
+ LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Dodaj ->", IDOK, 131, 42, 44, 14
+ PUSHBUTTON "<- &Odstrani", IDC_REMOVE_BTN,131,62,44,14
+ LTEXT "G&umbi orodne vrstice:", -1,182,5,78,10
+ LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_CLOSE "Zapri"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDM_TODAY "Danes:"
+ IDM_GOTODAY "&Poglejte danes"
+}
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_SEPARATOR "Loèilo"
+}
if (infoPtr->hwndToolTip)
DestroyWindow (infoPtr->hwndToolTip);
- Free (infoPtr);
SetWindowLongW(infoPtr->Self, 0, 0);
+ Free (infoPtr);
return 0;
}
BOOL DoRedraw; /* flag for redrawing when tab contents is changed*/
BOOL needsScrolling; /* TRUE if the size of the tabs is greater than
* the size of the control */
- BOOL fSizeSet; /* was the size of the tabs explicitly set? */
+ BOOL fHeightSet; /* was the height of the tabs explicitly set? */
BOOL bUnicode; /* Unicode control? */
HWND hwndUpDown; /* Updown control used for scrolling */
} TAB_INFO;
#define DISPLAY_AREA_PADDINGY 2
#define CONTROL_BORDER_SIZEX 2
#define CONTROL_BORDER_SIZEY 2
-#define BUTTON_SPACINGX 4
+#define BUTTON_SPACINGX 3
#define BUTTON_SPACINGY 4
#define FLAT_BTN_SPACINGX 8
#define DEFAULT_TAB_WIDTH 96
itemRect->bottom = clientRect.top +
infoPtr->tabHeight +
itemRect->top * (infoPtr->tabHeight - 2) +
- ((lStyle & TCS_BUTTONS) ? itemRect->top * BUTTON_SPACINGY : 0);
+ ((lStyle & TCS_BUTTONS) ? itemRect->top * BUTTON_SPACINGY : SELECTED_TAB_OFFSET);
itemRect->top = clientRect.top +
- SELECTED_TAB_OFFSET +
itemRect->top * (infoPtr->tabHeight - 2) +
- ((lStyle & TCS_BUTTONS) ? itemRect->top * BUTTON_SPACINGY : 0);
+ ((lStyle & TCS_BUTTONS) ? itemRect->top * BUTTON_SPACINGY : SELECTED_TAB_OFFSET);
}
/*
INT iTemp;
RECT* rcItem;
INT iIndex;
+ INT icon_width = 0;
/*
* We need to get text information so we need a DC and we need to select
curItemLeftPos = 0;
curItemRowCount = infoPtr->uNumItem ? 1 : 0;
- if (!(lStyle & TCS_FIXEDWIDTH) && !((lStyle & TCS_OWNERDRAWFIXED) && infoPtr->fSizeSet) )
+ if (!(infoPtr->fHeightSet))
{
int item_height;
int icon_height = 0;
TRACE("client right=%ld\n", clientRect.right);
+ /* Get the icon width */
+ if (infoPtr->himl)
+ {
+ ImageList_GetIconSize(infoPtr->himl, &icon_width, 0);
+
+ if (lStyle & TCS_FIXEDWIDTH)
+ icon_width += 4;
+ else
+ /* Add padding if icon is present */
+ icon_width += infoPtr->uHItemPadding;
+ }
+
for (curItem = 0; curItem < infoPtr->uNumItem; curItem++)
{
/* Set the leftmost position of the tab. */
infoPtr->items[curItem].rect.left = curItemLeftPos;
- if ( (lStyle & TCS_FIXEDWIDTH) || ((lStyle & TCS_OWNERDRAWFIXED) && infoPtr->fSizeSet))
+ if (lStyle & TCS_FIXEDWIDTH)
{
infoPtr->items[curItem].rect.right = infoPtr->items[curItem].rect.left +
- infoPtr->tabWidth +
- 2 * infoPtr->uHItemPadding;
+ max(infoPtr->tabWidth, icon_width);
}
else
{
- int icon_width = 0;
int num = 2;
/* Calculate how wide the tab is depending on the text it contains */
GetTextExtentPoint32W(hdc, infoPtr->items[curItem].pszText,
lstrlenW(infoPtr->items[curItem].pszText), &size);
- /* under Windows, there seems to be a minimum width of 2x the height
- * for button style tabs */
- if (lStyle & TCS_BUTTONS)
- size.cx = max(size.cx, 2 * (infoPtr->tabHeight - 2));
-
- /* Add the icon width */
- if (infoPtr->himl)
- {
- ImageList_GetIconSize(infoPtr->himl, &icon_width, 0);
- num++;
- }
-
infoPtr->items[curItem].rect.right = infoPtr->items[curItem].rect.left +
size.cx + icon_width +
num * infoPtr->uHItemPadding;
*/
if (lStyle & TCS_BUTTONS)
{
- curItemLeftPos = infoPtr->items[curItem].rect.right + 1;
+ curItemLeftPos = infoPtr->items[curItem].rect.right + BUTTON_SPACINGX;
if (lStyle & TCS_FLATBUTTONS)
curItemLeftPos += FLAT_BTN_SPACINGX;
}
/* used to center the icon and text in the tab */
RECT rcText;
- INT center_offset;
+ INT center_offset_h, center_offset_v;
/*
* Deflate the rectangle to acount for the padding
ImageList_GetIconSize(infoPtr->himl, &cx, &cy);
if(lStyle & TCS_VERTICAL)
- center_offset = ((drawRect->bottom - drawRect->top) - (cy + infoPtr->uHItemPadding + (rcText.right - rcText.left))) / 2;
+ {
+ center_offset_h = ((drawRect->bottom - drawRect->top) - (cy + infoPtr->uHItemPadding + (rcText.right - rcText.left))) / 2;
+ center_offset_v = ((drawRect->right - drawRect->left) - (cx + infoPtr->uVItemPadding)) / 2;
+ }
else
- center_offset = ((drawRect->right - drawRect->left) - (cx + infoPtr->uHItemPadding + (rcText.right - rcText.left))) / 2;
+ {
+ center_offset_h = ((drawRect->right - drawRect->left) - (cx + infoPtr->uHItemPadding + (rcText.right - rcText.left))) / 2;
+ center_offset_v = ((drawRect->bottom - drawRect->top) - (cy + infoPtr->uVItemPadding)) / 2;
+ }
+
+ if ((lStyle & TCS_FIXEDWIDTH &&
+ lStyle & (TCS_FORCELABELLEFT | TCS_FORCEICONLEFT)) ||
+ (center_offset_h < 0))
+ center_offset_h = 0;
TRACE("for <%s>, c_o=%d, draw=(%ld,%ld)-(%ld,%ld), textlen=%ld\n",
- debugstr_w(infoPtr->items[iItem].pszText), center_offset,
+ debugstr_w(infoPtr->items[iItem].pszText), center_offset_h,
drawRect->left, drawRect->top, drawRect->right, drawRect->bottom,
(rcText.right-rcText.left));
if((lStyle & TCS_VERTICAL) && (lStyle & TCS_BOTTOM))
{
- rcImage.top = drawRect->top + center_offset;
- rcImage.left = drawRect->right - cx; /* if tab is TCS_VERTICAL and TCS_BOTTOM, the text is drawn from the */
- /* right side of the tab, but the image still uses the left as its x position */
- /* this keeps the image always drawn off of the same side of the tab */
+ rcImage.top = drawRect->top + center_offset_h;
+ /* if tab is TCS_VERTICAL and TCS_BOTTOM, the text is drawn from the */
+ /* right side of the tab, but the image still uses the left as its x position */
+ /* this keeps the image always drawn off of the same side of the tab */
+ rcImage.left = drawRect->right - cx - center_offset_v;
drawRect->top = rcImage.top + (cx + infoPtr->uHItemPadding);
}
else if(lStyle & TCS_VERTICAL)
{
- rcImage.top = drawRect->bottom - cy - center_offset;
- rcImage.left--;
+ rcImage.top = drawRect->bottom - cy - center_offset_h;
+ rcImage.left = drawRect->left + center_offset_v;
drawRect->bottom = rcImage.top - infoPtr->uHItemPadding;
}
else /* normal style, whether TCS_BOTTOM or not */
{
- rcImage.left = drawRect->left + center_offset + 3;
+ rcImage.left = drawRect->left + center_offset_h + 3;
drawRect->left = rcImage.left + cx + infoPtr->uHItemPadding;
- rcImage.top -= (lStyle & TCS_BOTTOM) ? 2 : 1;
+ rcImage.top = drawRect->top + center_offset_v;
}
TRACE("drawing image=%d, left=%ld, top=%ld\n",
rcImage.top,
ILD_NORMAL
);
- } else /* no image, so just shift the drawRect borders around */
+ }
+ else /* no image, so just shift the drawRect borders around */
{
if(lStyle & TCS_VERTICAL)
{
- center_offset = 0;
+ center_offset_h = 0;
/*
currently the rcText rect is flawed because the rotated font does not
often match the horizontal font. So leave this as 0
((drawRect->bottom - drawRect->top) - (rcText.right - rcText.left)) / 2;
*/
if(lStyle & TCS_BOTTOM)
- drawRect->top+=center_offset;
+ drawRect->top+=center_offset_h;
else
- drawRect->bottom-=center_offset;
+ drawRect->bottom-=center_offset_h;
}
else
{
- center_offset = ((drawRect->right - drawRect->left) - (rcText.right - rcText.left)) / 2;
- drawRect->left+=center_offset;
+ center_offset_h = ((drawRect->right - drawRect->left) - (rcText.right - rcText.left)) / 2;
+ drawRect->left+=center_offset_h;
}
}
- /* Draw the text */
- if (lStyle & TCS_RIGHTJUSTIFY)
- uHorizAlign = DT_CENTER;
+ if(lStyle & TCS_VERTICAL)
+ {
+ center_offset_v = ((drawRect->right - drawRect->left) - ((rcText.bottom - rcText.top) + infoPtr->uVItemPadding)) / 2;
+ drawRect->left += center_offset_v;
+ }
else
+ {
+ center_offset_v = ((drawRect->bottom - drawRect->top) - ((rcText.bottom - rcText.top) + infoPtr->uVItemPadding)) / 2;
+ drawRect->top += center_offset_v;
+ }
+
+
+ /* Draw the text */
+ if ((lStyle & TCS_FIXEDWIDTH && lStyle & TCS_FORCELABELLEFT) ||
+ !center_offset_h)
uHorizAlign = DT_LEFT;
+ else
+ uHorizAlign = DT_CENTER;
if(lStyle & TCS_VERTICAL) /* if we are vertical rotate the text and each character */
{
if (iItem == infoPtr->iSelected)
{
/* Background color */
- if (!((lStyle & TCS_OWNERDRAWFIXED) && infoPtr->fSizeSet))
+ if (!(lStyle & TCS_OWNERDRAWFIXED))
{
DeleteObject(hbr);
hbr = GetSysColorBrush(COLOR_SCROLLBAR);
RECT clientRect, r;
DWORD lStyle = GetWindowLongA(hwnd, GWL_STYLE);
INT lastRow = infoPtr->uNumRows - 1;
+ RECT rect;
if (lastRow < 0) return;
GetClientRect(hwnd, &clientRect);
+ TAB_InternalGetItemRect(hwnd, infoPtr, infoPtr->uNumItem-1 , &rect, NULL);
if ((lStyle & TCS_BOTTOM) && !(lStyle & TCS_VERTICAL))
{
clientRect.top = clientRect.bottom -
infoPtr->tabHeight -
lastRow * (infoPtr->tabHeight - 2) -
((lStyle & TCS_BUTTONS) ? lastRow * BUTTON_SPACINGY : 0) - 3;
+ clientRect.right = clientRect.left + rect.right + 2 * SELECTED_TAB_OFFSET;
}
else if((lStyle & TCS_BOTTOM) && (lStyle & TCS_VERTICAL))
{
clientRect.left = clientRect.right - infoPtr->tabHeight -
lastRow * (infoPtr->tabHeight - 2) -
((lStyle & TCS_BUTTONS) ? lastRow * BUTTON_SPACINGY : 0) - 2;
+ clientRect.bottom = clientRect.top + rect.bottom + 2 * SELECTED_TAB_OFFSET;
}
else if(lStyle & TCS_VERTICAL)
{
clientRect.right = clientRect.left + infoPtr->tabHeight +
lastRow * (infoPtr->tabHeight - 2) -
((lStyle & TCS_BUTTONS) ? lastRow * BUTTON_SPACINGY : 0) + 2;
-
+ clientRect.bottom = clientRect.top + rect.bottom + 2 * SELECTED_TAB_OFFSET;
}
else
{
clientRect.bottom = clientRect.top + infoPtr->tabHeight +
lastRow * (infoPtr->tabHeight - 2) +
((lStyle & TCS_BUTTONS) ? lastRow * BUTTON_SPACINGY : 0) + 2;
+ clientRect.right = clientRect.left + rect.right + 2 * SELECTED_TAB_OFFSET;
}
/* Punch out the updown control */
HDC hdc;
PAINTSTRUCT ps;
- hdc = wParam== 0 ? BeginPaint (hwnd, &ps) : (HDC)wParam;
-
- TRACE("erase %d, rect=(%ld,%ld)-(%ld,%ld)\n",
- ps.fErase,
- ps.rcPaint.left,ps.rcPaint.top,ps.rcPaint.right,ps.rcPaint.bottom);
+ if (wParam == 0)
+ {
+ hdc = BeginPaint (hwnd, &ps);
+ TRACE("erase %d, rect=(%ld,%ld)-(%ld,%ld)\n",
+ ps.fErase,
+ ps.rcPaint.left,ps.rcPaint.top,ps.rcPaint.right,ps.rcPaint.bottom);
- if (ps.fErase)
+ if (ps.fErase)
TAB_EraseBackground (hwnd, hdc);
+ } else {
+ hdc = (HDC)wParam;
+ }
+
TAB_Refresh (hwnd, hdc);
if(!wParam)
TAB_INFO *infoPtr = TAB_GetInfoPtr(hwnd);
LONG lStyle = GetWindowLongA(hwnd, GWL_STYLE);
LONG lResult = 0;
+ BOOL bNeedPaint = FALSE;
- TRACE("\n");
- if ((lStyle & TCS_FIXEDWIDTH) || (lStyle & TCS_OWNERDRAWFIXED))
+ lResult = MAKELONG(infoPtr->tabWidth, infoPtr->tabHeight);
+
+ /* UNDOCUMENTED: If requested Width or Height is 0 this means that program wants to use auto size. */
+ if (lStyle & TCS_FIXEDWIDTH && (infoPtr->tabWidth != (INT)LOWORD(lParam)))
{
- lResult = MAKELONG(infoPtr->tabWidth, infoPtr->tabHeight);
- /* UNDOCUMENTED: If requested Width or Height is 0 this means that program wants to use default. */
- if (LOWORD(lParam)) infoPtr->tabWidth = max((INT)LOWORD(lParam), infoPtr->tabMinWidth);
- if (HIWORD(lParam)) infoPtr->tabHeight = (INT)HIWORD(lParam);
- TRACE("was h=%d,w=%d, now h=%d,w=%d\n",
- HIWORD(lResult), LOWORD(lResult),
- infoPtr->tabHeight, infoPtr->tabWidth);
+ infoPtr->tabWidth = max((INT)LOWORD(lParam), infoPtr->tabMinWidth);
+ bNeedPaint = TRUE;
+ }
+
+ if (infoPtr->tabHeight != (INT)HIWORD(lParam))
+ {
+ if ((infoPtr->fHeightSet = ((INT)HIWORD(lParam) != 0)))
+ infoPtr->tabHeight = (INT)HIWORD(lParam);
+
+ bNeedPaint = TRUE;
}
- infoPtr->fSizeSet = TRUE;
+ TRACE("was h=%d,w=%d, now h=%d,w=%d\n",
+ HIWORD(lResult), LOWORD(lResult),
+ infoPtr->tabHeight, infoPtr->tabWidth);
+ if (bNeedPaint)
+ {
+ TAB_SetItemBounds(hwnd);
+ RedrawWindow(hwnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_UPDATENOW);
+ }
+
return lResult;
}
static LRESULT
TAB_DeleteItem (HWND hwnd, WPARAM wParam, LPARAM lParam)
{
- TAB_INFO *infoPtr = TAB_GetInfoPtr(hwnd);
- INT iItem = (INT) wParam;
- BOOL bResult = FALSE;
+ TAB_INFO *infoPtr = TAB_GetInfoPtr(hwnd);
+ INT iItem = (INT) wParam;
+ BOOL bResult = FALSE;
- if ((iItem >= 0) && (iItem < infoPtr->uNumItem))
- {
- TAB_ITEM *oldItems = infoPtr->items;
+ if ((iItem >= 0) && (iItem < infoPtr->uNumItem))
+ {
+ TAB_ITEM *oldItems = infoPtr->items;
+
+ TAB_InvalidateTabArea(hwnd, infoPtr);
- infoPtr->uNumItem--;
- infoPtr->items = Alloc(sizeof (TAB_ITEM) * infoPtr->uNumItem);
+ infoPtr->uNumItem--;
+ infoPtr->items = Alloc(sizeof (TAB_ITEM) * infoPtr->uNumItem);
- if (iItem > 0)
- memcpy(&infoPtr->items[0], &oldItems[0], iItem * sizeof(TAB_ITEM));
+ if (iItem > 0)
+ memcpy(&infoPtr->items[0], &oldItems[0], iItem * sizeof(TAB_ITEM));
- if (iItem < infoPtr->uNumItem)
- memcpy(&infoPtr->items[iItem], &oldItems[iItem + 1],
- (infoPtr->uNumItem - iItem) * sizeof(TAB_ITEM));
+ if (iItem < infoPtr->uNumItem)
+ memcpy(&infoPtr->items[iItem], &oldItems[iItem + 1],
+ (infoPtr->uNumItem - iItem) * sizeof(TAB_ITEM));
- Free(oldItems);
+ Free(oldItems);
- /* Readjust the selected index */
- if ((iItem == infoPtr->iSelected) && (iItem > 0))
- infoPtr->iSelected--;
+ /* Readjust the selected index */
+ if ((iItem == infoPtr->iSelected) && (iItem > 0))
+ infoPtr->iSelected--;
- if (iItem < infoPtr->iSelected)
- infoPtr->iSelected--;
+ if (iItem < infoPtr->iSelected)
+ infoPtr->iSelected--;
- if (infoPtr->uNumItem == 0)
- infoPtr->iSelected = -1;
+ if (infoPtr->uNumItem == 0)
+ infoPtr->iSelected = -1;
- /* Reposition and repaint tabs */
- TAB_SetItemBounds(hwnd);
- TAB_InvalidateTabArea(hwnd,infoPtr);
+ /* Reposition and repaint tabs */
+ TAB_SetItemBounds(hwnd);
- bResult = TRUE;
- }
+ bResult = TRUE;
+ }
- return bResult;
+ return bResult;
}
static LRESULT
TAB_DeleteAllItems (HWND hwnd, WPARAM wParam, LPARAM lParam)
{
- TAB_INFO *infoPtr = TAB_GetInfoPtr(hwnd);
-
- Free (infoPtr->items);
- infoPtr->uNumItem = 0;
- infoPtr->iSelected = -1;
- if (infoPtr->iHotTracked >= 0)
- KillTimer(hwnd, TAB_HOTTRACK_TIMER);
- infoPtr->iHotTracked = -1;
+ TAB_INFO *infoPtr = TAB_GetInfoPtr(hwnd);
+
+ TAB_InvalidateTabArea(hwnd,infoPtr);
- TAB_SetItemBounds(hwnd);
- TAB_InvalidateTabArea(hwnd,infoPtr);
- return TRUE;
+ Free (infoPtr->items);
+ infoPtr->uNumItem = 0;
+ infoPtr->iSelected = -1;
+ if (infoPtr->iHotTracked >= 0)
+ KillTimer(hwnd, TAB_HOTTRACK_TIMER);
+ infoPtr->iHotTracked = -1;
+
+ TAB_SetItemBounds(hwnd);
+ return TRUE;
}
infoPtr->needsScrolling = FALSE;
infoPtr->hwndUpDown = 0;
infoPtr->leftmostVisible = 0;
- infoPtr->fSizeSet = FALSE;
+ infoPtr->fHeightSet = FALSE;
infoPtr->bUnicode = IsWindowUnicode (hwnd);
TRACE("Created tab control, hwnd [%p]\n", hwnd);
/* Initialize the width of a tab. */
infoPtr->tabWidth = DEFAULT_TAB_WIDTH;
- /* The minimum width is the default width at creation */
- infoPtr->tabMinWidth = DEFAULT_TAB_WIDTH;
+ infoPtr->tabMinWidth = 0;
TRACE("tabH=%d, tabW=%d\n", infoPtr->tabHeight, infoPtr->tabWidth);
WCHAR text[64];
} CUSTOMBUTTON, *PCUSTOMBUTTON;
+typedef enum
+{
+ IMAGE_LIST_DEFAULT,
+ IMAGE_LIST_HOT,
+ IMAGE_LIST_DISABLED
+} IMAGE_LIST_TYPE;
#define SEPARATOR_WIDTH 8
#define TOP_BORDER 2
* function. It returns TRUE if the image was drawn, FALSE otherwise.
*/
static BOOL
-TOOLBAR_DrawImageList (TOOLBAR_INFO *infoPtr, TBUTTON_INFO *btnPtr, HIMAGELIST himl,
+TOOLBAR_DrawImageList (TOOLBAR_INFO *infoPtr, TBUTTON_INFO *btnPtr, IMAGE_LIST_TYPE imagelist,
HDC hdc, UINT left, UINT top, UINT draw_flags)
{
INT index;
-
- if (!himl) return FALSE;
+ HIMAGELIST himl;
if (!TOOLBAR_IsValidBitmapIndex(infoPtr,btnPtr->iBitmap)) {
if (btnPtr->iBitmap == I_IMAGENONE) return FALSE;
index);
return FALSE;
}
+
+ switch(imagelist)
+ {
+ case IMAGE_LIST_DEFAULT:
+ himl = GETDEFIMAGELIST(infoPtr, GETHIMLID(infoPtr, btnPtr->iBitmap));
+ break;
+ case IMAGE_LIST_HOT:
+ himl = GETHOTIMAGELIST(infoPtr, GETHIMLID(infoPtr, btnPtr->iBitmap));
+ break;
+ case IMAGE_LIST_DISABLED:
+ himl = GETDISIMAGELIST(infoPtr, GETHIMLID(infoPtr, btnPtr->iBitmap));
+ break;
+ default:
+ himl = NULL;
+ FIXME("Shouldn't reach here\n");
+ }
+
+ if (!himl)
+ {
+ TRACE("no image list, returning FALSE\n");
+ return FALSE;
+ }
+
TRACE("drawing index=%d, himl=%p, left=%d, top=%d, flags=%08x\n",
index, himl, left, top, draw_flags);
*/
static void
TOOLBAR_DrawString (TOOLBAR_INFO *infoPtr, TBUTTON_INFO *btnPtr,
- HDC hdc, INT nState, DWORD dwStyle,
+ HDC hdc, DWORD dwStyle,
RECT *rcText, LPWSTR lpText, NMTBCUSTOMDRAW *tbcd)
{
HFONT hOldFont = 0;
COLORREF clrOld = 0;
+ UINT state = tbcd->nmcd.uItemState;
/* draw text */
if (lpText) {
- TRACE("string rect=(%ld,%ld)-(%ld,%ld)\n",
+ TRACE("string=%s rect=(%ld,%ld)-(%ld,%ld)\n", debugstr_w(lpText),
rcText->left, rcText->top, rcText->right, rcText->bottom);
hOldFont = SelectObject (hdc, infoPtr->hFont);
- if (!(nState & TBSTATE_ENABLED)) {
+ if ((state & CDIS_HOT) && (infoPtr->dwItemCDFlag & TBCDRF_HILITEHOTTRACK )) {
+ clrOld = SetTextColor (hdc, tbcd->clrTextHighlight);
+ }
+ else if (state & CDIS_DISABLED) {
clrOld = SetTextColor (hdc, tbcd->clrBtnHighlight);
OffsetRect (rcText, 1, 1);
DrawTextW (hdc, lpText, -1, rcText, infoPtr->dwDTFlags);
SetTextColor (hdc, comctl32_color.clr3dShadow);
OffsetRect (rcText, -1, -1);
}
- else if (nState & TBSTATE_INDETERMINATE) {
+ else if (state & CDIS_INDETERMINATE) {
clrOld = SetTextColor (hdc, comctl32_color.clr3dShadow);
}
- else if (btnPtr->bHot && (infoPtr->dwItemCDFlag & TBCDRF_HILITEHOTTRACK )) {
- clrOld = SetTextColor (hdc, tbcd->clrTextHighlight);
- }
else {
clrOld = SetTextColor (hdc, tbcd->clrText);
}
NMTBCUSTOMDRAW tbcd;
DWORD ntfret;
INT offset;
- HIMAGELIST himlDef;
if (btnPtr->fsState & TBSTATE_HIDDEN)
return;
tbcd.rcText.top = 0;
tbcd.rcText.right = rcText.right - rc.left;
tbcd.rcText.bottom = rcText.bottom - rc.top;
+ /* we use this state later on to decide how to draw the buttons */
+ /* NOTE: applications can and do alter this to customize their */
+ /* toolbars */
+ tbcd.nmcd.uItemState = TOOLBAR_TranslateState(btnPtr);
/* FIXME: what should these be set to ????? */
tbcd.hbrMonoDither = 0;
tbcd.nmcd.hdc = hdc;
tbcd.nmcd.rc = rc;
tbcd.nmcd.dwItemSpec = btnPtr->idCommand;
- tbcd.nmcd.uItemState = TOOLBAR_TranslateState(btnPtr);
tbcd.nmcd.lItemlParam = btnPtr->dwData;
ntfret = TOOLBAR_SendNotify ((NMHDR *)&tbcd, infoPtr, NM_CUSTOMDRAW);
infoPtr->dwItemCustDraw = ntfret & 0xffff;
goto FINALNOTIFY;
}
- /* Determine index of image list */
- himlDef = GETDEFIMAGELIST(infoPtr, GETHIMLID(infoPtr, btnPtr->iBitmap));
+ if ((dwStyle & TBSTYLE_FLAT) && (tbcd.nmcd.uItemState & CDIS_HOT))
+ {
+ if ( infoPtr->dwItemCDFlag & TBCDRF_HILITEHOTTRACK )
+ {
+ COLORREF oldclr;
+
+ oldclr = SetBkColor(hdc, tbcd.clrHighlightHotTrack);
+ ExtTextOutA(hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, 0);
+ if (hasDropDownArrow)
+ ExtTextOutA(hdc, 0, 0, ETO_OPAQUE, &rcArrow, NULL, 0, 0);
+ SetBkColor(hdc, oldclr);
+ }
+ else
+ {
+ if (!(tbcd.nmcd.uItemState & CDIS_DISABLED) && !(infoPtr->dwItemCDFlag & TBCDRF_NOEDGES))
+ {
+ DrawEdge (hdc, &rc, BDR_RAISEDINNER, BF_RECT);
+ if (hasDropDownArrow)
+ DrawEdge (hdc, &rcArrow, BDR_RAISEDINNER, BF_RECT);
+ }
+ }
+ }
/* disabled */
- if (!(btnPtr->fsState & TBSTATE_ENABLED)) {
- HIMAGELIST himlDis = GETDISIMAGELIST(infoPtr, GETHIMLID(infoPtr, btnPtr->iBitmap));
+ if (tbcd.nmcd.uItemState & CDIS_DISABLED) {
if (!(dwStyle & TBSTYLE_FLAT) && !(infoPtr->dwItemCDFlag & TBCDRF_NOEDGES))
{
DrawEdge (hdc, &rc, EDGE_RAISED,
TOOLBAR_DrawArrow(hdc, rcArrow.left, rcArrow.top + (rcArrow.bottom - rcArrow.top - ARROW_HEIGHT) / 2, COLOR_3DSHADOW);
}
- if (!TOOLBAR_DrawImageList (infoPtr, btnPtr, himlDis,
+ if (!TOOLBAR_DrawImageList (infoPtr, btnPtr, IMAGE_LIST_DISABLED,
hdc, rcBitmap.left, rcBitmap.top,
ILD_NORMAL))
TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rcBitmap.left, rcBitmap.top);
- TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState, dwStyle, &rcText, lpText, &tbcd);
+ TOOLBAR_DrawString (infoPtr, btnPtr, hdc, dwStyle, &rcText, lpText, &tbcd);
goto FINALNOTIFY;
}
/* pressed TBSTYLE_BUTTON */
- if (btnPtr->fsState & TBSTATE_PRESSED) {
+ if (tbcd.nmcd.uItemState & CDIS_SELECTED) {
offset = (infoPtr->dwItemCDFlag & TBCDRF_NOOFFSET) ? 0 : 1;
if (!(infoPtr->dwItemCDFlag & TBCDRF_NOEDGES))
{
if (hasDropDownArrow)
TOOLBAR_DrawArrow(hdc, rcArrow.left, rcArrow.top + (rcArrow.bottom - rcArrow.top - ARROW_HEIGHT) / 2, COLOR_WINDOWFRAME);
- TOOLBAR_DrawImageList (infoPtr, btnPtr, himlDef,
+ TOOLBAR_DrawImageList (infoPtr, btnPtr, IMAGE_LIST_DEFAULT,
hdc, rcBitmap.left+offset, rcBitmap.top+offset,
ILD_NORMAL);
- TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState, dwStyle, &rcText, lpText, &tbcd);
+ TOOLBAR_DrawString (infoPtr, btnPtr, hdc, dwStyle, &rcText, lpText, &tbcd);
goto FINALNOTIFY;
}
/* checked TBSTYLE_CHECK */
- if ((btnPtr->fsStyle & TBSTYLE_CHECK) &&
- (btnPtr->fsState & TBSTATE_CHECKED)) {
+ if ((tbcd.nmcd.uItemState & CDIS_CHECKED) &&
+ (btnPtr->fsStyle & TBSTYLE_CHECK)) {
if (!(infoPtr->dwItemCDFlag & TBCDRF_NOEDGES))
{
if (dwStyle & TBSTYLE_FLAT)
TOOLBAR_DrawPattern (hdc, &rc);
- TOOLBAR_DrawImageList (infoPtr, btnPtr, himlDef,
+ TOOLBAR_DrawImageList (infoPtr, btnPtr, IMAGE_LIST_DEFAULT,
hdc, rcBitmap.left+1, rcBitmap.top+1,
ILD_NORMAL);
- TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState, dwStyle, &rcText, lpText, &tbcd);
+ TOOLBAR_DrawString (infoPtr, btnPtr, hdc, dwStyle, &rcText, lpText, &tbcd);
goto FINALNOTIFY;
}
/* indeterminate */
- if (btnPtr->fsState & TBSTATE_INDETERMINATE) {
+ if (tbcd.nmcd.uItemState & CDIS_INDETERMINATE) {
if (!(infoPtr->dwItemCDFlag & TBCDRF_NOEDGES))
DrawEdge (hdc, &rc, EDGE_RAISED,
BF_SOFT | BF_RECT | BF_MIDDLE | BF_ADJUST);
TOOLBAR_DrawPattern (hdc, &rc);
TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rcBitmap.left, rcBitmap.top);
- TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState, dwStyle, &rcText, lpText, &tbcd);
+ TOOLBAR_DrawString (infoPtr, btnPtr, hdc, dwStyle, &rcText, lpText, &tbcd);
goto FINALNOTIFY;
}
/* normal state */
if (dwStyle & TBSTYLE_FLAT)
{
- if (btnPtr->bHot)
- {
- if ( infoPtr->dwItemCDFlag & TBCDRF_HILITEHOTTRACK )
- {
- COLORREF oldclr;
-
- oldclr = SetBkColor(hdc, tbcd.clrHighlightHotTrack);
- ExtTextOutA(hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, 0);
- if (hasDropDownArrow)
- ExtTextOutA(hdc, 0, 0, ETO_OPAQUE, &rcArrow, NULL, 0, 0);
- SetBkColor(hdc, oldclr);
- }
- else
- {
- if (!(infoPtr->dwItemCDFlag & TBCDRF_NOEDGES))
- {
- DrawEdge (hdc, &rc, BDR_RAISEDINNER, BF_RECT);
- if (hasDropDownArrow)
- DrawEdge (hdc, &rcArrow, BDR_RAISEDINNER, BF_RECT);
- }
- }
- }
-#if 1
- else /* The following code needs to be removed after
- * "hot item" support has been implemented for the
- * case where it is being de-selected.
- */
- {
- FrameRect(hdc, &rc, GetSysColorBrush(COLOR_BTNFACE));
- if (hasDropDownArrow)
- FrameRect(hdc, &rcArrow, GetSysColorBrush(COLOR_BTNFACE));
- }
-#endif
-
if (hasDropDownArrow)
TOOLBAR_DrawArrow(hdc, rcArrow.left+1, rcArrow.top + (rcArrow.bottom - rcArrow.top - ARROW_HEIGHT) / 2, COLOR_WINDOWFRAME);
- if (btnPtr->bHot) {
- HIMAGELIST himlHot = GETHOTIMAGELIST(infoPtr,
- GETHIMLID(infoPtr, btnPtr->iBitmap));
- /* if hot, attempt to draw with himlHot, if fails, use himlDef */
+ if (tbcd.nmcd.uItemState & CDIS_HOT) {
+ /* if hot, attempt to draw with hot image list, if fails,
+ use default image list */
if (!TOOLBAR_DrawImageList (infoPtr, btnPtr,
- himlHot,
+ IMAGE_LIST_HOT,
hdc, rcBitmap.left,
rcBitmap.top, ILD_NORMAL))
- TOOLBAR_DrawImageList (infoPtr, btnPtr, himlDef,
+ TOOLBAR_DrawImageList (infoPtr, btnPtr, IMAGE_LIST_DEFAULT,
hdc, rcBitmap.left, rcBitmap.top,
ILD_NORMAL);
}
else
- TOOLBAR_DrawImageList (infoPtr, btnPtr, himlDef,
+ TOOLBAR_DrawImageList (infoPtr, btnPtr, IMAGE_LIST_DEFAULT,
hdc, rcBitmap.left, rcBitmap.top,
ILD_NORMAL);
}
TOOLBAR_DrawArrow(hdc, rcArrow.left, rcArrow.top + (rcArrow.bottom - rcArrow.top - ARROW_HEIGHT) / 2, COLOR_WINDOWFRAME);
}
- TOOLBAR_DrawImageList (infoPtr, btnPtr, himlDef,
+ TOOLBAR_DrawImageList (infoPtr, btnPtr, IMAGE_LIST_DEFAULT,
hdc, rcBitmap.left, rcBitmap.top,
- ILD_NORMAL);}
+ ILD_NORMAL);
+ }
- TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState, dwStyle, &rcText, lpText, &tbcd);
+ TOOLBAR_DrawString (infoPtr, btnPtr, hdc, dwStyle, &rcText, lpText, &tbcd);
FINALNOTIFY:
if (infoPtr->dwItemCustDraw & CDRF_NOTIFYPOSTPAINT)
cy = infoPtr->nHeight;
cx = infoPtr->nWidth;
- if (dwStyle & CCS_NOMOVEY) {
+ if ((dwStyle & CCS_BOTTOM) == CCS_NOMOVEY) {
GetWindowRect(hwnd, &window_rect);
ScreenToClient(parent, (LPPOINT)&window_rect.left);
y = window_rect.top;
}
+ if ((dwStyle & CCS_BOTTOM) == CCS_BOTTOM) {
+ GetWindowRect(hwnd, &window_rect);
+ y = parent_rect.bottom - ( window_rect.bottom - window_rect.top);
+ }
}
if (dwStyle & CCS_NOPARENTALIGN)
}
infoPtr->bAutoSize = TRUE;
- SetWindowPos (hwnd, HWND_TOP, parent_rect.left - x, parent_rect.top - y,
- cx, cy, uPosFlags);
- /* The following line makes sure that the infoPtr->bAutoSize is turned off after
- * the setwindowpos calls */
+ SetWindowPos (hwnd, HWND_TOP, x, y, cx, cy, uPosFlags);
+ /* The following line makes sure that the infoPtr->bAutoSize is turned off
+ * after the setwindowpos calls */
infoPtr->bAutoSize = FALSE;
return 0;
TBUTTON_INFO *btnPtr;
INT nIndex;
+ TRACE("button %d, iBitmap now %d\n", wParam, LOWORD(lParam));
+
nIndex = TOOLBAR_GetButtonIndex (infoPtr, (INT)wParam, FALSE);
if (nIndex == -1)
return FALSE;
if (infoPtr->iVersion >= 5)
id = wParam;
+ TRACE("hwnd = %p, himl = %p, id = %d\n", hwnd, himl, id);
+
himlTemp = TOOLBAR_InsertImageList(&infoPtr->himlHot,
&infoPtr->cimlHot, himl, id);
if (infoPtr->nOldHit != nHit)
{
- /* Remove the effect of an old hot button if the button was enabled and was
+ /* Remove the effect of an old hot button if the button was
drawn with the hot button effect */
- if(infoPtr->nOldHit >= 0 && infoPtr->nOldHit == infoPtr->nHotItem &&
- (infoPtr->buttons[infoPtr->nOldHit].fsState & TBSTATE_ENABLED))
+ if(infoPtr->nOldHit >= 0 && infoPtr->nOldHit == infoPtr->nHotItem)
{
oldBtnPtr = &infoPtr->buttons[infoPtr->nOldHit];
oldBtnPtr->bHot = FALSE;
infoPtr->nHotItem = nHit;
- /* only enabled buttons show hot effect */
- if(infoPtr->buttons[nHit].fsState & TBSTATE_ENABLED)
- {
- btnPtr->bHot = TRUE;
- }
+ btnPtr->bHot = TRUE;
}
nmhotitem.dwFlags = HICF_MOUSE;
if (oldBtnPtr)
InvalidateRect (hwnd, &oldBtnPtr->rect,
TOOLBAR_HasText(infoPtr, oldBtnPtr));
- if (btnPtr && (btnPtr->fsState & TBSTATE_ENABLED))
+ if (btnPtr)
InvalidateRect(hwnd, &btnPtr->rect,
TOOLBAR_HasText(infoPtr, btnPtr));
* According to testing V4.71 of COMCTL32 returns the
* *previous* status of the redraw flag (either 0 or 1)
* instead of the MSDN documented value of 0 if handled.
- * (For laughs see the "consistancy" with same function
+ * (For laughs see the "consistency" with same function
* in rebar.)
*
*****************************************************/
cy = infoPtr->nHeight;
cx = infoPtr->nWidth;
- if (dwStyle & CCS_NOMOVEY) {
+ if ((dwStyle & CCS_BOTTOM) == CCS_NOMOVEY) {
GetWindowRect(hwnd, &window_rect);
ScreenToClient(parent, (LPPOINT)&window_rect.left);
- y = window_rect.top;
+ y = window_rect.top;
}
+ if ((dwStyle & CCS_BOTTOM) == CCS_BOTTOM) {
+ GetWindowRect(hwnd, &window_rect);
+ y = parent_rect.bottom -
+ ( window_rect.bottom - window_rect.top);
+ }
}
if (dwStyle & CCS_NOPARENTALIGN) {
cx += GetSystemMetrics(SM_CYEDGE);
}
- SetWindowPos (hwnd, 0, parent_rect.left - x, parent_rect.top - y,
- cx, cy, uPosFlags | SWP_NOZORDER);
+ SetWindowPos (hwnd, 0, x, y, cx, cy, uPosFlags | SWP_NOZORDER);
}
return 0;
}
#define TIC_SELECTIONMARKMIN 0x100
#define TIC_SELECTIONMARK (TIC_SELECTIONMARKMAX | TIC_SELECTIONMARKMIN)
-static BOOL TRACKBAR_SendNotify (TRACKBAR_INFO *infoPtr, UINT code);
-
static inline int
-notify_customdraw(NMCUSTOMDRAW *pnmcd, int stage)
+notify_customdraw(TRACKBAR_INFO *infoPtr, NMCUSTOMDRAW *pnmcd, int stage)
{
pnmcd->dwDrawStage = stage;
- return SendMessageW (GetParent(pnmcd->hdr.hwndFrom), WM_NOTIFY,
+ return SendMessageW (infoPtr->hwndNotify, WM_NOTIFY,
pnmcd->hdr.idFrom, (LPARAM)pnmcd);
}
+static LRESULT notify_hdr(TRACKBAR_INFO *infoPtr, INT code, LPNMHDR pnmh)
+{
+ LRESULT result;
+
+ TRACE("(code=%d)\n", code);
+
+ pnmh->hwndFrom = infoPtr->hwndSelf;
+ pnmh->idFrom = GetWindowLongW(infoPtr->hwndSelf, GWL_ID);
+ pnmh->code = code;
+ result = SendMessageW(infoPtr->hwndNotify, WM_NOTIFY,
+ (WPARAM)pnmh->idFrom, (LPARAM)pnmh);
+
+ TRACE(" <= %ld\n", result);
+
+ return result;
+}
+
+static inline int notify(TRACKBAR_INFO *infoPtr, INT code)
+{
+ NMHDR nmh;
+ return notify_hdr(infoPtr, code, &nmh);
+}
+
+static BOOL
+notify_with_scroll (TRACKBAR_INFO *infoPtr, UINT code)
+{
+ BOOL bVert = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_VERT;
+
+ TRACE("%x\n", code);
+
+ return (BOOL) SendMessageW (infoPtr->hwndNotify,
+ bVert ? WM_VSCROLL : WM_HSCROLL,
+ (WPARAM)code, (LPARAM)infoPtr->hwndSelf);
+}
+
static void TRACKBAR_RecalculateTics (TRACKBAR_INFO *infoPtr)
{
int i, tic, nrTics;
(nrTics+1)*sizeof (DWORD));
if (!infoPtr->tics) {
infoPtr->uNumTics = 0;
- TRACKBAR_SendNotify(infoPtr, NM_OUTOFMEMORY);
+ notify(infoPtr, NM_OUTOFMEMORY);
return;
}
infoPtr->uNumTics = nrTics;
}
static void inline
-TRACKBAR_PageUp (TRACKBAR_INFO *infoPtr)
+TRACKBAR_PageDown (TRACKBAR_INFO *infoPtr)
{
if (infoPtr->lPos == infoPtr->lRangeMax) return;
infoPtr->lPos += infoPtr->lPageSize;
if (infoPtr->lPos > infoPtr->lRangeMax)
infoPtr->lPos = infoPtr->lRangeMax;
- TRACKBAR_SendNotify (infoPtr, TB_PAGEUP);
+ notify_with_scroll (infoPtr, TB_PAGEDOWN);
}
static void inline
-TRACKBAR_PageDown (TRACKBAR_INFO *infoPtr)
+TRACKBAR_PageUp (TRACKBAR_INFO *infoPtr)
{
if (infoPtr->lPos == infoPtr->lRangeMin) return;
infoPtr->lPos -= infoPtr->lPageSize;
if (infoPtr->lPos < infoPtr->lRangeMin)
infoPtr->lPos = infoPtr->lRangeMin;
- TRACKBAR_SendNotify (infoPtr, TB_PAGEDOWN);
+ notify_with_scroll (infoPtr, TB_PAGEUP);
+}
+
+static void inline TRACKBAR_LineUp(TRACKBAR_INFO *infoPtr)
+{
+ if (infoPtr->lPos == infoPtr->lRangeMin) return;
+ infoPtr->lPos -= infoPtr->lLineSize;
+ if (infoPtr->lPos < infoPtr->lRangeMin)
+ infoPtr->lPos = infoPtr->lRangeMin;
+ notify_with_scroll (infoPtr, TB_LINEUP);
+}
+
+static void inline TRACKBAR_LineDown(TRACKBAR_INFO *infoPtr)
+{
+ if (infoPtr->lPos == infoPtr->lRangeMax) return;
+ infoPtr->lPos += infoPtr->lLineSize;
+ if (infoPtr->lPos > infoPtr->lRangeMax)
+ infoPtr->lPos = infoPtr->lRangeMax;
+ notify_with_scroll (infoPtr, TB_LINEDOWN);
}
static void
TRACE("x=%ld, y=%ld, dir=%ld\n", clickPoint.x, clickPoint.y, dir);
if (dir > 0 && (infoPtr->flags & TB_AUTO_PAGE_RIGHT))
- TRACKBAR_PageUp(infoPtr);
- else if (dir < 0 && (infoPtr->flags & TB_AUTO_PAGE_LEFT))
TRACKBAR_PageDown(infoPtr);
+ else if (dir < 0 && (infoPtr->flags & TB_AUTO_PAGE_LEFT))
+ TRACKBAR_PageUp(infoPtr);
else return FALSE;
infoPtr->flags |= TB_THUMBPOSCHANGED;
/* start the paint cycle */
nmcd.rc = rcClient;
- gcdrf = notify_customdraw(&nmcd, CDDS_PREPAINT);
+ gcdrf = notify_customdraw(infoPtr, &nmcd, CDDS_PREPAINT);
if (gcdrf & CDRF_SKIPDEFAULT) goto cleanup;
/* Erase backbround */
if (gcdrf == CDRF_DODEFAULT ||
- notify_customdraw(&nmcd, CDDS_PREERASE) != CDRF_SKIPDEFAULT) {
+ notify_customdraw(infoPtr, &nmcd, CDDS_PREERASE) != CDRF_SKIPDEFAULT) {
FillRect (hdc, &rcClient, GetSysColorBrush(COLOR_BTNFACE));
if (gcdrf != CDRF_DODEFAULT)
- notify_customdraw(&nmcd, CDDS_POSTERASE);
+ notify_customdraw(infoPtr, &nmcd, CDDS_POSTERASE);
}
/* draw channel */
nmcd.dwItemSpec = TBCD_CHANNEL;
nmcd.uItemState = CDIS_DEFAULT;
nmcd.rc = infoPtr->rcChannel;
- icdrf = notify_customdraw(&nmcd, CDDS_ITEMPREPAINT);
+ icdrf = notify_customdraw(infoPtr, &nmcd, CDDS_ITEMPREPAINT);
} else icdrf = CDRF_DODEFAULT;
if ( !(icdrf & CDRF_SKIPDEFAULT) ) {
TRACKBAR_DrawChannel (infoPtr, hdc, dwStyle);
if (icdrf & CDRF_NOTIFYPOSTPAINT)
- notify_customdraw(&nmcd, CDDS_ITEMPOSTPAINT);
+ notify_customdraw(infoPtr, &nmcd, CDDS_ITEMPOSTPAINT);
}
nmcd.dwItemSpec = TBCD_TICS;
nmcd.uItemState = CDIS_DEFAULT;
nmcd.rc = rcClient;
- icdrf = notify_customdraw(&nmcd, CDDS_ITEMPREPAINT);
+ icdrf = notify_customdraw(infoPtr, &nmcd, CDDS_ITEMPREPAINT);
} else icdrf = CDRF_DODEFAULT;
if ( !(icdrf & CDRF_SKIPDEFAULT) ) {
TRACKBAR_DrawTics (infoPtr, hdc, dwStyle);
if (icdrf & CDRF_NOTIFYPOSTPAINT)
- notify_customdraw(&nmcd, CDDS_ITEMPOSTPAINT);
+ notify_customdraw(infoPtr, &nmcd, CDDS_ITEMPOSTPAINT);
}
}
nmcd.dwItemSpec = TBCD_THUMB;
nmcd.uItemState = infoPtr->flags & TB_DRAG_MODE ? CDIS_HOT : CDIS_DEFAULT;
nmcd.rc = infoPtr->rcThumb;
- icdrf = notify_customdraw(&nmcd, CDDS_ITEMPREPAINT);
+ icdrf = notify_customdraw(infoPtr, &nmcd, CDDS_ITEMPREPAINT);
} else icdrf = CDRF_DODEFAULT;
if ( !(icdrf & CDRF_SKIPDEFAULT) ) {
TRACKBAR_DrawThumb(infoPtr, hdc, dwStyle);
if (icdrf & CDRF_NOTIFYPOSTPAINT)
- notify_customdraw(&nmcd, CDDS_ITEMPOSTPAINT);
+ notify_customdraw(infoPtr, &nmcd, CDDS_ITEMPOSTPAINT);
}
}
/* finish up the painting */
if (gcdrf & CDRF_NOTIFYPOSTPAINT)
- notify_customdraw(&nmcd, CDDS_POSTPAINT);
+ notify_customdraw(infoPtr, &nmcd, CDDS_POSTPAINT);
cleanup:
/* cleanup, if we rendered offscreen */
(infoPtr->uNumTics)*sizeof (DWORD));
if (!infoPtr->tics) {
infoPtr->uNumTics = 0;
- TRACKBAR_SendNotify(infoPtr, NM_OUTOFMEMORY);
+ notify(infoPtr, NM_OUTOFMEMORY);
return FALSE;
}
infoPtr->tics[infoPtr->uNumTics-1] = lPos;
infoPtr->uNumTics = 0; /* start and end tic are not included in count*/
infoPtr->uTicFreq = 1;
infoPtr->tics = NULL;
- infoPtr->hwndNotify= GetParent (hwnd);
+ infoPtr->hwndNotify= lpcs->hwndParent;
TRACKBAR_InitializeThumb (infoPtr);
TRACKBAR_LButtonUp (TRACKBAR_INFO *infoPtr, DWORD fwKeys, POINTS pts)
{
if (infoPtr->flags & TB_DRAG_MODE) {
- TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK);
+ notify_with_scroll (infoPtr, TB_THUMBPOSITION | (infoPtr->lPos<<16));
+ notify_with_scroll (infoPtr, TB_ENDTRACK);
infoPtr->flags &= ~TB_DRAG_MODE;
ReleaseCapture ();
- TRACKBAR_SendNotify(infoPtr, NM_RELEASEDCAPTURE);
+ notify(infoPtr, NM_RELEASEDCAPTURE);
TRACKBAR_ActivateToolTip(infoPtr, FALSE);
TRACKBAR_InvalidateThumb(infoPtr, infoPtr->lPos);
}
if (infoPtr->flags & TB_AUTO_PAGE) {
KillTimer (infoPtr->hwndSelf, TB_REFRESH_TIMER);
infoPtr->flags &= ~TB_AUTO_PAGE;
+ notify_with_scroll (infoPtr, TB_ENDTRACK);
ReleaseCapture ();
- TRACKBAR_SendNotify(infoPtr, NM_RELEASEDCAPTURE);
+ notify(infoPtr, NM_RELEASEDCAPTURE);
}
return 0;
static LRESULT
TRACKBAR_CaptureChanged (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK);
+ notify_with_scroll (infoPtr, TB_ENDTRACK);
return 0;
}
}
-static BOOL
-TRACKBAR_SendNotify (TRACKBAR_INFO *infoPtr, UINT code)
-{
- BOOL bVert = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_VERT;
-
- TRACE("%x\n", code);
-
- return (BOOL) SendMessageW (GetParent (infoPtr->hwndSelf),
- bVert ? WM_VSCROLL : WM_HSCROLL,
- (WPARAM)code, (LPARAM)infoPtr->hwndSelf);
-}
-
-
static LRESULT
TRACKBAR_MouseMove (TRACKBAR_INFO *infoPtr, DWORD fwKeys, POINTS pts)
{
infoPtr->lPos = dragPos;
infoPtr->flags |= TB_THUMBPOSCHANGED;
- TRACKBAR_SendNotify (infoPtr, TB_THUMBTRACK | (infoPtr->lPos<<16));
+ notify_with_scroll (infoPtr, TB_THUMBTRACK | (infoPtr->lPos<<16));
TRACKBAR_InvalidateThumbMove(infoPtr, oldPos, dragPos);
return TRUE;
}
-
static BOOL
TRACKBAR_KeyDown (TRACKBAR_INFO *infoPtr, INT nVirtKey, DWORD lKeyData)
{
- BOOL downIsLeft = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_DOWNISLEFT;
+ DWORD style = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
+ BOOL downIsLeft = style & TBS_DOWNISLEFT;
+ BOOL vert = style & TBS_VERT;
LONG pos = infoPtr->lPos;
TRACE("%x\n", nVirtKey);
switch (nVirtKey) {
case VK_UP:
- if (downIsLeft) goto step_right;
+ if (!vert && downIsLeft) TRACKBAR_LineDown(infoPtr);
+ else TRACKBAR_LineUp(infoPtr);
+ break;
case VK_LEFT:
- step_left:
- if (infoPtr->lPos == infoPtr->lRangeMin) return FALSE;
- infoPtr->lPos -= infoPtr->lLineSize;
- if (infoPtr->lPos < infoPtr->lRangeMin)
- infoPtr->lPos = infoPtr->lRangeMin;
- TRACKBAR_SendNotify (infoPtr, TB_LINEUP);
+ if (vert && downIsLeft) TRACKBAR_LineDown(infoPtr);
+ else TRACKBAR_LineUp(infoPtr);
break;
case VK_DOWN:
- if (downIsLeft) goto step_left;
+ if (!vert && downIsLeft) TRACKBAR_LineUp(infoPtr);
+ else TRACKBAR_LineDown(infoPtr);
+ break;
case VK_RIGHT:
- step_right:
- if (infoPtr->lPos == infoPtr->lRangeMax) return FALSE;
- infoPtr->lPos += infoPtr->lLineSize;
- if (infoPtr->lPos > infoPtr->lRangeMax)
- infoPtr->lPos = infoPtr->lRangeMax;
- TRACKBAR_SendNotify (infoPtr, TB_LINEDOWN);
+ if (vert && downIsLeft) TRACKBAR_LineUp(infoPtr);
+ else TRACKBAR_LineDown(infoPtr);
break;
case VK_NEXT:
- if (downIsLeft) goto page_left;
- page_right:
- TRACKBAR_PageUp(infoPtr);
+ if (!vert && downIsLeft) TRACKBAR_PageUp(infoPtr);
+ else TRACKBAR_PageDown(infoPtr);
break;
case VK_PRIOR:
- if (downIsLeft) goto page_right;
- page_left:
- TRACKBAR_PageDown(infoPtr);
+ if (!vert && downIsLeft) TRACKBAR_PageDown(infoPtr);
+ else TRACKBAR_PageUp(infoPtr);
break;
case VK_HOME:
if (infoPtr->lPos == infoPtr->lRangeMin) return FALSE;
infoPtr->lPos = infoPtr->lRangeMin;
- TRACKBAR_SendNotify (infoPtr, TB_TOP);
+ notify_with_scroll (infoPtr, TB_TOP);
break;
case VK_END:
if (infoPtr->lPos == infoPtr->lRangeMax) return FALSE;
infoPtr->lPos = infoPtr->lRangeMax;
- TRACKBAR_SendNotify (infoPtr, TB_BOTTOM);
+ notify_with_scroll (infoPtr, TB_BOTTOM);
break;
}
case VK_PRIOR:
case VK_HOME:
case VK_END:
- TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK);
+ notify_with_scroll (infoPtr, TB_ENDTRACK);
}
return TRUE;
}
break;
}
+ if (!item) item = parent->firstChild;
TREEVIEW_SetFirstVisible(infoPtr, item, FALSE);
}
TRACE("TVE_EXPAND %p %s\n", wineItem, TREEVIEW_ItemName(wineItem));
- if (bUser || !(wineItem->state & TVIS_EXPANDEDONCE))
+ if (bUser || ((wineItem->cChildren != 0) &&
+ !(wineItem->state & TVIS_EXPANDEDONCE)))
{
if (!TREEVIEW_SendExpanding(infoPtr, wineItem, TVE_EXPAND))
{
TREEVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
TREEVIEW_INFO *infoPtr = TREEVIEW_GetInfoPtr(hwnd);
+
+ TRACE("hwnd %p msg %04x wp=%08x lp=%08lx\n", hwnd, uMsg, wParam, lParam);
+
if (infoPtr) TREEVIEW_VerifyTree(infoPtr);
else
{