588{
597
599
602
605
606 switch (uMsg)
607 {
609 switch(btn_type)
610 {
622 }
623
625#ifndef __REACTOS__
627 if (theme)
629 else
630#endif
632 break;
633
635 infoPtr = heap_alloc_zero( sizeof(*infoPtr) );
638#ifdef __REACTOS__
639 SetRect(&infoPtr->rcTextMargin, 1,1,1,1);
640#endif
642
646 break;
647
650 return -1;
651
652
654 {
657 }
660 return 0;
661
665 break;
666
667 case WM_THEMECHANGED:
671#ifdef __REACTOS__
673#endif
674 break;
675
678 {
681 HBRUSH hBrush;
685 if (!hBrush)
690 }
691 return 1;
692
695 {
698
701
702#ifdef __REACTOS__
704 {
706 return 0;
707 }
708#else
710 {
713
715 {
720 }
721 else
723
726 }
727#endif
729 {
733 }
734
736 break;
737 }
738
741 {
745 }
746 break;
747
753 {
755 break;
756 }
757
763 break;
764
767 break;
768
774 {
776 break;
777 }
781 {
782 switch(btn_type)
783 {
786 break;
788#ifdef __REACTOS__
790#else
792#endif
793 break;
796 ((infoPtr->
state & 3) + 1), 0 );
797 break;
798 }
799#ifdef __REACTOS__
800
803#else
806#endif
807 }
808 else
809 {
811 }
812
813 break;
814
819 {
823 }
824 break;
825
827 {
831
832#ifdef __REACTOS__
834 {
836
838
844
846 if (theme)
848 }
849
851 {
856 }
857#else
858
860 {
865 }
866#endif
867
869 {
872 }
873 break;
874 }
875
876#ifndef __REACTOS__
878 {
881 break;
882 }
883#endif
884
886 {
887#ifdef __REACTOS__
889 {
891
892 infoPtr->
state &= ~BST_HOT;
893
899
901 if (theme)
903 }
904 break;
905#else
906 infoPtr->
state &= ~BST_HOT;
908 break;
909#endif
910 }
911
912#ifdef __REACTOS__
914 {
918 *
prc = infoPtr->rcTextMargin;
920 }
922 {
926 infoPtr->rcTextMargin = *
prc;
928 }
930 {
932 if (!pimldata || !pimldata->
himl)
934 infoPtr->imlData = *pimldata;
936 }
938 {
940 if (!pimldata)
942 *pimldata = infoPtr->imlData;
944 }
946 {
950
951 if (!pSize)
952 {
954 }
955
959 {
960 ret = BUTTON_GetIdealSize(infoPtr, theme, pSize);
961 }
962
964 {
968 }
969
971 }
972#endif
973
975 {
976
977#ifdef __REACTOS__
978
979
980
981
982
983
985#else
987#endif
988 {
998
1005
1008
1012
1017 }
1018
1022 else
1024 return 1;
1025 }
1026
1030 break;
1031
1034
1038#ifdef __REACTOS__
1041 else
1042#endif
1046 break;
1047
1050 infoPtr->
state &= ~BST_FOCUS;
1051#ifndef __REACTOS__
1053#endif
1054
1059
1061 break;
1062
1065 break;
1066
1071
1072
1075
1076 break;
1077
1079#ifdef __REACTOS__
1080
1081 if (infoPtr->
state & BUTTON_BMCLICK)
1082 break;
1083 infoPtr->
state |= BUTTON_BMCLICK;
1084#endif
1087#ifdef __REACTOS__
1088 infoPtr->
state &= ~BUTTON_BMCLICK;
1089#endif
1090 break;
1091
1093
1095 {
1098 break;
1101 break;
1102 default:
1103 return 0;
1104 }
1105 oldHbitmap = infoPtr->
u.
image;
1109
1112
1114 return infoPtr->
state & 3;
1115
1119 {
1122 }
1124 {
1127 }
1128#ifndef __REACTOS__
1131#endif
1132 break;
1133
1135 return infoPtr->
state;
1136
1140
1142 {
1145 else
1146 state &= ~BST_PUSHED;
1147
1151
1153 }
1154 break;
1155
1156#ifdef __REACTOS__
1157 case WM_UPDATEUISTATE:
1159
1160 if (button_update_uistate(infoPtr))
1162 break;
1163#endif
1164
1167
1168 default:
1170 }
1171 return 0;
1172}
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
HTHEME WINAPI GetWindowTheme(HWND hwnd)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
#define BS_DEFCOMMANDLINK
#define BCN_HOTITEMCHANGE
#define BCM_SETTEXTMARGIN
#define BS_DEFSPLITBUTTON
struct tagTRACKMOUSEEVENT TRACKMOUSEEVENT
#define BCM_GETTEXTMARGIN
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define WM_CTLCOLORSTATIC
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
void WINAPI mouse_event(_In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ ULONG_PTR)
BOOL WINAPI ReleaseCapture(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CAPTURECHANGED
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
#define DLGC_UNDEFPUSHBUTTON
HWND WINAPI GetCapture(void)
BOOL WINAPI TrackMouseEvent(_Inout_ LPTRACKMOUSEEVENT)
#define WM_SYSCOLORCHANGE
#define DLGC_DEFPUSHBUTTON
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define SetWindowLongPtrW
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI IsWindowVisible(_In_ HWND)