Skip to content
This repository was archived by the owner on Jan 22, 2022. It is now read-only.

Commit 55bc447

Browse files
committed
New notification function added. Alpha 0.8.6
1 parent 919a476 commit 55bc447

13 files changed

Lines changed: 148 additions & 55 deletions

client/data/css/auth.css

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,39 @@
143143
#valor_event:link #team_valor_selection
144144
{
145145
box-shadow: inset 0 0 0 1.5px #ff0500;
146-
}
146+
}
147+
148+
#notification_body
149+
{
150+
transition: 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
151+
border-radius: 10px;
152+
background-color: #39456d;
153+
box-shadow: inset 0 0 0 2.5px #4564a7;
154+
}
155+
#notification_body_error
156+
{
157+
transition: 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
158+
border-radius: 10px;
159+
background-color: #f04848;
160+
box-shadow: inset 0 0 0 2.5px #ac3434;
161+
}
162+
#notification_box
163+
{
164+
padding: 6px;
165+
}
166+
#notification_text
167+
{
168+
font-family: Rubik, 'Uni Sans', 'Helvetica Neue Light', sans-serif;
169+
font-weight: 600;
170+
font-size: 15px;
171+
letter-spacing: 0.9px;
172+
color: #e7ecff;
173+
}
174+
#notification_text_error
175+
{
176+
font-family: Rubik, 'Uni Sans', 'Helvetica Neue Light', sans-serif;
177+
font-weight: 600;
178+
font-size: 15px;
179+
letter-spacing: 0.9px;
180+
color: #ebebee;
181+
}

client/data/css/themes/default/home_default.css

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,23 @@
6363
#active_name
6464
{
6565
color: #8f9ed1;
66-
}
66+
}
67+
68+
#notification_body
69+
{
70+
background-color: #39456d;
71+
box-shadow: inset 0 0 0 2.5px #4564a7;
72+
}
73+
#notification_body_error
74+
{
75+
background-color: #f04848;
76+
box-shadow: inset 0 0 0 2.5px #ac3434;
77+
}
78+
#notification_text
79+
{
80+
color: #e7ecff;
81+
}
82+
#notification_text_error
83+
{
84+
color: #ebebee;
85+
}

client/inc/client.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,10 @@
8484
//-------> Overall
8585
struct {
8686
GtkWidget *window;
87+
GtkWidget *main_area;
8788
GtkWidget *auth;
8889
GtkWidget *messanger;
90+
GtkWidget *notificaton;
8991
char *app;
9092
char *user;
9193
} t_application;
@@ -298,6 +300,7 @@ void create_gallery(GtkWidget *main);
298300
void create_stickerlist(GtkWidget *main);
299301
void creator_group(GtkWidget *main);
300302
void creator_userprofile(GtkWidget *main, char *username, bool status);
303+
void create_notification(GtkWidget *widget, char *text, short type, int x, int y, int w, int h);
301304

302305
char *get_avatar_by_number(int num);
303306
GdkPixbuf *create_pixbuf(const gchar *filename);

client/src/client.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ int main(int argc, char *argv[]) {
1919
gtk_window_set_icon(GTK_WINDOW(t_application.window), icon); // Setting icon to window
2020

2121
load_providers(); // Loading chosen CSS providers
22-
GtkWidget *main_area = gtk_fixed_new(); // Creating main area
23-
gtk_container_add(GTK_CONTAINER(t_application.window), main_area); // Applying main area to current window
24-
gtk_widget_set_size_request(GTK_WIDGET(main_area), WINDOW_WIDTH, WINDOW_HEIGHT);// Setting size
22+
t_application.main_area = gtk_fixed_new(); // Creating main area
23+
gtk_container_add(GTK_CONTAINER(t_application.window), t_application.main_area); // Applying main area to current window
24+
gtk_widget_set_size_request(GTK_WIDGET(t_application.main_area), WINDOW_WIDTH, WINDOW_HEIGHT);// Setting size
2525

2626
t_application.auth = gtk_fixed_new();
27-
gtk_fixed_put(GTK_FIXED(main_area), t_application.auth, 0, 0);
27+
gtk_fixed_put(GTK_FIXED(t_application.main_area), t_application.auth, 0, 0);
2828
gtk_widget_set_size_request(GTK_WIDGET(t_application.auth), WINDOW_WIDTH, WINDOW_HEIGHT);
2929

3030
t_application.messanger = gtk_fixed_new();
31-
gtk_fixed_put(GTK_FIXED(main_area), t_application.messanger, 0, 0);
31+
gtk_fixed_put(GTK_FIXED(t_application.main_area), t_application.messanger, 0, 0);
3232
gtk_widget_set_size_request(GTK_WIDGET(t_application.messanger), WINDOW_WIDTH, WINDOW_HEIGHT);
3333

3434
test_autofill(); // Заполнение данных аккаунта // Оставь это

client/src/client_auto.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ void test_autofill()
1515

1616
t_msg.current = "here..."; // Имя выбранного пользователя в плейсхолдере
1717

18-
t_application.app = "PokeChat alpha 0.8.4";
18+
t_application.app = "PokeChat alpha 0.8.6";
1919
t_application.user = getenv("USER");
2020
}

client/src/creator_gallery.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ static void avatar_click(GtkWidget *widget) {
2424
g_list_free(g_steal_pointer(&parent)); // g_list_free(parent); //
2525
}
2626

27-
static void sgallery_click(GtkWidget *widget) {
28-
gtk_widget_destroy(GTK_WIDGET(widget));
29-
}
30-
31-
static void sgallery2_click(GtkWidget *widget) {
32-
if(widget) {}
33-
}
34-
3527
static GtkWidget *create_avatar_list(int avatar_num)
3628
{
3729
char *path = "client/data/avatars/";
@@ -58,13 +50,13 @@ void create_gallery(GtkWidget *main)
5850
t_settings.background = gtk_event_box_new();
5951
gtk_widget_set_name(GTK_WIDGET(t_settings.background), "sgallery");
6052
gtk_widget_set_size_request(GTK_WIDGET(t_settings.background), WINDOW_WIDTH-67, WINDOW_HEIGHT);
61-
g_signal_connect(G_OBJECT(t_settings.background), "button_press_event", G_CALLBACK(sgallery_click), NULL);
53+
g_signal_connect(G_OBJECT(t_settings.background), "button_press_event", G_CALLBACK(gtk_widget_destroy), NULL);
6254
gtk_fixed_put(GTK_FIXED(main), t_settings.background, 0, 0);
6355

6456
GtkWidget *clickable = gtk_event_box_new();
6557
gtk_widget_set_halign(GTK_WIDGET(clickable), GTK_ALIGN_CENTER);
6658
gtk_widget_set_valign(GTK_WIDGET(clickable), GTK_ALIGN_CENTER);
67-
g_signal_connect(G_OBJECT(clickable), "button_press_event", G_CALLBACK(sgallery2_click), NULL);
59+
g_signal_connect(G_OBJECT(clickable), "button_press_event", G_CALLBACK(gtk_widget_show), NULL);
6860
gtk_container_add(GTK_CONTAINER(t_settings.background), clickable);
6961

7062
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);

client/src/creator_group.c

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ static void s_click(GtkWidget *widget) {
77
free(new_group);
88
}
99

10-
static void s2_click(GtkWidget *widget) {
11-
if(widget) {}
12-
}
13-
1410
static void remove_person(GtkWidget *widget, GdkEventButton *event, gpointer user_id) {
1511
if(event->type == GDK_BUTTON_PRESS && event->button == 1) {
1612
gtk_widget_destroy(GTK_WIDGET(widget));
@@ -24,6 +20,7 @@ static void remove_person(GtkWidget *widget, GdkEventButton *event, gpointer use
2420
for (int i = 0; i < new_group->count; i++)
2521
new_group->users_id[i] = temp[i];
2622
free(temp);
23+
create_notification(t_application.main_area, "User deleted", 0, 461, 110, 420, 10);
2724
}
2825
}
2926

@@ -77,13 +74,16 @@ static void add_person(GtkWidget *widget, GdkEventButton *event) {
7774
// проверить имя пользователя name на существование
7875
printf("Username: %s\n", name);
7976
int avatar = 0, user_id = 0;
80-
if (!add_user_to_group(name, &user_id, &avatar))
77+
if (!add_user_to_group(name, &user_id, &avatar)) {
78+
create_notification(t_application.main_area, "Invalid username!", 1, 461, 110, 420, 10);
8179
return;
80+
}
8281

8382
gtk_entry_set_text(GTK_ENTRY(new_group->search_field), "");
8483
GtkWidget *single = create_single_person(name, avatar);
8584
gtk_box_pack_start(GTK_BOX(t_msg.crlist), single, FALSE, FALSE, 0);
8685
gtk_widget_show_all(GTK_WIDGET(t_msg.crlist));
86+
create_notification(t_application.main_area, mx_strjoin(name, " added!"), 0, 461, 110, 420, 10);
8787

8888
g_signal_connect(G_OBJECT(single), "enter-notify-event", G_CALLBACK(event_enter_notify), NULL);
8989
g_signal_connect(G_OBJECT(single), "leave-notify-event", G_CALLBACK(event_leave_notify), NULL);
@@ -95,14 +95,19 @@ static void add_person(GtkWidget *widget, GdkEventButton *event) {
9595
static void create_group_button_click(GtkWidget *widget, gpointer group_name) {
9696
if(widget) {}
9797
GList *parent = gtk_container_get_children(GTK_CONTAINER(t_msg.crlist)); // GList *parent_c = parent;
98-
if(parent == NULL)
98+
if(parent == NULL){
99+
create_notification(t_application.main_area, "No user selected!", 1, 461, 110, 420, 10);
99100
return;
101+
}
100102

101103
char *name = (char*)gtk_entry_buffer_get_text(gtk_entry_get_buffer(GTK_ENTRY((GtkWidget*)group_name)));
102104
if(name != NULL)
103105
name = mx_del_extra_spaces(name);
104-
if(!strcmp(name, ""))
106+
if(!strcmp(name, "")){
107+
create_notification(t_application.main_area, "Name your group!", 1, 461, 110, 420, 10);
105108
return;
109+
}
110+
106111
printf("Group name: %s \n", name);
107112

108113
while(parent != NULL) {
@@ -118,6 +123,7 @@ static void create_group_button_click(GtkWidget *widget, gpointer group_name) {
118123
new_group->title = strdup(name);
119124
create_group();
120125
g_list_free(g_steal_pointer(&parent)); // g_list_free(parent_c); //
126+
gtk_widget_destroy(GTK_WIDGET(t_application.notificaton));
121127
gtk_widget_destroy(GTK_WIDGET(t_msg.background));
122128
}
123129

@@ -132,7 +138,7 @@ void creator_group(GtkWidget *main)
132138
GtkWidget *clickable = gtk_event_box_new();
133139
gtk_widget_set_halign(GTK_WIDGET(clickable), GTK_ALIGN_CENTER);
134140
gtk_widget_set_valign(GTK_WIDGET(clickable), GTK_ALIGN_CENTER);
135-
g_signal_connect(G_OBJECT(clickable), "button_press_event", G_CALLBACK(s2_click), NULL);
141+
g_signal_connect(G_OBJECT(clickable), "button_press_event", G_CALLBACK(gtk_widget_show), NULL);
136142
gtk_container_add(GTK_CONTAINER(t_msg.background), clickable);
137143

138144
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);

client/src/creator_message.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ void new_incoming_embedded(GtkWidget *messages_block, char* path)
255255
GtkWidget *embedded = gtk_drawing_area_new();
256256
gtk_widget_set_size_request(GTK_WIDGET(embedded), a, b);
257257
g_signal_connect(G_OBJECT(embedded), "draw", G_CALLBACK(draw_event_embedded), (char*)path);
258-
//gtk_box_pack_end(GTK_BOX(embedded_body), embedded, FALSE, FALSE, 0);
259258
gtk_box_pack_start(GTK_BOX(embedded_body), embedded, FALSE, FALSE, 0);
260259

261260
GtkWidget *name_time_block = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1);

client/src/creator_notification.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#include "../inc/client.h"
2+
3+
void create_notification(GtkWidget *widget, char *text, short type, int x, int y, int w, int h)
4+
{
5+
if(t_application.notificaton != NULL)
6+
gtk_widget_destroy(GTK_WIDGET(t_application.notificaton));
7+
8+
t_application.notificaton = gtk_event_box_new();
9+
g_signal_connect(G_OBJECT(t_application.notificaton), "button_press_event", G_CALLBACK(gtk_widget_destroy), NULL);
10+
gtk_fixed_put(GTK_FIXED(widget), t_application.notificaton, x, y);
11+
12+
GtkWidget* box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2);
13+
gtk_widget_set_size_request(GTK_WIDGET(box), w, h);
14+
gtk_widget_set_name(GTK_WIDGET(box), "notification_box");
15+
gtk_container_add(GTK_CONTAINER(t_application.notificaton), box);
16+
17+
GtkWidget *label = gtk_label_new(text);
18+
gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
19+
20+
switch(type)
21+
{
22+
case 0: {
23+
gtk_widget_set_name(GTK_WIDGET(t_application.notificaton), "notification_body");
24+
gtk_widget_set_name(GTK_WIDGET(label), "notification_text");
25+
break;
26+
}
27+
case 1: {
28+
gtk_widget_set_name(GTK_WIDGET(t_application.notificaton), "notification_body_error");
29+
gtk_widget_set_name(GTK_WIDGET(label), "notification_text_error");
30+
break;
31+
}
32+
default: {
33+
gtk_widget_set_name(GTK_WIDGET(t_application.notificaton), "notification_body");
34+
gtk_widget_set_name(GTK_WIDGET(label), "notification_text");
35+
break;
36+
}
37+
}
38+
39+
gtk_widget_show_all(GTK_WIDGET(t_application.notificaton));
40+
}

client/src/creator_stickers.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
#include "../inc/client.h"
22

3-
static void s_click(GtkWidget *widget) {
4-
gtk_widget_destroy(GTK_WIDGET(widget));
5-
}
6-
7-
static void s2_click(GtkWidget *widget) {
8-
if(widget) {}
9-
}
10-
113
static void onsticker_click(GtkWidget *widget) {
124
GList *parent = gtk_container_get_children(GTK_CONTAINER(widget));
135
GList *children = gtk_container_get_children(GTK_CONTAINER(parent->data));
@@ -50,7 +42,7 @@ void create_stickerlist(GtkWidget *main)
5042
{
5143
t_msg.stickers = gtk_event_box_new();
5244
gtk_widget_set_size_request(GTK_WIDGET(t_msg.stickers), WINDOW_WIDTH-LEFTBAR_W, WINDOW_HEIGHT);
53-
g_signal_connect(G_OBJECT(t_msg.stickers), "button_press_event", G_CALLBACK(s_click), NULL);
45+
g_signal_connect(G_OBJECT(t_msg.stickers), "button_press_event", G_CALLBACK(gtk_widget_destroy), NULL);
5446
gtk_fixed_put(GTK_FIXED(main), t_msg.stickers, 0, 0);
5547

5648
GtkWidget *positionable = gtk_fixed_new();
@@ -59,7 +51,7 @@ void create_stickerlist(GtkWidget *main)
5951
GtkWidget *clickable = gtk_event_box_new();
6052
gtk_widget_set_halign(GTK_WIDGET(clickable), GTK_ALIGN_END);
6153
gtk_widget_set_valign(GTK_WIDGET(clickable), GTK_ALIGN_END);
62-
g_signal_connect(G_OBJECT(clickable), "button_press_event", G_CALLBACK(s2_click), NULL);
54+
g_signal_connect(G_OBJECT(clickable), "button_press_event", G_CALLBACK(gtk_widget_show), NULL);
6355
gtk_fixed_put(GTK_FIXED(positionable), clickable, WINDOW_WIDTH-380, WINDOW_HEIGHT-ENTRY_H-360);
6456

6557
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);

0 commit comments

Comments
 (0)