This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository exclaim.

View the commit online.

commit adbec94559a01024de93113f18e745ee9397582e
Author: Nekobit <m...@ow.nekobit.net>
AuthorDate: Tue Sep 19 22:54:52 2023 -0400

    Display some "statuses"
---
 src/etc.c       | 15 ++++++++++++
 src/etc.h       |  8 +++++++
 src/exc_types.h | 14 ++++++++++++
 src/main.c      | 31 +++++++++++++++++++++----
 src/meson.build |  2 ++
 src/status.c    | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/status.h    |  8 +++++++
 7 files changed, 145 insertions(+), 4 deletions(-)

diff --git a/src/etc.c b/src/etc.c
new file mode 100644
index 0000000..e2e907f
--- /dev/null
+++ b/src/etc.c
@@ -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);
+}
diff --git a/src/etc.h b/src/etc.h
index 6c45dd3..c86cda7 100644
--- a/src/etc.h
+++ b/src/etc.h
@@ -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
diff --git a/src/exc_types.h b/src/exc_types.h
new file mode 100644
index 0000000..839e058
--- /dev/null
+++ b/src/exc_types.h
@@ -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
diff --git a/src/main.c b/src/main.c
index 4139b79..e0a21d1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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();
diff --git a/src/meson.build b/src/meson.build
index caacc39..58f4db6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -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,
diff --git a/src/status.c b/src/status.c
new file mode 100644
index 0000000..f0a0c19
--- /dev/null
+++ b/src/status.c
@@ -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;
+}
diff --git a/src/status.h b/src/status.h
new file mode 100644
index 0000000..460c7fb
--- /dev/null
+++ b/src/status.h
@@ -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

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to