girara
session.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: Zlib */
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
12#ifdef GDK_WINDOWING_X11
13#include <gtk/gtkx.h>
14#else
15typedef int Window;
16#endif
17
19{
20 struct
21 {
22 GtkWidget *window;
23 GtkBox *box;
24 GtkWidget *view;
25 GtkWidget *viewport;
26 GtkWidget *statusbar;
28 GtkWidget *notification_area;
29 GtkWidget *notification_text;
30 GtkBox *inputbar_box;
31 GtkWidget *inputbar;
32 GtkLabel *inputbar_dialog;
33 GtkEntry *inputbar_entry;
34 GtkBox *results;
36 } gtk;
37
38 struct
39 {
46
47 struct
48 {
61
62 struct
63 {
64 void (*buffer_changed)(girara_session_t* session);
65 bool (*unknown_command)(girara_session_t* session, const char* input);
67
68 struct
69 {
70 GString *buffer;
71 void* data;
75
76 struct
77 {
83
84 GiraraInputHistory* command_history;
85 girara_session_private_t* private_data;
86};
87
94girara_session_t* girara_session_create(void) GIRARA_VISIBLE;
95
104bool girara_session_init(girara_session_t* session, const char* appname) GIRARA_VISIBLE;
105
113bool girara_session_destroy(girara_session_t* session) GIRARA_VISIBLE;
114
123bool girara_set_view(girara_session_t* session, GtkWidget* widget) GIRARA_VISIBLE;
124
131char* girara_buffer_get(girara_session_t* session) GIRARA_VISIBLE;
132
142void girara_libnotify(girara_session_t* session, const char *summary,
143 const char *body) GIRARA_VISIBLE;
144
154void girara_notify(girara_session_t* session, int level,
155 const char* format, ...) GIRARA_PRINTF(3, 4) GIRARA_VISIBLE;
156
167void girara_dialog(girara_session_t* session, const char* dialog, bool
168 invisible, girara_callback_inputbar_key_press_event_t key_press_event,
169 girara_callback_inputbar_activate_t activate_event, void* data) GIRARA_VISIBLE;
170
178girara_mode_t girara_mode_add(girara_session_t* session, const char* name) GIRARA_VISIBLE;
179
186void girara_mode_set(girara_session_t* session, girara_mode_t mode) GIRARA_VISIBLE;
187
195
204bool girara_set_window_title(girara_session_t* session, const char* name) GIRARA_VISIBLE;
205
214bool girara_set_window_icon(girara_session_t* session, const char* name) GIRARA_VISIBLE;
215
223
230GiraraTemplate* girara_session_get_template(girara_session_t* session) GIRARA_VISIBLE;
231
243void girara_session_set_template(girara_session_t* session, GiraraTemplate* template, bool init_variables) GIRARA_VISIBLE;
244
245#endif
gboolean(* girara_callback_inputbar_key_press_event_t)(GtkWidget *widget, GdkEventKey *event, void *data)
Definition: callbacks.h:18
gboolean(* girara_callback_inputbar_activate_t)(GtkEntry *entry, void *data)
Definition: callbacks.h:28
#define GIRARA_PRINTF(format_idx, arg_idx)
Definition: macros.h:26
GiraraTemplate * girara_session_get_template(girara_session_t *session) GIRARA_VISIBLE
bool girara_session_destroy(girara_session_t *session) GIRARA_VISIBLE
bool girara_set_window_title(girara_session_t *session, const char *name) GIRARA_VISIBLE
void girara_notify(girara_session_t *session, int level, const char *format,...) GIRARA_PRINTF(3
bool girara_session_init(girara_session_t *session, const char *appname) GIRARA_VISIBLE
girara_mode_t girara_mode_get(girara_session_t *session) GIRARA_VISIBLE
char * girara_buffer_get(girara_session_t *session) GIRARA_VISIBLE
void GIRARA_VISIBLE
Definition: session.h:155
void girara_mode_set(girara_session_t *session, girara_mode_t mode) GIRARA_VISIBLE
girara_list_t * girara_get_command_history(girara_session_t *session) GIRARA_VISIBLE
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) GIRARA_VISIBLE
void girara_libnotify(girara_session_t *session, const char *summary, const char *body) GIRARA_VISIBLE
girara_mode_t girara_mode_add(girara_session_t *session, const char *name) GIRARA_VISIBLE
void girara_session_set_template(girara_session_t *session, GiraraTemplate *template, bool init_variables) GIRARA_VISIBLE
girara_session_t * girara_session_create(void) GIRARA_VISIBLE
int Window
Definition: session.h:15
bool girara_set_view(girara_session_t *session, GtkWidget *widget) GIRARA_VISIBLE
bool girara_set_window_icon(girara_session_t *session, const char *name) GIRARA_VISIBLE
girara_list_t * commands
Definition: session.h:41
girara_callback_inputbar_activate_t inputbar_custom_activate
Definition: session.h:57
girara_list_t * shortcuts
Definition: session.h:42
int inputbar_key_pressed
Definition: session.h:50
int inputbar_activate
Definition: session.h:49
GtkBox * statusbar_entries
Definition: session.h:27
void * inputbar_custom_data
Definition: session.h:59
GtkEntry * inputbar_entry
Definition: session.h:33
girara_mode_t current_mode
Definition: session.h:78
int view_key_pressed
Definition: session.h:52
girara_list_t * mouse_events
Definition: session.h:40
void(* buffer_changed)(girara_session_t *session)
Definition: session.h:64
struct girara_session_s::@5 bindings
int inputbar_changed
Definition: session.h:51
girara_list_t * special_commands
Definition: session.h:43
GtkBox * box
Definition: session.h:23
void * data
Definition: session.h:71
girara_mode_t normal
Definition: session.h:80
int view_motion_notify_event
Definition: session.h:55
girara_list_t * inputbar_shortcuts
Definition: session.h:44
GtkWidget * notification_area
Definition: session.h:28
GtkLabel * inputbar_dialog
Definition: session.h:32
GString * buffer
Definition: session.h:70
struct girara_session_s::@9 modes
GiraraInputHistory * command_history
Definition: session.h:84
GtkWidget * window
Definition: session.h:22
GtkWidget * viewport
Definition: session.h:25
int view_scroll_event
Definition: session.h:56
GtkWidget * inputbar
Definition: session.h:31
GtkBox * inputbar_box
Definition: session.h:30
girara_callback_inputbar_key_press_event_t inputbar_custom_key_press_event
Definition: session.h:58
int view_button_press_event
Definition: session.h:53
bool autohide_inputbar
Definition: session.h:72
int view_button_release_event
Definition: session.h:54
Window embed
Definition: session.h:35
struct girara_session_s::@7 events
GtkWidget * statusbar
Definition: session.h:26
girara_session_private_t * private_data
Definition: session.h:85
struct girara_session_s::@6 signals
bool(* unknown_command)(girara_session_t *session, const char *input)
Definition: session.h:65
struct girara_session_s::@4 gtk
struct girara_session_s::@8 global
GtkWidget * notification_text
Definition: session.h:29
girara_mode_t inputbar
Definition: session.h:81
GtkBox * results
Definition: session.h:34
girara_list_t * identifiers
Definition: session.h:79
bool hide_statusbar
Definition: session.h:73
GtkWidget * view
Definition: session.h:24
int girara_mode_t
Definition: types.h:58
struct girara_list_s girara_list_t
Definition: types.h:10