girara
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
session.h
Go to the documentation of this file.
1 /* See LICENSE file for license and copyright information */
2 
3 #ifndef GIRARA_SESSION_H
4 #define GIRARA_SESSION_H
5 
6 #include "types.h"
7 #include "macros.h"
8 #include "callbacks.h"
9 
10 #include <gtk/gtk.h>
11 #include <gtk/gtkx.h>
12 #include <gdk/gdkkeysyms.h>
13 
15 {
16  struct
17  {
18  GtkWidget *window;
19  GtkBox *box;
20  GtkWidget *view;
21  GtkWidget *viewport;
22  GtkWidget *statusbar;
24  GtkWidget *notification_area;
25  GtkWidget *notification_text;
26  GtkWidget *tabbar;
27  GtkBox *inputbar_box;
28  GtkWidget *inputbar;
29  GtkLabel *inputbar_dialog;
30  GtkEntry *inputbar_entry;
31  GtkNotebook *tabs;
32  GtkBox *results;
33  Window embed;
34  } gtk;
35 
36  struct
37  {
60  PangoFontDescription *font;
61  } GIRARA_DEPRECATED(style);
62 
63  struct
64  {
65  girara_list_t* mouse_events;
66  girara_list_t* commands;
67  girara_list_t* shortcuts;
68  girara_list_t* special_commands;
69  girara_list_t* inputbar_shortcuts;
70  } bindings;
71 
72  struct
73  {
74  girara_list_t* statusbar_items;
75  } elements;
76 
80  girara_list_t* GIRARA_DEPRECATED(settings);
81 
82  struct
83  {
95  } signals;
96 
97  struct
98  {
99  void (*buffer_changed)(girara_session_t* session);
100  bool (*unknown_command)(girara_session_t* session, const char* input);
101  } events;
102 
103  struct
104  {
105  GString *buffer;
106  void* data;
107  girara_list_t* GIRARA_DEPRECATED(command_history);
110  } global;
111 
112  struct
113  {
115  girara_list_t *identifiers;
118  } modes;
119 
120  struct
121  {
122  int n;
123  GString *command;
124  } buffer;
125 
126  struct
127  {
128  girara_list_t* handles;
129  girara_list_t* shortcut_mappings;
130  girara_list_t* argument_mappings;
131  } config;
132 
133  GiraraInputHistory* command_history;
134  girara_session_private_t* private_data;
135 };
136 
143 girara_session_t* girara_session_create();
144 
153 bool girara_session_init(girara_session_t* session, const char* appname);
154 
162 bool girara_session_destroy(girara_session_t* session);
163 
172 bool girara_set_view(girara_session_t* session, GtkWidget* widget);
173 
180 char* girara_buffer_get(girara_session_t* session);
181 
191 void girara_libnotify(girara_session_t* session, const char *summary,
192  const char *body);
193 
203 void girara_notify(girara_session_t* session, int level,
204  const char* format, ...) GIRARA_PRINTF(3, 4);
205 
216 void girara_dialog(girara_session_t* session, const char* dialog, bool
217  invisible, girara_callback_inputbar_key_press_event_t key_press_event,
218  girara_callback_inputbar_activate_t activate_event, void* data);
219 
227 girara_mode_t girara_mode_add(girara_session_t* session, const char* name);
228 
235 void girara_mode_set(girara_session_t* session, girara_mode_t mode);
236 
243 girara_mode_t girara_mode_get(girara_session_t* session);
244 
253 bool girara_set_window_title(girara_session_t* session, const char* name);
254 
263 bool girara_set_window_icon(girara_session_t* session, const char* name);
264 
271 girara_list_t* girara_get_command_history(girara_session_t* session);
272 
279 GiraraTemplate* girara_session_get_template(girara_session_t* session);
281 #endif
int girara_mode_t
Definition: types.h:69
GdkRGBA completion_group_foreground
Definition: session.h:46
GiraraInputHistory * command_history
Definition: session.h:133
int view_key_pressed
Definition: session.h:87
bool autohide_inputbar
Definition: session.h:108
struct girara_session_s::@5 bindings
bool(* unknown_command)(girara_session_t *session, const char *input)
Definition: session.h:100
GtkNotebook * tabs
Definition: session.h:31
char * girara_buffer_get(girara_session_t *session)
Definition: session.c:625
void girara_libnotify(girara_session_t *session, const char *summary, const char *body)
Definition: session.c:633
bool hide_statusbar
Definition: session.h:109
girara_list_t * shortcuts
Definition: session.h:67
GdkRGBA notification_default_foreground
Definition: session.h:54
GtkWidget * view
Definition: session.h:20
void girara_mode_set(girara_session_t *session, girara_mode_t mode)
Definition: session.c:799
struct girara_session_s::@10 modes
GdkRGBA completion_foreground
Definition: session.h:44
GdkRGBA completion_background
Definition: session.h:45
GiraraTemplate * girara_session_get_template(girara_session_t *session)
Definition: session.c:879
struct girara_session_s::@9 global
GdkRGBA inputbar_foreground
Definition: session.h:40
GtkLabel * inputbar_dialog
Definition: session.h:29
bool girara_session_init(girara_session_t *session, const char *appname)
Definition: session.c:307
girara_list_t * handles
Definition: session.h:128
GdkRGBA default_background
Definition: session.h:39
GdkRGBA notification_default_background
Definition: session.h:55
struct girara_session_s::@3 gtk
GtkWidget * statusbar
Definition: session.h:22
int inputbar_key_pressed
Definition: session.h:85
int view_button_release_event
Definition: session.h:89
girara_mode_t girara_mode_get(girara_session_t *session)
Definition: session.c:840
GtkWidget * tabbar
Definition: session.h:26
int view_motion_notify_event
Definition: session.h:90
girara_mode_t inputbar
Definition: session.h:117
girara_mode_t normal
Definition: session.h:116
Window embed
Definition: session.h:33
girara_callback_inputbar_activate_t inputbar_custom_activate
Definition: session.h:92
girara_session_private_t * private_data
Definition: session.h:134
bool(* girara_callback_inputbar_key_press_event_t)(GtkWidget *widget, GdkEventKey *event, void *data)
Definition: callbacks.h:17
GtkBox * inputbar_box
Definition: session.h:27
girara_mode_t current_mode
Definition: session.h:114
girara_session_t * girara_session_create()
Definition: session.c:220
bool(* girara_callback_inputbar_activate_t)(GtkEntry *entry, void *data)
Definition: callbacks.h:27
GdkRGBA statusbar_foreground
Definition: session.h:42
GdkRGBA notification_warning_foreground
Definition: session.h:52
GtkWidget * viewport
Definition: session.h:21
girara_list_t * girara_get_command_history(girara_session_t *session)
Definition: session.c:872
bool girara_session_destroy(girara_session_t *session)
Definition: session.c:544
GtkEntry * inputbar_entry
Definition: session.h:30
bool girara_set_window_icon(girara_session_t *session, const char *name)
Definition: session.c:860
struct girara_session_s::@6 elements
void * inputbar_custom_data
Definition: session.h:94
PangoFontDescription * font
Definition: session.h:60
GtkBox * statusbar_entries
Definition: session.h:23
GdkRGBA default_foreground
Definition: session.h:38
GdkRGBA tabbar_background
Definition: session.h:57
bool girara_set_window_title(girara_session_t *session, const char *name)
Definition: session.c:848
GdkRGBA tabbar_focus_background
Definition: session.h:59
void girara_notify(girara_session_t *session, int level, const char *format,...) GIRARA_PRINTF(3
GString * buffer
Definition: session.h:105
void(* buffer_changed)(girara_session_t *session)
Definition: session.h:99
GdkRGBA completion_highlight_foreground
Definition: session.h:48
int inputbar_changed
Definition: session.h:86
GdkRGBA notification_error_foreground
Definition: session.h:50
girara_list_t * identifiers
Definition: session.h:115
struct girara_session_s::@4 GIRARA_DEPRECATED(style)
girara_callback_inputbar_key_press_event_t inputbar_custom_key_press_event
Definition: session.h:93
struct girara_session_s::@8 events
girara_list_t * commands
Definition: session.h:66
GtkBox * results
Definition: session.h:32
#define GIRARA_PRINTF(format_idx, arg_idx)
Definition: macros.h:11
int view_button_press_event
Definition: session.h:88
GtkBox * box
Definition: session.h:19
girara_list_t * argument_mappings
Definition: session.h:130
GdkRGBA completion_highlight_background
Definition: session.h:49
int inputbar_activate
Definition: session.h:84
struct girara_session_s::@7 signals
GdkRGBA notification_warning_background
Definition: session.h:53
GtkWidget * notification_text
Definition: session.h:25
GdkRGBA inputbar_background
Definition: session.h:41
girara_mode_t girara_mode_add(girara_session_t *session, const char *name)
Definition: session.c:807
void void girara_dialog(girara_session_t *session, const char *dialog, bool invisible, girara_callback_inputbar_key_press_event_t key_press_event, girara_callback_inputbar_activate_t activate_event, void *data)
Definition: session.c:746
GtkWidget * window
Definition: session.h:18
GString * command
Definition: session.h:123
int view_scroll_event
Definition: session.h:91
GdkRGBA statusbar_background
Definition: session.h:43
bool girara_set_view(girara_session_t *session, GtkWidget *widget)
Definition: session.c:780
struct girara_session_s::@12 config
GtkWidget * inputbar
Definition: session.h:28
GdkRGBA completion_group_background
Definition: session.h:47
GtkWidget * notification_area
Definition: session.h:24
girara_list_t * shortcut_mappings
Definition: session.h:129
GdkRGBA tabbar_focus_foreground
Definition: session.h:58
girara_list_t * statusbar_items
Definition: session.h:74
girara_list_t * mouse_events
Definition: session.h:65
girara_list_t * inputbar_shortcuts
Definition: session.h:69
girara_list_t * special_commands
Definition: session.h:68
GdkRGBA notification_error_background
Definition: session.h:51
GdkRGBA tabbar_foreground
Definition: session.h:56