- Swap mouse buttons on-the-fly.

- Add mouse button preview icons.
- Change double click speed on-the-fly.
- Add double click test icons.
- Fix double click speed calculation.
- Get rid of rsrc.rc.

svn path=/trunk/; revision=26338
This commit is contained in:
Eric Kohl 2007-04-14 14:26:46 +00:00
parent d9f8bb326a
commit 8b3e3dd6c0
16 changed files with 438 additions and 296 deletions

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Nastavení tlačítek", -1, 5, 5, 230, 70 GROUPBOX "Nastavení tlačítek", -1, 5, 5, 230, 70
CHECKBOX "Z&aměnit levé a pravé tlačítko", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "Z&aměnit levé a pravé tlačítko", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Zaškrtnutím toto políčka nastavíte pravé tlačítko jako primární pro funkce jako výběr nebo přetažení.", -1, 10, 30, 140, 30 LTEXT "Zaškrtnutím toto políčka nastavíte pravé tlačítko jako primární pro funkce jako výběr nebo přetažení.", -1, 10, 30, 150, 30
GROUPBOX "Rychlost poklepání", -1, 5, 75, 230, 70 GROUPBOX "Rychlost poklepání", -1, 5, 75, 230, 70
LTEXT "Poklepejte na složku pro otestování nastavení. Pokud se složka neotevře, zkuste nižší rychlost.", -1, 10, 85, 160, 30 LTEXT "Poklepejte na složku pro otestování nastavení. Pokud se složka neotevře, zkuste nižší rychlost.", -1, 10, 85, 150, 30
LTEXT "&Rychlost: Malá", -1, 10, 120, 90, 8 LTEXT "&Rychlost: Malá", -1, 10, 120, 90, 8
LTEXT "Velká", -1, 140, 120, 30, 8 LTEXT "Velká", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "Funkce ClickLock", -1, 5, 150, 230, 70 GROUPBOX "Funkce ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Zapnout funkci ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 100, 20 CHECKBOX "&Zapnout funkci ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 100, 20
PUSHBUTTON "&Nastavení...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Nastavení...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -55,17 +55,17 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Tastenkonfiguration", -1, 5, 5, 230, 70 GROUPBOX "Tastenkonfiguration", -1, 5, 5, 230, 70
CHECKBOX "&Primäre und sekundäre Taste umschalten", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 145, 10 CHECKBOX "&Primäre und sekundäre Taste umschalten", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 145, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Aktivieren Sie dieses Kontrollkästchen, um die rechte Maustaste für primäre Funktionen, wie Auswählen und Ziehen zu verwenden.", -1, 10, 30, 140, 31 LTEXT "Aktivieren Sie dieses Kontrollkästchen, um die rechte Maustaste für primäre Funktionen, wie Auswählen und Ziehen zu verwenden.", -1, 10, 30, 150, 31
GROUPBOX "Doppelklickgeschwindigkeit", -1, 5, 75, 230, 70 GROUPBOX "Doppelklickgeschwindigkeit", -1, 5, 75, 230, 70
LTEXT "Doppelklicken Sie auf den Ordner, um die Einstellung zu testen. Verwenden Sie eine langsamere Einstellung, wenn der Ordner sich nicht öffnen oder schließen lässt.", -1, 10, 85, 160, 32 LTEXT "Doppelklicken Sie auf den Ordner, um die Einstellung zu testen. Verwenden Sie eine langsamere Einstellung, wenn der Ordner sich nicht öffnen oder schließen lässt.", -1, 10, 85, 150, 32
LTEXT "Langsam", -1, 10, 120, 90, 8 LTEXT "Langsam", -1, 10, 120, 90, 8
LTEXT "Schnell", -1, 140, 120, 30, 8 LTEXT "Schnell", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "KlickEinrasten", -1, 5, 150, 230, 70 GROUPBOX "KlickEinrasten", -1, 5, 150, 230, 70
CHECKBOX "&KlickEinrasten aktivieren", IDC_CHECK_CLICK_LOCK, 10, 160, 91, 20 CHECKBOX "&KlickEinrasten aktivieren", IDC_CHECK_CLICK_LOCK, 10, 160, 91, 20
PUSHBUTTON "&Einstellungen...", IDC_BUTTON_CLICK_LOCK, 167, 160, 53, 10 PUSHBUTTON "&Einstellungen...", IDC_BUTTON_CLICK_LOCK, 167, 160, 60, 14
LTEXT "Ermöglicht das Markieren oder Ziehen, ohne die Maustaste ständig gedrückt zu halten. Drücken Sie die Maustaste kurzzeitig, um die Funktion zu verwenden. Klicken Sie die Maustaste erneut, um die Tastenfeststellung zu beenden.", -1, 10, 180, 190, 33 LTEXT "Ermöglicht das Markieren oder Ziehen, ohne die Maustaste ständig gedrückt zu halten. Drücken Sie die Maustaste kurzzeitig, um die Funktion zu verwenden. Klicken Sie die Maustaste erneut, um die Tastenfeststellung zu beenden.", -1, 10, 180, 190, 33
END END

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Button configuration", -1, 5, 5, 230, 70 GROUPBOX "Button configuration", -1, 5, 5, 230, 70
CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 140, 30 LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 150, 30
GROUPBOX "Double-click speed", -1, 5, 75, 230, 70 GROUPBOX "Double-click speed", -1, 5, 75, 230, 70
LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 160, 30 LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 150, 30
LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8 LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8
LTEXT "Fast", -1, 140, 120, 30, 8 LTEXT "Fast", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "ClickLock", -1, 5, 150, 230, 70 GROUPBOX "ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Button configuration", -1, 5, 5, 230, 70 GROUPBOX "Button configuration", -1, 5, 5, 230, 70
CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 140, 30 LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 150, 30
GROUPBOX "Double-click speed", -1, 5, 75, 230, 70 GROUPBOX "Double-click speed", -1, 5, 75, 230, 70
LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 160, 30 LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 150, 30
LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8 LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8
LTEXT "Fast", -1, 140, 120, 30, 8 LTEXT "Fast", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "ClickLock", -1, 5, 150, 230, 70 GROUPBOX "ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Configuration des boutons", -1, 5, 5, 230, 70 GROUPBOX "Configuration des boutons", -1, 5, 5, 230, 70
CHECKBOX "&Inverser les boutons gauche et droite", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Inverser les boutons gauche et droite", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Cochez cette case pour faire du bouton droit le bouton principal pour les fonctions telles que la sélection et le déplacement.", -1, 10, 30, 140, 30 LTEXT "Cochez cette case pour faire du bouton droit le bouton principal pour les fonctions telles que la sélection et le déplacement.", -1, 10, 30, 150, 30
GROUPBOX "Vitesse du double-click ", -1, 5, 75, 230, 70 GROUPBOX "Vitesse du double-click ", -1, 5, 75, 230, 70
LTEXT "Double-cliquer le dossier pour tester le paramètre. Si le dossier ne s'ouvre pas ou se ferme, essayez un réglage plus lent.", -1, 10, 85, 135, 30 LTEXT "Double-cliquer le dossier pour tester le paramètre. Si le dossier ne s'ouvre pas ou se ferme, essayez un réglage plus lent.", -1, 10, 85, 150, 30
LTEXT "Vite&sse: Lente", -1, 10, 120, 90, 8 LTEXT "Vite&sse: Lente", -1, 10, 120, 90, 8
LTEXT "Rapide", -1, 140, 120, 30, 8 LTEXT "Rapide", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "Verrouillage clic", -1, 5, 150, 230, 70 GROUPBOX "Verrouillage clic", -1, 5, 150, 230, 70
CHECKBOX "&Activer le Verrouillage clic", IDC_CHECK_CLICK_LOCK, 10, 160, 95, 20 CHECKBOX "&Activer le Verrouillage clic", IDC_CHECK_CLICK_LOCK, 10, 160, 95, 20
PUSHBUTTON "&Paramètres...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 15 PUSHBUTTON "&Paramètres...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 15

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Button configuration", -1, 5, 5, 230, 70 GROUPBOX "Button configuration", -1, 5, 5, 230, 70
CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 140, 30 LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 150, 30
GROUPBOX "Double-click speed", -1, 5, 75, 230, 70 GROUPBOX "Double-click speed", -1, 5, 75, 230, 70
LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 160, 30 LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 150, 30
LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8 LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8
LTEXT "Fast", -1, 140, 120, 30, 8 LTEXT "Fast", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "ClickLock", -1, 5, 150, 230, 70 GROUPBOX "ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Konfigurasi tombol", -1, 5, 5, 230, 70 GROUPBOX "Konfigurasi tombol", -1, 5, 5, 230, 70
CHECKBOX "&Saklar primer dan tombol sekunder", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Saklar primer dan tombol sekunder", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Pilih kotak centang ini untuk membuat tombol yang benar yang biasa anda pakai fungsi primer seperi memilih dan menggeser", -1, 10, 30, 140, 30 LTEXT "Pilih kotak centang ini untuk membuat tombol yang benar yang biasa anda pakai fungsi primer seperi memilih dan menggeser", -1, 10, 30, 150, 30
GROUPBOX "Kecepatan klik-dobel", -1, 5, 75, 230, 70 GROUPBOX "Kecepatan klik-dobel", -1, 5, 75, 230, 70
LTEXT "Klik-dobel folder untuk menguji setelan anda. Jika folder tidak membuka atau menutup, coba menggunakan setelan lebih lambat.", -1, 10, 85, 160, 30 LTEXT "Klik-dobel folder untuk menguji setelan anda. Jika folder tidak membuka atau menutup, coba menggunakan setelan lebih lambat.", -1, 10, 85, 150, 30
LTEXT "Ke&cepatan: Lambat", -1, 10, 120, 90, 8 LTEXT "Ke&cepatan: Lambat", -1, 10, 120, 90, 8
LTEXT "Cepat", -1, 140, 120, 30, 8 LTEXT "Cepat", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "Kunci Klik", -1, 5, 150, 230, 70 GROUPBOX "Kunci Klik", -1, 5, 150, 230, 70
CHECKBOX "&Hidupkan KunciKlik", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Hidupkan KunciKlik", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Setelan...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Setelan...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -55,14 +55,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Configurazione dei bottoni", -1, 5, 5, 230, 70 GROUPBOX "Configurazione dei bottoni", -1, 5, 5, 230, 70
CHECKBOX "&Scambia il bottone secondario e primario", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Scambia il bottone secondario e primario", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Assegna al tasto destro del mouse le funzioni principali come ad esempio la selezione e il trascinamento", -1, 10, 30, 140, 30 LTEXT "Assegna al tasto destro del mouse le funzioni principali come ad esempio la selezione e il trascinamento", -1, 10, 30, 150, 30
GROUPBOX "Velocità del doppio clic", -1, 5, 75, 230, 70 GROUPBOX "Velocità del doppio clic", -1, 5, 75, 230, 70
LTEXT "Fai doppio clic sulla cartella per verificare le impostazioni. Se la cartella non si apre o chiude, prova a usare una velocità minore.", -1, 10, 85, 160, 30 LTEXT "Fai doppio clic sulla cartella per verificare le impostazioni. Se la cartella non si apre o chiude, prova a usare una velocità minore.", -1, 10, 85, 150, 30
LTEXT "Velocità: Lenta", -1, 10, 120, 90, 8 LTEXT "Velocità: Lenta", -1, 10, 120, 90, 8
LTEXT "Veloce", -1, 140, 120, 30, 8 LTEXT "Veloce", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "Blocca clic", -1, 5, 150, 230, 70 GROUPBOX "Blocca clic", -1, 5, 150, 230, 70
CHECKBOX "&Abilita Blocca Clic", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Abilita Blocca Clic", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Impostazioni...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Impostazioni...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Button configuration", -1, 5, 5, 230, 70 GROUPBOX "Button configuration", -1, 5, 5, 230, 70
CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 140, 30 LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 150, 30
GROUPBOX "Double-click speed", -1, 5, 75, 230, 70 GROUPBOX "Double-click speed", -1, 5, 75, 230, 70
LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 160, 30 LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 150, 30
LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8 LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8
LTEXT "Fast", -1, 140, 120, 30, 8 LTEXT "Fast", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "ClickLock", -1, 5, 150, 230, 70 GROUPBOX "ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -52,14 +52,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Button configuration", -1, 5, 5, 230, 70 GROUPBOX "Button configuration", -1, 5, 5, 230, 70
CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 140, 30 LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 150, 30
GROUPBOX "Double-click speed", -1, 5, 75, 230, 70 GROUPBOX "Double-click speed", -1, 5, 75, 230, 70
LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 160, 30 LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 150, 30
LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8 LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8
LTEXT "Fast", -1, 140, 120, 30, 8 LTEXT "Fast", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "ClickLock", -1, 5, 150, 230, 70 GROUPBOX "ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -53,14 +53,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Button configuration", -1, 5, 5, 230, 70 GROUPBOX "Button configuration", -1, 5, 5, 230, 70
CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Switch primary and secondary buttons", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 140, 30 LTEXT "Select this checkbox to make the button the right one the one you use for primary functions such as selecting and dragging", -1, 10, 30, 150, 30
GROUPBOX "Double-click speed", -1, 5, 75, 230, 70 GROUPBOX "Double-click speed", -1, 5, 75, 230, 70
LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 160, 30 LTEXT "Double-click the folder to test your settings. If the folder does not open or close, try using a slower setting.", -1, 10, 85, 150, 30
LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8 LTEXT "Spee&d: Slow", -1, 10, 120, 90, 8
LTEXT "Fast", -1, 140, 120, 30, 8 LTEXT "Fast", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "ClickLock", -1, 5, 150, 230, 70 GROUPBOX "ClickLock", -1, 5, 150, 230, 70
CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&Turn on ClickLock", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Settings...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -61,14 +61,14 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "Êîíô³ãóðàö³ÿ êíîïîê", -1, 5, 5, 230, 70 GROUPBOX "Êîíô³ãóðàö³ÿ êíîïîê", -1, 5, 5, 230, 70
CHECKBOX "&Ïîì³íÿòè ïðèçíà÷åííÿ êíîïîê", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10 CHECKBOX "&Ïîì³íÿòè ïðèçíà÷åííÿ êíîïîê", IDC_SWAP_MOUSE_BUTTONS, 10, 15, 140, 10
CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_OWNERDRAW, 155, 15, 75, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_SWAP_MOUSE, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 165, 15, 65, 57, WS_EX_STATICEDGE
LTEXT "Встановіть цей прапорець, щоб призначити праву кнопку для виконання таких основних функцій, як вибір і перетягування", -1, 10, 30, 140, 30 LTEXT "Âñòàíîâ³òü öåé ïðàïîðåöü, ùîá ïðèçíà÷èòè ïðàâó êíîïêó äëÿ âèêîíàííÿ òàêèõ îñíîâíèõ ôóíêö³é, ÿê âèá³ð ³ ïåðåòÿãóâàííÿ", -1, 10, 30, 150, 30
GROUPBOX "Øâèäê³ñòü ïîäâ³éíîãî êëàöàííÿ", -1, 5, 75, 230, 70 GROUPBOX "Øâèäê³ñòü ïîäâ³éíîãî êëàöàííÿ", -1, 5, 75, 230, 70
LTEXT "Зробіть подвійне клацання по папці. Якщо папка не відкривається або не закривається, виберіть нижчу швидкість.", -1, 10, 85, 160, 30 LTEXT "Çðîá³òü ïîäâ³éíå êëàöàííÿ ïî ïàïö³. ßêùî ïàïêà íå â³äêðèâàºòüñÿ àáî íå çàêðèâàºòüñÿ, âèáåð³òü íèæ÷ó øâèäê³ñòü.", -1, 10, 85, 150, 30
LTEXT "&Øâèäê³ñòü: Íèæ÷å", -1, 10, 120, 90, 8 LTEXT "&Øâèäê³ñòü: Íèæ÷å", -1, 10, 120, 90, 8
LTEXT "Âèùå", -1, 140, 120, 30, 8 LTEXT "Âèùå", -1, 140, 120, 30, 8
CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17 CONTROL "",IDC_SLIDER_DOUBLE_CLICK_SPEED, "msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP, 60, 120, 70, 17
CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_OWNERDRAW, 165, 85, 65, 57, WS_EX_STATICEDGE CONTROL "", IDC_IMAGE_DOUBLE_CLICK_SPEED, "Static", SS_ICON | SS_NOTIFY | SS_CENTERIMAGE | WS_VISIBLE, 165, 85, 65, 57, WS_EX_STATICEDGE
GROUPBOX "Çàë³ïàí³ÿ", -1, 5, 150, 230, 70 GROUPBOX "Çàë³ïàí³ÿ", -1, 5, 150, 230, 70
CHECKBOX "&³âìêíóòè Çàë³ïàí³ÿ", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20 CHECKBOX "&³âìêíóòè Çàë³ïàí³ÿ", IDC_CHECK_CLICK_LOCK, 10, 160, 70, 20
PUSHBUTTON "&Ïàðàìåòðè...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10 PUSHBUTTON "&Ïàðàìåòðè...", IDC_BUTTON_CLICK_LOCK, 170, 160, 50, 10

View file

@ -3,14 +3,36 @@
#include <windows.h> #include <windows.h>
#include "resource.h" #include "resource.h"
/* define language neutral resources */
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#define REACTOS_VERSION_DLL #define REACTOS_VERSION_DLL
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Sample Control Panel\0" #define REACTOS_STR_FILE_DESCRIPTION "ReactOS Sample Control Panel\0"
#define REACTOS_STR_INTERNAL_NAME "main\0" #define REACTOS_STR_INTERNAL_NAME "main\0"
#define REACTOS_STR_ORIGINAL_FILENAME "main.cpl\0" #define REACTOS_STR_ORIGINAL_FILENAME "main.cpl\0"
#include <reactos/version.rc> #include <reactos/version.rc>
IDC_CPLICON_1 ICON "resources/mouse.ico" IDC_CPLICON_1 ICON "resources/mouse.ico"
IDC_CPLICON_2 ICON "resources/keyboard.ico" IDC_CPLICON_2 ICON "resources/keyboard.ico"
IDI_FOLDER_OPEN ICON "resources/folder_open.ico"
IDI_FOLDER_CLOSED ICON "resources/folder_closed.ico"
IDI_MOUSE_LEFT ICON "resources/mouse_left.ico"
IDI_MOUSE_RIGHT ICON "resources/mouse_right.ico"
#include "rsrc.rc"
/* include localised resources */
#include "lang/cs-CZ.rc"
#include "lang/de-DE.rc"
#include "lang/en-US.rc"
#include "lang/es-ES.rc"
#include "lang/fr-FR.rc"
#include "lang/hu-HU.rc"
#include "lang/id-ID.rc"
#include "lang/it-IT.rc"
#include "lang/ja-JP.rc"
#include "lang/nl-NL.rc"
#include "lang/ru-RU.rc"
#include "lang/uk-UA.rc"

View file

@ -1,6 +1,6 @@
/* /*
* ReactOS * ReactOS
* Copyright (C) 2004 ReactOS Team * Copyright (C) 2004, 2007 ReactOS Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -27,7 +27,6 @@
//TODO: //TODO:
//detect slider changes - for apply stuff //detect slider changes - for apply stuff
//implement Double-Click Speed measuring
// cursor icon shows - may need overriden items // cursor icon shows - may need overriden items
// implement Pointer-APPLY // implement Pointer-APPLY
// implement Pointer-Browser // implement Pointer-Browser
@ -57,15 +56,30 @@
#define MAX_DOUBLE_CLICK_SPEED 900 #define MAX_DOUBLE_CLICK_SPEED 900
#define DEFAULT_WHEEL_SCROLL_LINES 3 #define DEFAULT_WHEEL_SCROLL_LINES 3
typedef struct _BUTTON_DATA
{
ULONG g_SwapMouseButtons;
ULONG g_OrigSwapMouseButtons;
ULONG g_DoubleClickSpeed; // = DEFAULT_DOUBLE_CLICK_SPEED;
ULONG g_OrigDoubleClickSpeed;
BOOL g_ClickLockEnabled; // = 0;
DWORD g_ClickLockTime; // = DEFAULT_CLICK_LOCK_TIME;
HICON hButtonLeft;
HICON hButtonRight;
HICON hIcon1;
HICON hIcon2;
BOOL bClicked;
} BUTTON_DATA, *PBUTTON_DATA;
ULONG g_Initialized = 0; ULONG g_Initialized = 0;
UINT g_WheelScrollLines = 5; UINT g_WheelScrollLines = 5;
ULONG g_SwapMouseButtons = 0;
ULONG g_DoubleClickSpeed = DEFAULT_DOUBLE_CLICK_SPEED;
BOOL g_ClickLockEnabled = 0;
BOOL g_DropShadow = 0; BOOL g_DropShadow = 0;
DWORD g_ClickLockTime = DEFAULT_CLICK_LOCK_TIME;
ULONG g_MouseSensitivity = DEFAULT_MOUSE_SENSITIVITY; ULONG g_MouseSensitivity = DEFAULT_MOUSE_SENSITIVITY;
ULONG g_MouseSpeed = 1; ULONG g_MouseSpeed = 1;
ULONG g_MouseThreshold1 = DEFAULT_MOUSE_THRESHOLD1; ULONG g_MouseThreshold1 = DEFAULT_MOUSE_THRESHOLD1;
@ -96,6 +110,7 @@ TCHAR g_szHand[MAX_PATH];
TCHAR g_szNewScheme[MAX_PATH]; TCHAR g_szNewScheme[MAX_PATH];
/* Property page dialog callback */ /* Property page dialog callback */
static INT_PTR CALLBACK static INT_PTR CALLBACK
MouseHardwareProc(IN HWND hwndDlg, MouseHardwareProc(IN HWND hwndDlg,
@ -112,7 +127,6 @@ MouseHardwareProc(IN HWND hwndDlg,
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
/* create the hardware page */ /* create the hardware page */
DeviceCreateHardwarePageEx(hwndDlg, DeviceCreateHardwarePageEx(hwndDlg,
Guids, Guids,
@ -120,13 +134,13 @@ MouseHardwareProc(IN HWND hwndDlg,
HWPD_STANDARDLIST); HWPD_STANDARDLIST);
break; break;
} }
}
return FALSE; return FALSE;
} }
BOOL InitializeMouse() static BOOL
InitializeMouse(VOID)
{ {
/* mouse trails */ /* mouse trails */
SystemParametersInfo(SPI_GETMOUSETRAILS, 0, &g_MouseTrails, 0); SystemParametersInfo(SPI_GETMOUSETRAILS, 0, &g_MouseTrails, 0);
@ -147,12 +161,6 @@ BOOL InitializeMouse()
/* hide pointer while typing */ /* hide pointer while typing */
SystemParametersInfo(SPI_GETMOUSEVANISH, 0, &g_HidePointer, 0); SystemParametersInfo(SPI_GETMOUSEVANISH, 0, &g_HidePointer, 0);
/* click lock time */
SystemParametersInfo(SPI_GETMOUSECLICKLOCK, 0, &g_ClickLockEnabled, 0);
SystemParametersInfo(SPI_GETMOUSECLICKLOCKTIME, 0, &g_ClickLockTime, 0);
g_DoubleClickSpeed = GetDoubleClickTime();
g_SwapMouseButtons = GetSystemMetrics(SM_SWAPBUTTON);
/* show pointer with Ctrl-Key */ /* show pointer with Ctrl-Key */
@ -169,36 +177,41 @@ ClickLockProc(IN HWND hwndDlg,
{ {
HWND hDlgCtrl; HWND hDlgCtrl;
int pos; int pos;
UNREFERENCED_PARAMETER(lParam);
PBUTTON_DATA pButtonData;
pButtonData = (PBUTTON_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ pButtonData = (PBUTTON_DATA)lParam;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pButtonData);
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_CLICK_LOCK); hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_CLICK_LOCK);
SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 10)); SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 10));
pos = (g_ClickLockTime-200) / 200; pos = (pButtonData->g_ClickLockTime - 200) / 200;
SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos); SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos);
return TRUE; return TRUE;
}
case WM_COMMAND: case WM_COMMAND:
{
if (LOWORD(wParam) == IDOK) if (LOWORD(wParam) == IDOK)
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_CLICK_LOCK); hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_CLICK_LOCK);
g_ClickLockTime = (DWORD) (SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) * 200) + 200; pButtonData->g_ClickLockTime = (DWORD) (SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) * 200) + 200;
EndDialog(hwndDlg, TRUE); EndDialog(hwndDlg, TRUE);
} }
else if (LOWORD(wParam) == IDCANCEL) else if (LOWORD(wParam) == IDCANCEL)
{ {
EndDialog(hwndDlg, FALSE); EndDialog(hwndDlg, FALSE);
} }
} break;
} }
return FALSE; return FALSE;
} }
static INT_PTR CALLBACK static INT_PTR CALLBACK
ButtonProc(IN HWND hwndDlg, ButtonProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
@ -207,21 +220,46 @@ ButtonProc(IN HWND hwndDlg,
{ {
HWND hDlgCtrl; HWND hDlgCtrl;
LRESULT lResult; LRESULT lResult;
float pos;
LPPSHNOTIFY lppsn; LPPSHNOTIFY lppsn;
PBUTTON_DATA pButtonData;
pButtonData = (PBUTTON_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
pButtonData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(BUTTON_DATA));
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pButtonData);
pButtonData->g_SwapMouseButtons = GetSystemMetrics(SM_SWAPBUTTON);
pButtonData->g_OrigSwapMouseButtons = pButtonData->g_SwapMouseButtons;
pButtonData->g_DoubleClickSpeed = GetDoubleClickTime();
pButtonData->g_OrigDoubleClickSpeed = pButtonData->g_DoubleClickSpeed;
/* Click lock time */
SystemParametersInfo(SPI_GETMOUSECLICKLOCK, 0, &pButtonData->g_ClickLockEnabled, 0);
SystemParametersInfo(SPI_GETMOUSECLICKLOCKTIME, 0, &pButtonData->g_ClickLockTime, 0);
/* Load mouse button icons */
pButtonData->hButtonLeft = LoadImage(hApplet, MAKEINTRESOURCE(IDI_MOUSE_LEFT), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
pButtonData->hButtonRight = LoadImage(hApplet, MAKEINTRESOURCE(IDI_MOUSE_RIGHT), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
/* Load folder icons */
pButtonData->hIcon1 = LoadImage(hApplet, MAKEINTRESOURCE(IDI_FOLDER_CLOSED), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
pButtonData->hIcon2 = LoadImage(hApplet, MAKEINTRESOURCE(IDI_FOLDER_OPEN), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
if (pButtonData->g_SwapMouseButtons)
{ {
if (InitializeMouse()) SendDlgItemMessage(hwndDlg, IDC_SWAP_MOUSE_BUTTONS, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
{ SendDlgItemMessage(hwndDlg, IDC_IMAGE_SWAP_MOUSE, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hButtonRight);
if (g_SwapMouseButtons)
{
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SWAP_MOUSE_BUTTONS);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
if (g_ClickLockEnabled) else
{
SendDlgItemMessage(hwndDlg, IDC_IMAGE_SWAP_MOUSE, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hButtonLeft);
}
if (pButtonData->g_ClickLockEnabled)
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_CLICK_LOCK); hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_CLICK_LOCK);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
@ -231,116 +269,137 @@ ButtonProc(IN HWND hwndDlg,
hDlgCtrl = GetDlgItem(hwndDlg, IDC_BUTTON_CLICK_LOCK); hDlgCtrl = GetDlgItem(hwndDlg, IDC_BUTTON_CLICK_LOCK);
EnableWindow(hDlgCtrl, FALSE); EnableWindow(hDlgCtrl, FALSE);
} }
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED); hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED);
SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 14)); SendMessage(hDlgCtrl, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 14));
pos = ((float)g_DoubleClickSpeed / MAX_DOUBLE_CLICK_SPEED); SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, 14 - ((pButtonData->g_DoubleClickSpeed - 200) / 50));
pos /= (1.0f/11.0f);
SendMessage(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)(INT)ceil(pos));
} SendDlgItemMessage(hwndDlg, IDC_IMAGE_DOUBLE_CLICK_SPEED, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hIcon1);
pButtonData->bClicked = TRUE;
return TRUE; return TRUE;
}
case WM_DESTROY:
DestroyIcon(pButtonData->hButtonLeft);
DestroyIcon(pButtonData->hButtonRight);
DestroyIcon(pButtonData->hIcon1);
DestroyIcon(pButtonData->hIcon2);
HeapFree(GetProcessHeap(), 0, pButtonData);
break;
case WM_COMMAND: case WM_COMMAND:
{
switch(LOWORD(wParam)) switch(LOWORD(wParam))
{ {
case IDC_SWAP_MOUSE_BUTTONS: case IDC_SWAP_MOUSE_BUTTONS:
{
lResult = SendMessage((HWND)lParam, BM_GETCHECK, (WPARAM)0, (LPARAM)0); lResult = SendMessage((HWND)lParam, BM_GETCHECK, (WPARAM)0, (LPARAM)0);
if (lResult == BST_CHECKED) if (lResult == BST_CHECKED)
{ {
g_SwapMouseButtons = FALSE; pButtonData->g_SwapMouseButtons = FALSE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
SendDlgItemMessage(hwndDlg, IDC_IMAGE_SWAP_MOUSE, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hButtonLeft);
} }
else if (lResult == BST_UNCHECKED) else if (lResult == BST_UNCHECKED)
{ {
g_SwapMouseButtons = TRUE; pButtonData->g_SwapMouseButtons = TRUE;
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
SendDlgItemMessage(hwndDlg, IDC_IMAGE_SWAP_MOUSE, STM_SETIMAGE, IMAGE_ICON, (LPARAM)pButtonData->hButtonRight);
} }
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_SwapMouseButtons, NULL, SPIF_SENDCHANGE);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
}
case IDC_CHECK_CLICK_LOCK: case IDC_CHECK_CLICK_LOCK:
{
lResult = SendMessage((HWND)lParam, BM_GETCHECK, (WPARAM)0, (LPARAM)0); lResult = SendMessage((HWND)lParam, BM_GETCHECK, (WPARAM)0, (LPARAM)0);
hDlgCtrl = GetDlgItem(hwndDlg, IDC_BUTTON_CLICK_LOCK); hDlgCtrl = GetDlgItem(hwndDlg, IDC_BUTTON_CLICK_LOCK);
if (lResult == BST_CHECKED) if (lResult == BST_CHECKED)
{ {
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_UNCHECKED, (LPARAM)0);
g_ClickLockEnabled = FALSE; pButtonData->g_ClickLockEnabled = FALSE;
EnableWindow(hDlgCtrl, FALSE); EnableWindow(hDlgCtrl, FALSE);
} }
else if (lResult == BST_UNCHECKED) else if (lResult == BST_UNCHECKED)
{ {
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
EnableWindow(hDlgCtrl, TRUE); EnableWindow(hDlgCtrl, TRUE);
g_ClickLockEnabled = TRUE; pButtonData->g_ClickLockEnabled = TRUE;
}
break;
}
case IDC_BUTTON_CLICK_LOCK:
{
lResult = DialogBox(hApplet, MAKEINTRESOURCE(IDD_CLICK_LOCK), hwndDlg, ClickLockProc);
if ((INT)lResult == FALSE)
return FALSE; // no need to enable apply button
break;
}
} }
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
}
case WM_NOTIFY: case IDC_BUTTON_CLICK_LOCK:
DialogBoxParam(hApplet, MAKEINTRESOURCE(IDD_CLICK_LOCK), hwndDlg, ClickLockProc, (LPARAM)pButtonData);
break;
case IDC_IMAGE_DOUBLE_CLICK_SPEED:
if (HIWORD(wParam) == STN_DBLCLK)
{ {
pButtonData->bClicked = !pButtonData->bClicked;
SendDlgItemMessage(hwndDlg, IDC_IMAGE_DOUBLE_CLICK_SPEED, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(pButtonData->bClicked ? pButtonData->hIcon1 : pButtonData->hIcon2));
}
break;
}
break;
case WM_NOTIFY:
lppsn = (LPPSHNOTIFY) lParam; lppsn = (LPPSHNOTIFY) lParam;
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
/* apply swap mouse button */
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, g_SwapMouseButtons, NULL, SPIF_SENDCHANGE);
/* apply double click speed */
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED);
lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0);
g_DoubleClickSpeed = (INT)lResult * 50 + 200;
SystemParametersInfo(SPI_SETDOUBLECLICKTIME, g_DoubleClickSpeed, NULL, SPIF_SENDCHANGE);
#if (WINVER >= 0x0500) #if (WINVER >= 0x0500)
SystemParametersInfo(SPI_SETMOUSECLICKLOCK, g_ClickLockEnabled, NULL, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSECLICKLOCK, pButtonData->g_ClickLockEnabled, NULL, SPIF_SENDCHANGE);
if (g_ClickLockEnabled) if (pButtonData->g_ClickLockEnabled)
SystemParametersInfo(SPI_SETMOUSECLICKLOCKTIME, g_ClickLockTime, NULL, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSECLICKLOCKTIME, pButtonData->g_ClickLockTime, NULL, SPIF_SENDCHANGE);
#endif #endif
SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR); SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR);
return TRUE;
} }
else if (lppsn->hdr.code == PSN_RESET)
{
/* Reset swap mouse button setting */
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, pButtonData->g_OrigSwapMouseButtons, NULL, SPIF_SENDCHANGE);
/* Reset double click speed setting */
// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_OrigDoubleClickSpeed, NULL, SPIF_SENDCHANGE);
SetDoubleClickTime(pButtonData->g_OrigDoubleClickSpeed);
} }
case WM_DRAWITEM:
{
LPDRAWITEMSTRUCT drawItem;
drawItem = (LPDRAWITEMSTRUCT)lParam;
if(drawItem->CtlID == IDC_IMAGE_SWAP_MOUSE)
{
//FIXME
//show mouse with left/right button highlighted
// depending on val g_SwapMouseButtons
return TRUE; return TRUE;
}
else if (drawItem->CtlID == IDC_IMAGE_DOUBLE_CLICK_SPEED)
{
//FIXME
//measure click speed && draw item
}
break;
}
case WM_HSCROLL: case WM_HSCROLL:
if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED))
{ {
switch (LOWORD(wParam))
{
case TB_LINEUP:
case TB_LINEDOWN:
case TB_PAGEUP:
case TB_PAGEDOWN:
case TB_TOP:
case TB_BOTTOM:
case TB_ENDTRACK:
lResult = SendDlgItemMessage(hwndDlg, IDC_SLIDER_DOUBLE_CLICK_SPEED, TBM_GETPOS, 0, 0);
pButtonData->g_DoubleClickSpeed = (14 - (INT)lResult) * 50 + 200;
// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_DoubleClickSpeed, NULL, SPIF_SENDCHANGE);
SetDoubleClickTime(pButtonData->g_DoubleClickSpeed);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
case TB_THUMBTRACK:
pButtonData->g_DoubleClickSpeed = (14 - (INT)HIWORD(wParam)) * 50 + 200;
// SystemParametersInfo(SPI_SETDOUBLECLICKTIME, pButtonData->g_DoubleClickSpeed, NULL, SPIF_SENDCHANGE);
SetDoubleClickTime(pButtonData->g_DoubleClickSpeed);
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
} }
} }
break;
}
return FALSE; return FALSE;
} }
BOOL ReadActiveCursorScheme()
#if 0
static BOOL
ReadActiveCursorScheme(VOID)
{ {
HKEY hCuKey; HKEY hCuKey;
HKEY hCuCursorKey; HKEY hCuCursorKey;
@ -377,12 +436,11 @@ BOOL ReadActiveCursorScheme()
memset(g_szHand, 0x0, sizeof(g_szHand)); memset(g_szHand, 0x0, sizeof(g_szHand));
dwIndex = 0; dwIndex = 0;
do for (;;)
{ {
dwValueName = sizeof(szValueName) / sizeof(TCHAR); dwValueName = sizeof(szValueName) / sizeof(TCHAR);
dwValueData = sizeof(szValueData) / sizeof(TCHAR); dwValueData = sizeof(szValueData) / sizeof(TCHAR);
dwResult = RegEnumValue(hCuCursorKey, dwIndex, szValueName, &dwValueName, NULL, NULL, (LPBYTE)szValueData, &dwValueData); dwResult = RegEnumValue(hCuCursorKey, dwIndex, szValueName, &dwValueName, NULL, NULL, (LPBYTE)szValueData, &dwValueData);
if (dwResult == ERROR_NO_MORE_ITEMS) if (dwResult == ERROR_NO_MORE_ITEMS)
break; break;
@ -418,15 +476,18 @@ BOOL ReadActiveCursorScheme()
_tcsncpy(g_szHand, szValueData, MAX_PATH); _tcsncpy(g_szHand, szValueData, MAX_PATH);
dwIndex++; dwIndex++;
}while(1); }
RegCloseKey(hCuCursorKey); RegCloseKey(hCuCursorKey);
RegCloseKey(hCuKey); RegCloseKey(hCuKey);
return TRUE; return TRUE;
} }
#endif
BOOL EnumerateCursorSchemes(HWND hwndDlg)
static BOOL
EnumerateCursorSchemes(HWND hwndDlg)
{ {
HKEY hCuKey; HKEY hCuKey;
HKEY hCuCursorKey; HKEY hCuCursorKey;
@ -442,9 +503,8 @@ BOOL EnumerateCursorSchemes(HWND hwndDlg)
BOOL ProcessedHKLM = FALSE; BOOL ProcessedHKLM = FALSE;
if (RegOpenCurrentUser(KEY_READ, &hCuKey) != ERROR_SUCCESS) if (RegOpenCurrentUser(KEY_READ, &hCuKey) != ERROR_SUCCESS)
{
return FALSE; return FALSE;
}
if (RegOpenKeyEx(hCuKey, _T("Control Panel\\Cursors\\Schemes"), 0, KEY_READ, &hCuCursorKey) != ERROR_SUCCESS) if (RegOpenKeyEx(hCuKey, _T("Control Panel\\Cursors\\Schemes"), 0, KEY_READ, &hCuCursorKey) != ERROR_SUCCESS)
{ {
RegCloseKey(hCuKey); RegCloseKey(hCuKey);
@ -455,7 +515,7 @@ BOOL EnumerateCursorSchemes(HWND hwndDlg)
SendMessage(hDlgCtrl, CB_RESETCONTENT, 0, 0); SendMessage(hDlgCtrl, CB_RESETCONTENT, 0, 0);
dwIndex = 0; dwIndex = 0;
do for (;;)
{ {
dwValueName = sizeof(szValueName) / sizeof(TCHAR); dwValueName = sizeof(szValueName) / sizeof(TCHAR);
dwValueData = sizeof(szValueData) / sizeof(TCHAR); dwValueData = sizeof(szValueData) / sizeof(TCHAR);
@ -479,30 +539,36 @@ BOOL EnumerateCursorSchemes(HWND hwndDlg)
} }
break; break;
} }
if(_tcslen(szValueData) > 0) if(_tcslen(szValueData) > 0)
{ {
TCHAR * copy = _tcsdup(szValueData); TCHAR * copy = _tcsdup(szValueData);
if (ProcessedHKLM) if (ProcessedHKLM)
{
_tcscat(szValueName, TEXT(" "));
_tcscat(szValueName, szSystemScheme); _tcscat(szValueName, szSystemScheme);
}
lResult = SendMessage(hDlgCtrl, CB_ADDSTRING, (WPARAM)0, (LPARAM)szValueName); lResult = SendMessage(hDlgCtrl, CB_ADDSTRING, (WPARAM)0, (LPARAM)szValueName);
SendMessage(hDlgCtrl, CB_SETITEMDATA, (WPARAM)lResult, (LPARAM)copy); SendMessage(hDlgCtrl, CB_SETITEMDATA, (WPARAM)lResult, (LPARAM)copy);
} }
dwIndex++; dwIndex++;
}while(1); }
RegCloseKey(hCuCursorKey); RegCloseKey(hCuCursorKey);
RegCloseKey(hCuKey); RegCloseKey(hCuKey);
LoadString(hApplet, IDS_NONE, szSystemScheme, MAX_PATH); LoadString(hApplet, IDS_NONE, szSystemScheme, MAX_PATH);
SendMessage(hDlgCtrl, CB_ADDSTRING, (WPARAM)0, (LPARAM)szSystemScheme); lResult = SendMessage(hDlgCtrl, CB_ADDSTRING, (WPARAM)0, (LPARAM)szSystemScheme);
SendMessage(hDlgCtrl, CB_SETITEMDATA, (WPARAM)lResult, (LPARAM)NULL);
SendMessage(hDlgCtrl, CB_SETCURSEL, (WPARAM)0, (LPARAM)0); SendMessage(hDlgCtrl, CB_SETCURSEL, (WPARAM)0, (LPARAM)0);
return TRUE; return TRUE;
} }
void RefreshCursorList(HWND hwndDlg) static VOID
RefreshCursorList(HWND hwndDlg)
{ {
TCHAR szCursorName[MAX_PATH]; TCHAR szCursorName[MAX_PATH];
HWND hDlgCtrl; HWND hDlgCtrl;
@ -520,7 +586,6 @@ void RefreshCursorList(HWND hwndDlg)
(void)ListView_InsertColumn(hDlgCtrl, 0, &column); (void)ListView_InsertColumn(hDlgCtrl, 0, &column);
LoadString(hApplet, IDS_ARROW, szCursorName, MAX_PATH); LoadString(hApplet, IDS_ARROW, szCursorName, MAX_PATH);
ZeroMemory(&listItem, sizeof(LV_ITEM)); ZeroMemory(&listItem, sizeof(LV_ITEM));
@ -587,27 +652,32 @@ void RefreshCursorList(HWND hwndDlg)
(void)ListView_InsertItem(hDlgCtrl, &listItem); (void)ListView_InsertItem(hDlgCtrl, &listItem);
} }
BOOL DeleteUserCursorScheme(TCHAR * szScheme)
static BOOL
DeleteUserCursorScheme(TCHAR * szScheme)
{ {
HKEY hCuKey; HKEY hCuKey;
HKEY hCuCursorKey; HKEY hCuCursorKey;
LONG Result; LONG Result;
if (RegOpenCurrentUser(KEY_READ | KEY_SET_VALUE, &hCuKey) != ERROR_SUCCESS) if (RegOpenCurrentUser(KEY_READ | KEY_SET_VALUE, &hCuKey) != ERROR_SUCCESS)
{
return FALSE; return FALSE;
}
if (RegOpenKeyEx(hCuKey, _T("Control Panel\\Cursors\\Schemes"), 0, KEY_READ | KEY_SET_VALUE, &hCuCursorKey) != ERROR_SUCCESS) if (RegOpenKeyEx(hCuKey, _T("Control Panel\\Cursors\\Schemes"), 0, KEY_READ | KEY_SET_VALUE, &hCuCursorKey) != ERROR_SUCCESS)
{ {
RegCloseKey(hCuKey); RegCloseKey(hCuKey);
return FALSE; return FALSE;
} }
Result = RegDeleteValue(hCuCursorKey, szScheme); Result = RegDeleteValue(hCuCursorKey, szScheme);
RegCloseKey(hCuCursorKey); RegCloseKey(hCuCursorKey);
RegCloseKey(hCuKey); RegCloseKey(hCuKey);
return (Result == ERROR_SUCCESS); return (Result == ERROR_SUCCESS);
} }
static INT_PTR CALLBACK static INT_PTR CALLBACK
SaveSchemeProc(IN HWND hwndDlg, SaveSchemeProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
@ -620,7 +690,6 @@ SaveSchemeProc(IN HWND hwndDlg,
switch(uMsg) switch(uMsg)
{ {
case WM_COMMAND: case WM_COMMAND:
{
if (LOWORD(wParam) == IDOK) if (LOWORD(wParam) == IDOK)
{ {
hDlgCtrl = GetDlgItem(hwndDlg, IDC_EDIT_SCHEME_NAME); hDlgCtrl = GetDlgItem(hwndDlg, IDC_EDIT_SCHEME_NAME);
@ -631,13 +700,15 @@ SaveSchemeProc(IN HWND hwndDlg,
{ {
EndDialog(hwndDlg, FALSE); EndDialog(hwndDlg, FALSE);
} }
} break;
} }
return FALSE; return FALSE;
} }
BOOL BrowseCursor(TCHAR * szFileName, HWND hwndDlg)
static BOOL
BrowseCursor(TCHAR * szFileName, HWND hwndDlg)
{ {
//FIXME load text resources from string //FIXME load text resources from string
OPENFILENAME ofn; OPENFILENAME ofn;
@ -662,6 +733,95 @@ BOOL BrowseCursor(TCHAR * szFileName, HWND hwndDlg)
} }
static VOID
LoadCurrentCursorScheme(LPTSTR lpName, BOOL bSystem)
{
HKEY hCursorKey;
TCHAR szValue[2048];
TCHAR szRaw[256];
DWORD dwValueLen;
LONG lError;
LPTSTR ptrStart, ptrEnd;
INT_PTR len;
int i;
if (lpName == NULL)
{
memset(g_szArrow, 0x0, sizeof(g_szArrow));
memset(g_szHelp, 0x0, sizeof(g_szHelp));
memset(g_szAppStarting, 0x0, sizeof(g_szAppStarting));
memset(g_szWait, 0x0, sizeof(g_szWait));
memset(g_szCrosshair, 0x0, sizeof(g_szCrosshair));
memset(g_szIBeam, 0x0, sizeof(g_szIBeam));
memset(g_szNWPen, 0x0, sizeof(g_szNWPen));
memset(g_szNo, 0x0, sizeof(g_szNo));
memset(g_szSizeNS, 0x0, sizeof(g_szSizeNS));
memset(g_szSizeWE, 0x0, sizeof(g_szSizeWE));
memset(g_szSizeNWSE, 0x0, sizeof(g_szSizeNWSE));
memset(g_szSizeNESW, 0x0, sizeof(g_szSizeNESW));
memset(g_szSizeAll, 0x0, sizeof(g_szSizeAll));
memset(g_szUpArrow, 0x0, sizeof(g_szUpArrow));
memset(g_szHand, 0x0, sizeof(g_szHand));
}
else
{
if (bSystem)
{
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cursors\\Schemes"),
0, KEY_READ, &hCursorKey))
return;
}
else
{
if (RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Control Panel\\Cursors\\Schemes"),
0, KEY_READ, &hCursorKey) != ERROR_SUCCESS)
return;
}
dwValueLen = 2048 * sizeof(TCHAR);
lError = RegQueryValueEx(hCursorKey, lpName, NULL, NULL, (LPBYTE)szValue, &dwValueLen);
RegCloseKey(hCursorKey);
if (lError == ERROR_SUCCESS)
{
ptrStart = szValue;
for (i = 0; ; i++)
{
ptrEnd = _tcschr(ptrStart, TEXT(','));
if (ptrEnd != NULL)
{
len = (ptrEnd - ptrStart) / sizeof(TCHAR);
_tcsncpy(szRaw, ptrStart, len);
szRaw[len] = 0;
}
else
{
_tcscpy(szRaw, ptrStart);
}
switch (i)
{
case 0:
ExpandEnvironmentStrings(szRaw, g_szArrow, MAX_PATH);
break;
}
if (ptrEnd == NULL)
break;
ptrStart = ptrEnd + 1;
}
}
}
}
static INT_PTR CALLBACK static INT_PTR CALLBACK
PointerProc(IN HWND hwndDlg, PointerProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
@ -679,7 +839,6 @@ PointerProc(IN HWND hwndDlg,
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
EnumerateCursorSchemes(hwndDlg); EnumerateCursorSchemes(hwndDlg);
RefreshCursorList(hwndDlg); RefreshCursorList(hwndDlg);
/* drop shadow */ /* drop shadow */
@ -693,9 +852,8 @@ PointerProc(IN HWND hwndDlg,
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
}
case WM_NOTIFY: case WM_NOTIFY:
{
lppsn = (LPPSHNOTIFY) lParam; lppsn = (LPPSHNOTIFY) lParam;
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
@ -706,28 +864,31 @@ PointerProc(IN HWND hwndDlg,
return TRUE; return TRUE;
} }
break; break;
}
case WM_COMMAND: case WM_COMMAND:
{
switch(HIWORD(wParam)) switch(HIWORD(wParam))
{ {
case CBN_SELENDOK: case CBN_SELENDOK:
{ {
BOOL bEnable; BOOL bEnable;
LPTSTR lpName;
wParam = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0); wParam = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
if(wParam == CB_ERR) if(wParam == CB_ERR)
break; break;
SendMessage((HWND)lParam, CB_GETLBTEXT, wParam, (LPARAM)buffer); SendMessage((HWND)lParam, CB_GETLBTEXT, wParam, (LPARAM)buffer);
LoadString(hApplet, IDS_SYSTEM_SCHEME, szSystemScheme, MAX_PATH); LoadString(hApplet, IDS_SYSTEM_SCHEME, szSystemScheme, MAX_PATH);
if(_tcsstr(buffer, szSystemScheme) || wParam == 0) //avoid the default scheme can be deleted if(_tcsstr(buffer, szSystemScheme) || wParam == 0) //avoid the default scheme can be deleted
bEnable = 0; bEnable = FALSE;
else else
bEnable = 1; bEnable = TRUE;
/* delete button */ /* delete button */
hDlgCtrl = GetDlgItem(hwndDlg, IDC_BUTTON_DELETE_SCHEME); hDlgCtrl = GetDlgItem(hwndDlg, IDC_BUTTON_DELETE_SCHEME);
EnableWindow(hDlgCtrl, bEnable); EnableWindow(hDlgCtrl, bEnable);
lpName = (LPTSTR)SendMessage((HWND)lParam, CB_GETITEMDATA, wParam, 0);
LoadCurrentCursorScheme(lpName, !bEnable);
break; break;
} }
} }
@ -735,17 +896,14 @@ PointerProc(IN HWND hwndDlg,
switch (LOWORD(wParam)) switch (LOWORD(wParam))
{ {
case IDC_BUTTON_SAVEAS_SCHEME: case IDC_BUTTON_SAVEAS_SCHEME:
{
if (DialogBox(hApplet, MAKEINTRESOURCE(IDD_CURSOR_SCHEME_SAVEAS), hwndDlg, SaveSchemeProc)) if (DialogBox(hApplet, MAKEINTRESOURCE(IDD_CURSOR_SCHEME_SAVEAS), hwndDlg, SaveSchemeProc))
{ {
//FIXME //FIXME
//save cursor scheme //save cursor scheme
} }
break; break;
}
case IDC_BUTTON_USE_DEFAULT_CURSOR: case IDC_BUTTON_USE_DEFAULT_CURSOR:
{
hDlgCtrl = GetDlgItem(hwndDlg, IDC_LISTVIEW_CURSOR); hDlgCtrl = GetDlgItem(hwndDlg, IDC_LISTVIEW_CURSOR);
lResult = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0); lResult = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0);
if (lResult != CB_ERR) if (lResult != CB_ERR)
@ -782,9 +940,8 @@ PointerProc(IN HWND hwndDlg,
memset(g_szHand, 0x0, MAX_PATH * sizeof(TCHAR)); memset(g_szHand, 0x0, MAX_PATH * sizeof(TCHAR));
} }
break; break;
}
case IDC_BUTTON_BROWSE_CURSOR: case IDC_BUTTON_BROWSE_CURSOR:
{
memset(buffer, 0x0, sizeof(buffer)); memset(buffer, 0x0, sizeof(buffer));
hDlgCtrl = GetDlgItem(hwndDlg, IDC_LISTVIEW_CURSOR); hDlgCtrl = GetDlgItem(hwndDlg, IDC_LISTVIEW_CURSOR);
lResult = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0); lResult = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0);
@ -792,7 +949,6 @@ PointerProc(IN HWND hwndDlg,
MessageBox(hwndDlg, _T("CB_ERR"), _T(""),MB_ICONERROR); MessageBox(hwndDlg, _T("CB_ERR"), _T(""),MB_ICONERROR);
if (BrowseCursor(buffer, hwndDlg)) if (BrowseCursor(buffer, hwndDlg))
{ {
if ((INT)lResult == 0) if ((INT)lResult == 0)
_tcsncpy(g_szArrow, buffer, MAX_PATH); _tcsncpy(g_szArrow, buffer, MAX_PATH);
else if ((INT)lResult == 1) else if ((INT)lResult == 1)
@ -838,9 +994,8 @@ PointerProc(IN HWND hwndDlg,
ReleaseDC(hDlgCtrl, memDC); ReleaseDC(hDlgCtrl, memDC);
} }
break; break;
}
case IDC_BUTTON_DELETE_SCHEME: case IDC_BUTTON_DELETE_SCHEME:
{
hDlgCtrl = GetDlgItem(hwndDlg, IDC_COMBO_CURSOR_SCHEME); hDlgCtrl = GetDlgItem(hwndDlg, IDC_COMBO_CURSOR_SCHEME);
wParam = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0); wParam = SendMessage(hDlgCtrl, CB_GETCURSEL, 0, 0);
if(wParam == CB_ERR) if(wParam == CB_ERR)
@ -852,9 +1007,8 @@ PointerProc(IN HWND hwndDlg,
SendMessage(hDlgCtrl, CB_SETCURSEL, (WPARAM)0, (LPARAM)0); SendMessage(hDlgCtrl, CB_SETCURSEL, (WPARAM)0, (LPARAM)0);
} }
break; break;
}
case IDC_CHECK_DROP_SHADOW: case IDC_CHECK_DROP_SHADOW:
{
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_DROP_SHADOW)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_DROP_SHADOW))
{ {
g_DropShadow = 0; g_DropShadow = 0;
@ -866,15 +1020,13 @@ PointerProc(IN HWND hwndDlg,
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
} }
}
break; break;
} }
}
return FALSE; return FALSE;
} }
static INT_PTR CALLBACK static INT_PTR CALLBACK
OptionProc(IN HWND hwndDlg, OptionProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
@ -888,7 +1040,6 @@ OptionProc(IN HWND hwndDlg,
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
if (InitializeMouse()) if (InitializeMouse())
{ {
/* set mouse sensitivity */ /* set mouse sensitivity */
@ -927,17 +1078,13 @@ OptionProc(IN HWND hwndDlg,
hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_HIDE_POINTER); hDlgCtrl = GetDlgItem(hwndDlg, IDC_CHECK_HIDE_POINTER);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
} }
break; break;
}
case WM_COMMAND: case WM_COMMAND:
{
switch(LOWORD(wParam)) switch(LOWORD(wParam))
{ {
case IDC_CHECK_POINTER_PRECISION: case IDC_CHECK_POINTER_PRECISION:
{
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_PRECISION)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_PRECISION))
{ {
g_MouseSpeed = 0; g_MouseSpeed = 0;
@ -953,9 +1100,8 @@ OptionProc(IN HWND hwndDlg,
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
break; break;
}
case IDC_CHECK_SNAP_TO: case IDC_CHECK_SNAP_TO:
{
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SNAP_TO)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SNAP_TO))
{ {
g_SnapToDefaultButton = 0; g_SnapToDefaultButton = 0;
@ -967,9 +1113,8 @@ OptionProc(IN HWND hwndDlg,
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
break; break;
}
case IDC_CHECK_POINTER_TRAIL: case IDC_CHECK_POINTER_TRAIL:
{
hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL); hDlgCtrl = GetDlgItem(hwndDlg, IDC_SLIDER_POINTER_TRAIL);
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_POINTER_TRAIL))
{ {
@ -984,9 +1129,8 @@ OptionProc(IN HWND hwndDlg,
g_MouseTrails = (ULONG) SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2; g_MouseTrails = (ULONG) SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 2;
} }
break; break;
}
case IDC_CHECK_SHOW_POINTER: case IDC_CHECK_SHOW_POINTER:
{
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHOW_POINTER)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHOW_POINTER))
{ {
g_ShowPointer = 0; g_ShowPointer = 0;
@ -998,9 +1142,8 @@ OptionProc(IN HWND hwndDlg,
SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
break; break;
}
case IDC_CHECK_HIDE_POINTER: case IDC_CHECK_HIDE_POINTER:
{
if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_HIDE_POINTER)) if(IsDlgButtonChecked(hwndDlg, IDC_CHECK_HIDE_POINTER))
{ {
g_HidePointer = 0; g_HidePointer = 0;
@ -1013,12 +1156,10 @@ OptionProc(IN HWND hwndDlg,
} }
break; break;
} }
}
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
}
case WM_NOTIFY: case WM_NOTIFY:
{
lppsn = (LPPSHNOTIFY) lParam; lppsn = (LPPSHNOTIFY) lParam;
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
@ -1032,7 +1173,9 @@ OptionProc(IN HWND hwndDlg,
lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0); lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0);
} }
else else
{
lResult = 0; lResult = 0;
}
SystemParametersInfo(SPI_SETMOUSETRAILS, (UINT) lResult, 0, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSETRAILS, (UINT) lResult, 0, SPIF_SENDCHANGE);
@ -1045,7 +1188,6 @@ OptionProc(IN HWND hwndDlg,
lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 1; lResult = SendMessage(hDlgCtrl, TBM_GETPOS, 0, 0) + 1;
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)g_MouseSensitivity, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)g_MouseSensitivity, SPIF_SENDCHANGE);
/* hide pointer while typing */ /* hide pointer while typing */
SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)g_HidePointer, SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETMOUSEVANISH, 0, (PVOID)g_HidePointer, SPIF_SENDCHANGE);
@ -1055,17 +1197,18 @@ OptionProc(IN HWND hwndDlg,
return TRUE; return TRUE;
} }
break; break;
}
case WM_HSCROLL: case WM_HSCROLL:
{
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
} }
}
return FALSE; return FALSE;
} }
static void ShowDialogWheelControls(HWND hwndDlg)
static VOID
ShowDialogWheelControls(HWND hwndDlg)
{ {
HWND hDlgCtrl; HWND hDlgCtrl;
@ -1097,9 +1240,9 @@ static void ShowDialogWheelControls(HWND hwndDlg)
hDlgCtrl = GetDlgItem(hwndDlg, IDC_RADIO_WHEEL_SCROLL_PAGE); hDlgCtrl = GetDlgItem(hwndDlg, IDC_RADIO_WHEEL_SCROLL_PAGE);
SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendMessage(hDlgCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
} }
} }
static INT_PTR CALLBACK static INT_PTR CALLBACK
WheelProc(IN HWND hwndDlg, WheelProc(IN HWND hwndDlg,
IN UINT uMsg, IN UINT uMsg,
@ -1113,7 +1256,6 @@ WheelProc(IN HWND hwndDlg,
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
ShowDialogWheelControls(hwndDlg); ShowDialogWheelControls(hwndDlg);
SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_WHEEL_SCROLL_LINES), UDM_SETRANGE, 0, MAKELONG ((short) 100, (short) 0)); SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_WHEEL_SCROLL_LINES), UDM_SETRANGE, 0, MAKELONG ((short) 100, (short) 0));
if (g_WheelScrollLines != UINT_MAX) if (g_WheelScrollLines != UINT_MAX)
@ -1123,9 +1265,8 @@ WheelProc(IN HWND hwndDlg,
SendMessage(hDlgCtrl, WM_SETTEXT, (WPARAM)0, (LPARAM)buffer); SendMessage(hDlgCtrl, WM_SETTEXT, (WPARAM)0, (LPARAM)buffer);
} }
return TRUE; return TRUE;
}
case WM_COMMAND: case WM_COMMAND:
{
switch (LOWORD(wParam)) switch (LOWORD(wParam))
{ {
case IDC_RADIO_WHEEL_SCROLL_LINES: case IDC_RADIO_WHEEL_SCROLL_LINES:
@ -1145,9 +1286,8 @@ WheelProc(IN HWND hwndDlg,
} }
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break; break;
}
case WM_NOTIFY: case WM_NOTIFY:
{
lppsn = (LPPSHNOTIFY) lParam; lppsn = (LPPSHNOTIFY) lParam;
if (lppsn->hdr.code == PSN_APPLY) if (lppsn->hdr.code == PSN_APPLY)
{ {
@ -1159,14 +1299,13 @@ WheelProc(IN HWND hwndDlg,
SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR); SetWindowLong(hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR);
return TRUE; return TRUE;
} }
break;
}
} }
return FALSE; return FALSE;
} }
LONG APIENTRY LONG APIENTRY
MouseApplet(HWND hwnd, UINT uMsg, LONG lParam1, LONG lParam2) MouseApplet(HWND hwnd, UINT uMsg, LONG lParam1, LONG lParam2)
{ {

View file

@ -1,10 +1,15 @@
#ifndef __CPL_RESOURCE_H #ifndef __CPL_RESOURCE_H
#define __CPL_RESOURCE_H #define __CPL_RESOURCE_H
/* Icons */
#define IDC_CPLICON_1 100 #define IDC_CPLICON_1 100
#define IDC_CPLICON_2 200 #define IDC_CPLICON_2 200
#define IDI_FOLDER_OPEN 201
#define IDI_FOLDER_CLOSED 202
#define IDI_MOUSE_LEFT 203
#define IDI_MOUSE_RIGHT 204
#define IDD_PAGE_BUTTON 101 #define IDD_PAGE_BUTTON 101
#define IDD_PAGE_POINTER 102 #define IDD_PAGE_POINTER 102
#define IDD_PAGE_OPTION 103 #define IDD_PAGE_OPTION 103

View file

@ -1,24 +0,0 @@
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
/* define language neutral resources */
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* include localised resources */
#include "lang/cs-CZ.rc"
#include "lang/de-DE.rc"
#include "lang/en-US.rc"
#include "lang/es-ES.rc"
#include "lang/fr-FR.rc"
#include "lang/hu-HU.rc"
#include "lang/id-ID.rc"
#include "lang/it-IT.rc"
#include "lang/ja-JP.rc"
#include "lang/nl-NL.rc"
#include "lang/ru-RU.rc"
#include "lang/uk-UA.rc"