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 <gdk/gdkkeysyms.h>
12 
13 #if (GTK_MAJOR_VERSION == 3)
14 #include <gtk/gtkx.h>
15 #elif GTK_MAJOR_VERSION == 2
16 #include "gtk2-compat.h"
17 #endif
18 
20 {
21  struct
22  {
23  GtkWidget *window;
24  GtkBox *box;
25  GtkWidget *view;
26  GtkWidget *viewport;
27  GtkWidget *statusbar;
29  GtkWidget *notification_area;
30  GtkWidget *notification_text;
31  GtkWidget *tabbar;
32  GtkBox *inputbar_box;
33  GtkWidget *inputbar;
34  GtkLabel *inputbar_dialog;
35  GtkEntry *inputbar_entry;
36  GtkNotebook *tabs;
37  GtkBox *results;
39 #if (GTK_MAJOR_VERSION == 3)
40  Window embed;
41 #else
42  GdkNativeWindow embed;
43 #endif // (GTK_MAJOR_VERSION == 3)
44 
45  } gtk;
46 
47  struct
48  {
71  PangoFontDescription *font;
72  } style;
73 
74  struct
75  {
76  girara_list_t* mouse_events;
77  girara_list_t* commands;
78  girara_list_t* shortcuts;
79  girara_list_t* special_commands;
80  girara_list_t* inputbar_shortcuts;
81  } bindings;
82 
83  struct
84  {
85  girara_list_t* statusbar_items;
86  } elements;
87 
91  girara_list_t* GIRARA_DEPRECATED(settings);
92 
93  struct
94  {
106  } signals;
107 
108  struct
109  {
110  void (*buffer_changed)(girara_session_t* session);
111  bool (*unknown_command)(girara_session_t* session, const char* input);
112  } events;
113 
114  struct
115  {
116  GString *buffer;
117  void* data;
118  girara_list_t* GIRARA_DEPRECATED(command_history);
121  } global;
122 
123  struct
124  {
126  girara_list_t *identifiers;
129  } modes;
130 
131  struct
132  {
133  int n;
134  GString *command;
135  } buffer;
136 
137  struct
138  {
139  girara_list_t* handles;
140  girara_list_t* shortcut_mappings;
141  girara_list_t* argument_mappings;
142  } config;
143 
144  GiraraInputHistory* command_history;
145  girara_session_private_t* private_data;
146 };
147 
154 girara_session_t* girara_session_create();
155 
164 bool girara_session_init(girara_session_t* session, const char* appname);
165 
173 bool girara_session_destroy(girara_session_t* session);
174 
183 bool girara_set_view(girara_session_t* session, GtkWidget* widget);
184 
191 char* girara_buffer_get(girara_session_t* session);
192 
202 void girara_notify(girara_session_t* session, int level,
203  const char* format, ...) GIRARA_PRINTF(3, 4);
204 
215 void girara_dialog(girara_session_t* session, const char* dialog, bool
216  invisible, girara_callback_inputbar_key_press_event_t key_press_event,
217  girara_callback_inputbar_activate_t activate_event, void* data);
218 
226 girara_mode_t girara_mode_add(girara_session_t* session, const char* name);
227 
234 void girara_mode_set(girara_session_t* session, girara_mode_t mode);
235 
242 girara_mode_t girara_mode_get(girara_session_t* session);
243 
252 bool girara_set_window_title(girara_session_t* session, const char* name);
253 
260 girara_list_t* girara_get_command_history(girara_session_t* session);
261 
262 #endif
struct girara_session_s::@5 elements
int girara_mode_t
Definition: types.h:69
GdkRGBA completion_group_foreground
Definition: session.h:57
GiraraInputHistory * command_history
Definition: session.h:144
int view_key_pressed
Definition: session.h:98
bool girara_session_init(girara_session_t *session, const char *sessionname)
Definition: session.c:141
bool girara_set_window_title(girara_session_t *session, const char *name)
Definition: session.c:735
bool autohide_inputbar
Definition: session.h:119
struct girara_session_s::@6 signals
bool(* unknown_command)(girara_session_t *session, const char *input)
Definition: session.h:111
GtkNotebook * tabs
Definition: session.h:36
struct girara_session_s::@3 style
bool hide_statusbar
Definition: session.h:120
girara_session_t * session
Definition: tabs.c:263
bool girara_session_destroy(girara_session_t *session)
Definition: session.c:493
girara_list_t * shortcuts
Definition: session.h:78
GdkRGBA notification_default_foreground
Definition: session.h:65
GtkWidget * view
Definition: session.h:25
GdkRGBA completion_foreground
Definition: session.h:55
GdkRGBA completion_background
Definition: session.h:56
GdkRGBA inputbar_foreground
Definition: session.h:51
GtkLabel * inputbar_dialog
Definition: session.h:34
girara_list_t * handles
Definition: session.h:139
GdkRGBA default_background
Definition: session.h:50
GdkRGBA notification_default_background
Definition: session.h:66
GtkWidget * statusbar
Definition: session.h:27
int inputbar_key_pressed
Definition: session.h:96
int view_button_release_event
Definition: session.h:100
GtkWidget * tabbar
Definition: session.h:31
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:634
int view_motion_notify_event
Definition: session.h:101
girara_mode_t inputbar
Definition: session.h:128
girara_mode_t normal
Definition: session.h:127
girara_mode_t girara_mode_add(girara_session_t *session, const char *name)
Definition: session.c:694
girara_callback_inputbar_activate_t inputbar_custom_activate
Definition: session.h:103
girara_session_private_t * private_data
Definition: session.h:145
bool(* girara_callback_inputbar_key_press_event_t)(GtkWidget *widget, GdkEventKey *event, void *data)
Definition: callbacks.h:17
GtkBox * inputbar_box
Definition: session.h:32
girara_mode_t current_mode
Definition: session.h:125
bool girara_set_view(girara_session_t *session, GtkWidget *widget)
Definition: session.c:668
bool(* girara_callback_inputbar_activate_t)(GtkEntry *entry, void *data)
Definition: callbacks.h:27
GdkRGBA statusbar_foreground
Definition: session.h:53
bool
Definition: callbacks.c:256
GdkRGBA notification_warning_foreground
Definition: session.h:63
GtkWidget * viewport
Definition: session.h:26
GtkEntry * inputbar_entry
Definition: session.h:35
void * inputbar_custom_data
Definition: session.h:105
PangoFontDescription * font
Definition: session.h:71
GtkBox * statusbar_entries
Definition: session.h:28
GdkRGBA default_foreground
Definition: session.h:49
GdkRGBA tabbar_background
Definition: session.h:68
GdkNativeWindow embed
Definition: session.h:42
GdkRGBA tabbar_focus_background
Definition: session.h:70
GString * buffer
Definition: session.h:116
void(* buffer_changed)(girara_session_t *session)
Definition: session.h:110
GdkRGBA completion_highlight_foreground
Definition: session.h:59
int inputbar_changed
Definition: session.h:97
GdkRGBA notification_error_foreground
Definition: session.h:61
girara_list_t * identifiers
Definition: session.h:126
girara_list_t * GIRARA_DEPRECATED(settings)
girara_callback_inputbar_key_press_event_t inputbar_custom_key_press_event
Definition: session.h:104
girara_list_t * commands
Definition: session.h:77
GtkBox * results
Definition: session.h:37
#define GIRARA_PRINTF(format_idx, arg_idx)
Definition: macros.h:11
int view_button_press_event
Definition: session.h:99
struct girara_session_s::@2 gtk
GtkBox * box
Definition: session.h:24
void girara_notify(girara_session_t *session, int level, const char *format,...)
Definition: session.c:580
girara_list_t * argument_mappings
Definition: session.h:141
GdkRGBA completion_highlight_background
Definition: session.h:60
int inputbar_activate
Definition: session.h:95
struct girara_session_s::@7 events
GdkRGBA notification_warning_background
Definition: session.h:64
GtkWidget * notification_text
Definition: session.h:30
GdkRGBA inputbar_background
Definition: session.h:52
void girara_mode_set(girara_session_t *session, girara_mode_t mode)
Definition: session.c:686
GtkWidget * window
Definition: session.h:23
GString * command
Definition: session.h:134
int view_scroll_event
Definition: session.h:102
GdkRGBA statusbar_background
Definition: session.h:54
girara_session_t * girara_session_create()
Definition: session.c:51
GtkWidget * inputbar
Definition: session.h:33
struct girara_session_s::@4 bindings
GdkRGBA completion_group_background
Definition: session.h:58
GtkWidget * notification_area
Definition: session.h:29
girara_list_t * shortcut_mappings
Definition: session.h:140
GdkRGBA tabbar_focus_foreground
Definition: session.h:69
struct girara_session_s::@9 modes
girara_list_t * girara_get_command_history(girara_session_t *session)
Definition: session.c:747
struct girara_session_s::@11 config
girara_list_t * statusbar_items
Definition: session.h:85
girara_list_t * mouse_events
Definition: session.h:76
girara_list_t * inputbar_shortcuts
Definition: session.h:80
struct girara_session_s::@8 global
girara_list_t * special_commands
Definition: session.h:79
char * girara_buffer_get(girara_session_t *session)
Definition: session.c:572
girara_mode_t girara_mode_get(girara_session_t *session)
Definition: session.c:727
GdkRGBA notification_error_background
Definition: session.h:62
GdkRGBA tabbar_foreground
Definition: session.h:67