2017-01-31 19:42:41 +01:00
|
|
|
#ifndef MAINWINDOW_H
|
|
|
|
#define MAINWINDOW_H
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
2017-02-04 20:18:57 +01:00
|
|
|
#include <string.h>
|
2017-01-31 19:42:41 +01:00
|
|
|
#include <gtk/gtk.h>
|
2017-02-16 18:26:38 +01:00
|
|
|
#include <webkit2/webkit2.h>
|
2017-02-04 13:37:56 +01:00
|
|
|
#include "mdiary.h"
|
2017-03-12 17:44:25 +01:00
|
|
|
#include "md_pango.h"
|
2017-01-31 19:42:41 +01:00
|
|
|
|
2018-04-07 19:47:22 +02:00
|
|
|
#include "hoedown/src/document.h"
|
|
|
|
#include "hoedown/src/html.h"
|
|
|
|
|
2017-02-11 18:09:07 +01:00
|
|
|
#define FILE_LIST_MAX_LEN 5
|
|
|
|
|
2017-02-11 18:33:09 +01:00
|
|
|
enum {
|
|
|
|
WSCOL_LABEL = 0,
|
|
|
|
WSCOL_PATH,
|
|
|
|
WSCOL_COUNT
|
|
|
|
};
|
|
|
|
|
2017-02-19 14:42:50 +01:00
|
|
|
enum renderer_mode {
|
2017-02-19 14:52:53 +01:00
|
|
|
RENDERER_NONE = -1,
|
2017-02-19 14:42:50 +01:00
|
|
|
RENDERER_TEXT = 0,
|
|
|
|
RENDERER_BASIC,
|
|
|
|
RENDERER_HTML
|
|
|
|
};
|
|
|
|
|
2017-01-31 19:42:41 +01:00
|
|
|
struct mainWindow {
|
|
|
|
GtkWidget *mainWindow;
|
2017-02-05 19:03:38 +01:00
|
|
|
GtkWidget *mainPane;
|
2017-01-31 19:42:41 +01:00
|
|
|
GtkWidget *searchEntry;
|
|
|
|
GtkWidget *dateStart;
|
|
|
|
GtkWidget *dateEnd;
|
|
|
|
GtkWidget *entryText;
|
2017-02-16 21:00:17 +01:00
|
|
|
GtkWidget *entryTextScrollArea;
|
2017-02-01 17:33:01 +01:00
|
|
|
GtkWidget *popoverDate;
|
|
|
|
GtkWidget *calendarRange;
|
2017-02-04 12:17:41 +01:00
|
|
|
GtkWidget *checkSearchTitle;
|
2017-02-04 18:40:51 +01:00
|
|
|
GtkWidget *checkSearchSummary;
|
2017-02-04 12:17:41 +01:00
|
|
|
GtkWidget *checkSearchTags;
|
|
|
|
GtkWidget *checkSearchText;
|
2017-09-02 10:48:14 +02:00
|
|
|
GtkWidget *summaryEventBox;
|
2017-02-04 18:31:05 +01:00
|
|
|
GtkWidget *labelSummary;
|
2017-02-04 18:52:31 +01:00
|
|
|
GtkWidget *buttonClearSearch;
|
2017-02-11 18:44:29 +01:00
|
|
|
GtkWidget *headerBar;
|
2017-02-12 21:46:39 +01:00
|
|
|
GtkWidget *labelDateToDate;
|
2017-07-09 16:56:45 +02:00
|
|
|
GtkWidget *buttonNew;
|
2017-02-15 18:53:27 +01:00
|
|
|
GtkWidget *buttonDecrypt;
|
2017-02-16 18:26:38 +01:00
|
|
|
GtkWidget *webkitView;
|
2017-02-16 21:00:17 +01:00
|
|
|
GtkWidget *webkitScrollArea;
|
2017-02-16 18:26:38 +01:00
|
|
|
GtkWidget *stackRenderMode;
|
2017-01-31 21:31:31 +01:00
|
|
|
GtkTreeView *entryListView;
|
2017-02-02 20:02:33 +01:00
|
|
|
GtkTreeSelection *entryListSelection;
|
2017-02-03 20:05:49 +01:00
|
|
|
GtkTextBuffer *textBuffer;
|
2017-02-05 18:45:54 +01:00
|
|
|
GtkEntryCompletion *searchEntryCompletion;
|
2017-02-01 17:33:01 +01:00
|
|
|
|
2017-07-09 16:56:45 +02:00
|
|
|
gchar *currentWorkspaceUrl;
|
|
|
|
|
2017-02-05 18:45:54 +01:00
|
|
|
GtkListStore *completionListStore;
|
2017-02-02 17:16:49 +01:00
|
|
|
GtkListStore *entryListStore;
|
2017-02-01 17:33:01 +01:00
|
|
|
GtkWidget *selectedDateEntry;
|
2017-02-02 21:36:49 +01:00
|
|
|
GtkTreeModelFilter *entryListFiltered;
|
2017-02-02 20:20:22 +01:00
|
|
|
|
2017-02-19 14:42:50 +01:00
|
|
|
enum renderer_mode renderer;
|
|
|
|
|
2017-02-05 17:38:36 +01:00
|
|
|
gint64 time_earliest;
|
|
|
|
gint64 time_latest;
|
2017-02-04 19:55:08 +01:00
|
|
|
|
2017-02-02 20:20:22 +01:00
|
|
|
struct filterSettings {
|
2017-02-05 17:38:36 +01:00
|
|
|
gint64 time_start;
|
|
|
|
gint64 time_end;
|
2017-02-04 12:17:41 +01:00
|
|
|
gboolean search_title;
|
|
|
|
gboolean search_tags;
|
2017-02-04 18:40:51 +01:00
|
|
|
gboolean search_summary;
|
2017-02-04 12:17:41 +01:00
|
|
|
gboolean search_text;
|
2017-02-05 17:38:36 +01:00
|
|
|
gboolean hide_all;
|
2017-02-02 20:20:22 +01:00
|
|
|
} filterSettings;
|
2017-02-05 15:31:04 +01:00
|
|
|
|
|
|
|
GtkWidget *buttonOtherWorkspace;
|
2017-02-05 16:28:26 +01:00
|
|
|
GtkWidget *workspaceSearch;
|
2017-02-05 15:31:04 +01:00
|
|
|
GtkWidget *popoverWorkspace;
|
|
|
|
GtkTreeView *workspaceListView;
|
|
|
|
GtkTreeSelection *workspaceListSelection;
|
|
|
|
GtkListStore *workspaceListStore;
|
2017-02-05 16:28:26 +01:00
|
|
|
GtkTreeModelFilter *workspaceListFiltered;
|
2017-02-19 14:42:50 +01:00
|
|
|
|
2018-03-17 14:48:17 +01:00
|
|
|
gchar *newFileDateFormat;
|
|
|
|
|
2017-02-19 14:42:50 +01:00
|
|
|
struct settingsDialog {
|
|
|
|
GtkWidget *settingsDialog;
|
|
|
|
GtkWidget *comboDisplayMode;
|
2018-03-17 15:39:37 +01:00
|
|
|
GtkWidget *stackNewDateFormat;
|
2018-03-17 14:48:17 +01:00
|
|
|
GtkWidget *comboNewDateFormat;
|
2018-03-17 15:39:37 +01:00
|
|
|
GtkWidget *buttonCustomNewFileDateFormat;
|
|
|
|
GtkWidget *entryNewDateFormat;
|
2017-02-19 14:42:50 +01:00
|
|
|
} settingsDialog;
|
2017-01-31 19:42:41 +01:00
|
|
|
};
|
|
|
|
|
2017-02-16 21:00:17 +01:00
|
|
|
struct mainWindow *mainWindow_new();
|
2017-02-05 17:38:36 +01:00
|
|
|
void mainWindow_set_meta_information(struct mainWindow *mainWindow,
|
|
|
|
guint time_earliest,
|
|
|
|
guint time_latest,
|
|
|
|
gboolean hide_all);
|
2017-02-01 17:33:01 +01:00
|
|
|
void mainWindow_showPopover(GtkWidget *widget, GdkEvent *event, gpointer user_data);
|
2017-02-07 19:53:51 +01:00
|
|
|
void mainWindow_otherWorkspaceClicked(GtkWidget *widget, gpointer user_data);
|
2017-02-05 15:31:04 +01:00
|
|
|
void mainWindow_workspaceListClicked(GtkWidget *widget,
|
2017-02-05 16:28:26 +01:00
|
|
|
GtkTreePath *tree_path,
|
2017-02-05 15:31:04 +01:00
|
|
|
GtkTreeViewColumn *column,
|
|
|
|
gpointer user_data);
|
2017-02-04 18:52:31 +01:00
|
|
|
void mainWindow_clearSearch(GtkWidget *widget, gpointer user_data);
|
2017-02-01 17:33:01 +01:00
|
|
|
void mainWindow_calendarSelected(GtkWidget *widget, gpointer user_data);
|
2017-02-02 20:02:33 +01:00
|
|
|
void mainWindow_entrySelected(GtkWidget *widget, gpointer user_data);
|
2017-07-09 19:41:10 +02:00
|
|
|
void mainWindow_openExternalEditor(gchar *path);
|
2017-07-07 20:51:33 +02:00
|
|
|
void mainWindow_entryActivated(GtkWidget *widget, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data);
|
2017-02-03 20:25:34 +01:00
|
|
|
void mainWindow_filterChanged(GtkWidget *widget, gpointer user_data);
|
2017-02-05 16:28:26 +01:00
|
|
|
void mainWindow_workspace_search_changed(GtkWidget *widget, gpointer user_data);
|
2017-02-03 19:37:31 +01:00
|
|
|
void mainWindow_checkDate(GtkWidget *widget, gint event, gpointer user_data);
|
2017-02-04 20:38:29 +01:00
|
|
|
void mainWindow_dateIconPress(GtkWidget *widget, gint icon_pos, gint event, gpointer user_data);
|
2017-02-11 18:33:09 +01:00
|
|
|
void mainWindow_add_recent_workspace(struct mainWindow *mainWindow, gchar *path, gboolean append);
|
2017-02-15 19:16:55 +01:00
|
|
|
void mainWindow_switch_workspace(struct mainWindow *mainWindow, gchar *path, gboolean gpg_enabled);
|
2017-07-09 16:56:45 +02:00
|
|
|
void mainWindow_new_entry_clicked(GtkWidget *widget, gpointer user_data);
|
2017-02-15 19:16:55 +01:00
|
|
|
void mainWindow_decrypt_gpg_clicked(GtkWidget *widget, gpointer user_data);
|
2017-02-19 14:42:50 +01:00
|
|
|
void mainWindow_renderer_set(struct mainWindow *mainWindow, enum renderer_mode state);
|
|
|
|
void mainWindow_settings_show(struct mainWindow *mainWindow);
|
2017-09-02 10:48:14 +02:00
|
|
|
gboolean mainWindow_toggleSummaryWrap(GtkWidget *widget, GdkEvent *event, gpointer user_data);
|
2018-03-17 14:48:17 +01:00
|
|
|
void mainWindow_set_new_file_date_format(struct mainWindow *mainWindow, gchar *fmt);
|
2017-02-01 17:33:01 +01:00
|
|
|
|
2017-01-31 21:56:37 +01:00
|
|
|
#endif /* MAINWINDOW_H */
|