Beispiel #1
0
void
window_create (int win, widget wid, string name, bool plain) {
    widget pww;
    if (plain)
        pww= plain_window_widget (wid, name);
    else
        pww= popup_window_widget (wid, name);
    window_table (win)= pww;
}
Beispiel #2
0
		static INT_PTR CALLBACK proc_impl(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
		{
			auto obj = window_table().template get< T >( hwnd );
			if( !obj ) {
				return FALSE;
			}

			switch( msg ) {
			case WM_COMMAND :
				obj->event().invoke( event::command(), *obj, LOWORD( wparam ), wparam, lparam );
				return TRUE;

			case WM_DROPFILES :
				obj->event().invoke( event::drop_files(), *obj, reinterpret_cast< HDROP >( wparam ) );
				return TRUE;

			case WM_NOTIFY:
				obj->event().invoke( event::notify(), *obj, wparam, reinterpret_cast< NMHDR const* >( lparam ) );
				return TRUE;

			case WM_SIZING :
				obj->event().invoke( event::sizing(), *obj, wparam, *reinterpret_cast< RECT const* >( lparam ) );
				return FALSE;

			case WM_CLOSE :
				if( obj->event().empty( event::close() ) || *( obj->event().invoke( event::close(), *obj ) ) ) {
					DestroyWindow( hwnd );
				}
				return TRUE;

			case WM_DESTROY :
				obj->event().invoke( event::destroy(), *obj );
				window_table().erase( hwnd );
				return TRUE;
			}

			return FALSE;
		}
Beispiel #3
0
		static LRESULT CALLBACK proc_impl(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, UINT_PTR, DWORD_PTR)
		{
			auto obj = window_table().template get< T >( hwnd );
			if( !obj ) {
				return FALSE;
			}

			switch( msg ) {
			case WM_DROPFILES :
				obj->event().invoke( event::drop_files(), *obj, reinterpret_cast< HDROP >( wparam ) );
				break;

			case WM_DESTROY:
				obj->event().invoke( event::destroy(), *obj );
				break;
			}

			return DefSubclassProc( hwnd, msg, wparam, lparam );
		}
Beispiel #4
0
void
window_create (int win, widget wid, string name, command quit) {
    widget pww;
    pww= plain_window_widget (wid, name, quit);
    window_table (win)= pww;
}