LINUX.ORG.RU

[gtk2] OnLoad у Window


0

0

Здравствуйте.

Подскажите название события у GTK'шного Window, которое происходит сразу после создания и отрисовки окна?

Ответ на: комментарий от anonymous

только это не у window, а у всех widget'ов, т.к. они тоже могут иметь окно.

anonymous
()
Ответ на: комментарий от Barlog_M

>Не происходит.

Чего не происходит? realize у окна не происходит? Не могет быть такого (если оно, конечно, вообще показывается).

Попробуйте еще "map", "show". Возможно, кто-то из них подойдет :)

anonymous
()
Ответ на: комментарий от anonymous

realize не происходит. По крайней мере обработчик не вызывается.

Я то конечно могу и через show сделать, просто думал, что есть аналог.

Barlog_M
() автор топика
Ответ на: комментарий от Barlog_M

Выбирайте, как сигнал вам больше по душе:

#include <gtk/gtk.h>

static void on_realize(GtkWidget * widget, gpointer data) { printf("realized\n"); }

static void on_map(GtkWidget * widget, gpointer data) { printf("mapped\n"); }

static void on_show(GtkWidget * widget, gpointer data) { printf("shown\n"); }

gboolean on_map_event(GtkWidget * widget, GdkEvent * event, gpointer user_data) { printf("map-event\n"); }

int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *label;

gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window), "realize", G_CALLBACK(on_realize), NULL); g_signal_connect(G_OBJECT(window), "map", G_CALLBACK(on_map), NULL); g_signal_connect(G_OBJECT(window), "show", G_CALLBACK(on_show), NULL); g_signal_connect(G_OBJECT(window), "map-event", G_CALLBACK(on_map_event), NULL); gtk_widget_show_all(window); gtk_main(); return 0; }

anonymous
()
Ответ на: комментарий от anonymous

Спасибо макскому за любимое форматирование...

#include <gtk/gtk.h>

static void on_realize(GtkWidget * widget, gpointer data)
{
    printf("realized\n");
}

static void on_map(GtkWidget * widget, gpointer data)
{
    printf("mapped\n");
}

static void on_show(GtkWidget * widget, gpointer data)
{
    printf("shown\n");
}

gboolean on_map_event(GtkWidget * widget, GdkEvent * event,
		      gpointer user_data)
{
    printf("map-event\n");
}

int main(int argc, char *argv[])
{
    GtkWidget *window;
    GtkWidget *label;

    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(G_OBJECT(window), "realize", G_CALLBACK(on_realize),
		     NULL);
    g_signal_connect(G_OBJECT(window), "map", G_CALLBACK(on_map), NULL);
    g_signal_connect(G_OBJECT(window), "map-event",
		     G_CALLBACK(on_map_event), NULL);
    g_signal_connect(G_OBJECT(window), "show", G_CALLBACK(on_show), NULL);
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.