Hover menus, add timestamps and such

This commit is contained in:
Nekobit 2023-09-21 23:27:38 -04:00
parent 51e10eae4d
commit c6cecf9117
3 changed files with 156 additions and 9 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.core

View File

@ -19,9 +19,13 @@ create_sidebar(Evas_Object* parent)
elm_toolbar_shrink_mode_set(sb, ELM_TOOLBAR_SHRINK_MENU);
o = elm_toolbar_item_append(sb, "home", "Home", NULL, NULL);
elm_toolbar_item_priority_set(o, -100);
o = elm_toolbar_item_append(sb, "mail-unread", "Unread", NULL, NULL);
elm_toolbar_item_priority_set(o, 100);
elm_toolbar_item_priority_set(o, 0);
o = elm_toolbar_item_append(sb, "mail-unread", "Notifications", NULL, NULL);
elm_toolbar_item_priority_set(o, 1);
o = elm_toolbar_item_append(sb, "view-list-compact", "Lists", NULL, NULL);
elm_toolbar_item_priority_set(o, 1);
o = elm_toolbar_item_append(sb, "mail-send", "Direct", NULL, NULL);
elm_toolbar_item_priority_set(o, 1);
return sb;
}
@ -69,7 +73,7 @@ elm_main(int argc, char** argv)
elm_box_pack_end(status_content, status);
}
Evas_Object* lol = E_SHOW(elm_label_add(status_content));
elm_object_text_set(lol, "sdfjkfhjkahgkljsghklfjghdsjkghsdf");
elm_object_text_set(lol, "¯\\_(ツ)_/¯");
elm_box_pack_end(status_content, lol);
E_END(status_content);

View File

@ -5,6 +5,14 @@
#define PFP_ICON_SIZE 48
#define INTERACT_ICON_SIZE 18
static void
hover_btn_show(void* data, Evas_Object* obj EINA_UNUSED, void* ev_info EINA_UNUSED)
{
Evas_Object* hover = data;
evas_object_show(hover);
}
Evas_Object*
exc_status_add(Evas_Object* parent, struct exc_status status)
{
@ -14,7 +22,7 @@ exc_status_add(Evas_Object* parent, struct exc_status status)
Evas_Object* root_evas = evas_object_rectangle_add(evas_object_evas_get(parent));
E_BEGIN(root_evas);
evas_object_size_hint_weight_set(root_evas, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_min_set(root_evas, 400, 10);
evas_object_size_hint_min_set(root_evas, 440, 10);
elm_table_pack(root, root_evas, 0, 0, 1, 1);
E_END(root_evas);
E_END(root); // Returned and packed into later
@ -22,7 +30,7 @@ exc_status_add(Evas_Object* parent, struct exc_status status)
Evas_Object* st_frame = E_SHOW(elm_frame_add(parent));
E_BEGIN(st_frame);
elm_table_pack(root, st_frame, 0, 0, 1, 1); // Pad hack
evas_object_size_hint_padding_set(st_frame, 3, 3, 3, 3);
evas_object_size_hint_padding_set(st_frame, 3, 3, 3, 1);
evas_object_fullsize(st_frame);
Evas_Object* st_box = E_SHOW(elm_box_add(st_frame));
@ -47,15 +55,24 @@ exc_status_add(Evas_Object* parent, struct exc_status status)
evas_object_fullsize(st_box_rt);
//evas_object_size_hint_align_set(st_box_rt, 0.0, 0.0);
Evas_Object* st_box_rt_info_root = E_SHOW(elm_box_add(st_box_rt));
evas_object_fullsize(st_box_rt_info_root);
elm_box_horizontal_set(st_box_rt_info_root, EINA_TRUE);
Evas_Object* st_box_rt_info = E_SHOW(elm_box_add(st_box_rt));
E_BEGIN(st_box_rt_info);
evas_object_fullsize(st_box_rt_info);
evas_object_size_hint_align_set(st_box_rt_info, 0.0, 0.0);
elm_box_horizontal_set(st_box_rt_info, EINA_TRUE);
evas_object_size_hint_padding_set(st_box_rt_info, 4,4,2,4);
Evas_Object* st_username = E_SHOW(elm_label_add(st_box));
E_BEGIN(st_username);
elm_object_text_set(st_username, "Average poster");
Eina_Strbuf* userstr = eina_strbuf_new();
eina_strbuf_append_printf(userstr, "<b>%s</b>",
"Average poster");
elm_object_text_set(st_username, eina_strbuf_string_get(userstr));
free(eina_strbuf_release(userstr));
elm_box_pack_end(st_box_rt_info, st_username);
E_END(st_username);
@ -72,9 +89,44 @@ exc_status_add(Evas_Object* parent, struct exc_status status)
elm_box_pack_end(st_box_rt_info, st_acct);
E_END(st_acct);
elm_box_pack_end(st_box_rt, st_box_rt_info);
o = E_SHOW(elm_icon_add(st_box));
E_BEGIN(o);
elm_icon_standard_set(o, "computer");
evas_object_size_hint_min_set(o, 16, 16);
evas_object_size_hint_padding_set(o, 6, 0, 0, 0);
elm_box_pack_end(st_box_rt_info, o);
E_END(o);
elm_box_pack_end(st_box_rt_info_root, st_box_rt_info);
E_END(st_box_rt_info);
Evas_Object* st_box_rt_info_rt = E_SHOW(elm_box_add(st_box_rt));
E_BEGIN(st_box_rt_info_rt);
//evas_object_fullsize(st_box_rt_info_rt);
evas_object_size_hint_align_set(st_box_rt_info_rt, 0.95, 0.0);
elm_box_horizontal_set(st_box_rt_info_rt, EINA_TRUE);
evas_object_size_hint_padding_set(st_box_rt_info_rt, 4,16,2,4);
o = E_SHOW(elm_label_add(st_box));
E_BEGIN(o);
evas_object_fullsize(o);
elm_object_text_set(o, "3min");
evas_object_size_hint_align_set(o, 1.0, 0.0);
elm_box_pack_end(st_box_rt_info_rt, o);
E_END(o);
o = E_SHOW(elm_icon_add(st_box));
E_BEGIN(o);
elm_icon_standard_set(o, "system-lock-screen");
evas_object_size_hint_min_set(o, 16, 16);
evas_object_size_hint_padding_set(o, 4, 0, 0, 0);
elm_box_pack_end(st_box_rt_info_rt, o);
E_END(o);
elm_box_pack_end(st_box_rt_info_root, st_box_rt_info_rt);
E_END(st_box_rt_info_rt);
elm_box_pack_end(st_box_rt, st_box_rt_info_root);
Evas_Object* st_content = E_SHOW(elm_entry_add(st_box));
E_BEGIN(st_content);
evas_object_fullsize(st_content);
@ -85,9 +137,14 @@ exc_status_add(Evas_Object* parent, struct exc_status status)
elm_box_pack_end(st_box_rt, st_content);
E_END(st_content);
Evas_Object* st_interact_root = E_SHOW(elm_box_add(st_box));
elm_box_horizontal_set(st_interact_root, EINA_TRUE);
evas_object_fullsize(st_interact_root);
Evas_Object* st_interact = E_SHOW(elm_box_add(st_box));
E_BEGIN(st_interact);
elm_box_horizontal_set(st_interact, EINA_TRUE);
evas_object_fullsize(st_interact);
evas_object_size_hint_align_set(st_interact, 0, 0);
o = E_SHOW(elm_button_add(st_interact));
@ -138,8 +195,93 @@ exc_status_add(Evas_Object* parent, struct exc_status status)
elm_box_pack_end(st_interact, o);
E_END(o)
elm_box_pack_end(st_box_rt, st_interact);
elm_box_pack_end(st_interact_root, st_interact);
E_END(st_interact);
Evas_Object* st_interact_rt = E_SHOW(elm_box_add(st_box));
E_BEGIN(st_interact);
elm_box_horizontal_set(st_interact_rt, EINA_TRUE);
evas_object_fullsize(st_interact_rt);
evas_object_size_hint_align_set(st_interact_rt, 0.92, 0);
o = E_SHOW(elm_button_add(st_interact_rt));
E_BEGIN(o) // Reply
Evas_Object* hover = elm_hover_add(st_interact_rt);
elm_object_style_set(o, "blank");
ico = E_SHOW(elm_icon_add(st_interact_rt));
elm_icon_standard_set(ico, "list-remove");
evas_object_size_hint_min_set(ico, INTERACT_ICON_SIZE, INTERACT_ICON_SIZE);
elm_object_content_set(o, ico);
evas_object_smart_callback_add(o, "clicked", hover_btn_show, hover);
elm_box_pack_end(st_interact_rt, o);
// End button...
// ...Start hover
Evas_Object* p, * q, *r;
elm_object_style_set(hover, "popout");
elm_hover_parent_set(hover, parent);
// CREATE
p = elm_button_add(st_interact_rt);
ico = elm_icon_add(st_interact_rt);
elm_icon_standard_set(ico, "list-remove");
evas_object_size_hint_min_set(ico, INTERACT_ICON_SIZE, INTERACT_ICON_SIZE);
elm_object_content_set(p, ico);
// END CREATE
elm_hover_target_set(hover, o);
elm_object_part_content_set(hover, "middle", p);
p = elm_button_add(st_interact_rt);
q = E_SHOW(elm_icon_add(st_interact_rt));
//elm_icon_standard_set(q, "mail-mark-junk");
elm_icon_standard_set(q, "audio-volume-muted");
elm_object_text_set(p, "Mute");
elm_object_content_set(p, q);
elm_object_part_content_set(hover, "bottom", p);
p = elm_button_add(st_interact_rt);
q = E_SHOW(elm_icon_add(st_interact_rt));
elm_icon_standard_set(q, "edit-delete");
elm_object_content_set(p, q);
elm_object_part_content_set(hover, "right", p);
p = elm_button_add(st_interact_rt);
q = E_SHOW(elm_icon_add(st_interact_rt));
elm_icon_standard_set(q, "user-bookmarks");
elm_object_content_set(p, q);
elm_object_part_content_set(hover, "left", p);
p = elm_box_add(st_interact_rt);
q = E_SHOW(elm_button_add(st_interact_rt));
//elm_object_text_set(q, "Report");
r = E_SHOW(elm_icon_add(st_interact_rt));
elm_icon_standard_set(r, "emblem-important");
elm_object_content_set(q, r);
elm_box_pack_end(p, q);
q = E_SHOW(elm_button_add(st_interact_rt));
elm_object_text_set(q, "Pin");
elm_box_pack_end(p, q);
q = E_SHOW(elm_button_add(st_interact_rt));
//elm_object_text_set(q, "Copy Link");
r = E_SHOW(elm_icon_add(st_interact_rt));
elm_icon_standard_set(r, "emblem-shared");
elm_object_content_set(q, r);
elm_box_pack_end(p, q);
elm_object_part_content_set(hover, "top", p);
// BEGIN items
//elm_hoversel_item_add(o, "Mute Conversation", NULL, ELM_ICON_NONE, NULL, NULL);
//elm_hoversel_item_add(o, "Pin on Profile", NULL, ELM_ICON_NONE, NULL, NULL);
//elm_hoversel_item_add(o, "Bookmark", NULL, ELM_ICON_NONE, NULL, NULL);
//elm_hoversel_item_add(o, "Delete Status", NULL, ELM_ICON_NONE, NULL, NULL);
//elm_hoversel_item_add(o, "Copy link", NULL, ELM_ICON_NONE, NULL, NULL);
//elm_hoversel_item_add(o, "Report", NULL, ELM_ICON_NONE, NULL, NULL);
// END items
E_END(o)
elm_box_pack_end(st_interact_root, st_interact_rt);
E_END(st_interact_rt);
elm_box_pack_end(st_box_rt, st_interact_root);
elm_box_pack_end(st_box, st_box_rt);
E_BEGIN(st_box_rt);