aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortlatorre <tlatorre@uchicago.edu>2022-11-12 13:22:12 -0800
committertlatorre <tlatorre@uchicago.edu>2022-11-12 13:22:12 -0800
commite7766d22748115410567d666906162c9bdb91548 (patch)
treead5f6faee0d7152eeb6bd183b80829ae8c424138
parent8b221f68ed06c4b0866191771789e9a3414a5076 (diff)
downloadmoji-e7766d22748115410567d666906162c9bdb91548.tar.gz
moji-e7766d22748115410567d666906162c9bdb91548.tar.bz2
moji-e7766d22748115410567d666906162c9bdb91548.zip
add some comments
-rw-r--r--vito.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/vito.c b/vito.c
index 05456ac..effba9e 100644
--- a/vito.c
+++ b/vito.c
@@ -4,6 +4,12 @@
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkenums.h>
+/* Time in milliseconds it takes to write a character, i.e. if you hold down
+ * the mouse button for this many ms it will write the character and move on to
+ * the next character (or emoji).
+ *
+ * Initially had this set to 500 ms (half a second), but that was a bit short,
+ * so I've updated it to one second. */
#define CLICK_TIME 1000
#define LEN(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
@@ -22,6 +28,7 @@ static void aeGetTime(long *seconds, long *milliseconds)
GtkWidget *text_widget;
GtkTextTag *tag;
+/* List of emojis. */
#define STOP "\xf0\x9f\x9b\x91"
#define THANK_YOU "\xf0\x9f\x99\x8f"
#define UNAMUSED "\xf0\x9f\x98\x92"
@@ -76,8 +83,6 @@ const char *emoji_array[] = {
CLEAR_SCREEN,
};
-chars emoji = { emoji_array, LEN(emoji_array)};
-
const char *alphabet_array[] = {
"a",
"b",
@@ -115,8 +120,8 @@ const char *alphabet_array[] = {
"."
};
+chars emoji = { emoji_array, LEN(emoji_array)};
chars alphabet = {alphabet_array, LEN(alphabet_array)};
-
chars *current_chars = &emoji;
char buf[100000];
@@ -167,14 +172,14 @@ static void write_buf(void)
gtk_text_buffer_apply_tag(text_buffer, tag, &start, &end);
}
-static int pressed2(GtkWidget *widget, gpointer data)
+static int right_click_pressed(GtkWidget *widget, gpointer data)
{
backspace();
write_buf();
return TRUE;
}
-static int released2(GtkWidget *widget, gpointer data)
+static int right_click_released(GtkWidget *widget, gpointer data)
{
return TRUE;
}
@@ -267,8 +272,7 @@ static void activate(GtkApplication *app, gpointer user_data)
GtkTextBuffer *text_buffer;
GtkCssProvider *provider;
GtkStyleContext *context;
- GtkGesture *gesture;
- GtkGesture *gesture2;
+ GtkGesture *gesture, *right_click_gesture;
GtkEventController *event_controller;
window = gtk_application_window_new(app);
@@ -279,11 +283,11 @@ static void activate(GtkApplication *app, gpointer user_data)
g_signal_connect(event_controller, "key-pressed", G_CALLBACK(on_key_press), NULL);
gtk_widget_add_controller(window, event_controller);
- gesture2 = gtk_gesture_click_new();
- gtk_gesture_single_set_button(GTK_GESTURE_SINGLE (gesture2), 3);
- g_signal_connect(gesture2, "pressed", G_CALLBACK(pressed2), NULL);
- g_signal_connect(gesture2, "released", G_CALLBACK(released2), NULL);
- gtk_widget_add_controller(window, GTK_EVENT_CONTROLLER(gesture2));
+ right_click_gesture = gtk_gesture_click_new();
+ gtk_gesture_single_set_button(GTK_GESTURE_SINGLE (right_click_gesture), 3);
+ g_signal_connect(right_click_gesture, "pressed", G_CALLBACK(right_click_pressed), NULL);
+ g_signal_connect(right_click_gesture, "released", G_CALLBACK(right_click_released), NULL);
+ gtk_widget_add_controller(window, GTK_EVENT_CONTROLLER(right_click_gesture));
gesture = gtk_gesture_click_new();
g_signal_connect(gesture, "pressed", G_CALLBACK(pressed), NULL);
@@ -311,8 +315,6 @@ static void activate(GtkApplication *app, gpointer user_data)
/* Use a tag to change the color for just one part of the widget */
tag = gtk_text_buffer_create_tag(text_buffer, "red_foreground", "foreground", "red", NULL);
- buf[0] = 'a';
- buf[1] = '\0';
write_buf();
gtk_window_set_child(GTK_WINDOW(window), text_widget);