... | ... |
@@ -42,6 +42,7 @@ int reui_resize(reui_t *ui, int w, int h); |
42 | 42 |
int reui_setfontheight(reui_t *ui, int fontheight); |
43 | 43 |
int reui_fill(reui_t *ui, int x, int y, int w, int h, const char *rgba); |
44 | 44 |
int reui_fillrounded(reui_t *ui, int x, int y, int w, int h, const char *rgba); |
45 |
+int reui_fillblended(reui_t *ui, int x, int y, int w, int h, const char *rgba); |
|
45 | 46 |
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
46 | 47 |
int reui_present(reui_t *ui); |
47 | 48 |
|
... | ... |
@@ -41,6 +41,7 @@ int reui_title(reui_t *ui, char *titlefilename); |
41 | 41 |
int reui_resize(reui_t *ui, int w, int h); |
42 | 42 |
int reui_setfontheight(reui_t *ui, int fontheight); |
43 | 43 |
int reui_fill(reui_t *ui, int x, int y, int w, int h, const char *rgba); |
44 |
+int reui_fillrounded(reui_t *ui, int x, int y, int w, int h, const char *rgba); |
|
44 | 45 |
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
45 | 46 |
int reui_present(reui_t *ui); |
46 | 47 |
|
... | ... |
@@ -18,6 +18,7 @@ |
18 | 18 |
|
19 | 19 |
|
20 | 20 |
typedef struct reui_t { |
21 |
+ void *parent; |
|
21 | 22 |
int screenw,screenh; |
22 | 23 |
int w,h; |
23 | 24 |
Uint32 rmask, gmask, bmask, amask; |
... | ... |
@@ -33,7 +34,7 @@ typedef struct reui_t { |
33 | 34 |
int rendererdirty; |
34 | 35 |
} reui_t; |
35 | 36 |
|
36 |
-reui_t *reui_init(int fontheight); |
|
37 |
+reui_t *reui_init(int fontheight, reui_t *parent); |
|
37 | 38 |
void reui_free(reui_t *ui); |
38 | 39 |
|
39 | 40 |
int reui_title(reui_t *ui, char *titlefilename); |
... | ... |
@@ -17,9 +17,6 @@ |
17 | 17 |
#include "SDL_ttf.h" |
18 | 18 |
|
19 | 19 |
|
20 |
-#define FONTCACHESTART ' ' |
|
21 |
-#define FONTCACHEEND '~' |
|
22 |
- |
|
23 | 20 |
typedef struct reui_t { |
24 | 21 |
int screenw,screenh; |
25 | 22 |
int w,h; |
... | ... |
@@ -30,9 +27,6 @@ typedef struct reui_t { |
30 | 27 |
SDL_RWops *fontdata; |
31 | 28 |
TTF_Font *font; |
32 | 29 |
SDL_Texture *onepx; |
33 |
- int usedfontcache; |
|
34 |
- SDL_Texture *fontcache; |
|
35 |
- int fontcachewhere[FONTCACHEEND-FONTCACHESTART]; |
|
36 | 30 |
int fontheight; |
37 | 31 |
int fontwidth; |
38 | 32 |
int scrdirty; |
... | ... |
@@ -17,6 +17,8 @@ |
17 | 17 |
#include "SDL_ttf.h" |
18 | 18 |
|
19 | 19 |
|
20 |
+#define FONTCACHESTART ' ' |
|
21 |
+#define FONTCACHEEND '~' |
|
20 | 22 |
|
21 | 23 |
typedef struct reui_t { |
22 | 24 |
int screenw,screenh; |
... | ... |
@@ -28,6 +30,9 @@ typedef struct reui_t { |
28 | 30 |
SDL_RWops *fontdata; |
29 | 31 |
TTF_Font *font; |
30 | 32 |
SDL_Texture *onepx; |
33 |
+ int usedfontcache; |
|
34 |
+ SDL_Texture *fontcache; |
|
35 |
+ int fontcachewhere[FONTCACHEEND-FONTCACHESTART]; |
|
31 | 36 |
int fontheight; |
32 | 37 |
int fontwidth; |
33 | 38 |
int scrdirty; |
... | ... |
@@ -17,14 +17,17 @@ |
17 | 17 |
#include "SDL_ttf.h" |
18 | 18 |
|
19 | 19 |
|
20 |
+ |
|
20 | 21 |
typedef struct reui_t { |
21 | 22 |
int screenw,screenh; |
22 | 23 |
int w,h; |
24 |
+ Uint32 rmask, gmask, bmask, amask; |
|
23 | 25 |
SDL_Window *win; |
24 | 26 |
SDL_Renderer *renderer; |
25 | 27 |
SDL_Texture *scr; |
26 | 28 |
SDL_RWops *fontdata; |
27 | 29 |
TTF_Font *font; |
30 |
+ SDL_Texture *onepx; |
|
28 | 31 |
int fontheight; |
29 | 32 |
int fontwidth; |
30 | 33 |
int scrdirty; |
... | ... |
@@ -37,17 +40,17 @@ void reui_free(reui_t *ui); |
37 | 40 |
int reui_title(reui_t *ui, char *titlefilename); |
38 | 41 |
int reui_resize(reui_t *ui, int w, int h); |
39 | 42 |
int reui_setfontheight(reui_t *ui, int fontheight); |
40 |
-int reui_fill(reui_t *ui, int x, int y, int w, int h, char *rgba); |
|
43 |
+int reui_fill(reui_t *ui, int x, int y, int w, int h, const char *rgba); |
|
41 | 44 |
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
42 | 45 |
int reui_present(reui_t *ui); |
43 | 46 |
|
44 | 47 |
|
45 |
-int reui_write(reui_t *ui, int x, int y, char *rgba, char *str, int nchar); |
|
48 |
+int reui_write(reui_t *ui, int x, int y, const char *rgba, const char *str, int nchar); |
|
46 | 49 |
#ifdef __GNUC__ |
47 |
-int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6))); |
|
50 |
+int reui_printf(reui_t *ui, int x, int y, const char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6))); |
|
48 | 51 |
#else |
49 |
-int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...); |
|
52 |
+int reui_printf(reui_t *ui, int x, int y, const char *rgba, char *format, ...); |
|
50 | 53 |
#endif |
51 | 54 |
|
52 |
-int reui_balloon(reui_t *ui, char direction, int x, int y, char *rgbafg, char *rgbabg, char *str, int nchar); |
|
55 |
+int reui_balloon(reui_t *ui, char direction, int x, int y, const char *rgbafg, const char *rgbabg, const char *str, int nchar); |
|
53 | 56 |
|
... | ... |
@@ -31,11 +31,12 @@ typedef struct reui_t { |
31 | 31 |
int rendererdirty; |
32 | 32 |
} reui_t; |
33 | 33 |
|
34 |
-reui_t *reui_init(); |
|
34 |
+reui_t *reui_init(int fontheight); |
|
35 | 35 |
void reui_free(reui_t *ui); |
36 | 36 |
|
37 | 37 |
int reui_title(reui_t *ui, char *titlefilename); |
38 | 38 |
int reui_resize(reui_t *ui, int w, int h); |
39 |
+int reui_setfontheight(reui_t *ui, int fontheight); |
|
39 | 40 |
int reui_fill(reui_t *ui, int x, int y, int w, int h, char *rgba); |
40 | 41 |
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
41 | 42 |
int reui_present(reui_t *ui); |
... | ... |
@@ -48,3 +48,5 @@ int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...) __attri |
48 | 48 |
int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...); |
49 | 49 |
#endif |
50 | 50 |
|
51 |
+int reui_balloon(reui_t *ui, char direction, int x, int y, char *rgbafg, char *rgbabg, char *str, int nchar); |
|
52 |
+ |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
/* |
2 |
- * re_ui.c |
|
2 |
+ * re_ui.h |
|
3 | 3 |
* |
4 | 4 |
* A programmers editor |
5 | 5 |
* |
... | ... |
@@ -35,10 +35,12 @@ reui_t *reui_init(); |
35 | 35 |
void reui_free(reui_t *ui); |
36 | 36 |
|
37 | 37 |
int reui_title(reui_t *ui, char *titlefilename); |
38 |
+int reui_resize(reui_t *ui, int w, int h); |
|
38 | 39 |
int reui_fill(reui_t *ui, int x, int y, int w, int h, char *rgba); |
39 | 40 |
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
40 | 41 |
int reui_present(reui_t *ui); |
41 | 42 |
|
43 |
+ |
|
42 | 44 |
int reui_write(reui_t *ui, int x, int y, char *rgba, char *str, int nchar); |
43 | 45 |
#ifdef __GNUC__ |
44 | 46 |
int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6))); |
... | ... |
@@ -45,12 +45,3 @@ int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...) __attri |
45 | 45 |
int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...); |
46 | 46 |
#endif |
47 | 47 |
|
48 |
-/* calculate the number of utf8-charaters in buffer */ |
|
49 |
-int reui_utf8len(reui_t *ui, char *ptr, int size); |
|
50 |
- |
|
51 |
-/* return a pointer to the "n"th ("col"th) utf8-character in buffer */ |
|
52 |
-char *reui_utf8col(reui_t *ui, char *ptr, int size, int col); |
|
53 |
- |
|
54 |
-/* returns the len in bytes of the character starting at ptr (zero on error)*/ |
|
55 |
-int reui_utf8charlen(reui_t *ui, char *ptr, int maxsize); |
|
56 |
- |
... | ... |
@@ -51,3 +51,6 @@ int reui_utf8len(reui_t *ui, char *ptr, int size); |
51 | 51 |
/* return a pointer to the "n"th ("col"th) utf8-character in buffer */ |
52 | 52 |
char *reui_utf8col(reui_t *ui, char *ptr, int size, int col); |
53 | 53 |
|
54 |
+/* returns the len in bytes of the character starting at ptr (zero on error)*/ |
|
55 |
+int reui_utf8charlen(reui_t *ui, char *ptr, int maxsize); |
|
56 |
+ |
... | ... |
@@ -25,6 +25,7 @@ typedef struct reui_t { |
25 | 25 |
SDL_RWops *fontdata; |
26 | 26 |
TTF_Font *font; |
27 | 27 |
int fontheight; |
28 |
+ int fontwidth; |
|
28 | 29 |
int scrdirty; |
29 | 30 |
int rendererdirty; |
30 | 31 |
} reui_t; |
... | ... |
@@ -33,13 +34,20 @@ reui_t *reui_init(); |
33 | 34 |
void reui_free(reui_t *ui); |
34 | 35 |
|
35 | 36 |
int reui_title(reui_t *ui, char *titlefilename); |
36 |
-int reui_fill(reui_t *ui, int x, int y, int w, int h, unsigned char *rgba); |
|
37 |
+int reui_fill(reui_t *ui, int x, int y, int w, int h, char *rgba); |
|
37 | 38 |
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
38 | 39 |
int reui_present(reui_t *ui); |
39 | 40 |
|
40 |
-int reui_write(reui_t *ui, int x, int y, unsigned char *rgba, char *str, int nchar); |
|
41 |
+int reui_write(reui_t *ui, int x, int y, char *rgba, char *str, int nchar); |
|
41 | 42 |
#ifdef __GNUC__ |
42 |
-int reui_printf(reui_t *ui, int x, int y, unsigned char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6))); |
|
43 |
+int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6))); |
|
43 | 44 |
#else |
44 |
-int reui_printf(reui_t *ui, int x, int y, unsigned char *rgba, char *format, ...); |
|
45 |
+int reui_printf(reui_t *ui, int x, int y, char *rgba, char *format, ...); |
|
45 | 46 |
#endif |
47 |
+ |
|
48 |
+/* calculate the number of utf8-charaters in buffer */ |
|
49 |
+int reui_utf8len(reui_t *ui, char *ptr, int size); |
|
50 |
+ |
|
51 |
+/* return a pointer to the "n"th ("col"th) utf8-character in buffer */ |
|
52 |
+char *reui_utf8col(reui_t *ui, char *ptr, int size, int col); |
|
53 |
+ |
... | ... |
@@ -11,11 +11,35 @@ |
11 | 11 |
* This program is licensed under the terms of GNU GPL v2.1+ |
12 | 12 |
*/ |
13 | 13 |
|
14 |
+#include "SDL.h" |
|
15 |
+#include "SDL_rwops.h" |
|
16 |
+#include "SDL_image.h" |
|
17 |
+#include "SDL_ttf.h" |
|
18 |
+ |
|
14 | 19 |
|
15 | 20 |
typedef struct reui_t { |
16 |
- int dummy; |
|
21 |
+ int w,h; |
|
22 |
+ SDL_Window *win; |
|
23 |
+ SDL_Renderer *renderer; |
|
24 |
+ SDL_Texture *scr; |
|
25 |
+ SDL_RWops *fontdata; |
|
26 |
+ TTF_Font *font; |
|
27 |
+ int fontheight; |
|
28 |
+ int scrdirty; |
|
29 |
+ int rendererdirty; |
|
17 | 30 |
} reui_t; |
18 | 31 |
|
19 | 32 |
reui_t *reui_init(); |
20 |
-void reui_fini(reui_t *ui); |
|
33 |
+void reui_free(reui_t *ui); |
|
34 |
+ |
|
35 |
+int reui_title(reui_t *ui, char *titlefilename); |
|
36 |
+int reui_fill(reui_t *ui, int x, int y, int w, int h, unsigned char *rgba); |
|
37 |
+int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h); |
|
38 |
+int reui_present(reui_t *ui); |
|
21 | 39 |
|
40 |
+int reui_write(reui_t *ui, int x, int y, unsigned char *rgba, char *str, int nchar); |
|
41 |
+#ifdef __GNUC__ |
|
42 |
+int reui_printf(reui_t *ui, int x, int y, unsigned char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6))); |
|
43 |
+#else |
|
44 |
+int reui_printf(reui_t *ui, int x, int y, unsigned char *rgba, char *format, ...); |
|
45 |
+#endif |
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,21 @@ |
1 |
+/* |
|
2 |
+ * re_ui.c |
|
3 |
+ * |
|
4 |
+ * A programmers editor |
|
5 |
+ * |
|
6 |
+ * Simple UI in SDL2 |
|
7 |
+ * |
|
8 |
+ * HEADER FILE |
|
9 |
+ * |
|
10 |
+ * Author: Dario Rodriguez dario@softhome.net |
|
11 |
+ * This program is licensed under the terms of GNU GPL v2.1+ |
|
12 |
+ */ |
|
13 |
+ |
|
14 |
+ |
|
15 |
+typedef struct reui_t { |
|
16 |
+ int dummy; |
|
17 |
+} reui_t; |
|
18 |
+ |
|
19 |
+reui_t *reui_init(); |
|
20 |
+void reui_fini(reui_t *ui); |
|
21 |
+ |