From 3201f8cecef2e38ec856940d51df28c56665454d Mon Sep 17 00:00:00 2001 From: zvon Date: Tue, 25 Feb 2020 17:24:48 +0100 Subject: [PATCH] Windows/Databasewindow: fix reactive UI --- windows/databasewindow.cpp | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/windows/databasewindow.cpp b/windows/databasewindow.cpp index 2366c8d..500e8a4 100644 --- a/windows/databasewindow.cpp +++ b/windows/databasewindow.cpp @@ -22,14 +22,14 @@ #define LANG_ID_COLUMN 5 #define TVID_COLUMN 6 -#define database_width( width ) width - 25 -#define database_height( height ) height - 90 -#define cancel_x( width ) width - 100 -#define cancel_y( height ) height - 73 -#define ok_x( width ) width - 185 -#define ok_y( height ) height - 73 +#define database_width( width ) width - 10 +#define database_height( height ) height - 50 +#define cancel_x( width ) width - 85 +#define cancel_y( height ) height - 30 +#define ok_x( width ) width - 170 +#define ok_y( height ) height - 30 #define save_x( width ) 5 -#define save_y( height ) height - 73 +#define save_y( height ) height - 30 DatabaseWindow *DatabaseWindow::dw = nullptr; @@ -61,8 +61,13 @@ DatabaseWindow::DatabaseWindow( icex.dwICC = ICC_LISTVIEW_CLASSES; InitCommonControlsEx( &icex ); - list_hwnd = createListView( 5, 5, database_width( window_width ), - database_height( window_height ), ID_LISTVIEW, + RECT client_rect{}; + GetClientRect( window, &client_rect ); + auto client_width = client_rect.right - client_rect.left; + auto client_height = client_rect.bottom - client_rect.top; + + list_hwnd = createListView( 5, 5, database_width( client_width ), + database_height( client_height ), ID_LISTVIEW, window, hFont ); addColumnToListView( list_hwnd, L"Show", 90, SHOW_COLUMN ); addColumnToListView( list_hwnd, L"Path", 180, PATH_COLUMN ); @@ -99,14 +104,14 @@ DatabaseWindow::DatabaseWindow( row++; } - cancel_button = createButton( L"Cancel", cancel_x( window_width ), - cancel_y( window_height ), 80, 25, + cancel_button = createButton( L"Cancel", cancel_x( client_width ), + cancel_y( client_height ), 80, 25, ID_CANCEL_BUTTON, window, hFont ); ok_button = - createButton( L"OK", ok_x( window_width ), ok_y( window_height ), 80, + createButton( L"OK", ok_x( client_width ), ok_y( client_height ), 80, 25, ID_OK_BUTTON, window, hFont ); save_button = - createButton( L"Save", save_x( window_width ), save_y( window_height ), + createButton( L"Save", save_x( client_width ), save_y( client_height ), 80, 25, ID_SAVE_BUTTON, window, hFont ); lang_combo = createCombo( 0, 0, 120, 110, ID_LANG_COMBO, window, hFont ); @@ -170,7 +175,7 @@ LRESULT CALLBACK DatabaseWindow::messageHandler( HWND hwnd, UINT umsg, SetWindowPos( dw->save_button, HWND_TOP, save_x( width ), save_y( height ), 80, 25, 0 ); UpdateWindow( dw->window ); - } break; + } break; case WM_NOTIFY: dw->listNotify( lParam ); break;