#ifndef YELLOWNOTES_H #define YELLOWNOTES_H #include #include #include extern "C" { #include "gtk-imports.h" } class YellowNote; class SettingContainer; #define YELLOWNOTE_MAJOR "1" #define YELLOWNOTE_MINOR "0" #define YELLOWNOTE_PATCH "0" #define YELLOWNOTE_VERSION YELLOWNOTE_MAJOR "." YELLOWNOTE_MINOR "." YELLOWNOTE_PATCH #define YELLOWNOTE_FILE_VERSION 3 typedef enum { DARK = 0, FIRST= DARK, YELLOW, ORANGE, BLUE, CYAAN, GREEN, RED, GREY, LAST = GREY } ColorType_t; class Geom_t { public: int x, y, width, height; }; class YellowNotes { private: void *_tray_menu; void *_app; void *_dlg; void *_langs; std::list _settings_containers; std::list _notes; int _font_size; GtkWindow *_toplevel; std::unordered_map _cfg; std::list _monitors; private: void loadConfig(); void saveConfig(); public: void loadNotes(); void clearNotes(); 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(); void colorSet(void *sender); void setFontSize(int size); public: void popupTrayMenu(void *sender); bool popupTrayMenuBtn(void *sender, GdkEventButton *evt); void newNote(void *sender); void showNotes(void *sender); void notesToDesktop(void *sender); void notesFromDesktop(void *sender); void reloadNotes(void *sender); void monitorsChanged(void *sender); void quit(void *sender); void topLevelHidden(GtkWidget *sender); void setup(void *sender); void reOrder(void *sender); void setupClose(GtkWidget *sender); void setupCancel(GtkWidget *sender); bool setupDel(GtkWidget *sender, void *evt); void remove(YellowNote *n); void checkMonitors(); void about(void *sender); public: std::string currentLang(); void setCurrentLang(const std::string &l); bool cfgOnDesktop(); void setCfgOnDesktop(bool y); std::string getFgColor(ColorType_t type); std::string getBgColor(ColorType_t type); void setFgColor(ColorType_t type, const std::string &col); void setBgColor(ColorType_t type, const std::string &col); std::string fromRGBA(const GdkRGBA &rgba); void toRGBA(const std::string &col, GdkRGBA &rgba); void updateWidgetCss(GtkWidget *w, ColorType_t col); GtkWidget *getWindow(); public: YellowNotes(void *app); ~YellowNotes(); }; #define YELLOWNOTES(obj) reinterpret_cast(obj) #define SIGNAL(type, func, member) \ static void func(GObject *obj, gpointer user_data) { type *o = reinterpret_cast(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(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(user_data); o->member(obj, reinterpret_cast(arg)); } #define BSIGNAL2(type, func, member, argtype) \ static gboolean func(GObject *obj, void *arg, gpointer user_data) { \ type *o = reinterpret_cast(user_data); return o->member(obj, reinterpret_cast(arg)); } #endif // YELLOWNOTES_H