| ... | ... |
@@ -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 |
+ |