Files
yellownotes/yellownotes.h

131 lines
3.4 KiB
C++

#ifndef YELLOWNOTES_H
#define YELLOWNOTES_H
#include <string>
#include <list>
#include <unordered_map>
extern "C" {
#include "gtk-imports.h"
}
class YellowNote;
class SettingContainer;
#define YELLOWNOTE_MAJOR "1"
#define YELLOWNOTE_MINOR "0"
#define YELLOWNOTE_PATCH "3"
#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<SettingContainer *> _settings_containers;
std::list<YellowNote *> _notes;
int _font_size;
GtkWindow *_toplevel;
std::unordered_map<std::string, std::string> _cfg;
std::list<Geom_t> _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<YellowNotes *>(obj)
#define SIGNAL(type, func, 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(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(obj, reinterpret_cast<argtype *>(arg)); }
#endif // YELLOWNOTES_H