LINUX.ORG.RU

История изменений

Исправление dave, (текущая версия) :

Зависит от реализации.

Сейчас я обычно делаю так, что просто меняю размер вложенного виджета/контрола/пэйна, который лежит, например, внутри ScrolledComposite, а сама гуишная библиотека (Swing, SWT) уже обеспечивает прокрутку, показывает полосы этой прокрутки и т.п. Это самый простой способ. Я лишь правильно центрую при масштабировании, а также меняю систему координат при рисовании и обработке мышиных событий (перенос и масштабирование). Минусом является то, что у некоторых библиотек есть физическое ограничение на максимальный размер (как я понял, в Swing его нет, но есть в Windows Forms и, возможно, GTK).

А раньше на связке Windows Forms и GDI+ у меня была хитроумная система с дополнительной виртуализациией, благодаря чему диаграммы могли иметь практически неограниченный размер при том, что Control вполне ограничен по размеру, особенно при применении двойной буферизации (нужна память для сохранения текущего изображения Control или его части). Как оказалось, такое нахрен никому не нужно было.

Исходная версия dave, :

Зависит от реализации.

Сейчас я обычно делаю так, что просто меняю размер вложенного виджета/контрола/пэйна, который лежит, например, внутри ScrolledComposite, а сама гуишная библиотека (Swing, SWT) уже обеспечивает прокрутку, показывает полосы этой прокрутки и т.п. Это самый простой способ. Я лишь правильно центрую при масштабировании, а также меняю систему координат при рисовании и обработке мышиных событий (перенос и масштабирование). Минусом является то, что у некоторых библиотек есть физическое ограничение на максимальный размер (как я понял, в Swing его нет, но есть в Windows Forms и GTK).

А раньше на связке Windows Forms и GDI+ у меня была хитроумная система с дополнительной виртуализациией, благодаря чему диаграммы могли иметь практически неограниченный размер при том, что Control вполне ограничен по размеру, особенно при применении двойной буферизации (нужна память для сохранения текущего изображения Control или его части). Как оказалось, такое нахрен никому не нужно было.