Display some "statuses"

This commit is contained in:
Nekobit 2023-09-19 22:54:52 -04:00
parent c5f22a13d2
commit adbec94559
7 changed files with 145 additions and 4 deletions

15
src/etc.c Normal file
View File

@ -0,0 +1,15 @@
#include "etc.h"
Evas_Object*
E_SHOW(Evas_Object* obj)
{
evas_object_show(obj);
return obj;
}
void
evas_object_fullsize(Evas_Object* obj)
{
evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set (obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
}

View File

@ -1,5 +1,7 @@
#ifndef ETC_H
#define ETC_H
#include <Elementary.h>
#include "../exclaim_config.h"
#define _E_COMMENT(...) do { \
switch ((uintptr_t)__VA_ARGS__) \
@ -9,4 +11,10 @@
#define E_BEGIN _E_COMMENT
#define E_END _E_COMMENT
Evas_Object*
E_SHOW(Evas_Object* obj);
void
evas_object_fullsize(Evas_Object* obj);
#endif // ETC_H

14
src/exc_types.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef EXC_TYPES_H
#define EXC_TYPES_H
struct exc_acct
{
};
struct exc_status
{
char* title;
char* body;
};
#endif // EXC_TYPES_H

View File

@ -2,6 +2,7 @@
#include <Elementary.h>
#include "../exclaim_config.h"
#include "etc.h"
#include "status.h"
EAPI_MAIN int
elm_main(int argc, char** argv)
@ -14,11 +15,33 @@ elm_main(int argc, char** argv)
Evas_Object* win = elm_win_util_standard_add("exclaim_root", "Exclaim");
E_BEGIN(win);
elm_win_icon_name_set(win, "email-unread");
elm_win_autodel_set(win, EINA_TRUE);
elm_win_icon_name_set(win, "email-unread");
elm_win_autodel_set(win, EINA_TRUE);
Evas_Object* status_scr = E_SHOW(elm_scroller_add(win));
E_BEGIN(status_scr);
evas_object_fullsize(status_scr);
Evas_Object* status_content = E_SHOW(elm_box_add(status_scr));
E_BEGIN(status_content);
evas_object_fullsize(status_content);
elm_object_content_set(status_scr, status_content);
for (int i = 0; i < 30; ++i)
{
struct exc_status st_test = {
.title = "wow",
};
Evas_Object* status = E_SHOW(exc_status_add(status_content, st_test));
elm_box_pack_end(status_content, status);
}
E_END(status_content);
E_END(status_scr);
evas_object_resize(win, ELM_SCALE_SIZE(700), ELM_SCALE_SIZE(300));
evas_object_show(win);
evas_object_resize(win, ELM_SCALE_SIZE(700), ELM_SCALE_SIZE(300));
elm_win_resize_object_add(win, status_scr);
E_SHOW(win);
E_END(win);
elm_run();

View File

@ -2,6 +2,8 @@ dir = join_paths(dir_bin)
inc = include_directories('.')
executable('exclaim', [
'main.c',
'status.c',
'etc.c',
],
include_directories: inc,
dependencies: deps,

71
src/status.c Normal file
View File

@ -0,0 +1,71 @@
#include <Elementary.h>
#include "status.h"
#include "etc.h"
#define PFP_ICON_SIZE 48
Evas_Object*
exc_status_add(Evas_Object* parent, struct exc_status status)
{
Evas_Object* st_frame = elm_frame_add(parent);
E_BEGIN(st_frame);
evas_object_size_hint_padding_set(st_frame, 3, 3, 3, 3);
//evas_object_size_hint_min_set(st_frame, 300, 300);
Evas_Object* st_box = E_SHOW(elm_box_add(st_frame));
E_BEGIN(st_box);
//evas_object_size_hint_min_set(st_box, 300, 300);
//evas_object_size_hint_weight_set(st_box, 300, 300);
elm_box_horizontal_set(st_box, EINA_TRUE);
// Add pfp icon
Evas_Object* st_icon = E_SHOW(elm_icon_add(st_box));
E_BEGIN(st_icon);
evas_object_size_hint_align_set(st_icon, 0.5, 0.0);
evas_object_size_hint_min_set(st_icon, PFP_ICON_SIZE, PFP_ICON_SIZE);
evas_object_size_hint_max_set(st_icon, PFP_ICON_SIZE, PFP_ICON_SIZE);
evas_object_size_hint_padding_set(st_icon, 3, 5, 3, 3);
elm_icon_standard_set(st_icon, "minetest");
elm_box_pack_end(st_box, st_icon);
E_END(st_icon);
Evas_Object* st_box_rt = E_SHOW(elm_box_add(st_box));
E_BEGIN(st_box_rt);
evas_object_size_hint_align_set(st_box_rt, 0.5, 0.0);
Evas_Object* st_box_rt_info = E_SHOW(elm_box_add(st_box_rt));
E_BEGIN(st_box_rt_info);
elm_box_horizontal_set(st_box_rt_info, EINA_TRUE);
evas_object_size_hint_padding_set(st_box_rt_info, 3, 3, 3, 3);
Evas_Object* st_username = E_SHOW(elm_label_add(st_box));
E_BEGIN(st_username);
elm_object_text_set(st_username, "Status");
elm_box_pack_end(st_box_rt_info, st_username);
E_END(st_username);
elm_box_pack_end(st_box_rt, st_box_rt_info);
E_END(st_box_rt_info);
Evas_Object* st_content = E_SHOW(elm_entry_add(st_box));
E_BEGIN(st_content);
elm_object_text_set(st_username, "Status");
evas_object_size_hint_min_set(st_content, 300, 300);
//evas_object_size_hint_weight_set(st_content
elm_entry_editable_set(st_content, EINA_FALSE);
elm_object_text_set(st_content, "Lol, lmao. <b>LOL</> even");
elm_box_pack_end(st_box_rt, st_content);
E_END(st_content);
elm_box_pack_end(st_box, st_box_rt);
E_BEGIN(st_box_rt);
elm_object_content_set(st_frame, st_box);
E_END(st_box);
E_END(st_frame);
return st_frame;
}

8
src/status.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef STATUS_H
#define STATUS_H
#include "exc_types.h"
Evas_Object*
exc_status_add(Evas_Object* parent, struct exc_status status);
#endif // STATUS_H