LINUX.ORG.RU

scrolled-window в CL-GTK2+


0

1
(defun Главное-окно ()
  (within-main-loop
    (let* ((Окно(make-instance 'gtk-window 
			       :type
			       :toplevel
			       :window-position 
			       :center
			       :title "АртСмет представляет!"
			       :default-width 600
			       :default-height 480
			       :app-paintable t))
		(Скролл (make-instance 'scrolled-window :hscrollbar-policy :automatic :vscrollbar-policy :automatic))
	   (Строка-меню (make-instance 'menu-bar))
	   (Меню-закладок (make-instance 'notebook :enable-popup t))
	   (Холст (make-instance 'drawing-area))
	   (В-бокс (make-instance 'v-box))
	  (container-add Окно В-бокс)
	  (container-add Скролл Холст)
      (box-pack-start В-бокс Строка-меню :expand nil)
      (box-pack-start В-бокс меню-закладок :expand nil)
      (box-pack-start В-бокс Скролл)
      (widget-show Окно)

Не получается замутить Скролл для Холста, одним словом есть холст на котором я рисую ща та картинка есть прогружается стандартно Cairo так вот картинка больше чем окно. И хочу что бы скролом можно было просмотреть. Так же хочу реализовать спайку картинок, но из за того что нет скрола я не могу просмотреть результат... я надеюсь понятно обрисовал проблему.

p.s. Код на самом деле длинне но я его урзал, поэтому могут быть несостыковки некоторых частей.

1) У drawing-area надо каким-то образом задавать width request и height request. Например, устанавливая свойства width-request и height-request

2) drawing-area (единственные виджеты, которые не следует помещать в viewport - это tree-view, text-view, layout) следует поместить внутрь viewport, а viewport поместить в scrolled-window.

Все это описано в документации на класс GtkScrolledWindow.

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

> единственные виджеты, которые не следует помещать в viewport - это tree-view, text-view, layout

еще и icon-view.

в gtk есть gtk_scrolled_window_add_with_viewport(), хотя каким образом это реализовано в cl - не скажу, не знаю

ananas ★★★★★ ()
Ответ на: комментарий от bioreactor

Для меня принципиально, мне так удобно и понятно. Сори конечно если мой код вызывает такую реакцию но вообще я думаю что лучше я буду его хорошо понимать чем все остальные.

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

Ну клочки можно пособирать сдесь на форуме)) а централизовано нигде. Вообще-то признаться я опираюсь на твой CL-CAD, в написании этого графического редактора. Но у меня он попроще будет так как функционал када для моих задач никчему. Ну и несколько узко специализированых вещей будет реализованно. Вообще спасибо тебе твой проект очень помог в понимании лиспа и GTK, если хочешь посмотреть исходники то могу выслать на мыло.

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

вообще то я надеюсь увидеть у тебя реализацию некоторых вещей на разбирательство с которыми у меня не хватает времени. хотелось бы наблюдать за разработкой, но раз ты не хостишься нигде то вышли на litetabs@rambler.ru

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