annotate postdog/main.c @ 116:7bd795bac997

[Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
author June Park <parkjune1995@gmail.com>
date Wed, 07 Jan 2026 04:52:17 -0800
parents 96db6c3f38d6
children b91f2dd6f84d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
1 #include <stdio.h>
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
2 #include <stdlib.h>
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3 #include <string.h>
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4 #include <time.h>
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
5 #include <sys/stat.h>
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
6 #include "dowa/dowa.h"
58
ccb42d5bf8fd [PostDog] Somewhat working copy. That would use for testing.
June Park <parkjune1995@gmail.com>
parents: 57
diff changeset
7
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
8 #include <curl/curl.h>
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
9 #include "third_party/raylib/include/raylib.h"
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
10 #define RAYGUI_IMPLEMENTATION
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
11 #include "third_party/raylib/include/raygui.h"
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
12
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
13 #ifndef POSTDOG_PATHS
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
14 #define POSTDOG_PATHS "/Users/mrjunejune/zenbu/postdog/history"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
15 #endif
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
16
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
17 #define SCREEN_WIDTH 1280
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
18 #define SCREEN_HEIGHT 780
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
19 #define MAX_SCROLL_HEIGHT 10000
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
20
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
21 #define HEADER_BUFFER_LENGTH 1024 * 4
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
22 #define DEFAULT_TEXT_BUFFER_LENGTH 1024 * 4
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
23 #define URL_TEXT_BUFFER_LENGTH 1024 * 10
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
24 #define BODY_BUFFER_LENGTH 1024 * 1024 * 5
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
25 #define RESULT_BUFFER_LENGTH 1024 * 1024 * 5
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
26
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
27
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
28 #ifdef _WIN32
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
29 #include <direct.h>
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
30 #include <io.h>
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
31 #define mkdir(path, mode) _mkdir(path)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
32 #define access _access
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
33 #define F_OK 0
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
34 #else
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
35 #include <sys/stat.h>
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
36 #include <dirent.h>
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
37 #include <unistd.h>
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
38 #endif
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
39
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
40 typedef Dowa_KV(char*, char*) INPUT_HASHMAP;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
41
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
42 typedef struct {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
43 char *data;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
44 size_t size;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
45 } ResponseBuffer;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
47 typedef struct {
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
48 char *filename;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
49 Rectangle rect;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
50 long time_modified;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
51 } HistoryItem;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
53 typedef struct {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
54 Rectangle rectangle;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
55 char *label;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
56 bool active;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
57 } TabItem;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
58
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
59 typedef enum {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
60 TAB_HEADER = 0,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
61 TAB_BODY,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
62 TAB_GET_PARAMS,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
63 TAB_BAR,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
64 TAB_LENGTH
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
65 } PostDog_Tab_Enum;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
66
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
67 static uint32 counter = 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
68 HistoryItem *history_items = NULL;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
69 HistoryItem *new_history_items = NULL;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
70
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
71 int CompareHistoryItemsByDate(const void *a, const void *b) {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
72 HistoryItem *itemA = (HistoryItem *)a;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
73 HistoryItem *itemB = (HistoryItem *)b;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
74 return (itemB->time_modified - itemA->time_modified);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
75 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
76
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
77 // TODO: Make this into generic fucntion so I can use it across different thing.
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
78 void PostDog_List_Directory(const char *path, HistoryItem **p_file_arr)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
79 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
80 HistoryItem *file_arr = *p_file_arr;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
81 #ifdef _WIN32
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
82 struct _finddata_t fileinfo;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
83 intptr_t handle;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
84 char search_path[256];
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
85 sprintf(search_path, "%s\\*", path);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
86
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
87 if ((handle = _findfirst(search_path, &fileinfo)) == -1L) {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
88 printf("Directory is empty or cannot be read.\n");
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
89 } else {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
90 do {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
91 HistoryItem item = {0};
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
92 item.filename = strdup(fileinfo.name);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
93 item.rect = (Rectangle){0};
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
94 item.time_modified = fileinfo.time_write;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
95 Dowa_Array_Push(file_arr, item);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
96 } while (_findnext(handle, &fileinfo) == 0);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
97 _findclose(handle);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
98 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
99 #else
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
100 struct dirent *entry;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
101 struct stat file_stat;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
102 DIR *dp = opendir(path);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
103 if (dp == NULL) return;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
104
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
105 char full_path[256];
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
106 while ((entry = readdir(dp)))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
107 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
108 if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
109 continue;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
110 snprintf(full_path, sizeof(full_path), "%s/%s", path, entry->d_name);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
111 if (stat(full_path, &file_stat) == 0)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
112 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
113 HistoryItem item = {0};
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
114 item.filename = strdup(entry->d_name);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
115 item.time_modified = file_stat.st_mtime;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
116 Dowa_Array_Push(file_arr, item);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
117 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
118 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
119 closedir(dp);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
120 #endif
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
121 int count = Dowa_Array_Length(file_arr);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
122 if (count > 1) {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
123 qsort(file_arr, count, sizeof(HistoryItem), CompareHistoryItemsByDate);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
124 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
125 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
126
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
127 int PostDog_History_Load(HistoryItem **p_history_files)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
128 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
129 if (access(POSTDOG_PATHS, F_OK) == -1)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
130 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
131 printf("Directory '%s' not found. Creating it...\n", POSTDOG_PATHS);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
132 if (mkdir(POSTDOG_PATHS, 0777) != 0)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
133 return -1;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
134 return 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
135 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
136 printf("Directory '%s' already exists.\n", POSTDOG_PATHS);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
137 PostDog_List_Directory(POSTDOG_PATHS, p_history_files);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
138 return 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
139 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
140
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
141 bool InArea(Vector2 mouse_position, Rectangle area)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
142 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
143 return (
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
144 mouse_position.x >= area.x &&
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
145 mouse_position.x < area.x + area.width &&
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
146 mouse_position.y >= area.y &&
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
147 mouse_position.y < area.y + area.height
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
148 );
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
149 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
150
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
151 bool Clicked(Vector2 mouse_position, Rectangle area)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
152 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
153 return (InArea(mouse_position, area) && IsMouseButtonPressed(MOUSE_BUTTON_LEFT));
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
154 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
155
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
156 char *PostDog_Enum_To_String(int active_enum)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
157 {
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
158 switch(active_enum)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
159 {
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
160 case 0: return "GET";
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
161 case 1: return "POST";
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
162 case 2: return "PUT";
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
163 case 3: return "DELETE";
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
164 }
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
165 return 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
166 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
167
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
168 char *PostDog_Construct_URL(char *filename)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
169 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
170 char full_file_path[512] = {0};
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
171 snprintf(full_file_path, 512, "%s/%s", POSTDOG_PATHS, filename);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
172 return &full_file_path;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
173 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
174
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
175 void PostDog_History_CreateFile(char *filename, char* values)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
176 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
177 char full_file_path[512] = {0};
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
178 snprintf(full_file_path, 512, "%s/%s", POSTDOG_PATHS, filename);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
179 FILE *file = fopen(full_file_path, "w");
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
180 if (!file)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
181 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
182 printf("Failed to create a file: %s\n", full_file_path);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
183 return;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
184 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
185 fwrite(values, 1, strlen(values), file);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
186 fclose(file);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
187 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
188
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
189 void PostDog_Request_SaveFile(
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
190 const char *url,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
191 const char *method,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
192 const char *headers,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
193 const char *body,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
194 const char *response)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
195 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
196 size_t new_file_size = 1024 * 1024;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
197 Dowa_Arena *arena = Dowa_Arena_Create(1024 * 1024 * 2);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
198 char *new_file = Dowa_Arena_Allocate(arena, 1024 * 1024);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
199 snprintf(
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
200 new_file,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
201 new_file_size,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
202 "%s\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
203 "---\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
204 "%s\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
205 "---\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
206 "%s\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
207 "---\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
208 "%s\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
209 "---\n"
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
210 "%s\n",
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
211 url,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
212 method,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
213 headers,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
214 body,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
215 response
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
216 );
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
217 char *filename = Dowa_Arena_Allocate(arena, 1024);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
218 if (!filename)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
219 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
220 perror("Error opening file");
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
221 exit(EXIT_FAILURE);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
222 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
223 char *uuid4 = (char *)Dowa_Arena_Allocate(arena, 37);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
224 if (!uuid4)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
225 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
226 perror("Error uuid");
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
227 exit(EXIT_FAILURE);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
228 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
229
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
230 int32 seed = (uint32)time(NULL) ^ counter++;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
231 Dowa_String_UUID(seed, uuid4);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
232 snprintf(filename, 1024, "%s.txt", uuid4);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
233 PostDog_History_CreateFile(filename, new_file);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
234
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
235 HistoryItem item = (HistoryItem){ .filename = malloc(sizeof(char) * strlen(filename) + 1), .rect = (Rectangle){0} };
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
236 memcpy(item.filename, filename, strlen(filename) + 1);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
237 Dowa_Array_Push(new_history_items, item);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
238
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
239 Dowa_Arena_Free(arena);
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
240 }
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
241
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
242 static size_t Postdog_Curl_Callback(void *contents, size_t size, size_t nmemb, void *userp)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
243 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
244 size_t real_size = size * nmemb;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
245 ResponseBuffer *buf = (ResponseBuffer *)userp;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
246
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
247 char *ptr = realloc(buf->data, buf->size + real_size + 1);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
248 if (ptr == NULL)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
249 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
250 printf("Not enough memory for response\n");
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
251 return 0;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
252 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
253
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
254 buf->data = ptr;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
255 memcpy(&(buf->data[buf->size]), contents, real_size);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
256 buf->size += real_size;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
257 buf->data[buf->size] = 0;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
258
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
259 return real_size;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
260 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
261
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
262 int PostDog_Http_Request(
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
263 const char *url,
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
264 const char *method,
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
265 const char *headers,
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
266 const char *body,
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
267 char *response, size_t response_size)
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
268 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
269 CURL *curl;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
270 CURLcode res;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
271 ResponseBuffer buffer = { .data = malloc(1), .size = 0 };
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
272
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
273 response[0] = '\n';
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
274
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
275 if (buffer.data == NULL)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
276 {
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
277 snprintf(response, response_size, "Error: Failed to allocate memory");
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
278 return -1;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
279 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
280 buffer.data[0] = '\0';
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
281
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
282 curl_global_init(CURL_GLOBAL_DEFAULT);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
283 curl = curl_easy_init();
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
284
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
285 if (curl)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
286 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
287 struct curl_slist *headerList = NULL;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
288
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
289 // Set URL
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
290 curl_easy_setopt(curl, CURLOPT_URL, url);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
291
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
292 // Set HTTP method
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
293 if (strcmp(method, "POST") == 0)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
294 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
295 curl_easy_setopt(curl, CURLOPT_POST, 1L);
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
296 if (body && strlen(body) > 0)
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
297 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, body);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
298 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
299 else if (strcmp(method, "PUT") == 0)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
300 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
301 curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
302 if (body && strlen(body) > 0)
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
303 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, body);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
304 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
305 else if (strcmp(method, "DELETE") == 0)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
306 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
307 curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
308 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
309 // Default is GET
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
310
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
311 // Parse and add headers
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
312 if (headers && strlen(headers) > 0)
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
313 {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
314 char *headersCopy = strdup(headers);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
315 char *line = strtok(headersCopy, "\n");
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
316 while (line != NULL) {
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
317 // Trim whitespace
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
318 while (*line == ' ' || *line == '\t') line++;
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
319 if (strlen(line) > 0)
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
320 headerList = curl_slist_append(headerList, line);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
321 line = strtok(NULL, "\n");
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
322 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
323 curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerList);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
324 free(headersCopy);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
325 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
326
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
327 // Set write callback
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
328 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Postdog_Curl_Callback);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
329 curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&buffer);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
330
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
331 // Follow redirects
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
332 curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
333 // Set timeout
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
334 curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30L);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
335 // Perform request
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
336 res = curl_easy_perform(curl);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
337
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
338 if (res != CURLE_OK)
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
339 snprintf(response, response_size, "Error: %s\n", curl_easy_strerror(res));
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
340 else
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
341 {
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
342 long response_code;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
343 curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
344
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
345 if (buffer.size > response_size)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
346 printf("TODO: Realloc\n");
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
347
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
348 snprintf(response, response_size, "HTTP Status: %ld\n\n%s",
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
349 response_code, buffer.data ? buffer.data : "");
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
350 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
351
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
352 // Cleanup
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
353 if (headerList) curl_slist_free_all(headerList);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
354 curl_easy_cleanup(curl);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
355 }
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
356 else
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
357 snprintf(response, response_size, "Error: Failed to initialize curl");
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
358
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
359 free(buffer.data);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
360 curl_global_cleanup();
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
361
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
362 PostDog_Request_SaveFile(
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
363 url,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
364 method,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
365 headers,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
366 body,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
367 response);
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
368 return 0;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
369 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
370
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
371 void PostDog_Update_URL(char **p_url_input_text, char* get_params)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
372 {
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
373 char *url_input_text = *p_url_input_text;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
374
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
375 // Reset
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
376 char *question_mark = strchr(url_input_text, '?');
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
377 if (question_mark)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
378 *question_mark = '\0';
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
379
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
380 int get_params_length = (int)strlen(get_params) ;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
381 if (get_params_length == 0)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
382 return;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
383
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
384 char *separator = "?";
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
385
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
386 Dowa_Arena *arena = Dowa_Arena_Create(1024*1024);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
387 char **lines = Dowa_String_Split(get_params, "\n", get_params_length, 1, arena);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
388 for (int i = 0; i < Dowa_Array_Length(lines); i++)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
389 {
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
390 char *line = lines[i];
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
391 char **key_value = Dowa_String_Split(line, " ", (int)strlen(line), 1, arena);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
392
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
393 if (Dowa_Array_Length(key_value) < 2)
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
394 break;
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
395
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
396 strcat(url_input_text, separator);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
397 strcat(url_input_text, key_value[0]);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
398 strcat(url_input_text, "=");
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
399 for (int i = 1; i < Dowa_Array_Length(key_value); i++)
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
400 {
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
401 if (!key_value[i] || key_value[i][0] == '\0')
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
402 break;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
403 if (i > 1) strcat(url_input_text, "%20");
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
404 strcat(url_input_text, key_value[i]);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
405 }
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
406 separator = "&";
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
407 }
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
408
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
409 Dowa_Arena_Free(arena);
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
410 }
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
411
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
412 int PostDog_String_To_MethodEnum(char *value)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
413 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
414 if (strstr(value, "GET"))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
415 return 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
416 if (strstr(value, "POST"))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
417 return 1;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
418 if (strstr(value, "PUT"))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
419 return 2;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
420 if (strstr(value, "DELETE"))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
421 return 3;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
422 return 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
423 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
424
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
425 void PostDog_Params_Reset(
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
426 char **p_url_input_text,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
427 int *p_active_method_dropdown,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
428 char **url_body_map,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
429 char **p_url_result_text
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
430 )
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
431 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
432 char *url_input_text = *p_url_input_text;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
433 char *url_result_text = *p_url_result_text;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
434 int active_method_dropdown = *p_active_method_dropdown;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
435
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
436 url_input_text = "";
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
437 url_result_text = "";
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
438 active_method_dropdown = 0;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
439 for (int i = 0; i < Dowa_Array_Length(url_body_map); i++)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
440 url_body_map[i] = "";
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
441 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
442
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
443 void PostDog_Load_File(
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
444 const char *filename,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
445 char **p_url_input_text,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
446 int *p_active_method_dropdown,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
447 char **url_body_map,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
448 char **p_url_result_text
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
449 ) {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
450 char *url_input_text = *p_url_input_text;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
451 char *url_result_text = *p_url_result_text;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
452 int active_method_dropdown = *p_active_method_dropdown;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
453
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
454 char full_file_path[512] = {0};
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
455 snprintf(full_file_path, 512, "%s/%s", POSTDOG_PATHS, filename);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
456 FILE *file = fopen(full_file_path, "r");
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
457 if (!file)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
458 return;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
459
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
460 fseek(file, 0, SEEK_END);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
461 size_t file_size = ftell(file);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
462 fseek(file, 0, SEEK_SET);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
463
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
464 Dowa_Arena *init_arena = Dowa_Arena_Create(file_size + 2);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
465 Dowa_Arena *split_arena = Dowa_Arena_Create(file_size * 2);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
466 char *file_buffer = Dowa_Arena_Allocate(init_arena, file_size+1);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
467 fread(file_buffer, 1, file_size, file);
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
468 fclose(file);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
469
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
470 char **values = Dowa_String_Split(file_buffer, "---\n", file_size, 4, split_arena);
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
471
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
472 for (int i = 0; i < Dowa_Array_Length(values); i++)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
473 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
474 if (i == 0)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
475 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
476 snprintf(url_input_text, strlen(values[i]) + 1, "%s", values[i]);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
477 url_input_text[strcspn(url_input_text, "\n")] = '\0';
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
478 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
479 else if (i == 1)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
480 active_method_dropdown = PostDog_String_To_MethodEnum(values[i]);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
481 else if (i <= 3)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
482 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
483 snprintf(url_body_map[i-2], strlen(values[i]) + 1, "%s", values[i]);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
484 for (int j = strlen(values[i]); j > 0; j--)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
485 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
486 if (url_body_map[i-2][j] == '\n')
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
487 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
488 url_body_map[i-2][j] = '\0';
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
489 break;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
490 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
491 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
492 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
493 else
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
494 snprintf(url_result_text, strlen(values[i]) + 1, "%s", values[i]);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
495 }
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
496
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
497 Dowa_Arena_Free(init_arena);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
498 Dowa_Arena_Free(split_arena);
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
499 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
500
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
501 Rectangle AddPadding(Rectangle rect, float padding)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
502 {
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
503 return (Rectangle){
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
504 rect.x + padding,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
505 rect.y + padding,
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
506 rect.width - (2 * padding),
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
507 rect.height - (2 * padding)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
508 };
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
509 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
510
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
511 Rectangle AddPaddingHorizontal(Rectangle rect, float padding)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
512 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
513 return (Rectangle){
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
514 rect.x + padding,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
515 rect.y,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
516 rect.width - (2 * padding),
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
517 rect.height
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
518 };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
519 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
520
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
521 Rectangle AddPaddingVertical(Rectangle rect, float padding)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
522 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
523 return (Rectangle){
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
524 rect.x,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
525 rect.y + padding,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
526 rect.width,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
527 rect.height - (2 * padding)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
528 };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
529 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
530
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
531 // Layout helper functions
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
532 Rectangle RightOf(Rectangle ref, float padding)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
533 {
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
534 return (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
535 .x = ref.x + ref.width + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
536 .y = ref.y,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
537 .width = 0,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
538 .height = ref.height
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
539 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
540 }
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
541
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
542 Rectangle Below(Rectangle ref, float padding)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
543 {
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
544 return (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
545 .x = ref.x,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
546 .y = ref.y + ref.height + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
547 .width = ref.width,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
548 .height = 0
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
549 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
550 }
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
551
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
552 Rectangle LeftColumn(Rectangle container, float ratio, float padding)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
553 {
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
554 return (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
555 .x = container.x + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
556 .y = container.y + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
557 .width = (container.width * ratio) - padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
558 .height = container.height - (2 * padding)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
559 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
560 }
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
561
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
562 Rectangle RightColumn(Rectangle container, Rectangle leftCol, float padding)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
563 {
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
564 return (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
565 .x = leftCol.x + leftCol.width + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
566 .y = container.y + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
567 .width = container.width - leftCol.width - (3 * padding),
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
568 .height = container.height - (2 * padding)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
569 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
570 }
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
571
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
572 Rectangle HorizontalSplit(Rectangle container, float ratio)
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
573 {
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
574 return (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
575 .x = container.x,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
576 .y = container.y,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
577 .width = container.width * ratio,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
578 .height = container.height
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
579 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
580 }
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
581
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
582 int main()
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
583 {
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
584 // -- initizlied --//
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
585 InitWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "PostDog");
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
586 SetWindowState(FLAG_WINDOW_RESIZABLE);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
587 SetTargetFPS(60);
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
588
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
589 Font customFont = LoadFontEx("postdog/Roboto-Regular.ttf", 20, 0, 0);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
590 GuiSetFont(customFont);
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
591 GuiSetStyle(DEFAULT, TEXT_SIZE, 10);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
592 Image logo_original = LoadImage("postdog/epi_all_colors.png");
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
593 ImageResize(&logo_original, 60, 60);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
594 Texture2D logo_texture = LoadTextureFromImage(logo_original);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
595 UnloadImage(logo_original);
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
596
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
597 // -- Starting pos ---//
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
598 Rectangle history_sidebar = { 0 };
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
599 Dowa_Array_Reserve(history_items, 10);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
600 Dowa_Array_Reserve(new_history_items, 10);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
601 PostDog_History_Load(&history_items);
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
602 int32 *history_deleted_items = NULL;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
603
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
604 Rectangle url_area = { 0 };
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
605 Rectangle textBounds = { 0 };
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
606 Rectangle url_input_bounds = { 0 };
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
607 bool url_input_edit = false;
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
608 Rectangle url_text_bounds = { 0 };
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
609 Rectangle url_enter_button = { 0 };
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
610 Rectangle method_dropdown = { 0 };
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
611
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
612
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
613 char *url_input_text = (char *)malloc(sizeof(char) * URL_TEXT_BUFFER_LENGTH);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
614 snprintf(url_input_text, URL_TEXT_BUFFER_LENGTH, "https://httpbin.org/get");
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
615
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
616 char **url_body_map = NULL;
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
617 Dowa_Array_Push(url_body_map, (char *)malloc(sizeof(char) * HEADER_BUFFER_LENGTH));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
618 Dowa_Array_Push(url_body_map, (char *)malloc(sizeof(char) * BODY_BUFFER_LENGTH));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
619 Dowa_Array_Push(url_body_map, (char *)malloc(sizeof(char) * DEFAULT_TEXT_BUFFER_LENGTH));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
620 Dowa_Array_Push(url_body_map, (char *)malloc(sizeof(char) * DEFAULT_TEXT_BUFFER_LENGTH));
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
621
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
622 snprintf(url_body_map[TAB_HEADER], HEADER_BUFFER_LENGTH, "Content-Type: application/json");
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
623 snprintf(url_body_map[TAB_BODY], HEADER_BUFFER_LENGTH, "");
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
624
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
625 char *url_result_text = (char *)malloc(sizeof(char) * RESULT_BUFFER_LENGTH);
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
626
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
627 int active_method_dropdown = 0;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
628 bool method_edit = false;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
629
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
630 int sendRequest;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
631
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
632 // -- input --//
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
633 Rectangle input_area = { 0 };
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
634 Rectangle input_tab = { 0 };
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
635 Rectangle input_tab_item = { 0 };
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
636 Rectangle input_body = { 0 };
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
637 bool input_body_bool = false;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
638
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
639 // -- result --//
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
640 Rectangle result_area = { 0 };
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
641 Rectangle result_body = { 0 };
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
642
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
643 // General styling.
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
644 float padding = 10; // TODO make it % based?
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
645 int active_input_tab = 0;
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
646 int prev_input_tab = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
647
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
648 // Scroll offsets
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
649 float history_scroll_offset = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
650 float input_body_scroll_offset = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
651 float result_body_scroll_offset = 0;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
652
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
653 while (!WindowShouldClose())
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
654 {
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
655 int screen_width = GetScreenWidth();
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
656 int screen_height = GetScreenHeight();
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
657
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
658 if ((IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyDown(KEY_EQUAL))
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
659 GuiSetStyle(DEFAULT, TEXT_SIZE, GuiGetStyle(DEFAULT, TEXT_SIZE) + 1);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
660
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
661 if ((IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyDown(KEY_MINUS))
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
662 GuiSetStyle(DEFAULT, TEXT_SIZE, GuiGetStyle(DEFAULT, TEXT_SIZE) - 1);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
663
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
664 Rectangle screen = { 0, 0, screen_width, screen_height };
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
665
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
666 // -- Side bar --//
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
667 history_sidebar = LeftColumn(screen, 0.15, padding);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
668 Rectangle content_area = RightColumn(screen, history_sidebar, padding);
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
669 Rectangle logo_area = (Rectangle){
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
670 .x = history_sidebar.x,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
671 .y = history_sidebar.y,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
672 .width = history_sidebar.width,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
673 .height = 80
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
674 };
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
675
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
676 Rectangle history_list_area = Below(logo_area, padding);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
677 history_list_area.width = history_sidebar.width;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
678 history_list_area.height = history_sidebar.height - logo_area.height - padding;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
679
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
680 int32 new_history_items_length = Dowa_Array_Length(new_history_items);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
681 int32 history_item_length = Dowa_Array_Length(history_items);
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
682 int32 total = new_history_items_length + history_item_length;
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
683 float item_height = history_list_area.height * 0.10;
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
684
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
685 int32 number_of_skipped_items = 0;
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
686 for (int i = 0; i < total; i++)
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
687 {
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
688 boolean skip = FALSE;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
689 for (int32 j = 0; j < Dowa_Array_Length(history_deleted_items); j++)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
690 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
691 if (i == j)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
692 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
693 skip = TRUE;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
694 number_of_skipped_items++;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
695 break;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
696 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
697 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
698 if (skip)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
699 continue;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
700
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
701 HistoryItem *curr_history_items = i < new_history_items_length ?
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
702 &new_history_items[i] : &history_items[i - new_history_items_length];
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
703
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
704 curr_history_items->rect = (Rectangle){
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
705 .x = history_list_area.x,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
706 .y = history_list_area.y + (padding + item_height) * (i - number_of_skipped_items) + history_scroll_offset,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
707 .width = history_list_area.width,
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
708 .height = item_height
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
709 };
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
710 }
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
711
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
712 // --- URL --- //
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
713 url_area = (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
714 .x = content_area.x,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
715 .y = content_area.y,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
716 .width = content_area.width,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
717 .height = content_area.height * 0.1
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
718 };
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
719
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
720 float url_control_y = url_area.y + (url_area.height - TEXT_SIZE * 2) / 2;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
721
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
722 url_text_bounds = (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
723 .x = url_area.x + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
724 .y = url_control_y,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
725 .width = 7 * (TEXT_SIZE / 2),
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
726 .height = TEXT_SIZE * 2
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
727 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
728
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
729 url_input_bounds = RightOf(url_text_bounds, padding);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
730 url_input_bounds.width = url_area.width * 0.7;
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
731 url_input_bounds.height = TEXT_SIZE * 2;
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
732
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
733 url_enter_button = RightOf(url_input_bounds, padding);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
734 url_enter_button.width = url_area.width * 0.1;
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
735 url_enter_button.height = TEXT_SIZE * 2;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
736
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
737 method_dropdown = RightOf(url_enter_button, padding);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
738 method_dropdown.width = url_area.width * 0.1;
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
739 method_dropdown.height = TEXT_SIZE * 2;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
740
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
741 // -- Body -- //
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
742 Rectangle body_area = Below(url_area, 0);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
743 body_area.height = content_area.height - url_area.height;
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
744
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
745 input_area = HorizontalSplit(body_area, 0.5);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
746 result_area = RightOf(input_area, 0);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
747 result_area.width = body_area.width - input_area.width;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
748
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
749 input_tab = (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
750 .x = input_area.x + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
751 .y = input_area.y + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
752 .width = input_area.width - (2 * padding),
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
753 .height = input_area.height * 0.1
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
754 };
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
755
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
756 input_tab_item = input_tab;
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
757 input_tab_item.width = input_tab.width / 4;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
758
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
759 input_body = Below(input_tab, 0);
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
760 input_body.width = input_tab.width;
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
761 input_body.height = input_area.height - input_tab.height - (2 * padding);
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
762
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
763 // -- Result -- /
115
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
764 result_body = (Rectangle){
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
765 .x = result_area.x + padding,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
766 .y = input_body.y,
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
767 .width = result_area.width - (2 * padding),
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
768 .height = input_body.height
96db6c3f38d6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 114
diff changeset
769 };
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
770
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
771 Vector2 mouse_position = GetMousePosition();
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
772 float mouse_wheel = GetMouseWheelMove();
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
773
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
774 // Reset input body scroll when tab changes
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
775 if (prev_input_tab != active_input_tab) {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
776 input_body_scroll_offset = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
777 prev_input_tab = active_input_tab;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
778 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
779
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
780 // Handle scroll wheel for history
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
781 if (InArea(mouse_position, history_list_area) && mouse_wheel != 0) {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
782 history_scroll_offset += mouse_wheel * 30; // 30 pixels per wheel tick
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
783 // Clamp scroll offset
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
784 float max_scroll = (total * (item_height + padding)) - history_list_area.height;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
785 if (history_scroll_offset > 0) history_scroll_offset = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
786 if (history_scroll_offset < -max_scroll && max_scroll > 0) history_scroll_offset = -max_scroll;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
787 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
788
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
789 // Handle scroll wheel for input body
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
790 if (InArea(mouse_position, input_body) && mouse_wheel != 0) {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
791 input_body_scroll_offset += mouse_wheel * 30;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
792 if (input_body_scroll_offset > 0) input_body_scroll_offset = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
793 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
794
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
795 // Handle scroll wheel for result body
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
796 if (InArea(mouse_position, result_body) && mouse_wheel != 0) {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
797 result_body_scroll_offset += mouse_wheel * 30;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
798 if (result_body_scroll_offset > 0) result_body_scroll_offset = 0;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
799 }
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
800
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
801 BeginDrawing();
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
802 ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
803
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
804 DrawRectangleRec(history_sidebar, Fade(GRAY, 0.1f));
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
805
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
806 // DrawRectangleRec(logo_area, Fade(BLUE, 0.2f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
807 Rectangle logo_image_rect = AddPadding(logo_area, padding);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
808 // Fit logo to area while maintaining aspect ratio
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
809 float logo_size = logo_image_rect.height < logo_image_rect.width ? logo_image_rect.height : logo_image_rect.width;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
810 Rectangle dest = {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
811 .x = logo_image_rect.x + (logo_image_rect.width - logo_size) / 2, // Center horizontally
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
812 .y = logo_image_rect.y,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
813 .width = logo_size,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
814 .height = logo_size
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
815 };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
816
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
817 Rectangle source = { 0, 0, logo_texture.width, logo_texture.height };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
818 DrawTexturePro(logo_texture, source, dest, (Vector2){0, 0}, 0.0f, WHITE);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
819
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
820 // Draw history items with scissor mode for clipping
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
821 BeginScissorMode(history_list_area.x, history_list_area.y, history_list_area.width, history_list_area.height);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
822 for (int i = 0; i < total; i++)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
823 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
824 boolean skip = FALSE;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
825 for (int32 j = 0; j < Dowa_Array_Length(history_deleted_items); j++)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
826 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
827 if (i == j)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
828 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
829 skip = TRUE;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
830 break;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
831 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
832 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
833 if (skip)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
834 continue;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
835 HistoryItem *curr_history_items = i < new_history_items_length ? &new_history_items[i] : &history_items[i - new_history_items_length];
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
836
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
837 float diff = curr_history_items->rect.height*0.3;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
838 // DrawRectangleRec(curr_history_items->rect, Fade(RED, 0.1f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
839 Rectangle filename_area = curr_history_items->rect;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
840
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
841 filename_area.height -= diff;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
842 Rectangle icon_area = Below(filename_area, 0);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
843 icon_area.height = diff;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
844
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
845 DrawRectangleRec(filename_area, Fade(BLUE, 0.1f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
846 DrawRectangleRec(icon_area, Fade(YELLOW, 0.1f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
847
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
848 Rectangle icon_area_left_column = LeftColumn(icon_area, 0.5, 0);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
849 Rectangle icon_area_right_column = RightColumn(icon_area, icon_area_left_column, 0);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
850
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
851 GuiDrawText(curr_history_items->filename, AddPadding(filename_area, padding), TEXT_ALIGN_CENTER, RED);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
852 if (GuiButton(AddPaddingHorizontal(icon_area_left_column, padding), "view"))
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
853 PostDog_Load_File(
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
854 curr_history_items->filename,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
855 &url_input_text,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
856 &active_method_dropdown,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
857 url_body_map,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
858 &url_result_text
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
859 );
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
860 if (GuiButton(AddPaddingHorizontal(icon_area_right_column,padding), "delete"))
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
861 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
862 if (!remove(PostDog_Construct_URL(curr_history_items->filename)))
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
863 Dowa_Array_Push(history_deleted_items, i);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
864 else
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
865 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
866 fprintf(stderr, "Wasn't able to delete file: %s \n", curr_history_items->filename);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
867 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
868 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
869 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
870 EndScissorMode();
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
871
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
872 // Draw scroll indicator for history
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
873 if (total > 0)
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
874 {
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
875 float content_height = total * (item_height + padding);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
876 if (content_height > history_list_area.height)
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
877 {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
878 float scrollbar_height = (history_list_area.height / content_height) * history_list_area.height;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
879 float scrollbar_y = history_list_area.y - (history_scroll_offset / content_height) * history_list_area.height;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
880 Rectangle scrollbar = {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
881 history_list_area.x + history_list_area.width - 5,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
882 scrollbar_y,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
883 5,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
884 scrollbar_height
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
885 };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
886 DrawRectangleRec(scrollbar, Fade(WHITE, 0.5f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
887 }
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
888 }
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
889
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
890 // URL area Rect
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
891 GuiDrawText("URL: ", url_text_bounds, TEXT_ALIGN_CENTER, RED);
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
892 DrawRectangleRec(url_area, Fade(RED, 0.1f));
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
893 if (GuiTextBox(url_input_bounds, url_input_text, DEFAULT_TEXT_BUFFER_LENGTH, url_input_edit))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
894 url_input_edit = !url_input_edit;
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
895
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
896 sendRequest = GuiButton(url_enter_button, "ENTER");
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
897 if (sendRequest)
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
898 PostDog_Http_Request(
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
899 url_input_text,
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
900 PostDog_Enum_To_String(active_method_dropdown),
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
901 url_body_map[TAB_HEADER],
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
902 url_body_map[TAB_BODY],
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
903 url_result_text,
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
904 RESULT_BUFFER_LENGTH
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
905 );
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
906 if (GuiDropdownBox(method_dropdown, "GET;POST;PUT;DELETE", &active_method_dropdown, method_edit))
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
907 method_edit = !method_edit;
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
908
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
909 // Input Tabs Rect
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
910 DrawRectangleRec(input_area, Fade(BLUE, 0.1f));
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
911 DrawRectangleRec(input_tab, Fade(DARKBLUE, 0.1f));
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
912 GuiSetStyle(TOGGLE, GROUP_PADDING, 0);
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
913 GuiDrawRectangle(input_body, 1, GetColor(GuiGetStyle(TEXTBOX, BORDER)), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED)));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
914
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
915 // Create scrollable input body with offset
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
916 BeginScissorMode(input_body.x, input_body.y, input_body.width, input_body.height);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
917 Rectangle scrolled_input = AddPadding(input_body, padding * 2);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
918 scrolled_input.y += input_body_scroll_offset;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
919 scrolled_input.height = MAX_SCROLL_HEIGHT;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
920 if (JUNE_GuiTextBox(scrolled_input, url_body_map[active_input_tab], DEFAULT_TEXT_BUFFER_LENGTH, input_body_bool))
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
921 input_body_bool = !input_body_bool;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
922 EndScissorMode();
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
923
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
924 // Draw scroll indicator for input body
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
925 if (input_body_scroll_offset < 0) {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
926 float scrollbar_height = 50; // Fixed size indicator
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
927 float max_scroll = 1000; // Estimated max scroll
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
928 float scrollbar_y = input_body.y - (input_body_scroll_offset / max_scroll) * (input_body.height - scrollbar_height);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
929 Rectangle scrollbar = {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
930 input_body.x + input_body.width - 5,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
931 scrollbar_y,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
932 5,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
933 scrollbar_height
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
934 };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
935 DrawRectangleRec(scrollbar, Fade(BLUE, 0.5f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
936 }
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
937
112
d6d578b49a19 [PostDog] Got CRUD working.
June Park <parkjune1995@gmail.com>
parents: 111
diff changeset
938 GuiToggleGroup(input_tab_item, "Header;Body;Get Param;Bar", &active_input_tab);
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
939
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
940 PostDog_Update_URL(&url_input_text, url_body_map[TAB_GET_PARAMS]);
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
941
111
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
942 // Result Rect
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
943 DrawRectangleRec(result_area, Fade(GREEN, 0.1f));
48f260576059 [PostDog] Rewriting it from scratch as it is unreadable for me.
June Park <parkjune1995@gmail.com>
parents: 63
diff changeset
944 DrawRectangleRec(result_body, Fade(DARKGREEN, 0.1f));
116
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
945
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
946 // Create scrollable result body with offset
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
947 BeginScissorMode(result_body.x, result_body.y, result_body.width, result_body.height);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
948 Rectangle scrolled_result = result_body;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
949 scrolled_result.y += result_body_scroll_offset;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
950 scrolled_result.height = MAX_SCROLL_HEIGHT;
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
951 GuiTextBoxMulti(scrolled_result, url_result_text, RESULT_BUFFER_LENGTH, false);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
952 EndScissorMode();
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
953
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
954 // Draw scroll indicator for result body
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
955 if (result_body_scroll_offset < 0) {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
956 float scrollbar_height = 50; // Fixed size indicator
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
957 float max_scroll = 1000; // Estimated max scroll
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
958 float scrollbar_y = result_body.y - (result_body_scroll_offset / max_scroll) * (result_body.height - scrollbar_height);
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
959 Rectangle scrollbar = {
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
960 result_body.x + result_body.width - 5,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
961 scrollbar_y,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
962 5,
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
963 scrollbar_height
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
964 };
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
965 DrawRectangleRec(scrollbar, Fade(GREEN, 0.5f));
7bd795bac997 [Postdog] Added scrollable area to inputs and history files, buttons to delete and view.
June Park <parkjune1995@gmail.com>
parents: 115
diff changeset
966 }
114
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
967
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
968 if (url_input_edit && (IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyPressed(KEY_C))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
969 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
970 SetClipboardText(url_input_text);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
971 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
972 else if (input_body_bool && (IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyPressed(KEY_C))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
973 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
974 SetClipboardText(url_body_map[active_input_tab]);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
975 }
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
976 else if (InArea(mouse_position, result_body))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
977 {
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
978 DrawRectangleRec(result_body, Fade(GREEN, 0.3f));
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
979 if ((IsKeyDown(KEY_LEFT_SUPER) || IsKeyDown(KEY_LEFT_CONTROL)) && IsKeyPressed(KEY_C))
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
980 SetClipboardText(url_result_text);
e2a73e64e8e6 [Postdog] Got history working.
June Park <parkjune1995@gmail.com>
parents: 112
diff changeset
981 }
54
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
982 EndDrawing();
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
983 }
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
984 CloseWindow();
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
985 return 0;
b3e82d22f961 [PostDog] Initial commit BROKEN
June Park <parkjune1995@gmail.com>
parents:
diff changeset
986 }