Working YellowNotes on Windows.

This commit is contained in:
2025-11-20 16:59:14 +01:00
parent 36aba3a381
commit ea3f447af1
16 changed files with 1607 additions and 123 deletions

View File

@@ -3,15 +3,43 @@
#include <string>
#include <list>
#include <unordered_map>
extern "C" {
#include "gtk-imports.h"
}
class YellowNote;
typedef enum {
DARK = 0,
FIRST= DARK,
YELLOW,
ORANGE,
BLUE,
CYAAN,
GREEN,
RED,
GREY,
LAST = GREY
} ColorType_t;
class YellowNotes
{
private:
void *_tray_menu;
void *_app;
void *_dlg;
void *_langs;
std::list<YellowNote *> _notes;
int _font_size;
GtkWindow *_toplevel;
std::unordered_map<std::string, std::string> _cfg;
private:
void loadConfig();
void saveConfig();
public:
void loadNotes();
@@ -21,11 +49,27 @@ public:
std::string imageFile(const char *name);
std::string appDir();
std::string notesDir();
std::string css(ColorType_t type);
int fontSize();
int iconSize();
GtkWindow *topLevel();
public:
void popupTrayMenu();
void newNote();
void quit();
void popupTrayMenu(void *sender);
void newNote(void *sender);
void showNotes(void *sender);
void reloadNotes(void *sender);
void quit(void *sender);
void topLevelHidden(GtkWidget *sender);
void setup(void *sender);
void setupClose(GtkWidget *sender);
void setupCancel(GtkWidget *sender);
bool setupDel(GtkWidget *sender, void *evt);
void remove(YellowNote *n);
public:
std::string currentLang();
void setCurrentLang(const std::string &l);
public:
YellowNotes(void *app);
@@ -34,12 +78,15 @@ public:
#define YELLOWNOTES(obj) reinterpret_cast<YellowNotes *>(obj)
#define SIGNAL(type, func, member) \
static void func(GObject *obj, gpointer user_data) { type *o = reinterpret_cast<type *>(user_data); o->member(); }
static void func(GObject *obj, gpointer user_data) { type *o = reinterpret_cast<type *>(user_data); o->member(obj); }
#define BSIGNAL(type, func, member) \
static gboolean func(GObject *obj, gpointer user_data) { std::cout << user_data << std::endl; type *o = reinterpret_cast<type *>(user_data); return o->member(obj); }
#define SIGNAL2(type, func, member, argtype) \
static void func(GObject *obj, void *arg, gpointer user_data) { type *o = reinterpret_cast<type *>(user_data); o->member(reinterpret_cast<argtype *>(arg)); }
static void func(GObject *obj, void *arg, gpointer user_data) { type *o = reinterpret_cast<type *>(user_data); o->member(obj, reinterpret_cast<argtype *>(arg)); }
#define BSIGNAL2(type, func, member, argtype) \
static gboolean func(GObject *obj, void *arg, gpointer user_data) { type *o = reinterpret_cast<type *>(user_data); return o->member(reinterpret_cast<argtype *>(arg)); }
static gboolean func(GObject *obj, void *arg, gpointer user_data) { type *o = reinterpret_cast<type *>(user_data); return o->member(obj, reinterpret_cast<argtype *>(arg)); }
#endif // YELLOWNOTES_H