Changeset 8a9a41e in mainline for uspace/lib/ui/src/rbutton.c
- Timestamp:
- 2021-10-24T08:28:43Z (2 years ago)
- Children:
- f628215
- Parents:
- 2ce943a (diff), cd981f2a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Erik Kučák <35500848+Riko196@…> (2021-10-24 08:28:43)
- git-committer:
- GitHub <noreply@…> (2021-10-24 08:28:43)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/rbutton.c
r2ce943a r8a9a41e 186 186 } 187 187 188 /** Paint radio button .188 /** Paint radio button in graphics mode. 189 189 * 190 190 * @param rbutton Radio button 191 191 * @return EOK on success or an error code 192 192 */ 193 errno_t ui_rbutton_paint (ui_rbutton_t *rbutton)193 errno_t ui_rbutton_paint_gfx(ui_rbutton_t *rbutton) 194 194 { 195 195 gfx_coord2_t pos; … … 202 202 center.y = rbutton->rect.p0.y + rbutton_oframe_r; 203 203 204 /* Paint r button frame */204 /* Paint radio button frame */ 205 205 206 206 rc = gfx_set_color(rbutton->group->res->gc, … … 244 244 goto error; 245 245 246 /* Paint r button interior */246 /* Paint radio button interior */ 247 247 depressed = rbutton->held && rbutton->inside; 248 248 … … 296 296 } 297 297 298 /** Paint radio button in text mode. 299 * 300 * @param rbutton Radio button 301 * @return EOK on success or an error code 302 */ 303 errno_t ui_rbutton_paint_text(ui_rbutton_t *rbutton) 304 { 305 gfx_coord2_t pos; 306 gfx_text_fmt_t fmt; 307 bool depressed; 308 errno_t rc; 309 310 /* Paint radio button */ 311 312 depressed = rbutton->held && rbutton->inside; 313 314 pos.x = rbutton->rect.p0.x; 315 pos.y = rbutton->rect.p0.y; 316 317 gfx_text_fmt_init(&fmt); 318 fmt.color = depressed ? rbutton->group->res->entry_act_bg_color : 319 rbutton->group->res->wnd_text_color; 320 fmt.halign = gfx_halign_left; 321 fmt.valign = gfx_valign_top; 322 323 rc = gfx_puttext(rbutton->group->res->font, &pos, &fmt, 324 rbutton->group->selected == rbutton ? "(\u2022)" : "( )"); 325 if (rc != EOK) 326 goto error; 327 328 /* Paint radio button label */ 329 330 pos.x += 4; 331 332 fmt.color = rbutton->group->res->wnd_text_color; 333 334 rc = gfx_puttext(rbutton->group->res->font, &pos, &fmt, 335 rbutton->caption); 336 if (rc != EOK) 337 goto error; 338 339 rc = gfx_update(rbutton->group->res->gc); 340 if (rc != EOK) 341 goto error; 342 343 return EOK; 344 error: 345 return rc; 346 } 347 348 /** Paint radio button. 349 * 350 * @param rbutton Radio button 351 * @return EOK on success or an error code 352 */ 353 errno_t ui_rbutton_paint(ui_rbutton_t *rbutton) 354 { 355 if (rbutton->group->res->textmode) 356 return ui_rbutton_paint_text(rbutton); 357 else 358 return ui_rbutton_paint_gfx(rbutton); 359 } 360 298 361 /** Press down button. 299 362 * … … 316 379 void ui_rbutton_release(ui_rbutton_t *rbutton) 317 380 { 318 ui_rbutton_t *old_selected;319 320 381 if (!rbutton->held) 321 382 return; … … 325 386 if (rbutton->inside) { 326 387 /* Activate radio button */ 327 old_selected = rbutton->group->selected; 328 329 if (old_selected != rbutton) { 330 rbutton->group->selected = rbutton; 331 ui_rbutton_paint(old_selected); 332 } 333 334 /* Repaint and notify */ 335 (void) ui_rbutton_paint(rbutton); 336 337 if (old_selected != rbutton) 338 ui_rbutton_selected(rbutton); 388 ui_rbutton_select(rbutton); 339 389 } 340 390 } … … 368 418 } 369 419 370 /** Button was selected. 420 /** Select radio button. 421 * 422 * @param rbutton Radio button 423 */ 424 void ui_rbutton_select(ui_rbutton_t *rbutton) 425 { 426 ui_rbutton_t *old_selected; 427 428 old_selected = rbutton->group->selected; 429 430 if (old_selected != rbutton) { 431 rbutton->group->selected = rbutton; 432 ui_rbutton_paint(old_selected); 433 } 434 435 /* Repaint and notify */ 436 (void) ui_rbutton_paint(rbutton); 437 438 if (old_selected != rbutton) 439 ui_rbutton_selected(rbutton); 440 } 441 442 /** Notify that button was selected. 371 443 * 372 444 * @param rbutton Radio button
Note:
See TracChangeset
for help on using the changeset viewer.