/* * $Header: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/screen_max.cpp,v 1.4 2009/12/15 09:42:59 dbt Exp $ * * -- some odd module to calc max. screen usage of an menue * -- this should be somewhere else (neutrino needs redesign) * * (C) 2004 by rasc * * */ #include #include // -- this is a simple odd class provided for 'static' usage // -- to calculate max. usage of a preferred menue size (x,y) // -- this is due to 16:9 TV zoom functions, which are cutting menues. // -- so using this function will make menues to obey max. screen settings. // // usage: e.g. try to paint menue h: 500 w, 400 (but screen is limited // to (450 x 420)), functions will return 450 and 400 // the _add factor is for boundary... // // 16:9 Zoom-Mode on a Thomson TV set will e.g. be 625x415 // // 2004-03-17 rasc int w_max(int w_size, int w_add) { int dw; int ret; dw = (g_settings.screen_EndX - g_settings.screen_StartX); ret = w_size; if (dw <= (w_size + w_add)) ret = dw - w_add; return ret; } int h_max(int h_size, int h_add) { int dh; int ret; dh = (g_settings.screen_EndY - g_settings.screen_StartY); ret = h_size; if (dh <= (h_size + h_add)) ret = dh - h_add; return ret; } // some helpers to get x and y screen values vor menus and windows int getScreenStartX(int width) { int w = width; int r = (((g_settings.screen_EndX - g_settings.screen_StartX) - w) / 2) + g_settings.screen_StartX; return r < 0 ? 0 : r; } int getScreenStartY(int height) { int y = height; int r = (((g_settings.screen_EndY - g_settings.screen_StartY) - y) / 2) + g_settings.screen_StartY; return r < 0 ? 0 : r; }