Changeset 0576df9 in mainline for uspace/lib
- Timestamp:
- 2020-11-14T21:28:35Z (5 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 63b35c7
- Parents:
- 38f5598
- Location:
- uspace/lib
- Files:
-
- 6 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/meson.build
r38f5598 r0576df9 83 83 'ext4', 84 84 'gfxfont', 85 'gfximage', 85 86 'hound', 86 87 'ipcgfx', -
uspace/lib/ui/include/ui/window.h
r38f5598 r0576df9 53 53 extern void ui_window_add(ui_window_t *, ui_control_t *); 54 54 extern void ui_window_remove(ui_window_t *, ui_control_t *); 55 extern errno_t ui_window_resize(ui_window_t *, gfx_rect_t *); 55 56 extern ui_resource_t *ui_window_get_res(ui_window_t *); 56 57 extern gfx_context_t *ui_window_get_gc(ui_window_t *); -
uspace/lib/ui/src/window.c
r38f5598 r0576df9 215 215 } 216 216 217 /** Resize/move window. 218 * 219 * Resize window to the dimensions of @a rect. If @a rect.p0 is not 0,0, 220 * the top-left corner of the window will move on the screen accordingly. 221 * 222 * @param window Window 223 * @param rect Rectangle 224 * 225 * @return EOK on success or an error code 226 */ 227 errno_t ui_window_resize(ui_window_t *window, gfx_rect_t *rect) 228 { 229 gfx_coord2_t offs; 230 gfx_rect_t nrect; 231 errno_t rc; 232 233 /* 234 * Move rect so that p0=0,0 - keep window's coordinate system origin 235 * locked to top-left corner of the window. 236 */ 237 offs = rect->p0; 238 gfx_rect_rtranslate(&offs, rect, &nrect); 239 240 /* dwindow can be NULL in case of unit tests */ 241 if (window->dwindow != NULL) { 242 rc = display_window_resize(window->dwindow, &offs, &nrect); 243 if (rc != EOK) 244 return rc; 245 } 246 247 ui_wdecor_set_rect(window->wdecor, &nrect); 248 ui_wdecor_paint(window->wdecor); 249 return EOK; 250 } 251 217 252 /** Set window callbacks. 218 253 * -
uspace/lib/ui/test/window.c
r38f5598 r0576df9 175 175 } 176 176 177 /** ui_window_resize */ 178 PCUT_TEST(resize) 179 { 180 errno_t rc; 181 ui_t *ui = NULL; 182 ui_wnd_params_t params; 183 ui_window_t *window = NULL; 184 gfx_rect_t nrect; 185 186 rc = ui_create_disp(NULL, &ui); 187 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 188 189 ui_wnd_params_init(¶ms); 190 params.caption = "Hello"; 191 params.rect.p0.x = 0; 192 params.rect.p0.y = 0; 193 params.rect.p1.x = 1; 194 params.rect.p1.y = 1; 195 196 rc = ui_window_create(ui, ¶ms, &window); 197 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 198 PCUT_ASSERT_NOT_NULL(window); 199 200 nrect.p0.x = -1; 201 nrect.p0.y = -1; 202 nrect.p1.x = 2; 203 nrect.p1.y = 2; 204 rc = ui_window_resize(window, &nrect); 205 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 206 207 ui_window_destroy(window); 208 ui_destroy(ui); 209 } 210 177 211 /** ui_window_get_res/gc/rect() return valid objects */ 178 212 PCUT_TEST(get_res_gc_rect)
Note:
See TracChangeset
for help on using the changeset viewer.