From da7d1eab57f1fbc2440cf5da142b4c32815e7eb3 Mon Sep 17 00:00:00 2001 From: Rustam Gamidov Date: Wed, 8 Apr 2020 17:58:57 +0300 Subject: [PATCH] uiControl: add uiControlSetFocus to gtk part --- ui_unix.h | 7 +++++++ unix/window.c | 1 + 2 files changed, 8 insertions(+) diff --git a/ui_unix.h b/ui_unix.h index ed019260..44ba9ef5 100644 --- a/ui_unix.h +++ b/ui_unix.h @@ -83,6 +83,11 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool { \ gtk_widget_set_sensitive(type(c)->widget, FALSE); \ } +#define uiUnixControlDefaultSetFocus(type) \ + static void type ## SetFocus(uiControl *c) \ + { \ + gtk_widget_grab_focus(type(c)->widget); \ + } // TODO this whole addedBefore stuff is a MASSIVE HACK. #define uiUnixControlDefaultSetContainer(type) \ static void type ## SetContainer(uiUnixControl *c, GtkContainer *container, gboolean remove) \ @@ -110,6 +115,7 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool uiUnixControlDefaultEnabled(type) \ uiUnixControlDefaultEnable(type) \ uiUnixControlDefaultDisable(type) \ + uiUnixControlDefaultSetFocus(type) \ uiUnixControlDefaultSetContainer(type) #define uiUnixControlAllDefaults(type) \ @@ -130,6 +136,7 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool uiControl(var)->Enabled = type ## Enabled; \ uiControl(var)->Enable = type ## Enable; \ uiControl(var)->Disable = type ## Disable; \ + uiControl(var)->SetFocus = type ## SetFocus; \ uiUnixControl(var)->SetContainer = type ## SetContainer; // TODO document _UI_EXTERN uiUnixControl *uiUnixAllocControl(size_t n, uint32_t typesig, const char *typenamestr); diff --git a/unix/window.c b/unix/window.c index c5ba2038..a4b469d4 100644 --- a/unix/window.c +++ b/unix/window.c @@ -112,6 +112,7 @@ uiUnixControlDefaultHide(uiWindow) uiUnixControlDefaultEnabled(uiWindow) uiUnixControlDefaultEnable(uiWindow) uiUnixControlDefaultDisable(uiWindow) +uiUnixControlDefaultSetFocus(uiWindow) // TODO? uiUnixControlDefaultSetContainer(uiWindow)