1 #ifndef _ELM_GENLIST_EO_H_ 2 #define _ELM_GENLIST_EO_H_ 3 4 #ifndef _ELM_GENLIST_EO_CLASS_TYPE 5 #define _ELM_GENLIST_EO_CLASS_TYPE 6 7 typedef Eo Elm_Genlist; 8 9 #endif 10 11 #ifndef _ELM_GENLIST_EO_TYPES 12 #define _ELM_GENLIST_EO_TYPES 13 14 15 #endif 16 /** Elementary genlist class 17 * 18 * @ingroup Elm_Genlist_Group 19 */ 20 #define ELM_GENLIST_CLASS elm_genlist_class_get() 21 22 EWAPI const Efl_Class *elm_genlist_class_get(void) EINA_CONST; 23 24 /** 25 * @brief Enable/disable homogeneous mode. 26 * 27 * This will enable the homogeneous mode where items are of the same height and 28 * width so that genlist may do the lazy-loading at its maximum (which 29 * increases the performance for scrolling the list). In the normal mode, 30 * genlist will pre-calculate all the items' sizes even though they are not in 31 * use. So items' callbacks are called many times than expected. But 32 * homogeneous mode will skip the item size pre-calculation process so items' 33 * callbacks are called only when the item is needed. 34 * 35 * @note This also works well with group index. 36 * 37 * @param[in] obj The object. 38 * @param[in] homogeneous Assume the items within the genlist are of the same 39 * height and width. Default is @c false. 40 * 41 * @ingroup Elm_Genlist_Group 42 */ 43 EOAPI void elm_obj_genlist_homogeneous_set(Eo *obj, Eina_Bool homogeneous); 44 45 /** 46 * @brief Get whether the homogeneous mode is enabled. 47 * 48 * @param[in] obj The object. 49 * 50 * @return Assume the items within the genlist are of the same height and 51 * width. Default is @c false. 52 * 53 * @ingroup Elm_Genlist_Group 54 */ 55 EOAPI Eina_Bool elm_obj_genlist_homogeneous_get(const Eo *obj); 56 57 /** 58 * @brief Set the genlist select mode. 59 * 60 * #ELM_OBJECT_SELECT_MODE_DEFAULT means that items will call their selection 61 * func and callback once when first becoming selected. Any further clicks will 62 * do nothing, unless you set always select mode. ELM_OBJECT_SELECT_MODE_ALWAYS 63 * means that even if selected, every click will make the selected callbacks be 64 * called. #ELM_OBJECT_SELECT_MODE_NONE will turn off the ability to select 65 * items entirely and they will neither appear selected nor call selected 66 * callback functions. 67 * 68 * @param[in] obj The object. 69 * @param[in] mode The select mode. 70 * 71 * @ingroup Elm_Genlist_Group 72 */ 73 EOAPI void elm_obj_genlist_select_mode_set(Eo *obj, Elm_Object_Select_Mode mode); 74 75 /** 76 * @brief Get the genlist select mode. 77 * 78 * @param[in] obj The object. 79 * 80 * @return The select mode. 81 * 82 * @ingroup Elm_Genlist_Group 83 */ 84 EOAPI Elm_Object_Select_Mode elm_obj_genlist_select_mode_get(const Eo *obj); 85 86 /** 87 * @brief Set focus upon items selection mode 88 * 89 * When enabled, every selection of an item inside the genlist will 90 * automatically set focus to its first focusable widget from the left. This is 91 * true of course if the selection was made by clicking an unfocusable area in 92 * an item or selecting it with a key movement. Clicking on a focusable widget 93 * inside an item will cause this particular item to get focus as usual. 94 * 95 * @param[in] obj The object. 96 * @param[in] enabled The tree effect status. 97 * 98 * @ingroup Elm_Genlist_Group 99 */ 100 EOAPI void elm_obj_genlist_focus_on_selection_set(Eo *obj, Eina_Bool enabled); 101 102 /** 103 * @brief Get whether focus upon item's selection mode is enabled. 104 * 105 * @param[in] obj The object. 106 * 107 * @return The tree effect status. 108 * 109 * @ingroup Elm_Genlist_Group 110 */ 111 EOAPI Eina_Bool elm_obj_genlist_focus_on_selection_get(const Eo *obj); 112 113 /** 114 * @brief Set the timeout in seconds for the longpress event. 115 * 116 * This option will change how long it takes to send an event "longpressed" 117 * after the mouse down signal is sent to the list. If this event occurs, no 118 * "clicked" event will be sent. 119 * 120 * @warning If you set the longpress timeout value with this API, your genlist 121 * will not be affected by the longpress value of elementary config value 122 * later. 123 * 124 * @param[in] obj The object. 125 * @param[in] timeout Timeout in seconds. Default is elm config value (1.0). 126 * 127 * @ingroup Elm_Genlist_Group 128 */ 129 EOAPI void elm_obj_genlist_longpress_timeout_set(Eo *obj, double timeout); 130 131 /** 132 * @brief Get the timeout in seconds for the longpress event. 133 * 134 * @param[in] obj The object. 135 * 136 * @return Timeout in seconds. Default is elm config value (1.0). 137 * 138 * @ingroup Elm_Genlist_Group 139 */ 140 EOAPI double elm_obj_genlist_longpress_timeout_get(const Eo *obj); 141 142 /** 143 * @brief Enable or disable multi-selection in the genlist. 144 * 145 * This enables ($true) or disables ($false) multi-selection in the list. This 146 * allows more than 1 item to be selected. To retrieve the list of selected 147 * items, use @ref elm_obj_genlist_selected_items_get. 148 * 149 * @param[in] obj The object. 150 * @param[in] multi Multi-select enable/disable. Default is disabled. 151 * 152 * @ingroup Elm_Genlist_Group 153 */ 154 EOAPI void elm_obj_genlist_multi_select_set(Eo *obj, Eina_Bool multi); 155 156 /** 157 * @brief Get if multi-selection in genlist is enabled or disabled. 158 * 159 * @param[in] obj The object. 160 * 161 * @return Multi-select enable/disable. Default is disabled. 162 * 163 * @ingroup Elm_Genlist_Group 164 */ 165 EOAPI Eina_Bool elm_obj_genlist_multi_select_get(const Eo *obj); 166 167 /** 168 * @brief Set reorder mode. 169 * 170 * After turning on the reorder mode, longpress on normal item will trigger 171 * reordering of the item. You can move the item up and down. However, reorder 172 * does not work with group item. 173 * 174 * @param[in] obj The object. 175 * @param[in] reorder_mode The reorder mode. 176 * 177 * @ingroup Elm_Genlist_Group 178 */ 179 EOAPI void elm_obj_genlist_reorder_mode_set(Eo *obj, Eina_Bool reorder_mode); 180 181 /** 182 * @brief Get the reorder mode. 183 * 184 * @param[in] obj The object. 185 * 186 * @return The reorder mode. 187 * 188 * @ingroup Elm_Genlist_Group 189 */ 190 EOAPI Eina_Bool elm_obj_genlist_reorder_mode_get(const Eo *obj); 191 192 /** 193 * @brief Set Genlist decorate mode. 194 * 195 * This sets Genlist decorate mode to all items. 196 * 197 * @param[in] obj The object. 198 * @param[in] decorated The decorate mode status. 199 * 200 * @ingroup Elm_Genlist_Group 201 */ 202 EOAPI void elm_obj_genlist_decorate_mode_set(Eo *obj, Eina_Bool decorated); 203 204 /** 205 * @brief Get Genlist decorate mode. 206 * 207 * @param[in] obj The object. 208 * 209 * @return The decorate mode status. 210 * 211 * @ingroup Elm_Genlist_Group 212 */ 213 EOAPI Eina_Bool elm_obj_genlist_decorate_mode_get(const Eo *obj); 214 215 /** 216 * @brief Set the genlist multi select mode. 217 * 218 * #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT means that select/unselect items 219 * whenever each item is clicked. #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL 220 * means that only one item will be selected although multi-selection is 221 * enabled, if clicked without pressing control key. This mode is only 222 * available with multi-selection. 223 * 224 * @param[in] obj The object. 225 * @param[in] mode The multi select mode 226 * 227 * @since 1.8 228 * 229 * @ingroup Elm_Genlist_Group 230 */ 231 EOAPI void elm_obj_genlist_multi_select_mode_set(Eo *obj, Elm_Object_Multi_Select_Mode mode); 232 233 /** 234 * @brief Get the genlist multi select mode. 235 * 236 * @param[in] obj The object. 237 * 238 * @return The multi select mode 239 * 240 * @since 1.8 241 * 242 * @ingroup Elm_Genlist_Group 243 */ 244 EOAPI Elm_Object_Multi_Select_Mode elm_obj_genlist_multi_select_mode_get(const Eo *obj); 245 246 /** 247 * @brief Set the maximum number of items within an item block. 248 * 249 * This will configure the block count to tune to the target with particular 250 * performance matrix. 251 * 252 * A block of objects will be used to reduce the number of operations due to 253 * many objects in the screen. It can determine the visibility, or if the 254 * object has changed, it theme needs to be updated, etc. doing this kind of 255 * calculation to the entire block, instead of per object. 256 * 257 * The default value for the block count is enough for most lists, so unless 258 * you know you will have a lot of objects visible in the screen at the same 259 * time, don't try to change this. 260 * 261 * @param[in] obj The object. 262 * @param[in] count Maximum number of items within an item block. Default is 263 * 32. 264 * 265 * @ingroup Elm_Genlist_Group 266 */ 267 EOAPI void elm_obj_genlist_block_count_set(Eo *obj, int count); 268 269 /** 270 * @brief Get the maximum number of items within an item block. 271 * 272 * @param[in] obj The object. 273 * 274 * @return Maximum number of items within an item block. Default is 32. 275 * 276 * @ingroup Elm_Genlist_Group 277 */ 278 EOAPI int elm_obj_genlist_block_count_get(const Eo *obj); 279 280 /** 281 * @brief Control genlist tree effect. 282 * 283 * @param[in] obj The object. 284 * @param[in] enabled The tree effect status. 285 * 286 * @ingroup Elm_Genlist_Group 287 */ 288 EOAPI void elm_obj_genlist_tree_effect_enabled_set(Eo *obj, Eina_Bool enabled); 289 290 /** 291 * @brief Control genlist tree effect. 292 * 293 * @param[in] obj The object. 294 * 295 * @return The tree effect status. 296 * 297 * @ingroup Elm_Genlist_Group 298 */ 299 EOAPI Eina_Bool elm_obj_genlist_tree_effect_enabled_get(const Eo *obj); 300 301 /** 302 * @brief Set whether the genlist items should be highlighted on item 303 * selection. 304 * 305 * This will turn on/off the highlight effect on item selection. The selected 306 * and clicked callback functions will still be called. 307 * 308 * Highlight is enabled by default. 309 * 310 * @param[in] obj The object. 311 * @param[in] highlight @c true to enable highlighting or @c false to disable 312 * it. 313 * 314 * @ingroup Elm_Genlist_Group 315 */ 316 EOAPI void elm_obj_genlist_highlight_mode_set(Eo *obj, Eina_Bool highlight); 317 318 /** 319 * @brief Get whether the genlist items' should be highlighted when item 320 * selected. 321 * 322 * @param[in] obj The object. 323 * 324 * @return @c true to enable highlighting or @c false to disable it. 325 * 326 * @ingroup Elm_Genlist_Group 327 */ 328 EOAPI Eina_Bool elm_obj_genlist_highlight_mode_get(const Eo *obj); 329 330 /** 331 * @brief This sets the horizontal stretching mode. 332 * 333 * This sets the mode used for sizing items horizontally. Valid modes are 334 * @ref ELM_LIST_LIMIT, @ref ELM_LIST_SCROLL, and @ref ELM_LIST_COMPRESS. The 335 * default is @ref ELM_LIST_SCROLL. This mode means that if items are too wide 336 * to fit, the scroller will scroll horizontally. Otherwise items are expanded 337 * to fill the width of the viewport of the scroller. If it is 338 * @ref ELM_LIST_LIMIT, items will be expanded to the viewport width and 339 * limited to that size. If it is @ref ELM_LIST_COMPRESS, the item width will 340 * be fixed (restricted to a minimum of) to the list width when calculating its 341 * size in order to allow the height to be calculated based on it. This allows, 342 * for instance, text block to wrap lines if the Edje part is configured with 343 * "text.min: 0 1". 344 * 345 * @note @ref ELM_LIST_COMPRESS will make list resize slower as it will have to 346 * recalculate every item height again whenever the list width changes! 347 * 348 * @note Homogeneous mode gives all items in the genlist the same width/height. 349 * With @ref ELM_LIST_COMPRESS, genlist items initialize fast, but there cannot 350 * be any sub-objects in the genlist which require on-the-fly resizing (such as 351 * TEXTBLOCK). In this case some dynamic resizable objects in the genlist might 352 * not diplay properly. 353 * 354 * @param[in] obj The object. 355 * @param[in] mode The mode to use (one of @ref ELM_LIST_SCROLL or 356 * @ref ELM_LIST_LIMIT). 357 * 358 * @ingroup Elm_Genlist_Group 359 */ 360 EOAPI void elm_obj_genlist_mode_set(Eo *obj, Elm_List_Mode mode); 361 362 /** 363 * @brief Get the horizontal stretching mode. 364 * 365 * @param[in] obj The object. 366 * 367 * @return The mode to use (one of @ref ELM_LIST_SCROLL or 368 * @ref ELM_LIST_LIMIT). 369 * 370 * @ingroup Elm_Genlist_Group 371 */ 372 EOAPI Elm_List_Mode elm_obj_genlist_mode_get(const Eo *obj); 373 374 /** 375 * @brief Get active genlist mode item. 376 * 377 * This function returns the item that was activated with a mode, by the 378 * function @ref elm_obj_genlist_decorate_mode_set. 379 * 380 * @param[in] obj The object. 381 * 382 * @return The active item for that current mode. Or @c null if no item is 383 * activated with any mode. 384 * 385 * @ingroup Elm_Genlist_Group 386 */ 387 EOAPI Elm_Widget_Item *elm_obj_genlist_decorated_item_get(const Eo *obj); 388 389 /** 390 * @brief Get the selected item in the genlist. 391 * 392 * This gets the selected item in the list (if multi-selection is enabled, only 393 * the item that was first selected in the list is returned - which is not very 394 * useful, so see @ref elm_obj_genlist_selected_items_get for when 395 * multi-selection is used). 396 * 397 * If no item is selected, @c null is returned. 398 * 399 * @param[in] obj The object. 400 * 401 * @return The selected item, or @c null if none is selected. 402 * 403 * @ingroup Elm_Genlist_Group 404 */ 405 EOAPI Elm_Widget_Item *elm_obj_genlist_selected_item_get(const Eo *obj); 406 407 /** 408 * @brief Get the first item in the genlist. 409 * 410 * This returns the first item in the list. 411 * 412 * If filter is set on genlist, it returns the first filtered item in the list. 413 * 414 * @param[in] obj The object. 415 * 416 * @return The first item or @c null. 417 * 418 * @ingroup Elm_Genlist_Group 419 */ 420 EOAPI Elm_Widget_Item *elm_obj_genlist_first_item_get(const Eo *obj); 421 422 /** 423 * @brief Get a list of realized items in genlist. 424 * 425 * This returns a list of the realized items in the genlist. The list contains 426 * genlist item pointers. The list must be freed by the caller when done with 427 * @ref eina_list_free. The item pointers in the list are only valid so long as 428 * those items are not deleted or the genlist is not deleted. 429 * 430 * @param[in] obj The object. 431 * 432 * @return List of realized items 433 * 434 * @ingroup Elm_Genlist_Group 435 */ 436 EOAPI Eina_List *elm_obj_genlist_realized_items_get(const Eo *obj) EINA_WARN_UNUSED_RESULT; 437 438 /** 439 * @brief Get a list of selected items in the genlist. 440 * 441 * It returns a list of the selected items. This list pointer is only valid so 442 * long as the selection doesn't change (no items are selected or unselected, 443 * or unselected implicitl by deletion). The list contains genlist items 444 * pointers. The order of the items in this list is the order which they were 445 * selected, i.e. the first item in this list is the first item that was 446 * selected, and so on. 447 * 448 * @note If not in multi-select mode, consider using function 449 * @ref elm_obj_genlist_selected_item_get instead. 450 * 451 * @param[in] obj The object. 452 * 453 * @return List of selected items 454 * 455 * @ingroup Elm_Genlist_Group 456 */ 457 EOAPI const Eina_List *elm_obj_genlist_selected_items_get(const Eo *obj); 458 459 /** 460 * @brief Get the last item in the genlist 461 * 462 * This returns the last item in the list. 463 * 464 * If filter is set to genlist, it returns last filtered item in the list. 465 * 466 * @param[in] obj The object. 467 * 468 * @return Last item in list 469 * 470 * @ingroup Elm_Genlist_Group 471 */ 472 EOAPI Elm_Widget_Item *elm_obj_genlist_last_item_get(const Eo *obj); 473 474 /** 475 * @brief Insert an item before another in a genlist widget 476 * 477 * This inserts an item before another in the list. It will be in the same tree 478 * level or group as the item it is inserted before. 479 * 480 * @param[in] obj The object. 481 * @param[in] itc The item class for the item. 482 * @param[in] data The item data. 483 * @param[in] parent The parent item, or @c null if none. 484 * @param[in] before_it The item to place this new one before. 485 * @param[in] type Item type. 486 * @param[in] func Convenience function called when the item is selected. 487 * @param[in] func_data Data passed to @c func above. 488 * 489 * @return Handle to inserted item 490 * 491 * @ingroup Elm_Genlist_Group 492 */ 493 EOAPI Elm_Widget_Item *elm_obj_genlist_item_insert_before(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *before_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data); 494 495 /** 496 * @brief Update the contents of all realized items. 497 * 498 * This updates all realized items by calling all the item class functions 499 * again to get the contents, texts and states. Use this when the original item 500 * data has changed and the changes are desired to be reflected. 501 * 502 * To update just one item, use @ref elm_genlist_item_update. 503 * @param[in] obj The object. 504 * 505 * @ingroup Elm_Genlist_Group 506 */ 507 EOAPI void elm_obj_genlist_realized_items_update(Eo *obj); 508 509 /** 510 * @brief Insert an item after another in a genlist widget 511 * 512 * This inserts an item after another in the list. It will be in the same tree 513 * level or group as the item it is inserted after. 514 * 515 * @param[in] obj The object. 516 * @param[in] itc The item class for the item. 517 * @param[in] data The item data. 518 * @param[in] parent The parent item, or @c null if none. 519 * @param[in] after_it The item to place this new one after. 520 * @param[in] type Item type. 521 * @param[in] func Convenience function called when the item is selected. 522 * @param[in] func_data Data passed to @c func above. 523 * 524 * @return Handle to inserted item 525 * 526 * @ingroup Elm_Genlist_Group 527 */ 528 EOAPI Elm_Widget_Item *elm_obj_genlist_item_insert_after(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *after_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data); 529 530 /** 531 * @brief Get the item that is at the x, y canvas coords. 532 * 533 * This returns the item at the given coordinates (which are canvas relative, 534 * not object-relative). If an item is at that coordinate, that item handle is 535 * returned, and if @c posret is not NULL, the integer pointed to is set to a 536 * value of -1, 0 or 1, depending if the coordinate is on the upper portion of 537 * that item (-1), on the middle section (0) or on the lower part (1). If NULL 538 * is returned as an item (no item found there), then posret may indicate -1 or 539 * 1 based if the coordinate is above or below all items respectively in the 540 * genlist. 541 * 542 * @param[in] obj The object. 543 * @param[in] x The input x coordinate. 544 * @param[in] y The input y coordinate. 545 * @param[out] posret The position relative to the item returned here. 546 * 547 * @return Item at position 548 * 549 * @ingroup Elm_Genlist_Group 550 */ 551 EOAPI Elm_Widget_Item *elm_obj_genlist_at_xy_item_get(const Eo *obj, int x, int y, int *posret); 552 553 /** 554 * @brief Set filter mode with key. 555 * 556 * This initiates the filter mode of genlist with user/application provided 557 * key. If key is NULL, the filter mode is turned off. 558 * 559 * The filter data passed has to be managed by application itself and should 560 * not be deleted before genlist is deleted(or while filtering is not done. 561 * 562 * @param[in] obj The object. 563 * @param[in] key Filter key 564 * 565 * @ingroup Elm_Genlist_Group 566 */ 567 EOAPI void elm_obj_genlist_filter_set(Eo *obj, void *key); 568 569 /** 570 * @brief Returns an iterator over the list of filtered items. 571 * 572 * Return NULL if filter is not set. Application must take care of the case 573 * while calling the API. Must be freed after use. 574 * 575 * @param[in] obj The object. 576 * 577 * @return Iterator on genlist 578 * 579 * @ingroup Elm_Genlist_Group 580 */ 581 EOAPI Eina_Iterator *elm_obj_genlist_filter_iterator_new(Eo *obj); 582 583 /** 584 * @brief Return how many items have passed the filter currently. 585 * 586 * This behaviour is O(1) and returns the count of items which are currently 587 * passed by the filter. After "filter,done", the call returns total count of 588 * the filtered items. 589 * 590 * @param[in] obj The object. 591 * 592 * @return Count of items passing the filter 593 * 594 * @since 1.18 595 * 596 * @ingroup Elm_Genlist_Group 597 */ 598 EOAPI unsigned int elm_obj_genlist_filtered_items_count(const Eo *obj); 599 600 /** 601 * @brief Return how many items are currently in a list. 602 * 603 * This behavior is O(1) and includes items which may or may not be realized. 604 * 605 * @param[in] obj The object. 606 * 607 * @return Item in list 608 * 609 * @ingroup Elm_Genlist_Group 610 */ 611 EOAPI unsigned int elm_obj_genlist_items_count(const Eo *obj); 612 613 /** 614 * @brief Prepend a new item in a given genlist widget. 615 * 616 * This adds an item to the beginning of the list or beginning of the children 617 * of the parent if given. 618 * 619 * @param[in] obj The object. 620 * @param[in] itc The item class for the item. 621 * @param[in] data The item data. 622 * @param[in] parent The parent item, or @c null if none. 623 * @param[in] type Item type. 624 * @param[in] func Convenience function called when the item is selected. 625 * @param[in] func_data Data passed to @c func above. 626 * 627 * @return Handle to prepended item 628 * 629 * @ingroup Elm_Genlist_Group 630 */ 631 EOAPI Elm_Widget_Item *elm_obj_genlist_item_prepend(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data); 632 633 /** 634 * @brief Remove all items from a given genlist widget. 635 * 636 * This removes (and deletes) all items in @c obj, leaving it empty. 637 * @param[in] obj The object. 638 * 639 * @ingroup Elm_Genlist_Group 640 */ 641 EOAPI void elm_obj_genlist_clear(Eo *obj); 642 643 /** 644 * @brief Append a new item in a given genlist widget. 645 * 646 * This adds the given item to the end of the list or the end of the children 647 * list if the @c parent is given. 648 * 649 * @param[in] obj The object. 650 * @param[in] itc The item class for the item. 651 * @param[in] data The item data. 652 * @param[in] parent The parent item, or @c null if none. 653 * @param[in] type Item type. 654 * @param[in] func Convenience function called when the item is selected. 655 * @param[in] func_data Data passed to @c func above. 656 * 657 * @return Handle to appended item 658 * 659 * @ingroup Elm_Genlist_Group 660 */ 661 EOAPI Elm_Widget_Item *elm_obj_genlist_item_append(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data); 662 663 /** 664 * @brief Insert a new item into the sorted genlist object 665 * 666 * This inserts an item in the genlist based on user defined comparison 667 * function. The two arguments passed to the function @c func are genlist item 668 * handles to compare. 669 * 670 * @param[in] obj The object. 671 * @param[in] itc The item class for the item. 672 * @param[in] data The item data. 673 * @param[in] parent The parent item, or @c null if none. 674 * @param[in] type Item type. 675 * @param[in] comp The function called for the sort. 676 * @param[in] func Convenience function called when the item is selected. 677 * @param[in] func_data Data passed to @c func above. 678 * 679 * @return Handle to inserted item 680 * 681 * @ingroup Elm_Genlist_Group 682 */ 683 EOAPI Elm_Widget_Item *elm_obj_genlist_item_sorted_insert(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data); 684 685 /** 686 * @brief Get genlist item by given string. 687 * 688 * It takes pointer to the genlist item that will be used to start search from 689 * it. 690 * 691 * This function uses globs (like "*.jpg") for searching and takes search flags 692 * as last parameter That is a bitfield with values to be ored together or 0 693 * for no flags. 694 * 695 * @param[in] obj The object. 696 * @param[in] item_to_search_from Pointer to item to start search from. If 697 * @c null, search will be started from the first item of the genlist. 698 * @param[in] part_name Name of the TEXT part of genlist item to search string 699 * in. 700 * @param[in] pattern The search pattern. 701 * @param[in] flags Search flags. 702 * 703 * @return Searched item 704 * 705 * @since 1.11 706 * 707 * @ingroup Elm_Genlist_Group 708 */ 709 EOAPI Elm_Widget_Item *elm_obj_genlist_search_by_text_item_get(Eo *obj, Elm_Widget_Item *item_to_search_from, const char *part_name, const char *pattern, Elm_Glob_Match_Flags flags); 710 711 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_ITEM_FOCUSED; 712 713 /** Called when genlist item got focus 714 * @return Efl_Object * 715 * 716 * @ingroup Elm_Genlist_Group 717 */ 718 #define ELM_GENLIST_EVENT_ITEM_FOCUSED (&(_ELM_GENLIST_EVENT_ITEM_FOCUSED)) 719 720 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_ITEM_UNFOCUSED; 721 722 /** Called when genlist item lost focus 723 * @return Efl_Object * 724 * 725 * @ingroup Elm_Genlist_Group 726 */ 727 #define ELM_GENLIST_EVENT_ITEM_UNFOCUSED (&(_ELM_GENLIST_EVENT_ITEM_UNFOCUSED)) 728 729 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_DRAG; 730 731 /** Called when vertical bar is dragged 732 * 733 * @ingroup Elm_Genlist_Group 734 */ 735 #define ELM_GENLIST_EVENT_VBAR_DRAG (&(_ELM_GENLIST_EVENT_VBAR_DRAG)) 736 737 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_PRESS; 738 739 /** Called when vertical bar is pressed 740 * 741 * @ingroup Elm_Genlist_Group 742 */ 743 #define ELM_GENLIST_EVENT_VBAR_PRESS (&(_ELM_GENLIST_EVENT_VBAR_PRESS)) 744 745 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_UNPRESS; 746 747 /** Called when vertical bar is no longer pressed 748 * 749 * @ingroup Elm_Genlist_Group 750 */ 751 #define ELM_GENLIST_EVENT_VBAR_UNPRESS (&(_ELM_GENLIST_EVENT_VBAR_UNPRESS)) 752 753 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_DRAG; 754 755 /** Called when horizontal bar is dragged 756 * 757 * @ingroup Elm_Genlist_Group 758 */ 759 #define ELM_GENLIST_EVENT_HBAR_DRAG (&(_ELM_GENLIST_EVENT_HBAR_DRAG)) 760 761 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_PRESS; 762 763 /** Called when horizontal bar is pressed 764 * 765 * @ingroup Elm_Genlist_Group 766 */ 767 #define ELM_GENLIST_EVENT_HBAR_PRESS (&(_ELM_GENLIST_EVENT_HBAR_PRESS)) 768 769 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_UNPRESS; 770 771 /** Called when horizontal bar is no longer pressed 772 * 773 * @ingroup Elm_Genlist_Group 774 */ 775 #define ELM_GENLIST_EVENT_HBAR_UNPRESS (&(_ELM_GENLIST_EVENT_HBAR_UNPRESS)) 776 777 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_TOP; 778 779 /** Called when top edge is reached 780 * 781 * @ingroup Elm_Genlist_Group 782 */ 783 #define ELM_GENLIST_EVENT_EDGE_TOP (&(_ELM_GENLIST_EVENT_EDGE_TOP)) 784 785 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_BOTTOM; 786 787 /** Called when bottom edge is reached 788 * 789 * @ingroup Elm_Genlist_Group 790 */ 791 #define ELM_GENLIST_EVENT_EDGE_BOTTOM (&(_ELM_GENLIST_EVENT_EDGE_BOTTOM)) 792 793 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_LEFT; 794 795 /** Called when left edge is reached 796 * 797 * @ingroup Elm_Genlist_Group 798 */ 799 #define ELM_GENLIST_EVENT_EDGE_LEFT (&(_ELM_GENLIST_EVENT_EDGE_LEFT)) 800 801 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_RIGHT; 802 803 /** Called when right edge is reached 804 * 805 * @ingroup Elm_Genlist_Group 806 */ 807 #define ELM_GENLIST_EVENT_EDGE_RIGHT (&(_ELM_GENLIST_EVENT_EDGE_RIGHT)) 808 809 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED; 810 811 /** Called when genlist item moved 812 * @return Efl_Object * 813 * 814 * @ingroup Elm_Genlist_Group 815 */ 816 #define ELM_GENLIST_EVENT_MOVED (&(_ELM_GENLIST_EVENT_MOVED)) 817 818 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED_BEFORE; 819 820 /** Called when genlist item moved before 821 * @return Efl_Object * 822 * 823 * @ingroup Elm_Genlist_Group 824 */ 825 #define ELM_GENLIST_EVENT_MOVED_BEFORE (&(_ELM_GENLIST_EVENT_MOVED_BEFORE)) 826 827 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED_AFTER; 828 829 /** Called when genlist item moved after 830 * @return Efl_Object * 831 * 832 * @ingroup Elm_Genlist_Group 833 */ 834 #define ELM_GENLIST_EVENT_MOVED_AFTER (&(_ELM_GENLIST_EVENT_MOVED_AFTER)) 835 836 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_SWIPE; 837 838 /** Called when swipe is detected 839 * @return Efl_Object * 840 * 841 * @ingroup Elm_Genlist_Group 842 */ 843 #define ELM_GENLIST_EVENT_SWIPE (&(_ELM_GENLIST_EVENT_SWIPE)) 844 845 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_PINCH_IN; 846 847 /** Called when multitouch pinch in detected 848 * @return Efl_Object * 849 * 850 * @ingroup Elm_Genlist_Group 851 */ 852 #define ELM_GENLIST_EVENT_MULTI_PINCH_IN (&(_ELM_GENLIST_EVENT_MULTI_PINCH_IN)) 853 854 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_PINCH_OUT; 855 856 /** Called when multitouch pinch out detected 857 * @return Efl_Object * 858 * 859 * @ingroup Elm_Genlist_Group 860 */ 861 #define ELM_GENLIST_EVENT_MULTI_PINCH_OUT (&(_ELM_GENLIST_EVENT_MULTI_PINCH_OUT)) 862 863 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN; 864 865 /** Called when multitouch swipe down detected 866 * @return Efl_Object * 867 * 868 * @ingroup Elm_Genlist_Group 869 */ 870 #define ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN)) 871 872 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_UP; 873 874 /** Called when multitouch swipe up detected 875 * @return Efl_Object * 876 * 877 * @ingroup Elm_Genlist_Group 878 */ 879 #define ELM_GENLIST_EVENT_MULTI_SWIPE_UP (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_UP)) 880 881 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT; 882 883 /** Called when multitouch swipe right detected 884 * @return Efl_Object * 885 * 886 * @ingroup Elm_Genlist_Group 887 */ 888 #define ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT)) 889 890 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT; 891 892 /** Called when multitouch swipe left detected 893 * @return Efl_Object * 894 * 895 * @ingroup Elm_Genlist_Group 896 */ 897 #define ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT)) 898 899 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_RELEASED; 900 901 /** Called when genlist is released 902 * @return Efl_Object * 903 * 904 * @ingroup Elm_Genlist_Group 905 */ 906 #define ELM_GENLIST_EVENT_RELEASED (&(_ELM_GENLIST_EVENT_RELEASED)) 907 908 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_ACTIVATED; 909 910 /** called when genlist is activated 911 * @return Efl_Object * 912 * 913 * @ingroup Elm_Genlist_Group 914 */ 915 #define ELM_GENLIST_EVENT_ACTIVATED (&(_ELM_GENLIST_EVENT_ACTIVATED)) 916 917 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HIGHLIGHTED; 918 919 /** Called when genlist is highlighted 920 * @return Efl_Object * 921 * 922 * @ingroup Elm_Genlist_Group 923 */ 924 #define ELM_GENLIST_EVENT_HIGHLIGHTED (&(_ELM_GENLIST_EVENT_HIGHLIGHTED)) 925 926 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_UNHIGHLIGHTED; 927 928 /** Called when genlist is no longer highlighted 929 * @return Efl_Object * 930 * 931 * @ingroup Elm_Genlist_Group 932 */ 933 #define ELM_GENLIST_EVENT_UNHIGHLIGHTED (&(_ELM_GENLIST_EVENT_UNHIGHLIGHTED)) 934 935 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_REALIZED; 936 937 /** Called when genlist is realized 938 * @return Efl_Object * 939 * 940 * @ingroup Elm_Genlist_Group 941 */ 942 #define ELM_GENLIST_EVENT_REALIZED (&(_ELM_GENLIST_EVENT_REALIZED)) 943 944 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_UNREALIZED; 945 946 /** Called when genlist is unrealized 947 * @return Efl_Object * 948 * 949 * @ingroup Elm_Genlist_Group 950 */ 951 #define ELM_GENLIST_EVENT_UNREALIZED (&(_ELM_GENLIST_EVENT_UNREALIZED)) 952 953 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_CONTRACT_REQUEST; 954 955 /** Called when contract is requested 956 * @return Efl_Object * 957 * 958 * @ingroup Elm_Genlist_Group 959 */ 960 #define ELM_GENLIST_EVENT_CONTRACT_REQUEST (&(_ELM_GENLIST_EVENT_CONTRACT_REQUEST)) 961 962 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EXPAND_REQUEST; 963 964 /** Called when expand is requested 965 * @return Efl_Object * 966 * 967 * @ingroup Elm_Genlist_Group 968 */ 969 #define ELM_GENLIST_EVENT_EXPAND_REQUEST (&(_ELM_GENLIST_EVENT_EXPAND_REQUEST)) 970 971 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_CONTRACTED; 972 973 /** called when genlist is contracted 974 * @return Efl_Object * 975 * 976 * @ingroup Elm_Genlist_Group 977 */ 978 #define ELM_GENLIST_EVENT_CONTRACTED (&(_ELM_GENLIST_EVENT_CONTRACTED)) 979 980 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EXPANDED; 981 982 /** Called when genlist is expanded 983 * @return Efl_Object * 984 * 985 * @ingroup Elm_Genlist_Group 986 */ 987 #define ELM_GENLIST_EVENT_EXPANDED (&(_ELM_GENLIST_EVENT_EXPANDED)) 988 989 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_INDEX_UPDATE; 990 991 /** Called when genlist index updated 992 * @return Efl_Object * 993 * 994 * @ingroup Elm_Genlist_Group 995 */ 996 #define ELM_GENLIST_EVENT_INDEX_UPDATE (&(_ELM_GENLIST_EVENT_INDEX_UPDATE)) 997 998 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED; 999 1000 /** Called when genlist tree effect finished 1001 * 1002 * @ingroup Elm_Genlist_Group 1003 */ 1004 #define ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED (&(_ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED)) 1005 1006 EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_FILTER_DONE; 1007 1008 /** Called when genlist filter is done 1009 * 1010 * @ingroup Elm_Genlist_Group 1011 */ 1012 #define ELM_GENLIST_EVENT_FILTER_DONE (&(_ELM_GENLIST_EVENT_FILTER_DONE)) 1013 1014 #endif 1015