ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
December 2021
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
33 participants
155 discussions
Start a n
N
ew thread
[reactos] 01/01: [TRANSLATION] Update Basque Spanish (eu-ES) translation - Part 1 (#4057)
by Julen Urizar Compains
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c49d1de135dd117bdd474…
commit c49d1de135dd117bdd4744488ab2468cd7a5b2f1 Author: Julen Urizar Compains <julenuri(a)hotmail.com> AuthorDate: Mon Dec 27 14:00:04 2021 +0100 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 27 16:00:04 2021 +0300 [TRANSLATION] Update Basque Spanish (eu-ES) translation - Part 1 (#4057) Reviewed-by: Ismael Ferreras Morezuelas <swyterzone+ros(a)gmail.com> --- base/setup/reactos/lang/eu-ES.rc | 182 ++++++ base/setup/usetup/lang/eu-ES.h | 10 +- base/setup/welcome/lang/eu-ES.rc | 45 ++ base/setup/welcome/welcome.rc | 3 + base/shell/explorer/explorer.rc | 3 + base/shell/explorer/lang/eu-ES.rc | 205 +++++++ base/system/userinit/lang/eu-ES.rc | 53 ++ base/system/userinit/userinit.rc | 3 + base/system/winlogon/lang/eu-ES.rc | 67 +++ boot/bootdata/hivedef.inf | 70 +++ dll/win32/browseui/browseui.rc | 3 + dll/win32/browseui/lang/eu-ES.rc | 351 ++++++++++++ dll/win32/comctl32/lang/comctl_Eu.rc | 101 ++++ dll/win32/comctl32/rsrc.rc | 3 + dll/win32/samsrv/lang/eu-ES.rc | 46 ++ dll/win32/samsrv/samsrv.rc | 3 + dll/win32/shell32/lang/eu-ES.rc | 1041 ++++++++++++++++++++++++++++++++++ dll/win32/shell32/shell32.rc | 3 + dll/win32/syssetup/lang/eu-ES.rc | 260 +++++++++ dll/win32/syssetup/syssetup.rc | 3 + dll/win32/userenv/lang/eu-ES.rc | 32 ++ dll/win32/userenv/userenv.rc | 3 + media/inf/shortcuts.inf | 68 +++ 23 files changed, 2553 insertions(+), 5 deletions(-) diff --git a/base/setup/reactos/lang/eu-ES.rc b/base/setup/reactos/lang/eu-ES.rc new file mode 100644 index 00000000000..1c983362f58 --- /dev/null +++ b/base/setup/reactos/lang/eu-ES.rc @@ -0,0 +1,182 @@ +/* + * PROJECT: ReactOS Setup Wizard + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +IDD_STARTPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Bienvenido al Asistente de Instalación de ReactOS", IDC_STARTTITLE, 115, 8, 195, 24 + LTEXT "¡Aún no puede instalar ReactOS directamente desde el CD! Por favor, reinicie su equipo desde el CD para instalar ReactOS.", IDC_STATIC, 115, 40, 200, 100 + LTEXT "Pulse Finalizar para salir del instalador.", IDC_STATIC, 115, 169, 195, 17 +END + +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + AUTORADIOBUTTON "Instalar ReactOS", IDC_INSTALL, 7, 7, 277, 10, WS_GROUP | WS_TABSTOP + LTEXT "Instala una nueva copia de ReactOS. Esta opción no protege sus archivos, programas y ajustes. Puede realizar cambios a su disco duro y particiones.", IDC_INSTALLTEXT, 18, 18, 269, 25, NOT WS_GROUP + AUTORADIOBUTTON "Actualizar o reparar una instalación existente de ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Actualiza o repara una instalación existente de ReactOS. Esta opción protege sus archivos, programas y ajustes. Esta opción sólo está disponible si ha instalado ReactOS previamente en este equipo.", IDC_UPDATETEXT, 18, 61, 269, 30, NOT WS_GROUP + LTEXT "Presione Siguiente para instalar los dispositivos.", IDC_STATIC, 7, 128, 297, 8 +END + +IDD_UPDATEREPAIRPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "El instalador de ReactOS puede actualizar una de las instalaciones disponibles listadas a continuación o, si la instalación de ReactOS está dañada, intentar repararla.", IDC_STATIC, 6, 6, 300, 18 + CONTROL "", IDC_NTOSLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP, 6, 30, 303, 90 + PUSHBUTTON "&No actualizar", IDC_SKIPUPGRADE, 230, 128, 80, 14 + LTEXT "Haga click en Siguiente para actualizar el SO seleccionado, o en No actualizar para continuar una nueva instalación sin actualizar.", IDC_STATIC, 7, 124, 222, 16 +END + +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Equipo:", IDC_STATIC, 20, 15, 80, 10 + CONTROL "", IDC_COMPUTER, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 15, 150, 80 + LTEXT "Pantalla:", IDC_STATIC, 20, 35, 80, 10 + CONTROL "", IDC_DISPLAY, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 35, 150, 80 + LTEXT "Teclado:", IDC_STATIC, 20, 55, 80, 10 + CONTROL "", IDC_KEYBOARD, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 55, 150, 80 + LTEXT "Presione Siguiente para configurar la instalación de dispositivos.", IDC_STATIC, 7, 128, 297, 8 +END + +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_PARTITION, "SysTreeList32", WS_BORDER | WS_VISIBLE | WS_TABSTOP | LVS_REPORT | LVS_SINGLESEL, 7, 7, 303, 112 + PUSHBUTTON "&Crear", IDC_PARTCREATE, 7, 122, 50, 15 + PUSHBUTTON "&Borrar", IDC_PARTDELETE, 63, 122, 50, 15 + PUSHBUTTON "D&river", IDC_DEVICEDRIVER, 174, 122, 50, 15, WS_DISABLED + PUSHBUTTON "&Opciones avanzadas...", IDC_PARTMOREOPTS, 230, 122, 80, 15 + // LTEXT "Presione Siguiente para verificar el resumen.", IDC_STATIC, 10, 180, 277, 20 +END + +IDD_PARTITION DIALOGEX 0, 0, 145, 90 +STYLE DS_SHELLFONT | WS_VISIBLE | WS_CAPTION +CAPTION "Crear Partición" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_UPDOWN1, "msctls_updown32", WS_VISIBLE, 104, 22, 9, 13 + CONTROL "Crear y formatear una partición", IDC_STATIC, "Button", BS_GROUPBOX, 7, 5, 129, 57 + LTEXT "Tamaño:", IDC_STATIC, 13, 24, 27, 9 + EDITTEXT IDC_PARTSIZE, 58, 22, 47, 13, WS_VISIBLE | WS_TABSTOP + LTEXT "GB", IDC_UNIT, 117, 24, 14, 9 + LTEXT "Sistema de archivos:", IDC_STATIC, 13, 46, 42, 9 + CONTROL "", IDC_FSTYPE, "ComboBox", WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 42, 73, 50 + PUSHBUTTON "&Aceptar", IDOK, 35, 68, 47, 15, WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Cancelar", IDCANCEL, 87, 68, 47, 15, WS_VISIBLE | WS_TABSTOP +END + +IDD_BOOTOPTIONS DIALOGEX 0, 0, 305, 116 +STYLE DS_SHELLFONT | WS_VISIBLE | WS_CAPTION +CAPTION "Ajustes avanzados de la partición" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Carpeta de instalación", IDC_STATIC, "Button", BS_GROUPBOX, 4, 1, 298, 30 + EDITTEXT IDC_PATH, 10, 11, 278, 13, WS_VISIBLE + CONTROL "Instalación del cargador de arranque", IDC_STATIC, "Button", BS_GROUPBOX, 4, 36, 298, 52 + CONTROL "Instalar el cargador de arranque en el disco duro (MBR y VBR)", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 46, 278, 11 + CONTROL "Instalar el cargador de arranque en el disco duro (solo VBR)", IDC_INSTVBRONLY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 57, 278, 11 + CONTROL "No instalar el cargador de arranque", IDC_NOINSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 10, 68, 278, 11 + PUSHBUTTON "&Aceptar", IDOK, 180, 94, 50, 15, WS_TABSTOP | WS_VISIBLE + PUSHBUTTON "&Cancelar", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE +END + +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Tipo de instalación:", IDC_STATIC, 18, 5, 74, 11 + EDITTEXT IDC_INSTALLTYPE, 95, 4, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Fuente de instalación:", IDC_STATIC, 18, 17, 74, 11 + EDITTEXT IDC_INSTALLSOURCE, 95, 16, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Arquitectura:", IDC_STATIC, 18, 29, 74, 11 + EDITTEXT IDC_ARCHITECTURE, 95, 28, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Equipo:", IDC_STATIC, 18, 41, 74, 11 + EDITTEXT IDC_COMPUTER, 95, 40, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Pantalla:", IDC_STATIC, 18, 53, 74, 11 + EDITTEXT IDC_DISPLAY, 95, 52, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Teclado:", IDC_STATIC, 18, 65, 74, 11 + EDITTEXT IDC_KEYBOARD, 95, 64, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Volumen de destino:", IDC_STATIC, 18, 77, 74, 11 + EDITTEXT IDC_DESTDRIVE, 95, 76, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Directorio de destino:", IDC_STATIC, 18, 89, 74, 11 + EDITTEXT IDC_PATH, 95, 88, 210, 13, ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE | NOT WS_BORDER | NOT WS_TABSTOP + AUTOCHECKBOX "Confirmo que las configuraciones de instalación son correctas. También conozco \nque ReactOS está en un fase de software Alpha y podría romper mi ordenador y corromper mis datos.", + IDC_CONFIRM_INSTALL, 7, 104, 303, 18, BS_MULTILINE + LTEXT "Por favor, confirme que todas las configuraciones son correctas, \nluego haga clic en Instalar para empezar el Proceso de Instalación.", IDC_STATIC, 7, 124, 303, 18 +END + +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Instalando archivos...", IDC_ACTIVITY, 20, 50, 277, 10 + LTEXT "test.txt", IDC_ITEM, 30, 80, 257, 10 + CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 +END + +IDD_RESTARTPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Instalación de ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Completando el Asistente de Instalación de ReactOS", IDC_FINISHTITLE, 115, 8, 195, 24 + LTEXT "La primera parte de la instalación de ReactOS se ha completado satisfactoriamente.", IDC_STATIC, 20, 50, 277, 10 + LTEXT "Cuando presione Finalizar, su equipo se reiniciará.", IDC_STATIC, 20, 80, 277, 10 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 + LTEXT "Si tiene CDs en alguna unidad, retírelos. Luego, reinicie el equipo haciendo clic en Finalizar.", IDC_STATIC, 10, 180, 297, 20 +END + +STRINGTABLE +BEGIN + IDS_TYPETITLE "Bienvenido a la instalación de ReactOS" + IDS_TYPESUBTITLE "Seleccione el tipo de instalación." + IDS_DEVICETITLE "Instalación de los dispositivos básicos" + IDS_DEVICESUBTITLE "Seleccione los ajustes de la pantalla y el teclado." + IDS_DRIVETITLE "Crear la partición para la instalación y la carpeta del sistema" + IDS_DRIVESUBTITLE "Preparar la partición para la instalación, la carpeta del sistema y el cargador de arranque." + IDS_PROCESSTITLE "Preparar partición, copiar archivos e instalar sistema" + IDS_PROCESSSUBTITLE "Crear y formatear partición, copiar archivos, instalar e instalar el cargador de arranque" + IDS_RESTARTTITLE "Primera parte de la instalación finalizada" + IDS_RESTARTSUBTITLE "La primera parte de la instalación ha sido completada, reinicie para continuar con la segunda parte" + IDS_SUMMARYTITLE "Resumen de la instalación" + IDS_SUMMARYSUBTITLE "Lista las propiedades de la instalación para su verificación antes de aplicarlas al dispositivo instalado" + IDS_ABORTSETUP "ReactOS no está completamente instalado en su equipo. Si sale de la instalación ahora, tendrá que ejecutar el instalador otra vez para instalar ReactOS. ¿Realmente quiere salir?" + IDS_ABORTSETUP2 "¿Abortar instalación?" + IDS_NO_TXTSETUP_SIF "No se pudo encontrar 'txtsetup.sif'.\nLa instalación no puede continuar." + IDS_CAPTION "Instalación de ReactOS" +END + +STRINGTABLE +BEGIN + IDS_INSTALLATION_NAME "Nombre" + IDS_INSTALLATION_PATH "Ruta de instalación" + IDS_INSTALLATION_VENDOR "Fabricante" +END + +STRINGTABLE +BEGIN + IDS_PARTITION_NAME "Nombre" + IDS_PARTITION_TYPE "Tipo" + IDS_PARTITION_SIZE "Tamaño" + IDS_PARTITION_STATUS "Estado" +END diff --git a/base/setup/usetup/lang/eu-ES.h b/base/setup/usetup/lang/eu-ES.h index 14ab64b8bc7..c78fe8dd234 100644 --- a/base/setup/usetup/lang/eu-ES.h +++ b/base/setup/usetup/lang/eu-ES.h @@ -414,7 +414,7 @@ static MUI_ENTRY euESDevicePageEntries[] = { 6, 8, - "Ondoren zerrenda erakutsi dizkizu zure gailuen/dispositiboen konfigurazioa.", + "Ondoren zerrenda erakutsi dizkizu zure gailuen konfigurazioa.", TEXT_STYLE_NORMAL, TEXT_ID_STATIC }, @@ -1432,14 +1432,14 @@ static MUI_ENTRY euESFileCopyEntries[] = { 0, 12, - "Itxaron mesedez ReactOS Instalazioa fitxategiak kopiatuen bitartean ReactOS-n", + "Itxaron mesedez ReactOS Instalazioa fitxategiak kopiatuen", TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER, TEXT_ID_STATIC }, { 0, 13, - "karpeta.", + "bitartean ReactOS-n karpeta.", TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER, TEXT_ID_STATIC }, @@ -1529,14 +1529,14 @@ static MUI_ENTRY euESBootLoaderInstallPageEntries[] = { 4, 3, - " ReactOS " KERNEL_VERSION_STR " Setup ", + " ReactOS " KERNEL_VERSION_STR " Instalazioa ", TEXT_STYLE_UNDERLINE, TEXT_ID_STATIC }, { 0, 0, - "Installing the bootloader onto the media, please wait...", + "Instalatzen ari du bootloader unitatean, itxaron mezedez...", TEXT_TYPE_STATUS | TEXT_PADDING_BIG, TEXT_ID_STATIC }, diff --git a/base/setup/welcome/lang/eu-ES.rc b/base/setup/welcome/lang/eu-ES.rc new file mode 100644 index 00000000000..64a3920b284 --- /dev/null +++ b/base/setup/welcome/lang/eu-ES.rc @@ -0,0 +1,45 @@ +/* + * PROJECT: ReactOS welcome/autorun application + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +/* String Tables */ + +/* Default settings */ +STRINGTABLE +BEGIN + IDS_APPTITLE "ReactOS - Ongi etorri" + IDS_DEFAULT_TOPIC_TITLE "ReactOS" + IDS_DEFAULT_TOPIC_DESC "Ongi etorri ReactOS-en sistema eragile.\n\nKlikatu nahi baduzun eskerrako aukerak." + IDS_FONTNAME "Tahoma" + IDS_CHECKTEXT "&Erakutsi lehioa hau berriro" + IDS_CLOSETEXT "&Irten" +END + +/* Topic buttons */ +STRINGTABLE +BEGIN + IDS_TOPIC_BUTTON0 "&ReactOS Instalatu" + IDS_TOPIC_BUTTON1 "&CD esploratu" + IDS_TOPIC_BUTTON2 "&Irten" +END + +/* Topic titles */ +STRINGTABLE +BEGIN + IDS_TOPIC_TITLE0 "ReactOS Instalatu" + IDS_TOPIC_TITLE1 "CD esploratu" + IDS_TOPIC_TITLE2 "Irten" +END + +/* Topic descriptions */ +STRINGTABLE +BEGIN + IDS_TOPIC_DESC0 "ReactOS-en Instalazio berria sortu zure ordenagailuan edo eguneratu instalazioa baduzu." + IDS_TOPIC_DESC1 "CD esploratu nabigatzailekin." + IDS_TOPIC_DESC2 "Klik egiten Irten programa honetan irtetzeko." +END diff --git a/base/setup/welcome/welcome.rc b/base/setup/welcome/welcome.rc index 0b7689ba54f..d8681400374 100644 --- a/base/setup/welcome/welcome.rc +++ b/base/setup/welcome/welcome.rc @@ -55,6 +55,9 @@ END #ifdef LANGUAGE_ET_EE #include "lang/et-EE.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FR_FR #include "lang/fr-FR.rc" #endif diff --git a/base/shell/explorer/explorer.rc b/base/shell/explorer/explorer.rc index f23251e6422..94becb0b329 100644 --- a/base/shell/explorer/explorer.rc +++ b/base/shell/explorer/explorer.rc @@ -106,6 +106,9 @@ END #ifdef LANGUAGE_ET_EE #include "lang/et-EE.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FI_FI #include "lang/fi-FI.rc" #endif diff --git a/base/shell/explorer/lang/eu-ES.rc b/base/shell/explorer/lang/eu-ES.rc new file mode 100644 index 00000000000..cfa25445729 --- /dev/null +++ b/base/shell/explorer/lang/eu-ES.rc @@ -0,0 +1,205 @@ +/* + * PROJECT: ReactOS Explorer + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +IDM_TRAYWND MENU +BEGIN + POPUP "" + BEGIN + MENUITEM SEPARATOR + MENUITEM "&Doitu data eta ordua", ID_SHELL_CMD_ADJUST_DAT + MENUITEM "&Pertsonalizatu jakinarazpenak...", ID_SHELL_CMD_CUST_NOTIF + MENUITEM SEPARATOR + MENUITEM "&Leihoak teilakatuta", ID_SHELL_CMD_CASCADE_WND + MENUITEM "Leihoak lauza moduan &horizontalki", ID_SHELL_CMD_TILE_WND_H + MENUITEM "Leihoak lauza moduan &bertikalki", ID_SHELL_CMD_TILE_WND_V + MENUITEM "E&rakutsi mahaigaina", ID_SHELL_CMD_SHOW_DESKTOP + MENUITEM "Dese&gin", ID_SHELL_CMD_UNDO_ACTION + MENUITEM SEPARATOR + MENUITEM "Ata&za-kudeatzailea", ID_SHELL_CMD_OPEN_TASKMGR + MENUITEM SEPARATOR + MENUITEM "Blo&keatu ataza-barra", ID_LOCKTASKBAR + MENUITEM "Pr&opietateak", ID_SHELL_CMD_PROPERTIES + END +END + +IDM_STARTMENU MENUEX +BEGIN + POPUP "" + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + POPUP "&Programak", IDM_PROGRAMS + BEGIN + MENUITEM "(Vacío)", -1, MFT_STRING, MFS_GRAYED + END + POPUP "&Gogokoak", IDM_FAVORITES + BEGIN + MENUITEM "(Vacío)", -1, MFT_STRING, MFS_GRAYED + END + POPUP "D&okumentoak", IDM_DOCUMENTS + BEGIN + MENUITEM "(Vacío)", -1, MFT_STRING, MFS_GRAYED + END + POPUP "E&zarpenak", IDM_SETTINGS + BEGIN + MENUITEM "K&ontrol panela", IDM_CONTROLPANEL, MFT_STRING, MFS_GRAYED + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "&Segurtasuna...", IDM_SECURITY, MFT_STRING, MFS_ENABLED + MENUITEM "&Sare Konexioak", IDM_NETWORKCONNECTIONS, MFT_STRING, MFS_ENABLED + MENUITEM "&Imprimagailuak eta faxak", IDM_PRINTERSANDFAXES, MFT_STRING, MFS_ENABLED + MENUITEM "&Ataza-barra eta Hasi menua", IDM_TASKBARANDSTARTMENU, MFT_STRING, MFS_ENABLED + END + MENUITEM "&Bilatu", IDM_SEARCH, MFT_STRING, MFS_ENABLED + MENUITEM "&Laguntza eta zerbitzua", IDM_HELPANDSUPPORT, MFT_STRING, MFS_ENABLED + MENUITEM "E&xekutatu...", IDM_RUN, MFT_STRING, MFS_ENABLED + MENUITEM "", 450, MFT_SEPARATOR, MFS_ENABLED + MENUITEM "Si&nkronizatu", IDM_SYNCHRONIZE, MFT_STRING, MFS_ENABLED + MENUITEM "&Amaitu %s saioa...", IDM_LOGOFF, MFT_STRING, MFS_ENABLED + MENUITEM "Des&konektatu...", IDM_DISCONNECT, MFT_STRING, MFS_ENABLED + MENUITEM "&Desatrakatu ordenagailua", IDM_UNDOCKCOMPUTER, MFT_STRING, MFS_ENABLED + MENUITEM "&Itzali ordenagailua...", IDM_SHUTDOWN, MFT_STRING, MFS_ENABLED + END +END + +IDD_TASKBARPROP_TASKBAR DIALOGEX 0, 0, 252, 218 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Ataza-barra" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + GROUPBOX "Ataza-barraren itxura ", IDC_STATIC, 6,6,240,104 + CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN | SS_CENTERIMAGE, 12, 18, 229, 24 + AUTOCHECKBOX "B&lokeatu ataza-barra", IDC_TASKBARPROP_LOCK, 13,45,200,10 + AUTOCHECKBOX "Aut&omatikoki ezkutatu ataza-barra", IDC_TASKBARPROP_HIDE, 13,58,200,10 + AUTOCHECKBOX "&Eduki ataza-barra beste leihoen gainean", IDC_TASKBARPROP_ONTOP, 13,71,200,10 + AUTOCHECKBOX "Elkart&u ataza-barrako antzeko botoiak", IDC_TASKBARPROP_GROUP, 13,84,200,10 + AUTOCHECKBOX "Era&kutsi abiarazte bizkorra", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 + GROUPBOX "Jakinarazpen-area", IDC_STATIC, 6, 114, 240, 98 + CONTROL "", IDC_TASKBARPROP_NOTIFICATIONBITMAP, "Static", SS_BITMAP | SS_SUNKEN | SS_CENTERIMAGE, 12, 126, 229, 24 + AUTOCHECKBOX "Er&lojua", IDC_TASKBARPROP_CLOCK, 13, 153, 80, 10 + AUTOCHECKBOX "Erakutsi segunduak", IDC_TASKBARPROP_SECONDS, 120, 153, 80, 10, WS_DISABLED + LTEXT "Jakinarazpen-area txukun edukitzeko, ezkutatu azkenaldian erabili ez dituzun ikonoak.", IDC_STATIC, 13, 169, 223, 16 + AUTOCHECKBOX "E&zkutatu ikono inaktiboak", IDC_TASKBARPROP_HIDEICONS, 13, 191, 125, 10 + PUSHBUTTON "&Pertsonalizatu...", IDC_TASKBARPROP_ICONCUST, 184, 191, 50, 14 +END + +IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Hasi menua" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN +CONTROL "", IDC_TASKBARPROP_STARTMENU_BITMAP, "Static", SS_BITMAP | SS_SUNKEN,7, 7, 183, 108 + AUTORADIOBUTTON "&Hasi menua", IDC_TASKBARPROP_STARTMENU, 7,135,105,10 + LTEXT "Hautatu menu-estilo hau Interneten, posta elektronikoan, eta programa gogokoetan erraz sartzeko.", IDC_TASKBARPROP_STARTMENUMODERNTEXT, 20,145,150,24 + PUSHBUTTON "&Pertsonalizatu...", IDC_TASKBARPROP_STARTMENUCUST, 192,132,53,14 + AUTORADIOBUTTON "&Hasi Menu klasikoa", IDC_TASKBARPROP_STARTMENUCLASSIC, 7,175,105,10 + LTEXT "Hautatu aukera hau Windows-en aurreko bertsioetako menu-estiloa erabiltzeko.",IDC_TASKBARPROP_STARTMENUCLASSICTEXT,20,185,150,24 + PUSHBUTTON "&Pertsonalizatu...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192,172,53,14 +END + +IDD_NOTIFICATIONS_CUSTOMIZE DIALOGEX 0, 0, 232, 240 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_DLGFRAME +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Pertsonalizatu jakinarazpenak" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ReactOS-ek jakinarazpen aktibo eta presazkoen ikonoak bistaratzen ditu, eta inaktiboenak ezkutatu. Jokabide hori aldatzeko aukera dago beheko zerrendako elementuentzat.", IDC_STATIC, 6, 6, 220, 30 + LTEXT "Hautatu elementua, eta jakinarazteko modua:", IDC_STATIC, 6, 40, 220, 10 + CONTROL "", IDC_NOTIFICATION_LIST, "SysListView32", WS_CLIPSIBLINGS | WS_BORDER | 0x00008005, 6, 50, 220, 128 + COMBOBOX IDC_NOTIFICATION_BEHAVIOUR, 103, 178, 78, 200, CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_CLIPSIBLINGS + PUSHBUTTON "&Berrezarri lehenetsiak", IDC_TASKBARPROP_NOTIREST, 150, 188, 78, 14 + DEFPUSHBUTTON "Ados", IDOK, 122, 220, 50, 14 + PUSHBUTTON "Utzi", IDCANCEL, 176, 220, 50, 14 +END + +IDD_CLASSICSTART_CUSTOMIZE DIALOGEX 0, 0, 232, 240, 0 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_DLGFRAME +CAPTION "Pertsonalizatu Hasi menu klasikoa" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Hasi menua", IDC_STATIC, 8, 7, 218, 114 + ICON IDI_STARTMENU2, IDC_STATIC, 19, 17, 20, 20 + LTEXT "Hasi' menua pertsonaliza dezakezu, elementuak gehitu edo kenduz.", IDC_STATIC, 48, 17, 108, 39 + PUSHBUTTON "G&ehitu...", IDC_CLASSICSTART_ADD, 162, 18, 53, 14 + PUSHBUTTON "&Kendu...", IDC_CLASSICSTART_REMOVE, 162, 33, 53, 14 + PUSHBUTTON "&Aurreratua", IDC_CLASSICSTART_ADVANCED, 162, 49, 53, 14 + PUSHBUTTON "&Ordenatu", IDC_CLASSICSTART_SORT, 162, 65, 53, 14 + ICON IDI_RECYCLEBIN, IDC_STATIC, 20, 85, 20, 20 + LTEXT "Azkenaldian erabilitako dokumentu, programa eta web orrien erregistroak kentzeko, egin klik 'Garbitu'n.", IDC_STATIC, 49, 85, 108, 33 + PUSHBUTTON "&Garbitu", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14 + LTEXT "&Hasi' menuko aukera aurreratuak:", IDC_STATIC, 8, 129, 150, 8 + CONTROL "Hasi-menuko &aukerak", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE + DEFPUSHBUTTON "Ados", IDOK, 122, 220, 50, 14 + PUSHBUTTON "Utzi", IDCANCEL, 176, 220, 50, 14 +END + +IDD_FILENAME_WARNING DIALOGEX 0, 0, 272, 81, 0 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUPWINDOW | WS_DLGFRAME +CAPTION "Fitxategi-izenaren abisua" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Alde batera &utzi", IDIGNORE, 215, 60, 50, 14 + PUSHBUTTON "&Izena aldatu", IDC_FILE_RENAME, 159, 60, 50, 14 + LTEXT "", IDC_STATIC, 7, 51, 258, 1, NOT WS_GROUP + AUTOCHECKBOX "&Ez egin egiaztapen hau abioan", IDC_NOTCHECK, 7, 62, 139, 10 + ICON 32515, IDC_STATIC, 7, 7, 21, 20 + LTEXT "Badago %s izeneko fitxategi edo karpeta bat ordenagailuan, hainbat aplikazio ondo ez ibiltzea eragin dezakeena. Izena aldatu eta %s jartzeak arazoa konponduko luke. Orain aldatu nahi diozu izena?", IDC_STATIC, 34, 7, 224, 37 +END + +IDD_MODERNSTART_ADVANCED DIALOGEX 0, 0, 251, 198, 0 +STYLE DS_SETFONT | WS_CAPTION | WS_CHILD | WS_DISABLED +CAPTION "Aurreratua" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Hasi-menuko ezarpenak ", IDC_STATIC, 7, 7, 238, 42 + AUTOCHECKBOX "&Ireki azpimenuak sagua gainean pausatzen dudanean", IDC_AUTOOPEN, 14, 21, 224, 10 + AUTOCHECKBOX "&Nabarmendu azkenaldian instalatutako programak", IDC_HIGHLIGHT, 14, 35, 224, 10 + LTEXT "H&asi-menuko elementuak:", IDC_STATIC, 7, 53, 238, 8 + CONTROL "Hasi-menuko &aukerak", IDC_ITEMS, "SysTreeView32", WS_BORDER | 0x00000001, 7, 63, 238, 67, WS_EX_CLIENTEDGE + GROUPBOX "Azken dokumentuak ", IDC_STATIC, 7, 133, 238, 56 + LTEXT "Hautatu aukera hau azkenaldian irekitako dokumentuetara bizkor joateko. Zerrenda garbitu arren dokumentuak ez dira ezabatuko.", IDC_STATIC, 14, 144, 224, 21 + AUTOCHECKBOX "&Zerrendatu azkenaldian irekitako dokumentuak", IDC_RECENTLY, 14, 168, 147, 10 + PUSHBUTTON "&Ezabatu zerrenda", IDC_CLEAR, 182, 168, 55, 14 +END + +IDD_MODERNSTART_GENERAL DIALOGEX 0, 0, 251, 198 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_DLGFRAME +CAPTION "Orokorra" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Hautatu ikono-tamaina bat programentzat", IDC_STATIC, 7, 7, 238, 37 + ICON IDC_LARGEICON, 17, 18, 20, 20, SS_CENTERIMAGE + ICON IDC_SMALLICON, 151, 18, 20, 20, SS_CENTERIMAGE + AUTORADIOBUTTON "Ikono &handiak", IDC_CHOOSELARGE, 43, 25, 53, 10 + AUTORADIOBUTTON "Ikono &txikiak", IDC_CHOOSESMALL, 177, 25, 51, 10, NOT WS_TABSTOP + GROUPBOX "Programak ", IDC_STATIC, 7, 49, 238, 70 + LTEXT "Hasi' menuan gehien erabilitako programetarako lasterbideak daude. Lasterbide-zerrenda garbituz gero programak ez dira ezabatuko.", IDC_STATIC, 14, 63, 224, 20 + LTEXT "Hasi' &menuko programa-kopurua:", IDC_STATIC, 14, 86, 112, 8 + EDITTEXT IDC_NUMBEROFPROGRAMS, 133, 84, 27, 12, ES_LEFT | ES_RIGHT | ES_NUMBER + CONTROL "", IDC_NUMBERUPDOWN, "msctls_updown32", WS_BORDER | 0x000000B6, 160, 84, 11, 12 + PUSHBUTTON "&Ezabatu zerrenda", IDC_CLEARLIST, 182, 98, 57, 14 + GROUPBOX "Erakutsi Hasi menuan", IDC_STATIC, 7, 126, 238, 63 + AUTOCHECKBOX "&Internet:", IDC_SHOWINTERNET, 14, 140, 42, 10 + COMBOBOX IDC_INTERNETDEFAULTAPP, 98, 138, 140, 200, CBS_DROPDOWNLIST | WS_VSCROLL + AUTOCHECKBOX "&Posta elektronikoa:", IDC_SHOWEMAIL, 14, 157, 37, 10 + COMBOBOX IDC_EMAILDEFAULTAPP, 98, 155, 140, 200, CBS_DROPDOWNLIST | WS_VSCROLL +END + +STRINGTABLE +BEGIN + IDS_START "Hasi" + IDS_PROPERTIES "Pr&opietateak" + IDS_OPEN_ALL_USERS "Ireki &erabiltzaile guztiak" + IDS_EXPLORE_ALL_USERS "&Arakatu erabiltzaile guztiak" + IDS_STARTUP_ERROR "Sistema ez du exploradorea hasi erregistro ustela dago-eta edo ez dago erabilgarri." +END + +STRINGTABLE +BEGIN + IDS_TASKBAR_STARTMENU_PROP_CAPTION "Ataza-barra eta Hasi menuaren propietateak" + IDS_RESTORE_ALL "E&rakutsi irekitako leihoak" +END diff --git a/base/system/userinit/lang/eu-ES.rc b/base/system/userinit/lang/eu-ES.rc new file mode 100644 index 00000000000..0ff72105e64 --- /dev/null +++ b/base/system/userinit/lang/eu-ES.rc @@ -0,0 +1,53 @@ +/* + * PROJECT: ReactOS Userinit Logon Application + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +IDD_LOCALEPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS LiveCD-a" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "IDB_LOGO", IDC_LOCALELOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 4, 290, 99 + RTEXT "&Hizkuntza:", IDC_STATIC, 20, 109, 106, 11, WS_CHILD | WS_VISIBLE | WS_GROUP + COMBOBOX IDC_LANGUAGELIST, 132, 107, 176, 142, CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT | CBS_SORT | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP + RTEXT "&Teklatu diztribuzioa:", IDC_STATIC, 20, 132, 106, 11, WS_CHILD | WS_VISIBLE | WS_GROUP + COMBOBOX IDC_LAYOUTLIST, 132, 130, 176, 81, CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT | CBS_SORT | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "Hautatu hizkuntza eta teklatuen distribuzioa, eta sakatu Haurrera jarraitzeko.", IDC_STATIC, 7, 152, 300, 8 + + CONTROL "", IDC_STATIC, "STATIC", SS_ETCHEDHORZ, 0, 165, 317, 1 + DEFPUSHBUTTON "&Aurrera", IDOK, 205, 172, 50, 14 + PUSHBUTTON "&Utzi", IDCANCEL, 260, 172, 50, 14 +END + +IDD_STARTPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS LiveCD-a" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "IDB_LOGO", IDC_STARTLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 4, 290, 99 + DEFPUSHBUTTON "Hasi ReactOS &Live CD-a", IDC_RUN, 71, 108, 175, 21 + PUSHBUTTON "&Instalatu ReactOS", IDC_INSTALL, 71, 136, 175, 21 + + // LTEXT "", IDC_STATIC, 7, 152, 300, 8 + + CONTROL "", IDC_STATIC, "STATIC", SS_ETCHEDHORZ, 0, 165, 317, 1 + PUSHBUTTON "A&tzera", IDOK, 205, 172, 50, 14 + PUSHBUTTON "&Utzi", IDCANCEL, 260, 172, 50, 14 +END + +STRINGTABLE +BEGIN + IDS_SHELL_FAIL "¡Userinit no pudo iniciar el shell con éxito!" + IDS_INSTALLER_FAIL "¡Userinit no pudo iniciar el instalador!" + IDS_CANCEL_CONFIRM "¿Seguro que quieres salir de LiveCD de ReactOS?\nSi es así, tu equipo se reiniciará." +END + +STRINGTABLE +BEGIN + IDS_SPAIN "Español (España)" +END diff --git a/base/system/userinit/userinit.rc b/base/system/userinit/userinit.rc index 36497368b66..41af402f742 100644 --- a/base/system/userinit/userinit.rc +++ b/base/system/userinit/userinit.rc @@ -35,6 +35,9 @@ IDB_ROSMASK BITMAP "res/rosbitmap_mask.bmp" #ifdef LANGUAGE_ES_ES #include "lang/es-ES.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FR_FR #include "lang/fr-FR.rc" #endif diff --git a/base/system/winlogon/lang/eu-ES.rc b/base/system/winlogon/lang/eu-ES.rc new file mode 100644 index 00000000000..366ee123117 --- /dev/null +++ b/base/system/winlogon/lang/eu-ES.rc @@ -0,0 +1,67 @@ +/* + * PROJECT: ReactOS Winlogon + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +IDD_SHUTDOWNCOMPUTER DIALOGEX 45, 22, 164, 52 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Itzali Ordenagailua" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ahora es seguro apagar el equipo.", IDC_SHUTDOWNCOMPUTER, 31, 13, 132, 8 + ICON IDI_WINLOGON, IDC_SHTDOWNICON, 6, 7, 18, 20 + DEFPUSHBUTTON "&Berrabiarazi", IDC_BTNSHTDOWNCOMPUTER, 62, 32, 40, 14 +END + +IDD_GINALOADFAILED DIALOGEX 58, 83, 231, 119 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Error del Interfaz de Usuario" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "La DLL %s del interfaz de Logon dió un error al cargar.", IDC_GINALOADFAILED, 39, 16, 156, 24 + LTEXT "Contacte con el administrador de su sistema para sustituir la DLL, ó reinstale la DLL original.", IDC_GINALOADFAILEDCONTACT, 39, 53, 151, 25 + DEFPUSHBUTTON "&Berrabiarazi", 1, 80, 91, 68, 14 +END + +IDD_SYSSHUTDOWN DIALOGEX 50, 50, 180, 140 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_CAPTION | WS_POPUP +CAPTION "Itzali Sistema" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_WARNING, IDC_SYSSHUTDOWNICON, 6, 7, 18, 20 + LTEXT "Se ha iniciado el apagado del sistema. Por favor, guarda todo tu trabajo y cierra la sesión. Se perderá todo el trabajo no guardado.", -1, 38, 7, 135, 40 + LTEXT "El sistema se apagará en:", -1, 38, 50, 90, 8 + LTEXT "00:00:00", IDC_SYSSHUTDOWNTIMELEFT, 132, 50, 41, 8 + LTEXT "Mensaje:", -1, 38, 65, 135, 8 + EDITTEXT IDC_SYSSHUTDOWNMESSAGE, 34, 75, 139, 58, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, WS_EX_STATICEDGE +END + +STRINGTABLE +BEGIN + IDS_PREPARENETWORKCONNECTIONS "Preparando las conexiones de red..." + IDS_APPLYINGCOMPUTERSETTINGS "Aplicando los parámetros de configuración..." + IDS_RUNNINGSTARTUPSCRIPTS "Ejecutando los scripts de inicio..." + IDS_RUNNINGSHUTDOWNSCRIPTS "Ejecutando los scripts de apagado..." + IDS_APPLYINGYOURPERSONALSETTINGS "Aplicando su configuración personal..." + IDS_RUNNINGLOGOFFSCRIPTS "Ejecutando los scripts de fin de sesión..." + IDS_RUNNINGLOGONSCRIPTS "Ejecutando los scripts de inicio de sesión..." + IDS_LOADINGYOURPERSONALSETTINGS "Cargando su configuración personal..." + IDS_CLOSINGNETWORKCONNECTIONS "Cerrando las conexiones de red..." + IDS_REACTOSISRESTARTING "Restarting..." + IDS_REACTOSISSHUTTINGDOWN "Itzaltzen..." + IDS_PREPARETOSTANDBY "Preparando para entrar en estado de espera (Standby)..." + IDS_PREPARETOHIBERNATE "Preparando para hibernar..." + IDS_SAVEYOURSETTINGS "Gordetzen zure pertsonal konfigurazioa..." + IDS_REACTOSISSTARTINGUP "Itzaron, ReactOS hasi da..." + IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d" + IDS_TIMEOUTLONGFORMAT "%d egunak" +END + +STRINGTABLE +BEGIN + IDS_FAILEDACTIVATEUSERSHELL "!Winlogon falló al activar el shell de usuario!" +END diff --git a/boot/bootdata/hivedef.inf b/boot/bootdata/hivedef.inf index 0ee45ffaff7..e377dd3e320 100644 --- a/boot/bootdata/hivedef.inf +++ b/boot/bootdata/hivedef.inf @@ -4134,4 +4134,74 @@ DESKTOP_SCHEME_22="Red, White, and Blue" DESKTOP_SCHEME_SIZE_0="默认大小" TEMP_DIR="%USERPROFILE%\Local Settings\Temp" + +; LANG_BASQUE SUBLANG_NEUTRAL +[Strings.042D] +EVENT_LABEL_0 = "Default Beep" +EVENT_LABEL_1 = "Program error" +EVENT_LABEL_2 = "Close program" +EVENT_LABEL_3 = "Critical Battery Alarm" +EVENT_LABEL_4 = "Device Connect" +EVENT_LABEL_5 = "Device Disconnect" +EVENT_LABEL_6 = "Device Failed to Connect" +EVENT_LABEL_7 = "Empty Recycle Bin" +EVENT_LABEL_8 = "Low Battery Alarm" +EVENT_LABEL_9 = "Maximize" +EVENT_LABEL_10 = "Menu command" +EVENT_LABEL_11 = "Menu popup" +EVENT_LABEL_12 = "Minimize" +EVENT_LABEL_13 = "New Mail Notification" +EVENT_LABEL_14 = "Start Navigation" +EVENT_LABEL_15 = "Open program" +EVENT_LABEL_16 = "Print Complete" +EVENT_LABEL_17 = "Restore Down" +EVENT_LABEL_18 = "Restore Up" +EVENT_LABEL_19 = "Asterisk" +EVENT_LABEL_20 = "Exclamation" +EVENT_LABEL_21 = "Exit ReactOS" +EVENT_LABEL_22 = "Critical Stop" +EVENT_LABEL_23 = "System Notification" +EVENT_LABEL_24 = "Question" +EVENT_LABEL_25 = "Start ReactOS" +EVENT_LABEL_26 = "ReactOS Logoff" +EVENT_LABEL_27 = "ReactOS Logon" +POWERCFG_NAME_0="Equipo doméstico o de oficina" +POWERCFG_DESC_0="Este perfil es ideal para gran parte de los usuarios domésticos que dejan el equipo encendido todo el día." +POWERCFG_NAME_1="Portátil" +POWERCFG_DESC_1="Este perfil economiza la vida útil de la batería en portátiles que estén de viaje." +POWERCFG_NAME_2="Presentación" +POWERCFG_DESC_2="Este perfil mantiene el monitor encendido para hacer presentaciones." +POWERCFG_NAME_3="Siempre encendido" +POWERCFG_DESC_3="Este perfil mantiene el equipo siempre encendido para que pueda accederse desde la red. Útil a falta de hardware de arranque por red." +POWERCFG_NAME_4="Alto rendimiento" +POWERCFG_DESC_4="Este perfil mantiene el equipo funcionando de forma permanente y lo optimiza para un rendimiento óptimo." +POWERCFG_NAME_5="Batería máxima" +POWERCFG_DESC_5="Este perfil proporciona el máximo ahorro energético a costa de un rendimiento mínimo." +DESKTOP_SCHEME_0="ReactOS estándar" +DESKTOP_SCHEME_1="Ladrillo" +DESKTOP_SCHEME_2="Berenjena" +DESKTOP_SCHEME_3="Verde oliva" +DESKTOP_SCHEME_4="Alto contraste 1" +DESKTOP_SCHEME_5="Alto contraste 2" +DESKTOP_SCHEME_6="Alto contraste oscuro" +DESKTOP_SCHEME_7="Alto contraste claro" +DESKTOP_SCHEME_8="Lila" +DESKTOP_SCHEME_9="Arce" +DESKTOP_SCHEME_10="Marino" +DESKTOP_SCHEME_11="Ciruela" +DESKTOP_SCHEME_12="Calabaza" +DESKTOP_SCHEME_13="Días de lluvia" +DESKTOP_SCHEME_14="ReactOS clásico" +DESKTOP_SCHEME_15="Rosa" +DESKTOP_SCHEME_16="Arenisca" +DESKTOP_SCHEME_17="Cielo" +DESKTOP_SCHEME_18="Pizarra" +DESKTOP_SCHEME_19="Tormenta" +DESKTOP_SCHEME_20="Verde turquesa" +DESKTOP_SCHEME_21="Trigo" +DESKTOP_SCHEME_22="Red, White, and Blue" +DESKTOP_SCHEME_SIZE_0="Tamaño predeterminado" +TEMP_DIR="%USERPROFILE%\Lokal konfigurazioa\\Temp" + + ; EOF diff --git a/dll/win32/browseui/browseui.rc b/dll/win32/browseui/browseui.rc index 5a6eee380cd..789486938cb 100644 --- a/dll/win32/browseui/browseui.rc +++ b/dll/win32/browseui/browseui.rc @@ -79,6 +79,9 @@ IDR_USERASSIST REGISTRY "res/userassist.rgs" #ifdef LANGUAGE_ET_EE #include "lang/et-EE.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FR_FR #include "lang/fr-FR.rc" #endif diff --git a/dll/win32/browseui/lang/eu-ES.rc b/dll/win32/browseui/lang/eu-ES.rc new file mode 100644 index 00000000000..4c3fa81ca06 --- /dev/null +++ b/dll/win32/browseui/lang/eu-ES.rc @@ -0,0 +1,351 @@ +/* + * PROJECT: ReactOS browseui + * LICENSE: LGPL-2.1-or-later (
https://spdx.org/licenses/LGPL-2.1-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +/* Menus */ + +IDM_CABINET_CONTEXTMENU MENUEX +BEGIN + POPUP "", 264,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Botones e&stándar", IDM_TOOLBARS_STANDARDBUTTONS, MFT_STRING, MFS_ENABLED + MENUITEM "&Barra de direcciones", IDM_TOOLBARS_ADDRESSBAR, MFT_STRING, MFS_ENABLED + MENUITEM "&Vínculos", IDM_TOOLBARS_LINKSBAR, MFT_STRING, MFS_ENABLED + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "Bloquear las barras de &herramientas", IDM_TOOLBARS_LOCKTOOLBARS, MFT_STRING, MFS_ENABLED + MENUITEM "&Personalizar...", IDM_TOOLBARS_CUSTOMIZE, MFT_STRING, MFS_ENABLED + MENUITEM "&Etiquetas", IDM_TOOLBARS_TEXTLABELS, MFT_STRING, MFS_ENABLED + MENUITEM "Botón Ir a", IDM_TOOLBARS_GOBUTTON, MFT_STRING, MFS_ENABLED + END +END + +IDM_CABINET_MAINMENU MENUEX +BEGIN + POPUP "&Fitxategia", FCIDM_MENU_FILE + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "It&xi", IDM_FILE_CLOSE + END + POPUP "&Editatu", FCIDM_MENU_EDIT + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + END + POPUP "&Ikusi", FCIDM_MENU_VIEW + BEGIN + POPUP "&Tresna-barrak", IDM_VIEW_TOOLBARS + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + END + MENUITEM "&Egoera-barra", IDM_VIEW_STATUSBAR + POPUP "Ex&plorer-en barra", IDM_VIEW_EXPLORERBAR + BEGIN + MENUITEM "&Bilatu\tKtrl+E", IDM_EXPLORERBAR_SEARCH + MENUITEM "&Gogokoak\tKtrl+I", IDM_EXPLORERBAR_FAVORITES + MENUITEM "&Multimedia", IDM_EXPLORERBAR_MEDIA + MENUITEM "&Historia\tKtrl+H", IDM_EXPLORERBAR_HISTORY + MENUITEM "&Karpetak", IDM_EXPLORERBAR_FOLDERS + MENUITEM "", IDM_EXPLORERBAR_SEPARATOR + END + MENUITEM "", FCIDM_MENU_VIEW_SEP_OPTIONS, MFT_SEPARATOR + POPUP "&Joan", FCIDM_MENU_EXPLORE + BEGIN + MENUITEM "&Atzera\tAlt+Ezker-gezia", IDM_GOTO_BACK + MENUITEM "A&urrera\tAlt+Eskuin-gezia", IDM_GOTO_FORWARD + MENUITEM "&Igo maila bat", IDM_GOTO_UPONELEVEL + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "Et&xeko orrira\tAlt+Hasi", IDM_GOTO_HOMEPAGE + END + MENUITEM "&Freskatu", IDM_VIEW_REFRESH + END + POPUP "&Gogokoak", FCIDM_MENU_FAVORITES + BEGIN + MENUITEM "&Gehitu gogokoetan...", IDM_FAVORITES_ADDTOFAVORITES + MENUITEM "&Antolatu gogokoak...", IDM_FAVORITES_ORGANIZEFAVORITES + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "(Hutsik)", IDM_FAVORITES_EMPTY + END + POPUP "Tr&esnak", FCIDM_MENU_TOOLS + BEGIN + MENUITEM "Conectar a &unidad de red...", IDM_TOOLS_MAPNETWORKDRIVE + MENUITEM "De&sconectar de unidad de red...", IDM_TOOLS_DISCONNECTNETWORKDRIVE + MENUITEM "&Sincroni&zar...", IDM_TOOLS_SYNCHRONIZE + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "&Opciones de carpeta...", IDM_TOOLS_FOLDEROPTIONS + END + POPUP "&Laguntza", FCIDM_MENU_HELP + BEGIN + MENUITEM "&ReactOS-i buruz", IDM_HELP_ABOUT + END +END + +IDM_TASKBAR_TOOLBARS MENUEX +BEGIN + POPUP "&Barras de herramientas", -1, MFT_STRING, MFS_ENABLED, 0 + BEGIN + MENUITEM "&Escritorio", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Inicio rápido", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING + MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED + MENUITEM "&Nueva barra de herramientas...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING + END +END + +IDM_BAND_MENU MENUEX +BEGIN + MENUITEM "Mostrar &título", IDM_BAND_TITLE + MENUITEM "&Cerrar barra de herramientas", IDM_BAND_CLOSE +END + +IDM_POPUPMENU MENUEX DISCARDABLE +BEGIN + POPUP "" + BEGIN + POPUP "&Ikusi", IDM_VIEW_MENU + BEGIN + MENUITEM "Ikono &handiak", IDM_LARGE_ICONS + MENUITEM "Ikono &txikiak", IDM_SMALL_ICONS + END + MENUITEM "&Ireki karpeta", IDM_OPEN_FOLDER + MENUITEM "&Mostrar texto", IDM_SHOW_TEXT + END +END + +/* Dialogs */ + +IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_ANIMATION, ANIMATE_CLASSA, 0, 12, 10, 236, 30 /* TODO: style */ + LTEXT "", IDC_TEXT_LINE, 7, 45, 250, 10, SS_LEFT|SS_NOPREFIX + LTEXT "", IDC_TEXT_LINE + 1, 7, 55, 250, 10, SS_LEFT|SS_NOPREFIX + LTEXT "", IDC_TEXT_LINE + 2, 7, 75, 190, 10, SS_LEFT|SS_NOPREFIX + CONTROL "", IDC_PROGRESS_BAR, PROGRESS_CLASSA, WS_BORDER, 7, 65, 190, 8 + PUSHBUTTON "Cancelar", IDCANCEL, 205, 65, 50, 15, WS_GROUP | WS_TABSTOP | WS_VISIBLE +END + +IDD_CUSTOMIZETOOLBAREX DIALOGEX 0, 0, 357, 33 +STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CAPTION +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + LTEXT "Opciones de te&xto:", -1, 4, 2, 48, 15 + COMBOBOX IDC_TEXTOPTIONS, 52, 0, 123, 57, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Opciones de ico&nos:", -1, 4, 20, 48, 15 + COMBOBOX IDC_ICONOPTIONS, 52, 18, 123, 57, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP +END + +IDD_SEARCH_DLG DIALOGEX 0, 0, 260, 85 +STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_DLGFRAME +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Buscar por parte o todos los criterios a continuación.", IDC_SEARCH_LABEL, 4, 2, 120, 20 + + LTEXT "Todo o parte del nombre del &archivo:", -1, 10, 25, 500, 10 + EDITTEXT IDC_SEARCH_FILENAME, 10, 35, 100, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP + + LTEXT "Una &palabra o frase en el archivo:", -1, 10, 50, 500, 10 + EDITTEXT IDC_SEARCH_QUERY, 10, 60, 100, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP + + LTEXT "&Buscar en:", -1, 10, 75, 500, 10 + CONTROL "", IDC_SEARCH_COMBOBOX, WC_COMBOBOXEXW, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_TABSTOP | CCS_NODIVIDER | CCS_NOMOVEY | CBS_OWNERDRAWFIXED, 10, 85, 200, 200 + + DEFPUSHBUTTON "Bus&car", IDC_SEARCH_BUTTON, 80, 110, 40, 15, WS_GROUP | WS_TABSTOP | WS_VISIBLE + PUSHBUTTON "&Parar", IDC_SEARCH_STOP_BUTTON, 80, 110, 40, 15, WS_GROUP | WS_TABSTOP + + AUTOCHECKBOX "Buscar archivos y carpetas ocultos.", + IDC_SEARCH_HIDDEN, 4, 130, 130, 8, WS_VISIBLE | WS_GROUP | WS_TABSTOP + + CONTROL "", IDC_PROGRESS_BAR, PROGRESS_CLASSA, WS_BORDER | PBS_MARQUEE, 10, 155, 200, 8 +END + +/* Accelerators */ + +IDR_ACCELERATORS ACCELERATORS +BEGIN + VK_F5, IDM_VIEW_REFRESH, VIRTKEY, NOINVERT + VK_F5, IDM_VIEW_REFRESH, VIRTKEY, CONTROL, NOINVERT + "R", IDM_VIEW_REFRESH, VIRTKEY, CONTROL, NOINVERT + VK_HOME, IDM_GOTO_HOMEPAGE, VIRTKEY, ALT, NOINVERT + "D", IDM_FAVORITES_ADDTOFAVORITES, VIRTKEY, CONTROL, NOINVERT + "B", IDM_FAVORITES_ORGANIZEFAVORITES, VIRTKEY, CONTROL, NOINVERT + VK_LEFT, IDM_GOTO_BACK, VIRTKEY, ALT + VK_RIGHT, IDM_GOTO_FORWARD, VIRTKEY, ALT + VK_UP, IDM_GOTO_UPONELEVEL, VIRTKEY, ALT + VK_BACK, 41010, NOINVERT, VIRTKEY + "W", IDM_FILE_CLOSE, VIRTKEY, CONTROL, NOINVERT + "Q", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT + "I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT + "H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT +END + +/* Strings */ + +STRINGTABLE +BEGIN + IDS_CANCELLING "Cancelando..." + IDS_REMAINING "restantes" +END + +STRINGTABLE +BEGIN + 800 "Contiene órdenes para trabajar con los elementos seleccionados." +END + +STRINGTABLE +BEGIN + 864 "Contiene órdenes de edición." +END + +STRINGTABLE +BEGIN + 928 "Contiene órdenes para manipular la vista." +END + +STRINGTABLE +BEGIN + 992 "Contiene órdenes de herramientas." +END + +STRINGTABLE +BEGIN + 1056 "Contiene órdenes para mostrar la Ayuda." +END + +STRINGTABLE +BEGIN + 9025 "Cierra la ventana." + 9026 "Sube un nivel." +END + +STRINGTABLE +BEGIN + 9121 "Conecta a unidad de red." + 9122 "Desconecta de unidad de red." +END + +STRINGTABLE +BEGIN + 9250 "Muestra información sobre el programa, número de versión y copyright." + 9252 "Muestra información de depuración." +END + +STRINGTABLE +BEGIN + 9281 "Ir a la página anterior." + 9282 "Ir a la página siguiente." + 9283 "Permite cambiar la configuración." + 9285 "Ir a página de inicio." +END + +STRINGTABLE +BEGIN + 9362 "Abre la carpeta Organizar Favoritos." + 9363 "Añade la página actual a la lista de Favoritos." +END + +STRINGTABLE +BEGIN + 9505 "Muestra u oculta las barras de herramientas." + 9506 "Muestra u oculta la barra de estado." + 9508 "Muestra los botones estándar de la barra de herramientas." + 9509 "Muestra la barra de direcciones." + 9510 "Muestra la barra de vínculos rápidos." + 9516 "Bloquear el tamaño y la posición de las barras de herramientas." +END + +STRINGTABLE +BEGIN + 9533 "Personalizar la barra de herramientas." +END + +STRINGTABLE +BEGIN + 9552 "Muestra u oculta una de las barras del explorador." + 9553 "Muestra la barra de búsqueda." + 9554 "Muestra la barra de favoritos." + 9555 "Muestra la barra de historial." + 9557 "Muestra la barra de carpetas." + 9559 "Muestra la barra de medios." +END + +STRINGTABLE +BEGIN + IDS_SMALLICONS "Iconos pequeños" + IDS_LARGEICONS "Iconos grandes" + IDS_SHOWTEXTLABELS "Muestra etiquetas de texto" +END + +STRINGTABLE +BEGIN + IDS_NOTEXTLABELS "Sin etiquetas de texto" + IDS_SELECTIVETEXTONRIGHT "Selecciona el texto a la derecha" +END + +STRINGTABLE +BEGIN + IDS_GOBUTTONLABEL "|Ir||" + IDS_GOBUTTONTIPTEMPLATE "Ir a ""%s""" +END + +STRINGTABLE +BEGIN + IDS_SEARCHLABEL "Búsqueda" + IDS_ADDRESSBANDLABEL "Dire&cción" +END + +STRINGTABLE +BEGIN + IDS_FOLDERSLABEL "Carpetas" +END + +STRINGTABLE +BEGIN + IDS_HISTORYTEXT "&Historial\tCtrl+H" +END + +STRINGTABLE +BEGIN + IDS_UP "Arriba" +END + +STRINGTABLE +BEGIN + IDS_BACK "Volver a %s" + IDS_FORWARD "Ir a %s" + IDS_FOLDER_OPTIONS "Opciones de carpeta" +END + +STRINGTABLE +BEGIN + IDS_STANDARD_TOOLBAR, "|Atrás|Adelante|Subir|Búsqueda|Carpetas|Mover a|Copiar a|Borrar|Deshacer|Vistas|Detener|Recargar|Inicio|Montar disco|Desconectar|Favoritos|Historial|Pantalla completa|Propiedades|Cortar|Copiar|Pegar|Opciones de carpeta||" +END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Seleccione una carpeta" + IDS_TOOLBAR_ERR_TITLE "Barra de herramientas" + IDS_TOOLBAR_ERR_TEXT "No se pudo crear la barra de herramientas." +END + +STRINGTABLE +BEGIN + IDS_SEARCH_RESULTS "Search Results" + IDS_SEARCHINVALID "'%1' no es una carpeta válida." + IDS_SEARCH_FOLDER "Buscando %s" + IDS_SEARCH_FILES_FOUND "%u archivos encontrados" + IDS_SEARCH_OPEN_FOLDER "Abrir ubicación de &archivo" + IDS_COL_NAME "Nombre" + IDS_COL_LOCATION "En la carpeta" + IDS_COL_RELEVANCE "Relevancia" +END + +STRINGTABLE +BEGIN + IDS_PARSE_ADDR_ERR_TITLE "ReactOS Explorer" + IDS_PARSE_ADDR_ERR_TEXT "ReactOS Explorer cannot find '%1'. Check the spelling and try again." +END diff --git a/dll/win32/comctl32/lang/comctl_Eu.rc b/dll/win32/comctl32/lang/comctl_Eu.rc new file mode 100644 index 00000000000..9c0ab5e42ff --- /dev/null +++ b/dll/win32/comctl32/lang/comctl_Eu.rc @@ -0,0 +1,101 @@ +/* + * Top level resource file for Common Controls + * + * Copyright 1999 Bertho Stultiens + * Copyright 1999 Eric Kohl + * Copyright 2021 Julen Urizar Compains + * + * 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 + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_CLOSE "Itxi" +} + +STRINGTABLE +{ + IDM_TODAY "Gaur:" + IDM_GOTODAY "Gaur izan" +} + +STRINGTABLE +{ + IDS_SEPARATOR "Berezgailu" +} + +STRINGTABLE +{ + HKY_NONE "Inor" +} + +STRINGTABLE +{ + IDS_BUTTON_YES "&Bai" + IDS_BUTTON_NO "&Ez" + IDS_BUTTON_RETRY "&Reintentar" + IDS_BUTTON_OK "OK" + IDS_BUTTON_CANCEL "Cancelar" + IDS_BUTTON_CLOSE "&Itxi" +} + +IDD_PROPSHEET DIALOG 0, 0, 220, 140 +STYLE DS_SHELLFONT | DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE +CAPTION "%s propietateak" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Ados", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP + PUSHBUTTON "Utzi", IDCANCEL,58,122,50,14 + PUSHBUTTON "&Aplikatu", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED + PUSHBUTTON "Laguntza", 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_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE +CAPTION "Asistentea" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "< &Atzera", IDC_BACK_BUTTON,56,138,55,14 + DEFPUSHBUTTON "&Aurrera >", IDC_NEXT_BUTTON,111,138,55,14 + DEFPUSHBUTTON "Amaitu", IDC_FINISH_BUTTON,111,138,55,14 + PUSHBUTTON "Utzi", IDCANCEL,173,138,55,14 + PUSHBUTTON "Lagun&tza", IDHELP,235,138,55,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 + LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE +END + + +IDD_TBCUSTOMIZE DIALOG 10, 20, 395, 125 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Tresnaren-barra pertsonalizatu" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Itxi", IDCANCEL,320,6,70,14 + PUSHBUTTON "B&errezarri", IDC_RESET_BTN,320,23,70,14 + PUSHBUTTON "Lagun&tza", IDC_HELP_BTN,320,40,70,14 + PUSHBUTTON "&Igo", IDC_MOVEUP_BTN,320,74,70,14 + PUSHBUTTON "&Jaitsi", IDC_MOVEDN_BTN,320,91,70,14 + LTEXT "Era%bilgarri botoiak:", -1,4,5,120,10 + LISTBOX IDC_AVAILBTN_LBOX,5,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + PUSHBUTTON "&Gehitu ->", IDOK, 132, 42, 55, 14 + PUSHBUTTON "<- &Ezabatu", IDC_REMOVE_BTN,132,62,55,14 + LTEXT "&Barrako botoiak:", -1,194,5,120,10 + LISTBOX IDC_TOOLBARBTN_LBOX, 194,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP +END diff --git a/dll/win32/comctl32/rsrc.rc b/dll/win32/comctl32/rsrc.rc index 37b6d87eeeb..ffad7bad632 100644 --- a/dll/win32/comctl32/rsrc.rc +++ b/dll/win32/comctl32/rsrc.rc @@ -117,6 +117,9 @@ IDI_TT_ERROR_SM ICON idi_tt_error_sm.ico #ifdef LANGUAGE_ET_EE #include "lang/comctl_Et.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/comctl_Eu.rc" +#endif #ifdef LANGUAGE_FR_FR #include "lang/comctl_Fr.rc" #endif diff --git a/dll/win32/samsrv/lang/eu-ES.rc b/dll/win32/samsrv/lang/eu-ES.rc new file mode 100644 index 00000000000..96f9634413c --- /dev/null +++ b/dll/win32/samsrv/lang/eu-ES.rc @@ -0,0 +1,46 @@ +/* + * PROJECT: SAM Server DLL + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_DOMAIN_BUILTIN_NAME "Builtin" + IDS_GROUP_NONE_NAME "Ninguno" + IDS_GROUP_NONE_COMMENT "Usuarios normales" + IDS_ALIAS_ADMINISTRATORS_NAME "Administradores" + IDS_ALIAS_ADMINISTRATORS_COMMENT "Los administradores tienen acceso sin restricciones al equipo o dominio." + IDS_ALIAS_GUESTS_NAME "Invitados" + IDS_ALIAS_GUESTS_COMMENT "Los invitados tienen de forma predeterminada los mismos derechos que los del grupo Usuarios." + IDS_ALIAS_POWER_USERS_NAME "Usuarios avanzados" + IDS_ALIAS_POWER_USERS_COMMENT "Los usuarios avanzados obtienen la mayor parte de los derechos administrativos con algunas restricciones." + IDS_ALIAS_USERS_NAME "Usuarios" + IDS_ALIAS_USERS_COMMENT "Los usuarios no pueden hacer cambios que afecten al sistema." + IDS_ALIAS_PRINT_OPS_NAME "Print Operators" + IDS_ALIAS_PRINT_OPS_COMMENT "Members can administer domain printers" + IDS_ALIAS_BACKUP_OPS_NAME "Backup Operators" + IDS_ALIAS_BACKUP_OPS_COMMENT "Backup Operators can override security restrictions for the sole purpose of backing up or resoring files" + IDS_ALIAS_REPLICATOR_NAME "Replicator" + IDS_ALIAS_REPLICATOR_COMMENT "Supports file replication in a domain" + IDS_ALIAS_REMOTE_DESKTOP_USERS_NAME "Remote Desktop Users" + IDS_ALIAS_REMOTE_DESKTOP_USERS_COMMENT "Members in this group are granted the right to logon remotely" + IDS_ALIAS_NETWORK_CONFIGURATION_OPS_NAME "Network Configuration Operators" + IDS_ALIAS_NETWORK_CONFIGURATION_OPS_COMMENT "Members in this group can have some administrative privileges to manage configuration of networking features" + IDS_ALIAS_MONITORING_USERS_NAME "Performance Monitor Users" + IDS_ALIAS_MONITORING_USERS_COMMENT "Members of this group have remote access to monitor this computer" + IDS_ALIAS_LOGGING_USERS_NAME "Performance Log Users" + IDS_ALIAS_LOGGING_USERS_COMMENT "Members of this group have remote access to schedule logging of performance counters on this computer" + /* + * ATTENTION: + * If you translate the administrator account name, keep IDS_USER_ADMINISTRATOR_NAME and + * syssetup.dll:IDS_ADMINISTRATOR_NAME synchronized. + */ + IDS_USER_ADMINISTRATOR_NAME "Administratzaile" + IDS_USER_ADMINISTRATOR_COMMENT "Cuenta predeterminada de uso administrativo local, o en el dominio." + IDS_USER_GUEST_NAME "Invitado" + IDS_USER_GUEST_COMMENT "Cuenta predeterminada para el acceso de invitados al equipo o dominio." +END diff --git a/dll/win32/samsrv/samsrv.rc b/dll/win32/samsrv/samsrv.rc index 457bfaa76cf..9548c1e52cb 100644 --- a/dll/win32/samsrv/samsrv.rc +++ b/dll/win32/samsrv/samsrv.rc @@ -31,6 +31,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #ifdef LANGUAGE_ES_ES #include "lang/es-ES.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_HI_IN #include "lang/hi-IN.rc" #endif diff --git a/dll/win32/shell32/lang/eu-ES.rc b/dll/win32/shell32/lang/eu-ES.rc new file mode 100644 index 00000000000..e402528aa2e --- /dev/null +++ b/dll/win32/shell32/lang/eu-ES.rc @@ -0,0 +1,1041 @@ +/* + * PROJECT: ReactOS Shell32 + * LICENSE: LGPL-2.1+ (
https://spdx.org/licenses/LGPL-2.1+
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +MENU_001 MENUEX +BEGIN + MENUITEM "I&kono handiak", FCIDM_SHVIEW_BIGICON + MENUITEM "Ikono &txikiak", FCIDM_SHVIEW_SMALLICON + MENUITEM "&Zerrenda", FCIDM_SHVIEW_LISTVIEW + MENUITEM "&Xehetasunak", FCIDM_SHVIEW_REPORTVIEW + MENUITEM "", -1, MFT_SEPARATOR + POPUP "&Antolatu ikonoak", FCIDM_SHVIEW_ARRANGE + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "&Automatikoki antolatu", FCIDM_SHVIEW_AUTOARRANGE + MENUITEM "&Lerrokatu saretarekin", FCIDM_SHVIEW_ALIGNTOGRID + END +END + +/* shellview background menu */ +MENU_002 MENUEX +BEGIN + POPUP "" + BEGIN + POPUP "&Ikusi", FCIDM_SHVIEW_VIEW + BEGIN + MENUITEM "I&kono handiak", FCIDM_SHVIEW_BIGICON + MENUITEM "Ikono &txikiak", FCIDM_SHVIEW_SMALLICON + MENUITEM "&Zerrenda", FCIDM_SHVIEW_LISTVIEW + MENUITEM "&Xehetasunak", FCIDM_SHVIEW_REPORTVIEW + END + MENUITEM "", -1, MFT_SEPARATOR + POPUP "&Antolatu ikonoak", FCIDM_SHVIEW_ARRANGE + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "&Automatikoki antolatu", FCIDM_SHVIEW_AUTOARRANGE + MENUITEM "&Lerrokatu saretarekin", FCIDM_SHVIEW_ALIGNTOGRID + END + MENUITEM "&Freskatu", FCIDM_SHVIEW_REFRESH + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "I&tsatsi", FCIDM_SHVIEW_INSERT + MENUITEM "It&satsi lasterbidea", FCIDM_SHVIEW_INSERTLINK + END +END + +/* menubar EDIT menu */ +MENU_003 MENU +BEGIN + MENUITEM "Dese&gin\tKtrl+Z", FCIDM_SHVIEW_UNDO + MENUITEM SEPARATOR + MENUITEM "E&baki\tKtrl+X", FCIDM_SHVIEW_CUT + MENUITEM "&Kopiatu\tKtrl+C", FCIDM_SHVIEW_COPY + MENUITEM "&Itsatsi\tKtrl+V", FCIDM_SHVIEW_INSERT + MENUITEM "It&satsi lasterbidea", FCIDM_SHVIEW_INSERTLINK + MENUITEM SEPARATOR + MENUITEM "Kopiatu karpeta &honetara...", FCIDM_SHVIEW_COPYTO + MENUITEM "&Eraman karpeta honetara...", FCIDM_SHVIEW_MOVETO + MENUITEM SEPARATOR + MENUITEM "Hautatu &dena\tKtrl+A", FCIDM_SHVIEW_SELECTALL + MENUITEM "&Alderantzikatu hautapena", FCIDM_SHVIEW_INVERTSELECTION +END + +/* shellview item menu */ +MENU_SHV_FILE MENU +BEGIN + POPUP "" + BEGIN + MENUITEM SEPARATOR + MENUITEM "E&baki", IDM_CUT + MENUITEM "&Kopiatu", IDM_COPY + MENUITEM "&Itsatsi", IDM_INSERT + MENUITEM SEPARATOR + MENUITEM "Sortu &lasterbidea", IDM_CREATELINK + MENUITEM "E&zabatu", IDM_DELETE + MENUITEM "Ize&na aldatu", IDM_RENAME + MENUITEM SEPARATOR + MENUITEM "&Propietateak", IDM_PROPERTIES + END +END + +IDM_DRAGFILE MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "&Kopiatu hona", IDM_COPYHERE + MENUITEM "Era&man hona", IDM_MOVEHERE + MENUITEM "Era&man lasterbide hemen", IDM_LINKHERE + MENUITEM SEPARATOR + MENUITEM "Utzi", 0 + END +END + +IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Karpeta esploratu" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Ados", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Utzi", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP + LTEXT "", IDC_BROWSE_FOR_FOLDER_TITLE, 4, 4, 180, 24 + LTEXT "", IDC_BROWSE_FOR_FOLDER_STATUS, 4, 25, 180, 12 + CONTROL "", IDC_BROWSE_FOR_FOLDER_TREEVIEW, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP, 4, 40, 180, 120 +END + +IDD_BROWSE_FOR_FOLDER_NEW DIALOGEX 15, 40, 218, 196 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Karpeta bilatu" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "", IDC_BROWSE_FOR_FOLDER_TITLE, 10, 8, 198, 24 + LTEXT "", IDC_BROWSE_FOR_FOLDER_STATUS, 10, 25, 198, 12 + EDITTEXT IDC_BROWSE_FOR_FOLDER_FOLDER_TEXT, 12, 38, 194, 14, ES_AUTOHSCROLL | WS_GROUP + CONTROL "", IDC_BROWSE_FOR_FOLDER_TREEVIEW, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_EDITLABELS | TVS_LINESATROOT | TVS_HASLINES | TVS_HASBUTTONS | WS_BORDER | WS_TABSTOP, 12, 58, 194, 105 + PUSHBUTTON "Sortu karpeta &berria", IDC_BROWSE_FOR_FOLDER_NEW_FOLDER, 12, 174, 77, 14, WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "Ados", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Utzi", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP +END + +IDD_YESTOALL_MSGBOX DIALOGEX 200, 100, 280, 90 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Mezu" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Bai", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Guztiari bai", IDC_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Ez", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Utzi", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP + ICON "", IDC_YESTOALL_ICON, 10, 10, 16, 16 + LTEXT "", IDC_YESTOALL_MESSAGE, 40, 10, 238, 52, 0 +END + +IDD_ABOUT DIALOGEX 0, 0, 275, 198 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Honi buruz: %s" +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", IDC_ABOUT_ICON, 7, 55, 21, 20 + LTEXT "", IDC_ABOUT_APPNAME, 35, 55, 200, 10 + LTEXT "", IDC_ABOUT_VERSION, 35, 65, 250, 10 + LTEXT "Copyright 1998-", IDC_STATIC, 35, 75, 53, 10 + LTEXT COPYRIGHT_YEAR, IDC_STATIC, 88, 75, 17, 10 + LTEXT " ReactOS taldea\0", IDC_STATIC, 105, 75, 100, 10 + LTEXT "", IDC_ABOUT_OTHERSTUFF, 35, 90, 180, 20 + LTEXT "ReactOS bersio hau erabiltzailea:", IDC_ABOUT_REG_TO, 35, 115, 180, 10 + LTEXT "", IDC_ABOUT_REG_USERNAME, 45, 125, 180, 10 + LTEXT "", IDC_ABOUT_REG_ORGNAME, 45, 135, 180, 10 + LTEXT "", IDC_STATIC, 35, 147, 235, 1, SS_ETCHEDHORZ + LTEXT "ReactOS-erako memoria fisiko erabilgarria:", IDC_STATIC, 35, 152, 130, 10 + LTEXT "", IDC_ABOUT_PHYSMEM, 167, 152, 88, 10 + DEFPUSHBUTTON "Ados", IDOK, 220, 178, 50, 14 + PUSHBUTTON "", IDC_ABOUT_AUTHORS, 5, 178, 70, 14 +END + +IDD_ABOUT_AUTHORS DIALOGEX 35, 90, 235, 85 +STYLE DS_SHELLFONT | WS_CHILD +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ReactOS erabalgarria dago, haiek lanaren eskerrik:", IDC_STATIC, 0, 0, 180, 10 + LISTBOX IDC_ABOUT_AUTHORS_LISTBOX, 0, 10, 165, 75 +END + +IDD_RUN DIALOGEX 0, 0, 227, 95 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Exekutatu" +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", IDC_RUNDLG_ICON, 7, 11, 18, 20, WS_VISIBLE + LTEXT "Idatzi programa, karpeta, dokumentu edo Interneteko baliabide baten izena eta Windows-ek irekiko dizu.", 12289, 36, 11, 185, 24 + LTEXT "&Ireki:", 12305, 7, 39, 24, 10 + CONTROL "", IDC_RUNDLG_EDITPATH, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 184, 100 + DEFPUSHBUTTON "Ados", IDOK, 62, 70, 50, 14, WS_TABSTOP + PUSHBUTTON "Utzi", IDCANCEL, 116, 70, 50, 14, WS_TABSTOP + PUSHBUTTON "&Arakatu...", 12288, 170, 70, 50, 14, WS_TABSTOP +END + +IDD_SHORTCUT_PROPERTIES DIALOGEX 0, 0, 235, 215 +STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION +CAPTION "Lasterbidea" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON "", IDC_SHORTCUT_ICON, 8, 8, 21, 20, WS_VISIBLE + EDITTEXT IDC_SHORTCUT_TEXT, 49, 10, 180, 14, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "", -1, 8, 31, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Helburuaren mota:", IDC_SHORTCUT_TYPE, 8, 38, 68, 10 + EDITTEXT IDC_SHORTCUT_TYPE_EDIT, 79, 37, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Helburuaren kokalekua:", IDC_SHORTCUT_LOCATION, 8, 55, 68, 10 + EDITTEXT IDC_SHORTCUT_LOCATION_EDIT, 79, 53, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "H&elburua:", IDC_SHORTCUT_TARGET, 8, 71, 68, 10 + EDITTEXT IDC_SHORTCUT_TARGET_TEXT, 79, 69, 150, 14, ES_AUTOHSCROLL + LTEXT "", -1, 8, 88, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "&Hasi hemen:", IDC_SHORTCUT_START_IN, 8, 98, 68, 10 + EDITTEXT IDC_SHORTCUT_START_IN_EDIT, 79, 96, 150, 14, ES_AUTOHSCROLL + LTEXT "Las&ter-tekla:", IDC_SHORTCUT_KEY, 8, 117, 68, 10 + CONTROL "", IDC_SHORTCUT_KEY_HOTKEY, "msctls_hotkey32", WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP, 79, 115, 150, 14 + LTEXT "Exe&kutatu:", IDC_SHORTCUT_RUN, 8, 136, 68, 10 + COMBOBOX IDC_SHORTCUT_RUN_COMBO, 79, 134, 150, 14, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP + LTEXT "&Iruzkina:", IDC_SHORTCUT_COMMENT, 8, 154, 68, 10 + EDITTEXT IDC_SHORTCUT_COMMENT_EDIT, 79, 152, 150, 14, ES_AUTOHSCROLL + PUSHBUTTON "&Bilatu helburua...", IDC_SHORTCUT_FIND, 9, 172, 62, 14, ES_LEFT + PUSHBUTTON "Al&datu ikonoa...", IDC_SHORTCUT_CHANGE_ICON, 76, 172, 62, 14, ES_LEFT + PUSHBUTTON "&Aurreratua...", IDC_SHORTCUT_ADVANCED, 144, 172, 85, 14, ES_LEFT +END + +IDD_SHORTCUT_EXTENDED_PROPERTIES DIALOGEX 0, 0, 230, 150 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "Propietate aurreratuak" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_SHELL_EXTENDED_PROPERTIES, IDI_SHELL_EXTENDED_PROPERTIES, 5, 5, 21, 20, SS_ICON + LTEXT "Aukeratu lasterbideari jarri nahi dizkiozun propietate aurreratuak.", -1, 5, 25, 210, 14 + CHECKBOX "&Exekutatu beste kredentzial batzuekin", IDC_SHORTEX_RUN_DIFFERENT, 25, 50, 150, 10 + LTEXT "Aukera honekin gai izango zara lasterbide hau beste erabiltzaile baten izenarekin exekutatzeko, edo zure izenarekin jarraitzeko, ordenagailua eta datuak baimendu gabeko programa-jardueren kontra babesten dituzun bitartean.", -1, 50, 60, 175, 40 + CHECKBOX "E&xekutatu memoriako leku bereizian", IDC_SHORTEX_RUN_SEPARATE, 25, 100, 150, 10, WS_DISABLED + PUSHBUTTON "Ados", IDOK, 63, 124, 50, 15, WS_VISIBLE + PUSHBUTTON "Utzi", IDCANCEL, 120, 124, 50, 15, WS_VISIBLE +END + +IDD_FOLDER_PROPERTIES DIALOGEX 0, 0, 240, 205 +STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION +CAPTION "Orokorra" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON "", 14000, 16, 7, 32, 32, WS_VISIBLE + EDITTEXT 14001, 58, 9, 170, 14, ES_LEFT + LTEXT "Mota:", 14004, 8, 40, 55, 10 + CONTROL "Karpetaren izena:", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL, 58, 40, 170, 10 + LTEXT "", -1, 8, 31, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Kokalekua:", 14008, 8, 56, 55, 10 + EDITTEXT 14009, 58, 56, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP + LTEXT "Tamaina:", 14010, 8, 72, 55, 10 + EDITTEXT 14011, 58, 72, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Diskoko tamaina:", 140101, 8, 88, 55, 10 + EDITTEXT 14012, 58, 88, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "&Helburua:", 14026, 8, 104, 55, 10 + EDITTEXT 14027, 58, 104, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "", -1, 8, 120, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Sortze-data:", 14014, 8, 128, 55, 10 + EDITTEXT 14015, 58, 128, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "", -1, 8, 144, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Atributuak:", 14020, 8, 152, 46, 10 + AUTOCHECKBOX "&Irakurtzeko soilik", 14021, 58, 151, 70, 10 + AUTOCHECKBOX "&Ezkutukoa", 14022, 126, 151, 70, 10 + AUTOCHECKBOX "Art&xiboa", 14023, 181, 151, 70, 10 + PUSHBUTTON "Au&rreratua...", 14028, 158, 150, 70, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP +END + +IDD_FILE_PROPERTIES DIALOGEX 0, 0, 240, 205 +STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION +CAPTION "Orokorra" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON "", 14000, 16, 7, 32, 32, WS_VISIBLE + EDITTEXT 14001, 58, 9, 170, 14, ES_LEFT | WS_TABSTOP + LTEXT "", -1, 8, 29, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Fitxategi mota:", 14004, 8, 35, 55, 10 + CONTROL "Fitxategi-izena:", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 58, 35, 170, 10 + LTEXT "Honek irekitzen du:", 14006, 8, 53, 50, 10 + ICON "", 14025, 58, 52, 11, 10, NOT WS_VISIBLE + PUSHBUTTON "Aldat&u...", 14024, 168, 50, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + EDITTEXT 14007, 58, 53, 100, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP + LTEXT "", -1, 8, 68, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Kokalekua:", 14008, 8, 75, 45, 10 + EDITTEXT 14009, 58, 75, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP + LTEXT "Tamaina:", 14010, 8, 91, 45, 10 + EDITTEXT 14011, 58, 91, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Diskoko tamaina:", 140112, 8, 107, 55, 10 + EDITTEXT 14012, 58, 107, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "", -1, 8, 123, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Sortze-data:", 14014, 8, 131, 45, 10 + EDITTEXT 14015, 58, 131, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Aldatze-data:", 14016, 8, 147, 45, 10 + EDITTEXT 14017, 58, 147, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Atzitze-data:", 14018, 8, 163, 55, 10 + EDITTEXT 14019, 58, 163, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "", -1, 8, 179, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Atributuak:", 14020, 8, 189, 45, 10 + AUTOCHECKBOX "&Irakurtzeko soilik", 14021, 58, 188, 67, 10 + AUTOCHECKBOX "&Ezkutukoa", 14022, 126, 188, 50, 10 + AUTOCHECKBOX "Art&xiboa", 14023, 181, 188, 49, 10 + PUSHBUTTON "Au&rreratua...", 14028, 180, 185, 50, 15, WS_TABSTOP +END + +IDD_FILE_VERSION DIALOGEX 0, 0, 235, 215 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Bertsioa" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Fitxategi-bertsioa: ", 14000, 10, 10, 62, 14 + EDITTEXT 14001, 77, 10, 152, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + LTEXT "Azalpena: ", 14002, 10, 27, 45, 10 + EDITTEXT 14003, 77, 27, 152, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + LTEXT "Egile: ", 14004, 10, 46, 66, 10 + EDITTEXT 14005, 77, 46, 152, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + GROUPBOX "Bertsioari buruzko bestelako informazioa: ", 14006, 6, 70, 222, 115 + LTEXT "Elementuaren izena:", 14007, 13, 82, 65, 10 + LTEXT "Balioa: ", 14008, 112, 82, 45, 10 + LISTBOX 14009, 12, 94, 94, 83, LBS_STANDARD | WS_TABSTOP | LBS_NOTIFY + EDITTEXT 14010, 112, 93, 109, 83, ES_LEFT | WS_BORDER | WS_VSCROLL | WS_GROUP | ES_MULTILINE | ES_READONLY +END + +IDD_DRIVE_PROPERTIES DIALOGEX 0, 0, 240, 230 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Orokorra" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON "", 14016, 10, 9, 32, 32, WS_VISIBLE + EDITTEXT 14000, 40, 11, 190, 14, ES_LEFT | WS_BORDER | WS_GROUP | ES_AUTOHSCROLL + LTEXT "", -1, 8, 32, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Mota:", -1, 8, 38, 95, 10 + EDITTEXT 14001, 110, 38, 120, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Fitxategi-sistema:", -1, 8, 51, 95, 10 + EDITTEXT 14002, 110, 51, 120, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "", -1, 8, 64, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + CONTROL "", 14013, "Static", SS_SUNKEN | SS_OWNERDRAW, 8, 69, 10, 10 + LTEXT "Erabilitako lekua:", -1, 25, 69, 80, 10 + EDITTEXT 14003, 110, 69, 86, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT 14004, 197, 69, 33, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + CONTROL "", 14014, "Static", SS_SUNKEN | SS_OWNERDRAW, 8, 82, 10, 10 + LTEXT "Leku librea:", -1, 25, 82, 80, 10 + EDITTEXT 14005, 110, 82, 86, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT 14006, 197, 82, 33, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "", -1, 8, 97, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + LTEXT "Edukiera:", -1, 25, 103, 80, 10 + EDITTEXT 14007, 110, 103, 86, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT 14008, 197, 103, 33, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + CONTROL "", 14015, "Static", SS_OWNERDRAW, 70, 116, 100, 30 + LTEXT "%c: unitatea", 14009, 100, 150, 70, 10 + PUSHBUTTON "&Garbitu diskoa", 14010, 160, 154, 70, 15, WS_TABSTOP + LTEXT "", -1, 8, 171, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE + CHECKBOX "&Konprimatu unitatea diskoan leku gehiago egiteko", 14011, 8, 191, 222, 10, WS_DISABLED + CHECKBOX "&Fitxategiak bizkor bilatzeko, eman baimena Indexatze-zerbitzuari disko hau indexatzeko", 14012, 8, 205, 222, 10, WS_DISABLED +END + +IDD_DRIVE_TOOLS DIALOGEX 0, 0, 240, 230 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Tresnak" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Erroreak bilatzea", -1, 5, 5, 230, 60 + ICON IDI_SHELL_TOOLS_CHKDSK, IDC_STATIC, 13, 25, 21, 20 + LTEXT "Aukera honekin erroreak bilatuko dira \nbolumenean.", -1, 40, 25, 160, 20 + PUSHBUTTON "&Bilatu orain...", 14000, 130, 45, 90, 15, WS_TABSTOP + GROUPBOX "Desfragmentazioa", -1, 5, 65, 230, 60 + ICON IDI_SHELL_TOOLS_DEFRAG, IDC_STATIC, 13, 85, 21, 20 + LTEXT "Aukera honekin bolumeneko fitxategiak \ndesfragmentatuko dira.", -1, 40, 85, 160, 20 + PUSHBUTTON "&Desfragmentatu orain...", 14001, 130, 105, 90, 15, WS_TABSTOP + GROUPBOX "Babeskopia", -1, 5, 130, 230, 60 + ICON IDI_SHELL_TOOLS_BACKUP, IDC_STATIC, 13, 150, 21, 20 + LTEXT "Aukera honekin bolumeneko fitxategien \nbabeskopia egingo da.", -1, 40, 150, 160, 20 + PUSHBUTTON "&Egin babeskopia orain...", 14002, 90, 170, 130, 15, WS_TABSTOP +END + +IDD_DRIVE_HARDWARE DIALOGEX 0, 0, 240, 230 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Hardwarea" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN +END + +IDD_RUN_AS DIALOGEX 0, 0, 240, 190 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Exekutatu honela..." +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Zein erabiltzaile-kontu erabili nahi duzu programa hau exekutatzeko?", -1, 10, 20, 220, 20 + CHECKBOX "&Uneko erabiltzailea %s", 14000, 10, 45, 150, 10 + LTEXT "&Babestu ordenagailua baimendu gabeko programa-jardueren kontra.", -1, 25, 57, 200, 10, WS_DISABLED + CHECKBOX "Aukera honek birusek ordenagailuari edo datu pertsonalei kalte egitea eragotziko du, baina agian programak ez du ondo funtzionatuko.", 14001, 25, 68, 200, 30, WS_DISABLED | BS_MULTILINE + CHECKBOX "&Erabiltzaile hau:", 14002, 10, 100, 90, 10 + LTEXT "Erabiltzaile:", -1, 20, 118, 54, 10 + COMBOBOX 14003, 75, 115, 100, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "...", 14004, 180, 115, 30, 14, WS_TABSTOP + LTEXT "Pasahitza:", -1, 20, 143, 53, 10 + EDITTEXT 14005, 74, 140, 100, 14, ES_LEFT | WS_BORDER | WS_GROUP + PUSHBUTTON "...", 14006, 180, 140, 30, 14, WS_TABSTOP + PUSHBUTTON "Ados", 14007, 57, 170, 60, 14, WS_TABSTOP + PUSHBUTTON "Utzi", 14008, 122, 170, 60, 14, WS_TABSTOP +END + +IDD_RECYCLE_BIN_PROPERTIES DIALOGEX 0, 0, 240, 190 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Zakarrontzi propietateak" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 10, 10, 220, 50 + GROUPBOX "Konfiguratu unitateak independenteki ", -1, 10, 72, 220, 70 + RADIOBUTTON "Hautatu &tamaina:", 14001, 20, 90, 88, 10, WS_TABSTOP + EDITTEXT 14002, 116, 103, 50, 14, WS_TABSTOP | ES_NUMBER + LTEXT "&Gehienezko tamaina (MB):", -1, 20, 105, 70, 10 + RADIOBUTTON "&Ez eraman fitxategirik zakarrontzira. Kendu fitxategiak ezabatutakoan", 14003, 20, 117, 185, 20, BS_MULTILINE | WS_TABSTOP + AUTOCHECKBOX "&Bistaratu ezabatzea berresteko elkarrizketa", 14004, 20, 155, 200, 10, WS_TABSTOP +END + +IDD_OPEN_WITH DIALOGEX 0, 0, 264, 256 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION +CAPTION "Ireki honekin" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_SHELL_OPEN_WITH, -1, 8, 12, 21, 20 + LTEXT "Aukeratu zein programarekin ireki nahi duzun fitxategi hau:", -1, 44, 12, 211, 18 + LTEXT "Fitxategia: ", 14001, 44, 30, 188, 10 + GROUPBOX "&Programak ", -1, 7, 42, 249, 187 + CONTROL "Programak", 14002, WC_TREEVIEW, WS_BORDER | WS_TABSTOP | TVS_SHOWSELALWAYS, 16 ,57, 230, 130 + AUTOCHECKBOX "&Erabili beti hautatutako programa mota honetako fitxategiak irekitzeko", 14003, 16, 193, 232, 10 + PUSHBUTTON "&Arakatu...", 14004, 188, 207, 60, 14 + DEFPUSHBUTTON "Ados", IDOK, 150, 236, 50, 14 + PUSHBUTTON "Utzi", IDCANCEL, 206, 236, 50, 14 +END + +IDD_FOLDER_OPTIONS_GENERAL DIALOGEX 0, 0, 294, 240 +STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION +CAPTION "Orokorra" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Atazak", -1, 7, 10, 279, 45 + CONTROL "", IDC_FOLDER_OPTIONS_TASKICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 25, 21, 20 + AUTORADIOBUTTON "&Erakutsi ataza arruntak karpetetan", IDC_FOLDER_OPTIONS_COMMONTASKS, 40, 25, 160, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Erabili &ReactOS-en karpeta klasikoak", IDC_FOLDER_OPTIONS_CLASSICFOLDERS, 40, 37, 160, 10 + GROUPBOX "Arakatu karpetak", -1, 7, 60, 279, 45, WS_TABSTOP + CONTROL "", IDC_FOLDER_OPTIONS_FOLDERICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 70, 21, 20 + AUTORADIOBUTTON "&Ireki karpeta guztiak leiho berean", IDC_FOLDER_OPTIONS_SAMEWINDOW, 40, 75, 160, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "I&reki karpeta bakoitza bere leihoan", IDC_FOLDER_OPTIONS_OWNWINDOW, 40, 87, 140, 10 + GROUPBOX "Elementuetan klik egiteko modua", -1, 7, 110, 279, 60 + CONTROL "", IDC_FOLDER_OPTIONS_CLICKICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 120, 21, 20 + AUTORADIOBUTTON "&Klik bakarra elementu bat irekitzeko (seinalatu hautatzeko)", IDC_FOLDER_OPTIONS_SINGLECLICK, 40, 120, 190, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Klik &bikoitza elementu bat irekitzeko (klik bakarra hautatzeko)", IDC_FOLDER_OPTIONS_DOUBLECLICK, 40, 156, 190, 10 + AUTORADIOBUTTON "Az&pimarratu nire arakatzailearekin bat datozen ikono-tituluak", IDC_FOLDER_OPTIONS_ULBROWSER, 50, 132, 220, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "&Seinalatzen ditudanean bakarrik azpimarratu ikono-tituluak", IDC_FOLDER_OPTIONS_ULPOINT, 50, 144, 190, 10 + PUSHBUTTON "Berre&zarri lehenetsiak", IDC_FOLDER_OPTIONS_RESTORE, 167, 175, 90, 14, WS_TABSTOP +END + +IDD_FOLDER_OPTIONS_VIEW DIALOGEX 0, 0, 294, 240 +STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION +CAPTION "Ikusi" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Karpetaren ikuspegiak", -1, 7, 10, 279, 60 + ICON IDI_SHELL_PROGRAMS_FOLDER2, IDC_STATIC, 20, 20, 21, 20 + LTEXT "Karpeta honentzat erabiltzen duzun ikuspegia (Xehetasunak edo Lauza moduan, adibidez) karpeta guztiei aplika diezaiekezu.", -1, 60, 20, 200, 20 + PUSHBUTTON "A&plikatu karpeta guztiei", IDC_VIEW_APPLY_TO_ALL, 60, 50, 100, 14, WS_TABSTOP + PUSHBUTTON "&Berrezarri karpeta guztiak", IDC_VIEW_RESET_ALL, 165, 50, 100, 14, WS_TABSTOP + LTEXT "Ezarpen aurreratuak:", -1, 7, 80, 100, 10 + CONTROL "", IDC_VIEW_TREEVIEW, "SysTreeView32", WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | TVS_DISABLEDRAGDROP | TVS_LINESATROOT, 7, 90, 249, 120 + PUSHBUTTON "Be&rrezarri lehenetsiak", IDC_VIEW_RESTORE_DEFAULTS, 156, 220, 130, 14, WS_TABSTOP +END + +IDD_FOLDER_OPTIONS_FILETYPES DIALOGEX 0, 0, 294, 240 +STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION +CAPTION "Fitxategi-motak" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Erregistratutako &fitxategi-motak:", -1, 7, 10, 180, 10 + CONTROL "", IDC_FILETYPES_LISTVIEW, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 20, 279, 80 + PUSHBUTTON "&Berria", IDC_FILETYPES_NEW, 170, 110, 55, 14, WS_TABSTOP + PUSHBUTTON "Ez&abatu", IDC_FILETYPES_DELETE, 230, 110, 55, 14, WS_TABSTOP + GROUPBOX "Detalles para el tipo de archivo «%s»", IDC_FILETYPES_DETAILS_GROUPBOX, 7, 130, 279, 100 + LTEXT "Honek irekitzen du:", -1, 12, 140, 50, 10 + CONTROL "", IDC_FILETYPES_ICON, "STATIC", SS_BITMAP | SS_REALSIZEIMAGE, 85, 140, 10, 10 + LTEXT "Aplikazioa", IDC_FILETYPES_APPNAME, 100, 140, 80, 10 + PUSHBUTTON "Alda&tu...", IDC_FILETYPES_CHANGE, 230, 140, 50, 14, WS_TABSTOP + LTEXT "", IDC_FILETYPES_DESCRIPTION, 12, 165, 220, 40 + PUSHBUTTON "Au&rreratua", IDC_FILETYPES_ADVANCED, 190, 213, 90, 14, WS_TABSTOP +END + +IDD_CONFIRM_FILE_REPLACE DIALOGEX 0, 0, 282, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Berretsi fitxategia ordeztea" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Bai", IDYES, 20, 122, 60, 14 + PUSHBUTTON "&Guztiari bai", 12807, 85, 122, 60, 14 + PUSHBUTTON "&Ez", IDNO, 150, 122, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 215, 122, 60, 14 + ICON 146, -1, 11, 10, 21, 20, SS_REALSIZECONTROL + LTEXT "Karpeta honetan badago '%2' izeneko fitxategi bat.", 12291, 44, 10, 231, 22, SS_NOPREFIX + LTEXT "Karpeta honetan badago irakurtzeko soilik den '%2' izeneko fitxategi bat.", 12292, 41, 10, 222, 22, SS_NOPREFIX + LTEXT "Karpeta honetan badago '%2' izeneko sistema-fitxategi bat.", 12293, 41, 10, 222, 22, SS_NOPREFIX + LTEXT "Ordeztu nahi duzu lehendik dagoen fitxategia", -1, 44, 35, 228, 10, SS_NOPREFIX + LTEXT "(data eta tamaina ezezaguna)", 12302, 79, 51, 198, 20, SS_NOPREFIX + ICON "", 12300, 50, 49, 21, 20, SS_REALSIZECONTROL + LTEXT "Ordeztu nahi duzu lehendik dagoen fitxategia", -1, 44, 75, 228, 10, SS_NOPREFIX + LTEXT "(data eta tamaina ezezaguna)", 12303, 79, 91, 198, 20, SS_NOPREFIX + ICON "", 12301, 50, 89, 21, 20, SS_REALSIZECONTROL +END + +IDD_LOG_OFF DIALOGEX 0, 0, 188, 60 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION +CAPTION "Amaitu ReactOS saioa" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_SHELL_LOGOFF, IDC_STATIC, 7, 7, 20, 20 + LTEXT "Ziur zaude saioa amaitu nahi duzula?", -1, 35, 16, 146, 8 + DEFPUSHBUTTON "Ama&itu saioa", IDOK, 41, 39, 50, 14 + PUSHBUTTON "Utzi", IDCANCEL, 95, 39, 50, 14 +END + +IDD_LOG_OFF_FANCY DIALOGEX 0, 0, 208, 122 +STYLE NOT WS_VISIBLE | DS_CENTER | DS_SHELLFONT | WS_BORDER | WS_POPUP +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL IDB_DLG_BG, IDC_STATIC, "STATIC", SS_BITMAP | SS_REALSIZECONTROL, 0, 0, 208, 122 + CONTROL IDB_REACTOS_FLAG, IDC_STATIC, "STATIC", SS_BITMAP, 176, 1, 32, 26 + PUSHBUTTON "&Aldatu erabiltzailea", IDC_SWITCH_USER_BUTTON, 55, 46, 22, 20, BS_OWNERDRAW | WS_DISABLED | WS_GROUP + PUSHBUTTON "Ama&itu saioa", IDC_LOG_OFF_BUTTON, 132, 46, 22, 20, BS_OWNERDRAW + PUSHBUTTON "Utzi", IDCANCEL, 162, 103, 40, 12, WS_GROUP | BS_FLAT + LTEXT "Amaitu ReactOS saioa", IDC_LOG_OFF_TEXT_STATIC, 4, 7, 165, 19 + CTEXT "Aldatu erabiltzailea", IDC_SWITCH_USER_STATIC, 41, 70, 51, 11 + CTEXT "Amaitu saioa", IDC_LOG_OFF_STATIC, 118, 70, 51, 11 +END + +IDD_DISCONNECT DIALOGEX 0, 0, 188, 60 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION +CAPTION "ReactOS deskonektatu" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_SHELL_DISCONN, IDC_STATIC, 8, 6, 21, 20 + LTEXT "Ziur zaude deskonektatu nahi duzula?", -1, 49, 15, 131, 8 + DEFPUSHBUTTON "&Deskonectatu", IDOK, 47, 38, 47, 14 + PUSHBUTTON "Utzi", IDCANCEL, 99, 38, 47, 14 +END + +IDD_AUTOPLAY1 DIALOGEX 0, 0, 227, 218 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION +CAPTION "Erreprodukzio automatikoa" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ha&utatu eduki-mota bat, eta aukeratu ReactOS-ek automatikoki egiteko ekintza bat, mota hori gailu honetan erabiltzean denean:", 1000, 7, 7, 215, 20 + CONTROL "", 1001, "COMBOBOXEX32", WS_TABSTOP | 0x00000043, 7, 27, 212, 200 + GROUPBOX "Ekintzak ", -1, 7, 45, 212, 146 + AUTORADIOBUTTON "&Hautatu ekintza bat egiteko:", 1005, 14, 54, 202, 10, WS_GROUP + CONTROL "LIST2", 1002, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 22, 66, 192, 107 + AUTORADIOBUTTON "&Abisatu ekintza bat aukeratu behar denean", 1006, 14, 177, 202, 10 + PUSHBUTTON "&Berrezarri lehenetsiak", 1008, 108, 197, 110, 14, WS_DISABLED +END + +IDD_MIXED_CONTENT1 DIALOGEX 0, 0, 227, 207 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION +CAPTION "Eduki nahastua" +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", 1000, 5, 7, 21, 20 + LTEXT "Disko edo gailu honek eduki-mota bat baino gehiago du.", 1001, 32, 7, 191, 20 + LTEXT "Zer nahi duzu ReactOS-ek egitea?", 1002, 32, 31, 188, 8 + CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 43, 188, 139 + DEFPUSHBUTTON "Ados", IDOK, 96, 186, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 160, 186, 60, 14 +END + +IDD_MIXED_CONTENT2 DIALOGEX 0, 0, 227, 206 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION +CAPTION "Eduki nahastua" +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", 1000, 5, 7, 21, 20 + LTEXT "Fitxategi-mota hau duen disko bat sartu edo gailu bat konektatzen duzun bakoitzean ekintza bera egitea aukera dezakezu:", 1001, 30, 7, 193, 20 + ICON "", 1005, 32, 27, 11, 10, SS_REALSIZECONTROL + EDITTEXT 1006, 49, 28, 177, 14, ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Zer nahi duzu ReactOS-ek egitea?", 1002, 32, 41, 190, 8 + CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 55, 188, 112 + AUTOCHECKBOX "Egin beti hautatutako ekintza.", 1004, 32, 171, 190, 10 + DEFPUSHBUTTON "Ados", IDOK, 96, 185, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 160, 185, 60, 14 +END + +IDD_AUTOPLAY2 DIALOGEX 0, 0, 227, 181 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION +CAPTION "Erreprodukzio automatikoa" +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", 1000, 5, 7, 21, 20 + LTEXT "ReactOS-ek ekintza bera egin dezake gailu hau konektatzen duzun bakoitzean.", 1001, 32, 7, 190, 22 + LTEXT "Zer nahi duzu ReactOS-ek egitea?", 1002, 32, 31, 190, 8 + CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 43, 187, 96 + AUTOCHECKBOX "&Egin beti hautatutako ekintza", 1004, 32, 143, 190, 8 + DEFPUSHBUTTON "Ados", IDOK, 94, 160, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 159, 160, 60, 14 +END + +IDD_SHUTDOWN DIALOGEX 0, 0, 211, 103 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION +CAPTION "Itzali ReactOS" +FONT 8, "MS Shell Dlg" +BEGIN + ICON 8240, -1, 6, 6, 21, 20, SS_REALSIZECONTROL | WS_GROUP + LTEXT "Ordenagailuak zer egitea nahi duzu?", -1, 39, 7, 167, 10 + COMBOBOX 8224, 39, 20, 165, 200, CBS_DROPDOWNLIST | WS_VSCROLL + LTEXT "Saioa mantentzen du, eta datuak oraindik memorian daudela ordenagailua martxan edukitzen du energia gutxirekin. Ordenagailua esnatuko da teklaren bat sakatzean edo sagua mugitzean.", 8225, 39, 40, 167, 37 + DEFPUSHBUTTON "Ados", 1, 7, 82, 60, 14, WS_GROUP + PUSHBUTTON "Utzi", IDCANCEL, 75, 82, 60, 14 + PUSHBUTTON "&Laguntza", IDHELP, 144, 82, 60, 14 +END + +IDD_FORMAT_DRIVE DIALOGEX 50, 50, 184, 218 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Formateatu" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Hasi", IDOK, 53, 198, 60, 14 + PUSHBUTTON "&Itxi", IDCANCEL, 118, 198, 60, 14 + LTEXT "&Edukiera:", -1, 7, 6, 169, 9 + COMBOBOX 28673, 7, 17, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "&Fitxategi-sistema", -1, 7, 35, 170, 9 + COMBOBOX 28677, 7, 46, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + CONTROL "", 28678, "MSCTLS_PROGRESS32", 0, 7, 181, 170, 8 + LTEXT "E&sleipen-unitatearen tamaina", -1, 7, 64, 170, 9 + COMBOBOX 28680, 7, 75, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "&Bolumenaren etiketa", -1, 7, 93, 170, 9 + EDITTEXT 28679, 7, 103, 170, 13, ES_AUTOHSCROLL + GROUPBOX "F&ormatuaren aukerak", 4610, 7, 121, 170, 49 + AUTOCHECKBOX "Bi&zkor formateatu", 28674, 16, 135, 155, 10 + AUTOCHECKBOX "&Gaitu konpresioa", 28675, 16, 152, 155, 10 +END + +IDD_CHECK_DISK DIALOGEX 50, 50, 240, 120 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Aztertu diskoa" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Hasi", IDOK, 63, 95, 60, 14 + GROUPBOX "Aztertu disko-aukerak ", -1, 7, 6, 225, 50 + PUSHBUTTON "Utzi", IDCANCEL, 128, 95, 60, 14 + AUTOCHECKBOX "&Konpondu automatikoki fitxategi-sistemaren erroreak", 14000, 16, 15, 200, 10 + AUTOCHECKBOX "&Bilatu eta saiatu berreskuratzen sektore txarrak", 14001, 16, 30, 200, 10 + CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 60, 225, 8 + LTEXT "", 14003, 60, 80, 170, 10 +END + +IDD_PICK_ICON DIALOGEX 0, 0, 193, 200 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Aldatu ikonoa" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "Bilatu ikonoak fitxategi honetan:", -1, 7, 7, 179, 10 + PUSHBUTTON "&Arakatu...", IDC_BUTTON_PATH, 135, 17, 50, 14 + EDITTEXT IDC_EDIT_PATH, 7, 17, 123, 14, ES_AUTOHSCROLL + LTEXT "&Hautatu ikono bat beheko zerrendan:", -1, 7, 36, 179, 10 + LISTBOX IDC_PICKICON_LIST, 7, 47, 181, 122, LBS_OWNERDRAWFIXED | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | LBS_DISABLENOSCROLL | WS_HSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Ados", IDOK, 81, 179, 50, 14 + PUSHBUTTON "Utzi", IDCANCEL, 135, 179, 50, 14 +END + +IDD_NOOPEN DIALOGEX 0, 0, 240, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Kontuz" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_SHELL_SYSTEM_FILE, IDI_SHELL_SYSTEM_FILE, 5, 5, 21, 20 + LTEXT "Ester archivo podría pertenecer al sistema operativo o\n\ +alguna otra aplicación. Modificar este archivo podría dañar el\n\ +sistema o comprometer su correcto funcionamiento.\n\n\ +¿Seguro que quiere abrir este archivo?", IDC_STATIC, 35, 5, 230, 60 + DEFPUSHBUTTON "Bai", IDYES, 125, 55, 50, 14 + PUSHBUTTON "Ez", IDNO, 180, 55, 50, 14 +END + +IDD_NEWEXTENSION DIALOGEX 0, 0, 260, 75 +CAPTION "Sortu luzapen berria" +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Fitxategi-luzapena:", -1, 10, 10, 85, 14 + EDITTEXT IDC_NEWEXT_EDIT, 105, 8, 60, 14 + PUSHBUTTON "<< &Aurreratua", IDC_NEWEXT_ADVANCED, 185, 8, 65, 15 + LTEXT "A&soziatutako fitxategi-mota:", IDC_NEWEXT_ASSOC, 10, 34, 85, 14 + COMBOBOX IDC_NEWEXT_COMBOBOX, 105, 32, 145, 120, CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "Ados", IDOK, 125, 55, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 190, 55, 60, 14 +END + +IDD_EDITTYPE DIALOG 0, 0, 225, 190 +CAPTION "Editatu fitxategi-mota" +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", IDC_EDITTYPE_ICON, 5, 8, 20, 20 + EDITTEXT IDC_EDITTYPE_TEXT, 30, 10, 115, 14, ES_AUTOHSCROLL + PUSHBUTTON "Aldatu &Ikonoa...", IDC_EDITTYPE_CHANGE_ICON, 150, 10, 70, 14 + LTEXT "&Ekintzak:", -1, 5, 37, 70, 10 + LISTBOX IDC_EDITTYPE_LISTBOX, 5, 50, 140, 60, LBS_NOINTEGRALHEIGHT | LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | LBS_NOTIFY | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Berria...", IDC_EDITTYPE_NEW, 150, 50, 70, 14 + PUSHBUTTON "&Editatu...", IDC_EDITTYPE_EDIT_BUTTON, 150, 65, 70, 14 + PUSHBUTTON "&Kendu", IDC_EDITTYPE_REMOVE, 150, 80, 70, 14 + PUSHBUTTON "L&ehenesi", IDC_EDITTYPE_SET_DEFAULT, 150, 95, 70, 14 + AUTOCHECKBOX "Berre&tsi irekitzea deskargatu ondoren", IDC_EDITTYPE_CONFIRM_OPEN, 5, 115, 150, 14 + AUTOCHECKBOX "E&rakutsi beti luzapena", IDC_EDITTYPE_SHOW_EXT, 5, 130, 150, 14 + AUTOCHECKBOX "Arakatu &leiho berean", IDC_EDITTYPE_SAME_WINDOW, 5, 145, 150, 14 + DEFPUSHBUTTON "Ados", IDOK, 95, 170, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 160, 170, 60, 14 +END + +IDD_ACTION DIALOG 0, 0, 225, 95 +CAPTION "Ekintza berria" +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ekint&za:", -1, 5, 7, 150, 10 + EDITTEXT IDC_ACTION_ACTION, 5, 20, 150, 14, ES_AUTOHSCROLL + LTEXT "E&kintza egiteko erabilitako aplikazioa:", -1, 5, 42, 150, 10 + EDITTEXT IDC_ACTION_APP, 5, 55, 150, 14, ES_AUTOHSCROLL + PUSHBUTTON "Arakat&u...", IDC_ACTION_BROWSE, 160, 60, 60, 14 + AUTOCHECKBOX "E&rabili DDE", IDC_ACTION_USE_DDE, 10, 75, 103, 14 + DEFPUSHBUTTON "Ados", IDOK, 160, 20, 60, 14 + PUSHBUTTON "Utzi", IDCANCEL, 160, 40, 60, 14 +END + +IDD_FOLDER_CUSTOMIZE DIALOGEX 0, 0, 240, 250 +CAPTION "Pertsonalizatu" +STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Zer karpeta-mota nahi duzu?", IDC_STATIC, 5, 5, 230, 65, WS_TABSTOP + LTEXT "E&rabili karpeta-mota hau txantiloi gisa:", IDC_STATIC, 15, 20, 210, 12 + COMBOBOX IDC_FOLDERCUST_COMBOBOX, 15, 35, 210, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + AUTOCHECKBOX "&Azpikarpetei ere aplikatu txantiloi hau", IDC_FOLDERCUST_CHECKBOX, 15, 50, 210, 15 + GROUPBOX "Karpeten irudiak", IDC_STATIC, 5, 75, 230, 90, WS_TABSTOP + LTEXT "Koadro txikien ikuspegirako, irudi bat jar dezakezu karpetan edukiaz gogoratzeko.", IDC_STATIC, 15, 87, 115, 33 + PUSHBUTTON "A&ukeratu irudia...", IDC_FOLDERCUST_CHOOSE_PIC, 15, 125, 115, 15 + PUSHBUTTON "&Berrezarri lehenetsia", IDC_FOLDERCUST_RESTORE_DEFAULTS, 15, 144, 115, 15 + LTEXT "Aurrebista:", IDC_STATIC, 139, 85, 81, 11 + CONTROL "", IDC_FOLDERCUST_PREVIEW_BITMAP, "STATIC", SS_BITMAP | WS_GROUP, 150, 100, 60, 60 + GROUPBOX "Karpeten ikonoak", IDC_STATIC, 5, 170, 230, 65, WS_TABSTOP + LTEXT "Koadro txikien ikuspegia ez beste guztietan, karpetaren ikono estandarra beste batekin ordez dezakezu.", IDC_STATIC, 15, 180, 210, 25 + ICON 0, IDC_FOLDERCUST_ICON, 175, 209, 32, 30 + PUSHBUTTON "Al&datu ikonoa...", IDC_FOLDERCUST_CHANGE_ICON, 15, 210, 75, 15 +END + +IDD_LINK_PROBLEM DIALOGEX 0, 0, 250, 140 +CAPTION "Arazoa lasterbidearekin" +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +BEGIN + ICON 0, IDC_LINK_PROBLEM_ICON, 5, 5, 0, 0 + LTEXT "Lasterbide honen helburuko '%s' elementua aldatu egin da edo beste norabait eraman da: lasterbideak ez du aurrerantzean ondo funtzionatuko.", IDC_LINK_PROBLEM_LABEL1, 35, 5, 210, 35 + LTEXT "Gehien hurbiltzen dena tamaina, data, eta motaren arabera:", IDC_LINK_PROBLEM_LABEL2, 35, 45, 210, 35 + LTEXT "Lasterbide honek helburu horri erreferentzia egitea nahi duzu, edo ezabatu egin nahi duzu besterik gabe?", -1, 35, 85, 210, 30 + DEFPUSHBUTTON "K&onpondu", IDOK, 55, 120, 60, 15, WS_DISABLED + PUSHBUTTON "&Ezabatu", IDYES, 120, 120, 60, 15 + PUSHBUTTON "Utzi", IDCANCEL, 185, 120, 60, 15 +END + +STRINGTABLE +BEGIN + /* columns in the shellview */ + IDS_SHV_COLUMN_NAME "Izena" + IDS_SHV_COLUMN_SIZE "Tamaina" + IDS_SHV_COLUMN_TYPE "Mota" + IDS_SHV_COLUMN_MODIFIED "Aldatze-data" + IDS_SHV_COLUMN_ATTRIBUTES "Atributuak" + IDS_SHV_COLUMN_DISK_CAPACITY "Tamaina" + IDS_SHV_COLUMN_DISK_AVAILABLE "Erabilgarri tamaina" + IDS_SHV_COLUMN_OWNER "Egile" + IDS_SHV_COLUMN_GROUP "Talde" + IDS_SHV_COLUMN_FILENAME "Fitxategi izena" + IDS_SHV_COLUMN_CATEGORY "Kategoria" + IDS_SHV_COLUMN_DELFROM "Jatorrizko kokalekua" + IDS_SHV_COLUMN_DELDATE "Ezabatze-data" + IDS_SHV_COLUMN_FONTTYPE "Letra-tipo mota" + IDS_SHV_COLUMN_WORKGROUP "Lantalde" + IDS_SHV_COLUMN_NETLOCATION "Sare kokalekua" + IDS_SHV_COLUMN_DOCUMENTS "Dokumentuak" + IDS_SHV_COLUMN_STATUS "Egoera" + IDS_SHV_COLUMN_COMMENTS "Azalpenak" + IDS_SHV_COLUMN_LOCATION "Kokalekua" + IDS_SHV_COLUMN_MODEL "Eredu" + + /* special folders */ + IDS_DESKTOP "Mahaigaina" + IDS_MYCOMPUTER "Ordenagailua" + IDS_RECYCLEBIN_FOLDER_NAME "Zakarrontzia" + IDS_CONTROLPANEL "Kontrol Panela" + IDS_ADMINISTRATIVETOOLS "Administrazio-tresnak" + + /* special folders descriptions */ + IDS_ADMINISTRATIVETOOLS_DESCRIPTION "Konfiguratu ordenagailuaren administrazio-ezarpenak." + IDS_FOLDER_OPTIONS_DESCRIPTION "Pertsonalizatu fitxategi eta karpeten bistaratzea, aldatu fitxategi-asoziazioak, eta jarri sareko fitxategiak erabilgarri lineaz kanpo." + IDS_FONTS_DESCRIPTION "Gehitu, aldatu eta kudeatu ordenagailuko letra-tipoak." + IDS_PRINTERS_DESCRIPTION "Instalatutako inprimagailu eta fax-inprimagailuak erakusten ditu, eta gehiago instalatzen lagundu." + + /* About shell dialog version string */ + IDS_ABOUT_VERSION_STRING "%S (%S) bersioa" + + /* context menus */ + IDS_VIEW_LARGE "I&kono handiak" + IDS_VIEW_SMALL "Ikono &txikiak" + IDS_VIEW_LIST "&Zerrenda" + IDS_VIEW_DETAILS "&Xehetasunak" + IDS_SELECT "Hautatu" + IDS_OPEN "Ireki" + IDS_CREATELINK "Sortu &lasterbidea" + IDS_COPY "&Kopiatu" + IDS_DELETE "E&zabatu" + IDS_PROPERTIES "&Propietateak" + IDS_CUT "&Ebaki" + IDS_RESTORE "Berrezarri" + IDS_FORMATDRIVE "Formateatu..." + IDS_RENAME "Ize&na aldatu" + IDS_PASTE "Sartu" + IDS_EJECT "Atera" + IDS_DISCONNECT "Deskonektatu" + IDS_OPENFILELOCATION "Ireki &fitxategi kokalekua" + IDS_SENDTO_MENU "&Bidali hona" + + IDS_MOVEERRORTITLE "Errore bat gertatu da fitxategia edo karpeta lekuz aldatzean" + IDS_COPYERRORTITLE "Errore bat gertatu da fitxategia edo karpeta kopiatzean" + IDS_MOVEERRORSAMEFOLDER "Ezin da lekuz aldatu '%s': Karpetak elkar bezalak dira." + IDS_MOVEERRORSAME "Ezin da lekuz aldatu '%s': Fitxategiak elkar bezalak dira." + IDS_COPYERRORSAME "Ezin da kopiatu '%s': Fitxategiak elkar bezalak dira." + IDS_MOVEERRORSUBFOLDER "Ezin da lekuz aldatu '%s': La carpeta de destino es un subdirectorio de la de origen." + IDS_COPYERRORSUBFOLDER "Ezin da kopiatu '%s': La carpeta de destino es un subdirectorio de la de origen." + + IDS_CREATEFOLDER_DENIED "Ezin da sortu '%1'" + IDS_CREATEFOLDER_CAPTION "Ezin da sortu karpeta" + IDS_DELETEITEM_CAPTION "Fitxategi ezabatzea baieztatu" + IDS_DELETEFOLDER_CAPTION "Karpeta ezabatzea baieztatu" + IDS_DELETEITEM_TEXT "Ziur zaude '%1' elementu hau ezabatu nahi duzula?" + IDS_DELETEMULTIPLE_TEXT "Ziur zaude '%1' elementu hauek ezabatu nahi dituzula?" + IDS_DELETESELECTED_TEXT "Ziur zaude '%1' elementu hau(ek) zakarrontzira bota nahi d(it)uzula?" + IDS_TRASHITEM_TEXT "Ziur zaude '%1' elementu hau zakarrontzira bota nahi duzula?" + IDS_TRASHFOLDER_TEXT "Ziur zaude '%1' elementu hau eta bere edukiak zakarrontzira bota nahi dituzula?" + IDS_TRASHMULTIPLE_TEXT "Ziur zaude '%1' elementu hauek zakarrontzira bota nahi dituzula?" + IDS_CANTTRASH_TEXT "Ez da posible '%1' Zakarontzira botatzeko. Behin betiko ezabatu nahi duzula?" + IDS_OVERWRITEFILE_TEXT "Karpeta hau fitxategi bat '%1' izena dauka.\n\nLehendik dagoen fitxategia ordeztu nahi duzu?" + IDS_OVERWRITEFILE_CAPTION "Fitxategi ordezkapena berretsi" + IDS_OVERWRITEFOLDER_TEXT "Karpeta honek '%1' izeneko karpeta dauka ere.\n\nLehendik dagoen karpetako fitxategiek mugitzen edo\nkopiatzen ari zaren karpetako fitxategien izen bera badute,\nordezkatuko dira. Karpeta mugitu edo kopiatu nahi duzu?" + + IDS_FILEOOP_COPYING "Kopiatzen..." + IDS_FILEOOP_MOVING "Lekuz aldatzen..." + IDS_FILEOOP_DELETING "Ezabatzen..." + IDS_FILEOOP_FROM_TO "%1-dik %2-ra" + IDS_FILEOOP_FROM "%1-dik" + IDS_FILEOOP_PREFLIGHT "Egiaztatzen" + + /* message box strings */ + IDS_RESTART_TITLE "Berrabiarazi" + IDS_RESTART_PROMPT "Ordenagailua berrabiaratzea nahi duzu?" + IDS_SHUTDOWN_TITLE "Itzali" + IDS_SHUTDOWN_PROMPT "Ordenagailua itzaltzea nahi duzu?" + + /* Format Dialog Strings */ + IDS_FORMAT_TITLE "Formateatu Disko Locala" + IDS_FORMAT_WARNING "KONTUZ: Formateatzean diskoko datu GUZTIAK ezabatuko dira.\nDiskoa formateatzeko, egin klik ADOSen. Irteteko, egin klik UTZIn." + IDS_FORMAT_COMPLETE "Formateatzea osatuta." + + /* Warning format system drive dialog strings */ + IDS_NO_FORMAT_TITLE "Ezin du bolumena formatu" + IDS_NO_FORMAT "Bolumena ezin du formatu! Sistema-fitxategi garrantzitsuak ditu ReactOS exekutatu ahal izateko." + + /* Run File dialog */ + IDS_RUNDLG_ERROR "Ezin du Exekutatu dialogoa ireki (barneko errorea)" + IDS_RUNDLG_BROWSE_ERROR "Ezin du Arakatu dialogoa ireki (barneko errorea)" + IDS_RUNDLG_BROWSE_CAPTION "Arakatu" + IDS_RUNDLG_BROWSE_FILTER "Exekutatuko fitxategi (*.exe)\0*.exe\0Fitxategi denak (*.*)\0*.*\0" + + /* Shell folder path default values. See also: dll/win32/userenv/lang */ + IDS_PROGRAMS "Hasi Menua\\Programak" + IDS_PERSONAL "Nire dokumentuak" + IDS_FAVORITES "Gogokoenak" + IDS_STARTUP "Hasi Menua\\Programak\\Hasi" + IDS_RECENT "Arestikoak" + IDS_SENDTO "Bidali hona" + IDS_STARTMENU "Hasi Menua" + IDS_MYMUSIC "Nire musika" + IDS_MYVIDEO "Nire bideoak" + IDS_DESKTOPDIRECTORY "Mahaigaina" + IDS_NETHOOD "Sarekoak" + IDS_TEMPLATES "Txantioiak" + IDS_APPDATA "Programaren datuak" + IDS_PRINTHOOD "Inprimagailuak" + IDS_LOCAL_APPDATA "Lokal konfigurazioa\\Programaren datuak" + IDS_INTERNET_CACHE "Lokal konfigurazioa\\Interneten Aldi Baterako Fitxategiak" + IDS_COOKIES "Cookiak" + IDS_HISTORY "Lokal konfigurazioa\\Historia" + IDS_PROGRAM_FILES "Programaren fitxategiak" + IDS_MYPICTURES "Nire irudiak" + IDS_PROGRAM_FILES_COMMON "Programaren fitxategiak\\Fitxategi arruntak" + IDS_COMMON_DOCUMENTS "Dokumentuak" + IDS_ADMINTOOLS "Hasi Menua\\Programak\\Administrazio-tresnak" + IDS_COMMON_MUSIC "Dokumentuak\\Nire musika" + IDS_COMMON_PICTURES "Dokumentuak\\Nire irudiak" + IDS_COMMON_VIDEO "Dokumentuak\\Nire bideoak" + IDS_CDBURN_AREA "Lokal konfigurazioa\\Programaren datuak\\Microsoft\\CD Burning" + IDS_NETWORKPLACE "Nire sarelekuak" + + IDS_NEWFOLDER "Karpeta berria" + + IDS_DRIVE_FIXED "Disko lokala" + IDS_DRIVE_CDROM "CD Unitatea" + IDS_DRIVE_NETWORK "Sareko Unitatea" + IDS_DRIVE_FLOPPY "Diskete" + IDS_DRIVE_REMOVABLE "Eurauzgarri diskoa" + IDS_FS_UNKNOWN "Ezezagun" + + /* Open With */ + IDS_OPEN_WITH "Ireki honekin" + IDS_OPEN_WITH_CHOOSE "Aukeratu programa..." + IDS_OPEN_WITH_RECOMMENDED "Gomendatu programak:" + IDS_OPEN_WITH_OTHER "Beste programak:" + + IDS_SHELL_ABOUT_AUTHORS "&Egileak" + IDS_SHELL_ABOUT_BACK "< A&tzea" + FCIDM_SHVIEW_NEW "Berria" + FCIDM_SHVIEW_NEWFOLDER "Karpeta &berria" + FCIDM_SHVIEW_NEWLINK "&Lasterbide berria" + IDS_FOLDER_OPTIONS "Karpeta aukera" + IDS_RECYCLEBIN_LOCATION "Zakarrontzi lekua" + IDS_RECYCLEBIN_DISKSPACE "Espacio disponible" + IDS_EMPTY_BITBUCKET "Hustu zakarontzia" + IDS_PICK_ICON_TITLE "Hautatu ikonoa" + IDS_PICK_ICON_FILTER "Ikono fitxategiak (*.ico, *.icl, *.exe, *.dll)\0*.ico;*.icl;*.exe;*.dll\0Fitxategi denak (*.*)\0*.*\0" + IDS_OPEN_WITH_FILTER "Programak (*.exe)\0*.exe\0Fitxategi denak (*.*)\0*.*\0" + + IDS_CANTLOCKVOLUME "Ezin izan da diskoa blokeatu (Error kodea: %lu)." + IDS_CANTDISMOUNTVOLUME "Ezin izan da diskoa desmuntatu (Error kodea: %lu)." + IDS_CANTEJECTMEDIA "Ezin izan da diskoa kendu (Error kodea: %lu)." + IDS_CANTSHOWPROPERTIES "Ezin dira propietateak bistaratu (Error kodea: %lu)." + IDS_CANTDISCONNECT "Ezin izan da deskonektatu (Error kodea: %lu)." + IDS_NONE "(Ezer)" + + /* Friendly File Type Names */ + IDS_DIRECTORY "Direktorioa" + IDS_BAT_FILE "ReactOS lote fitxaetgiak" + IDS_CMD_FILE "ReactOS Script Komanduak" + IDS_COM_FILE "DOS Aplikazioa" + IDS_CPL_FILE "Kontrol Panelaren Elementua" + IDS_CUR_FILE "Kursor" + IDS_DB__FILE "Datak-basea" + IDS_DLL_FILE "Aplikazioen liburutegia" + IDS_DRV_FILE "Gailu kontrolatzailea" + IDS_EFI_FILE "EFI Aplikazioa (Extensible Firmware Interface)" + IDS_EXE_FILE "Aplikazioa" + IDS_NLS_FILE "NLS fitxategia (National Language Support)" + IDS_OCX_FILE "ActiveX kontrola" + IDS_TLB_FILE "Librería de tipos" + IDS_FON_FILE "Letra-tipo fitxategia" + IDS_TTF_FILE "TrueType letra-tipo fitxategia" + IDS_OTF_FILE "OpenType letra-tipo fitxategia" + IDS_HLP_FILE "Archivo de ayuda" + IDS_ICO_FILE "Ikono" + IDS_INI_FILE "Konfigurazio fitxategiak" + IDS_LNK_FILE "Lasterbidea" + IDS_NT__FILE "NT DOS32 konfigurazio fitxategia" + IDS_PIF_FILE "NT VDM Program Information File" + IDS_SCR_FILE "Protector de pantalla" + IDS_SYS_FILE "Sistemaren fitxategia" + IDS_VXD_FILE "Controlador de dispositivo virtual" + IDS_ANY_FILE "%s fitxategi" + + IDS_OPEN_VERB "Ireki" + IDS_EXPLORE_VERB "Arakatu" + IDS_RUNAS_VERB "Exekutatu honela..." + IDS_EDIT_VERB "Editatu" + IDS_FIND_VERB "Bilatu" + IDS_PRINT_VERB "Inprimatu" + IDS_CMD_VERB "Ireki terminalan" + + IDS_FILE_FOLDER "%u fitxategiak, %u karpetak" + IDS_PRINTERS "Imprimagailuak" + IDS_FONTS "Letra-tipo" + IDS_INSTALLNEWFONT "Letra-tipo instalatu..." + + IDS_DEFAULT_CLUSTER_SIZE "Esleitutako tamaina lehenetsia" + IDS_COPY_OF "Zeren kopia" + + IDS_SHLEXEC_NOASSOC "Ez dago programarik konfiguratuta ReactOSen fitxategi mota hau irekitzeko." + + IDS_FILE_DETAILS "«%s» fitxategi motaren xehetasunak:" + IDS_FILE_DETAILSADV "Luzapen «%s» duten fitxategiak «%s» motakoak dira. Fitxategien ezarpenak aldatzeko «%s», sakatu Ezarpen aurreratuak" + IDS_FILE_TYPES "Fitxategi-mota" + IDS_COLUMN_EXTENSION "Luzapena" + + /* As in 'INI File' or 'WAV File', fallback string for no-name extensions + used in the _File type_ tab of the _Folder Options_ dialog */ + IDS_FILE_EXT_TYPE "%s fitxategi" + + IDS_BYTES_FORMAT "bytes" + IDS_UNKNOWN_APP "Aplikazio ezezaguna" + IDS_EXE_DESCRIPTION "Deskribapena:" + + IDS_MENU_EMPTY "(Hutz)" + IDS_OBJECTS "%d elementuak" + IDS_OBJECTS_SELECTED "%d elementu hautatuak" + + IDS_ADVANCED_FOLDER "Fitxategiak eta karpetak" + IDS_ADVANCED_NET_CRAWLER "Bilatu sareko karpetak eta inprimagailuak automatikoki" + IDS_ADVANCED_FOLDER_SIZE_TIP "Erakutsi karpetaren tamaina" + IDS_ADVANCED_FRIENDLY_TREE "Erakutsi ikuspegi sinplea karpeta-zerrendan" + IDS_ADVANCED_WEB_VIEW_BARRICADE "Erakutsi sistemaren karpeten edukia" + IDS_ADVANCED_SHOW_FULL_PATH_ADDRESS "Erakutsi bide osoa helbide-barran" + IDS_ADVANCED_SHOW_FULL_PATH "Erakutsi bide osoa izenburu-barran" + IDS_ADVANCED_DISABLE_THUMB_CACHE "Ez gorde miniaturak cachean" + IDS_ADVANCED_HIDDEN "Ezkutuko fitxategiak eta karpetak" + IDS_ADVANCED_DONT_SHOW_HIDDEN "Ez erakutsi ezkutuko fitxategi eta karpetak" + IDS_ADVANCED_SHOW_HIDDEN "Erakutsi ezkutuko fitxategiak eta karpetak" + IDS_ADVANCED_HIDE_FILE_EXT "Ezkutatu fitxategi mota ezagunentzako luzapenak" + IDS_ADVANCED_SUPER_HIDDEN "Ezkutatu babestutako sistema eragilearen fitxategiak (gomendatua)" + IDS_ADVANCED_DESKTOP_PROCESS "Ireki karpetak prozesu ezberdinetan" + IDS_ADVANCED_CLASSIC_VIEW_STATE "Gogoratu ikuspegi pertsonalizatuak karpetetan" + IDS_ADVANCED_PERSIST_BROWSERS "Berrezarri irekitako karpetak saioa hasten denean" + IDS_ADVANCED_CONTROL_PANEL_IN_MY_COMPUTER "Erakutsi kontrol-panela nire ordenagailuan" + IDS_ADVANCED_SHOW_COMP_COLOR "Erakutsi koloretan konprimitutako edo enkriptatutako NTFS fitxategiak" + IDS_ADVANCED_SHOW_INFO_TIP "Erakutsi ikonoen eta karpeten deskribapena mahaigainean" + + IDS_NEWEXT_ADVANCED_LEFT "<< &Aurreratua" + IDS_NEWEXT_ADVANCED_RIGHT "&Aurreratua >>" + IDS_NEWEXT_NEW "<Berri>" + IDS_NEWEXT_SPECIFY_EXT "Luzapena zehaztu behar duzu." + IDS_NEWEXT_ALREADY_ASSOC "%s luzapena %s fitxategi-motarekin lotuta dago. ¿Desea desasociar %s con %s y crear un nuevo tipo de archivo?" + IDS_NEWEXT_EXT_IN_USE "Luzapen hau dagoeneko erabiltzen da" + + IDS_REMOVE_EXT "Si elimina una extensión de archivo, no podrá abrir archivos con esa extensión haciendo doble click en sus íconos.\n\n¿Está seguro de eliminar esta extensión?" + IDS_SPECIFY_ACTION "Debe especificar una acción." + IDS_INVALID_PROGRAM "No se pudo encontrar el programa. Verifique que el nombre de archivo y la ruta son correctos." + IDS_REMOVE_ACTION "¿Está seguro de eliminar esta acción?" + IDS_ACTION_EXISTS "La acción '%s' ya está registrada para este tipo de archivo. Intente nuevamente con otro nombre." + IDS_EXE_FILTER "Programak\0*.exe\0Fitxategi denak\0*.*\0" + IDS_EDITING_ACTION "Editatu ekintza: " + IDS_NO_ICONS "El archivo '%s' no contiene íconos.\n\nEscoja un ícono de la lista o seleccione otro archivo." + IDS_FILE_NOT_FOUND "El archivo '%s' no pudo ser encontrado." + IDS_LINK_INVALID "The item '%s' that this shortcut refers to has been changed or moved, so this shortcut will no longer work properly." + IDS_COPYTOMENU "Kopiatu &karpetara..." + IDS_COPYTOTITLE "Hautatu nora mugitu nahi duzu '%s'. Ondoren, klik egin Kopiatu botoia." + IDS_COPYITEMS "Kopiatu elementuak" + IDS_COPYBUTTON "Kopiatu" + IDS_MOVETOMENU "Mu&gitu karpetara..." + IDS_MOVETOTITLE "Hautatu nora mugitu nahi duzu '%s'. Ondoren, klik egin Mugitu botoia." + IDS_MOVEITEMS "Migitu elementuak" + IDS_MOVEBUTTON "Mugitu" + + IDS_SYSTEMFOLDER "Sistemako Karpeta" + + /* For IDD_LOG_OFF_FANCY */ + IDS_LOG_OFF_DESC "Closes your programs and ends your ReactOS session." + IDS_SWITCH_USER_DESC "Lets another user log on while your programs and files remain open.\r\n\r\n(You can also switch users by pressing the Windows logo key + L.)" + IDS_LOG_OFF_TITLE "Amaitu saioa" + IDS_SWITCH_USER_TITLE "Aldatu erabiltzailea" +END diff --git a/dll/win32/shell32/shell32.rc b/dll/win32/shell32/shell32.rc index a2e2b458e19..bf1bc9580f2 100644 --- a/dll/win32/shell32/shell32.rc +++ b/dll/win32/shell32/shell32.rc @@ -122,6 +122,9 @@ END #ifdef LANGUAGE_ET_EE #include "lang/et-EE.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FI_FI #include "lang/fi-FI.rc" #endif diff --git a/dll/win32/syssetup/lang/eu-ES.rc b/dll/win32/syssetup/lang/eu-ES.rc new file mode 100644 index 00000000000..6210af7e6a4 --- /dev/null +++ b/dll/win32/syssetup/lang/eu-ES.rc @@ -0,0 +1,260 @@ +/* + * PROJECT: ReactOS System Setup Library + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +IDD_WELCOMEPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ongi etorri ReactOS-aren instalazio bigarren zati.", IDC_WELCOMETITLE, 115, 8, 195, 24 + LTEXT "Morroi hau ReactOS instalatuko zure ordenagailuan.\n\nInstalazioa behar du zure eta zure ordenagailuaren informazio gutxia osatzeko zuzen konfiguratzeko.", IDC_STATIC, 115, 40, 195, 100 + LTEXT "Sakatu Aurrera instalazioa jarraitzeko.", IDC_STATIC, 115, 169, 195, 17 +END + +IDD_ACKPAGE DIALOGEX 0, 0, 317, 145 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "ReactOS garatzaileek kode-irekiko-proiektu hauei eskerrak eman nahi dizkiete, ReactOS sortzeko oinarrizko zati izan direnak:", IDC_STATIC, 15, 7, 286, 19 + LISTBOX IDC_PROJECTS, 15, 30, 286, 75, LBS_NOSEL | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL + LTEXT "ReactOS GPL lizentziapean banatzen da, beraz, osorik edo zati batean berrerabili edo birbanatu nahi baduzu, bere baldintzak errespetatu behar dituzu.", IDC_STATIC, 15, 110, 227, 19 + PUSHBUTTON "&Ikusi GPL-a...", IDC_VIEWGPL, 251, 110, 50, 19 + LTEXT "Sakatu Aurrera instalazioa jarraitzeko.", IDC_STATIC, 15, 136, 195, 17 +END + +IDD_PRODUCT DIALOGEX 0, 0, 317, 143 +CAPTION "ReactOS-aren Instalazioa" +STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE +FONT 8, "MS Shell Dlg" +BEGIN + ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20 + LTEXT "Mesedez, idatzi produktuaren aukera bat:", IDC_STATIC, 35, 7, 230, 12 + LTEXT "&Produktuen aukerak:", IDC_STATIC, 5, 32, 85, 10 + COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 170, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Produktuaren informazioa", IDC_STATIC, 5, 50, 305, 85 + LTEXT "Deskribapena:", IDC_STATIC, 20, 65, 70, 10 + EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 65, 205, 60, ES_READONLY | ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL +END + +IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_ICON2, IDC_STATIC, 21, 7, 20, 20 + LTEXT "Sartu zure erabiltzaile-izena eta zure enpresa edo erakundearen izena.", IDC_STATIC, 54, 7, 242, 21 + LTEXT "&Izena:", IDC_STATIC, 83, 37, 44, 8, SS_RIGHT + EDITTEXT IDC_OWNERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "&Erakundea:", IDC_STATIC, 83, 57, 44, 8, SS_RIGHT + EDITTEXT IDC_OWNERORGANIZATION, 132, 55, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL +END + +IDD_COMPUTERPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_ICON1, IDC_STATIC, 21, 7, 20, 20 + LTEXT "Sartu zure taldearen izena 15 karaktere edo gutxiagokoa. Sare batera konektatuta bazaude, izenak bakarra izan behar du.", IDC_STATIC, 54, 7, 250, 24 + LTEXT "O&rdenagailuaren izena:", IDC_STATIC, 53, 38, 75, 8, SS_RIGHT + EDITTEXT IDC_COMPUTERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_UPPERCASE + ICON IDI_ICON5, IDC_STATIC, 21, 57, 20, 20 + LTEXT "Instalatzaileak erabiltzaile-profil bat sortuko du zure ordenagailuan Administrator izenekoa. Profil hau erabil dezakezu zure ordenagailurako sarbide osoa behar baduzu.", IDC_STATIC, 54, 57, 250, 25 + LTEXT "Sartu 127 karaktere edo gutxiagoko profil honen pasahitza.", IDC_STATIC, 54, 87, 250, 8 + LTEXT "Administratzailearen &pasahitza:", IDC_STATIC, 25, 104, 104, 8, SS_RIGHT + EDITTEXT IDC_ADMINPASSWORD1, 132, 101, 172, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD + LTEXT "&Errepikatu pasahitza:", IDC_STATIC, 54, 123, 75, 8, SS_RIGHT + EDITTEXT IDC_ADMINPASSWORD2, 132, 120, 172, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD +END + +IDD_LOCALEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_ICON4, IDC_STATIC, 21, 7, 20, 20 + LTEXT "Eskualde eta hizkuntza aukerek datak, zenbakiak, monetak eta orduak irudikatzeko modua konfiguratzeko aukera ematen dute. Gainera, beste hizkuntza batzuk onartzen ditu eta kokapen-ezarpenak alda ditzakezu.", IDC_STATIC, 53, 6, 253, 30 + LTEXT "", IDC_LOCALETEXT, 53, 34, 250, 16 + LTEXT "Ezarpen hauek aldatzeko, sakatu Aldatu.", IDC_STATIC, 53, 60, 184, 8 + PUSHBUTTON "&Aldatu...", IDC_CUSTOMLOCALE, 245, 57, 50, 14 + LTEXT "Teklatuaren distribuzioa mugatu du zer karakter idazten zertarako tekla.", IDC_STATIC, 53, 86, 253, 32 + LTEXT "", IDC_LAYOUTTEXT, 53, 109, 250, 16 + LTEXT "Teklatuaren diseinua aldatzeko, sakatu Aldatu.", IDC_STATIC, 53, 126, 184, 8 + PUSHBUTTON "&Aldatu...", IDC_CUSTOMLAYOUT, 245, 122, 50, 14 +END + +IDD_DATETIMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_ICON3, IDC_STATIC, 21, 10, 20, 20 + LTEXT "Data eta ordua", IDC_STATIC, 53, 7, 253, 8 + CONTROL "", IDC_DATEPICKER, "SysDateTimePick32", DTS_LONGDATEFORMAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 53, 17, 137, 14 + CONTROL "", IDC_TIMEPICKER, "SysDateTimePick32", DTS_TIMEFORMAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 200, 17, 54, 14 + LTEXT "Ordu eremu", IDC_STATIC, 53, 42, 253, 8 + COMBOBOX IDC_TIMEZONELIST, 53, 52, 201, 93, CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + AUTOCHECKBOX "Ezarri erlojua automatikoki udako ordutegian", IDC_AUTODAYLIGHT, 53, 124, 230, 10 //201 +END + +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130 +END + +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazioa" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "", IDC_ACTIVITY, 53, 7, 253, 20 + LTEXT "", IDC_ITEM, 53, 29, 253, 20 + CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 53, 70, 253, 8 +END + +IDD_FINISHPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS-aren Instalazio bukaera" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ReactOS-aren Instalazioa bukatu da.", IDC_FINISHTITLE, 115, 8, 195, 24 + LTEXT "ReactOS-aren Instalazioa se ha completado correctamente.\nSe reiniciará el equipo al hacer clic sobre el botón Terminar.", IDC_STATIC, 115, 40, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 + LTEXT "Disko-unitatean CDren bat badago, kendu.\nBukatu ondoren, berrabiarazi ordenagailua sakatu Amaitu.", IDC_STATIC, 115, 169, 195, 17 +END + +IDD_GPL DIALOGEX 0, 0, 333, 230 +STYLE DS_SHELLFONT | DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "GNU Lizentzia Publiko Orokorra" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_GPL_TEXT, 7, 7, 319, 190, ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL + DEFPUSHBUTTON "Ados", IDOK, 141, 209, 50, 14 +END + +IDD_STATUSWINDOW_DLG DIALOGEX 0, 0, 275, 78 +STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Itxaron mezedez..." +FONT 8, "MS Shell Dlg", 400, 0, 1 +BEGIN + CONTROL IDB_REACTOS, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54 + CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4 + LTEXT "", IDC_STATUSLABEL, 7, 59, 235, 12, SS_WORDELLIPSIS +END + +IDD_PS2MOUSEPROPERTIES DIALOGEX 0, 0, 252, 218 +STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION +CAPTION "Konfigurazio aurreratua" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "", IDC_PS2STATIC, 5, 20, 242, 110 + RTEXT "&Lagin babesteko:", -1, 27, 35, 90, 8 + LTEXT "reportes por segundo", -1, 169, 35, 76, 8 + COMBOBOX IDC_PS2MOUSESAMPLERATE, 124, 33, 42, 41, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + RTEXT "&Aurkitu errota:", -1, 27, 55, 90, 8 + COMBOBOX IDC_PS2MOUSEWHEEL, 124, 53, 95, 46, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + RTEXT "&Sarbideren Buffer-a:", -1, 27, 75, 90, 8 + LTEXT "paketeak", -1, 169, 75, 26, 8 + EDITTEXT IDC_PS2MOUSEINPUTLEN, 124, 72, 40, 14, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER + CONTROL "", IDC_PS2MOUSEINPUTUPDN, "msctls_updown32", UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_CHILD | WS_VISIBLE, 168, 70, 10, 14 + AUTOCHECKBOX "&Azkar hasieraketa", IDC_PS2MOUSEFASTINIT, 124, 97, 90, 10 + PUSHBUTTON "&Lehenetsiak", IDC_PS2MOUSEDEFAULTS, 195, 188, 50, 14 +END + +STRINGTABLE +BEGIN + IDS_ACKTITLE "Eskerrak" + IDS_ACKSUBTITLE "Zertan oinarritzen den ReactOS eta lizentziaren informazioa." + IDS_OWNERTITLE "Pertsonalizatu zure softwarea" + IDS_OWNERSUBTITLE "Instalatzaileak informazio pertsonal hau erabiltzen du ReactOS pertsonalizatzeko." + IDS_COMPUTERTITLE "Ordenagailuaren izena eta Administratzailearen pasahitza" + IDS_COMPUTERSUBTITLE "Administratzaile izena eta pasahitza eman diezazkiokezu ordenagailuari." + IDS_LOCALETITLE "Eskualdeko aukerak" + IDS_LOCALESUBTITLE "ReactOS pertsonaliza dezakezu eskualde eta hizkuntza desberdinetarako." + IDS_DATETIMETITLE "Data eta ordua" + IDS_DATETIMESUBTITLE "Ezarri zure ordenagailurako data eta ordu egokiak." + IDS_PROCESSTITLE "Osagaiak erregistratzea" + IDS_PROCESSSUBTITLE "Itxaron momentu bat..." + IDS_THEMESELECTIONTITLE "Itxura" + IDS_THEMESELECTIONSUBTITLE "Hautatu gustuko duzun itxura." +END + +STRINGTABLE +BEGIN + IDS_REACTOS_SETUP "ReactOS-aren Instalazioa" + IDS_UNKNOWN_ERROR "Errore ezezaguna" + IDS_REGISTERING_COMPONENTS "Osagaiak erregistratzea..." + IDS_LOADLIBRARY_FAILED "Ezin izan da liburutegia kargatu: " + IDS_GETPROCADDR_FAILED "Ezin izan da prozesuaren kokapena lortu: " + IDS_REGSVR_FAILED "Ezin izan da liburutegia erregistratu: " + IDS_DLLINSTALL_FAILED "Ezin izan da liburutegia instalatu: " + IDS_TIMEOUT "Liburutegiak instalatzeko eta erregistratzeko erabilgarri dagoen denbora denbora-muga gainditu da." + IDS_REASON_UNKNOWN "" + /* + * ATTENTION: + * If you translate the administrator account name, keep IDS_ADMINISTRATOR_NAME and + * samsrv.dll:IDS_USER_ADMINISTRATOR_NAME synchronized. + * Also check the IDD_COMPUTERPAGE dialog. + */ + IDS_ADMINISTRATOR_NAME "Administratzaile" + IDS_MACHINE_OWNER_NAME "Jabea" +END + +STRINGTABLE +BEGIN + IDS_WZD_NAME "Instalazio prozesuak ezin du jarraitu zure izena idatzi arte." + IDS_WZD_SETCOMPUTERNAME "Instalazio prozesuak ezin izan du ordenagailuaren izena konfiguratu." + IDS_WZD_COMPUTERNAME "Instalazio prozesuak ezin du jarraitu ordenagailuaren izena idatzi arte." + IDS_WZD_PASSWORDEMPTY "Pasahitz bat ezarri behar duzu." + IDS_WZD_PASSWORDMATCH "Bigarren pasahitza ez dator bat sartutako lehen pasahitzarekin. Saiatu pasahitza berriro idazten." + IDS_WZD_PASSWORDCHAR "Idatzi duzun pasahitzak karaktere baliogabeak ditu. Saiatu pasahitza berriro idazten." + IDS_WZD_LOCALTIME "Instalazio prozesuak ezin izan du ordenagailuaren ordua ezarri." +END + +STRINGTABLE +BEGIN + IDS_STATUS_INSTALL_DEV "Gailuak instalatzen..." +END + +/* ATTENTION: Synchronize these strings with dll/win32/shell32/lang */ +STRINGTABLE +BEGIN + IDS_PROGRAMFILES "%SystemDrive%\\Programaren fitxategiak" + IDS_COMMONFILES "Fitxategi arruntak" +END + +STRINGTABLE +BEGIN + IDS_DETECTIONDISABLED "Hautematea desgaituta" + IDS_LOOKFORWHEEL "Detektatu errota" + IDS_ASSUMEPRESENT "Demagun errota dagoela" +END + +STRINGTABLE +BEGIN + IDS_CLASSIC "Klasikoa" + IDS_LAUTUS "Lautus-a" + IDS_LUNAR "Lunar-a" + IDS_MIZU "Mizu-a" +END + +STRINGTABLE +BEGIN + IDS_PRODUCTTITLE "Produktuen aukerak" + IDS_PRODUCTSUBTITLE "Produktu-aukera bat hauta dezakezu sistemaren portaeran eragingo du." + IDS_PRODUCTSERVERNAME "ReactOS Servidore gisa" + IDS_PRODUCTWORKSTATIONNAME "ReactOS Mahaigain gisa" + IDS_PRODUCTSERVERINFO "Sistema zerbitzari gisa agertuko da. ""Nire irudiak"", ""Nire bideoak"" y ""Nire musika"" karpetak ""Nire Dokumentoak"" independienteki izango dira." + IDS_PRODUCTWORKSTATIONINFO "Sistema mahaigain gisa agertuko da. ""Nire irudiak"", ""Nire bideoak"" y ""Nire musika"" karpetak ""Nire Dokumentoak"" barruan egongo dira." + IDS_DEFAULT "(Lehenetsia)" +END diff --git a/dll/win32/syssetup/syssetup.rc b/dll/win32/syssetup/syssetup.rc index 1b15003d918..61a4ea97732 100644 --- a/dll/win32/syssetup/syssetup.rc +++ b/dll/win32/syssetup/syssetup.rc @@ -74,6 +74,9 @@ IDR_GPL RT_TEXT "COPYING" #ifdef LANGUAGE_ET_EE #include "lang/et-EE.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FI_FI #include "lang/fi-FI.rc" #endif diff --git a/dll/win32/userenv/lang/eu-ES.rc b/dll/win32/userenv/lang/eu-ES.rc new file mode 100644 index 00000000000..d5320123cb5 --- /dev/null +++ b/dll/win32/userenv/lang/eu-ES.rc @@ -0,0 +1,32 @@ +/* + * PROJECT: ReactOS User Environment DLL + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Spanish (Basque) resource file + * TRANSLATOR: Copyright 2021 Julen Urizar Compains <julenuri(a)hotmail.com> + */ + +LANGUAGE LANG_BASQUE, SUBLANG_NEUTRAL + +/* See also: dll/win32/shell32/lang */ +STRINGTABLE +BEGIN + IDS_PROFILEPATH "%SystemDrive%\\Documents and Settings" + IDS_APPDATA "Programaren datuak" + IDS_DESKTOP "Mahaigaina" + IDS_FAVORITES "Gogokoenak" + IDS_MYDOCUMENTS "Nire dokumentuak" + IDS_NETHOOD "Sarekoak" + IDS_PRINTHOOD "Inprimagailuak" + IDS_RECENT "Arestikoak" + IDS_SENDTO "Bidali hona" + IDS_TEMPLATES "Txantioiak" + IDS_STARTMENU "Hasi menua" + IDS_PROGRAMS "Hasi Menua\\Programak" + IDS_STARTUP "Hasi Menua\\Programak\\Hasi" + IDS_LOCALSETTINGS "Lokal konfigurazioa" + IDS_LOCALAPPDATA "Lokal konfigurazioa\\Programaren datuak" + IDS_TEMP "Lokal konfigurazioa\\Temp" /* See also TEMP_DIR in boot/bootdata/hivedef.inf */ + IDS_CACHE "Lokal konfigurazioa\\Interneten Aldi Baterako Fitxategiak" + IDS_HISTORY "Lokal konfigurazioa\\Historia" + IDS_COOKIES "Cookiak" +END diff --git a/dll/win32/userenv/userenv.rc b/dll/win32/userenv/userenv.rc index 3b8d08806b5..4b0350978dd 100644 --- a/dll/win32/userenv/userenv.rc +++ b/dll/win32/userenv/userenv.rc @@ -60,6 +60,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #ifdef LANGUAGE_ES_ES #include "lang/es-ES.rc" #endif +#ifdef LANGUAGE_EU_ES + #include "lang/eu-ES.rc" +#endif #ifdef LANGUAGE_FI_FI #include "lang/fi-FI.rc" #endif diff --git a/media/inf/shortcuts.inf b/media/inf/shortcuts.inf index 3a4787e13ff..b805dfa80d0 100644 --- a/media/inf/shortcuts.inf +++ b/media/inf/shortcuts.inf @@ -1632,6 +1632,74 @@ SPIDER_DESC=Пас'янс Павук UTILMAN_TITLE=Диспетчер службових програм UTILMAN_DESC=Забезпечує запуск і настройку програм підтримки спеціальних можливостей. +; Basque +[Strings.042D] +ACCESSORIES=Osagarriak +SYSTOOLS=Sistemaren Tresnak +ACCESSIBILITY=Irisgarritasuna +ENTERTAINMENT=Dembora-pasa +COMMUNICATIONS=Komunikazioak +GAMES=Jolasak + +README_TITLE=Irakurri hau +README_DESC=ReactOS gidaliburua irakurtzeko + +CMD_TITLE=Kontsola +CMD_DESC=Ireki komanduen konstsola. +EXPLORER_TITLE=ReactOS Esploradorea +EXPLORER_DESC=Ireki fitxategi-esploradore lehio bat. +RAPPS_TITLE=ReactOS aplikazio denda eta eragilea +RAPPS_TITLE_SHORT=ReactOS app denda +RAPPS_DESC=Deskargatu eta instalatu nahibaduzun aplikazioak. +SERVMAN_TITLE=Konfiguratu zerbitzaria +SERVMAN_DESC=Hasi Zerbitzu kudeaketa. +DEVMGMT_TITLE=Gailu administratzaile +DEVMGMT_DESC=Hasi gailu administratzaile. +EVENTVWR_TITLE=Gertaerak ikustailea +EVENTVWR_DESC=Hasi gertareak ikustailea. +MSCONFIG_TITLE=Sistemaren konfigurazioa +MSCONFIG_DESC=Hasi sistemaren konfigurazioa. +CALC_TITLE=Kalkulagailua +CALC_DESC=Kalkulagailua hasi. +NOTEPAD_TITLE=Ohar-bloka +NOTEPAD_DESC=Hasi ohar koadernoa. +MSTSC_TITLE=Mahaigain urrunekoa +MSTSC_DESC=Hasi mahaigain hurrunekoa. +WORDPAD_TITLE=WordPad +WORDPAD_DESC=Hasi testu dokumentu editorea. +MSPAINT_TITLE=Paint +MSPAINT_DESC=Hasi irudiaren editore funtsezkoa. +CHARMAP_TITLE=Karaktere-mapa +CHARMAP_DESC=Karaktere-mapa hasi. +CLIPBRD_TITLE=Arbel-ikustailea +CLIPBRD_DESC=Controla lo que copias y pegas en el visor del portapapeles de ReactOS. +KBSWITCH_TITLE=Teklatuen diztribuzio aukerak +KBSWITCH_DESC=Cambia la distribución de teclas del equipo. +REGEDIT_TITLE=Erregistro editorea +REGEDIT_DESC=Ejecuta la utilidad de configuración del Registro del sistema operativo. +TASKMGR_TITLE=Ataza-kudeatzaile +TASKMGR_DESC=Administre y gestione las tareas y procesos en funcionamiento. +DXDIAG_TITLE=ReactX analisia +DXDIAG_DESC=Hasi ReactX analisia. +MAGNIFY_TITLE=Lupa +MAGNIFY_DESC=Zabaldu pantailaren atalak eta hobetu irisgarritasuna. +OSK_TITLE=Pantailako teklatua +OSK_DESC=Ejecuta un teclado virtual, útil para escribir en otras aplicaciones. +MPLAY_TITLE=Multimedia erreproduzgailua +MPLAY_DESC=Ejecuta el reproductor de audio y vídeo. +SNDVOL_TITLE=Bolumen kontrola +SNDVOL_DESC=Ejecuta una utilidad con la que controlar la salida de audio. +SNDREC32_TITLE=Soinu-grabagailua +SNDREC32_DESC=Ejecuta una utilidad para grabar audio desde un micrófono conectado al equipo. +SOL_TITLE=Solitarioa +SOL_DESC=Jugar al popular juego de cartas de un sólo jugador. +WINMINE_TITLE=Minaren-bila +WINMINE_DESC=Jugar al popular juego en el que se debe despejar un campo de minas sin detonar ninguna. +SPIDER_TITLE=Spider Solitarioa +SPIDER_DESC=Jugar al popular juego de cartas de un sólo jugador. +UTILMAN_TITLE=Irisgarritasun tresnak +UTILMAN_DESC=Gestiona las Herramientas de Accesibilidad y su interacción con el sistema. + ; Simplified Chinese [Strings.0804] ACCESSORIES=附件
2 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Add const to ToolsModel methods (#4190)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=102898191d769df573b87…
commit 102898191d769df573b8749f252e23eea03b0ce2 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 20:08:07 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 27 20:08:07 2021 +0900 [MSPAINT] Add const to ToolsModel methods (#4190) Add const keywords to some methods of ToolsModel class. CORE-17931 --- base/applications/mspaint/toolsmodel.cpp | 14 +++++++------- base/applications/mspaint/toolsmodel.h | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/base/applications/mspaint/toolsmodel.cpp b/base/applications/mspaint/toolsmodel.cpp index 26621e75ee8..36a521f7b3d 100644 --- a/base/applications/mspaint/toolsmodel.cpp +++ b/base/applications/mspaint/toolsmodel.cpp @@ -24,7 +24,7 @@ ToolsModel::ToolsModel() m_zoom = 1000; } -int ToolsModel::GetLineWidth() +int ToolsModel::GetLineWidth() const { return m_lineWidth; } @@ -35,7 +35,7 @@ void ToolsModel::SetLineWidth(int nLineWidth) NotifyToolSettingsChanged(); } -int ToolsModel::GetShapeStyle() +int ToolsModel::GetShapeStyle() const { return m_shapeStyle; } @@ -46,7 +46,7 @@ void ToolsModel::SetShapeStyle(int nShapeStyle) NotifyToolSettingsChanged(); } -int ToolsModel::GetBrushStyle() +int ToolsModel::GetBrushStyle() const { return m_brushStyle; } @@ -57,7 +57,7 @@ void ToolsModel::SetBrushStyle(int nBrushStyle) NotifyToolSettingsChanged(); } -int ToolsModel::GetActiveTool() +int ToolsModel::GetActiveTool() const { return m_activeTool; } @@ -68,7 +68,7 @@ void ToolsModel::SetActiveTool(int nActiveTool) NotifyToolChanged(); } -int ToolsModel::GetAirBrushWidth() +int ToolsModel::GetAirBrushWidth() const { return m_airBrushWidth; } @@ -79,7 +79,7 @@ void ToolsModel::SetAirBrushWidth(int nAirBrushWidth) NotifyToolSettingsChanged(); } -int ToolsModel::GetRubberRadius() +int ToolsModel::GetRubberRadius() const { return m_rubberRadius; } @@ -90,7 +90,7 @@ void ToolsModel::SetRubberRadius(int nRubberRadius) NotifyToolSettingsChanged(); } -BOOL ToolsModel::IsBackgroundTransparent() +BOOL ToolsModel::IsBackgroundTransparent() const { return m_transpBg; } diff --git a/base/applications/mspaint/toolsmodel.h b/base/applications/mspaint/toolsmodel.h index 3b7205634f6..104da42637c 100644 --- a/base/applications/mspaint/toolsmodel.h +++ b/base/applications/mspaint/toolsmodel.h @@ -28,19 +28,19 @@ private: public: ToolsModel(); - int GetLineWidth(); + int GetLineWidth() const; void SetLineWidth(int nLineWidth); - int GetShapeStyle(); + int GetShapeStyle() const; void SetShapeStyle(int nShapeStyle); - int GetBrushStyle(); + int GetBrushStyle() const; void SetBrushStyle(int nBrushStyle); - int GetActiveTool(); + int GetActiveTool() const; void SetActiveTool(int nActiveTool); - int GetAirBrushWidth(); + int GetAirBrushWidth() const; void SetAirBrushWidth(int nAirBrushWidth); - int GetRubberRadius(); + int GetRubberRadius() const; void SetRubberRadius(int nRubberRadius); - BOOL IsBackgroundTransparent(); + BOOL IsBackgroundTransparent() const; void SetBackgroundTransparent(BOOL bTransparent); int GetZoom() const; void SetZoom(int nZoom);
2 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Add nearlyEqualPoints and use it (#4194)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ce54a8a5f287d0fc45630…
commit ce54a8a5f287d0fc4563052d9eba1f6a677b1220 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 20:06:21 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 27 20:06:21 2021 +0900 [MSPAINT] Add nearlyEqualPoints and use it (#4194) CORE-17931 --- base/applications/mspaint/common.h | 1 + base/applications/mspaint/mouse.cpp | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/base/applications/mspaint/common.h b/base/applications/mspaint/common.h index bfea7368523..e6864cc21a8 100644 --- a/base/applications/mspaint/common.h +++ b/base/applications/mspaint/common.h @@ -13,6 +13,7 @@ /* FUNCTIONS ********************************************************/ BOOL zoomTo(int newZoom, int mouseX, int mouseY); +BOOL nearlyEqualPoints(INT x0, INT y0, INT x1, INT y1); static inline int Zoomed(int xy) { diff --git a/base/applications/mspaint/mouse.cpp b/base/applications/mspaint/mouse.cpp index 0f2f1b36312..8c81c88562c 100644 --- a/base/applications/mspaint/mouse.cpp +++ b/base/applications/mspaint/mouse.cpp @@ -4,6 +4,7 @@ * FILE: base/applications/mspaint/mouse.cpp * PURPOSE: Things which should not be in the mouse event handler itself * PROGRAMMERS: Benedikt Freisen + * Katayama Hirofumi MZ */ /* INCLUDES *********************************************************/ @@ -50,6 +51,13 @@ roundTo8Directions(LONG x0, LONG y0, LONG& x1, LONG& y1) } } +BOOL nearlyEqualPoints(INT x0, INT y0, INT x1, INT y1) +{ + INT cxThreshold = toolsModel.GetLineWidth() + UnZoomed(GetSystemMetrics(SM_CXDRAG)); + INT cyThreshold = toolsModel.GetLineWidth() + UnZoomed(GetSystemMetrics(SM_CYDRAG)); + return (abs(x1 - x0) <= cxThreshold) && (abs(y1 - y0) <= cyThreshold); +} + POINT pointStack[256]; short pointSP; @@ -297,8 +305,7 @@ endPaintingL(HDC hdc, LONG x, LONG y, COLORREF fg, COLORREF bg) pointSP++; if (pointSP >= 2) { - if ((pointStack[0].x - x) * (pointStack[0].x - x) + - (pointStack[0].y - y) * (pointStack[0].y - y) <= toolsModel.GetLineWidth() * toolsModel.GetLineWidth() + 1) + if (nearlyEqualPoints(x, y, pointStack[0].x, pointStack[0].y)) { Poly(hdc, pointStack, pointSP, fg, bg, toolsModel.GetLineWidth(), toolsModel.GetShapeStyle(), TRUE, FALSE); pointSP = 0; @@ -500,8 +507,7 @@ endPaintingR(HDC hdc, LONG x, LONG y, COLORREF fg, COLORREF bg) pointSP++; if (pointSP >= 2) { - if ((pointStack[0].x - x) * (pointStack[0].x - x) + - (pointStack[0].y - y) * (pointStack[0].y - y) <= toolsModel.GetLineWidth() * toolsModel.GetLineWidth() + 1) + if (nearlyEqualPoints(x, y, pointStack[0].x, pointStack[0].y)) { Poly(hdc, pointStack, pointSP, bg, fg, toolsModel.GetLineWidth(), toolsModel.GetShapeStyle(), TRUE, FALSE); pointSP = 0;
2 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Fix the size of settings if too large (#4189)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=30e47fdb773b819702f6b…
commit 30e47fdb773b819702f6b16b72c36a2c56b74493 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 10:52:53 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 27 10:52:53 2021 +0900 [MSPAINT] Fix the size of settings if too large (#4189) - Fix the initial values of BMPHeight and BMPWidth. - Fix the values of BMPHeight and BMPWidth if too large. --- base/applications/mspaint/registry.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/base/applications/mspaint/registry.cpp b/base/applications/mspaint/registry.cpp index 1bc47e93a6c..eb257e0cf3b 100644 --- a/base/applications/mspaint/registry.cpp +++ b/base/applications/mspaint/registry.cpp @@ -50,8 +50,8 @@ void RegistrySettings::SetWallpaper(LPCTSTR szFileName, RegistrySettings::Wallpa void RegistrySettings::LoadPresets() { - BMPHeight = 300; - BMPWidth = 400; + BMPHeight = GetSystemMetrics(SM_CYSCREEN) / 2; + BMPWidth = GetSystemMetrics(SM_CXSCREEN) / 2; GridExtent = 1; NoStretching = 0; ShowThumbnail = 0; @@ -103,6 +103,12 @@ void RegistrySettings::Load() ReadFileHistory(files, _T("File3"), strFile3); ReadFileHistory(files, _T("File4"), strFile4); } + + // Fix the bitmap size if too large + if (BMPWidth > 5000) + BMPWidth = (GetSystemMetrics(SM_CXSCREEN) * 6) / 10; + if (BMPHeight > 5000) + BMPHeight = (GetSystemMetrics(SM_CYSCREEN) * 6) / 10; } void RegistrySettings::Store()
2 years, 12 months
1
0
0
0
[reactos] 01/01: [COMCTL32] Handle TCIS_BUTTONPRESSED at TAB_SetCurFocus (#4179)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=98775c4c83f028d834974…
commit 98775c4c83f028d834974d283fdbe5f8df40b143 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 10:04:29 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 27 10:04:29 2021 +0900 [COMCTL32] Handle TCIS_BUTTONPRESSED at TAB_SetCurFocus (#4179) Based on @JoachimHenze (reactosfanboy)'s patch. Switch TCIS_BUTTONPRESSED flag at TAB_SetCurFocus function. CORE-4245 --- dll/win32/comctl32/tab.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dll/win32/comctl32/tab.c b/dll/win32/comctl32/tab.c index cf387cf2837..f2fc59fb4b6 100644 --- a/dll/win32/comctl32/tab.c +++ b/dll/win32/comctl32/tab.c @@ -285,6 +285,9 @@ static LRESULT TAB_SetCurFocus (TAB_INFO *infoPtr, INT iItem) if (iItem < 0) { infoPtr->uFocus = -1; if (infoPtr->iSelected != -1) { +#ifdef __REACTOS__ + TAB_GetItem(infoPtr, infoPtr->iSelected)->dwState &= ~TCIS_BUTTONPRESSED; +#endif infoPtr->iSelected = -1; TAB_SendSimpleNotify(infoPtr, TCN_SELCHANGE); TAB_InvalidateTabArea(infoPtr); @@ -310,12 +313,22 @@ static LRESULT TAB_SetCurFocus (TAB_INFO *infoPtr, INT iItem) TAB_SendSimpleNotify(infoPtr, TCN_FOCUSCHANGE); } } else { +#ifdef __REACTOS__ + INT oldItem = infoPtr->iSelected; +#endif INT oldFocus = infoPtr->uFocus; if (infoPtr->iSelected != iItem || oldFocus == -1 ) { infoPtr->uFocus = iItem; if (oldFocus != -1) { if (!TAB_SendSimpleNotify(infoPtr, TCN_SELCHANGING)) { +#ifdef __REACTOS__ + if (oldItem != -1) + TAB_GetItem(infoPtr, oldItem)->dwState &= ~TCIS_BUTTONPRESSED; +#endif infoPtr->iSelected = iItem; +#ifdef __REACTOS__ + TAB_GetItem(infoPtr, iItem)->dwState |= TCIS_BUTTONPRESSED; +#endif TAB_SendSimpleNotify(infoPtr, TCN_SELCHANGE); } else
2 years, 12 months
1
0
0
0
[reactos] 01/01: [SHELL32_APITEST] Disable SHChangeNotify testcase by DISABLE_THIS_TESTCASE macro
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=691139c0902640835aa54…
commit 691139c0902640835aa5414c97491495ed128157 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 09:57:11 2021 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Mon Dec 27 09:58:35 2021 +0900 [SHELL32_APITEST] Disable SHChangeNotify testcase by DISABLE_THIS_TESTCASE macro SHChangeNotify testcase takes 6min. Too heavy. CORE-13950 --- modules/rostests/apitests/shell32/SHChangeNotify.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rostests/apitests/shell32/SHChangeNotify.cpp b/modules/rostests/apitests/shell32/SHChangeNotify.cpp index 50481848357..71fd9b54e15 100644 --- a/modules/rostests/apitests/shell32/SHChangeNotify.cpp +++ b/modules/rostests/apitests/shell32/SHChangeNotify.cpp @@ -14,7 +14,7 @@ #include <versionhelpers.h> // --- The selection of tests --- -//#define DISABLE_THIS_TESTCASE +#define DISABLE_THIS_TESTCASE #define NO_TRIVIAL //#define NO_INTERRUPT_LEVEL //#define NO_SHELL_LEVEL
2 years, 12 months
1
0
0
0
[reactos] 01/01: [SHELL32_APITEST] Strengthen SHChangeNotify testcase more and more (#4174)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7e9cf359675f0ab4c71dd…
commit 7e9cf359675f0ab4c71dd459fea955d509cf4449 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 09:45:44 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 27 09:45:44 2021 +0900 [SHELL32_APITEST] Strengthen SHChangeNotify testcase more and more (#4174) CORE-13950 --- .../rostests/apitests/shell32/SHChangeNotify.cpp | 1035 +++++++++++++++----- modules/rostests/apitests/shell32/SHChangeNotify.h | 79 +- .../apitests/shell32/shell32_apitest_sub.cpp | 162 +-- 3 files changed, 916 insertions(+), 360 deletions(-) diff --git a/modules/rostests/apitests/shell32/SHChangeNotify.cpp b/modules/rostests/apitests/shell32/SHChangeNotify.cpp index 377b9ce1cec..50481848357 100644 --- a/modules/rostests/apitests/shell32/SHChangeNotify.cpp +++ b/modules/rostests/apitests/shell32/SHChangeNotify.cpp @@ -2,213 +2,502 @@ * PROJECT: ReactOS api tests * LICENSE: LGPL-2.0-or-later (
https://spdx.org/licenses/LGPL-2.0-or-later
) * PURPOSE: Test for SHChangeNotify - * COPYRIGHT: Copyright 2020 Katayama Hirofumi MZ (katayama.hirofumi.mz(a)gmail.com) + * COPYRIGHT: Copyright 2020-2021 Katayama Hirofumi MZ (katayama.hirofumi.mz(a)gmail.com) */ -// NOTE: This test program closes the Explorer cabinets before tests. +// NOTE: This test program closes the Explorer windows before tests. #include "shelltest.h" -#include <shlwapi.h> -#include <stdio.h> #include "SHChangeNotify.h" - -#define DONT_SEND 0x24242424 +#include <time.h> +#include <process.h> +#include <versionhelpers.h> + +// --- The selection of tests --- +//#define DISABLE_THIS_TESTCASE +#define NO_TRIVIAL +//#define NO_INTERRUPT_LEVEL +//#define NO_SHELL_LEVEL +#define NEW_DELIVERY_ONLY +//#define RANDOM_HALF +#define RANDOM_QUARTER + +// --- Show the elapsed time by GetTickCount() --- +//#define ENTRY_TICK +#define GROUP_TICK +#define TOTAL_TICK static HWND s_hwnd = NULL; -static const WCHAR s_szName[] = L"SHChangeNotify testcase"; static WCHAR s_szSubProgram[MAX_PATH]; +static HANDLE s_hThread = NULL; +static HANDLE s_hEvent = NULL; + +static HWND DoWaitForWindow(LPCWSTR clsname, LPCWSTR text, BOOL bClosing, BOOL bForce) +{ + HWND hwnd = NULL; + for (INT i = 0; i < 50; ++i) + { + hwnd = FindWindowW(clsname, text); + if (bClosing) + { + if (!hwnd) + break; + + if (bForce) + PostMessage(hwnd, WM_CLOSE, 0, 0); + } + else + { + if (hwnd) + break; + } + + Sleep(1); + } + return hwnd; +} + +static BOOL DoCreateEmptyFile(LPCWSTR pszFileName) +{ + FILE *fp = _wfopen(pszFileName, L"wb"); + if (fp) + fclose(fp); + return fp != NULL; +} -typedef void (*ACTION)(void); +struct TEST_ENTRY; + +typedef BOOL (*ACTION)(const struct TEST_ENTRY *entry); typedef struct TEST_ENTRY { INT line; - DWORD event; - LPCVOID item1; - LPCVOID item2; + DIRTYPE iWriteDir; LPCSTR pattern; - ACTION action; LPCWSTR path1; LPCWSTR path2; + ACTION action; } TEST_ENTRY; -static BOOL -DoCreateEmptyFile(LPCWSTR pszFileName) +#define TEST_FILE L"_TEST_.txt" +#define TEST_FILE_KAI L"_TEST_KAI_.txt" +#define TEST_DIR L"_TESTDIR_" +#define TEST_DIR_KAI L"_TESTDIR_KAI_" +#define MOVE_FILE(from, to) MoveFileW((from), (to)) + +static BOOL DoAction1(const TEST_ENTRY *entry) { - FILE *fp = _wfopen(pszFileName, L"wb"); - fclose(fp); - return fp != NULL; + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_FILE); + ok(DoCreateEmptyFile(pszPath), "Line %d: DoCreateEmptyFile failed\n", entry->line); + return TRUE; } -static void -DoAction1(void) +static BOOL DoAction2(const TEST_ENTRY *entry) { - ok_int(CreateDirectoryW(s_dir2, NULL), TRUE); + LPWSTR pszPath1 = DoGetDir(entry->iWriteDir), pszPath2 = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath1, TEST_FILE); + PathAppendW(pszPath2, TEST_FILE_KAI); + ok(MOVE_FILE(pszPath1, pszPath2), "Line %d: MOVE_FILE(%ls, %ls) failed (%ld)\n", + entry->line, pszPath1, pszPath2, GetLastError()); + return TRUE; } -static void -DoAction2(void) +static BOOL DoAction3(const TEST_ENTRY *entry) { - ok_int(RemoveDirectoryW(s_dir2), TRUE); + LPWSTR pszPath1 = DoGetDir(entry->iWriteDir), pszPath2 = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath1, TEST_FILE_KAI); + PathAppendW(pszPath2, TEST_FILE); + ok(MOVE_FILE(pszPath1, pszPath2), "Line %d: MOVE_FILE(%ls, %ls) failed (%ld)\n", + entry->line, pszPath1, pszPath2, GetLastError()); + return TRUE; } -static void -DoAction3(void) +static BOOL DoAction4(const TEST_ENTRY *entry) { - ok_int(MoveFileExW(s_dir2, s_dir3, MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING), TRUE); + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_FILE); + ok(DeleteFileW(pszPath), "Line %d: DeleteFileW(%ls) failed (%ld)\n", + entry->line, pszPath, GetLastError()); + return TRUE; } -static void -DoAction4(void) +static BOOL DoAction5(const TEST_ENTRY *entry) { - ok_int(DoCreateEmptyFile(s_file1), TRUE); + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_DIR); + ok(CreateDirectoryW(pszPath, NULL), "Line %d: CreateDirectoryW(%ls) failed (%ld)\n", + entry->line, pszPath, GetLastError()); + return TRUE; } -static void -DoAction5(void) +static BOOL DoAction6(const TEST_ENTRY *entry) { - ok_int(MoveFileExW(s_file1, s_file2, MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING), TRUE); + LPWSTR pszPath1 = DoGetDir(entry->iWriteDir), pszPath2 = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath1, TEST_DIR); + PathAppendW(pszPath2, TEST_DIR_KAI); + ok(MOVE_FILE(pszPath1, pszPath2), "Line %d: MOVE_FILE(%ls, %ls) failed (%ld)\n", + entry->line, pszPath1, pszPath2, GetLastError()); + return TRUE; } -static void -DoAction6(void) +static BOOL DoAction7(const TEST_ENTRY *entry) { - ok_int(DeleteFileW(s_file2), TRUE); + LPWSTR pszPath1 = DoGetDir(entry->iWriteDir), pszPath2 = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath1, TEST_DIR_KAI); + PathAppendW(pszPath2, TEST_DIR); + ok(MOVE_FILE(pszPath1, pszPath2), "Line %d: MOVE_FILE(%ls, %ls) failed (%ld)\n", + entry->line, pszPath1, pszPath2, GetLastError()); + return TRUE; } -static void -DoAction7(void) +static BOOL DoAction8(const TEST_ENTRY *entry) { - DeleteFileW(s_file1); - DeleteFileW(s_file2); - ok_int(RemoveDirectoryW(s_dir3), TRUE); + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_DIR); + ok(RemoveDirectoryW(pszPath), "Line %d: RemoveDirectoryW(%ls) failed (%ld)\n", + entry->line, pszPath, GetLastError()); + return TRUE; } -static void -DoAction8(void) +static BOOL DoAction9(const TEST_ENTRY *entry) +{ + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_FILE); + SHChangeNotify(SHCNE_CREATE, SHCNF_PATHW | SHCNF_FLUSH, pszPath, NULL); + return FALSE; +} + +static BOOL DoAction10(const TEST_ENTRY *entry) { - BOOL ret = RemoveDirectoryW(s_dir1); - ok(ret, "RemoveDirectoryW failed. GetLastError() == %ld\n", GetLastError()); + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_FILE); + SHChangeNotify(SHCNE_DELETE, SHCNF_PATHW | SHCNF_FLUSH, pszPath, NULL); + return FALSE; } -static const TEST_ENTRY s_TestEntriesMode0[] = -{ - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, NULL, DoAction1, NULL, NULL}, - {__LINE__, SHCNE_RMDIR, s_dir2, NULL, "00001000", NULL, s_dir2, L""}, - {__LINE__, SHCNE_RMDIR, s_dir2, NULL, "00001000", DoAction2, s_dir2, L""}, - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, "00010000", DoAction1, s_dir2, L""}, - {__LINE__, SHCNE_RENAMEFOLDER, s_dir2, s_dir3, "00000001", NULL, s_dir2, s_dir3}, - {__LINE__, SHCNE_RENAMEFOLDER, s_dir2, s_dir3, "00000001", DoAction3, s_dir2, s_dir3}, - {__LINE__, SHCNE_CREATE, s_file1, NULL, "01000000", NULL, s_file1, L""}, - {__LINE__, SHCNE_CREATE, s_file1, s_file2, "01000000", NULL, s_file1, s_file2}, - {__LINE__, SHCNE_CREATE, s_file1, NULL, "01000000", DoAction4, s_file1, L""}, - {__LINE__, SHCNE_RENAMEITEM, s_file1, s_file2, "10000000", NULL, s_file1, s_file2}, - {__LINE__, SHCNE_RENAMEITEM, s_file1, s_file2, "10000000", DoAction5, s_file1, s_file2}, - {__LINE__, SHCNE_RENAMEITEM, s_file1, s_file2, "10000000", NULL, s_file1, s_file2}, - {__LINE__, SHCNE_UPDATEITEM, s_file1, NULL, "00000010", NULL, s_file1, L""}, - {__LINE__, SHCNE_UPDATEITEM, s_file2, NULL, "00000010", NULL, s_file2, L""}, - {__LINE__, SHCNE_DELETE, s_file1, NULL, "00100000", NULL, s_file1, L""}, - {__LINE__, SHCNE_DELETE, s_file2, NULL, "00100000", NULL, s_file2, L""}, - {__LINE__, SHCNE_DELETE, s_file2, NULL, "00100000", DoAction6, s_file2, L""}, - {__LINE__, SHCNE_DELETE, s_file2, NULL, "00100000", NULL, s_file2, L""}, - {__LINE__, SHCNE_DELETE, s_file1, NULL, "00100000", NULL, s_file1, L""}, - {__LINE__, SHCNE_RMDIR, s_dir2, NULL, "00001000", NULL, s_dir2, L""}, - {__LINE__, SHCNE_RMDIR, s_dir3, NULL, "00001000", DoAction7, s_dir3, L""}, - {__LINE__, SHCNE_RMDIR, s_dir1, NULL, "00001000", NULL, s_dir1, L""}, - {__LINE__, SHCNE_RMDIR, s_dir1, NULL, "00001000", DoAction8, s_dir1, L""}, +static BOOL DoAction11(const TEST_ENTRY *entry) +{ + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_DIR); + SHChangeNotify(SHCNE_MKDIR, SHCNF_PATHW | SHCNF_FLUSH, pszPath, NULL); + return FALSE; +} + +static BOOL DoAction12(const TEST_ENTRY *entry) +{ + LPWSTR pszPath = DoGetDir(entry->iWriteDir); + PathAppendW(pszPath, TEST_DIR); + SHChangeNotify(SHCNE_RMDIR, SHCNF_PATHW | SHCNF_FLUSH, pszPath, NULL); + return FALSE; +} + +#define WRITEDIR_0 DIRTYPE_DESKTOP +static WCHAR s_szDesktop[MAX_PATH]; +static WCHAR s_szTestFile0[MAX_PATH]; +static WCHAR s_szTestFile0Kai[MAX_PATH]; +static WCHAR s_szTestDir0[MAX_PATH]; +static WCHAR s_szTestDir0Kai[MAX_PATH]; + +#define WRITEDIR_1 DIRTYPE_MYDOCUMENTS +static WCHAR s_szDocuments[MAX_PATH]; +static WCHAR s_szTestFile1[MAX_PATH]; +static WCHAR s_szTestFile1Kai[MAX_PATH]; +static WCHAR s_szTestDir1[MAX_PATH]; +static WCHAR s_szTestDir1Kai[MAX_PATH]; + +static void DoDeleteFilesAndDirs(void) +{ + DeleteFileW(TEMP_FILE); + DeleteFileW(s_szTestFile0); + DeleteFileW(s_szTestFile0Kai); + DeleteFileW(s_szTestFile1); + DeleteFileW(s_szTestFile1Kai); + RemoveDirectoryW(s_szTestDir0); + RemoveDirectoryW(s_szTestDir0Kai); + RemoveDirectoryW(s_szTestDir1); + RemoveDirectoryW(s_szTestDir1Kai); +} + +static const TEST_ENTRY s_group_00[] = +{ + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction12 }, }; -#define s_TestEntriesMode1 s_TestEntriesMode0 -#define s_TestEntriesMode2 s_TestEntriesMode0 - -static const TEST_ENTRY s_TestEntriesMode3[] = -{ - {__LINE__, DONT_SEND, s_dir2, NULL, NULL, DoAction1, NULL, NULL}, - {__LINE__, DONT_SEND, s_dir2, NULL, "00001000", DoAction2, s_dir2, L""}, - {__LINE__, DONT_SEND, s_dir2, NULL, "00010000", DoAction1, s_dir2, L""}, - {__LINE__, DONT_SEND, s_dir2, s_dir3, "00000001", DoAction3, s_dir2, s_dir3}, - {__LINE__, DONT_SEND, s_file1, NULL, "01000000", DoAction4, s_file1, L""}, - {__LINE__, DONT_SEND, s_file1, s_file2, "10000000", DoAction5, s_file1, s_file2}, - {__LINE__, DONT_SEND, s_file2, NULL, "00100000", DoAction6, s_file2, L""}, - {__LINE__, DONT_SEND, s_dir3, NULL, "00001000", DoAction7, s_dir3, L""}, - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_MKDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, +static const TEST_ENTRY s_group_01[] = +{ + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0100000", s_szTestFile1, L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0010000", s_szTestFile1, L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0001000", s_szTestDir1, L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000100", s_szTestDir1, L"", DoAction12 }, }; -static const TEST_ENTRY s_TestEntriesMode4[] = -{ - {__LINE__, DONT_SEND, s_dir2, NULL, NULL, DoAction1, NULL, NULL}, - {__LINE__, DONT_SEND, s_dir2, NULL, "00001000", DoAction2, s_dir2, L""}, - {__LINE__, DONT_SEND, s_dir2, NULL, "00010000", DoAction1, s_dir2, L""}, - {__LINE__, DONT_SEND, s_dir2, s_dir3, "00000001", DoAction3, s_dir2, s_dir3}, - {__LINE__, DONT_SEND, s_file1, NULL, "01000000", DoAction4, s_file1, L""}, - {__LINE__, DONT_SEND, s_file1, s_file2, "10000000", DoAction5, s_file1, s_file2}, - {__LINE__, DONT_SEND, s_file2, NULL, "00100000", DoAction6, s_file2, L""}, - {__LINE__, DONT_SEND, s_dir3, NULL, "00001000", DoAction7, s_dir3, L""}, - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_MKDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, +static const TEST_ENTRY s_group_02[] = +{ + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0100000", s_szTestFile1, L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0010000", s_szTestFile1, L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0001000", s_szTestDir1, L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000100", s_szTestDir1, L"", DoAction12 }, }; -static const TEST_ENTRY s_TestEntriesMode5[] = -{ - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_RMDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, "00000000", DoAction1, NULL, NULL}, - {__LINE__, SHCNE_RMDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_RMDIR, s_dir2, NULL, "00000000", DoAction2, NULL, NULL}, - {__LINE__, SHCNE_MKDIR, s_dir2, NULL, "00000000", DoAction1, NULL, NULL}, - {__LINE__, SHCNE_RENAMEFOLDER, s_dir2, s_dir3, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_RENAMEFOLDER, s_dir2, s_dir3, "00000000", DoAction3, NULL, NULL}, - {__LINE__, SHCNE_CREATE, s_file1, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_CREATE, s_file1, s_file2, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_CREATE, s_file1, NULL, "00000000", DoAction4, NULL, NULL}, - {__LINE__, SHCNE_RENAMEITEM, s_file1, s_file2, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_RENAMEITEM, s_file1, s_file2, "00000000", DoAction5, NULL, NULL}, - {__LINE__, SHCNE_RENAMEITEM, s_file1, s_file2, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_UPDATEITEM, s_file1, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_UPDATEITEM, s_file2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_UPDATEITEM, s_file1, s_file2, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_UPDATEITEM, s_file2, s_file1, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file1, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file2, s_file1, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file1, s_file2, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file2, NULL, "00000000", DoAction6, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_DELETE, s_file1, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir1, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir2, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir3, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir1, s_dir2, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir1, s_dir3, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir2, s_dir1, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir2, s_dir3, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir3, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir3, NULL, "00000000", DoAction7, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir1, NULL, "00000000", NULL, NULL, NULL}, - {__LINE__, SHCNE_INTERRUPT | SHCNE_RMDIR, s_dir1, NULL, "00000000", DoAction8, NULL, NULL}, +static const TEST_ENTRY s_group_03[] = +{ + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction12 }, }; -LPCSTR PatternFromFlags(DWORD flags) +static const TEST_ENTRY s_group_04[] = { - static char s_buf[TYPE_RENAMEFOLDER + 1 + 1]; - DWORD i; - for (i = 0; i <= TYPE_RENAMEFOLDER; ++i) - { + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "1000000", s_szTestFile0, s_szTestFile0Kai, DoAction2 }, + { __LINE__, WRITEDIR_0, "1000000", s_szTestFile0Kai, s_szTestFile0, DoAction3 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000010", s_szTestDir0, s_szTestDir0Kai, DoAction6 }, + { __LINE__, WRITEDIR_0, "0000010", s_szTestDir0Kai, s_szTestDir0, DoAction7 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction12 }, +}; + +static const TEST_ENTRY s_group_05[] = +{ + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0100000", s_szTestFile1, L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "1000000", s_szTestFile1, s_szTestFile1Kai, DoAction2 }, + { __LINE__, WRITEDIR_1, "1000000", s_szTestFile1Kai, s_szTestFile1, DoAction3 }, + { __LINE__, WRITEDIR_1, "0010000", s_szTestFile1, L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0001000", s_szTestDir1, L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000010", s_szTestDir1, s_szTestDir1Kai, DoAction6 }, + { __LINE__, WRITEDIR_1, "0000010", s_szTestDir1Kai, s_szTestDir1, DoAction7 }, + { __LINE__, WRITEDIR_1, "0000100", s_szTestDir1, L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction12 }, +}; + +static const TEST_ENTRY s_group_06[] = +{ + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "1000000", s_szTestFile0, s_szTestFile0Kai, DoAction2 }, + { __LINE__, WRITEDIR_0, "1000000", s_szTestFile0Kai, s_szTestFile0, DoAction3 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000010", s_szTestDir0, s_szTestDir0Kai, DoAction6 }, + { __LINE__, WRITEDIR_0, "0000010", s_szTestDir0Kai, s_szTestDir0, DoAction7 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0100000", s_szTestFile1, L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0010000", s_szTestFile1, L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0001000", s_szTestDir1, L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000100", s_szTestDir1, L"", DoAction12 }, +}; + +static const TEST_ENTRY s_group_07[] = +{ + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "1000000", s_szTestFile0, s_szTestFile0Kai, DoAction2 }, + { __LINE__, WRITEDIR_0, "1000000", s_szTestFile0Kai, s_szTestFile0, DoAction3 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000010", s_szTestDir0, s_szTestDir0Kai, DoAction6 }, + { __LINE__, WRITEDIR_0, "0000010", s_szTestDir0Kai, s_szTestDir0, DoAction7 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0100000", s_szTestFile0, L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0010000", s_szTestFile0, L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0001000", s_szTestDir0, L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000100", s_szTestDir0, L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000000", L"", L"", DoAction12 }, +}; + +static const TEST_ENTRY s_group_08[] = +{ + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction1 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction2 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction3 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction4 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction5 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction6 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction7 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction8 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction9 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction10 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction11 }, + { __LINE__, WRITEDIR_0, "0000000", L"", L"", DoAction12 }, + + { __LINE__, WRITEDIR_1, "0100000", s_szTestFile1, L"", DoAction1 }, + { __LINE__, WRITEDIR_1, "1000000", s_szTestFile1, s_szTestFile1Kai, DoAction2 }, + { __LINE__, WRITEDIR_1, "1000000", s_szTestFile1Kai, s_szTestFile1, DoAction3 }, + { __LINE__, WRITEDIR_1, "0010000", s_szTestFile1, L"", DoAction4 }, + { __LINE__, WRITEDIR_1, "0001000", s_szTestDir1, L"", DoAction5 }, + { __LINE__, WRITEDIR_1, "0000010", s_szTestDir1, s_szTestDir1Kai, DoAction6 }, + { __LINE__, WRITEDIR_1, "0000010", s_szTestDir1Kai, s_szTestDir1, DoAction7 }, + { __LINE__, WRITEDIR_1, "0000100", s_szTestDir1, L"", DoAction8 }, + { __LINE__, WRITEDIR_1, "0100000", s_szTestFile1, L"", DoAction9 }, + { __LINE__, WRITEDIR_1, "0010000", s_szTestFile1, L"", DoAction10 }, + { __LINE__, WRITEDIR_1, "0001000", s_szTestDir1, L"", DoAction11 }, + { __LINE__, WRITEDIR_1, "0000100", s_szTestDir1, L"", DoAction12 }, +}; + +static LPCSTR PatternFromFlags(DWORD flags) +{ + static CHAR s_buf[(TYPE_MAX + 1) + 1]; + for (INT i = 0; i < (TYPE_MAX + 1); ++i) s_buf[i] = (char)('0' + !!(flags & (1 << i))); - } - s_buf[i] = 0; + + s_buf[TYPE_MAX + 1] = 0; return s_buf; } -static BOOL -DoGetPaths(LPWSTR pszPath1, LPWSTR pszPath2) +static BOOL DoGetPaths(LPWSTR pszPath1, LPWSTR pszPath2) { pszPath1[0] = pszPath2[0] = 0; WCHAR szText[MAX_PATH * 2]; szText[0] = 0; - if (FILE *fp = fopen(TEMP_FILE, "rb")) + FILE *fp = _wfopen(TEMP_FILE, L"rb"); + if (fp) { fread(szText, 1, sizeof(szText), fp); fclose(fp); @@ -219,56 +508,77 @@ DoGetPaths(LPWSTR pszPath1, LPWSTR pszPath2) return FALSE; *pch = 0; - lstrcpynW(pszPath1, szText, MAX_PATH); - lstrcpynW(pszPath2, pch + 1, MAX_PATH); + StringCchCopyW(pszPath1, MAX_PATH, szText); + StringCchCopyW(pszPath2, MAX_PATH, pch + 1); return TRUE; } -static void -DoTestEntry(const TEST_ENTRY *entry) +static void DoTestEntry(INT iEntry, const TEST_ENTRY *entry, INT nSources) { +#ifdef ENTRY_TICK + DWORD dwOldTick = GetTickCount(); +#endif + + BOOL bInterrupting = FALSE; if (entry->action) - { - (*entry->action)(); - } + bInterrupting = entry->action(entry); - if (entry->event != DONT_SEND) + DWORD flags; + LPCSTR pattern; + if ((nSources & SHCNRF_InterruptLevel) && bInterrupting) { - SHChangeNotify(entry->event, SHCNF_PATHW | SHCNF_FLUSH, entry->item1, entry->item2); + // The event won't work at here. Manually waiting... + UINT cTry = ((iEntry == 0) ? 100 : 60); + for (UINT iTry = 0; iTry < cTry; ++iTry) + { + flags = SendMessageW(s_hwnd, WM_GET_NOTIFY_FLAGS, 0, 0); + pattern = PatternFromFlags(flags); + if (strcmp(pattern, "0000000") != 0) + break; + + Sleep(1); + } } else { - SHChangeNotify(0, SHCNF_FLUSH, NULL, NULL); - } + if (WaitForSingleObject(s_hEvent, 100) == WAIT_OBJECT_0) + Sleep(1); - DWORD flags = SendMessageW(s_hwnd, WM_GET_NOTIFY_FLAGS, 0, 0); - LPCSTR pattern = PatternFromFlags(flags); - - if (entry->pattern) - { - ok(lstrcmpA(pattern, entry->pattern) == 0 || - lstrcmpA(pattern, "00000100") == 0, // SHCNE_UPDATEDIR - "Line %d: pattern mismatch '%s'\n", entry->line, pattern); + flags = SendMessageW(s_hwnd, WM_GET_NOTIFY_FLAGS, 0, 0); + pattern = PatternFromFlags(flags); } SendMessageW(s_hwnd, WM_SET_PATHS, 0, 0); - Sleep(50); WCHAR szPath1[MAX_PATH], szPath2[MAX_PATH]; szPath1[0] = szPath2[0] = 0; BOOL bOK = DoGetPaths(szPath1, szPath2); - if (lstrcmpA(pattern, "00000100") == 0) // SHCNE_UPDATEDIR + static UINT s_cCalmDown = 0; + + if (pattern[TYPE_UPDATEDIR] == '1') { + trace("Line %d: SHCNE_UPDATEDIR: Calm down (%u)...\n", entry->line, s_cCalmDown); + + if (++s_cCalmDown < 3) + Sleep(3000); + + if (entry->pattern) + ok(TRUE, "Line %d:\n", entry->line); if (entry->path1) - ok(bOK && lstrcmpiW(s_dir1, szPath1) == 0, - "Line %d: path1 mismatch '%S' (%d)\n", entry->line, szPath1, bOK); + ok(TRUE, "Line %d:\n", entry->line); if (entry->path2) - ok(bOK && lstrcmpiW(L"", szPath2) == 0, - "Line %d: path2 mismatch '%S' (%d)\n", entry->line, szPath2, bOK); + ok(TRUE, "Line %d:\n", entry->line); } else { + s_cCalmDown = 0; + if (entry->pattern) + { + ok(strcmp(pattern, entry->pattern) == 0, + "Line %d: pattern mismatch '%s', tick=0x%08lX\n", + entry->line, pattern, GetTickCount()); + } if (entry->path1) ok(bOK && lstrcmpiW(entry->path1, szPath1) == 0, "Line %d: path1 mismatch '%S' (%d)\n", entry->line, szPath1, bOK); @@ -278,43 +588,108 @@ DoTestEntry(const TEST_ENTRY *entry) } SendMessageW(s_hwnd, WM_CLEAR_FLAGS, 0, 0); + ResetEvent(s_hEvent); + +#ifdef ENTRY_TICK + DWORD dwNewTick = GetTickCount(); + DWORD dwTick = dwNewTick - dwOldTick; + trace("DoTestEntry: Line %d: tick=%lu.%lu sec\n", entry->line, + (dwTick / 1000), (dwTick / 100 % 10)); +#endif } -static BOOL -DoInit(void) +static void DoQuitTest(BOOL bForce) { - DoInitPaths(); + PostMessageW(s_hwnd, WM_COMMAND, IDOK, 0); - CreateDirectoryW(s_dir1, NULL); + DoWaitForWindow(CLASSNAME, CLASSNAME, TRUE, bForce); + s_hwnd = NULL; - // close Explorer before tests - INT i, nCount = 50; - for (i = 0; i < nCount; ++i) + if (s_hEvent) { - HWND hwnd = FindWindowW(L"CabinetWClass", NULL); - if (hwnd == NULL) - break; + CloseHandle(s_hEvent); + s_hEvent = NULL; + } - PostMessage(hwnd, WM_CLOSE, 0, 0); - Sleep(100); + DoDeleteFilesAndDirs(); +} + +static void DoAbortThread(void) +{ + skip("Aborting the thread...\n"); + if (s_hThread) + { + TerminateThread(s_hThread, -1); + s_hThread = NULL; } - if (i == nCount) - skip("Unable to close Explorer cabinet\n"); +} - return PathIsDirectoryW(s_dir1); +static BOOL CALLBACK HandlerRoutine(DWORD dwCtrlType) +{ + switch (dwCtrlType) + { + case CTRL_C_EVENT: + case CTRL_BREAK_EVENT: + DoAbortThread(); + DoQuitTest(TRUE); + return TRUE; + } + return FALSE; } -static void -DoEnd(HWND hwnd) +static BOOL DoInitTest(void) { - DeleteFileW(s_file1); - DeleteFileW(s_file2); - RemoveDirectoryW(s_dir3); - RemoveDirectoryW(s_dir2); - RemoveDirectoryW(s_dir1); - DeleteFileA(TEMP_FILE); + // DIRTYPE_DESKTOP + LPWSTR psz = DoGetDir(DIRTYPE_DESKTOP); + StringCchCopyW(s_szDesktop, _countof(s_szDesktop), psz); + + PathAppendW(psz, TEST_FILE); + StringCchCopyW(s_szTestFile0, _countof(s_szTestFile0), psz); + + PathRemoveFileSpecW(psz); + PathAppendW(psz, TEST_FILE_KAI); + StringCchCopyW(s_szTestFile0Kai, _countof(s_szTestFile0Kai), psz); + + PathRemoveFileSpecW(psz); + PathAppendW(psz, TEST_DIR); + StringCchCopyW(s_szTestDir0, _countof(s_szTestDir0), psz); + + PathRemoveFileSpecW(psz); + PathAppendW(psz, TEST_DIR_KAI); + StringCchCopyW(s_szTestDir0Kai, _countof(s_szTestDir0Kai), psz); + + // DIRTYPE_MYDOCUMENTS + psz = DoGetDir(DIRTYPE_MYDOCUMENTS); + StringCchCopyW(s_szDocuments, _countof(s_szDocuments), psz); + + PathAppendW(psz, TEST_FILE); + StringCchCopyW(s_szTestFile1, _countof(s_szTestFile1), psz); + + PathRemoveFileSpecW(psz); + PathAppendW(psz, TEST_FILE_KAI); + StringCchCopyW(s_szTestFile1Kai, _countof(s_szTestFile1Kai), psz); + + PathRemoveFileSpecW(psz); + PathAppendW(psz, TEST_DIR); + StringCchCopyW(s_szTestDir1, _countof(s_szTestDir1), psz); + + PathRemoveFileSpecW(psz); + PathAppendW(psz, TEST_DIR_KAI); + StringCchCopyW(s_szTestDir1Kai, _countof(s_szTestDir1Kai), psz); + + // prepare for files and dirs + DoDeleteFilesAndDirs(); + DoCreateEmptyFile(TEMP_FILE); - SendMessageW(s_hwnd, WM_COMMAND, IDOK, 0); + // Ctrl+C + SetConsoleCtrlHandler(HandlerRoutine, TRUE); + + // close Explorer windows + trace("Closing Explorer windows...\n"); + DoWaitForWindow(L"CabinetWClass", NULL, TRUE, TRUE); + + // close the CLASSNAME windows + return DoWaitForWindow(CLASSNAME, CLASSNAME, TRUE, TRUE) == NULL; } static BOOL @@ -330,28 +705,69 @@ GetSubProgramPath(void) PathAppendW(s_szSubProgram, L"testdata\\shell32_apitest_sub.exe"); if (!PathFileExistsW(s_szSubProgram)) - { return FALSE; - } } return TRUE; } +#define SRC_00 0 +#define SRC_01 SHCNRF_ShellLevel +#define SRC_02 (SHCNRF_NewDelivery) +#define SRC_03 (SHCNRF_NewDelivery | SHCNRF_ShellLevel) +#define SRC_04 SHCNRF_InterruptLevel +#define SRC_05 (SHCNRF_InterruptLevel | SHCNRF_ShellLevel) +#define SRC_06 (SHCNRF_InterruptLevel | SHCNRF_NewDelivery) +#define SRC_07 (SHCNRF_InterruptLevel | SHCNRF_NewDelivery | SHCNRF_ShellLevel) +#define SRC_08 (SHCNRF_RecursiveInterrupt | SHCNRF_InterruptLevel) +#define SRC_09 (SHCNRF_RecursiveInterrupt | SHCNRF_InterruptLevel | SHCNRF_ShellLevel) +#define SRC_10 (SHCNRF_RecursiveInterrupt | SHCNRF_InterruptLevel | SHCNRF_NewDelivery) +#define SRC_11 (SHCNRF_RecursiveInterrupt | SHCNRF_InterruptLevel | SHCNRF_NewDelivery | SHCNRF_ShellLevel) + +#define WATCHDIR_0 DIRTYPE_NULL +#define WATCHDIR_1 DIRTYPE_DESKTOP +#define WATCHDIR_2 DIRTYPE_MYCOMPUTER +#define WATCHDIR_3 DIRTYPE_MYDOCUMENTS + static void -JustDoIt(INT nMode) +DoTestGroup(INT line, UINT cEntries, const TEST_ENTRY *pEntries, BOOL fRecursive, + INT nSources, DIRTYPE iWatchDir) { - trace("nMode: %d\n", nMode); - SHChangeNotify(0, SHCNF_FLUSH, NULL, NULL); +#ifdef NO_INTERRUPT_LEVEL + if (nSources & SHCNRF_InterruptLevel) + return; +#endif +#ifdef NO_SHELL_LEVEL + if (nSources & SHCNRF_ShellLevel) + return; +#endif +#ifdef NEW_DELIVERY_ONLY + if (!(nSources & SHCNRF_NewDelivery)) + return; +#endif +#ifdef GROUP_TICK + DWORD dwOldTick = GetTickCount(); +#endif +#ifdef RANDOM_QUARTER + if ((rand() & 3) == 0) + return; +#elif defined(RANDOM_HALF) + if (rand() & 1) + return; +#endif - if (!DoInit()) + trace("DoTestGroup: Line %d: fRecursive:%u, iWatchDir:%u, nSources:0x%X\n", + line, fRecursive, iWatchDir, nSources); + + if (s_hEvent) { - skip("Unable to initialize.\n"); - return; + CloseHandle(s_hEvent); + s_hEvent = NULL; } + s_hEvent = CreateEventW(NULL, TRUE, FALSE, EVENT_NAME); - WCHAR szParams[8]; - wsprintfW(szParams, L"%u", nMode); + WCHAR szParams[64]; + StringCchPrintfW(szParams, _countof(szParams), L"%u,%u,%u", fRecursive, iWatchDir, nSources); HINSTANCE hinst = ShellExecuteW(NULL, NULL, s_szSubProgram, szParams, NULL, SW_SHOWNORMAL); if ((INT_PTR)hinst <= 32) @@ -360,74 +776,189 @@ JustDoIt(INT nMode) return; } - for (int i = 0; i < 15; ++i) - { - s_hwnd = FindWindowW(s_szName, s_szName); - if (s_hwnd) - break; - - Sleep(50); - } - + s_hwnd = DoWaitForWindow(CLASSNAME, CLASSNAME, FALSE, FALSE); if (!s_hwnd) { skip("Unable to find window.\n"); return; } - switch (nMode) + for (UINT i = 0; i < cEntries; ++i) { - case 0: - case 1: - case 2: - for (size_t i = 0; i < _countof(s_TestEntriesMode0); ++i) - { - DoTestEntry(&s_TestEntriesMode0[i]); - } - break; - case 3: - for (size_t i = 0; i < _countof(s_TestEntriesMode3); ++i) - { - DoTestEntry(&s_TestEntriesMode3[i]); - } - break; - case 4: - for (size_t i = 0; i < _countof(s_TestEntriesMode4); ++i) - { - DoTestEntry(&s_TestEntriesMode4[i]); - } - break; - case 5: - for (size_t i = 0; i < _countof(s_TestEntriesMode5); ++i) - { - DoTestEntry(&s_TestEntriesMode5[i]); - } + if (!IsWindow(s_hwnd)) + { + DoAbortThread(); + DoQuitTest(TRUE); break; + } + + DoTestEntry(i, &pEntries[i], nSources); } - DoEnd(s_hwnd); + DoQuitTest(FALSE); - for (int i = 0; i < 15; ++i) - { - s_hwnd = FindWindowW(s_szName, s_szName); - if (!s_hwnd) - break; +#ifdef GROUP_TICK + DWORD dwNewTick = GetTickCount(); + DWORD dwTick = dwNewTick - dwOldTick; + trace("DoTestGroup: Line %d: %lu.%lu sec\n", line, (dwTick / 1000), (dwTick / 100 % 10)); +#endif +} - Sleep(50); - } +static unsigned __stdcall TestThreadProc(void *) +{ + srand(time(NULL)); +#ifdef RANDOM_QUARTER + skip("RANDOM_QUARTER\n"); +#elif defined(RANDOM_HALF) + skip("RANDOM_HALF\n"); +#endif + + // fRecursive == FALSE. + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_00, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, FALSE, SRC_01, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_02, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, FALSE, SRC_03, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, FALSE, SRC_04, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, FALSE, SRC_05, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, FALSE, SRC_06, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, FALSE, SRC_07, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, FALSE, SRC_08, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, FALSE, SRC_09, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, FALSE, SRC_10, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, FALSE, SRC_11, WATCHDIR_0); + + BOOL bTarget = IsWindowsXPOrGreater() && !IsWindowsVistaOrGreater(); + +#define SWITCH(x, y) (bTarget ? (x) : (y)) + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_00, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_03), s_group_03, FALSE, SRC_01, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_02, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_03), s_group_03, FALSE, SRC_03, WATCHDIR_1); + DoTestGroup(__LINE__, SWITCH(_countof(s_group_00), _countof(s_group_04)), SWITCH(s_group_00, s_group_04), FALSE, SRC_04, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_07), s_group_07, FALSE, SRC_05, WATCHDIR_1); + DoTestGroup(__LINE__, SWITCH(_countof(s_group_00), _countof(s_group_04)), SWITCH(s_group_00, s_group_04), FALSE, SRC_06, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_07), s_group_07, FALSE, SRC_07, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, FALSE, SRC_08, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_07), s_group_07, FALSE, SRC_09, WATCHDIR_1); + DoTestGroup(__LINE__, SWITCH(_countof(s_group_00), _countof(s_group_04)), SWITCH(s_group_00, s_group_04), FALSE, SRC_06, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_07), s_group_07, FALSE, SRC_11, WATCHDIR_1); +#undef SWITCH + +#ifndef NO_TRIVIAL + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_00, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_01, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_02, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_03, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_04, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_05, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_06, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_07, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_08, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_09, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_10, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_11, WATCHDIR_2); +#endif + + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_00, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_02), s_group_02, FALSE, SRC_01, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, FALSE, SRC_02, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_02), s_group_02, FALSE, SRC_03, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, FALSE, SRC_04, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, FALSE, SRC_05, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, FALSE, SRC_06, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, FALSE, SRC_07, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, FALSE, SRC_08, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, FALSE, SRC_09, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, FALSE, SRC_10, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, FALSE, SRC_11, WATCHDIR_3); + + // fRecursive == TRUE. + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_00, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, TRUE, SRC_01, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_02, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, TRUE, SRC_03, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_04, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_05, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_06, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_07, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_08, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_09, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_10, WATCHDIR_0); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_11, WATCHDIR_0); + + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_00, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, TRUE, SRC_01, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_02, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, TRUE, SRC_03, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_04, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_05, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_06, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_07, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_08, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_09, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_10, WATCHDIR_1); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_11, WATCHDIR_1); + + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_00, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, TRUE, SRC_01, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_02, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_01), s_group_01, TRUE, SRC_03, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_04, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_05, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_06, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_07, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_08, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_09, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_04), s_group_04, TRUE, SRC_10, WATCHDIR_2); + DoTestGroup(__LINE__, _countof(s_group_06), s_group_06, TRUE, SRC_11, WATCHDIR_2); + + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_00, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_02), s_group_02, TRUE, SRC_01, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_00), s_group_00, TRUE, SRC_02, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_02), s_group_02, TRUE, SRC_03, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, TRUE, SRC_04, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, TRUE, SRC_05, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, TRUE, SRC_06, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, TRUE, SRC_07, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, TRUE, SRC_08, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, TRUE, SRC_09, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_05), s_group_05, TRUE, SRC_10, WATCHDIR_3); + DoTestGroup(__LINE__, _countof(s_group_08), s_group_08, TRUE, SRC_11, WATCHDIR_3); + + return 0; } START_TEST(SHChangeNotify) { +#ifdef DISABLE_THIS_TESTCASE + skip("This testcase is disabled by DISABLE_THIS_TESTCASE macro.\n"); +#endif +#ifdef TOTAL_TICK + DWORD dwOldTick = GetTickCount(); +#endif + + trace("Please don't operate your PC while testing...\n"); + if (!GetSubProgramPath()) { skip("shell32_apitest_sub.exe not found\n"); + return; } - JustDoIt(0); - JustDoIt(1); - JustDoIt(2); - JustDoIt(3); - JustDoIt(4); - JustDoIt(5); + if (!DoInitTest()) + { + skip("Unable to initialize.\n"); + DoQuitTest(TRUE); + return; + } + + s_hThread = (HANDLE)_beginthreadex(NULL, 0, TestThreadProc, NULL, 0, NULL); + WaitForSingleObject(s_hThread, INFINITE); + CloseHandle(s_hThread); + +#ifdef TOTAL_TICK + DWORD dwNewTick = GetTickCount(); + DWORD dwTick = dwNewTick - dwOldTick; + trace("SHChangeNotify: Total %lu.%lu sec\n", (dwTick / 1000), (dwTick / 100 % 10)); +#endif } diff --git a/modules/rostests/apitests/shell32/SHChangeNotify.h b/modules/rostests/apitests/shell32/SHChangeNotify.h index 71389513eb2..e20b6b7a74c 100644 --- a/modules/rostests/apitests/shell32/SHChangeNotify.h +++ b/modules/rostests/apitests/shell32/SHChangeNotify.h @@ -1,6 +1,18 @@ #pragma once -#define TEMP_FILE "shell-notify-temporary.txt" +#include <shlwapi.h> +#include <stdlib.h> +#include <stdio.h> +#include <strsafe.h> + +#define TEMP_FILE L"shell-notify-temporary.txt" +#define CLASSNAME L"SHChangeNotify testcase window" +#define EVENT_NAME L"SHChangeNotify testcase event" + +#define WM_SHELL_NOTIFY (WM_USER + 100) +#define WM_GET_NOTIFY_FLAGS (WM_USER + 101) +#define WM_CLEAR_FLAGS (WM_USER + 102) +#define WM_SET_PATHS (WM_USER + 103) typedef enum TYPE { @@ -9,40 +21,53 @@ typedef enum TYPE TYPE_DELETE, TYPE_MKDIR, TYPE_RMDIR, + TYPE_RENAMEFOLDER, TYPE_UPDATEDIR, - TYPE_UPDATEITEM, - TYPE_RENAMEFOLDER + TYPE_MAX = TYPE_UPDATEDIR } TYPE; -#define WM_SHELL_NOTIFY (WM_USER + 100) -#define WM_GET_NOTIFY_FLAGS (WM_USER + 101) -#define WM_CLEAR_FLAGS (WM_USER + 102) -#define WM_SET_PATHS (WM_USER + 103) - -static WCHAR s_dir1[MAX_PATH]; // "%TEMP%\\WatchDir1" -static WCHAR s_dir2[MAX_PATH]; // "%TEMP%\\WatchDir1\\Dir2" -static WCHAR s_dir3[MAX_PATH]; // "%TEMP%\\WatchDir1\\Dir3" -static WCHAR s_file1[MAX_PATH]; // "%TEMP%\\WatchDir1\\File1.txt" -static WCHAR s_file2[MAX_PATH]; // "%TEMP%\\WatchDir1\\File2.txt" +typedef enum DIRTYPE +{ + DIRTYPE_NULL = 0, + DIRTYPE_DESKTOP, + DIRTYPE_MYCOMPUTER, + DIRTYPE_MYDOCUMENTS +} DIRTYPE; -inline void DoInitPaths(void) +inline LPITEMIDLIST DoGetPidl(DIRTYPE iDir) { - WCHAR szTemp[MAX_PATH], szPath[MAX_PATH]; - GetTempPathW(_countof(szTemp), szTemp); - GetLongPathNameW(szTemp, szPath, _countof(szPath)); + LPITEMIDLIST ret = NULL; + + switch (iDir) + { + case DIRTYPE_NULL: + break; - lstrcpyW(s_dir1, szPath); - PathAppendW(s_dir1, L"WatchDir1"); + case DIRTYPE_DESKTOP: + SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &ret); + break; - lstrcpyW(s_dir2, s_dir1); - PathAppendW(s_dir2, L"Dir2"); + case DIRTYPE_MYCOMPUTER: + SHGetSpecialFolderLocation(NULL, CSIDL_DRIVES, &ret); + break; - lstrcpyW(s_dir3, s_dir1); - PathAppendW(s_dir3, L"Dir3"); + case DIRTYPE_MYDOCUMENTS: + SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &ret); + break; + } - lstrcpyW(s_file1, s_dir1); - PathAppendW(s_file1, L"File1.txt"); + return ret; +} - lstrcpyW(s_file2, s_dir1); - PathAppendW(s_file2, L"File2.txt"); +inline LPWSTR DoGetDir(DIRTYPE iDir) +{ + static size_t s_index = 0; + static WCHAR s_pathes[3][MAX_PATH]; + LPWSTR psz = s_pathes[s_index]; + LPITEMIDLIST pidl = DoGetPidl(iDir); + psz[0] = 0; + SHGetPathFromIDListW(pidl, psz); + CoTaskMemFree(pidl); + s_index = (s_index + 1) % _countof(s_pathes); + return psz; } diff --git a/modules/rostests/apitests/shell32/shell32_apitest_sub.cpp b/modules/rostests/apitests/shell32/shell32_apitest_sub.cpp index 127ecaf687f..1b90c7ae39a 100644 --- a/modules/rostests/apitests/shell32/shell32_apitest_sub.cpp +++ b/modules/rostests/apitests/shell32/shell32_apitest_sub.cpp @@ -6,72 +6,28 @@ */ #include "shelltest.h" -#include <shlwapi.h> -#include <stdio.h> #include "SHChangeNotify.h" static HWND s_hwnd = NULL; -static const WCHAR s_szName[] = L"SHChangeNotify testcase"; -static INT s_nMode; - -static BYTE s_counters[TYPE_RENAMEFOLDER + 1]; static UINT s_uRegID = 0; - -static WCHAR s_path1[MAX_PATH], s_path2[MAX_PATH]; - +static BOOL s_fRecursive = FALSE; +static DIRTYPE s_iWatchDir = DIRTYPE_NULL; +static INT s_nSources = 0; static LPITEMIDLIST s_pidl = NULL; -static SHChangeNotifyEntry s_entry; +static WCHAR s_path1[MAX_PATH], s_path2[MAX_PATH]; +static BYTE s_counters[TYPE_MAX + 1]; +static HANDLE s_hEvent = NULL; static BOOL OnCreate(HWND hwnd) { s_hwnd = hwnd; + s_pidl = DoGetPidl(s_iWatchDir); - DoInitPaths(); - - s_pidl = ILCreateFromPathW(s_dir1); - s_entry.pidl = s_pidl; - - INT nSources; - switch (s_nMode) - { - case 0: - s_entry.fRecursive = TRUE; - nSources = SHCNRF_ShellLevel; - break; - - case 1: - s_entry.fRecursive = TRUE; - nSources = SHCNRF_ShellLevel | SHCNRF_InterruptLevel; - break; - - case 2: - s_entry.fRecursive = FALSE; - nSources = SHCNRF_ShellLevel | SHCNRF_NewDelivery; - break; - - case 3: - s_entry.fRecursive = TRUE; - nSources = SHCNRF_InterruptLevel | SHCNRF_RecursiveInterrupt | SHCNRF_NewDelivery; - break; - - case 4: - s_entry.fRecursive = FALSE; - nSources = SHCNRF_InterruptLevel | SHCNRF_NewDelivery; - break; - - case 5: - s_entry.fRecursive = TRUE; - nSources = SHCNRF_InterruptLevel | SHCNRF_RecursiveInterrupt | SHCNRF_NewDelivery; - s_entry.pidl = NULL; - break; - - default: - return FALSE; - } - LONG fEvents = SHCNE_ALLEVENTS; - s_uRegID = SHChangeNotifyRegister(hwnd, nSources, fEvents, WM_SHELL_NOTIFY, - 1, &s_entry); + SHChangeNotifyEntry entry; + entry.pidl = s_pidl; + entry.fRecursive = s_fRecursive; + s_uRegID = SHChangeNotifyRegister(hwnd, s_nSources, SHCNE_ALLEVENTS, WM_SHELL_NOTIFY, 1, &entry); return s_uRegID != 0; } @@ -100,35 +56,54 @@ OnDestroy(HWND hwnd) s_hwnd = NULL; } -static void -DoShellNotify(HWND hwnd, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2, LONG lEvent) +static BOOL DoPathes(PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2) { - if (pidl1) - SHGetPathFromIDListW(pidl1, s_path1); - else - s_path1[0] = 0; + WCHAR path[MAX_PATH]; + if (!SHGetPathFromIDListW(pidl1, path)) + { + s_path1[0] = s_path2[0] = 0; + return FALSE; + } - if (pidl2) - SHGetPathFromIDListW(pidl2, s_path2); - else + if (wcsstr(path, L"Recent") != NULL) + return FALSE; + + StringCchCopyW(s_path1, _countof(s_path1), path); + + if (!SHGetPathFromIDListW(pidl2, s_path2)) s_path2[0] = 0; + return TRUE; +} + +static VOID DoPathesAndFlags(UINT type, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2) +{ + if (DoPathes(pidl1, pidl2)) + { + s_counters[type] = 1; + SetEvent(s_hEvent); + } +} + +static void +DoShellNotify(HWND hwnd, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2, LONG lEvent) +{ switch (lEvent) { case SHCNE_RENAMEITEM: - s_counters[TYPE_RENAMEITEM] = 1; + DoPathesAndFlags(TYPE_RENAMEITEM, pidl1, pidl2); break; case SHCNE_CREATE: - s_counters[TYPE_CREATE] = 1; + DoPathesAndFlags(TYPE_CREATE, pidl1, pidl2); break; case SHCNE_DELETE: - s_counters[TYPE_DELETE] = 1; + DoPathesAndFlags(TYPE_DELETE, pidl1, pidl2); break; case SHCNE_MKDIR: - s_counters[TYPE_MKDIR] = 1; + DoPathesAndFlags(TYPE_MKDIR, pidl1, pidl2); break; case SHCNE_RMDIR: - s_counters[TYPE_RMDIR] = 1; + DoPathesAndFlags(TYPE_RMDIR, pidl1, pidl2); break; case SHCNE_MEDIAINSERTED: break; @@ -145,10 +120,9 @@ DoShellNotify(HWND hwnd, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2, LONG lE case SHCNE_ATTRIBUTES: break; case SHCNE_UPDATEDIR: - s_counters[TYPE_UPDATEDIR] = 1; + DoPathesAndFlags(TYPE_UPDATEDIR, pidl1, pidl2); break; case SHCNE_UPDATEITEM: - s_counters[TYPE_UPDATEITEM] = 1; break; case SHCNE_SERVERDISCONNECT: break; @@ -157,7 +131,7 @@ DoShellNotify(HWND hwnd, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2, LONG lE case SHCNE_DRIVEADDGUI: break; case SHCNE_RENAMEFOLDER: - s_counters[TYPE_RENAMEFOLDER] = 1; + DoPathesAndFlags(TYPE_RENAMEFOLDER, pidl1, pidl2); break; case SHCNE_FREESPACE: break; @@ -208,13 +182,14 @@ static void DoSetPaths(HWND hwnd) { WCHAR szText[MAX_PATH * 2]; - lstrcpyW(szText, s_path1); - lstrcatW(szText, L"|"); - lstrcatW(szText, s_path2); + StringCchCopyW(szText, _countof(szText), s_path1); + StringCchCatW(szText, _countof(szText), L"|"); + StringCchCatW(szText, _countof(szText), s_path2); - if (FILE *fp = fopen(TEMP_FILE, "wb")) + FILE *fp = _wfopen(TEMP_FILE, L"wb"); + if (fp) { - fwrite(szText, (lstrlenW(szText) + 1) * sizeof(WCHAR), 1, fp); + fwrite(szText, (wcslen(szText) + 1) * sizeof(WCHAR), 1, fp); fflush(fp); fclose(fp); } @@ -244,6 +219,7 @@ WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case WM_CLEAR_FLAGS: ZeroMemory(&s_counters, sizeof(s_counters)); + s_path1[0] = s_path2[0] = 0; break; case WM_SET_PATHS: @@ -256,6 +232,25 @@ WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return 0; } +static BOOL ParseCommandLine(LPWSTR lpCmdLine) +{ + LPWSTR pch = lpCmdLine; // fRecursive,iWatchDir,nSources + s_fRecursive = !!wcstoul(pch, NULL, 0); + pch = wcschr(pch, L','); + if (!pch) + return FALSE; + ++pch; + + s_iWatchDir = (DIRTYPE)wcstoul(pch, NULL, 0); + pch = wcschr(pch, L','); + if (!pch) + return FALSE; + ++pch; + + s_nSources = wcstoul(pch, NULL, 0); + return TRUE; +} + INT APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, @@ -265,7 +260,10 @@ wWinMain(HINSTANCE hInstance, if (lstrcmpiW(lpCmdLine, L"") == 0 || lstrcmpiW(lpCmdLine, L"TEST") == 0) return 0; - s_nMode = _wtoi(lpCmdLine); + if (!ParseCommandLine(lpCmdLine)) + return -1; + + s_hEvent = OpenEventW(EVENT_ALL_ACCESS, TRUE, EVENT_NAME); WNDCLASSW wc; ZeroMemory(&wc, sizeof(wc)); @@ -274,12 +272,12 @@ wWinMain(HINSTANCE hInstance, wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1); - wc.lpszClassName = s_szName; + wc.lpszClassName = CLASSNAME; if (!RegisterClassW(&wc)) return -1; - HWND hwnd = CreateWindowW(s_szName, s_szName, WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, CW_USEDEFAULT, 100, 100, + HWND hwnd = CreateWindowW(CLASSNAME, CLASSNAME, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 100, NULL, NULL, GetModuleHandleW(NULL), NULL); if (!hwnd) return -1; @@ -294,5 +292,7 @@ wWinMain(HINSTANCE hInstance, DispatchMessageW(&msg); } + CloseHandle(s_hEvent); + return 0; }
2 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Revert PostMessage to SendMessage
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1c163bf163d5f315e4869…
commit 1c163bf163d5f315e4869cff3286df946fb0a637 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 27 08:26:33 2021 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Mon Dec 27 08:26:33 2021 +0900 [MSPAINT] Revert PostMessage to SendMessage
https://github.com/reactos/reactos/commit/614354ccb55d5aed2aa8244efdc54efb0…
CORE-17931 --- base/applications/mspaint/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/applications/mspaint/main.cpp b/base/applications/mspaint/main.cpp index 83e9f9d37e8..fe77e8ae097 100644 --- a/base/applications/mspaint/main.cpp +++ b/base/applications/mspaint/main.cpp @@ -322,7 +322,7 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument sizeboxCenterBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); sizeboxRightBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); /* placing the size boxes around the image */ - imageArea.PostMessage(WM_SIZE, 0, 0); + imageArea.SendMessage(WM_SIZE, 0, 0); /* by moving the window, the things in WM_SIZE are done */ mainWindow.SetWindowPlacement(&(registrySettings.WindowPlacement));
2 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Define GRIP_SIZE macro and use it (#4192)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=614354ccb55d5aed2aa82…
commit 614354ccb55d5aed2aa8244efdc54efb0d2b0205 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sun Dec 26 23:05:47 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sun Dec 26 23:05:47 2021 +0900 [MSPAINT] Define GRIP_SIZE macro and use it (#4192) Reduce magic numbers. CORE-17931 --- base/applications/mspaint/common.h | 2 ++ base/applications/mspaint/imgarea.cpp | 30 +++++++++++---------- base/applications/mspaint/main.cpp | 6 ++--- base/applications/mspaint/mouse.cpp | 3 ++- base/applications/mspaint/scrollbox.cpp | 14 +++++----- base/applications/mspaint/selection.cpp | 47 ++++++++++++++------------------- base/applications/mspaint/winproc.cpp | 2 +- 7 files changed, 51 insertions(+), 53 deletions(-) diff --git a/base/applications/mspaint/common.h b/base/applications/mspaint/common.h index 5c1f01cbdd9..bfea7368523 100644 --- a/base/applications/mspaint/common.h +++ b/base/applications/mspaint/common.h @@ -23,3 +23,5 @@ static inline int UnZoomed(int xy) { return xy * 1000 / toolsModel.GetZoom(); } + +#define GRIP_SIZE 3 diff --git a/base/applications/mspaint/imgarea.cpp b/base/applications/mspaint/imgarea.cpp index f34b15ede38..99a6c72d177 100644 --- a/base/applications/mspaint/imgarea.cpp +++ b/base/applications/mspaint/imgarea.cpp @@ -23,7 +23,7 @@ updateCanvasAndScrollbars() int zoomedWidth = Zoomed(imageModel.GetWidth()); int zoomedHeight = Zoomed(imageModel.GetHeight()); - imageArea.MoveWindow(3, 3, zoomedWidth, zoomedHeight, FALSE); + imageArea.MoveWindow(GRIP_SIZE, GRIP_SIZE, zoomedWidth, zoomedHeight, FALSE); scrollboxWindow.Invalidate(TRUE); imageArea.Invalidate(FALSE); @@ -74,28 +74,30 @@ LRESULT CImgAreaWindow::OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH int imgYRes = imageModel.GetHeight(); sizeboxLeftTop.MoveWindow( 0, - 0, 3, 3, TRUE); + 0, GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxCenterTop.MoveWindow( - Zoomed(imgXRes) / 2 + 3 * 3 / 4, - 0, 3, 3, TRUE); + GRIP_SIZE + (Zoomed(imgXRes) - GRIP_SIZE) / 2, + 0, GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxRightTop.MoveWindow( - Zoomed(imgXRes) + 3, - 0, 3, 3, TRUE); + GRIP_SIZE + Zoomed(imgXRes), + 0, GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxLeftCenter.MoveWindow( 0, - Zoomed(imgYRes) / 2 + 3 * 3 / 4, 3, 3, TRUE); + GRIP_SIZE + (Zoomed(imgYRes) - GRIP_SIZE) / 2, + GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxRightCenter.MoveWindow( - Zoomed(imgXRes) + 3, - Zoomed(imgYRes) / 2 + 3 * 3 / 4, 3, 3, TRUE); + GRIP_SIZE + Zoomed(imgXRes), + GRIP_SIZE + (Zoomed(imgYRes) - GRIP_SIZE) / 2, + GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxLeftBottom.MoveWindow( 0, - Zoomed(imgYRes) + 3, 3, 3, TRUE); + GRIP_SIZE + Zoomed(imgYRes), GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxCenterBottom.MoveWindow( - Zoomed(imgXRes) / 2 + 3 * 3 / 4, - Zoomed(imgYRes) + 3, 3, 3, TRUE); + GRIP_SIZE + (Zoomed(imgXRes) - GRIP_SIZE) / 2, + GRIP_SIZE + Zoomed(imgYRes), GRIP_SIZE, GRIP_SIZE, TRUE); sizeboxRightBottom.MoveWindow( - Zoomed(imgXRes) + 3, - Zoomed(imgYRes) + 3, 3, 3, TRUE); + GRIP_SIZE + Zoomed(imgXRes), + GRIP_SIZE + Zoomed(imgYRes), GRIP_SIZE, GRIP_SIZE, TRUE); UpdateScrollbox(); return 0; } diff --git a/base/applications/mspaint/main.cpp b/base/applications/mspaint/main.cpp index f1145d7f179..83e9f9d37e8 100644 --- a/base/applications/mspaint/main.cpp +++ b/base/applications/mspaint/main.cpp @@ -248,7 +248,7 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument selectionWindow.Create(scrlClientWindow.m_hWnd, selectionWindowPos, NULL, WS_CHILD | BS_OWNERDRAW); /* creating the window inside the scroll box, on which the image in hDrawingDC's bitmap is drawn */ - RECT imageAreaPos = {3, 3, 3 + imageModel.GetWidth(), 3 + imageModel.GetHeight()}; + RECT imageAreaPos = {GRIP_SIZE, GRIP_SIZE, GRIP_SIZE + imageModel.GetWidth(), GRIP_SIZE + imageModel.GetHeight()}; imageArea.Create(scrlClientWindow.m_hWnd, imageAreaPos, NULL, WS_CHILD | WS_VISIBLE); if (__argc >= 2) @@ -312,7 +312,7 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument } /* creating the size boxes */ - RECT sizeboxPos = {0, 0, 0 + 3, 0 + 3}; + RECT sizeboxPos = {0, 0, GRIP_SIZE, GRIP_SIZE}; sizeboxLeftTop.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); sizeboxCenterTop.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); sizeboxRightTop.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); @@ -322,7 +322,7 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument sizeboxCenterBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); sizeboxRightBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE); /* placing the size boxes around the image */ - imageArea.SendMessage(WM_SIZE, 0, 0); + imageArea.PostMessage(WM_SIZE, 0, 0); /* by moving the window, the things in WM_SIZE are done */ mainWindow.SetWindowPlacement(&(registrySettings.WindowPlacement)); diff --git a/base/applications/mspaint/mouse.cpp b/base/applications/mspaint/mouse.cpp index 10b5202dda4..0f2f1b36312 100644 --- a/base/applications/mspaint/mouse.cpp +++ b/base/applications/mspaint/mouse.cpp @@ -16,7 +16,8 @@ void placeSelWin() { selectionWindow.MoveWindow(Zoomed(selectionModel.GetDestRectLeft()), Zoomed(selectionModel.GetDestRectTop()), - Zoomed(selectionModel.GetDestRectWidth()) + 6, Zoomed(selectionModel.GetDestRectHeight()) + 6, TRUE); + Zoomed(selectionModel.GetDestRectWidth()) + 2 * GRIP_SIZE, + Zoomed(selectionModel.GetDestRectHeight()) + 2 * GRIP_SIZE, TRUE); selectionWindow.BringWindowToTop(); imageArea.InvalidateRect(NULL, FALSE); } diff --git a/base/applications/mspaint/scrollbox.cpp b/base/applications/mspaint/scrollbox.cpp index 6466b8b7f85..c2354c0cc10 100644 --- a/base/applications/mspaint/scrollbox.cpp +++ b/base/applications/mspaint/scrollbox.cpp @@ -52,8 +52,6 @@ CONST INT VSCROLL_WIDTH = ::GetSystemMetrics(SM_CXVSCROLL); void UpdateScrollbox() { - CONST INT EXTRASIZE = 5; /* 3 px of selection markers + 2 px of border */ - CRect tempRect; CSize sizeImageArea; CSize sizeScrollBox; @@ -65,7 +63,7 @@ UpdateScrollbox() imageArea.GetClientRect(&tempRect); sizeImageArea = CSize(tempRect.Width(), tempRect.Height()); - sizeImageArea += CSize(EXTRASIZE * 2, EXTRASIZE * 2); + sizeImageArea += CSize(GRIP_SIZE * 2, GRIP_SIZE * 2); /* show/hide the scrollbars */ vmode = (sizeScrollBox.cy < sizeImageArea.cy ? 0 : @@ -132,8 +130,9 @@ LRESULT CScrollboxWindow::OnHScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO } scrollboxWindow.SetScrollInfo(SB_HORZ, &si); scrlClientWindow.MoveWindow(-scrollboxWindow.GetScrollPos(SB_HORZ), - -scrollboxWindow.GetScrollPos(SB_VERT), Zoomed(imageModel.GetWidth()) + 6, - Zoomed(imageModel.GetHeight()) + 6, TRUE); + -scrollboxWindow.GetScrollPos(SB_VERT), + Zoomed(imageModel.GetWidth()) + 2 * GRIP_SIZE, + Zoomed(imageModel.GetHeight()) + 2 * GRIP_SIZE, TRUE); } return 0; } @@ -167,8 +166,9 @@ LRESULT CScrollboxWindow::OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO } scrollboxWindow.SetScrollInfo(SB_VERT, &si); scrlClientWindow.MoveWindow(-scrollboxWindow.GetScrollPos(SB_HORZ), - -scrollboxWindow.GetScrollPos(SB_VERT), Zoomed(imageModel.GetWidth()) + 6, - Zoomed(imageModel.GetHeight()) + 6, TRUE); + -scrollboxWindow.GetScrollPos(SB_VERT), + Zoomed(imageModel.GetWidth()) + 2 * GRIP_SIZE, + Zoomed(imageModel.GetHeight()) + 2 * GRIP_SIZE, TRUE); } return 0; } diff --git a/base/applications/mspaint/selection.cpp b/base/applications/mspaint/selection.cpp index e058da3e67c..c9155be1cf0 100644 --- a/base/applications/mspaint/selection.cpp +++ b/base/applications/mspaint/selection.cpp @@ -65,31 +65,24 @@ ForceRefreshSelectionContents() int CSelectionWindow::IdentifyCorner(int iXPos, int iYPos, int iWidth, int iHeight) { - if (iYPos < 3) - { - if (iXPos < 3) - return ACTION_RESIZE_TOP_LEFT; - if ((iXPos < iWidth / 2 + 2) && (iXPos >= iWidth / 2 - 1)) - return ACTION_RESIZE_TOP; - if (iXPos >= iWidth - 3) - return ACTION_RESIZE_TOP_RIGHT; - } - if ((iYPos < iHeight / 2 + 2) && (iYPos >= iHeight / 2 - 1)) - { - if (iXPos < 3) - return ACTION_RESIZE_LEFT; - if (iXPos >= iWidth - 3) - return ACTION_RESIZE_RIGHT; - } - if (iYPos >= iHeight - 3) - { - if (iXPos < 3) - return ACTION_RESIZE_BOTTOM_LEFT; - if ((iXPos < iWidth / 2 + 2) && (iXPos >= iWidth / 2 - 1)) - return ACTION_RESIZE_BOTTOM; - if (iXPos >= iWidth - 3) - return ACTION_RESIZE_BOTTOM_RIGHT; - } + POINT pt = { iXPos, iYPos }; + HWND hwndChild = ChildWindowFromPointEx(pt, CWP_SKIPINVISIBLE | CWP_SKIPDISABLED); + if (hwndChild == sizeboxLeftTop) + return ACTION_RESIZE_TOP_LEFT; + if (hwndChild == sizeboxCenterTop) + return ACTION_RESIZE_TOP; + if (hwndChild == sizeboxRightTop) + return ACTION_RESIZE_TOP_RIGHT; + if (hwndChild == sizeboxRightCenter) + return ACTION_RESIZE_RIGHT; + if (hwndChild == sizeboxLeftCenter) + return ACTION_RESIZE_LEFT; + if (hwndChild == sizeboxCenterBottom) + return ACTION_RESIZE_BOTTOM; + if (hwndChild == sizeboxRightBottom) + return ACTION_RESIZE_BOTTOM_RIGHT; + if (hwndChild == sizeboxLeftBottom) + return ACTION_RESIZE_BOTTOM_LEFT; return 0; } @@ -197,8 +190,8 @@ LRESULT CSelectionWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, B } else { - int w = Zoomed(selectionModel.GetDestRectWidth()) + 6; - int h = Zoomed(selectionModel.GetDestRectHeight()) + 6; + int w = Zoomed(selectionModel.GetDestRectWidth()) + 2 * GRIP_SIZE; + int h = Zoomed(selectionModel.GetDestRectHeight()) + 2 * GRIP_SIZE; m_ptPos.x = GET_X_LPARAM(lParam); m_ptPos.y = GET_Y_LPARAM(lParam); SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) NULL); diff --git a/base/applications/mspaint/winproc.cpp b/base/applications/mspaint/winproc.cpp index 1303b258c92..be060047ac3 100644 --- a/base/applications/mspaint/winproc.cpp +++ b/base/applications/mspaint/winproc.cpp @@ -39,7 +39,7 @@ zoomTo(int newZoom, int mouseX, int mouseY) toolsModel.SetZoom(newZoom); selectionWindow.ShowWindow(SW_HIDE); - imageArea.MoveWindow(3, 3, Zoomed(imageModel.GetWidth()), Zoomed(imageModel.GetHeight()), FALSE); + imageArea.MoveWindow(GRIP_SIZE, GRIP_SIZE, Zoomed(imageModel.GetWidth()), Zoomed(imageModel.GetHeight()), FALSE); scrollboxWindow.Invalidate(TRUE); imageArea.Invalidate(FALSE);
2 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Add Zoomed and UnZoomed and use them (#4188)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9e1386db43f64ac405b4e…
commit 9e1386db43f64ac405b4ebf04f025227221e9c2f Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sun Dec 26 19:49:56 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sun Dec 26 19:49:56 2021 +0900 [MSPAINT] Add Zoomed and UnZoomed and use them (#4188) - Define Zoomed and UnZoomed helper functions. - Use them. CORE-17931 --- base/applications/mspaint/common.h | 13 +++++++- base/applications/mspaint/imgarea.cpp | 54 ++++++++++++++++---------------- base/applications/mspaint/mouse.cpp | 4 +-- base/applications/mspaint/precomp.h | 2 +- base/applications/mspaint/scrollbox.cpp | 8 ++--- base/applications/mspaint/selection.cpp | 16 +++++----- base/applications/mspaint/sizebox.cpp | 4 +-- base/applications/mspaint/toolsmodel.cpp | 2 +- base/applications/mspaint/toolsmodel.h | 2 +- base/applications/mspaint/winproc.cpp | 2 +- 10 files changed, 59 insertions(+), 48 deletions(-) diff --git a/base/applications/mspaint/common.h b/base/applications/mspaint/common.h index 45cde747b86..5c1f01cbdd9 100644 --- a/base/applications/mspaint/common.h +++ b/base/applications/mspaint/common.h @@ -5,10 +5,21 @@ * PURPOSE: Commonly used functions * PROGRAMMERS: Benedikt Freisen * Stanislav Motylkov + * Katayama Hirofumi MZ */ #pragma once /* FUNCTIONS ********************************************************/ -extern BOOL zoomTo(int, int, int); +BOOL zoomTo(int newZoom, int mouseX, int mouseY); + +static inline int Zoomed(int xy) +{ + return xy * toolsModel.GetZoom() / 1000; +} + +static inline int UnZoomed(int xy) +{ + return xy * 1000 / toolsModel.GetZoom(); +} diff --git a/base/applications/mspaint/imgarea.cpp b/base/applications/mspaint/imgarea.cpp index b31f7642c74..f34b15ede38 100644 --- a/base/applications/mspaint/imgarea.cpp +++ b/base/applications/mspaint/imgarea.cpp @@ -21,8 +21,8 @@ updateCanvasAndScrollbars() { selectionWindow.ShowWindow(SW_HIDE); - int zoomedWidth = imageModel.GetWidth() * toolsModel.GetZoom() / 1000; - int zoomedHeight = imageModel.GetHeight() * toolsModel.GetZoom() / 1000; + int zoomedWidth = Zoomed(imageModel.GetWidth()); + int zoomedHeight = Zoomed(imageModel.GetHeight()); imageArea.MoveWindow(3, 3, zoomedWidth, zoomedHeight, FALSE); scrollboxWindow.Invalidate(TRUE); @@ -76,26 +76,26 @@ LRESULT CImgAreaWindow::OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH 0, 0, 3, 3, TRUE); sizeboxCenterTop.MoveWindow( - imgXRes * toolsModel.GetZoom() / 2000 + 3 * 3 / 4, + Zoomed(imgXRes) / 2 + 3 * 3 / 4, 0, 3, 3, TRUE); sizeboxRightTop.MoveWindow( - imgXRes * toolsModel.GetZoom() / 1000 + 3, + Zoomed(imgXRes) + 3, 0, 3, 3, TRUE); sizeboxLeftCenter.MoveWindow( 0, - imgYRes * toolsModel.GetZoom() / 2000 + 3 * 3 / 4, 3, 3, TRUE); + Zoomed(imgYRes) / 2 + 3 * 3 / 4, 3, 3, TRUE); sizeboxRightCenter.MoveWindow( - imgXRes * toolsModel.GetZoom() / 1000 + 3, - imgYRes * toolsModel.GetZoom() / 2000 + 3 * 3 / 4, 3, 3, TRUE); + Zoomed(imgXRes) + 3, + Zoomed(imgYRes) / 2 + 3 * 3 / 4, 3, 3, TRUE); sizeboxLeftBottom.MoveWindow( 0, - imgYRes * toolsModel.GetZoom() / 1000 + 3, 3, 3, TRUE); + Zoomed(imgYRes) + 3, 3, 3, TRUE); sizeboxCenterBottom.MoveWindow( - imgXRes * toolsModel.GetZoom() / 2000 + 3 * 3 / 4, - imgYRes * toolsModel.GetZoom() / 1000 + 3, 3, 3, TRUE); + Zoomed(imgXRes) / 2 + 3 * 3 / 4, + Zoomed(imgYRes) + 3, 3, 3, TRUE); sizeboxRightBottom.MoveWindow( - imgXRes * toolsModel.GetZoom() / 1000 + 3, - imgYRes * toolsModel.GetZoom() / 1000 + 3, 3, 3, TRUE); + Zoomed(imgXRes) + 3, + Zoomed(imgYRes) + 3, 3, 3, TRUE); UpdateScrollbox(); return 0; } @@ -106,7 +106,7 @@ LRESULT CImgAreaWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& b HDC hdc = GetDC(); int imgXRes = imageModel.GetWidth(); int imgYRes = imageModel.GetHeight(); - StretchBlt(hdc, 0, 0, imgXRes * toolsModel.GetZoom() / 1000, imgYRes * toolsModel.GetZoom() / 1000, imageModel.GetDC(), 0, 0, imgXRes, + StretchBlt(hdc, 0, 0, Zoomed(imgXRes), Zoomed(imgYRes), imageModel.GetDC(), 0, 0, imgXRes, imgYRes, SRCCOPY); if (showGrid && (toolsModel.GetZoom() >= 4000)) { @@ -114,13 +114,13 @@ LRESULT CImgAreaWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& b int counter; for(counter = 0; counter <= imgYRes; counter++) { - MoveToEx(hdc, 0, counter * toolsModel.GetZoom() / 1000, NULL); - LineTo(hdc, imgXRes * toolsModel.GetZoom() / 1000, counter * toolsModel.GetZoom() / 1000); + MoveToEx(hdc, 0, Zoomed(counter), NULL); + LineTo(hdc, Zoomed(imgXRes), Zoomed(counter)); } for(counter = 0; counter <= imgXRes; counter++) { - MoveToEx(hdc, counter * toolsModel.GetZoom() / 1000, 0, NULL); - LineTo(hdc, counter * toolsModel.GetZoom() / 1000, imgYRes * toolsModel.GetZoom() / 1000); + MoveToEx(hdc, Zoomed(counter), 0, NULL); + LineTo(hdc, Zoomed(counter), Zoomed(imgYRes)); } DeleteObject(SelectObject(hdc, oldPen)); } @@ -161,7 +161,7 @@ LRESULT CImgAreaWindow::OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, B { SetCapture(); drawing = TRUE; - startPaintingL(imageModel.GetDC(), GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), + startPaintingL(imageModel.GetDC(), UnZoomed(GET_X_LPARAM(lParam)), UnZoomed(GET_Y_LPARAM(lParam)), paletteModel.GetFgColor(), paletteModel.GetBgColor()); } else @@ -181,7 +181,7 @@ LRESULT CImgAreaWindow::OnRButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, B { SetCapture(); drawing = TRUE; - startPaintingR(imageModel.GetDC(), GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), + startPaintingR(imageModel.GetDC(), UnZoomed(GET_X_LPARAM(lParam)), UnZoomed(GET_Y_LPARAM(lParam)), paletteModel.GetFgColor(), paletteModel.GetBgColor()); } else @@ -199,13 +199,13 @@ LRESULT CImgAreaWindow::OnLButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO { if (drawing) { - endPaintingL(imageModel.GetDC(), GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), paletteModel.GetFgColor(), + endPaintingL(imageModel.GetDC(), UnZoomed(GET_X_LPARAM(lParam)), UnZoomed(GET_Y_LPARAM(lParam)), paletteModel.GetFgColor(), paletteModel.GetBgColor()); Invalidate(FALSE); if (toolsModel.GetActiveTool() == TOOL_COLOR) { COLORREF tempColor = - GetPixel(imageModel.GetDC(), GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom()); + GetPixel(imageModel.GetDC(), UnZoomed(GET_X_LPARAM(lParam)), UnZoomed(GET_Y_LPARAM(lParam))); if (tempColor != CLR_INVALID) paletteModel.SetFgColor(tempColor); } @@ -234,12 +234,12 @@ void CImgAreaWindow::cancelDrawing() // FIXME: dirty hack if (GetKeyState(VK_LBUTTON) < 0) { - endPaintingL(imageModel.GetDC(), pt.x * 1000 / toolsModel.GetZoom(), pt.y * 1000 / toolsModel.GetZoom(), paletteModel.GetFgColor(), + endPaintingL(imageModel.GetDC(), UnZoomed(pt.x), UnZoomed(pt.y), paletteModel.GetFgColor(), paletteModel.GetBgColor()); } else if (GetKeyState(VK_RBUTTON) < 0) { - endPaintingR(imageModel.GetDC(), pt.x * 1000 / toolsModel.GetZoom(), pt.y * 1000 / toolsModel.GetZoom(), paletteModel.GetFgColor(), + endPaintingR(imageModel.GetDC(), UnZoomed(pt.x), UnZoomed(pt.y), paletteModel.GetFgColor(), paletteModel.GetBgColor()); } imageModel.Undo(); @@ -283,13 +283,13 @@ LRESULT CImgAreaWindow::OnRButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO { if (drawing) { - endPaintingR(imageModel.GetDC(), GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), paletteModel.GetFgColor(), + endPaintingR(imageModel.GetDC(), UnZoomed(GET_X_LPARAM(lParam)), UnZoomed(GET_Y_LPARAM(lParam)), paletteModel.GetFgColor(), paletteModel.GetBgColor()); Invalidate(FALSE); if (toolsModel.GetActiveTool() == TOOL_COLOR) { COLORREF tempColor = - GetPixel(imageModel.GetDC(), GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(), GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom()); + GetPixel(imageModel.GetDC(), UnZoomed(GET_X_LPARAM(lParam)), UnZoomed(GET_Y_LPARAM(lParam))); if (tempColor != CLR_INVALID) paletteModel.SetBgColor(tempColor); } @@ -302,8 +302,8 @@ LRESULT CImgAreaWindow::OnRButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO LRESULT CImgAreaWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { - LONG xNow = GET_X_LPARAM(lParam) * 1000 / toolsModel.GetZoom(); - LONG yNow = GET_Y_LPARAM(lParam) * 1000 / toolsModel.GetZoom(); + LONG xNow = UnZoomed(GET_X_LPARAM(lParam)); + LONG yNow = UnZoomed(GET_Y_LPARAM(lParam)); if ((!drawing) || (toolsModel.GetActiveTool() <= TOOL_AIRBRUSH)) { TRACKMOUSEEVENT tme; diff --git a/base/applications/mspaint/mouse.cpp b/base/applications/mspaint/mouse.cpp index b5c09b092af..10b5202dda4 100644 --- a/base/applications/mspaint/mouse.cpp +++ b/base/applications/mspaint/mouse.cpp @@ -15,8 +15,8 @@ void placeSelWin() { - selectionWindow.MoveWindow(selectionModel.GetDestRectLeft() * toolsModel.GetZoom() / 1000, selectionModel.GetDestRectTop() * toolsModel.GetZoom() / 1000, - selectionModel.GetDestRectWidth() * toolsModel.GetZoom() / 1000 + 6, selectionModel.GetDestRectHeight() * toolsModel.GetZoom() / 1000 + 6, TRUE); + selectionWindow.MoveWindow(Zoomed(selectionModel.GetDestRectLeft()), Zoomed(selectionModel.GetDestRectTop()), + Zoomed(selectionModel.GetDestRectWidth()) + 6, Zoomed(selectionModel.GetDestRectHeight()) + 6, TRUE); selectionWindow.BringWindowToTop(); imageArea.InvalidateRect(NULL, FALSE); } diff --git a/base/applications/mspaint/precomp.h b/base/applications/mspaint/precomp.h index f4720837fff..6bdbafceb30 100644 --- a/base/applications/mspaint/precomp.h +++ b/base/applications/mspaint/precomp.h @@ -21,7 +21,6 @@ #include <shellapi.h> #include <htmlhelp.h> -#include "common.h" #include "definitions.h" #include "drawing.h" #include "dib.h" @@ -43,5 +42,6 @@ #include "toolsettings.h" #include "toolsmodel.h" #include "winproc.h" +#include "common.h" #endif /* _MSPAINT_H */ diff --git a/base/applications/mspaint/scrollbox.cpp b/base/applications/mspaint/scrollbox.cpp index 351c59c717d..6466b8b7f85 100644 --- a/base/applications/mspaint/scrollbox.cpp +++ b/base/applications/mspaint/scrollbox.cpp @@ -132,8 +132,8 @@ LRESULT CScrollboxWindow::OnHScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO } scrollboxWindow.SetScrollInfo(SB_HORZ, &si); scrlClientWindow.MoveWindow(-scrollboxWindow.GetScrollPos(SB_HORZ), - -scrollboxWindow.GetScrollPos(SB_VERT), imageModel.GetWidth() * toolsModel.GetZoom() / 1000 + 6, - imageModel.GetHeight() * toolsModel.GetZoom() / 1000 + 6, TRUE); + -scrollboxWindow.GetScrollPos(SB_VERT), Zoomed(imageModel.GetWidth()) + 6, + Zoomed(imageModel.GetHeight()) + 6, TRUE); } return 0; } @@ -167,8 +167,8 @@ LRESULT CScrollboxWindow::OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO } scrollboxWindow.SetScrollInfo(SB_VERT, &si); scrlClientWindow.MoveWindow(-scrollboxWindow.GetScrollPos(SB_HORZ), - -scrollboxWindow.GetScrollPos(SB_VERT), imageModel.GetWidth() * toolsModel.GetZoom() / 1000 + 6, - imageModel.GetHeight() * toolsModel.GetZoom() / 1000 + 6, TRUE); + -scrollboxWindow.GetScrollPos(SB_VERT), Zoomed(imageModel.GetWidth()) + 6, + Zoomed(imageModel.GetHeight()) + 6, TRUE); } return 0; } diff --git a/base/applications/mspaint/selection.cpp b/base/applications/mspaint/selection.cpp index 45d72e8fb21..e058da3e67c 100644 --- a/base/applications/mspaint/selection.cpp +++ b/base/applications/mspaint/selection.cpp @@ -99,8 +99,8 @@ LRESULT CSelectionWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& { HDC hDC = GetDC(); DefWindowProc(WM_PAINT, wParam, lParam); - SelectionFrame(hDC, 1, 1, selectionModel.GetDestRectWidth() * toolsModel.GetZoom() / 1000 + 5, - selectionModel.GetDestRectHeight() * toolsModel.GetZoom() / 1000 + 5, + SelectionFrame(hDC, 1, 1, Zoomed(selectionModel.GetDestRectWidth()) + 5, + Zoomed(selectionModel.GetDestRectHeight()) + 5, m_dwSystemSelectionColor); ReleaseDC(hDC); } @@ -161,8 +161,8 @@ LRESULT CSelectionWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, B imageModel.ResetToPrevious(); m_ptFrac.x += GET_X_LPARAM(lParam) - m_ptPos.x; m_ptFrac.y += GET_Y_LPARAM(lParam) - m_ptPos.y; - m_ptDelta.x += m_ptFrac.x * 1000 / toolsModel.GetZoom(); - m_ptDelta.y += m_ptFrac.y * 1000 / toolsModel.GetZoom(); + m_ptDelta.x += UnZoomed(m_ptFrac.x); + m_ptDelta.y += UnZoomed(m_ptFrac.y); if (toolsModel.GetZoom() < 1000) { m_ptFrac.x = 0; @@ -170,8 +170,8 @@ LRESULT CSelectionWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, B } else { - m_ptFrac.x -= (m_ptFrac.x * 1000 / toolsModel.GetZoom()) * toolsModel.GetZoom() / 1000; - m_ptFrac.y -= (m_ptFrac.y * 1000 / toolsModel.GetZoom()) * toolsModel.GetZoom() / 1000; + m_ptFrac.x -= Zoomed(UnZoomed(m_ptFrac.x)); + m_ptFrac.y -= Zoomed(UnZoomed(m_ptFrac.y)); } selectionModel.ModifyDestRect(m_ptDelta, m_iAction); @@ -197,8 +197,8 @@ LRESULT CSelectionWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, B } else { - int w = selectionModel.GetDestRectWidth() * toolsModel.GetZoom() / 1000 + 6; - int h = selectionModel.GetDestRectHeight() * toolsModel.GetZoom() / 1000 + 6; + int w = Zoomed(selectionModel.GetDestRectWidth()) + 6; + int h = Zoomed(selectionModel.GetDestRectHeight()) + 6; m_ptPos.x = GET_X_LPARAM(lParam); m_ptPos.y = GET_Y_LPARAM(lParam); SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) NULL); diff --git a/base/applications/mspaint/sizebox.cpp b/base/applications/mspaint/sizebox.cpp index 71fcb6aca2d..2ebbbcc70a3 100644 --- a/base/applications/mspaint/sizebox.cpp +++ b/base/applications/mspaint/sizebox.cpp @@ -48,8 +48,8 @@ LRESULT CSizeboxWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO short yRel; int imgXRes = imageModel.GetWidth(); int imgYRes = imageModel.GetHeight(); - xRel = (GET_X_LPARAM(lParam) - xOrig) * 1000 / toolsModel.GetZoom(); - yRel = (GET_Y_LPARAM(lParam) - yOrig) * 1000 / toolsModel.GetZoom(); + xRel = UnZoomed(GET_X_LPARAM(lParam) - xOrig); + yRel = UnZoomed(GET_Y_LPARAM(lParam) - yOrig); if (m_hWnd == sizeboxLeftTop.m_hWnd) strSize.Format(_T("%d x %d"), imgXRes - xRel, imgYRes - yRel); if (m_hWnd == sizeboxCenterTop.m_hWnd) diff --git a/base/applications/mspaint/toolsmodel.cpp b/base/applications/mspaint/toolsmodel.cpp index ebd7fee883b..26621e75ee8 100644 --- a/base/applications/mspaint/toolsmodel.cpp +++ b/base/applications/mspaint/toolsmodel.cpp @@ -101,7 +101,7 @@ void ToolsModel::SetBackgroundTransparent(BOOL bTransparent) NotifyToolSettingsChanged(); } -int ToolsModel::GetZoom() +int ToolsModel::GetZoom() const { return m_zoom; } diff --git a/base/applications/mspaint/toolsmodel.h b/base/applications/mspaint/toolsmodel.h index 49ab71bcc38..3b7205634f6 100644 --- a/base/applications/mspaint/toolsmodel.h +++ b/base/applications/mspaint/toolsmodel.h @@ -42,6 +42,6 @@ public: void SetRubberRadius(int nRubberRadius); BOOL IsBackgroundTransparent(); void SetBackgroundTransparent(BOOL bTransparent); - int GetZoom(); + int GetZoom() const; void SetZoom(int nZoom); }; diff --git a/base/applications/mspaint/winproc.cpp b/base/applications/mspaint/winproc.cpp index 686f2eec5d0..1303b258c92 100644 --- a/base/applications/mspaint/winproc.cpp +++ b/base/applications/mspaint/winproc.cpp @@ -39,7 +39,7 @@ zoomTo(int newZoom, int mouseX, int mouseY) toolsModel.SetZoom(newZoom); selectionWindow.ShowWindow(SW_HIDE); - imageArea.MoveWindow(3, 3, imageModel.GetWidth() * toolsModel.GetZoom() / 1000, imageModel.GetHeight() * toolsModel.GetZoom() / 1000, FALSE); + imageArea.MoveWindow(3, 3, Zoomed(imageModel.GetWidth()), Zoomed(imageModel.GetHeight()), FALSE); scrollboxWindow.Invalidate(TRUE); imageArea.Invalidate(FALSE);
2 years, 12 months
1
0
0
0
← Newer
1
...
4
5
6
7
8
9
10
...
16
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Results per page:
10
25
50
100
200