MCPcopy Create free account
hub / github.com/Predelnik/DSpellCheck / run_dlg_proc

Method run_dlg_proc

src/ui/SuggestionMenuButton.cpp:98–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

96}
97
98INT_PTR SuggestionMenuButton::run_dlg_proc(UINT message, WPARAM w_param,
99 LPARAM l_param) {
100 POINT p;
101 BITMAP bmp;
102 int id_img;
103 PAINTSTRUCT ps;
104
105 switch (message) {
106 case WM_INITDIALOG:
107
108 display(false);
109 return 0;
110
111 case WM_MOUSEMOVE:
112 m_state_hovered = true;
113 reg_msg(_hSelf, MOUSELEAVE);
114 RedrawWindow(_hSelf, nullptr, nullptr, RDW_UPDATENOW | RDW_INVALIDATE);
115 return 0;
116
117 case WM_MOUSEHOVER:
118 return 0;
119
120 case WM_LBUTTONDOWN:
121 m_state_pressed = true;
122 RedrawWindow(_hSelf, nullptr, nullptr, RDW_UPDATENOW | RDW_INVALIDATE);
123 return 0;
124
125 case WM_LBUTTONUP:
126 if (!m_state_pressed)
127 return 0;
128 show_suggestion_menu();
129 return 0;
130
131 case WM_MOUSEWHEEL:
132 ShowWindow(_hSelf, SW_HIDE);
133 {
134 ACTIVE_VIEW_BLOCK(m_npp);
135 PostMessage(m_npp.get_view_hwnd(), message, w_param,
136 l_param);
137 }
138 return 0;
139
140 case WM_PAINT: {
141 if (!isVisible())
142 return 0;
143
144 id_img = IDR_DOWNARROW;
145 if (m_state_pressed || m_state_menu)
146 id_img = IDR_DOWNARROW_PUSH;
147 else if (m_state_hovered)
148 id_img = IDR_DOWNARROW_HOVER;
149
150 HDC dc = BeginPaint(_hSelf, &ps);
151 HDC hdc_memory = ::CreateCompatibleDC(dc);
152 HBITMAP h_bmp = LoadBitmap(_hInst, MAKEINTRESOURCE(id_img));
153 GetObject(h_bmp, sizeof(bmp), &bmp);
154 auto h_old_bitmap = static_cast<HBITMAP>(SelectObject(hdc_memory, h_bmp));
155 SetStretchBltMode(dc, HALFTONE);

Callers

nothing calls this directly

Calls 5

reg_msgFunction · 0.85
process_menu_resultMethod · 0.80
get_view_hwndMethod · 0.45
get_editor_hwndMethod · 0.45

Tested by

no test coverage detected