mirror of
https://github.com/reactos/reactos.git
synced 2025-04-30 19:19:00 +00:00
[COMCTL32]
- Sync with wine 1.3.14 svn path=/trunk/; revision=50887
This commit is contained in:
parent
011bdfc3b5
commit
353147d2cc
50 changed files with 1230 additions and 1407 deletions
|
@ -431,18 +431,13 @@ static void COMBOEX_ReSize (const COMBOEX_INFO *infoPtr)
|
|||
if (infoPtr->hwndCombo) {
|
||||
SendMessageW (infoPtr->hwndCombo, CB_SETITEMHEIGHT, 0, cy);
|
||||
if ( !(infoPtr->flags & CBES_EX_NOSIZELIMIT)) {
|
||||
RECT comboRect;
|
||||
if (GetWindowRect(infoPtr->hwndCombo, &comboRect)) {
|
||||
RECT ourRect;
|
||||
if (GetWindowRect(infoPtr->hwndSelf, &ourRect)) {
|
||||
if (comboRect.bottom > ourRect.bottom) {
|
||||
POINT pt = { ourRect.left, ourRect.top };
|
||||
if (ScreenToClient(infoPtr->hwndSelf, &pt))
|
||||
MoveWindow( infoPtr->hwndSelf, pt.x, pt.y, ourRect.right - ourRect.left,
|
||||
comboRect.bottom - comboRect.top, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
RECT comboRect, ourRect;
|
||||
GetWindowRect(infoPtr->hwndCombo, &comboRect);
|
||||
GetWindowRect(infoPtr->hwndSelf, &ourRect);
|
||||
if (comboRect.bottom > ourRect.bottom)
|
||||
SetWindowPos( infoPtr->hwndSelf, 0, 0, 0, ourRect.right - ourRect.left,
|
||||
comboRect.bottom - comboRect.top,
|
||||
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREDRAW );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -758,7 +753,7 @@ static HIMAGELIST COMBOEX_SetImageList (COMBOEX_INFO *infoPtr, HIMAGELIST himl)
|
|||
return himlTemp;
|
||||
}
|
||||
|
||||
static BOOL COMBOEX_SetItemW (const COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW *cit)
|
||||
static BOOL COMBOEX_SetItemW (const COMBOEX_INFO *infoPtr, const COMBOBOXEXITEMW *cit)
|
||||
{
|
||||
INT_PTR index = cit->iItem;
|
||||
CBE_ITEMDATA *item;
|
||||
|
@ -1698,7 +1693,7 @@ static LRESULT COMBOEX_WindowPosChanging (const COMBOEX_INFO *infoPtr, WINDOWPOS
|
|||
height = (cb_wrect.bottom-cb_wrect.top)
|
||||
+ (cbx_wrect.bottom-cbx_wrect.top)
|
||||
- (cbx_crect.bottom-cbx_crect.top);
|
||||
if (wp->cy < height) wp->cy = height;
|
||||
wp->cy = height;
|
||||
if (infoPtr->hwndEdit) {
|
||||
COMBOEX_AdjustEditPos (infoPtr);
|
||||
InvalidateRect (infoPtr->hwndCombo, 0, TRUE);
|
||||
|
|
|
@ -101,16 +101,15 @@ extern HBRUSH COMCTL32_hPattern55AABrush;
|
|||
#define IDT_CHECK 401
|
||||
|
||||
|
||||
/* Header cursors */
|
||||
/* Cursors */
|
||||
#define IDC_MOVEBUTTON 102
|
||||
#define IDC_COPY 104
|
||||
#define IDC_DIVIDER 106
|
||||
#define IDC_DIVIDEROPEN 107
|
||||
|
||||
|
||||
/* DragList resources */
|
||||
#define IDI_DRAGARROW 501
|
||||
#define IDC_COPY 502
|
||||
|
||||
#define IDC_MOVEBUTTON 1
|
||||
|
||||
/* HOTKEY internal strings */
|
||||
#define HKY_NONE 2048
|
||||
|
|
|
@ -38,27 +38,27 @@
|
|||
234 stdcall -noname Str_SetPtrA(str str)
|
||||
235 stdcall -noname Str_GetPtrW(wstr wstr long)
|
||||
236 stdcall -noname Str_SetPtrW(wstr wstr)
|
||||
320 stdcall -noname DSA_Create(long long)
|
||||
321 stdcall -noname DSA_Destroy(ptr)
|
||||
322 stdcall -noname DSA_GetItem(ptr long long)
|
||||
323 stdcall -noname DSA_GetItemPtr(ptr long)
|
||||
324 stdcall -noname DSA_InsertItem(ptr long long)
|
||||
325 stdcall -noname DSA_SetItem (ptr long long)
|
||||
326 stdcall -noname DSA_DeleteItem(ptr long)
|
||||
327 stdcall -noname DSA_DeleteAllItems(ptr)
|
||||
328 stdcall -noname DPA_Create(long)
|
||||
329 stdcall -noname DPA_Destroy(ptr)
|
||||
330 stdcall -noname DPA_Grow(ptr long)
|
||||
331 stdcall -noname DPA_Clone(ptr ptr)
|
||||
332 stdcall -noname DPA_GetPtr(ptr long)
|
||||
333 stdcall -noname DPA_GetPtrIndex(ptr ptr)
|
||||
334 stdcall -noname DPA_InsertPtr(ptr long ptr)
|
||||
335 stdcall -noname DPA_SetPtr(ptr long ptr)
|
||||
336 stdcall -noname DPA_DeletePtr(ptr long)
|
||||
337 stdcall -noname DPA_DeleteAllPtrs(ptr)
|
||||
338 stdcall -noname DPA_Sort(ptr ptr long)
|
||||
339 stdcall -noname DPA_Search(ptr ptr long ptr long long)
|
||||
340 stdcall -noname DPA_CreateEx(long long)
|
||||
320 stdcall -ordinal DSA_Create(long long)
|
||||
321 stdcall -ordinal DSA_Destroy(ptr)
|
||||
322 stdcall -ordinal DSA_GetItem(ptr long long)
|
||||
323 stdcall -ordinal DSA_GetItemPtr(ptr long)
|
||||
324 stdcall -ordinal DSA_InsertItem(ptr long long)
|
||||
325 stdcall -ordinal DSA_SetItem (ptr long long)
|
||||
326 stdcall -ordinal DSA_DeleteItem(ptr long)
|
||||
327 stdcall -ordinal DSA_DeleteAllItems(ptr)
|
||||
328 stdcall -ordinal DPA_Create(long)
|
||||
329 stdcall -ordinal DPA_Destroy(ptr)
|
||||
330 stdcall -ordinal DPA_Grow(ptr long)
|
||||
331 stdcall -ordinal DPA_Clone(ptr ptr)
|
||||
332 stdcall -ordinal DPA_GetPtr(ptr long)
|
||||
333 stdcall -ordinal DPA_GetPtrIndex(ptr ptr)
|
||||
334 stdcall -ordinal DPA_InsertPtr(ptr long ptr)
|
||||
335 stdcall -ordinal DPA_SetPtr(ptr long ptr)
|
||||
336 stdcall -ordinal DPA_DeletePtr(ptr long)
|
||||
337 stdcall -ordinal DPA_DeleteAllPtrs(ptr)
|
||||
338 stdcall -ordinal DPA_Sort(ptr ptr long)
|
||||
339 stdcall -ordinal DPA_Search(ptr ptr long ptr long long)
|
||||
340 stdcall -ordinal DPA_CreateEx(long long)
|
||||
341 stdcall -noname SendNotify(long long long ptr)
|
||||
342 stdcall -noname SendNotifyEx(long long long ptr long)
|
||||
350 stdcall -noname StrChrA(str str)
|
||||
|
@ -90,16 +90,16 @@
|
|||
382 stdcall -noname SmoothScrollWindow(ptr)
|
||||
383 stdcall -noname DoReaderMode(ptr)
|
||||
384 stdcall -noname SetPathWordBreakProc(ptr long)
|
||||
385 stdcall -noname DPA_EnumCallback(long long long)
|
||||
386 stdcall -noname DPA_DestroyCallback(ptr ptr long)
|
||||
387 stdcall -noname DSA_EnumCallback(ptr ptr long)
|
||||
388 stdcall -noname DSA_DestroyCallback(ptr ptr long)
|
||||
385 stdcall -ordinal DPA_EnumCallback(long long long)
|
||||
386 stdcall -ordinal DPA_DestroyCallback(ptr ptr long)
|
||||
387 stdcall -ordinal DSA_EnumCallback(ptr ptr long)
|
||||
388 stdcall -ordinal DSA_DestroyCallback(ptr ptr long)
|
||||
389 stdcall -noname comctl32_389(long long)
|
||||
390 stdcall -noname ImageList_SetColorTable(ptr long long ptr)
|
||||
400 stdcall -noname CreateMRUListW(ptr)
|
||||
401 stdcall -noname AddMRUStringW(long wstr)
|
||||
400 stdcall -ordinal CreateMRUListW(ptr)
|
||||
401 stdcall -ordinal AddMRUStringW(long wstr)
|
||||
402 stdcall -noname FindMRUStringW(long wstr ptr)
|
||||
403 stdcall -noname EnumMRUListW(long long ptr long)
|
||||
403 stdcall -ordinal EnumMRUListW(long long ptr long)
|
||||
404 stdcall -noname CreateMRUListLazyW(ptr long long long)
|
||||
410 stdcall -ordinal SetWindowSubclass(long ptr long long)
|
||||
411 stdcall -ordinal GetWindowSubclass(long ptr long ptr)
|
||||
|
@ -188,5 +188,6 @@
|
|||
@ stdcall PropertySheet(ptr) PropertySheetA
|
||||
@ stdcall PropertySheetA(ptr)
|
||||
@ stdcall PropertySheetW(ptr)
|
||||
@ stdcall TaskDialogIndirect(ptr ptr ptr ptr)
|
||||
@ stdcall UninitializeFlatSB(long)
|
||||
@ stdcall _TrackMouseEvent(ptr)
|
||||
|
|
|
@ -68,24 +68,3 @@ BEGIN
|
|||
LTEXT "&Áóòîíè íà ëåíòàòà ñ èíñòðóìåíòè:", -1,192,5,78,10 /* 182 -> 192 ? */
|
||||
LISTBOX IDC_TOOLBARBTN_LBOX, 192,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP /* 182 -> 192 ? */
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_CLOSE "Çàòâîðè"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Äíåñ:"
|
||||
IDM_GOTODAY "Èäè íà äíåñ"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Ðàçäåëèòåë"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Íèùî"
|
||||
}
|
||||
|
|
|
@ -72,24 +72,3 @@ BEGIN
|
|||
LTEXT "&Tlaèítka panelu:", -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
|
||||
{
|
||||
IDS_CLOSE "Zavøít"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Dnes:"
|
||||
IDM_GOTODAY "Jdi na dnešek"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Oddìlovaè"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Žádný"
|
||||
}
|
||||
|
|
|
@ -69,24 +69,3 @@ BEGIN
|
|||
LTEXT "&Værktøjs knapper:", -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
|
||||
{
|
||||
IDS_CLOSE "Luk"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Idag:"
|
||||
IDM_GOTODAY "Gå til i dag"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separator"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Ingen"
|
||||
}
|
||||
|
|
|
@ -22,27 +22,6 @@
|
|||
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_CLOSE "Schließen"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Heute:"
|
||||
IDM_GOTODAY "Gehe zu Heute"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Trennzeichen"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Keiner"
|
||||
}
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Eigenschaften für %s"
|
||||
|
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Êëåßóéìï"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "ÓÞìåñá:"
|
||||
IDM_GOTODAY "ÌåôÜâáóç óôá óçìåñéíÜ"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Äéá÷ùñéóôÞò"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "ÊáíÝíá"
|
||||
}
|
||||
|
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Close"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Today:"
|
||||
IDM_GOTODAY "Go to today"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separator"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "None"
|
||||
}
|
||||
|
|
68
reactos/dll/win32/comctl32/comctl_Eo.rc
Normal file
68
reactos/dll/win32/comctl32/comctl_Eo.rc
Normal file
|
@ -0,0 +1,68 @@
|
|||
/* Esperanto Language Support
|
||||
* Copyright 2006 Antonio Codazzi
|
||||
*
|
||||
* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "comctl32.h"
|
||||
|
||||
LANGUAGE LANG_ESPERANTO, SUBLANG_DEFAULT
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Ecoj laý %s"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Bone", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
|
||||
PUSHBUTTON "Rezigni", IDCANCEL,58,122,50,14
|
||||
PUSHBUTTON "&Apliku", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
|
||||
PUSHBUTTON "Helpo", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
|
||||
CONTROL "Langeto", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114
|
||||
END
|
||||
|
||||
|
||||
IDD_WIZARD DIALOG 0, 0, 290, 159
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Estrita Proceduro"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "< &Retro", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "&Antaýen >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Konkludi", IDC_FINISH_BUTTON,121,138,50,14
|
||||
PUSHBUTTON "Rezigni", IDCANCEL,178,138,50,14
|
||||
PUSHBUTTON "Helpo", IDHELP,235,138,50,14,WS_GROUP
|
||||
LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
|
||||
CONTROL "Langeto", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
|
||||
LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE
|
||||
END
|
||||
|
||||
|
||||
IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Agordu stangon de la iloj"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Fermu", IDCANCEL,308,6,44,14
|
||||
PUSHBUTTON "R&ee agordu", IDC_RESET_BTN,308,23,44,14
|
||||
PUSHBUTTON "&Helpo", IDC_HELP_BTN,308,40,44,14
|
||||
PUSHBUTTON "&Supre forþovu", IDC_MOVEUP_BTN,308,74,44,14
|
||||
PUSHBUTTON "Su&be forþovu", IDC_MOVEDN_BTN,308,91,44,14
|
||||
LTEXT "&Disponeblaj butonoj:", -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 "&Aldonu ->", IDOK, 131, 42, 44, 14
|
||||
PUSHBUTTON "<- &Forigu", IDC_REMOVE_BTN,131,62,44,14
|
||||
LTEXT "Butonoj por stango de la &iloj", -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
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Cerrar"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Hoy:"
|
||||
IDM_GOTODAY "Ir a hoy"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separador"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Ninguno"
|
||||
}
|
||||
|
|
|
@ -73,24 +73,3 @@ BEGIN
|
|||
LTEXT "&Boutons de la barre d'outils :", -1,182,5,93,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
|
||||
{
|
||||
IDS_CLOSE "Fermer"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Aujourd'hui :"
|
||||
IDM_GOTODAY "Aller à aujourd'hui"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Séparateur"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Aucun"
|
||||
}
|
||||
|
|
74
reactos/dll/win32/comctl32/comctl_He.rc
Normal file
74
reactos/dll/win32/comctl32/comctl_He.rc
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
* Copyright 1999 Eric Kohl
|
||||
* Copyright 2010 Yaron shahrabani <sh.yaron@gmail.com>
|
||||
*
|
||||
* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "comctl32.h"
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
CAPTION "המאפיינים של %s"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "אישור", 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|TCS_MULTILINE,4,4,212,114
|
||||
END
|
||||
|
||||
|
||||
IDD_WIZARD DIALOG 0, 0, 290, 159
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
CAPTION "Wizard"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "< ה&קודם", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "ה&בא >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "סיום", IDC_FINISH_BUTTON,121,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
|
||||
LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE
|
||||
END
|
||||
|
||||
|
||||
IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
CAPTION "התאמת סרגל כלים"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
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
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
LTEXT "E&szköztár gombok:", -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
|
||||
{
|
||||
IDS_CLOSE "Bezárás"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Ma:"
|
||||
IDM_GOTODAY "Ugrás mára"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Elválasztó"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Nincs"
|
||||
}
|
||||
|
|
|
@ -19,11 +19,14 @@
|
|||
|
||||
#include "comctl32.h"
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Proprietà per %s"
|
||||
CAPTION "Proprietà per %s"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
|
||||
|
@ -57,34 +60,13 @@ FONT 8, "MS Shell Dlg"
|
|||
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
|
||||
PUSHBUTTON "A&iuto", 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 "&Tasti della barra degli strumenti:", -1,182,5,78,10
|
||||
LTEXT "Tasti 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
|
||||
{
|
||||
IDS_CLOSE "Chiudi"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Oggi:"
|
||||
IDM_GOTODAY "Vai a oggi"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separatore"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Nessuno"
|
||||
}
|
||||
|
|
|
@ -69,24 +69,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "閉じる"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "今日:"
|
||||
IDM_GOTODAY "今日へ移動"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "区切り"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "なし"
|
||||
}
|
||||
|
|
|
@ -19,72 +19,53 @@
|
|||
|
||||
#include "comctl32.h"
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "%s 속성"
|
||||
CAPTION "%s 속성"
|
||||
FONT 9, "MS Shell Dlg"
|
||||
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 "탭", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114
|
||||
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 "탭", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114
|
||||
END
|
||||
|
||||
|
||||
IDD_WIZARD DIALOG 0, 0, 290, 159
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "마법사"
|
||||
CAPTION "마법사"
|
||||
FONT 9, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "< 이전(&B)", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "다음(&N) >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "종료", IDC_FINISH_BUTTON,121,138,50,14
|
||||
PUSHBUTTON "취소", IDCANCEL,178,138,50,14
|
||||
PUSHBUTTON "도움말", IDHELP,235,138,50,14,WS_GROUP
|
||||
PUSHBUTTON "< 이전(&B)", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "다음(&N) >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "종료", IDC_FINISH_BUTTON,121,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 "탭", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
|
||||
CONTROL "탭", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
|
||||
LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE
|
||||
END
|
||||
|
||||
|
||||
IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "도구바 사용자 정의"
|
||||
CAPTION "도구바 사용자 정의"
|
||||
FONT 9, "MS Shell Dlg"
|
||||
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,49,14
|
||||
LTEXT "가능한 버튼(&V)", -1,4,5,84,10
|
||||
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,49,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
|
||||
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
|
||||
{
|
||||
IDS_CLOSE "닫기"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "오늘:"
|
||||
IDM_GOTODAY "오늘로 가기"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "분리자"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "없음"
|
||||
}
|
||||
|
|
|
@ -69,24 +69,3 @@ BEGIN
|
|||
LTEXT "&Mygtukų juostos turinys:", -1,182,5,84,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
|
||||
{
|
||||
IDS_CLOSE "Užverti"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Šiandien:"
|
||||
IDM_GOTODAY "Eiti į šiandien"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Skirtukas"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Joks"
|
||||
}
|
||||
|
|
|
@ -68,24 +68,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Sluiten"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Vandaag:"
|
||||
IDM_GOTODAY "Ga naar vandaag"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Scheidingsteken"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Geen"
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ FONT 8, "MS Shell Dlg"
|
|||
BEGIN
|
||||
PUSHBUTTON "< Til&bake", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "&Neste >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Fullfør", IDC_FINISH_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Fullfr", IDC_FINISH_BUTTON,121,138,50,14
|
||||
PUSHBUTTON "Avbryt", IDCANCEL,178,138,50,14
|
||||
PUSHBUTTON "Hjelp", IDHELP,235,138,50,14,WS_GROUP
|
||||
LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
|
||||
|
@ -51,7 +51,7 @@ END
|
|||
|
||||
IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Tilpass verktøylinje"
|
||||
CAPTION "Tilpass verktylinje"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Lukk", IDCANCEL,308,6,44,14
|
||||
|
@ -63,27 +63,6 @@ BEGIN
|
|||
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 "Le&gg til ->", IDOK, 131, 42, 44, 14
|
||||
PUSHBUTTON "<- Fje&rn", IDC_REMOVE_BTN,131,62,44,14
|
||||
LTEXT "Verk&tøylinje-knapper:", -1,182,5,78,10
|
||||
LTEXT "Verk&tylinje-knapper:", -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
|
||||
{
|
||||
IDS_CLOSE "Lukk"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Idag:"
|
||||
IDM_GOTODAY "Gå til idag"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Adskiller"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Ingen"
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
|||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "W³aœciwoœci %s"
|
||||
CAPTION "Waciwoci %s"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
|
||||
|
@ -41,7 +41,7 @@ FONT 8, "MS Shell Dlg"
|
|||
BEGIN
|
||||
PUSHBUTTON "< &Wstecz", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "&Dalej >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Zakoñcz", IDC_FINISH_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Zakocz", IDC_FINISH_BUTTON,121,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
|
||||
|
@ -67,24 +67,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Zamknij"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Dziœ:"
|
||||
IDM_GOTODAY "IdŸ do dziœ"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Odstêp"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Brak"
|
||||
}
|
||||
|
|
|
@ -68,24 +68,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Fechar"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Hoje:"
|
||||
IDM_GOTODAY "Ir para hoje"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separador"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Nenhum"
|
||||
}
|
||||
|
|
|
@ -69,24 +69,3 @@ BEGIN
|
|||
LTEXT "Butoane &toolbar:", -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
|
||||
{
|
||||
IDS_CLOSE "Închide"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Azi:"
|
||||
IDM_GOTODAY "Mergi la Azi"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separator"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Nimic"
|
||||
}
|
||||
|
|
|
@ -71,24 +71,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Закрыть"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Сегодня:"
|
||||
IDM_GOTODAY "Текущая дата"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Разделитель"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Нет"
|
||||
}
|
||||
|
|
|
@ -68,24 +68,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Zapri"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Danes:"
|
||||
IDM_GOTODAY "Pojdi na danes"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Ločilo"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Brez"
|
||||
}
|
||||
|
|
|
@ -69,24 +69,3 @@ BEGIN
|
|||
LTEXT "&Tlaèidlá panela:", -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
|
||||
{
|
||||
IDS_CLOSE "Zavrie<69>"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Dnes:"
|
||||
IDM_GOTODAY "Choï na dnešok"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Odde¾ovaè"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Žiadne"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* Copyright 2010 Nenad Vujic
|
||||
* Paul Vriens
|
||||
* Copyright 2010 Đorđe Vasiljević
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -25,138 +26,96 @@ LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN
|
|||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Detalji za %s"
|
||||
CAPTION "Svojstva za %s"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
|
||||
DEFPUSHBUTTON "U redu", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
|
||||
PUSHBUTTON "Otkaži", IDCANCEL,58,122,50,14
|
||||
PUSHBUTTON "&Primeni", 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|TCS_MULTILINE,4,4,212,114
|
||||
CONTROL "Jezičak", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114
|
||||
END
|
||||
|
||||
|
||||
IDD_WIZARD DIALOG 0, 0, 290, 159
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Čarobnjak"
|
||||
CAPTION "Vodič"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "< &Nazad", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "&Sledeće >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Završi", IDC_FINISH_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "&Napred >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Kraj", IDC_FINISH_BUTTON,121,138,50,14
|
||||
PUSHBUTTON "Otkaž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
|
||||
CONTROL "Jezičak", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
|
||||
LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE
|
||||
END
|
||||
|
||||
|
||||
IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Podesi Toolbar"
|
||||
CAPTION "Prilagodi alatnicu"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Zatvori", IDCANCEL,308,6,44,14
|
||||
PUSHBUTTON "R&esetuj", IDC_RESET_BTN,308,23,44,14
|
||||
PUSHBUTTON "&Poništi", IDC_RESET_BTN,308,23,44,14
|
||||
PUSHBUTTON "&Pomoć", IDC_HELP_BTN,308,40,44,14
|
||||
PUSHBUTTON "Pomeri &Gore", IDC_MOVEUP_BTN,308,74,44,14
|
||||
PUSHBUTTON "Pomeri &Dole", IDC_MOVEDN_BTN,308,91,44,14
|
||||
LTEXT "D&ostupni tasteri:", -1,4,5,84,10
|
||||
PUSHBUTTON "Pomeri na&gore", IDC_MOVEUP_BTN,308,74,44,14
|
||||
PUSHBUTTON "Pomeri na&dole", IDC_MOVEDN_BTN,308,91,44,14
|
||||
LTEXT "&Dostupni dugmići:", -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 "<- &Ukloni", IDC_REMOVE_BTN,131,62,44,14
|
||||
LTEXT "&Toolbar tasteri:", -1,182,5,78,10
|
||||
LTEXT "&Dugmići na alatnici:", -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
|
||||
{
|
||||
IDS_CLOSE "Zatvori"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Danas:"
|
||||
IDM_GOTODAY "Idi na danas"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Odvajanje"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Ništa"
|
||||
}
|
||||
|
||||
LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Детаљи за %s"
|
||||
CAPTION "Својства за %s"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "ОK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
|
||||
DEFPUSHBUTTON "У реду", 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 "Таб", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114
|
||||
CONTROL "Језичак", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114
|
||||
END
|
||||
|
||||
|
||||
IDD_WIZARD DIALOG 0, 0, 290, 159
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Чаробњак"
|
||||
CAPTION "Водич"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "< &Назад", IDC_BACK_BUTTON,71,138,50,14
|
||||
DEFPUSHBUTTON "&Следеће >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Заврши", IDC_FINISH_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "&Напред >", IDC_NEXT_BUTTON,121,138,50,14
|
||||
DEFPUSHBUTTON "Крај", IDC_FINISH_BUTTON,121,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 "Таб", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
|
||||
CONTROL "Језичак", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
|
||||
LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE
|
||||
END
|
||||
|
||||
|
||||
IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Подеси Тулбар"
|
||||
CAPTION "Прилагоди алатницу"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Затвори", IDCANCEL,308,6,44,14
|
||||
PUSHBUTTON "Р&есетуј", IDC_RESET_BTN,308,23,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
|
||||
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
|
||||
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
|
||||
{
|
||||
IDS_CLOSE "Затвори"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Данас:"
|
||||
IDM_GOTODAY "Иди на данас"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Одвајање"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Ништа"
|
||||
}
|
||||
|
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
LTEXT "Knappar i v&erktygsfältet:", -1,182,5,85,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
|
||||
{
|
||||
IDS_CLOSE "Stäng"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Idag:"
|
||||
IDM_GOTODAY "Gå till idag"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separator"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Ingen"
|
||||
}
|
||||
|
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "»Õ´"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Çѹ¹Õé:"
|
||||
IDM_GOTODAY "ä»¶Ö§Çѹ¹Õé"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Separator"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "äÁèÁÕàÅÂ"
|
||||
}
|
||||
|
|
|
@ -66,24 +66,3 @@ BEGIN
|
|||
LTEXT "&Araç Çubuðu butonlarý:", -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
|
||||
{
|
||||
IDS_CLOSE "Kapat"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Bugün:"
|
||||
IDM_GOTODAY "Bugüne git"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Ayraç"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Hiçbiri"
|
||||
}
|
||||
|
|
|
@ -70,24 +70,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "Çàêðèòè"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "Ñüîãîäí³:"
|
||||
IDM_GOTODAY "Ïîòî÷íà äàòà"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "Ðîçä³ëüíèê"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "Íåìà"
|
||||
}
|
||||
|
|
|
@ -73,27 +73,6 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "关闭"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "今天:"
|
||||
IDM_GOTODAY "转到今天"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "分隔符"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "无"
|
||||
}
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
||||
|
||||
IDD_PROPSHEET DIALOG 0, 0, 220, 140
|
||||
|
@ -142,24 +121,3 @@ BEGIN
|
|||
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
|
||||
{
|
||||
IDS_CLOSE "關閉"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDM_TODAY "今天:"
|
||||
IDM_GOTODAY "轉到今天"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_SEPARATOR "分隔符"
|
||||
}
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
HKY_NONE "無"
|
||||
}
|
||||
|
|
|
@ -1689,3 +1689,17 @@ int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *rect, DWORD
|
|||
crText, crShadow, ixOffset, iyOffset);
|
||||
return DrawTextW(hdc, pszText, cch, rect, DT_LEFT);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* TaskDialogIndirect [COMCTL32.@]
|
||||
*/
|
||||
HRESULT WINAPI TaskDialogIndirect(const TASKDIALOGCONFIG *pTaskConfig, int *pnButton,
|
||||
int *pnRadioButton, BOOL *pfVerificationFlagChecked)
|
||||
{
|
||||
FIXME("%p, %p, %p, %p\n", pTaskConfig, pnButton, pnRadioButton, pfVerificationFlagChecked);
|
||||
|
||||
if (pnButton) *pnButton = IDYES;
|
||||
if (pnRadioButton) *pnRadioButton = pTaskConfig->nDefaultButton;
|
||||
if (pfVerificationFlagChecked) *pfVerificationFlagChecked = TRUE;
|
||||
return S_OK;
|
||||
}
|
||||
|
|
|
@ -787,6 +787,7 @@ DATETIME_LButtonDown (DATETIME_INFO *infoPtr, INT x, INT y)
|
|||
|
||||
if (infoPtr->select == DTHT_MCPOPUP) {
|
||||
RECT rcMonthCal;
|
||||
POINT pos;
|
||||
SendMessageW(infoPtr->hMonthCal, MCM_GETMINREQRECT, 0, (LPARAM)&rcMonthCal);
|
||||
|
||||
/* FIXME: button actually is only depressed during dropdown of the */
|
||||
|
@ -795,17 +796,16 @@ DATETIME_LButtonDown (DATETIME_INFO *infoPtr, INT x, INT y)
|
|||
|
||||
/* recalculate the position of the monthcal popup */
|
||||
if(infoPtr->dwStyle & DTS_RIGHTALIGN)
|
||||
infoPtr->monthcal_pos.x = infoPtr->calbutton.left -
|
||||
(rcMonthCal.right - rcMonthCal.left);
|
||||
pos.x = infoPtr->calbutton.left - (rcMonthCal.right - rcMonthCal.left);
|
||||
else
|
||||
/* FIXME: this should be after the area reserved for the checkbox */
|
||||
infoPtr->monthcal_pos.x = infoPtr->rcDraw.left;
|
||||
pos.x = infoPtr->rcDraw.left;
|
||||
|
||||
infoPtr->monthcal_pos.y = infoPtr->rcClient.bottom;
|
||||
ClientToScreen (infoPtr->hwndSelf, &(infoPtr->monthcal_pos));
|
||||
SetWindowPos(infoPtr->hMonthCal, 0, infoPtr->monthcal_pos.x,
|
||||
infoPtr->monthcal_pos.y, rcMonthCal.right - rcMonthCal.left,
|
||||
rcMonthCal.bottom - rcMonthCal.top, 0);
|
||||
pos.y = infoPtr->rcClient.bottom;
|
||||
OffsetRect( &rcMonthCal, pos.x, pos.y );
|
||||
MapWindowPoints( infoPtr->hwndSelf, 0, (POINT *)&rcMonthCal, 2 );
|
||||
SetWindowPos(infoPtr->hMonthCal, 0, rcMonthCal.left, rcMonthCal.top,
|
||||
rcMonthCal.right - rcMonthCal.left, rcMonthCal.bottom - rcMonthCal.top, 0);
|
||||
|
||||
if(IsWindowVisible(infoPtr->hMonthCal)) {
|
||||
ShowWindow(infoPtr->hMonthCal, SW_HIDE);
|
||||
|
@ -1368,7 +1368,7 @@ DATETIME_Destroy (DATETIME_INFO *infoPtr)
|
|||
|
||||
|
||||
static INT
|
||||
DATETIME_GetText (DATETIME_INFO *infoPtr, INT count, LPWSTR dst)
|
||||
DATETIME_GetText (const DATETIME_INFO *infoPtr, INT count, LPWSTR dst)
|
||||
{
|
||||
WCHAR buf[80];
|
||||
int i;
|
||||
|
|
|
@ -1215,7 +1215,7 @@ HEADER_GetOrderArray(const HEADER_INFO *infoPtr, INT size, LPINT order)
|
|||
|
||||
/* Returns index of first duplicate 'value' from [0,to) range,
|
||||
or -1 if there isn't any */
|
||||
static INT has_duplicate(INT *array, INT to, INT value)
|
||||
static INT has_duplicate(const INT *array, INT to, INT value)
|
||||
{
|
||||
INT i;
|
||||
for(i = 0; i < to; i++)
|
||||
|
@ -1224,7 +1224,7 @@ static INT has_duplicate(INT *array, INT to, INT value)
|
|||
}
|
||||
|
||||
/* returns next available value from [0,max] not to duplicate in [0,to) */
|
||||
static INT get_nextvalue(INT *array, INT to, INT max)
|
||||
static INT get_nextvalue(const INT *array, INT to, INT max)
|
||||
{
|
||||
INT i;
|
||||
for(i = 0; i < max; i++)
|
||||
|
|
|
@ -694,6 +694,8 @@ ImageList_Create (INT cx, INT cy, UINT flags,
|
|||
|
||||
TRACE("(%d %d 0x%x %d %d)\n", cx, cy, flags, cInitial, cGrow);
|
||||
|
||||
if (cx <= 0 || cy <= 0) return NULL;
|
||||
|
||||
/* Create the IImageList interface for the image list */
|
||||
if (FAILED(ImageListImpl_CreateInstance(NULL, &IID_IImageList, (void **)&himl)))
|
||||
return NULL;
|
||||
|
@ -1519,7 +1521,6 @@ ImageList_Duplicate (HIMAGELIST himlSrc)
|
|||
himlSrc->hdcMask, 0, 0, SRCCOPY);
|
||||
|
||||
himlDst->cCurImage = himlSrc->cCurImage;
|
||||
himlDst->cMaxImage = himlSrc->cMaxImage;
|
||||
if (himlSrc->has_alpha && himlDst->has_alpha)
|
||||
memcpy( himlDst->has_alpha, himlSrc->has_alpha, himlDst->cCurImage );
|
||||
}
|
||||
|
@ -1726,15 +1727,13 @@ ImageList_GetIcon (HIMAGELIST himl, INT i, UINT fStyle)
|
|||
BOOL WINAPI
|
||||
ImageList_GetIconSize (HIMAGELIST himl, INT *cx, INT *cy)
|
||||
{
|
||||
if (!is_valid(himl))
|
||||
if (!is_valid(himl) || !cx || !cy)
|
||||
return FALSE;
|
||||
if ((himl->cx <= 0) || (himl->cy <= 0))
|
||||
return FALSE;
|
||||
|
||||
if (cx)
|
||||
*cx = himl->cx;
|
||||
if (cy)
|
||||
*cy = himl->cy;
|
||||
*cx = himl->cx;
|
||||
*cy = himl->cy;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1907,8 +1906,11 @@ ImageList_LoadImageW (HINSTANCE hi, LPCWSTR lpbmp, INT cx, INT cGrow,
|
|||
}
|
||||
|
||||
if (uType == IMAGE_BITMAP) {
|
||||
BITMAP bmp;
|
||||
GetObjectW (handle, sizeof(BITMAP), &bmp);
|
||||
DIBSECTION dib;
|
||||
UINT color;
|
||||
|
||||
if (GetObjectW (handle, sizeof(dib), &dib) == sizeof(BITMAP)) color = ILC_COLOR;
|
||||
else color = dib.dsBm.bmBitsPixel;
|
||||
|
||||
/* To match windows behavior, if cx is set to zero and
|
||||
the flag DI_DEFAULTSIZE is specified, cx becomes the
|
||||
|
@ -1919,13 +1921,12 @@ ImageList_LoadImageW (HINSTANCE hi, LPCWSTR lpbmp, INT cx, INT cGrow,
|
|||
if (uFlags & DI_DEFAULTSIZE)
|
||||
cx = GetSystemMetrics (SM_CXICON);
|
||||
else
|
||||
cx = bmp.bmHeight;
|
||||
cx = dib.dsBm.bmHeight;
|
||||
}
|
||||
|
||||
nImageCount = bmp.bmWidth / cx;
|
||||
nImageCount = dib.dsBm.bmWidth / cx;
|
||||
|
||||
himl = ImageList_Create (cx, bmp.bmHeight, ILC_MASK | ILC_COLOR,
|
||||
nImageCount, cGrow);
|
||||
himl = ImageList_Create (cx, dib.dsBm.bmHeight, ILC_MASK | color, nImageCount, cGrow);
|
||||
if (!himl) {
|
||||
DeleteObject (handle);
|
||||
return NULL;
|
||||
|
@ -3298,11 +3299,8 @@ static HRESULT WINAPI ImageListImpl_Draw(IImageList *iface,
|
|||
IMAGELISTDRAWPARAMS *pimldp)
|
||||
{
|
||||
HIMAGELIST This = (HIMAGELIST) iface;
|
||||
HIMAGELIST old_himl = 0;
|
||||
int ret = 0;
|
||||
|
||||
if (!pimldp)
|
||||
return E_FAIL;
|
||||
HIMAGELIST old_himl;
|
||||
int ret;
|
||||
|
||||
/* As far as I can tell, Windows simply ignores the contents of pimldp->himl
|
||||
so we shall simulate the same */
|
||||
|
@ -3312,12 +3310,12 @@ static HRESULT WINAPI ImageListImpl_Draw(IImageList *iface,
|
|||
ret = ImageList_DrawIndirect(pimldp);
|
||||
|
||||
pimldp->himl = old_himl;
|
||||
return ret ? S_OK : E_FAIL;
|
||||
return ret ? S_OK : E_INVALIDARG;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ImageListImpl_Remove(IImageList *iface, int i)
|
||||
{
|
||||
return (ImageList_Remove((HIMAGELIST) iface, i) == 0) ? E_FAIL : S_OK;
|
||||
return (ImageList_Remove((HIMAGELIST) iface, i) == 0) ? E_INVALIDARG : S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ImageListImpl_GetIcon(IImageList *iface, int i, UINT flags,
|
||||
|
@ -3368,15 +3366,14 @@ static HRESULT WINAPI ImageListImpl_Copy(IImageList *iface, int iDst,
|
|||
}
|
||||
|
||||
static HRESULT WINAPI ImageListImpl_Merge(IImageList *iface, int i1,
|
||||
IUnknown *punk2, int i2, int dx, int dy, REFIID riid, PVOID *ppv)
|
||||
IUnknown *punk2, int i2, int dx, int dy, REFIID riid, void **ppv)
|
||||
{
|
||||
HIMAGELIST This = (HIMAGELIST) iface;
|
||||
IImageList *iml2 = NULL;
|
||||
HIMAGELIST hNew;
|
||||
HRESULT ret = E_FAIL;
|
||||
|
||||
if (!punk2 || !ppv)
|
||||
return E_FAIL;
|
||||
TRACE("(%p)->(%d %p %d %d %d %s %p)\n", iface, i1, punk2, i2, dx, dy, debugstr_guid(riid), ppv);
|
||||
|
||||
/* TODO: Add test for IID_ImageList2 too */
|
||||
if (FAILED(IImageList_QueryInterface(punk2, &IID_IImageList,
|
||||
|
@ -3387,27 +3384,35 @@ static HRESULT WINAPI ImageListImpl_Merge(IImageList *iface, int i1,
|
|||
|
||||
/* Get the interface for the new image list */
|
||||
if (hNew)
|
||||
{
|
||||
IImageList *imerge = (IImageList*)hNew;
|
||||
|
||||
ret = HIMAGELIST_QueryInterface(hNew, riid, ppv);
|
||||
IImageList_Release(imerge);
|
||||
}
|
||||
|
||||
IImageList_Release(iml2);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ImageListImpl_Clone(IImageList *iface, REFIID riid,
|
||||
PVOID *ppv)
|
||||
static HRESULT WINAPI ImageListImpl_Clone(IImageList *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
HIMAGELIST This = (HIMAGELIST) iface;
|
||||
HIMAGELIST hNew;
|
||||
HIMAGELIST clone;
|
||||
HRESULT ret = E_FAIL;
|
||||
|
||||
if (!ppv)
|
||||
return E_FAIL;
|
||||
TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv);
|
||||
|
||||
hNew = ImageList_Duplicate(This);
|
||||
clone = ImageList_Duplicate(This);
|
||||
|
||||
/* Get the interface for the new image list */
|
||||
if (hNew)
|
||||
ret = HIMAGELIST_QueryInterface(hNew, riid, ppv);
|
||||
if (clone)
|
||||
{
|
||||
IImageList *iclone = (IImageList*)clone;
|
||||
|
||||
ret = HIMAGELIST_QueryInterface(clone, riid, ppv);
|
||||
IImageList_Release(iclone);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -3432,7 +3437,7 @@ static HRESULT WINAPI ImageListImpl_GetIconSize(IImageList *iface, int *cx,
|
|||
{
|
||||
HIMAGELIST This = (HIMAGELIST) iface;
|
||||
|
||||
return ImageList_GetIconSize(This, cx, cy) ? S_OK : E_FAIL;
|
||||
return ImageList_GetIconSize(This, cx, cy) ? S_OK : E_INVALIDARG;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ImageListImpl_SetIconSize(IImageList *iface, int cx,
|
||||
|
@ -3443,9 +3448,6 @@ static HRESULT WINAPI ImageListImpl_SetIconSize(IImageList *iface, int cx,
|
|||
|
||||
static HRESULT WINAPI ImageListImpl_GetImageCount(IImageList *iface, int *pi)
|
||||
{
|
||||
if (!pi)
|
||||
return E_FAIL;
|
||||
|
||||
*pi = ImageList_GetImageCount((HIMAGELIST) iface);
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -3459,18 +3461,12 @@ static HRESULT WINAPI ImageListImpl_SetImageCount(IImageList *iface,
|
|||
static HRESULT WINAPI ImageListImpl_SetBkColor(IImageList *iface, COLORREF clrBk,
|
||||
COLORREF *pclr)
|
||||
{
|
||||
if (!pclr)
|
||||
return E_FAIL;
|
||||
|
||||
*pclr = ImageList_SetBkColor((HIMAGELIST) iface, clrBk);
|
||||
return *pclr == CLR_NONE ? E_FAIL : S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ImageListImpl_GetBkColor(IImageList *iface, COLORREF *pclr)
|
||||
{
|
||||
if (!pclr)
|
||||
return E_FAIL;
|
||||
|
||||
*pclr = ImageList_GetBkColor((HIMAGELIST) iface);
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -3543,7 +3539,12 @@ static HRESULT WINAPI ImageListImpl_GetDragImage(IImageList *iface, POINT *ppt,
|
|||
|
||||
/* Get the interface for the new image list */
|
||||
if (hNew)
|
||||
{
|
||||
IImageList *idrag = (IImageList*)hNew;
|
||||
|
||||
ret = HIMAGELIST_QueryInterface(hNew, riid, ppv);
|
||||
IImageList_Release(idrag);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -3650,11 +3651,9 @@ static HRESULT ImageListImpl_CreateInstance(const IUnknown *pUnkOuter, REFIID ii
|
|||
|
||||
if (pUnkOuter) return CLASS_E_NOAGGREGATION;
|
||||
|
||||
This = HeapAlloc(GetProcessHeap(), 0, sizeof(struct _IMAGELIST));
|
||||
This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct _IMAGELIST));
|
||||
if (!This) return E_OUTOFMEMORY;
|
||||
|
||||
ZeroMemory(This, sizeof(struct _IMAGELIST));
|
||||
|
||||
This->lpVtbl = &ImageListImpl_Vtbl;
|
||||
This->ref = 1;
|
||||
|
||||
|
|
|
@ -149,7 +149,6 @@ static LRESULT IPADDRESS_Draw (const IPADDRESS_INFO *infoPtr, HDC hdc)
|
|||
{
|
||||
static const WCHAR dotW[] = { '.', 0 };
|
||||
RECT rect, rcPart;
|
||||
POINT pt;
|
||||
COLORREF bgCol, fgCol;
|
||||
int i;
|
||||
|
||||
|
@ -173,13 +172,11 @@ static LRESULT IPADDRESS_Draw (const IPADDRESS_INFO *infoPtr, HDC hdc)
|
|||
|
||||
for (i = 0; i < 3; i++) {
|
||||
GetWindowRect (infoPtr->Part[i].EditHwnd, &rcPart);
|
||||
pt.x = rcPart.right;
|
||||
ScreenToClient(infoPtr->Self, &pt);
|
||||
rect.left = pt.x;
|
||||
MapWindowPoints( 0, infoPtr->Self, (POINT *)&rcPart, 2 );
|
||||
rect.left = rcPart.right;
|
||||
GetWindowRect (infoPtr->Part[i+1].EditHwnd, &rcPart);
|
||||
pt.x = rcPart.left;
|
||||
ScreenToClient(infoPtr->Self, &pt);
|
||||
rect.right = pt.x;
|
||||
MapWindowPoints( 0, infoPtr->Self, (POINT *)&rcPart, 2 );
|
||||
rect.right = rcPart.left;
|
||||
DrawTextW(hdc, dotW, 1, &rect, DT_SINGLELINE | DT_CENTER | DT_BOTTOM);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Copyright 2000 Jason Mawdsley
|
||||
* Copyright 2001 CodeWeavers Inc.
|
||||
* Copyright 2002 Dimitrie O. Paun
|
||||
* Copyright 2009 Nikolay Sivov
|
||||
* Copyright 2009-2011 Nikolay Sivov
|
||||
* Copyright 2009 Owen Rudge for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
|
@ -456,8 +456,8 @@ static INT LISTVIEW_GetStringWidthT(const LISTVIEW_INFO *, LPCWSTR, BOOL);
|
|||
static BOOL LISTVIEW_KeySelection(LISTVIEW_INFO *, INT, BOOL);
|
||||
static UINT LISTVIEW_GetItemState(const LISTVIEW_INFO *, INT, UINT);
|
||||
static BOOL LISTVIEW_SetItemState(LISTVIEW_INFO *, INT, const LVITEMW *);
|
||||
static LRESULT LISTVIEW_VScroll(LISTVIEW_INFO *, INT, INT, HWND);
|
||||
static LRESULT LISTVIEW_HScroll(LISTVIEW_INFO *, INT, INT, HWND);
|
||||
static LRESULT LISTVIEW_VScroll(LISTVIEW_INFO *, INT, INT);
|
||||
static LRESULT LISTVIEW_HScroll(LISTVIEW_INFO *, INT, INT);
|
||||
static BOOL LISTVIEW_EnsureVisible(LISTVIEW_INFO *, INT, BOOL);
|
||||
static HIMAGELIST LISTVIEW_SetImageList(LISTVIEW_INFO *, INT, HIMAGELIST);
|
||||
static INT LISTVIEW_HitTest(const LISTVIEW_INFO *, LPLVHITTESTINFO, BOOL, BOOL);
|
||||
|
@ -474,20 +474,14 @@ static BOOL LISTVIEW_Scroll(LISTVIEW_INFO *, INT, INT);
|
|||
* W: Unicode, T: ANSI/Unicode - function of isW
|
||||
*/
|
||||
|
||||
static inline BOOL is_textW(LPCWSTR text)
|
||||
static inline BOOL is_text(LPCWSTR text)
|
||||
{
|
||||
return text != NULL && text != LPSTR_TEXTCALLBACKW;
|
||||
}
|
||||
|
||||
static inline BOOL is_textT(LPCWSTR text, BOOL isW)
|
||||
{
|
||||
/* we can ignore isW since LPSTR_TEXTCALLBACKW == LPSTR_TEXTCALLBACKA */
|
||||
return is_textW(text);
|
||||
}
|
||||
|
||||
static inline int textlenT(LPCWSTR text, BOOL isW)
|
||||
{
|
||||
return !is_textT(text, isW) ? 0 :
|
||||
return !is_text(text) ? 0 :
|
||||
isW ? lstrlenW(text) : lstrlenA((LPCSTR)text);
|
||||
}
|
||||
|
||||
|
@ -505,7 +499,7 @@ static inline LPWSTR textdupTtoW(LPCWSTR text, BOOL isW)
|
|||
{
|
||||
LPWSTR wstr = (LPWSTR)text;
|
||||
|
||||
if (!isW && is_textT(text, isW))
|
||||
if (!isW && is_text(text))
|
||||
{
|
||||
INT len = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)text, -1, NULL, 0);
|
||||
wstr = Alloc(len * sizeof(WCHAR));
|
||||
|
@ -517,7 +511,7 @@ static inline LPWSTR textdupTtoW(LPCWSTR text, BOOL isW)
|
|||
|
||||
static inline void textfreeT(LPWSTR wstr, BOOL isW)
|
||||
{
|
||||
if (!isW && is_textT(wstr, isW)) Free (wstr);
|
||||
if (!isW && is_text(wstr)) Free (wstr);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -530,7 +524,7 @@ static BOOL textsetptrT(LPWSTR *dest, LPCWSTR src, BOOL isW)
|
|||
|
||||
if (src == LPSTR_TEXTCALLBACKW)
|
||||
{
|
||||
if (is_textW(*dest)) Free(*dest);
|
||||
if (is_text(*dest)) Free(*dest);
|
||||
*dest = LPSTR_TEXTCALLBACKW;
|
||||
}
|
||||
else
|
||||
|
@ -623,7 +617,7 @@ static const char* debugscrollinfo(const SCROLLINFO *pScrollInfo)
|
|||
if (pScrollInfo->fMask & SIF_TRACKPOS)
|
||||
len = snprintf(buf, size, "nTrackPos=%d, ", pScrollInfo->nTrackPos);
|
||||
else len = 0;
|
||||
if (len == -1) goto end; buf += len; size -= len;
|
||||
if (len == -1) goto end; buf += len;
|
||||
goto undo;
|
||||
end:
|
||||
buf = text + strlen(text);
|
||||
|
@ -668,7 +662,7 @@ static const char* debuglvitem_t(const LVITEMW *lpLVItem, BOOL isW)
|
|||
if (lpLVItem->mask & LVIF_INDENT)
|
||||
len = snprintf(buf, size, "iIndent=%d, ", lpLVItem->iIndent);
|
||||
else len = 0;
|
||||
if (len == -1) goto end; buf += len; size -= len;
|
||||
if (len == -1) goto end; buf += len;
|
||||
goto undo;
|
||||
end:
|
||||
buf = text + strlen(text);
|
||||
|
@ -708,7 +702,7 @@ static const char* debuglvcolumn_t(const LVCOLUMNW *lpColumn, BOOL isW)
|
|||
if (lpColumn->mask & LVCF_ORDER)
|
||||
len = snprintf(buf, size, "iOrder=%d, ", lpColumn->iOrder);
|
||||
else len = 0;
|
||||
if (len == -1) goto end; buf += len; size -= len;
|
||||
if (len == -1) goto end; buf += len;
|
||||
goto undo;
|
||||
end:
|
||||
buf = text + strlen(text);
|
||||
|
@ -934,74 +928,104 @@ static BOOL notify_deleteitem(const LISTVIEW_INFO *infoPtr, INT nItem)
|
|||
Send notification. depends on dispinfoW having same
|
||||
structure as dispinfoA.
|
||||
infoPtr : listview struct
|
||||
notificationCode : *Unicode* notification code
|
||||
code : *Unicode* notification code
|
||||
pdi : dispinfo structure (can be unicode or ansi)
|
||||
isW : TRUE if dispinfo is Unicode
|
||||
*/
|
||||
static BOOL notify_dispinfoT(const LISTVIEW_INFO *infoPtr, UINT notificationCode, LPNMLVDISPINFOW pdi, BOOL isW)
|
||||
static BOOL notify_dispinfoT(const LISTVIEW_INFO *infoPtr, UINT code, LPNMLVDISPINFOW pdi, BOOL isW)
|
||||
{
|
||||
BOOL bResult = FALSE;
|
||||
BOOL convertToAnsi = FALSE, convertToUnicode = FALSE;
|
||||
INT cchTempBufMax = 0, savCchTextMax = 0;
|
||||
UINT realNotifCode;
|
||||
LPWSTR pszTempBuf = NULL, savPszText = NULL;
|
||||
INT length = 0, ret_length;
|
||||
LPWSTR buffer = NULL, ret_text;
|
||||
BOOL return_ansi = FALSE;
|
||||
BOOL return_unicode = FALSE;
|
||||
BOOL ret;
|
||||
|
||||
if ((pdi->item.mask & LVIF_TEXT) && is_textT(pdi->item.pszText, isW))
|
||||
if ((pdi->item.mask & LVIF_TEXT) && is_text(pdi->item.pszText))
|
||||
{
|
||||
convertToAnsi = (isW && infoPtr->notifyFormat == NFR_ANSI);
|
||||
convertToUnicode = (!isW && infoPtr->notifyFormat == NFR_UNICODE);
|
||||
return_unicode = ( isW && infoPtr->notifyFormat == NFR_ANSI);
|
||||
return_ansi = (!isW && infoPtr->notifyFormat == NFR_UNICODE);
|
||||
}
|
||||
|
||||
if (convertToAnsi || convertToUnicode)
|
||||
ret_length = pdi->item.cchTextMax;
|
||||
ret_text = pdi->item.pszText;
|
||||
|
||||
if (return_unicode || return_ansi)
|
||||
{
|
||||
if (notificationCode != LVN_GETDISPINFOW)
|
||||
{
|
||||
cchTempBufMax = convertToUnicode ?
|
||||
if (code != LVN_GETDISPINFOW)
|
||||
{
|
||||
length = return_ansi ?
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pdi->item.pszText, -1, NULL, 0):
|
||||
WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, NULL, 0, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
cchTempBufMax = pdi->item.cchTextMax;
|
||||
*pdi->item.pszText = 0; /* make sure we don't process garbage */
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
length = pdi->item.cchTextMax;
|
||||
*pdi->item.pszText = 0; /* make sure we don't process garbage */
|
||||
}
|
||||
|
||||
pszTempBuf = Alloc( (convertToUnicode ? sizeof(WCHAR) : sizeof(CHAR)) * cchTempBufMax);
|
||||
if (!pszTempBuf) return FALSE;
|
||||
buffer = Alloc( (return_ansi ? sizeof(WCHAR) : sizeof(CHAR)) * length);
|
||||
if (!buffer) return FALSE;
|
||||
|
||||
if (convertToUnicode)
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pdi->item.pszText, -1,
|
||||
pszTempBuf, cchTempBufMax);
|
||||
else
|
||||
WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, (LPSTR) pszTempBuf,
|
||||
cchTempBufMax, NULL, NULL);
|
||||
if (return_ansi)
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pdi->item.pszText, -1,
|
||||
buffer, length);
|
||||
else
|
||||
WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, (LPSTR) buffer,
|
||||
length, NULL, NULL);
|
||||
|
||||
savCchTextMax = pdi->item.cchTextMax;
|
||||
savPszText = pdi->item.pszText;
|
||||
pdi->item.pszText = pszTempBuf;
|
||||
pdi->item.cchTextMax = cchTempBufMax;
|
||||
pdi->item.pszText = buffer;
|
||||
pdi->item.cchTextMax = length;
|
||||
}
|
||||
|
||||
if (infoPtr->notifyFormat == NFR_ANSI)
|
||||
realNotifCode = get_ansi_notification(notificationCode);
|
||||
else
|
||||
realNotifCode = notificationCode;
|
||||
TRACE(" pdi->item=%s\n", debuglvitem_t(&pdi->item, infoPtr->notifyFormat != NFR_ANSI));
|
||||
bResult = notify_hdr(infoPtr, realNotifCode, &pdi->hdr);
|
||||
code = get_ansi_notification(code);
|
||||
|
||||
if (convertToUnicode || convertToAnsi)
|
||||
TRACE(" pdi->item=%s\n", debuglvitem_t(&pdi->item, infoPtr->notifyFormat != NFR_ANSI));
|
||||
ret = notify_hdr(infoPtr, code, &pdi->hdr);
|
||||
TRACE(" resulting code=%d\n", pdi->hdr.code);
|
||||
|
||||
if (return_ansi || return_unicode)
|
||||
{
|
||||
if (convertToUnicode) /* note : pointer can be changed by app ! */
|
||||
WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, (LPSTR) savPszText,
|
||||
savCchTextMax, NULL, NULL);
|
||||
else
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPSTR) pdi->item.pszText, -1,
|
||||
savPszText, savCchTextMax);
|
||||
pdi->item.pszText = savPszText; /* restores our buffer */
|
||||
pdi->item.cchTextMax = savCchTextMax;
|
||||
Free (pszTempBuf);
|
||||
if (return_ansi && (pdi->hdr.code == LVN_GETDISPINFOA))
|
||||
{
|
||||
strcpy((char*)ret_text, (char*)pdi->item.pszText);
|
||||
}
|
||||
else if (return_unicode && (pdi->hdr.code == LVN_GETDISPINFOW))
|
||||
{
|
||||
strcpyW(ret_text, pdi->item.pszText);
|
||||
}
|
||||
else if (return_ansi) /* note : pointer can be changed by app ! */
|
||||
{
|
||||
WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, (LPSTR) ret_text,
|
||||
ret_length, NULL, NULL);
|
||||
}
|
||||
else
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPSTR) pdi->item.pszText, -1,
|
||||
ret_text, ret_length);
|
||||
|
||||
pdi->item.pszText = ret_text; /* restores our buffer */
|
||||
pdi->item.cchTextMax = ret_length;
|
||||
|
||||
Free(buffer);
|
||||
return ret;
|
||||
}
|
||||
return bResult;
|
||||
|
||||
/* if dipsinfo holder changed notification code then convert */
|
||||
if (!isW && (pdi->hdr.code == LVN_GETDISPINFOW) && (pdi->item.mask & LVIF_TEXT))
|
||||
{
|
||||
length = WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, NULL, 0, NULL, NULL);
|
||||
|
||||
buffer = Alloc(length * sizeof(CHAR));
|
||||
if (!buffer) return FALSE;
|
||||
|
||||
WideCharToMultiByte(CP_ACP, 0, pdi->item.pszText, -1, (LPSTR) buffer,
|
||||
ret_length, NULL, NULL);
|
||||
|
||||
strcpy((LPSTR)pdi->item.pszText, (LPSTR)buffer);
|
||||
Free(buffer);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void customdraw_fill(NMLVCUSTOMDRAW *lpnmlvcd, const LISTVIEW_INFO *infoPtr, HDC hdc,
|
||||
|
@ -1789,8 +1813,6 @@ static INT LISTVIEW_ProcessLetterKeys(LISTVIEW_INFO *infoPtr, WPARAM charCode, L
|
|||
infoPtr->charCode = charCode;
|
||||
infoPtr->szSearchParam[0] = charCode;
|
||||
infoPtr->nSearchParamLength = 1;
|
||||
/* redundant with the 1 char string */
|
||||
charCode = 0;
|
||||
}
|
||||
|
||||
/* and search from the current position */
|
||||
|
@ -1855,8 +1877,9 @@ static INT LISTVIEW_ProcessLetterKeys(LISTVIEW_INFO *infoPtr, WPARAM charCode, L
|
|||
}
|
||||
}
|
||||
|
||||
/* found something or second search completed with any result */
|
||||
if (nItem != -1 || endidx != infoPtr->nItemCount)
|
||||
if ( nItem != -1 || /* found something */
|
||||
endidx != infoPtr->nItemCount || /* second search done */
|
||||
(startidx == 0 && endidx == infoPtr->nItemCount) /* full range for first search */ )
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
@ -2325,7 +2348,7 @@ static void LISTVIEW_GetItemMetrics(const LISTVIEW_INFO *infoPtr, const LVITEMW
|
|||
|
||||
/* we need the text in non owner draw mode */
|
||||
assert(lpLVItem->mask & LVIF_TEXT);
|
||||
if (is_textT(lpLVItem->pszText, TRUE))
|
||||
if (is_text(lpLVItem->pszText))
|
||||
{
|
||||
HFONT hFont = infoPtr->hFont ? infoPtr->hFont : infoPtr->hDefaultFont;
|
||||
HDC hdc = GetDC(infoPtr->hwndSelf);
|
||||
|
@ -3231,7 +3254,7 @@ static BOOL ranges_del(RANGES ranges, RANGE range)
|
|||
/* case 5: fully internal */
|
||||
else
|
||||
{
|
||||
RANGE tmprgn = *chkrgn, *newrgn;
|
||||
RANGE *newrgn;
|
||||
|
||||
if (!(newrgn = Alloc(sizeof(RANGE)))) goto fail;
|
||||
newrgn->lower = chkrgn->lower;
|
||||
|
@ -3242,7 +3265,6 @@ static BOOL ranges_del(RANGES ranges, RANGE range)
|
|||
Free(newrgn);
|
||||
goto fail;
|
||||
}
|
||||
chkrgn = &tmprgn;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -3704,7 +3726,9 @@ static LRESULT LISTVIEW_MouseHover(LISTVIEW_INFO *infoPtr, INT x, INT y)
|
|||
* RETURN:
|
||||
* None.
|
||||
*/
|
||||
static void LISTVIEW_MarqueeHighlight(LISTVIEW_INFO *infoPtr, LPPOINT coords_orig, LPPOINT coords_offs, LPPOINT offset, INT scroll)
|
||||
static void LISTVIEW_MarqueeHighlight(LISTVIEW_INFO *infoPtr, const POINT *coords_orig,
|
||||
const POINT *coords_offs, const POINT *offset,
|
||||
INT scroll)
|
||||
{
|
||||
BOOL controlDown = FALSE;
|
||||
LVITEMW item;
|
||||
|
@ -4318,7 +4342,7 @@ static BOOL LISTVIEW_SetItemT(LISTVIEW_INFO *infoPtr, LVITEMW *lpLVItem, BOOL is
|
|||
return FALSE;
|
||||
|
||||
/* For efficiency, we transform the lpLVItem->pszText to Unicode here */
|
||||
if ((lpLVItem->mask & LVIF_TEXT) && is_textW(lpLVItem->pszText))
|
||||
if ((lpLVItem->mask & LVIF_TEXT) && is_text(lpLVItem->pszText))
|
||||
{
|
||||
pszText = lpLVItem->pszText;
|
||||
lpLVItem->pszText = textdupTtoW(lpLVItem->pszText, isW);
|
||||
|
@ -5060,8 +5084,6 @@ enddraw:
|
|||
static DWORD LISTVIEW_ApproximateViewRect(const LISTVIEW_INFO *infoPtr, INT nItemCount,
|
||||
WORD wWidth, WORD wHeight)
|
||||
{
|
||||
INT nItemCountPerColumn = 1;
|
||||
INT nColumnCount = 0;
|
||||
DWORD dwViewRect = 0;
|
||||
|
||||
if (nItemCount == -1)
|
||||
|
@ -5069,6 +5091,9 @@ static DWORD LISTVIEW_ApproximateViewRect(const LISTVIEW_INFO *infoPtr, INT nIte
|
|||
|
||||
if (infoPtr->uView == LV_VIEW_LIST)
|
||||
{
|
||||
INT nItemCountPerColumn = 1;
|
||||
INT nColumnCount = 0;
|
||||
|
||||
if (wHeight == 0xFFFF)
|
||||
{
|
||||
/* use current height */
|
||||
|
@ -5129,9 +5154,6 @@ static DWORD LISTVIEW_ApproximateViewRect(const LISTVIEW_INFO *infoPtr, INT nIte
|
|||
nItemWidth = infoPtr->iconSpacing.cx;
|
||||
nItemHeight = infoPtr->iconSpacing.cy;
|
||||
|
||||
if (nItemCount == -1)
|
||||
nItemCount = infoPtr->nItemCount;
|
||||
|
||||
if (wWidth == 0xffff)
|
||||
wWidth = infoPtr->rcList.right - infoPtr->rcList.left;
|
||||
|
||||
|
@ -5307,7 +5329,7 @@ static BOOL LISTVIEW_DeleteAllItems(LISTVIEW_INFO *infoPtr, BOOL destroy)
|
|||
for (j = 0; j < DPA_GetPtrCount(hdpaSubItems); j++)
|
||||
{
|
||||
hdrItem = DPA_GetPtr(hdpaSubItems, j);
|
||||
if (is_textW(hdrItem->pszText)) Free(hdrItem->pszText);
|
||||
if (is_text(hdrItem->pszText)) Free(hdrItem->pszText);
|
||||
Free(hdrItem);
|
||||
}
|
||||
DPA_Destroy(hdpaSubItems);
|
||||
|
@ -5449,7 +5471,7 @@ static BOOL LISTVIEW_DeleteColumn(LISTVIEW_INFO *infoPtr, INT nColumn)
|
|||
if (nSubItem > 0)
|
||||
{
|
||||
/* free string */
|
||||
if (is_textW(lpDelItem->hdr.pszText))
|
||||
if (is_text(lpDelItem->hdr.pszText))
|
||||
Free(lpDelItem->hdr.pszText);
|
||||
|
||||
/* free item */
|
||||
|
@ -5598,7 +5620,7 @@ static BOOL LISTVIEW_DeleteItem(LISTVIEW_INFO *infoPtr, INT nItem)
|
|||
for (i = 0; i < DPA_GetPtrCount(hdpaSubItems); i++)
|
||||
{
|
||||
hdrItem = DPA_GetPtr(hdpaSubItems, i);
|
||||
if (is_textW(hdrItem->pszText)) Free(hdrItem->pszText);
|
||||
if (is_text(hdrItem->pszText)) Free(hdrItem->pszText);
|
||||
Free(hdrItem);
|
||||
}
|
||||
DPA_Destroy(hdpaSubItems);
|
||||
|
@ -5843,7 +5865,7 @@ static HWND CreateEditLabelT(LISTVIEW_INFO *infoPtr, LPCWSTR text, BOOL isW)
|
|||
|
||||
TRACE("(%p, text=%s, isW=%d)\n", infoPtr, debugtext_t(text, isW), isW);
|
||||
|
||||
/* Window will be resized and positioned after LVN_BEGINLABELEDIT */
|
||||
/* window will be resized and positioned after LVN_BEGINLABELEDIT */
|
||||
if (isW)
|
||||
hedit = CreateWindowW(WC_EDITW, text, style, 0, 0, 0, 0, infoPtr->hwndSelf, 0, hinst, 0);
|
||||
else
|
||||
|
@ -5875,21 +5897,21 @@ static HWND CreateEditLabelT(LISTVIEW_INFO *infoPtr, LPCWSTR text, BOOL isW)
|
|||
*/
|
||||
static HWND LISTVIEW_EditLabelT(LISTVIEW_INFO *infoPtr, INT nItem, BOOL isW)
|
||||
{
|
||||
WCHAR szDispText[DISP_TEXT_SIZE] = { 0 };
|
||||
WCHAR disptextW[DISP_TEXT_SIZE] = { 0 };
|
||||
HWND hwndSelf = infoPtr->hwndSelf;
|
||||
NMLVDISPINFOW dispInfo;
|
||||
HFONT hOldFont = NULL;
|
||||
TEXTMETRICW tm;
|
||||
RECT rect;
|
||||
SIZE sz;
|
||||
HWND hwndSelf = infoPtr->hwndSelf;
|
||||
HDC hdc;
|
||||
HFONT hOldFont = NULL;
|
||||
TEXTMETRICW textMetric;
|
||||
|
||||
TRACE("(nItem=%d, isW=%d)\n", nItem, isW);
|
||||
|
||||
if (~infoPtr->dwStyle & LVS_EDITLABELS) return 0;
|
||||
|
||||
/* Is the EditBox still there, if so remove it */
|
||||
if(infoPtr->hwndEdit != 0)
|
||||
/* remove existing edit box */
|
||||
if (infoPtr->hwndEdit)
|
||||
{
|
||||
SetFocus(infoPtr->hwndSelf);
|
||||
infoPtr->hwndEdit = 0;
|
||||
|
@ -5911,7 +5933,7 @@ static HWND LISTVIEW_EditLabelT(LISTVIEW_INFO *infoPtr, INT nItem, BOOL isW)
|
|||
dispInfo.item.iItem = nItem;
|
||||
dispInfo.item.iSubItem = 0;
|
||||
dispInfo.item.stateMask = ~0;
|
||||
dispInfo.item.pszText = szDispText;
|
||||
dispInfo.item.pszText = disptextW;
|
||||
dispInfo.item.cchTextMax = DISP_TEXT_SIZE;
|
||||
if (!LISTVIEW_GetItemT(infoPtr, &dispInfo.item, isW)) return 0;
|
||||
|
||||
|
@ -5927,27 +5949,36 @@ static HWND LISTVIEW_EditLabelT(LISTVIEW_INFO *infoPtr, INT nItem, BOOL isW)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Now position and display edit box */
|
||||
TRACE("disp text=%s\n", debugtext_t(dispInfo.item.pszText, isW));
|
||||
|
||||
/* position and display edit box */
|
||||
hdc = GetDC(infoPtr->hwndSelf);
|
||||
|
||||
/* Select the font to get appropriate metric dimensions */
|
||||
if(infoPtr->hFont != 0)
|
||||
/* select the font to get appropriate metric dimensions */
|
||||
if (infoPtr->hFont)
|
||||
hOldFont = SelectObject(hdc, infoPtr->hFont);
|
||||
|
||||
/* Get String Length in pixels */
|
||||
GetTextExtentPoint32W(hdc, dispInfo.item.pszText, lstrlenW(dispInfo.item.pszText), &sz);
|
||||
/* use real edit box content, it could be altered during LVN_BEGINLABELEDIT notification */
|
||||
GetWindowTextW(infoPtr->hwndEdit, disptextW, DISP_TEXT_SIZE);
|
||||
TRACE("edit box text=%s\n", debugstr_w(disptextW));
|
||||
|
||||
/* Add Extra spacing for the next character */
|
||||
GetTextMetricsW(hdc, &textMetric);
|
||||
sz.cx += (textMetric.tmMaxCharWidth * 2);
|
||||
/* get string length in pixels */
|
||||
GetTextExtentPoint32W(hdc, disptextW, lstrlenW(disptextW), &sz);
|
||||
|
||||
if(infoPtr->hFont != 0)
|
||||
/* add extra spacing for the next character */
|
||||
GetTextMetricsW(hdc, &tm);
|
||||
sz.cx += tm.tmMaxCharWidth * 2;
|
||||
|
||||
if (infoPtr->hFont)
|
||||
SelectObject(hdc, hOldFont);
|
||||
|
||||
ReleaseDC(infoPtr->hwndSelf, hdc);
|
||||
|
||||
MoveWindow(infoPtr->hwndEdit, rect.left - 2, rect.top - 1, sz.cx,
|
||||
rect.bottom - rect.top + 2, FALSE);
|
||||
sz.cy = rect.bottom - rect.top + 2;
|
||||
rect.left -= 2;
|
||||
rect.top -= 1;
|
||||
TRACE("moving edit=(%d,%d)-(%d,%d)\n", rect.left, rect.top, sz.cx, sz.cy);
|
||||
MoveWindow(infoPtr->hwndEdit, rect.left, rect.top, sz.cx, sz.cy, FALSE);
|
||||
ShowWindow(infoPtr->hwndEdit, SW_NORMAL);
|
||||
SetFocus(infoPtr->hwndEdit);
|
||||
SendMessageW(infoPtr->hwndEdit, EM_SETSEL, 0, -1);
|
||||
|
@ -6029,14 +6060,14 @@ static BOOL LISTVIEW_EnsureVisible(LISTVIEW_INFO *infoPtr, INT nItem, BOOL bPart
|
|||
{
|
||||
INT diff = nHorzDiff / nScrollPosWidth;
|
||||
if (nHorzDiff % nScrollPosWidth) diff += nHorzAdjust;
|
||||
LISTVIEW_HScroll(infoPtr, SB_INTERNAL, diff, 0);
|
||||
LISTVIEW_HScroll(infoPtr, SB_INTERNAL, diff);
|
||||
}
|
||||
|
||||
if (nScrollPosHeight)
|
||||
{
|
||||
INT diff = nVertDiff / nScrollPosHeight;
|
||||
if (nVertDiff % nScrollPosHeight) diff += nVertAdjust;
|
||||
LISTVIEW_VScroll(infoPtr, SB_INTERNAL, diff, 0);
|
||||
LISTVIEW_VScroll(infoPtr, SB_INTERNAL, diff);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -6077,7 +6108,7 @@ static INT LISTVIEW_FindItemW(const LISTVIEW_INFO *infoPtr, INT nStart,
|
|||
}
|
||||
|
||||
if (!lpFindInfo || nItem < 0) return -1;
|
||||
|
||||
|
||||
lvItem.mask = 0;
|
||||
if (lpFindInfo->flags & (LVFI_STRING | LVFI_PARTIAL) ||
|
||||
lpFindInfo->flags & LVFI_SUBSTRING)
|
||||
|
@ -6214,24 +6245,6 @@ static INT LISTVIEW_FindItemA(const LISTVIEW_INFO *infoPtr, INT nStart,
|
|||
return res;
|
||||
}
|
||||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Retrieves the background image of the listview control.
|
||||
*
|
||||
* PARAMETER(S):
|
||||
* [I] infoPtr : valid pointer to the listview structure
|
||||
* [O] lpBkImage : background image attributes
|
||||
*
|
||||
* RETURN:
|
||||
* SUCCESS : TRUE
|
||||
* FAILURE : FALSE
|
||||
*/
|
||||
/* static BOOL LISTVIEW_GetBkImage(const LISTVIEW_INFO *infoPtr, LPLVBKIMAGE lpBkImage) */
|
||||
/* { */
|
||||
/* FIXME (listview, "empty stub!\n"); */
|
||||
/* return FALSE; */
|
||||
/* } */
|
||||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Retrieves column attributes.
|
||||
|
@ -6454,6 +6467,7 @@ static BOOL LISTVIEW_GetItemT(const LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem,
|
|||
return FALSE;
|
||||
|
||||
if (lpLVItem->mask == 0) return TRUE;
|
||||
TRACE("mask=%x\n", lpLVItem->mask);
|
||||
|
||||
/* make a local copy */
|
||||
isubitem = lpLVItem->iSubItem;
|
||||
|
@ -6502,7 +6516,7 @@ static BOOL LISTVIEW_GetItemT(const LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem,
|
|||
if (lpLVItem->mask & LVIF_STATE)
|
||||
dispInfo.item.stateMask = lpLVItem->stateMask & infoPtr->uCallbackMask;
|
||||
/* could be zeroed on LVIF_NORECOMPUTE case */
|
||||
if (dispInfo.item.mask != 0)
|
||||
if (dispInfo.item.mask)
|
||||
{
|
||||
notify_dispinfoT(infoPtr, LVN_GETDISPINFOW, &dispInfo, isW);
|
||||
dispInfo.item.stateMask = lpLVItem->stateMask;
|
||||
|
@ -6598,7 +6612,7 @@ static BOOL LISTVIEW_GetItemT(const LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem,
|
|||
|
||||
/* Apps depend on calling back for text if it is NULL or LPSTR_TEXTCALLBACKW */
|
||||
if ((lpLVItem->mask & LVIF_TEXT) && !(lpLVItem->mask & LVIF_NORECOMPUTE) &&
|
||||
!is_textW(pItemHdr->pszText))
|
||||
!is_text(pItemHdr->pszText))
|
||||
{
|
||||
dispInfo.item.mask |= LVIF_TEXT;
|
||||
dispInfo.item.pszText = lpLVItem->pszText;
|
||||
|
@ -6608,7 +6622,7 @@ static BOOL LISTVIEW_GetItemT(const LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem,
|
|||
}
|
||||
|
||||
/* If we don't have all the requested info, query the application */
|
||||
if (dispInfo.item.mask != 0)
|
||||
if (dispInfo.item.mask)
|
||||
{
|
||||
dispInfo.item.iItem = lpLVItem->iItem;
|
||||
dispInfo.item.iSubItem = lpLVItem->iSubItem; /* yes: the original subitem */
|
||||
|
@ -6646,7 +6660,7 @@ static BOOL LISTVIEW_GetItemT(const LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem,
|
|||
else if (lpLVItem->mask & LVIF_TEXT)
|
||||
{
|
||||
/* if LVN_GETDISPINFO's disabled with LVIF_NORECOMPUTE return callback placeholder */
|
||||
if (isW || !is_textW(pItemHdr->pszText)) lpLVItem->pszText = pItemHdr->pszText;
|
||||
if (isW || !is_text(pItemHdr->pszText)) lpLVItem->pszText = pItemHdr->pszText;
|
||||
else textcpynT(lpLVItem->pszText, isW, pItemHdr->pszText, TRUE, lpLVItem->cchTextMax);
|
||||
}
|
||||
|
||||
|
@ -7353,7 +7367,7 @@ static INT LISTVIEW_GetStringWidthT(const LISTVIEW_INFO *infoPtr, LPCWSTR lpszTe
|
|||
SIZE stringSize;
|
||||
|
||||
stringSize.cx = 0;
|
||||
if (is_textT(lpszText, isW))
|
||||
if (is_text(lpszText))
|
||||
{
|
||||
HFONT hFont = infoPtr->hFont ? infoPtr->hFont : infoPtr->hDefaultFont;
|
||||
HDC hdc = GetDC(infoPtr->hwndSelf);
|
||||
|
@ -7818,8 +7832,8 @@ static BOOL LISTVIEW_Scroll(LISTVIEW_INFO *infoPtr, INT dx, INT dy)
|
|||
break;
|
||||
}
|
||||
|
||||
if (dx != 0) LISTVIEW_HScroll(infoPtr, SB_INTERNAL, dx, 0);
|
||||
if (dy != 0) LISTVIEW_VScroll(infoPtr, SB_INTERNAL, dy, 0);
|
||||
if (dx != 0) LISTVIEW_HScroll(infoPtr, SB_INTERNAL, dx);
|
||||
if (dy != 0) LISTVIEW_VScroll(infoPtr, SB_INTERNAL, dy);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -8677,7 +8691,7 @@ static BOOL LISTVIEW_SetItemCount(LISTVIEW_INFO *infoPtr, INT nItems, DWORD dwFl
|
|||
* SUCCESS : TRUE
|
||||
* FAILURE : FALSE
|
||||
*/
|
||||
static BOOL LISTVIEW_SetItemPosition(LISTVIEW_INFO *infoPtr, INT nItem, POINT *pt)
|
||||
static BOOL LISTVIEW_SetItemPosition(LISTVIEW_INFO *infoPtr, INT nItem, const POINT *pt)
|
||||
{
|
||||
POINT Origin, Pt;
|
||||
|
||||
|
@ -8883,10 +8897,10 @@ static HWND LISTVIEW_SetToolTips( LISTVIEW_INFO *infoPtr, HWND hwndNewToolTip)
|
|||
* RETURN:
|
||||
* Old Unicode Format
|
||||
*/
|
||||
static BOOL LISTVIEW_SetUnicodeFormat( LISTVIEW_INFO *infoPtr, BOOL fUnicode)
|
||||
static BOOL LISTVIEW_SetUnicodeFormat( LISTVIEW_INFO *infoPtr, BOOL unicode)
|
||||
{
|
||||
SHORT rc = infoPtr->notifyFormat;
|
||||
infoPtr->notifyFormat = (fUnicode) ? NFR_UNICODE : NFR_ANSI;
|
||||
infoPtr->notifyFormat = (unicode) ? NFR_UNICODE : NFR_ANSI;
|
||||
return rc == NFR_UNICODE;
|
||||
}
|
||||
|
||||
|
@ -9304,6 +9318,7 @@ static LRESULT LISTVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs)
|
|||
(WPARAM)infoPtr->hwndSelf, NF_QUERY);
|
||||
/* on error defaulting to ANSI notifications */
|
||||
if (infoPtr->notifyFormat == 0) infoPtr->notifyFormat = NFR_ANSI;
|
||||
TRACE("notify format=%d\n", infoPtr->notifyFormat);
|
||||
|
||||
if ((infoPtr->uView == LV_VIEW_DETAILS) && (lpcs->style & WS_VISIBLE))
|
||||
{
|
||||
|
@ -9452,7 +9467,7 @@ static void scroll_list(LISTVIEW_INFO *infoPtr, INT dx, INT dy)
|
|||
*
|
||||
*/
|
||||
static LRESULT LISTVIEW_VScroll(LISTVIEW_INFO *infoPtr, INT nScrollCode,
|
||||
INT nScrollDiff, HWND hScrollWnd)
|
||||
INT nScrollDiff)
|
||||
{
|
||||
INT nOldScrollPos, nNewScrollPos;
|
||||
SCROLLINFO scrollInfo;
|
||||
|
@ -9556,7 +9571,7 @@ static LRESULT LISTVIEW_VScroll(LISTVIEW_INFO *infoPtr, INT nScrollCode,
|
|||
*
|
||||
*/
|
||||
static LRESULT LISTVIEW_HScroll(LISTVIEW_INFO *infoPtr, INT nScrollCode,
|
||||
INT nScrollDiff, HWND hScrollWnd)
|
||||
INT nScrollDiff)
|
||||
{
|
||||
INT nOldScrollPos, nNewScrollPos;
|
||||
SCROLLINFO scrollInfo;
|
||||
|
@ -9657,7 +9672,7 @@ static LRESULT LISTVIEW_MouseWheel(LISTVIEW_INFO *infoPtr, INT wheelDelta)
|
|||
* should be fixed in the future.
|
||||
*/
|
||||
LISTVIEW_VScroll(infoPtr, SB_INTERNAL, (gcWheelDelta < 0) ?
|
||||
-LISTVIEW_SCROLL_ICON_LINE_SIZE : LISTVIEW_SCROLL_ICON_LINE_SIZE, 0);
|
||||
-LISTVIEW_SCROLL_ICON_LINE_SIZE : LISTVIEW_SCROLL_ICON_LINE_SIZE);
|
||||
break;
|
||||
|
||||
case LV_VIEW_DETAILS:
|
||||
|
@ -9665,12 +9680,12 @@ static LRESULT LISTVIEW_MouseWheel(LISTVIEW_INFO *infoPtr, INT wheelDelta)
|
|||
{
|
||||
int cLineScroll = min(LISTVIEW_GetCountPerColumn(infoPtr), pulScrollLines);
|
||||
cLineScroll *= (gcWheelDelta / WHEEL_DELTA);
|
||||
LISTVIEW_VScroll(infoPtr, SB_INTERNAL, cLineScroll, 0);
|
||||
LISTVIEW_VScroll(infoPtr, SB_INTERNAL, cLineScroll);
|
||||
}
|
||||
break;
|
||||
|
||||
case LV_VIEW_LIST:
|
||||
LISTVIEW_HScroll(infoPtr, (gcWheelDelta < 0) ? SB_LINELEFT : SB_LINERIGHT, 0, 0);
|
||||
LISTVIEW_HScroll(infoPtr, (gcWheelDelta < 0) ? SB_LINELEFT : SB_LINERIGHT, 0);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -9845,7 +9860,7 @@ static LRESULT LISTVIEW_LButtonDblClk(LISTVIEW_INFO *infoPtr, WORD wKey, INT x,
|
|||
{
|
||||
LVHITTESTINFO htInfo;
|
||||
|
||||
TRACE("(key=%hu, X=%hu, Y=%hu)\n", wKey, x, y);
|
||||
TRACE("(key=%hu, X=%u, Y=%u)\n", wKey, x, y);
|
||||
|
||||
/* Cancel the item edition if any */
|
||||
if (infoPtr->itemEdit.fEnabled)
|
||||
|
@ -9889,7 +9904,7 @@ static LRESULT LISTVIEW_LButtonDown(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, IN
|
|||
POINT pt = { x, y };
|
||||
INT nItem;
|
||||
|
||||
TRACE("(key=%hu, X=%hu, Y=%hu)\n", wKey, x, y);
|
||||
TRACE("(key=%hu, X=%u, Y=%u)\n", wKey, x, y);
|
||||
|
||||
/* send NM_RELEASEDCAPTURE notification */
|
||||
if (!notify(infoPtr, NM_RELEASEDCAPTURE)) return 0;
|
||||
|
@ -10005,7 +10020,7 @@ static LRESULT LISTVIEW_LButtonUp(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, INT
|
|||
{
|
||||
LVHITTESTINFO lvHitTestInfo;
|
||||
|
||||
TRACE("(key=%hu, X=%hu, Y=%hu)\n", wKey, x, y);
|
||||
TRACE("(key=%hu, X=%u, Y=%u)\n", wKey, x, y);
|
||||
|
||||
if (!infoPtr->bLButtonDown) return 0;
|
||||
|
||||
|
@ -10114,26 +10129,32 @@ static LRESULT LISTVIEW_NCDestroy(LISTVIEW_INFO *infoPtr)
|
|||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Handles notifications from header.
|
||||
* Handles notifications.
|
||||
*
|
||||
* PARAMETER(S):
|
||||
* [I] infoPtr : valid pointer to the listview structure
|
||||
* [I] nCtrlId : control identifier
|
||||
* [I] lpnmh : notification information
|
||||
* [I] lpnmhdr : notification information
|
||||
*
|
||||
* RETURN:
|
||||
* Zero
|
||||
*/
|
||||
static LRESULT LISTVIEW_HeaderNotification(LISTVIEW_INFO *infoPtr, const NMHEADERW *lpnmh)
|
||||
static LRESULT LISTVIEW_Notify(LISTVIEW_INFO *infoPtr, const NMHDR *lpnmhdr)
|
||||
{
|
||||
HWND hwndSelf = infoPtr->hwndSelf;
|
||||
const NMHEADERW *lpnmh;
|
||||
|
||||
TRACE("(lpnmh=%p)\n", lpnmh);
|
||||
TRACE("(lpnmhdr=%p)\n", lpnmhdr);
|
||||
|
||||
if (!lpnmh || lpnmh->iItem < 0 || lpnmh->iItem >= DPA_GetPtrCount(infoPtr->hdpaColumns)) return 0;
|
||||
|
||||
switch (lpnmh->hdr.code)
|
||||
{
|
||||
if (!lpnmhdr || lpnmhdr->hwndFrom != infoPtr->hwndHeader) return 0;
|
||||
|
||||
/* remember: HDN_LAST < HDN_FIRST */
|
||||
if (lpnmhdr->code > HDN_FIRST || lpnmhdr->code < HDN_LAST) return 0;
|
||||
lpnmh = (const NMHEADERW *)lpnmhdr;
|
||||
|
||||
if (lpnmh->iItem < 0 || lpnmh->iItem >= DPA_GetPtrCount(infoPtr->hdpaColumns)) return 0;
|
||||
|
||||
switch (lpnmhdr->code)
|
||||
{
|
||||
case HDN_TRACKW:
|
||||
case HDN_TRACKA:
|
||||
{
|
||||
|
@ -10465,7 +10486,7 @@ static LRESULT LISTVIEW_RButtonDblClk(const LISTVIEW_INFO *infoPtr, WORD wKey, I
|
|||
{
|
||||
LVHITTESTINFO lvHitTestInfo;
|
||||
|
||||
TRACE("(key=%hu,X=%hu,Y=%hu)\n", wKey, x, y);
|
||||
TRACE("(key=%hu,X=%u,Y=%u)\n", wKey, x, y);
|
||||
|
||||
/* send NM_RELEASEDCAPTURE notification */
|
||||
if (!notify(infoPtr, NM_RELEASEDCAPTURE)) return 0;
|
||||
|
@ -10496,7 +10517,7 @@ static LRESULT LISTVIEW_RButtonDown(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, IN
|
|||
LVHITTESTINFO lvHitTestInfo;
|
||||
INT nItem;
|
||||
|
||||
TRACE("(key=%hu,X=%hu,Y=%hu)\n", wKey, x, y);
|
||||
TRACE("(key=%hu,X=%u,Y=%u)\n", wKey, x, y);
|
||||
|
||||
/* send NM_RELEASEDCAPTURE notification */
|
||||
if (!notify(infoPtr, NM_RELEASEDCAPTURE)) return 0;
|
||||
|
@ -10544,7 +10565,7 @@ static LRESULT LISTVIEW_RButtonUp(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, INT
|
|||
LVHITTESTINFO lvHitTestInfo;
|
||||
POINT pt;
|
||||
|
||||
TRACE("(key=%hu,X=%hu,Y=%hu)\n", wKey, x, y);
|
||||
TRACE("(key=%hu,X=%u,Y=%u)\n", wKey, x, y);
|
||||
|
||||
if (!infoPtr->bRButtonDown) return 0;
|
||||
|
||||
|
@ -11411,7 +11432,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
return (LRESULT)infoPtr->hFont;
|
||||
|
||||
case WM_HSCROLL:
|
||||
return LISTVIEW_HScroll(infoPtr, (INT)LOWORD(wParam), 0, (HWND)lParam);
|
||||
return LISTVIEW_HScroll(infoPtr, (INT)LOWORD(wParam), 0);
|
||||
|
||||
case WM_KEYDOWN:
|
||||
return LISTVIEW_KeyDown(infoPtr, (INT)wParam, (LONG)lParam);
|
||||
|
@ -11441,9 +11462,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
return LISTVIEW_NCPaint(infoPtr, (HRGN)wParam);
|
||||
|
||||
case WM_NOTIFY:
|
||||
if (lParam && ((LPNMHDR)lParam)->hwndFrom == infoPtr->hwndHeader)
|
||||
return LISTVIEW_HeaderNotification(infoPtr, (LPNMHEADERW)lParam);
|
||||
else return 0;
|
||||
return LISTVIEW_Notify(infoPtr, (LPNMHDR)lParam);
|
||||
|
||||
case WM_NOTIFYFORMAT:
|
||||
return LISTVIEW_NotifyFormat(infoPtr, (HWND)wParam, (INT)lParam);
|
||||
|
@ -11496,7 +11515,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
return LISTVIEW_ThemeChanged(infoPtr);
|
||||
|
||||
case WM_VSCROLL:
|
||||
return LISTVIEW_VScroll(infoPtr, (INT)LOWORD(wParam), 0, (HWND)lParam);
|
||||
return LISTVIEW_VScroll(infoPtr, (INT)LOWORD(wParam), 0);
|
||||
|
||||
case WM_MOUSEWHEEL:
|
||||
if (wParam & (MK_SHIFT | MK_CONTROL))
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -99,11 +99,7 @@ PAGER_GetButtonRects(const PAGER_INFO* infoPtr, RECT* prcTopLeft, RECT* prcBotto
|
|||
GetWindowRect (infoPtr->hwndSelf, &rcWindow);
|
||||
|
||||
if (bClientCoords)
|
||||
{
|
||||
POINT pt = {rcWindow.left, rcWindow.top};
|
||||
ScreenToClient(infoPtr->hwndSelf, &pt);
|
||||
OffsetRect(&rcWindow, -(rcWindow.left-pt.x), -(rcWindow.top-pt.y));
|
||||
}
|
||||
MapWindowPoints( 0, infoPtr->hwndSelf, (POINT *)&rcWindow, 2 );
|
||||
else
|
||||
OffsetRect(&rcWindow, -rcWindow.left, -rcWindow.top);
|
||||
|
||||
|
|
|
@ -29,11 +29,6 @@
|
|||
*
|
||||
* TODO:
|
||||
*
|
||||
* Messages:
|
||||
* -- PBM_GETSTEP
|
||||
* -- PBM_SETSTATE
|
||||
* -- PBM_GETSTATE
|
||||
*
|
||||
* Styles:
|
||||
* -- PBS_SMOOTHREVERSE
|
||||
*
|
||||
|
@ -380,8 +375,7 @@ static LRESULT PROGRESS_Draw (PROGRESS_INFO *infoPtr, HDC hdc)
|
|||
if (pdi.theme)
|
||||
{
|
||||
GetWindowRect( infoPtr->Self, &pdi.bgRect );
|
||||
ScreenToClient( infoPtr->Self, (POINT*)&pdi.bgRect );
|
||||
ScreenToClient( infoPtr->Self, (POINT*)&pdi.bgRect.right );
|
||||
MapWindowPoints( infoPtr->Self, 0, (POINT*)&pdi.bgRect, 2 );
|
||||
}
|
||||
|
||||
if (!barSmooth)
|
||||
|
@ -663,6 +657,9 @@ static LRESULT WINAPI ProgressWindowProc(HWND hwnd, UINT message,
|
|||
return oldStep;
|
||||
}
|
||||
|
||||
case PBM_GETSTEP:
|
||||
return infoPtr->Step;
|
||||
|
||||
case PBM_STEPIT:
|
||||
{
|
||||
INT oldVal;
|
||||
|
@ -708,6 +705,14 @@ static LRESULT WINAPI ProgressWindowProc(HWND hwnd, UINT message,
|
|||
case PBM_GETBKCOLOR:
|
||||
return infoPtr->ColorBk;
|
||||
|
||||
case PBM_SETSTATE:
|
||||
if(wParam != PBST_NORMAL)
|
||||
FIXME("state %04lx not yet handled\n", wParam);
|
||||
return PBST_NORMAL;
|
||||
|
||||
case PBM_GETSTATE:
|
||||
return PBST_NORMAL;
|
||||
|
||||
case PBM_SETMARQUEE:
|
||||
if(wParam != 0)
|
||||
{
|
||||
|
|
|
@ -613,7 +613,7 @@ static INT_PTR PROPSHEET_CreateDialog(PropSheetInfo* psInfo)
|
|||
DWORD resSize;
|
||||
WORD resID = IDD_PROPSHEET;
|
||||
|
||||
TRACE("\n");
|
||||
TRACE("(%p)\n", psInfo);
|
||||
if (psInfo->ppshheader.dwFlags & INTRNL_ANY_WIZARD)
|
||||
resID = IDD_WIZARD;
|
||||
|
||||
|
@ -1074,18 +1074,13 @@ static PADDING_INFO PROPSHEET_GetPaddingInfo(HWND hwndDlg)
|
|||
{
|
||||
HWND hwndTab = GetDlgItem(hwndDlg, IDC_TABCONTROL);
|
||||
RECT rcTab;
|
||||
POINT tl;
|
||||
PADDING_INFO padding;
|
||||
|
||||
GetWindowRect(hwndTab, &rcTab);
|
||||
MapWindowPoints( 0, hwndDlg, (POINT *)&rcTab, 2 );
|
||||
|
||||
tl.x = rcTab.left;
|
||||
tl.y = rcTab.top;
|
||||
|
||||
ScreenToClient(hwndDlg, &tl);
|
||||
|
||||
padding.x = tl.x;
|
||||
padding.y = tl.y;
|
||||
padding.x = rcTab.left;
|
||||
padding.y = rcTab.top;
|
||||
|
||||
return padding;
|
||||
}
|
||||
|
@ -1131,21 +1126,17 @@ static PADDING_INFO PROPSHEET_GetPaddingInfoWizard(HWND hwndDlg, const PropSheet
|
|||
|
||||
hwndControl = GetDlgItem(hwndDlg, idButton);
|
||||
GetWindowRect(hwndControl, &rc);
|
||||
|
||||
MapWindowPoints( 0, hwndDlg, (POINT *)&rc, 2 );
|
||||
ptButton.x = rc.left;
|
||||
ptButton.y = rc.top;
|
||||
|
||||
ScreenToClient(hwndDlg, &ptButton);
|
||||
|
||||
/* Line */
|
||||
hwndControl = GetDlgItem(hwndDlg, IDC_SUNKEN_LINE);
|
||||
GetWindowRect(hwndControl, &rc);
|
||||
|
||||
MapWindowPoints( 0, hwndDlg, (POINT *)&rc, 2 );
|
||||
ptLine.x = rc.left;
|
||||
ptLine.y = rc.bottom;
|
||||
|
||||
ScreenToClient(hwndDlg, &ptLine);
|
||||
|
||||
padding.y = ptButton.y - ptLine.y;
|
||||
|
||||
if (padding.y < 0)
|
||||
|
@ -2421,6 +2412,28 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CALLBACK
|
||||
EnumChildProc(HWND hwnd, LPARAM lParam)
|
||||
{
|
||||
WCHAR szType[20];
|
||||
RealGetWindowClassW(hwnd, szType, 20);
|
||||
|
||||
if (strcmpW(szType, WC_EDITW) == 0)
|
||||
{
|
||||
if (IsWindowEnabled(hwnd) && IsWindowVisible(hwnd))
|
||||
{
|
||||
SetFocus(hwnd);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EnumChildWindows(hwnd, EnumChildProc, 0);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* PROPSHEET_SetWizButtons
|
||||
*
|
||||
|
@ -2442,17 +2455,6 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags)
|
|||
EnableWindow(hwndNext, FALSE);
|
||||
EnableWindow(hwndFinish, FALSE);
|
||||
|
||||
/* set the default pushbutton to an enabled button */
|
||||
if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH))
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
|
||||
else if (dwFlags & PSWIZB_NEXT)
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
|
||||
else if (dwFlags & PSWIZB_BACK)
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
|
||||
else
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
|
||||
|
||||
|
||||
if (dwFlags & PSWIZB_BACK)
|
||||
EnableWindow(hwndBack, TRUE);
|
||||
|
||||
|
@ -2482,6 +2484,31 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags)
|
|||
}
|
||||
else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
|
||||
EnableWindow(hwndFinish, TRUE);
|
||||
|
||||
/* set the default pushbutton to an enabled button and give it focus */
|
||||
if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH))
|
||||
{
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
|
||||
SetFocus(hwndFinish);
|
||||
}
|
||||
else if (dwFlags & PSWIZB_NEXT)
|
||||
{
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
|
||||
SetFocus(hwndNext);
|
||||
}
|
||||
else if (dwFlags & PSWIZB_BACK)
|
||||
{
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
|
||||
SetFocus(hwndBack);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
|
||||
SetFocus(GetDlgItem(hwndDlg, IDCANCEL));
|
||||
}
|
||||
|
||||
/* Now try to find an edit control that deserves focus */
|
||||
EnumChildWindows(PropSheet_GetCurrentPageHwnd(hwndDlg), EnumChildProc, 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -3415,10 +3442,7 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
/* set up the Next and Back buttons by default */
|
||||
PROPSHEET_SetWizButtons(hwnd, PSWIZB_BACK|PSWIZB_NEXT);
|
||||
SetFocus(GetDlgItem(hwnd, IDC_NEXT_BUTTON));
|
||||
}
|
||||
else
|
||||
SetFocus(GetDlgItem(hwnd, IDOK));
|
||||
|
||||
/* Set up fonts */
|
||||
SystemParametersInfoW (SPI_GETICONTITLELOGFONT, 0, &logFont, 0);
|
||||
|
@ -3464,6 +3488,7 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
ShowWindow(hwndTabCtrl, SW_HIDE);
|
||||
PROPSHEET_AdjustSizeWizard(hwnd, psInfo);
|
||||
PROPSHEET_AdjustButtonsWizard(hwnd, psInfo);
|
||||
SetFocus(GetDlgItem(hwnd, IDC_NEXT_BUTTON));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3472,6 +3497,7 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
PROPSHEET_AdjustSize(hwnd, psInfo);
|
||||
PROPSHEET_AdjustButtons(hwnd, psInfo);
|
||||
}
|
||||
SetFocus(GetDlgItem(hwnd, IDOK));
|
||||
}
|
||||
|
||||
if (IS_INTRESOURCE(psInfo->ppshheader.pszCaption) &&
|
||||
|
|
|
@ -1180,8 +1180,6 @@ static void REBAR_SetRowRectsX(const REBAR_INFO *infoPtr, INT iBeginBand, INT iE
|
|||
for (i = iBeginBand; i < iEndBand; i = next_visible(infoPtr, i))
|
||||
{
|
||||
REBAR_BAND *lpBand = REBAR_GetBand(infoPtr, i);
|
||||
|
||||
lpBand = REBAR_GetBand(infoPtr, i);
|
||||
if (lpBand->rcBand.left != xPos || lpBand->rcBand.right != xPos + lpBand->cxEffective) {
|
||||
lpBand->fDraw |= NTF_INVALIDATE;
|
||||
TRACE("Setting rect %d to %d,%d\n", i, xPos, xPos + lpBand->cxEffective);
|
||||
|
@ -1264,6 +1262,57 @@ static int REBAR_ShrinkBandsLTR(const REBAR_INFO *infoPtr, INT iBeginBand, INT i
|
|||
return cxShrink;
|
||||
}
|
||||
|
||||
/* Tries to move a band to a given offset within a row. */
|
||||
static int REBAR_MoveBandToRowOffset(REBAR_INFO *infoPtr, INT iBand, INT iFirstBand,
|
||||
INT iLastBand, INT xOff, BOOL reorder)
|
||||
{
|
||||
REBAR_BAND *insertBand = REBAR_GetBand(infoPtr, iBand);
|
||||
int xPos = 0, i;
|
||||
const BOOL setBreak = REBAR_GetBand(infoPtr, iFirstBand)->fStyle & RBBS_BREAK;
|
||||
|
||||
/* Find the band's new position */
|
||||
if(reorder)
|
||||
{
|
||||
/* Used during an LR band reorder drag */
|
||||
for (i = iFirstBand; i < iLastBand; i = next_visible(infoPtr, i))
|
||||
{
|
||||
if(xPos > xOff)
|
||||
break;
|
||||
xPos += REBAR_GetBand(infoPtr, i)->cxEffective + SEP_WIDTH;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Used during a UD band insertion drag */
|
||||
for (i = iFirstBand; i < iLastBand; i = next_visible(infoPtr, i))
|
||||
{
|
||||
const REBAR_BAND *band = REBAR_GetBand(infoPtr, i);
|
||||
if(xPos + band->cxMinBand / 2 > xOff)
|
||||
break;
|
||||
xPos += band->cxEffective + SEP_WIDTH;
|
||||
}
|
||||
}
|
||||
|
||||
/* Move the band to its new position */
|
||||
DPA_DeletePtr(infoPtr->bands, iBand);
|
||||
if(i > iBand)
|
||||
i--;
|
||||
DPA_InsertPtr(infoPtr->bands, i, insertBand);
|
||||
|
||||
/* Ensure only the last band has the RBBS_BREAK flag set */
|
||||
insertBand->fStyle &= ~RBBS_BREAK;
|
||||
if(setBreak)
|
||||
REBAR_GetBand(infoPtr, iFirstBand)->fStyle |= RBBS_BREAK;
|
||||
|
||||
/* Return the currently grabbed band */
|
||||
if(infoPtr->iGrabbedBand == iBand)
|
||||
{
|
||||
infoPtr->iGrabbedBand = i;
|
||||
return i;
|
||||
}
|
||||
else return -1;
|
||||
}
|
||||
|
||||
/* Set the heights of the visible bands in [iBeginBand; iEndBand) to the max height. iBeginBand must be visible */
|
||||
static int REBAR_SetBandsHeight(const REBAR_INFO *infoPtr, INT iBeginBand, INT iEndBand, INT yStart)
|
||||
{
|
||||
|
@ -2002,26 +2051,11 @@ REBAR_HandleLRDrag (REBAR_INFO *infoPtr, const POINT *ptsmove)
|
|||
/* Gripper drag within a row. It will not implement "out- */
|
||||
/* of-row" drags. (They are detected and handled in */
|
||||
/* REBAR_MouseMove.) */
|
||||
/* **** FIXME Switching order of bands in a row not **** */
|
||||
/* **** yet implemented. **** */
|
||||
{
|
||||
REBAR_BAND *hitBand;
|
||||
INT iHitBand, iRowBegin, iRowEnd;
|
||||
INT movement, xBand;
|
||||
|
||||
/* on first significant mouse movement, issue notify */
|
||||
if (!(infoPtr->fStatus & BEGIN_DRAG_ISSUED)) {
|
||||
if (REBAR_Notify_NMREBAR (infoPtr, -1, RBN_BEGINDRAG)) {
|
||||
/* Notify returned TRUE - abort drag */
|
||||
infoPtr->dragStart.x = 0;
|
||||
infoPtr->dragStart.y = 0;
|
||||
infoPtr->dragNow = infoPtr->dragStart;
|
||||
infoPtr->iGrabbedBand = -1;
|
||||
ReleaseCapture ();
|
||||
return ;
|
||||
}
|
||||
infoPtr->fStatus |= BEGIN_DRAG_ISSUED;
|
||||
}
|
||||
INT movement, xBand, cxLeft = 0;
|
||||
BOOL shrunkBands = FALSE;
|
||||
|
||||
iHitBand = infoPtr->iGrabbedBand;
|
||||
iRowBegin = get_row_begin_for_band(infoPtr, iHitBand);
|
||||
|
@ -2032,21 +2066,44 @@ REBAR_HandleLRDrag (REBAR_INFO *infoPtr, const POINT *ptsmove)
|
|||
movement = (infoPtr->dwStyle&CCS_VERT ? ptsmove->y : ptsmove->x)
|
||||
- (xBand + REBAR_PRE_GRIPPER - infoPtr->ihitoffset);
|
||||
|
||||
if (movement < 0) {
|
||||
INT cxLeft = REBAR_ShrinkBandsRTL(infoPtr, iRowBegin, iHitBand, -movement, TRUE);
|
||||
hitBand->cxEffective += -movement - cxLeft;
|
||||
hitBand->cx = hitBand->cxEffective;
|
||||
} else if (movement > 0) {
|
||||
INT prev;
|
||||
/* Dragging the first band in a row cannot cause shrinking */
|
||||
if(iHitBand != iRowBegin)
|
||||
{
|
||||
if (movement < 0) {
|
||||
cxLeft = REBAR_ShrinkBandsRTL(infoPtr, iRowBegin, iHitBand, -movement, TRUE);
|
||||
|
||||
if(cxLeft < -movement)
|
||||
{
|
||||
hitBand->cxEffective += -movement - cxLeft;
|
||||
hitBand->cx = hitBand->cxEffective;
|
||||
shrunkBands = TRUE;
|
||||
}
|
||||
|
||||
} else if (movement > 0) {
|
||||
|
||||
cxLeft = movement;
|
||||
if (prev_visible(infoPtr, iHitBand) >= 0)
|
||||
cxLeft = REBAR_ShrinkBandsLTR(infoPtr, iHitBand, iRowEnd, movement, TRUE);
|
||||
|
||||
if(cxLeft < movement)
|
||||
{
|
||||
REBAR_BAND *lpPrev = REBAR_GetBand(infoPtr, prev_visible(infoPtr, iHitBand));
|
||||
lpPrev->cxEffective += movement - cxLeft;
|
||||
lpPrev->cx = hitBand->cxEffective;
|
||||
shrunkBands = TRUE;
|
||||
}
|
||||
|
||||
if ((prev = prev_visible(infoPtr, iHitBand)) >= 0) {
|
||||
INT cxLeft = REBAR_ShrinkBandsLTR(infoPtr, iHitBand, iRowEnd, movement, TRUE);
|
||||
REBAR_BAND *lpPrev = REBAR_GetBand(infoPtr, prev_visible(infoPtr, iHitBand));
|
||||
lpPrev->cxEffective += movement - cxLeft;
|
||||
lpPrev->cx = lpPrev->cxEffective;
|
||||
}
|
||||
}
|
||||
|
||||
if(!shrunkBands)
|
||||
{
|
||||
/* It was not possible to move the band by shrinking bands.
|
||||
* Try relocating the band instead. */
|
||||
REBAR_MoveBandToRowOffset(infoPtr, iHitBand, iRowBegin,
|
||||
iRowEnd, xBand + movement, TRUE);
|
||||
}
|
||||
|
||||
REBAR_SetRowRectsX(infoPtr, iRowBegin, iRowEnd);
|
||||
if (infoPtr->dwStyle & CCS_VERT)
|
||||
REBAR_CalcVertBand(infoPtr, 0, infoPtr->uNumBands);
|
||||
|
@ -2055,6 +2112,71 @@ REBAR_HandleLRDrag (REBAR_INFO *infoPtr, const POINT *ptsmove)
|
|||
REBAR_MoveChildWindows(infoPtr, iRowBegin, iRowEnd);
|
||||
}
|
||||
|
||||
static void
|
||||
REBAR_HandleUDDrag (REBAR_INFO *infoPtr, const POINT *ptsmove)
|
||||
{
|
||||
INT yOff = (infoPtr->dwStyle & CCS_VERT) ? ptsmove->x : ptsmove->y;
|
||||
INT iHitBand, iRowBegin, iNextRowBegin;
|
||||
REBAR_BAND *hitBand, *rowBeginBand;
|
||||
|
||||
if(infoPtr->uNumBands <= 0)
|
||||
ERR("There are no bands in this rebar");
|
||||
|
||||
/* Up/down dragging can only occur when there is more than one
|
||||
* band in the rebar */
|
||||
if(infoPtr->uNumBands <= 1)
|
||||
return;
|
||||
|
||||
iHitBand = infoPtr->iGrabbedBand;
|
||||
hitBand = REBAR_GetBand(infoPtr, iHitBand);
|
||||
|
||||
/* If we're taking a band that has the RBBS_BREAK style set, this
|
||||
* style needs to be reapplied to the band that is going to become
|
||||
* the new start of the row. */
|
||||
if((hitBand->fStyle & RBBS_BREAK) &&
|
||||
(iHitBand < infoPtr->uNumBands - 1))
|
||||
REBAR_GetBand(infoPtr, iHitBand + 1)->fStyle |= RBBS_BREAK;
|
||||
|
||||
if(yOff < 0)
|
||||
{
|
||||
/* Place the band above the current top row */
|
||||
DPA_DeletePtr(infoPtr->bands, iHitBand);
|
||||
hitBand->fStyle &= RBBS_BREAK;
|
||||
REBAR_GetBand(infoPtr, 0)->fStyle |= RBBS_BREAK;
|
||||
infoPtr->iGrabbedBand = DPA_InsertPtr(
|
||||
infoPtr->bands, 0, hitBand);
|
||||
}
|
||||
else if(yOff > REBAR_GetBand(infoPtr, infoPtr->uNumBands - 1)->rcBand.bottom)
|
||||
{
|
||||
/* Place the band below the current bottom row */
|
||||
DPA_DeletePtr(infoPtr->bands, iHitBand);
|
||||
hitBand->fStyle |= RBBS_BREAK;
|
||||
infoPtr->iGrabbedBand = DPA_InsertPtr(
|
||||
infoPtr->bands, infoPtr->uNumBands - 1, hitBand);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Place the band in the prexisting row the mouse is hovering over */
|
||||
iRowBegin = first_visible(infoPtr);
|
||||
while(iRowBegin < infoPtr->uNumBands)
|
||||
{
|
||||
iNextRowBegin = get_row_end_for_band(infoPtr, iRowBegin);
|
||||
rowBeginBand = REBAR_GetBand(infoPtr, iRowBegin);
|
||||
if(rowBeginBand->rcBand.bottom > yOff)
|
||||
{
|
||||
REBAR_MoveBandToRowOffset(
|
||||
infoPtr, iHitBand, iRowBegin, iNextRowBegin,
|
||||
((infoPtr->dwStyle & CCS_VERT) ? ptsmove->y : ptsmove->x)
|
||||
- REBAR_PRE_GRIPPER - infoPtr->ihitoffset, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
iRowBegin = iNextRowBegin;
|
||||
}
|
||||
}
|
||||
|
||||
REBAR_Layout(infoPtr);
|
||||
}
|
||||
|
||||
|
||||
/* << REBAR_BeginDrag >> */
|
||||
|
@ -2397,7 +2519,7 @@ REBAR_IdToIndex (const REBAR_INFO *infoPtr, UINT uId)
|
|||
|
||||
|
||||
static LRESULT
|
||||
REBAR_InsertBandT(REBAR_INFO *infoPtr, INT iIndex, LPREBARBANDINFOW lprbbi, BOOL bUnicode)
|
||||
REBAR_InsertBandT(REBAR_INFO *infoPtr, INT iIndex, const REBARBANDINFOW *lprbbi, BOOL bUnicode)
|
||||
{
|
||||
REBAR_BAND *lpBand;
|
||||
|
||||
|
@ -2613,7 +2735,7 @@ REBAR_strdifW( LPCWSTR a, LPCWSTR b )
|
|||
}
|
||||
|
||||
static LRESULT
|
||||
REBAR_SetBandInfoT(REBAR_INFO *infoPtr, INT iBand, LPREBARBANDINFOW lprbbi, BOOL bUnicode)
|
||||
REBAR_SetBandInfoT(REBAR_INFO *infoPtr, INT iBand, const REBARBANDINFOW *lprbbi, BOOL bUnicode)
|
||||
{
|
||||
REBAR_BAND *lpBand;
|
||||
UINT uChanged;
|
||||
|
@ -2661,7 +2783,7 @@ REBAR_SetBandInfoT(REBAR_INFO *infoPtr, INT iBand, LPREBARBANDINFOW lprbbi, BOOL
|
|||
|
||||
|
||||
static LRESULT
|
||||
REBAR_SetBarInfo (REBAR_INFO *infoPtr, LPREBARINFO lpInfo)
|
||||
REBAR_SetBarInfo (REBAR_INFO *infoPtr, const REBARINFO *lpInfo)
|
||||
{
|
||||
REBAR_BAND *lpBand;
|
||||
UINT i;
|
||||
|
@ -3025,25 +3147,36 @@ REBAR_MouseMove (REBAR_INFO *infoPtr, LPARAM lParam)
|
|||
/* if we are currently dragging a band */
|
||||
if (infoPtr->iGrabbedBand >= 0)
|
||||
{
|
||||
REBAR_BAND *band1 = NULL, *band2;
|
||||
REBAR_BAND *band;
|
||||
int yPtMove = (infoPtr->dwStyle & CCS_VERT ? ptMove.x : ptMove.y);
|
||||
|
||||
if (GetCapture() != infoPtr->hwndSelf)
|
||||
ERR("We are dragging but haven't got capture?!?\n");
|
||||
|
||||
if (infoPtr->iGrabbedBand > 0)
|
||||
band1 = REBAR_GetBand(infoPtr, infoPtr->iGrabbedBand - 1);
|
||||
band2 = REBAR_GetBand(infoPtr, infoPtr->iGrabbedBand);
|
||||
band = REBAR_GetBand(infoPtr, infoPtr->iGrabbedBand);
|
||||
|
||||
/* if mouse did not move much, exit */
|
||||
if ((abs(ptMove.x - infoPtr->dragNow.x) <= mindragx) &&
|
||||
(abs(ptMove.y - infoPtr->dragNow.y) <= mindragy)) return 0;
|
||||
|
||||
/* on first significant mouse movement, issue notify */
|
||||
if (!(infoPtr->fStatus & BEGIN_DRAG_ISSUED)) {
|
||||
if (REBAR_Notify_NMREBAR (infoPtr, -1, RBN_BEGINDRAG)) {
|
||||
/* Notify returned TRUE - abort drag */
|
||||
infoPtr->dragStart.x = 0;
|
||||
infoPtr->dragStart.y = 0;
|
||||
infoPtr->dragNow = infoPtr->dragStart;
|
||||
infoPtr->iGrabbedBand = -1;
|
||||
ReleaseCapture ();
|
||||
return 0;
|
||||
}
|
||||
infoPtr->fStatus |= BEGIN_DRAG_ISSUED;
|
||||
}
|
||||
|
||||
/* Test for valid drag case - must not be first band in row */
|
||||
if ((yPtMove < band2->rcBand.top) ||
|
||||
(yPtMove > band2->rcBand.bottom) ||
|
||||
((infoPtr->iGrabbedBand > 0) && (band1->iRow != band2->iRow))) {
|
||||
FIXME("Cannot drag to other rows yet!!\n");
|
||||
if ((yPtMove < band->rcBand.top) ||
|
||||
(yPtMove > band->rcBand.bottom)) {
|
||||
REBAR_HandleUDDrag (infoPtr, &ptMove);
|
||||
}
|
||||
else {
|
||||
REBAR_HandleLRDrag (infoPtr, &ptMove);
|
||||
|
@ -3126,7 +3259,7 @@ REBAR_NCCalcSize (const REBAR_INFO *infoPtr, RECT *rect)
|
|||
|
||||
|
||||
static LRESULT
|
||||
REBAR_NCCreate (HWND hwnd, LPCREATESTRUCTW cs)
|
||||
REBAR_NCCreate (HWND hwnd, const CREATESTRUCTW *cs)
|
||||
{
|
||||
REBAR_INFO *infoPtr = REBAR_GetInfoPtr (hwnd);
|
||||
RECT wnrc1, clrc1;
|
||||
|
|
|
@ -98,14 +98,14 @@ IDI_TT_ERROR_SM ICON idi_tt_error_sm.ico
|
|||
#include "comctl_Hu.rc"
|
||||
#include "comctl_It.rc"
|
||||
#include "comctl_Ko.rc"
|
||||
#include "comctl_Nl.rc"
|
||||
#include "comctl_No.rc"
|
||||
#include "comctl_Pl.rc"
|
||||
#include "comctl_Sk.rc"
|
||||
#include "comctl_Sv.rc"
|
||||
#include "comctl_Th.rc"
|
||||
#include "comctl_Tr.rc"
|
||||
#include "comctl_Uk.rc"
|
||||
//#include "comctl_Nl.rc"
|
||||
//#include "comctl_No.rc"
|
||||
//#include "comctl_Pl.rc"
|
||||
//#include "comctl_Sk.rc"
|
||||
//#include "comctl_Sv.rc"
|
||||
//#include "comctl_Th.rc"
|
||||
//#include "comctl_Tr.rc"
|
||||
//#include "comctl_Uk.rc"
|
||||
|
||||
/* UTF-8 */
|
||||
#include "comctl_Da.rc"
|
||||
|
|
|
@ -1047,7 +1047,10 @@ STATUSBAR_WMNCHitTest (const STATUS_INFO *infoPtr, INT x, INT y)
|
|||
rect.top += 2;
|
||||
|
||||
if (PtInRect (&rect, pt))
|
||||
return HTBOTTOMRIGHT;
|
||||
{
|
||||
if (GetWindowLongW( infoPtr->Self, GWL_EXSTYLE ) & WS_EX_LAYOUTRTL) return HTBOTTOMLEFT;
|
||||
else return HTBOTTOMRIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
return HTERROR;
|
||||
|
|
|
@ -83,8 +83,10 @@ typedef struct
|
|||
BYTE extra[1]; /* Space for caller supplied info, variable size */
|
||||
} TAB_ITEM;
|
||||
|
||||
/* The size of a tab item depends on how much extra data is requested */
|
||||
#define TAB_ITEM_SIZE(infoPtr) (FIELD_OFFSET(TAB_ITEM, extra[(infoPtr)->cbInfo]))
|
||||
/* The size of a tab item depends on how much extra data is requested.
|
||||
TCM_INSERTITEM always stores at least LPARAM sized data. */
|
||||
#define EXTRA_ITEM_SIZE(infoPtr) (max((infoPtr)->cbInfo, sizeof(LPARAM)))
|
||||
#define TAB_ITEM_SIZE(infoPtr) FIELD_OFFSET(TAB_ITEM, extra[EXTRA_ITEM_SIZE(infoPtr)])
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -1163,14 +1165,14 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
if (!(infoPtr->fHeightSet))
|
||||
{
|
||||
int item_height;
|
||||
int icon_height = 0;
|
||||
INT icon_height = 0, cx;
|
||||
|
||||
/* Use the current font to determine the height of a tab. */
|
||||
GetTextMetricsW(hdc, &fontMetrics);
|
||||
|
||||
/* Get the icon height */
|
||||
if (infoPtr->himl)
|
||||
ImageList_GetIconSize(infoPtr->himl, 0, &icon_height);
|
||||
ImageList_GetIconSize(infoPtr->himl, &cx, &icon_height);
|
||||
|
||||
/* Take the highest between font or icon */
|
||||
if (fontMetrics.tmHeight > icon_height)
|
||||
|
@ -1195,7 +1197,9 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
/* Get the icon width */
|
||||
if (infoPtr->himl)
|
||||
{
|
||||
ImageList_GetIconSize(infoPtr->himl, &icon_width, 0);
|
||||
INT cy;
|
||||
|
||||
ImageList_GetIconSize(infoPtr->himl, &icon_width, &cy);
|
||||
|
||||
if (infoPtr->dwStyle & TCS_FIXEDWIDTH)
|
||||
icon_width += 4;
|
||||
|
@ -1726,7 +1730,7 @@ TAB_DrawItemInterior(const TAB_INFO *infoPtr, HDC hdc, INT iItem, RECT *drawRect
|
|||
/*
|
||||
* if owner draw, tell the owner to draw
|
||||
*/
|
||||
if ((infoPtr->dwStyle & TCS_OWNERDRAWFIXED) && GetParent(infoPtr->hwnd))
|
||||
if ((infoPtr->dwStyle & TCS_OWNERDRAWFIXED) && IsWindow(infoPtr->hwndNotify))
|
||||
{
|
||||
DRAWITEMSTRUCT dis;
|
||||
UINT id;
|
||||
|
@ -1739,14 +1743,9 @@ TAB_DrawItemInterior(const TAB_INFO *infoPtr, HDC hdc, INT iItem, RECT *drawRect
|
|||
drawRect->left += 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* get the control id
|
||||
*/
|
||||
id = (UINT)GetWindowLongPtrW( infoPtr->hwnd, GWLP_ID );
|
||||
|
||||
/*
|
||||
* put together the DRAWITEMSTRUCT
|
||||
*/
|
||||
/* fill DRAWITEMSTRUCT */
|
||||
dis.CtlType = ODT_TAB;
|
||||
dis.CtlID = id;
|
||||
dis.itemID = iItem;
|
||||
|
@ -1759,11 +1758,18 @@ TAB_DrawItemInterior(const TAB_INFO *infoPtr, HDC hdc, INT iItem, RECT *drawRect
|
|||
dis.hwndItem = infoPtr->hwnd;
|
||||
dis.hDC = hdc;
|
||||
CopyRect(&dis.rcItem,drawRect);
|
||||
dis.itemData = (ULONG_PTR)TAB_GetItem(infoPtr, iItem)->extra;
|
||||
|
||||
/*
|
||||
* send the draw message
|
||||
*/
|
||||
/* when extra data fits ULONG_PTR, store it directly */
|
||||
if (infoPtr->cbInfo > sizeof(LPARAM))
|
||||
dis.itemData = (ULONG_PTR) TAB_GetItem(infoPtr, iItem)->extra;
|
||||
else
|
||||
{
|
||||
/* this could be considered broken on 64 bit, but that's how it works -
|
||||
only first 4 bytes are copied */
|
||||
memcpy(&dis.itemData, (ULONG_PTR*)TAB_GetItem(infoPtr, iItem)->extra, 4);
|
||||
}
|
||||
|
||||
/* draw notification */
|
||||
SendMessageW( infoPtr->hwndNotify, WM_DRAWITEM, id, (LPARAM)&dis );
|
||||
}
|
||||
else
|
||||
|
@ -2620,7 +2626,7 @@ static inline LRESULT TAB_Paint (TAB_INFO *infoPtr, HDC hdcPaint)
|
|||
}
|
||||
|
||||
static LRESULT
|
||||
TAB_InsertItemT (TAB_INFO *infoPtr, INT iItem, TCITEMW *pti, BOOL bUnicode)
|
||||
TAB_InsertItemT (TAB_INFO *infoPtr, INT iItem, const TCITEMW *pti, BOOL bUnicode)
|
||||
{
|
||||
TAB_ITEM *item;
|
||||
RECT rect;
|
||||
|
@ -2684,10 +2690,10 @@ TAB_InsertItemT (TAB_INFO *infoPtr, INT iItem, TCITEMW *pti, BOOL bUnicode)
|
|||
item->iImage = -1;
|
||||
|
||||
if (pti->mask & TCIF_PARAM)
|
||||
memcpy(item->extra, &pti->lParam, infoPtr->cbInfo);
|
||||
memcpy(item->extra, &pti->lParam, EXTRA_ITEM_SIZE(infoPtr));
|
||||
else
|
||||
memset(item->extra, 0, infoPtr->cbInfo);
|
||||
|
||||
memset(item->extra, 0, EXTRA_ITEM_SIZE(infoPtr));
|
||||
|
||||
TAB_SetItemBounds(infoPtr);
|
||||
if (infoPtr->uNumItem > 1)
|
||||
TAB_InvalidateTabArea(infoPtr);
|
||||
|
@ -3188,15 +3194,8 @@ TAB_SetItemExtra (TAB_INFO *infoPtr, INT cbInfo)
|
|||
{
|
||||
TRACE("(%p %d)\n", infoPtr, cbInfo);
|
||||
|
||||
if (cbInfo <= 0)
|
||||
return FALSE;
|
||||
if (cbInfo < 0 || infoPtr->uNumItem) return FALSE;
|
||||
|
||||
if (infoPtr->uNumItem)
|
||||
{
|
||||
/* FIXME: MSDN says this is not allowed, but this hasn't been verified */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
infoPtr->cbInfo = cbInfo;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -2900,13 +2900,27 @@ TOOLBAR_AddStringW (TOOLBAR_INFO *infoPtr, HINSTANCE hInstance, LPARAM lParam)
|
|||
BOOL fFirstString = (infoPtr->nNumStrings == 0);
|
||||
INT nIndex = infoPtr->nNumStrings;
|
||||
|
||||
if (hInstance && IS_INTRESOURCE(lParam)) {
|
||||
TRACE("%p, %lx\n", hInstance, lParam);
|
||||
|
||||
if (IS_INTRESOURCE(lParam)) {
|
||||
WCHAR szString[MAX_RESOURCE_STRING_LENGTH];
|
||||
WCHAR delimiter;
|
||||
WCHAR *next_delim;
|
||||
HRSRC hrsrc;
|
||||
WCHAR *p;
|
||||
INT len;
|
||||
TRACE("adding string from resource!\n");
|
||||
|
||||
TRACE("adding string from resource\n");
|
||||
|
||||
if (!hInstance) return -1;
|
||||
|
||||
hrsrc = FindResourceW( hInstance, MAKEINTRESOURCEW((LOWORD(lParam) >> 4) + 1),
|
||||
(LPWSTR)RT_STRING );
|
||||
if (!hrsrc)
|
||||
{
|
||||
TRACE("string not found in resources\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = LoadStringW (hInstance, (UINT)lParam,
|
||||
szString, MAX_RESOURCE_STRING_LENGTH);
|
||||
|
@ -2915,7 +2929,7 @@ TOOLBAR_AddStringW (TOOLBAR_INFO *infoPtr, HINSTANCE hInstance, LPARAM lParam)
|
|||
if (len == 0 || len == 1)
|
||||
return nIndex;
|
||||
|
||||
TRACE("Delimiter: 0x%x\n", *szString);
|
||||
TRACE("delimiter: 0x%x\n", *szString);
|
||||
delimiter = *szString;
|
||||
p = szString + 1;
|
||||
|
||||
|
@ -2941,7 +2955,7 @@ TOOLBAR_AddStringW (TOOLBAR_INFO *infoPtr, HINSTANCE hInstance, LPARAM lParam)
|
|||
|
||||
if (p == NULL)
|
||||
return -1;
|
||||
TRACE("adding string(s) from array!\n");
|
||||
TRACE("adding string(s) from array\n");
|
||||
while (*p) {
|
||||
len = strlenW (p);
|
||||
|
||||
|
@ -2968,14 +2982,16 @@ TOOLBAR_AddStringA (TOOLBAR_INFO *infoPtr, HINSTANCE hInstance, LPARAM lParam)
|
|||
INT nIndex;
|
||||
INT len;
|
||||
|
||||
if (hInstance && IS_INTRESOURCE(lParam)) /* load from resources */
|
||||
TRACE("%p, %lx\n", hInstance, lParam);
|
||||
|
||||
if (IS_INTRESOURCE(lParam)) /* load from resources */
|
||||
return TOOLBAR_AddStringW(infoPtr, hInstance, lParam);
|
||||
|
||||
p = (LPSTR)lParam;
|
||||
if (p == NULL)
|
||||
return -1;
|
||||
|
||||
TRACE("adding string(s) from array!\n");
|
||||
TRACE("adding string(s) from array\n");
|
||||
nIndex = infoPtr->nNumStrings;
|
||||
while (*p) {
|
||||
len = strlen (p);
|
||||
|
@ -3033,7 +3049,7 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr)
|
|||
if ((infoPtr->dwStyle & CCS_BOTTOM) == CCS_NOMOVEY)
|
||||
{
|
||||
GetWindowRect(infoPtr->hwndSelf, &window_rect);
|
||||
ScreenToClient(parent, (LPPOINT)&window_rect.left);
|
||||
MapWindowPoints( 0, parent, (POINT *)&window_rect, 2 );
|
||||
y = window_rect.top;
|
||||
}
|
||||
if ((infoPtr->dwStyle & CCS_BOTTOM) == CCS_BOTTOM)
|
||||
|
|
|
@ -636,7 +636,8 @@ TOOLTIPS_Show (TOOLTIPS_INFO *infoPtr, BOOL track_activate)
|
|||
if (!(style & TTS_BALLOON))
|
||||
rect.top -= (size.cy / 2);
|
||||
}
|
||||
infoPtr->bToolBelow = TRUE;
|
||||
if (!(infoPtr->bToolBelow = (infoPtr->yTrackPos + size.cy <= GetSystemMetrics(SM_CYSCREEN))))
|
||||
rect.top -= size.cy;
|
||||
|
||||
if (!(toolPtr->uFlags & TTF_ABSOLUTE))
|
||||
{
|
||||
|
@ -1430,7 +1431,7 @@ TOOLTIPS_HitTestT (const TOOLTIPS_INFO *infoPtr, LPTTHITTESTINFOW lptthit,
|
|||
|
||||
|
||||
static LRESULT
|
||||
TOOLTIPS_NewToolRectT (TOOLTIPS_INFO *infoPtr, const TTTOOLINFOW *ti, BOOL isW)
|
||||
TOOLTIPS_NewToolRectT (TOOLTIPS_INFO *infoPtr, const TTTOOLINFOW *ti)
|
||||
{
|
||||
INT nTool;
|
||||
|
||||
|
@ -1840,15 +1841,7 @@ TOOLTIPS_UpdateTipTextT (TOOLTIPS_INFO *infoPtr, const TTTOOLINFOW *ti, BOOL isW
|
|||
|
||||
|
||||
static LRESULT
|
||||
TOOLTIPS_WindowFromPoint (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
return (LRESULT)WindowFromPoint (*((LPPOINT)lParam));
|
||||
}
|
||||
|
||||
|
||||
|
||||
static LRESULT
|
||||
TOOLTIPS_Create (HWND hwnd, const CREATESTRUCTW *lpcs)
|
||||
TOOLTIPS_Create (HWND hwnd)
|
||||
{
|
||||
TOOLTIPS_INFO *infoPtr;
|
||||
|
||||
|
@ -1944,7 +1937,7 @@ TOOLTIPS_MouseMessage (TOOLTIPS_INFO *infoPtr)
|
|||
|
||||
|
||||
static LRESULT
|
||||
TOOLTIPS_NCCreate (HWND hwnd, const CREATESTRUCTW *lpcs)
|
||||
TOOLTIPS_NCCreate (HWND hwnd)
|
||||
{
|
||||
DWORD dwStyle = GetWindowLongW (hwnd, GWL_STYLE);
|
||||
DWORD dwExStyle = GetWindowLongW (hwnd, GWL_EXSTYLE);
|
||||
|
@ -1986,7 +1979,32 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
|||
static LRESULT
|
||||
TOOLTIPS_NotifyFormat (TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
FIXME ("hwnd=%p wParam=%lx lParam=%lx\n", infoPtr->hwndSelf, wParam, lParam);
|
||||
TTTOOL_INFO *toolPtr = infoPtr->tools;
|
||||
LRESULT nResult;
|
||||
|
||||
TRACE("infoPtr=%p wParam=%lx lParam=%p\n", infoPtr, wParam, (PVOID)lParam);
|
||||
|
||||
if (lParam == NF_QUERY) {
|
||||
if (toolPtr->bNotifyUnicode) {
|
||||
return NFR_UNICODE;
|
||||
} else {
|
||||
return NFR_ANSI;
|
||||
}
|
||||
}
|
||||
else if (lParam == NF_REQUERY) {
|
||||
nResult = SendMessageW (toolPtr->hwnd, WM_NOTIFYFORMAT,
|
||||
(WPARAM)infoPtr->hwndSelf, (LPARAM)NF_QUERY);
|
||||
if (nResult == NFR_ANSI) {
|
||||
toolPtr->bNotifyUnicode = FALSE;
|
||||
TRACE(" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n");
|
||||
} else if (nResult == NFR_UNICODE) {
|
||||
toolPtr->bNotifyUnicode = TRUE;
|
||||
TRACE(" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
|
||||
} else {
|
||||
TRACE (" -- WM_NOTIFYFORMAT returns: error!\n");
|
||||
}
|
||||
return nResult;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -2220,8 +2238,8 @@ TOOLTIPS_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
uMsg == TTM_HITTESTW);
|
||||
case TTM_NEWTOOLRECTA:
|
||||
case TTM_NEWTOOLRECTW:
|
||||
return TOOLTIPS_NewToolRectT (infoPtr, (LPTTTOOLINFOW)lParam,
|
||||
uMsg == TTM_NEWTOOLRECTW);
|
||||
return TOOLTIPS_NewToolRectT (infoPtr, (LPTTTOOLINFOW)lParam);
|
||||
|
||||
case TTM_POP:
|
||||
return TOOLTIPS_Pop (infoPtr);
|
||||
|
||||
|
@ -2268,11 +2286,10 @@ TOOLTIPS_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
uMsg == TTM_UPDATETIPTEXTW);
|
||||
|
||||
case TTM_WINDOWFROMPOINT:
|
||||
return TOOLTIPS_WindowFromPoint (hwnd, wParam, lParam);
|
||||
|
||||
return (LRESULT)WindowFromPoint (*((LPPOINT)lParam));
|
||||
|
||||
case WM_CREATE:
|
||||
return TOOLTIPS_Create (hwnd, (LPCREATESTRUCTW)lParam);
|
||||
return TOOLTIPS_Create (hwnd);
|
||||
|
||||
case WM_DESTROY:
|
||||
return TOOLTIPS_Destroy (infoPtr);
|
||||
|
@ -2300,7 +2317,7 @@ TOOLTIPS_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
return TOOLTIPS_MouseMessage (infoPtr);
|
||||
|
||||
case WM_NCCREATE:
|
||||
return TOOLTIPS_NCCreate (hwnd, (LPCREATESTRUCTW)lParam);
|
||||
return TOOLTIPS_NCCreate (hwnd);
|
||||
|
||||
case WM_NCHITTEST:
|
||||
return TOOLTIPS_NCHitTest (infoPtr, wParam, lParam);
|
||||
|
|
|
@ -33,7 +33,8 @@
|
|||
*
|
||||
* missing styles: TVS_FULLROWSELECT, TVS_INFOTIP, TVS_RTLREADING,
|
||||
*
|
||||
* missing item styles: TVIS_CUT, TVIS_EXPANDPARTIAL
|
||||
* missing item styles: TVIS_CUT, TVIS_EXPANDPARTIAL, TVIS_EX_FLAT,
|
||||
* TVIS_EX_DISABLED
|
||||
*
|
||||
* Make the insertion mark look right.
|
||||
* Scroll (instead of repaint) as much as possible.
|
||||
|
@ -69,6 +70,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(treeview);
|
|||
|
||||
typedef struct _TREEITEM /* HTREEITEM is a _TREEINFO *. */
|
||||
{
|
||||
HTREEITEM parent; /* handle to parent or 0 if at root */
|
||||
HTREEITEM nextSibling; /* handle to next item in list, 0 if last */
|
||||
HTREEITEM firstChild; /* handle to first child or 0 if no child */
|
||||
|
||||
UINT callbackMask;
|
||||
UINT state;
|
||||
UINT stateMask;
|
||||
|
@ -81,11 +86,8 @@ typedef struct _TREEITEM /* HTREEITEM is a _TREEINFO *. */
|
|||
LPARAM lParam;
|
||||
int iIntegral; /* item height multiplier (1 is normal) */
|
||||
int iLevel; /* indentation level:0=root level */
|
||||
HTREEITEM parent; /* handle to parent or 0 if at root */
|
||||
HTREEITEM firstChild; /* handle to first child or 0 if no child */
|
||||
HTREEITEM lastChild;
|
||||
HTREEITEM prevSibling; /* handle to prev item in list, 0 if first */
|
||||
HTREEITEM nextSibling; /* handle to next item in list, 0 if last */
|
||||
RECT rect;
|
||||
LONG linesOffset;
|
||||
LONG stateOffset;
|
||||
|
@ -488,10 +490,10 @@ static INT get_notifycode(const TREEVIEW_INFO *infoPtr, INT code)
|
|||
}
|
||||
|
||||
static inline BOOL
|
||||
TREEVIEW_SendRealNotify(const TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
||||
TREEVIEW_SendRealNotify(const TREEVIEW_INFO *infoPtr, WPARAM wParam, LPNMHDR pnmh)
|
||||
{
|
||||
TRACE("wParam=%ld, lParam=%ld\n", wParam, lParam);
|
||||
return SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, wParam, lParam);
|
||||
TRACE("wParam=%ld, lParam=%p\n", wParam, pnmh);
|
||||
return SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, wParam, (LPARAM)pnmh);
|
||||
}
|
||||
|
||||
static BOOL
|
||||
|
@ -505,7 +507,7 @@ TREEVIEW_SendSimpleNotify(const TREEVIEW_INFO *infoPtr, UINT code)
|
|||
nmhdr.idFrom = GetWindowLongPtrW(hwnd, GWLP_ID);
|
||||
nmhdr.code = get_notifycode(infoPtr, code);
|
||||
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmhdr.idFrom, (LPARAM)&nmhdr);
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmhdr.idFrom, &nmhdr);
|
||||
}
|
||||
|
||||
static VOID
|
||||
|
@ -568,7 +570,7 @@ TREEVIEW_SendTreeviewNotify(const TREEVIEW_INFO *infoPtr, UINT code, UINT action
|
|||
nmhdr.ptDrag.x = 0;
|
||||
nmhdr.ptDrag.y = 0;
|
||||
|
||||
ret = TREEVIEW_SendRealNotify(infoPtr, nmhdr.hdr.idFrom, (LPARAM)&nmhdr);
|
||||
ret = TREEVIEW_SendRealNotify(infoPtr, nmhdr.hdr.idFrom, &nmhdr.hdr);
|
||||
if (!infoPtr->bNtfUnicode)
|
||||
{
|
||||
Free(nmhdr.itemOld.pszText);
|
||||
|
@ -598,7 +600,7 @@ TREEVIEW_SendTreeviewDnDNotify(const TREEVIEW_INFO *infoPtr, UINT code,
|
|||
nmhdr.ptDrag.x = pt.x;
|
||||
nmhdr.ptDrag.y = pt.y;
|
||||
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmhdr.hdr.idFrom, (LPARAM)&nmhdr);
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmhdr.hdr.idFrom, &nmhdr.hdr);
|
||||
}
|
||||
|
||||
|
||||
|
@ -626,7 +628,7 @@ TREEVIEW_SendCustomDrawNotify(const TREEVIEW_INFO *infoPtr, DWORD dwDrawStage,
|
|||
nmcdhdr.clrTextBk = infoPtr->clrBk;
|
||||
nmcdhdr.iLevel = 0;
|
||||
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmcd->hdr.idFrom, (LPARAM)&nmcdhdr);
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmcd->hdr.idFrom, &nmcdhdr.nmcd.hdr);
|
||||
}
|
||||
|
||||
|
||||
|
@ -670,7 +672,7 @@ TREEVIEW_SendCustomDrawItemNotify(const TREEVIEW_INFO *infoPtr, HDC hdc,
|
|||
nmcd->dwDrawStage, nmcd->hdc, nmcd->dwItemSpec,
|
||||
nmcd->uItemState, nmcd->lItemlParam);
|
||||
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmcd->hdr.idFrom, (LPARAM)nmcdhdr);
|
||||
return TREEVIEW_SendRealNotify(infoPtr, nmcd->hdr.idFrom, &nmcdhdr->nmcd.hdr);
|
||||
}
|
||||
|
||||
static BOOL
|
||||
|
@ -687,7 +689,7 @@ TREEVIEW_BeginLabelEditNotify(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *editI
|
|||
TREEVIEW_TVItemFromItem(infoPtr, TVIF_HANDLE | TVIF_STATE | TVIF_PARAM | TVIF_TEXT,
|
||||
&tvdi.item, editItem);
|
||||
|
||||
ret = TREEVIEW_SendRealNotify(infoPtr, tvdi.hdr.idFrom, (LPARAM)&tvdi);
|
||||
ret = TREEVIEW_SendRealNotify(infoPtr, tvdi.hdr.idFrom, &tvdi.hdr);
|
||||
|
||||
if (!infoPtr->bNtfUnicode)
|
||||
Free(tvdi.item.pszText);
|
||||
|
@ -725,7 +727,8 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
if (mask & TVIF_TEXT)
|
||||
wineItem->textWidth = 0;
|
||||
|
||||
TREEVIEW_SendRealNotify(infoPtr, callback.hdr.idFrom, (LPARAM)&callback);
|
||||
TREEVIEW_SendRealNotify(infoPtr, callback.hdr.idFrom, &callback.hdr);
|
||||
TRACE("resulting code 0x%08x\n", callback.hdr.code);
|
||||
|
||||
/* It may have changed due to a call to SetItem. */
|
||||
mask &= wineItem->callbackMask;
|
||||
|
@ -733,7 +736,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
if ((mask & TVIF_TEXT) && callback.item.pszText != wineItem->pszText)
|
||||
{
|
||||
/* Instead of copying text into our buffer user specified its own */
|
||||
if (!infoPtr->bNtfUnicode) {
|
||||
if (!infoPtr->bNtfUnicode && (callback.hdr.code == TVN_GETDISPINFOA)) {
|
||||
LPWSTR newText;
|
||||
int buflen;
|
||||
int len = MultiByteToWideChar( CP_ACP, 0,
|
||||
|
@ -774,7 +777,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
}
|
||||
else if (mask & TVIF_TEXT) {
|
||||
/* User put text into our buffer, that is ok unless A string */
|
||||
if (!infoPtr->bNtfUnicode) {
|
||||
if (!infoPtr->bNtfUnicode && (callback.hdr.code == TVN_GETDISPINFOA)) {
|
||||
LPWSTR newText;
|
||||
LPWSTR oldText = NULL;
|
||||
int buflen;
|
||||
|
@ -1005,7 +1008,7 @@ TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr)
|
|||
* inc/dec to toggle the images. */
|
||||
newItem->iImage = 0;
|
||||
newItem->iSelectedImage = 0;
|
||||
newItem->iExpandedImage = 0;
|
||||
newItem->iExpandedImage = (WORD)I_IMAGENONE;
|
||||
|
||||
if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1)
|
||||
{
|
||||
|
@ -1478,12 +1481,12 @@ TREEVIEW_RemoveItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem)
|
|||
{
|
||||
TRACE("%p, (%s)\n", wineItem, TREEVIEW_ItemName(wineItem));
|
||||
|
||||
TREEVIEW_SendTreeviewNotify(infoPtr, TVN_DELETEITEMW, TVC_UNKNOWN,
|
||||
TVIF_HANDLE | TVIF_PARAM, wineItem, 0);
|
||||
|
||||
if (wineItem->firstChild)
|
||||
TREEVIEW_RemoveAllChildren(infoPtr, wineItem);
|
||||
|
||||
TREEVIEW_SendTreeviewNotify(infoPtr, TVN_DELETEITEMW, TVC_UNKNOWN,
|
||||
TVIF_HANDLE | TVIF_PARAM, wineItem, 0);
|
||||
|
||||
TREEVIEW_UnlinkItem(wineItem);
|
||||
|
||||
infoPtr->uNumItems--;
|
||||
|
@ -1512,7 +1515,7 @@ TREEVIEW_DeleteItem(TREEVIEW_INFO *infoPtr, HTREEITEM wineItem)
|
|||
TREEVIEW_ITEM *parent, *prev = NULL;
|
||||
BOOL visible = FALSE;
|
||||
|
||||
if (wineItem == TVI_ROOT)
|
||||
if (wineItem == TVI_ROOT || !wineItem)
|
||||
{
|
||||
TRACE("TVI_ROOT\n");
|
||||
parent = infoPtr->root;
|
||||
|
@ -1827,7 +1830,7 @@ TREEVIEW_SetItemHeight(TREEVIEW_INFO *infoPtr, INT newHeight)
|
|||
{
|
||||
INT prevHeight = infoPtr->uItemHeight;
|
||||
|
||||
TRACE("%d\n", newHeight);
|
||||
TRACE("new=%d, old=%d\n", newHeight, prevHeight);
|
||||
if (newHeight == -1)
|
||||
{
|
||||
infoPtr->uItemHeight = TREEVIEW_NaturalHeight(infoPtr);
|
||||
|
@ -1835,13 +1838,17 @@ TREEVIEW_SetItemHeight(TREEVIEW_INFO *infoPtr, INT newHeight)
|
|||
}
|
||||
else
|
||||
{
|
||||
infoPtr->uItemHeight = newHeight;
|
||||
infoPtr->bHeightSet = TRUE;
|
||||
if (newHeight == 0) newHeight = 1;
|
||||
infoPtr->uItemHeight = newHeight;
|
||||
infoPtr->bHeightSet = TRUE;
|
||||
}
|
||||
|
||||
/* Round down, unless we support odd ("non even") heights. */
|
||||
if (!(infoPtr->dwStyle & TVS_NONEVENHEIGHT))
|
||||
infoPtr->uItemHeight &= ~1;
|
||||
if (!(infoPtr->dwStyle & TVS_NONEVENHEIGHT) && infoPtr->uItemHeight != 1)
|
||||
{
|
||||
infoPtr->uItemHeight &= ~1;
|
||||
TRACE("after rounding=%d\n", infoPtr->uItemHeight);
|
||||
}
|
||||
|
||||
if (infoPtr->uItemHeight != prevHeight)
|
||||
{
|
||||
|
@ -2061,6 +2068,7 @@ static inline LRESULT
|
|||
TREEVIEW_GetVisibleCount(const TREEVIEW_INFO *infoPtr)
|
||||
{
|
||||
/* Surprise! This does not take integral height into account. */
|
||||
TRACE("client=%d, item=%d\n", infoPtr->clientHeight, infoPtr->uItemHeight);
|
||||
return infoPtr->clientHeight / infoPtr->uItemHeight;
|
||||
}
|
||||
|
||||
|
@ -2142,6 +2150,13 @@ TREEVIEW_GetItemT(const TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tvItem->mask & TVIF_STATEEX)
|
||||
{
|
||||
FIXME("Extended item state not supported, returning 0.\n");
|
||||
tvItem->uStateEx = 0;
|
||||
}
|
||||
|
||||
TRACE("item <%p>, txt %p, img %p, mask %x\n",
|
||||
wineItem, tvItem->pszText, &tvItem->iImage, tvItem->mask);
|
||||
|
||||
|
@ -2575,7 +2590,7 @@ TREEVIEW_DrawItem(const TREEVIEW_INFO *infoPtr, HDC hdc, TREEVIEW_ITEM *wineItem
|
|||
/* The item is currently selected */
|
||||
imageIndex = wineItem->iSelectedImage;
|
||||
}
|
||||
else if ((wineItem->state & TVIS_EXPANDED) && (wineItem->iExpandedImage >= 0))
|
||||
else if ((wineItem->state & TVIS_EXPANDED) && (wineItem->iExpandedImage != (WORD)I_IMAGENONE))
|
||||
{
|
||||
/* The item is currently not selected but expanded */
|
||||
imageIndex = wineItem->iExpandedImage;
|
||||
|
@ -2878,6 +2893,7 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr, HDC hdc, const RECT *rc)
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// This is correct, but is causes and infinite loop of WM_PAINT messages, resulting
|
||||
// in continuous painting of the scroll bar in reactos. Comment out until the real
|
||||
// bug is found
|
||||
|
@ -2917,6 +2933,7 @@ TREEVIEW_Paint(TREEVIEW_INFO *infoPtr, HDC hdc_ref)
|
|||
{
|
||||
hdc = hdc_ref;
|
||||
GetClientRect(infoPtr->hwnd, &rc);
|
||||
TREEVIEW_FillBkgnd(infoPtr, hdc, &rc);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3309,7 +3326,7 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
|
||||
static BOOL
|
||||
TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
||||
BOOL bExpandPartial, BOOL bUser)
|
||||
BOOL partial, BOOL user)
|
||||
{
|
||||
LONG scrollDist;
|
||||
LONG orgNextTop = 0;
|
||||
|
@ -3317,7 +3334,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
TREEVIEW_ITEM *nextItem, *tmpItem;
|
||||
BOOL sendsNotifications;
|
||||
|
||||
TRACE("(%p, %p, partial=%d, %d\n", infoPtr, wineItem, bExpandPartial, bUser);
|
||||
TRACE("(%p, %p, partial=%d, %d\n", infoPtr, wineItem, partial, user);
|
||||
|
||||
if (wineItem->state & TVIS_EXPANDED)
|
||||
return TRUE;
|
||||
|
@ -3338,7 +3355,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
|
||||
TRACE("TVE_EXPAND %p %s\n", wineItem, TREEVIEW_ItemName(wineItem));
|
||||
|
||||
sendsNotifications = bUser || ((wineItem->cChildren != 0) &&
|
||||
sendsNotifications = user || ((wineItem->cChildren != 0) &&
|
||||
!(wineItem->state & TVIS_EXPANDEDONCE));
|
||||
if (sendsNotifications)
|
||||
{
|
||||
|
@ -3353,7 +3370,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
|
||||
wineItem->state |= TVIS_EXPANDED;
|
||||
|
||||
if (bExpandPartial)
|
||||
if (partial)
|
||||
FIXME("TVE_EXPANDPARTIAL not implemented\n");
|
||||
|
||||
if (ISVISIBLE(wineItem))
|
||||
|
@ -3419,6 +3436,58 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/* Handler for TVS_SINGLEEXPAND behaviour. Used on response
|
||||
to mouse messages and TVM_SELECTITEM.
|
||||
|
||||
selection - previously selected item, used to collapse a part of a tree
|
||||
item - new selected item
|
||||
*/
|
||||
static void TREEVIEW_SingleExpand(TREEVIEW_INFO *infoPtr,
|
||||
HTREEITEM selection, HTREEITEM item)
|
||||
{
|
||||
TREEVIEW_ITEM *SelItem;
|
||||
|
||||
if ((infoPtr->dwStyle & TVS_SINGLEEXPAND) == 0 || infoPtr->hwndEdit || !item) return;
|
||||
|
||||
TREEVIEW_SendTreeviewNotify(infoPtr, TVN_SINGLEEXPAND, TVC_UNKNOWN, TVIF_HANDLE | TVIF_PARAM, item, 0);
|
||||
|
||||
/*
|
||||
* Close the previous selection all the way to the root
|
||||
* as long as the new selection is not a child
|
||||
*/
|
||||
if(selection && (selection != item))
|
||||
{
|
||||
BOOL closeit = TRUE;
|
||||
SelItem = item;
|
||||
|
||||
/* determine if the hitItem is a child of the currently selected item */
|
||||
while(closeit && SelItem && TREEVIEW_ValidItem(infoPtr, SelItem) &&
|
||||
(SelItem->parent != infoPtr->root))
|
||||
{
|
||||
closeit = (SelItem != selection);
|
||||
SelItem = SelItem->parent;
|
||||
}
|
||||
|
||||
if(closeit)
|
||||
{
|
||||
if(TREEVIEW_ValidItem(infoPtr, selection))
|
||||
SelItem = selection;
|
||||
|
||||
while(SelItem && (SelItem != item) && TREEVIEW_ValidItem(infoPtr, SelItem) &&
|
||||
SelItem->parent != infoPtr->root)
|
||||
{
|
||||
TREEVIEW_Collapse(infoPtr, SelItem, FALSE, FALSE);
|
||||
SelItem = SelItem->parent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Expand the current item
|
||||
*/
|
||||
TREEVIEW_Expand(infoPtr, item, FALSE, FALSE);
|
||||
}
|
||||
|
||||
static BOOL
|
||||
TREEVIEW_Toggle(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, BOOL bUser)
|
||||
{
|
||||
|
@ -3865,7 +3934,7 @@ TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel)
|
|||
tvdi.item.cchTextMax = 0;
|
||||
}
|
||||
|
||||
bCommit = TREEVIEW_SendRealNotify(infoPtr, tvdi.hdr.idFrom, (LPARAM)&tvdi);
|
||||
bCommit = TREEVIEW_SendRealNotify(infoPtr, tvdi.hdr.idFrom, &tvdi.hdr);
|
||||
|
||||
if (!bCancel && bCommit) /* Apply the changes */
|
||||
{
|
||||
|
@ -4136,58 +4205,11 @@ TREEVIEW_LButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
|
|||
}
|
||||
else if (ht.flags & (TVHT_ONITEMICON|TVHT_ONITEMLABEL)) /* select the item if the hit was inside of the icon or text */
|
||||
{
|
||||
/*
|
||||
* if we are TVS_SINGLEEXPAND then we want this single click to
|
||||
* do a bunch of things.
|
||||
*/
|
||||
if((infoPtr->dwStyle & TVS_SINGLEEXPAND) &&
|
||||
(infoPtr->hwndEdit == 0))
|
||||
{
|
||||
TREEVIEW_ITEM *SelItem;
|
||||
|
||||
/*
|
||||
* Send the notification
|
||||
*/
|
||||
TREEVIEW_SendTreeviewNotify(infoPtr, TVN_SINGLEEXPAND, TVC_UNKNOWN, TVIF_HANDLE | TVIF_PARAM, ht.hItem, 0);
|
||||
|
||||
/*
|
||||
* Close the previous selection all the way to the root
|
||||
* as long as the new selection is not a child
|
||||
*/
|
||||
if((infoPtr->selectedItem)
|
||||
&& (infoPtr->selectedItem != ht.hItem))
|
||||
{
|
||||
BOOL closeit = TRUE;
|
||||
SelItem = ht.hItem;
|
||||
|
||||
/* determine if the hitItem is a child of the currently selected item */
|
||||
while(closeit && SelItem && TREEVIEW_ValidItem(infoPtr, SelItem) && (SelItem != infoPtr->root))
|
||||
{
|
||||
closeit = (SelItem != infoPtr->selectedItem);
|
||||
SelItem = SelItem->parent;
|
||||
}
|
||||
|
||||
if(closeit)
|
||||
{
|
||||
if(TREEVIEW_ValidItem(infoPtr, infoPtr->selectedItem))
|
||||
SelItem = infoPtr->selectedItem;
|
||||
|
||||
while(SelItem && (SelItem != ht.hItem) && TREEVIEW_ValidItem(infoPtr, SelItem) && (SelItem != infoPtr->root))
|
||||
{
|
||||
TREEVIEW_Collapse(infoPtr, SelItem, FALSE, FALSE);
|
||||
SelItem = SelItem->parent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Expand the current item
|
||||
*/
|
||||
TREEVIEW_Expand(infoPtr, ht.hItem, TVE_TOGGLE, FALSE);
|
||||
}
|
||||
TREEVIEW_ITEM *selection = infoPtr->selectedItem;
|
||||
|
||||
/* Select the current item */
|
||||
TREEVIEW_DoSelectItem(infoPtr, TVGN_CARET, ht.hItem, TVC_BYMOUSE);
|
||||
TREEVIEW_SingleExpand(infoPtr, selection, ht.hItem);
|
||||
}
|
||||
else if (ht.flags & TVHT_ONITEMSTATEICON)
|
||||
{
|
||||
|
@ -4350,6 +4372,9 @@ TREEVIEW_DoSelectItem(TREEVIEW_INFO *infoPtr, INT action, HTREEITEM newSelect,
|
|||
|
||||
switch (action)
|
||||
{
|
||||
case TVGN_CARET|TVSI_NOSINGLEEXPAND:
|
||||
FIXME("TVSI_NOSINGLEEXPAND specified.\n");
|
||||
/* Fall through */
|
||||
case TVGN_CARET:
|
||||
prevSelect = infoPtr->selectedItem;
|
||||
|
||||
|
@ -4419,7 +4444,9 @@ TREEVIEW_DoSelectItem(TREEVIEW_INFO *infoPtr, INT action, HTREEITEM newSelect,
|
|||
static LRESULT
|
||||
TREEVIEW_SelectItem(TREEVIEW_INFO *infoPtr, INT wParam, HTREEITEM item)
|
||||
{
|
||||
if (item != NULL && !TREEVIEW_ValidItem(infoPtr, item))
|
||||
TREEVIEW_ITEM *selection = infoPtr->selectedItem;
|
||||
|
||||
if (item && !TREEVIEW_ValidItem(infoPtr, item))
|
||||
return FALSE;
|
||||
|
||||
TRACE("%p (%s) %d\n", item, TREEVIEW_ItemName(item), wParam);
|
||||
|
@ -4427,6 +4454,8 @@ TREEVIEW_SelectItem(TREEVIEW_INFO *infoPtr, INT wParam, HTREEITEM item)
|
|||
if (!TREEVIEW_DoSelectItem(infoPtr, wParam, item, TVC_UNKNOWN))
|
||||
return FALSE;
|
||||
|
||||
TREEVIEW_SingleExpand(infoPtr, selection, item);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -5474,7 +5503,7 @@ TREEVIEW_SetCursor(const TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
|||
nmmouse.pt.x = 0;
|
||||
nmmouse.pt.y = 0;
|
||||
nmmouse.dwHitInfo = lParam;
|
||||
if (TREEVIEW_SendRealNotify(infoPtr, nmmouse.hdr.idFrom, (LPARAM)&nmmouse))
|
||||
if (TREEVIEW_SendRealNotify(infoPtr, nmmouse.hdr.idFrom, &nmmouse.hdr))
|
||||
return 0;
|
||||
|
||||
if (item && (infoPtr->dwStyle & TVS_TRACKSELECT))
|
||||
|
@ -5824,10 +5853,10 @@ TREEVIEW_Unregister(void)
|
|||
/* Tree Verification ****************************************************/
|
||||
|
||||
static inline void
|
||||
TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item);
|
||||
TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item);
|
||||
|
||||
static inline void TREEVIEW_VerifyItemCommon(TREEVIEW_INFO *infoPtr,
|
||||
TREEVIEW_ITEM *item)
|
||||
const TREEVIEW_ITEM *item)
|
||||
{
|
||||
assert(infoPtr != NULL);
|
||||
assert(item != NULL);
|
||||
|
@ -5866,7 +5895,7 @@ static inline void TREEVIEW_VerifyItemCommon(TREEVIEW_INFO *infoPtr,
|
|||
}
|
||||
|
||||
static inline void
|
||||
TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
|
||||
TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
|
||||
{
|
||||
assert(item != NULL);
|
||||
|
||||
|
@ -5882,9 +5911,9 @@ TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
|
|||
}
|
||||
|
||||
static inline void
|
||||
TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
|
||||
TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
|
||||
{
|
||||
TREEVIEW_ITEM *child;
|
||||
const TREEVIEW_ITEM *child;
|
||||
assert(item != NULL);
|
||||
|
||||
for (child = item->firstChild; child != NULL; child = child->nextSibling)
|
||||
|
|
|
@ -48,7 +48,7 @@ reactos/dll/win32/browseui # Out of sync
|
|||
reactos/dll/win32/cabinet # Autosync
|
||||
reactos/dll/win32/clusapi # Autosync
|
||||
reactos/dll/win32/comcat # Autosync
|
||||
reactos/dll/win32/comctl32 # Autosync
|
||||
reactos/dll/win32/comctl32 # Synced to Wine 1.3.14
|
||||
reactos/dll/win32/comdlg32 # Autosync
|
||||
reactos/dll/win32/compstui # Autosync
|
||||
reactos/dll/win32/credui # Autosync
|
||||
|
|
Loading…
Reference in a new issue