refactor: define all signals to header files
This commit is contained in:
parent
7dab18e121
commit
443f323597
@ -221,7 +221,7 @@ static void toplevel_handle_done(void *data,
|
||||
assert(shell);
|
||||
DiyaForeignWindow *win = diya_session_shell_get_window(shell, handle);
|
||||
assert(win);
|
||||
g_signal_emit_by_name(shell, "foreign-window-changed", (void *)win);
|
||||
g_signal_emit_by_name(shell, DIYA_SIGNAL_FOREIGN_WINDOW_CHANGED, (void *)win);
|
||||
}
|
||||
static void toplevel_handle_closed(void *data,
|
||||
struct zwlr_foreign_toplevel_handle_v1 *handle)
|
||||
@ -230,7 +230,7 @@ static void toplevel_handle_closed(void *data,
|
||||
assert(shell);
|
||||
DiyaForeignWindow *win = diya_session_shell_get_window(shell, handle);
|
||||
assert(win);
|
||||
g_signal_emit_by_name(shell, "foreign-window-removed", (void *)win);
|
||||
g_signal_emit_by_name(shell, DIYA_SIGNAL_FOREIGN_WINDOW_REMOVED, (void *)win);
|
||||
diya_session_shell_remove_window(shell, win);
|
||||
zwlr_foreign_toplevel_handle_v1_destroy(handle);
|
||||
}
|
||||
|
53
src/input.c
53
src/input.c
@ -91,6 +91,59 @@ static void diya_input_class_init(DiyaInputClass *class)
|
||||
// gobject_class->set_property = diya_input_set_property;
|
||||
// gobject_class->get_property = diya_input_get_property;
|
||||
base_class->to_string = diya_input_to_string;
|
||||
|
||||
g_signal_new(DIYA_SIGNAL_INPUT_KEYBOARD_ENTER,
|
||||
DIYA_TYPE_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
1,
|
||||
G_TYPE_POINTER);
|
||||
g_signal_new(DIYA_SIGNAL_INPUT_KEYBOARD_LEAVE,
|
||||
DIYA_TYPE_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
0);
|
||||
g_signal_new(DIYA_SIGNAL_INPUT_KEY_PRESSED,
|
||||
DIYA_TYPE_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
3,
|
||||
G_TYPE_UINT,
|
||||
G_TYPE_UINT,
|
||||
G_TYPE_UINT);
|
||||
|
||||
g_signal_new(DIYA_SIGNAL_INPUT_KEY_RELEASED,
|
||||
DIYA_TYPE_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
3,
|
||||
G_TYPE_UINT,
|
||||
G_TYPE_UINT,
|
||||
G_TYPE_UINT);
|
||||
}
|
||||
|
||||
static void wl_keyboard_keymap(void *data, struct wl_keyboard *keyboard, uint32_t format, int32_t fd, uint32_t size)
|
||||
|
@ -3,6 +3,11 @@
|
||||
|
||||
#include "shell.h"
|
||||
|
||||
#define DIYA_SIGNAL_INPUT_KEYBOARD_ENTER "keyboard-enter"
|
||||
#define DIYA_SIGNAL_INPUT_KEYBOARD_LEAVE "keyboard-leave"
|
||||
#define DIYA_SIGNAL_INPUT_KEY_PRESSED "key-pressed"
|
||||
#define DIYA_SIGNAL_INPUT_KEY_RELEASED "key-released"
|
||||
|
||||
#define DIYA_TYPE_INPUT (diya_input_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (DiyaInput, diya_input, DIYA, INPUT, DiyaShellObject)
|
||||
|
||||
|
@ -186,8 +186,8 @@ void diya_session_shell_launcher_init(DiyaSessionShell * shell)
|
||||
|
||||
gtk_window_present (GTK_WINDOW (taskbar));
|
||||
|
||||
g_signal_connect (shell, "foreign-window-changed", G_CALLBACK (on_foreign_window_change), NULL);
|
||||
g_signal_connect (shell, "foreign-window-removed", G_CALLBACK (on_foreign_window_removed), NULL);
|
||||
g_signal_connect (shell, DIYA_SIGNAL_FOREIGN_WINDOW_CHANGED, G_CALLBACK (on_foreign_window_change), NULL);
|
||||
g_signal_connect (shell, DIYA_SIGNAL_FOREIGN_WINDOW_REMOVED, G_CALLBACK (on_foreign_window_removed), NULL);
|
||||
|
||||
GList *apps = g_app_info_get_all ();
|
||||
GList * l;
|
||||
|
@ -103,6 +103,7 @@ static void diya_session_shell_startup(DiyaShell* shell)
|
||||
|
||||
static void diya_session_shell_active(DiyaShell* shell)
|
||||
{
|
||||
//(void) shell;
|
||||
diya_shell_monitor_input(shell);
|
||||
}
|
||||
|
||||
@ -128,7 +129,7 @@ static void diya_session_shell_class_init(DiyaSessionShellClass *class)
|
||||
|
||||
g_object_class_install_properties (gobject_class, N_PROPERTIES, shell_properties);
|
||||
|
||||
g_signal_new("foreign-window-changed",
|
||||
g_signal_new(DIYA_SIGNAL_FOREIGN_WINDOW_CHANGED,
|
||||
DIYA_TYPE_SESSION_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
@ -140,7 +141,7 @@ static void diya_session_shell_class_init(DiyaSessionShellClass *class)
|
||||
G_TYPE_NONE,
|
||||
1,
|
||||
G_TYPE_POINTER);
|
||||
g_signal_new("foreign-window-removed",
|
||||
g_signal_new(DIYA_SIGNAL_FOREIGN_WINDOW_REMOVED,
|
||||
DIYA_TYPE_SESSION_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
@ -152,7 +153,7 @@ static void diya_session_shell_class_init(DiyaSessionShellClass *class)
|
||||
G_TYPE_NONE,
|
||||
1,
|
||||
G_TYPE_POINTER);
|
||||
g_signal_new("session-locked",
|
||||
g_signal_new(DIYA_SIGNAL_SESSION_LOCKED,
|
||||
DIYA_TYPE_SESSION_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
@ -163,7 +164,7 @@ static void diya_session_shell_class_init(DiyaSessionShellClass *class)
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
0);
|
||||
g_signal_new("session-unlocked",
|
||||
g_signal_new(DIYA_SIGNAL_SESSION_UNLOCKED,
|
||||
DIYA_TYPE_SESSION_SHELL,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
@ -180,24 +181,14 @@ static void on_session_locked(GtkSessionLockInstance *lock, DiyaSessionShell *sh
|
||||
(void)lock;
|
||||
assert(shell);
|
||||
g_message("Session locked successfully");
|
||||
g_signal_emit_by_name(shell, "session-locked");
|
||||
g_signal_emit_by_name(shell, DIYA_SIGNAL_SESSION_LOCKED);
|
||||
}
|
||||
|
||||
/*
|
||||
static void failed(GtkSessionLockInstance *lock, void *data) {
|
||||
(void)lock;
|
||||
(void)data;
|
||||
|
||||
g_critical("The session could not be locked");
|
||||
g_application_quit(G_APPLICATION(app));
|
||||
}
|
||||
*/
|
||||
|
||||
static void on_session_unlocked(GtkSessionLockInstance *lock, DiyaSessionShell *shell) {
|
||||
(void)lock;
|
||||
assert(shell);
|
||||
g_message("Session unlocked");
|
||||
g_signal_emit_by_name(shell, "session-unlocked");
|
||||
g_signal_emit_by_name(shell, DIYA_SIGNAL_SESSION_UNLOCKED);
|
||||
}
|
||||
|
||||
static void diya_session_shell_init(DiyaSessionShell *self)
|
||||
|
@ -5,6 +5,11 @@
|
||||
#include "shell.h"
|
||||
#include "base.h"
|
||||
|
||||
#define DIYA_SIGNAL_FOREIGN_WINDOW_CHANGED "foreign-window-changed"
|
||||
#define DIYA_SIGNAL_FOREIGN_WINDOW_REMOVED "foreign-window-removed"
|
||||
#define DIYA_SIGNAL_SESSION_LOCKED "session-locked"
|
||||
#define DIYA_SIGNAL_SESSION_UNLOCKED "session-unlocked"
|
||||
|
||||
#define DIYA_TYPE_SESSION_SHELL (diya_session_shell_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (DiyaSessionShell, diya_session_shell, DIYA, SESSION_SHELL, DiyaShell)
|
||||
|
||||
|
@ -19,7 +19,7 @@ static void session_unlocked(DiyaSessionShell* shell, void* data)
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
DiyaSessionShell *shell = DIYA_SESSION_SHELL(g_object_new(DIYA_TYPE_SESSION_SHELL, "name","dev.iohub.diya.session-shell", NULL));
|
||||
g_signal_connect(shell, "session-locked", G_CALLBACK(session_locked), NULL);
|
||||
g_signal_connect(shell, "session-unlocked", G_CALLBACK(session_unlocked), NULL);
|
||||
g_signal_connect(shell, DIYA_SIGNAL_SESSION_LOCKED, G_CALLBACK(session_locked), NULL);
|
||||
g_signal_connect(shell, DIYA_SIGNAL_SESSION_UNLOCKED, G_CALLBACK(session_unlocked), NULL);
|
||||
return diya_shell_run(DIYA_SHELL(shell), argc, argv);
|
||||
}
|
||||
|
@ -94,19 +94,6 @@ static void diya_vkb_key_class_init(DiyaVkbKeyClass *class)
|
||||
// gobject_class->set_property = diya_lock_session_set_property;
|
||||
// gobject_class->get_property = diya_lock_session_get_property;
|
||||
base_class->to_string = diya_vkb_key_to_string;
|
||||
|
||||
g_signal_new("modifier-changed",
|
||||
DIYA_TYPE_VIRTUAL_KEYBOARD,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
0,
|
||||
NULL);
|
||||
}
|
||||
|
||||
const gchar *diya_vkb_key_get_keycap(DiyaVkbKey *key, uint32_t shift_level)
|
||||
@ -205,6 +192,18 @@ static void diya_virtual_keyboard_class_init(DiyaVirtualKeyboardClass *class)
|
||||
// gobject_class->set_property = diya_lock_session_set_property;
|
||||
// gobject_class->get_property = diya_lock_session_get_property;
|
||||
base_class->to_string = diya_virtual_keyboard_to_string;
|
||||
g_signal_new(DIYA_SIGNAL_VKB_MODIFIER_CHANGED,
|
||||
DIYA_TYPE_VIRTUAL_KEYBOARD,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
0,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -423,7 +422,7 @@ void diya_virtual_keyboard_send_key(DiyaVirtualKeyboard *self, DiyaVkbKey* key,
|
||||
}
|
||||
if(old_mods != self->key_mods)
|
||||
{
|
||||
g_signal_emit_by_name(self,"modifier-changed", NULL);
|
||||
g_signal_emit_by_name(self,DIYA_SIGNAL_VKB_MODIFIER_CHANGED, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,9 @@
|
||||
|
||||
#include "shell.h"
|
||||
|
||||
#define DIYA_SIGNAL_VKB_MODIFIER_CHANGED "modifier-changed"
|
||||
#define DIYA_SIGNAL_VKB_KEY_PRESSED "pressed"
|
||||
#define DIYA_SIGNAL_VKB_KEY_RELEASED "released"
|
||||
typedef enum
|
||||
{
|
||||
VKB_KEY_STATE_RELEASED = 0 /*WL_KEYBOARD_KEY_STATE_RELEASED*/,
|
||||
|
@ -60,6 +60,12 @@ static void diya_dashboard_widget_init(DiyaDashboardWidget * self)
|
||||
// gtk_widget_set_can_focus(GTK_WIDGET(self), true);
|
||||
//gtk_widget_set_name(GTK_WIDGET(dashboard),NAMESPACE);
|
||||
//gtk_window_set_default_size(GTK_WINDOW(dashboard), 48, 48);
|
||||
|
||||
// event controller
|
||||
//GtkEventController *event_controller = gtk_event_controller_key_new();
|
||||
//g_signal_connect(event_controller, "key-pressed", G_CALLBACK(on_diya_dashboard_key_press), self);
|
||||
// gtk_widget_add_controller(GTK_WIDGET(self), event_controller);
|
||||
|
||||
}
|
||||
|
||||
static void diya_dashboard_set_property(GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
|
||||
|
@ -81,8 +81,8 @@ static void diya_vkb_button_init(DiyaVkbButton *self)
|
||||
}
|
||||
// event handle
|
||||
GtkGesture *controller = gtk_gesture_click_new();
|
||||
g_signal_connect(controller, "pressed", G_CALLBACK(diya_vkb_button_event), "pressed");
|
||||
g_signal_connect(controller, "released", G_CALLBACK(diya_vkb_button_event), "released");
|
||||
g_signal_connect(controller, "pressed", G_CALLBACK(diya_vkb_button_event), DIYA_SIGNAL_VKB_KEY_PRESSED);
|
||||
g_signal_connect(controller, "released", G_CALLBACK(diya_vkb_button_event), DIYA_SIGNAL_VKB_KEY_RELEASED);
|
||||
gtk_widget_add_controller(GTK_WIDGET(self), GTK_EVENT_CONTROLLER(controller));
|
||||
}
|
||||
|
||||
@ -203,7 +203,7 @@ static void diya_virtual_keyboard_widget_class_init(DiyaVirtualKeyboardWidgetCla
|
||||
gobject_class->dispose = diya_virtual_keyboard_widget_dispose;
|
||||
gtk_widget_class_set_css_name(GTK_WIDGET_CLASS(class), "diya-vkb");
|
||||
gtk_widget_class_set_layout_manager_type(GTK_WIDGET_CLASS(class), GTK_TYPE_GRID_LAYOUT);
|
||||
g_signal_new("pressed",
|
||||
g_signal_new(DIYA_SIGNAL_VKB_KEY_PRESSED,
|
||||
DIYA_TYPE_VKB_BUTTON,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
@ -215,7 +215,7 @@ static void diya_virtual_keyboard_widget_class_init(DiyaVirtualKeyboardWidgetCla
|
||||
G_TYPE_NONE,
|
||||
0,
|
||||
NULL);
|
||||
g_signal_new("released",
|
||||
g_signal_new(DIYA_SIGNAL_VKB_KEY_RELEASED,
|
||||
DIYA_TYPE_VKB_BUTTON,
|
||||
G_SIGNAL_DETAILED |
|
||||
G_SIGNAL_ACTION |
|
||||
@ -276,7 +276,7 @@ void diya_virtual_keyboard_widget_set_keyboard(DiyaVirtualKeyboardWidget* self,
|
||||
g_debug("set button key: %s", diya_object_to_string(key));
|
||||
if(diya_vkb_key_is_modifier(key))
|
||||
{
|
||||
button->mod_sig_id = g_signal_connect(self->vkb, "modifier-changed", G_CALLBACK(on_kb_modifier_changed), button);
|
||||
button->mod_sig_id = g_signal_connect(self->vkb, DIYA_SIGNAL_VKB_MODIFIER_CHANGED, G_CALLBACK(on_kb_modifier_changed), button);
|
||||
}
|
||||
}
|
||||
diya_vkb_button_set_key(button, key);
|
||||
|
Loading…
x
Reference in New Issue
Block a user