mdiary/src/mainwindow.h

113 lines
3.4 KiB
C
Raw Normal View History

2017-01-31 19:42:41 +01:00
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <stdlib.h>
#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>
#include "mdiary.h"
2017-03-12 17:44:25 +01:00
#include "md_pango.h"
2017-01-31 19:42:41 +01:00
2017-02-11 18:09:07 +01:00
#define FILE_LIST_MAX_LEN 5
enum {
WSCOL_LABEL = 0,
WSCOL_PATH,
WSCOL_COUNT
};
enum renderer_mode {
2017-02-19 14:52:53 +01:00
RENDERER_NONE = -1,
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;
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-02-04 18:31:05 +01:00
GtkWidget *labelSummary;
2017-02-04 18:52:31 +01:00
GtkWidget *buttonClearSearch;
GtkWidget *headerBar;
GtkWidget *labelDateToDate;
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-05 18:45:54 +01:00
GtkListStore *completionListStore;
2017-02-02 17:16:49 +01:00
GtkListStore *entryListStore;
GtkWidget *selectedDateEntry;
2017-02-02 21:36:49 +01:00
GtkTreeModelFilter *entryListFiltered;
2017-02-02 20:20:22 +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;
GtkWidget *workspaceSearch;
2017-02-05 15:31:04 +01:00
GtkWidget *popoverWorkspace;
GtkTreeView *workspaceListView;
GtkTreeSelection *workspaceListSelection;
GtkListStore *workspaceListStore;
GtkTreeModelFilter *workspaceListFiltered;
struct settingsDialog {
GtkWidget *settingsDialog;
GtkWidget *comboDisplayMode;
} 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);
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,
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);
void mainWindow_calendarSelected(GtkWidget *widget, gpointer user_data);
2017-02-02 20:02:33 +01:00
void mainWindow_entrySelected(GtkWidget *widget, gpointer user_data);
void mainWindow_entryActivated(GtkWidget *widget, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data);
void mainWindow_filterChanged(GtkWidget *widget, gpointer user_data);
void mainWindow_workspace_search_changed(GtkWidget *widget, gpointer user_data);
void mainWindow_checkDate(GtkWidget *widget, gint event, gpointer user_data);
void mainWindow_dateIconPress(GtkWidget *widget, gint icon_pos, gint event, gpointer user_data);
void mainWindow_add_recent_workspace(struct mainWindow *mainWindow, gchar *path, gboolean append);
void mainWindow_switch_workspace(struct mainWindow *mainWindow, gchar *path, gboolean gpg_enabled);
void mainWindow_decrypt_gpg_clicked(GtkWidget *widget, gpointer user_data);
void mainWindow_renderer_set(struct mainWindow *mainWindow, enum renderer_mode state);
void mainWindow_settings_show(struct mainWindow *mainWindow);
2017-01-31 21:56:37 +01:00
#endif /* MAINWINDOW_H */