Как вы используете GdkRectangle, чтобы определить, увеличивается или уменьшается ваш размер?

У меня есть обратный звонок для size-allocate сигнал на моем GtkScrolledWindow. Я хочу прокрутить вправо, когда я добавляю материал в это окно. Это работает нормально, но вносит небольшую ошибку при удалении элементов из этого окна. Я хотел бы только прокрутить окно при добавлении материала. Я вижу, что сигнал получает GdkRectangle, но я не уверен, как его использовать.

1 ответ

Первый сигнал выделения размера запускается первым, это означает, что если я не ошибаюсь, перед обработчиком по умолчанию. Таким образом, вы можете получить GdkRectangle виджета с помощью gtk_widget_get_allocation и сравнить его с новым. Теперь GdkRectangle является cairo_rectangle_int_t, и определение этого:

typedef struct {
    int x, y;
    int width, height;
} cairo_rectangle_int_t;

Таким образом, вы можете проверить ширину и высоту, со старыми.

Другие вопросы по тегам