girara
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 #ifdef GDK_WINDOWING_X11
12 #include <gtk/gtkx.h>
13 #endif
14 #include <gdk/gdkkeysyms.h>
15 
16 #ifndef GDK_WINDOWING_X11
17 typedef int Window;
18 #endif
19 
21 {
22  struct
23  {
24  GtkWidget *window;
25  GtkBox *box;
26  GtkWidget *view;
27  GtkWidget *viewport;
28  GtkWidget *statusbar;
30  GtkWidget *notification_area;
31  GtkWidget *notification_text;
32  GtkWidget *tabbar;
33  GtkBox *inputbar_box;
34  GtkWidget *inputbar;
35  GtkLabel *inputbar_dialog;
36  GtkEntry *inputbar_entry;
37  GtkNotebook *tabs;
38  GtkBox *results;
40  } gtk;
41 
42  struct
43  {
49  } bindings;
50 
51  struct
52  {
54  } elements;
55 
56  struct
57  {
69  } signals;
70 
71  struct
72  {
73  void (*buffer_changed)(girara_session_t* session);
74  bool (*unknown_command)(girara_session_t* session, const char* input);
75  } events;
76 
77  struct
78  {
79  GString *buffer;
80  void* data;
83  } global;
84 
85  struct
86  {
91  } modes;
92 
93  struct
94  {
95  int n;
96  GString *command;
97  } buffer;
98 
99  struct
100  {
104  } config;
105 
106  GiraraInputHistory* command_history;
107  girara_session_private_t* private_data;
108 };
109 
116 girara_session_t* girara_session_create();
117 
126 bool girara_session_init(girara_session_t* session, const char* appname);
127 
135 bool girara_session_destroy(girara_session_t* session);
136 
145 bool girara_set_view(girara_session_t* session, GtkWidget* widget);
146 
153 char* girara_buffer_get(girara_session_t* session);
154 
164 void girara_libnotify(girara_session_t* session, const char *summary,
165  const char *body);
166 
176 void girara_notify(girara_session_t* session, int level,
177  const char* format, ...) GIRARA_PRINTF(3, 4);
178 
189 void girara_dialog(girara_session_t* session, const char* dialog, bool
190  invisible, girara_callback_inputbar_key_press_event_t key_press_event,
191  girara_callback_inputbar_activate_t activate_event, void* data);
192 
200 girara_mode_t girara_mode_add(girara_session_t* session, const char* name);
201 
208 void girara_mode_set(girara_session_t* session, girara_mode_t mode);
209 
216 girara_mode_t girara_mode_get(girara_session_t* session);
217 
226 bool girara_set_window_title(girara_session_t* session, const char* name);
227 
236 bool girara_set_window_icon(girara_session_t* session, const char* name);
237 
244 girara_list_t* girara_get_command_history(girara_session_t* session);
245 
252 GiraraTemplate* girara_session_get_template(girara_session_t* session);
253 
254 #endif
int girara_mode_t
Definition: types.h:69
GiraraInputHistory * command_history
Definition: session.h:106
int view_key_pressed
Definition: session.h:61
bool autohide_inputbar
Definition: session.h:81
void(* buffer_changed)(girara_session_t *session)
Definition: session.h:73
GtkNotebook * tabs
Definition: session.h:37
char * girara_buffer_get(girara_session_t *session)
void girara_libnotify(girara_session_t *session, const char *summary, const char *body)
int Window
Definition: session.h:17
bool hide_statusbar
Definition: session.h:82
girara_list_t * shortcuts
Definition: session.h:46
GtkWidget * view
Definition: session.h:26
void girara_mode_set(girara_session_t *session, girara_mode_t mode)
GiraraTemplate * girara_session_get_template(girara_session_t *session)
GtkLabel * inputbar_dialog
Definition: session.h:35
void * data
Definition: session.h:80
bool girara_session_init(girara_session_t *session, const char *appname)
girara_list_t * handles
Definition: session.h:101
struct girara_session_s::@6 global
GtkWidget * statusbar
Definition: session.h:28
int inputbar_key_pressed
Definition: session.h:59
int view_button_release_event
Definition: session.h:63
struct girara_session_s::@4 signals
girara_mode_t girara_mode_get(girara_session_t *session)
GtkWidget * tabbar
Definition: session.h:32
int view_motion_notify_event
Definition: session.h:64
girara_mode_t inputbar
Definition: session.h:90
girara_mode_t normal
Definition: session.h:89
Window embed
Definition: session.h:39
struct girara_session_s::@1 gtk
bool(* unknown_command)(girara_session_t *session, const char *input)
Definition: session.h:74
girara_callback_inputbar_activate_t inputbar_custom_activate
Definition: session.h:66
girara_session_private_t * private_data
Definition: session.h:107
GtkBox * inputbar_box
Definition: session.h:33
girara_mode_t current_mode
Definition: session.h:87
struct girara_session_s::@7 modes
girara_session_t * girara_session_create()
struct girara_session_s::@5 events
GtkWidget * viewport
Definition: session.h:27
girara_list_t * girara_get_command_history(girara_session_t *session)
gboolean(* girara_callback_inputbar_activate_t)(GtkEntry *entry, void *data)
Definition: callbacks.h:27
bool girara_session_destroy(girara_session_t *session)
struct girara_session_s::@9 config
GtkEntry * inputbar_entry
Definition: session.h:36
bool girara_set_window_icon(girara_session_t *session, const char *name)
void * inputbar_custom_data
Definition: session.h:68
GtkBox * statusbar_entries
Definition: session.h:29
bool girara_set_window_title(girara_session_t *session, const char *name)
void girara_notify(girara_session_t *session, int level, const char *format,...) GIRARA_PRINTF(3
GString * buffer
Definition: session.h:79
int inputbar_changed
Definition: session.h:60
girara_list_t * identifiers
Definition: session.h:88
girara_callback_inputbar_key_press_event_t inputbar_custom_key_press_event
Definition: session.h:67
girara_list_t * commands
Definition: session.h:45
GtkBox * results
Definition: session.h:38
#define GIRARA_PRINTF(format_idx, arg_idx)
Definition: macros.h:11
int view_button_press_event
Definition: session.h:62
GtkBox * box
Definition: session.h:25
struct girara_session_s::@2 bindings
girara_list_t * argument_mappings
Definition: session.h:103
int inputbar_activate
Definition: session.h:58
GtkWidget * notification_text
Definition: session.h:31
girara_mode_t girara_mode_add(girara_session_t *session, const char *name)
gboolean(* girara_callback_inputbar_key_press_event_t)(GtkWidget *widget, GdkEventKey *event, void *data)
Definition: callbacks.h:17
struct girara_session_s::@3 elements
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)
GtkWidget * window
Definition: session.h:24
GString * command
Definition: session.h:96
int view_scroll_event
Definition: session.h:65
bool girara_set_view(girara_session_t *session, GtkWidget *widget)
GtkWidget * inputbar
Definition: session.h:34
GtkWidget * notification_area
Definition: session.h:30
girara_list_t * shortcut_mappings
Definition: session.h:102
struct girara_list_s girara_list_t
Definition: types.h:10
girara_list_t * statusbar_items
Definition: session.h:53
girara_list_t * mouse_events
Definition: session.h:44
girara_list_t * inputbar_shortcuts
Definition: session.h:48
girara_list_t * special_commands
Definition: session.h:47