rabbit-qt 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/COPYING +1 -0
- data/GPL +339 -0
- data/Gemfile +37 -0
- data/README.md +87 -0
- data/Rakefile +285 -0
- data/bin/rabbirc +86 -0
- data/bin/rabbit +22 -0
- data/bin/rabbit-command +97 -0
- data/bin/rabbit-slide +22 -0
- data/bin/rabbit-theme +22 -0
- data/data/account.kou.gpg +3 -0
- data/data/rabbit/image/clear-blue-images/clear-blue-headline-background.png +0 -0
- data/data/rabbit/image/clear-blue-images/clear-blue-icon.png +0 -0
- data/data/rabbit/image/clear-blue-images/clear-blue-images.rb +0 -0
- data/data/rabbit/image/clear-blue-images/property.rb +4 -0
- data/data/rabbit/image/cozmixng-images/cozmixchu.png +0 -0
- data/data/rabbit/image/cozmixng-images/cozmixng-images.rb +2 -0
- data/data/rabbit/image/cozmixng-images/powered-by-cozmixng.png +0 -0
- data/data/rabbit/image/cozmixng-images/property.rb +4 -0
- data/data/rabbit/image/dark-gradation-images/background-gradation.png +0 -0
- data/data/rabbit/image/dark-gradation-images/dark-gradation-images.rb +2 -0
- data/data/rabbit/image/dark-gradation-images/property.rb +4 -0
- data/data/rabbit/image/debian-images/bottom.png +0 -0
- data/data/rabbit/image/debian-images/debian-images.rb +2 -0
- data/data/rabbit/image/debian-images/debian-logo-pink.png +0 -0
- data/data/rabbit/image/debian-images/debian-logo.png +0 -0
- data/data/rabbit/image/debian-images/debian-whirl.png +0 -0
- data/data/rabbit/image/debian-images/item1.png +0 -0
- data/data/rabbit/image/debian-images/property.rb +4 -0
- data/data/rabbit/image/debian-images/top.png +0 -0
- data/data/rabbit/image/nari-images/chibi_nari.png +0 -0
- data/data/rabbit/image/nari-images/gc_kun.png +0 -0
- data/data/rabbit/image/nari-images/nari-goal-flag.png +0 -0
- data/data/rabbit/image/nari-images/nari-images.rb +2 -0
- data/data/rabbit/image/nari-images/nari-start-flag.png +0 -0
- data/data/rabbit/image/nari-images/property.rb +4 -0
- data/data/rabbit/image/rabbit-images/blue-item.png +0 -0
- data/data/rabbit/image/rabbit-images/close-quote-blue.png +0 -0
- data/data/rabbit/image/rabbit-images/close-quote-brown.png +0 -0
- data/data/rabbit/image/rabbit-images/close-quote-light-blue.png +0 -0
- data/data/rabbit/image/rabbit-images/goal-flag.png +0 -0
- data/data/rabbit/image/rabbit-images/green-item.png +0 -0
- data/data/rabbit/image/rabbit-images/kame.png +0 -0
- data/data/rabbit/image/rabbit-images/lavie-icon.png +0 -0
- data/data/rabbit/image/rabbit-images/lavie-with-logo.png +0 -0
- data/data/rabbit/image/rabbit-images/lavie.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-alice.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-butler-rabbit.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-horizontal-bar.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-kame-taro.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-tanu-kitaro.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-usa-taro.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-usagi.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-vertical-bar.png +0 -0
- data/data/rabbit/image/rabbit-images/mini-yukidaru-taro.png +0 -0
- data/data/rabbit/image/rabbit-images/open-quote-blue.png +0 -0
- data/data/rabbit/image/rabbit-images/open-quote-brown.png +0 -0
- data/data/rabbit/image/rabbit-images/open-quote-light-blue.png +0 -0
- data/data/rabbit/image/rabbit-images/property.rb +4 -0
- data/data/rabbit/image/rabbit-images/rabbit-banner-blue.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-banner-green.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-banner-heads.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-banner-pink.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-banner.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-banner2.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-images.rb +2 -0
- data/data/rabbit/image/rabbit-images/rabbit-pink-logo.png +0 -0
- data/data/rabbit/image/rabbit-images/rabbit-pink-logo2.png +0 -0
- data/data/rabbit/image/rabbit-images/red-item.png +0 -0
- data/data/rabbit/image/rabbit-images/red-item2.png +0 -0
- data/data/rabbit/image/rabbit-images/start-flag.png +0 -0
- data/data/rabbit/image/rabbit-images/tanu-kitaro.png +0 -0
- data/data/rabbit/image/rabbit-images/usa-taro.png +0 -0
- data/data/rabbit/image/rabbit-images/usagi.png +0 -0
- data/data/rabbit/image/rabbit-images/yukiusa.png +0 -0
- data/data/rabbit/image/ranguba-images/ranguba-bar.png +0 -0
- data/data/rabbit/image/ranguba-images/ranguba-bar.svg +153 -0
- data/data/rabbit/image/ranguba-images/ranguba-images.rb +0 -0
- data/data/rabbit/image/ranguba-images/ranguba-item-mark-mini.png +0 -0
- data/data/rabbit/image/ranguba-images/ranguba-item-mark.png +0 -0
- data/data/rabbit/image/ranguba-images/ranguba-item-mark.svg +400 -0
- data/data/rabbit/image/ranguba-images/ranguba-mark.png +0 -0
- data/data/rabbit/image/ranguba-images/ranguba-mark.svg +587 -0
- data/data/rabbit/image/ruby-images/property.rb +4 -0
- data/data/rabbit/image/ruby-images/ruby-images.rb +2 -0
- data/data/rabbit/image/ruby-images/ruby-pink-circle-icon.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-circle-logo.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-circle-small-icon.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-circle.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-polygon-icon.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-polygon-logo.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-polygon-small-icon.png +0 -0
- data/data/rabbit/image/ruby-images/ruby-pink-polygon.png +0 -0
- data/data/rabbit/image/rubykaigi2011-images/property.rb +4 -0
- data/data/rabbit/image/rubykaigi2011-images/rubykaigi2011-background-black.jpg +0 -0
- data/data/rabbit/image/rubykaigi2011-images/rubykaigi2011-background-white.jpg +0 -0
- data/data/rabbit/image/rubykaigi2011-images/rubykaigi2011-images.rb +2 -0
- data/doc/_config.yml +29 -0
- data/doc/_includes/en.menu.html +8 -0
- data/doc/_includes/ja.menu.html +8 -0
- data/doc/_layouts/en.html +48 -0
- data/doc/_layouts/ja.html +48 -0
- data/doc/_layouts/skeleton.html +85 -0
- data/doc/_plugins/converters/hiki.rb +27 -0
- data/doc/_plugins/converters/markdown.rb +15 -0
- data/doc/_plugins/converters/rd.rb +73 -0
- data/doc/_plugins/support_symlink.rb +11 -0
- data/doc/css/rabbit.css +368 -0
- data/doc/css/syntax.scss +67 -0
- data/doc/en/development.rd +81 -0
- data/doc/en/faq.rd +152 -0
- data/doc/en/hiki.hiki +326 -0
- data/doc/en/how-to-make/hiki.hiki +9 -0
- data/doc/en/how-to-make/index.rd +26 -0
- data/doc/en/how-to-make/markdown.md +107 -0
- data/doc/en/how-to-make/pdf.rd +7 -0
- data/doc/en/how-to-make/rd.rd +92 -0
- data/doc/en/how-to-make/theme.rd +135 -0
- data/doc/en/index.rd +268 -0
- data/doc/en/install/homebrew.rd +22 -0
- data/doc/en/install/index.rd +50 -0
- data/doc/en/install/macports.rd +77 -0
- data/doc/en/install/windows.rd +45 -0
- data/doc/en/news.rd +2788 -0
- data/doc/en/rd.rd +482 -0
- data/doc/en/sample/hiki/rabbit.hiki +388 -0
- data/doc/en/sample/index.rd +15 -0
- data/doc/en/sample/markdown/rabbit.md +387 -0
- data/doc/en/sample/rd/rabbit.rd +463 -0
- data/doc/en/slides.rd +13 -0
- data/doc/en/usage/platform/os-x.rd +13 -0
- data/doc/en/usage/rabbit-slide.rd +239 -0
- data/doc/en/usage/rabbit-theme.rd +5 -0
- data/doc/en/usage/rabbit.rd +376 -0
- data/doc/en/usage.rd +24 -0
- data/doc/en/users.rd +35 -0
- data/doc/favicon.ico +0 -0
- data/doc/favicon.png +0 -0
- data/doc/images/background-sample.svg +290 -0
- data/doc/images/background.png +0 -0
- data/doc/images/background.svg +131 -0
- data/doc/images/hare-and-tortoise.png +0 -0
- data/doc/images/hare-and-tortoise.svg +541 -0
- data/doc/images/lavie-icon.png +0 -0
- data/doc/images/lavie.png +0 -0
- data/doc/images/rabbit-slide-show-logo.png +0 -0
- data/doc/images/rabbit-slide-show-logo.svg +597 -0
- data/doc/index.html.en +58 -0
- data/doc/index.html.ja +58 -0
- data/doc/ja/about.rd +21 -0
- data/doc/ja/development.rd +78 -0
- data/doc/ja/faq.rd +202 -0
- data/doc/ja/hiki.hiki +320 -0
- data/doc/ja/how-to-make/hiki.hiki +9 -0
- data/doc/ja/how-to-make/index.rd +26 -0
- data/doc/ja/how-to-make/markdown.md +107 -0
- data/doc/ja/how-to-make/pdf.rd +8 -0
- data/doc/ja/how-to-make/rd.rd +130 -0
- data/doc/ja/how-to-make/theme.rd +142 -0
- data/doc/ja/index.rd +283 -0
- data/doc/ja/install/homebrew.rd +23 -0
- data/doc/ja/install/index.rd +53 -0
- data/doc/ja/install/macports.rd +100 -0
- data/doc/ja/install/windows.rd +46 -0
- data/doc/ja/news.rd +2773 -0
- data/doc/ja/rd.rd +490 -0
- data/doc/ja/sample/hiki/rabbit.hiki +404 -0
- data/doc/ja/sample/index.rd +15 -0
- data/doc/ja/sample/markdown/rabbit.md +382 -0
- data/doc/ja/sample/rd/rabbit.rd +471 -0
- data/doc/ja/slides.rd +29 -0
- data/doc/ja/usage/rabbit-slide.rd +220 -0
- data/doc/ja/usage/rabbit-theme.rd +152 -0
- data/doc/ja/usage/rabbit.rd +377 -0
- data/doc/ja/usage.rd +19 -0
- data/doc/ja/users.rd +196 -0
- data/doc/screenshot.en.rab +10 -0
- data/doc/screenshot.ja.rab +10 -0
- data/entities/README +10 -0
- data/entities/ent2rb.rb +65 -0
- data/entities/isoamsa.ent +167 -0
- data/entities/isoamsb.ent +143 -0
- data/entities/isoamsc.ent +43 -0
- data/entities/isoamsn.ent +114 -0
- data/entities/isoamso.ent +73 -0
- data/entities/isoamsr.ent +204 -0
- data/entities/isobox.ent +61 -0
- data/entities/isocyr1.ent +88 -0
- data/entities/isocyr2.ent +47 -0
- data/entities/isodia.ent +35 -0
- data/entities/isogrk3.ent +64 -0
- data/entities/isolat1.ent +83 -0
- data/entities/isolat2.ent +142 -0
- data/entities/isomfrk.ent +75 -0
- data/entities/isomopf.ent +49 -0
- data/entities/isomscr.ent +75 -0
- data/entities/isonum.ent +97 -0
- data/entities/isopub.ent +105 -0
- data/entities/isotech.ent +182 -0
- data/entities/mmlalias.ent +564 -0
- data/entities/mmlextra.ent +122 -0
- data/lib/rabbit/actions.rb +427 -0
- data/lib/rabbit/author-configuration.rb +90 -0
- data/lib/rabbit/canvas.rb +844 -0
- data/lib/rabbit/command/rabbit-slide.rb +898 -0
- data/lib/rabbit/command/rabbit-theme.rb +300 -0
- data/lib/rabbit/command/rabbit.rb +854 -0
- data/lib/rabbit/config.rb +40 -0
- data/lib/rabbit/console/roff.rb +84 -0
- data/lib/rabbit/console.rb +218 -0
- data/lib/rabbit/cursor-manager.rb +66 -0
- data/lib/rabbit/dependency-canvas.rb +33 -0
- data/lib/rabbit/element/base/draw-hook.rb +75 -0
- data/lib/rabbit/element/base.rb +614 -0
- data/lib/rabbit/element/block-element.rb +56 -0
- data/lib/rabbit/element/block.rb +70 -0
- data/lib/rabbit/element/container-element.rb +321 -0
- data/lib/rabbit/element/description-list.rb +75 -0
- data/lib/rabbit/element/enum-list.rb +53 -0
- data/lib/rabbit/element/footnote.rb +48 -0
- data/lib/rabbit/element/image-title-slide.rb +34 -0
- data/lib/rabbit/element/image.rb +292 -0
- data/lib/rabbit/element/index-slide.rb +206 -0
- data/lib/rabbit/element/item-list.rb +50 -0
- data/lib/rabbit/element/method-list.rb +66 -0
- data/lib/rabbit/element/poppler-page.rb +52 -0
- data/lib/rabbit/element/poppler-slide.rb +47 -0
- data/lib/rabbit/element/poppler-title-slide.rb +45 -0
- data/lib/rabbit/element/preformatted.rb +48 -0
- data/lib/rabbit/element/slide-element.rb +140 -0
- data/lib/rabbit/element/slide.rb +67 -0
- data/lib/rabbit/element/syntax-highlighting.rb +31 -0
- data/lib/rabbit/element/table.rb +121 -0
- data/lib/rabbit/element/tag.rb +60 -0
- data/lib/rabbit/element/text-block-element.rb +27 -0
- data/lib/rabbit/element/text-container-element.rb +176 -0
- data/lib/rabbit/element/text-element.rb +83 -0
- data/lib/rabbit/element/text-renderer.rb +378 -0
- data/lib/rabbit/element/text.rb +146 -0
- data/lib/rabbit/element/title-slide.rb +190 -0
- data/lib/rabbit/element/video.rb +265 -0
- data/lib/rabbit/element.rb +35 -0
- data/lib/rabbit/error.rb +239 -0
- data/lib/rabbit/filename.rb +39 -0
- data/lib/rabbit/formatter.rb +211 -0
- data/lib/rabbit/frame.rb +292 -0
- data/lib/rabbit/front.rb +278 -0
- data/lib/rabbit/gem-builder.rb +42 -0
- data/lib/rabbit/gem-finder.rb +57 -0
- data/lib/rabbit/gem-pusher.rb +89 -0
- data/lib/rabbit/gesture/handler.rb +253 -0
- data/lib/rabbit/gesture/processor.rb +118 -0
- data/lib/rabbit/gettext.rb +14 -0
- data/lib/rabbit/graffiti/config-dialog.rb +47 -0
- data/lib/rabbit/graffiti/processor.rb +132 -0
- data/lib/rabbit/gtk.rb +93 -0
- data/lib/rabbit/html/generator.rb +477 -0
- data/lib/rabbit/html/template.erb +109 -0
- data/lib/rabbit/icon.rb +31 -0
- data/lib/rabbit/image/base.rb +270 -0
- data/lib/rabbit/image/default.rb +42 -0
- data/lib/rabbit/image/dia.rb +74 -0
- data/lib/rabbit/image/eps.rb +129 -0
- data/lib/rabbit/image/gimp.rb +69 -0
- data/lib/rabbit/image/mermaid.rb +74 -0
- data/lib/rabbit/image/pdf.rb +94 -0
- data/lib/rabbit/image/svg.rb +79 -0
- data/lib/rabbit/image-data-loader.rb +51 -0
- data/lib/rabbit/image.rb +53 -0
- data/lib/rabbit/info-window.rb +327 -0
- data/lib/rabbit/key-handler.rb +227 -0
- data/lib/rabbit/keys.rb +209 -0
- data/lib/rabbit/logger/base.rb +147 -0
- data/lib/rabbit/logger/gui.rb +113 -0
- data/lib/rabbit/logger/stderr.rb +42 -0
- data/lib/rabbit/logger.rb +40 -0
- data/lib/rabbit/menu.rb +242 -0
- data/lib/rabbit/pango-markup.rb +44 -0
- data/lib/rabbit/parser/base.rb +31 -0
- data/lib/rabbit/parser/ext/aafigure.rb +51 -0
- data/lib/rabbit/parser/ext/blockdiag.rb +68 -0
- data/lib/rabbit/parser/ext/charty.rb +67 -0
- data/lib/rabbit/parser/ext/coderay.rb +85 -0
- data/lib/rabbit/parser/ext/enscript.rb +136 -0
- data/lib/rabbit/parser/ext/entity.rb +4164 -0
- data/lib/rabbit/parser/ext/escape.rb +18 -0
- data/lib/rabbit/parser/ext/image.rb +157 -0
- data/lib/rabbit/parser/ext/inline.rb +45 -0
- data/lib/rabbit/parser/ext/rouge.rb +129 -0
- data/lib/rabbit/parser/ext/tex.rb +95 -0
- data/lib/rabbit/parser/ext/video.rb +37 -0
- data/lib/rabbit/parser/image.rb +62 -0
- data/lib/rabbit/parser/markdown/converter.rb +440 -0
- data/lib/rabbit/parser/markdown.rb +144 -0
- data/lib/rabbit/parser/pause-support.rb +33 -0
- data/lib/rabbit/parser/pdf.rb +56 -0
- data/lib/rabbit/parser/rd/ext/base.rb +95 -0
- data/lib/rabbit/parser/rd/ext/block-verbatim.rb +190 -0
- data/lib/rabbit/parser/rd/ext/character-reference.rb +75 -0
- data/lib/rabbit/parser/rd/ext/image.rb +46 -0
- data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +118 -0
- data/lib/rabbit/parser/rd/ext/refer.rb +50 -0
- data/lib/rabbit/parser/rd/ext/video.rb +32 -0
- data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +458 -0
- data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +105 -0
- data/lib/rabbit/parser/rd/visitor.rb +72 -0
- data/lib/rabbit/parser/rd.rb +92 -0
- data/lib/rabbit/parser/wiki/output.rb +545 -0
- data/lib/rabbit/parser/wiki.rb +61 -0
- data/lib/rabbit/parser.rb +73 -0
- data/lib/rabbit/password-reader.rb +34 -0
- data/lib/rabbit/path-manipulatable.rb +37 -0
- data/lib/rabbit/progress.rb +97 -0
- data/lib/rabbit/properties.rb +154 -0
- data/lib/rabbit/qt.rb +222 -0
- data/lib/rabbit/rabbit.rb +50 -0
- data/lib/rabbit/readme-parser.rb +112 -0
- data/lib/rabbit/relative-size.rb +28 -0
- data/lib/rabbit/renderer/base.rb +412 -0
- data/lib/rabbit/renderer/color.rb +130 -0
- data/lib/rabbit/renderer/display/base.rb +223 -0
- data/lib/rabbit/renderer/display/button-handler.rb +229 -0
- data/lib/rabbit/renderer/display/cursor.rb +49 -0
- data/lib/rabbit/renderer/display/drawing-area-base.rb +381 -0
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +219 -0
- data/lib/rabbit/renderer/display/drawing-area-view-only.rb +57 -0
- data/lib/rabbit/renderer/display/drawing-area.rb +29 -0
- data/lib/rabbit/renderer/display/gesture.rb +111 -0
- data/lib/rabbit/renderer/display/graffiti.rb +127 -0
- data/lib/rabbit/renderer/display/hook-handler.rb +64 -0
- data/lib/rabbit/renderer/display/info.rb +75 -0
- data/lib/rabbit/renderer/display/magnifier.rb +137 -0
- data/lib/rabbit/renderer/display/mask.rb +83 -0
- data/lib/rabbit/renderer/display/menu.rb +54 -0
- data/lib/rabbit/renderer/display/motion-handler.rb +34 -0
- data/lib/rabbit/renderer/display/progress.rb +85 -0
- data/lib/rabbit/renderer/display/qt-drawing-area-base.rb +336 -0
- data/lib/rabbit/renderer/display/qt-drawing-area-primitive.rb +189 -0
- data/lib/rabbit/renderer/display/qt-drawing-area-view-only.rb +53 -0
- data/lib/rabbit/renderer/display/qt-drawing-area.rb +29 -0
- data/lib/rabbit/renderer/display/qt-drawing-widget.rb +85 -0
- data/lib/rabbit/renderer/display/scroll-handler.rb +58 -0
- data/lib/rabbit/renderer/display/search.rb +114 -0
- data/lib/rabbit/renderer/display/spotlight.rb +122 -0
- data/lib/rabbit/renderer/display.rb +17 -0
- data/lib/rabbit/renderer/engine/cairo.rb +481 -0
- data/lib/rabbit/renderer/engine/qt_painter.rb +397 -0
- data/lib/rabbit/renderer/engine.rb +18 -0
- data/lib/rabbit/renderer/kernel.rb +233 -0
- data/lib/rabbit/renderer/offscreen.rb +117 -0
- data/lib/rabbit/renderer/print-layout.rb +150 -0
- data/lib/rabbit/renderer/printer.rb +223 -0
- data/lib/rabbit/renderer/scene-background-widget.rb +95 -0
- data/lib/rabbit/renderer/scene-node-widget.rb +40 -0
- data/lib/rabbit/renderer/scene.rb +538 -0
- data/lib/rabbit/renderer.rb +20 -0
- data/lib/rabbit/search-window.rb +90 -0
- data/lib/rabbit/searcher.rb +40 -0
- data/lib/rabbit/size.rb +100 -0
- data/lib/rabbit/slide-configuration.rb +211 -0
- data/lib/rabbit/slide.rb +40 -0
- data/lib/rabbit/soap/base.rb +17 -0
- data/lib/rabbit/soap/driver.rb +61 -0
- data/lib/rabbit/soap/server.rb +49 -0
- data/lib/rabbit/source/argf.rb +45 -0
- data/lib/rabbit/source/base.rb +197 -0
- data/lib/rabbit/source/file.rb +85 -0
- data/lib/rabbit/source/memory.rb +61 -0
- data/lib/rabbit/source/uri.rb +93 -0
- data/lib/rabbit/source-generator/hiki.rb +58 -0
- data/lib/rabbit/source-generator/markdown.rb +56 -0
- data/lib/rabbit/source-generator/rd.rb +60 -0
- data/lib/rabbit/source-generator.rb +39 -0
- data/lib/rabbit/source.rb +30 -0
- data/lib/rabbit/task/slide.rb +221 -0
- data/lib/rabbit/task/theme.rb +202 -0
- data/lib/rabbit/task.rb +18 -0
- data/lib/rabbit/theme/applier.rb +690 -0
- data/lib/rabbit/theme/auto-slide/auto-slide.rb +6 -0
- data/lib/rabbit/theme/auto-slide/property.rb +4 -0
- data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +125 -0
- data/lib/rabbit/theme/base/base.rb +85 -0
- data/lib/rabbit/theme/base/property.rb +4 -0
- data/lib/rabbit/theme/blue-bar/blue-bar.rb +80 -0
- data/lib/rabbit/theme/blue-bar/property.rb +3 -0
- data/lib/rabbit/theme/blue-circle/blue-circle.rb +14 -0
- data/lib/rabbit/theme/blue-circle/property.rb +3 -0
- data/lib/rabbit/theme/body-background-image/body-background-image.rb +8 -0
- data/lib/rabbit/theme/centering-rabbit/centering-rabbit.rb +5 -0
- data/lib/rabbit/theme/centering-rabbit/property.rb +3 -0
- data/lib/rabbit/theme/clear-blue/clear-blue.rb +101 -0
- data/lib/rabbit/theme/clear-blue/property.rb +3 -0
- data/lib/rabbit/theme/clock/clock.rb +37 -0
- data/lib/rabbit/theme/clock/property.rb +21 -0
- data/lib/rabbit/theme/color-circle/color-circle.rb +60 -0
- data/lib/rabbit/theme/color-circle/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-block-quote/color-circle-block-quote.rb +28 -0
- data/lib/rabbit/theme/color-circle-block-quote/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-common/color-circle-common.rb +48 -0
- data/lib/rabbit/theme/color-circle-common/property.rb +3 -0
- data/lib/rabbit/theme/color-circle-description/color-circle-description.rb +9 -0
- data/lib/rabbit/theme/color-circle-description/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-foot-text/color-circle-foot-text.rb +14 -0
- data/lib/rabbit/theme/color-circle-foot-text/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-item-mark/color-circle-item-mark.rb +77 -0
- data/lib/rabbit/theme/color-circle-item-mark/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-method-list/color-circle-method-list.rb +8 -0
- data/lib/rabbit/theme/color-circle-method-list/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-preformatted/color-circle-preformatted.rb +5 -0
- data/lib/rabbit/theme/color-circle-preformatted/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-slide/color-circle-slide.rb +13 -0
- data/lib/rabbit/theme/color-circle-slide/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-text/color-circle-text.rb +9 -0
- data/lib/rabbit/theme/color-circle-text/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-title-slide/color-circle-title-slide.rb +27 -0
- data/lib/rabbit/theme/color-circle-title-slide/property.rb +4 -0
- data/lib/rabbit/theme/color-circle-title-text/color-circle-title-text.rb +7 -0
- data/lib/rabbit/theme/color-circle-title-text/property.rb +4 -0
- data/lib/rabbit/theme/cozmixng/cozmixng.rb +44 -0
- data/lib/rabbit/theme/cozmixng/property.rb +3 -0
- data/lib/rabbit/theme/cozmixng-powered-by/cozmixng-powered-by.rb +6 -0
- data/lib/rabbit/theme/cozmixng-powered-by/property.rb +7 -0
- data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +187 -0
- data/lib/rabbit/theme/dark-gradation/property.rb +3 -0
- data/lib/rabbit/theme/day-white/day-white.rb +8 -0
- data/lib/rabbit/theme/day-white/property.rb +3 -0
- data/lib/rabbit/theme/debian/debian.rb +232 -0
- data/lib/rabbit/theme/debian/property.rb +3 -0
- data/lib/rabbit/theme/default/default.rb +42 -0
- data/lib/rabbit/theme/default/property.rb +3 -0
- data/lib/rabbit/theme/default-block-quote/default-block-quote.rb +219 -0
- data/lib/rabbit/theme/default-block-quote/property.rb +3 -0
- data/lib/rabbit/theme/default-comment/default-comment.rb +5 -0
- data/lib/rabbit/theme/default-comment/property.rb +4 -0
- data/lib/rabbit/theme/default-description/default-description.rb +64 -0
- data/lib/rabbit/theme/default-description/property.rb +5 -0
- data/lib/rabbit/theme/default-foot-text/default-foot-text.rb +52 -0
- data/lib/rabbit/theme/default-foot-text/property.rb +3 -0
- data/lib/rabbit/theme/default-icon/default-icon.rb +4 -0
- data/lib/rabbit/theme/default-icon/property.rb +5 -0
- data/lib/rabbit/theme/default-item-mark/default-item-mark.rb +104 -0
- data/lib/rabbit/theme/default-item-mark/property.rb +4 -0
- data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +132 -0
- data/lib/rabbit/theme/default-item-mark-setup/property.rb +3 -0
- data/lib/rabbit/theme/default-method-list/default-method-list.rb +6 -0
- data/lib/rabbit/theme/default-method-list/property.rb +3 -0
- data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +56 -0
- data/lib/rabbit/theme/default-preformatted/property.rb +3 -0
- data/lib/rabbit/theme/default-slide/default-slide.rb +62 -0
- data/lib/rabbit/theme/default-slide/property.rb +3 -0
- data/lib/rabbit/theme/default-text/default-text.rb +186 -0
- data/lib/rabbit/theme/default-text/property.rb +3 -0
- data/lib/rabbit/theme/default-title-slide/default-title-slide.rb +13 -0
- data/lib/rabbit/theme/default-title-slide/property.rb +6 -0
- data/lib/rabbit/theme/default-title-text/default-title-text.rb +53 -0
- data/lib/rabbit/theme/default-title-text/property.rb +3 -0
- data/lib/rabbit/theme/document.erb +35 -0
- data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +87 -0
- data/lib/rabbit/theme/edge-info-toolkit/property.rb +3 -0
- data/lib/rabbit/theme/emphasize-keyword/emphasize-keyword.rb +16 -0
- data/lib/rabbit/theme/emphasize-keyword/property.rb +4 -0
- data/lib/rabbit/theme/enishi-green/enishi-green.rb +61 -0
- data/lib/rabbit/theme/enishi-green/property.rb +3 -0
- data/lib/rabbit/theme/entry.rb +202 -0
- data/lib/rabbit/theme/footer-comment/footer-comment.rb +74 -0
- data/lib/rabbit/theme/footer-comment/property.rb +3 -0
- data/lib/rabbit/theme/footer-logo/footer-logo.rb +30 -0
- data/lib/rabbit/theme/footer-logo/property.rb +26 -0
- data/lib/rabbit/theme/green-circle/green-circle.rb +14 -0
- data/lib/rabbit/theme/green-circle/property.rb +3 -0
- data/lib/rabbit/theme/headline-logo/headline-logo.rb +24 -0
- data/lib/rabbit/theme/headline-logo/property.rb +10 -0
- data/lib/rabbit/theme/icon/icon.rb +3 -0
- data/lib/rabbit/theme/icon/property.rb +24 -0
- data/lib/rabbit/theme/image/image.rb +80 -0
- data/lib/rabbit/theme/image/property.rb +3 -0
- data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +134 -0
- data/lib/rabbit/theme/image-slide-number/property.rb +64 -0
- data/lib/rabbit/theme/image-timer/image-timer.rb +119 -0
- data/lib/rabbit/theme/image-timer/property.rb +46 -0
- data/lib/rabbit/theme/image-viewer/image-viewer.rb +21 -0
- data/lib/rabbit/theme/image-viewer/property.rb +3 -0
- data/lib/rabbit/theme/lightning-clear-blue/lightning-clear-blue.rb +13 -0
- data/lib/rabbit/theme/lightning-clear-blue/property.rb +3 -0
- data/lib/rabbit/theme/lightning-monochrome/lightning-monochrome.rb +15 -0
- data/lib/rabbit/theme/lightning-monochrome/property.rb +3 -0
- data/lib/rabbit/theme/lightning-rabbit/lightning-rabbit.rb +13 -0
- data/lib/rabbit/theme/lightning-rabbit/property.rb +3 -0
- data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +60 -0
- data/lib/rabbit/theme/lightning-simple/property.rb +3 -0
- data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +67 -0
- data/lib/rabbit/theme/lightning-talk/property.rb +3 -0
- data/lib/rabbit/theme/lightning-talk-toolkit/lightning-talk-toolkit.rb +179 -0
- data/lib/rabbit/theme/lightning-talk-toolkit/property.rb +3 -0
- data/lib/rabbit/theme/manager.rb +45 -0
- data/lib/rabbit/theme/mirror-effect/mirror-effect.rb +27 -0
- data/lib/rabbit/theme/mirror-effect/property.rb +3 -0
- data/lib/rabbit/theme/nari/nari.rb +215 -0
- data/lib/rabbit/theme/nari/property.rb +3 -0
- data/lib/rabbit/theme/newline-in-slides/newline-in-slides.rb +29 -0
- data/lib/rabbit/theme/newline-in-slides/property.rb +4 -0
- data/lib/rabbit/theme/newline-in-title/newline-in-title.rb +7 -0
- data/lib/rabbit/theme/newline-in-title/property.rb +4 -0
- data/lib/rabbit/theme/night-black/night-black.rb +19 -0
- data/lib/rabbit/theme/night-black/property.rb +3 -0
- data/lib/rabbit/theme/pdf/pdf.rb +24 -0
- data/lib/rabbit/theme/pdf/property.rb +3 -0
- data/lib/rabbit/theme/per-slide-background-color/per-slide-background-color.rb +18 -0
- data/lib/rabbit/theme/per-slide-background-color/property.rb +16 -0
- data/lib/rabbit/theme/per-slide-background-image/per-slide-background-image.rb +11 -0
- data/lib/rabbit/theme/per-slide-background-image/property.rb +16 -0
- data/lib/rabbit/theme/powered-by/powered-by.rb +67 -0
- data/lib/rabbit/theme/powered-by/property.rb +24 -0
- data/lib/rabbit/theme/rabbit/property.rb +3 -0
- data/lib/rabbit/theme/rabbit/rabbit.rb +57 -0
- data/lib/rabbit/theme/rabbit-block-quote/property.rb +4 -0
- data/lib/rabbit/theme/rabbit-block-quote/rabbit-block-quote.rb +18 -0
- data/lib/rabbit/theme/rabbit-headline-logo/property.rb +5 -0
- data/lib/rabbit/theme/rabbit-headline-logo/rabbit-headline-logo.rb +4 -0
- data/lib/rabbit/theme/rabbit-icon/property.rb +5 -0
- data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +4 -0
- data/lib/rabbit/theme/rabbit-item-mark/property.rb +5 -0
- data/lib/rabbit/theme/rabbit-item-mark/rabbit-item-mark.rb +53 -0
- data/lib/rabbit/theme/rabbit-powered-by/property.rb +7 -0
- data/lib/rabbit/theme/rabbit-powered-by/rabbit-powered-by.rb +5 -0
- data/lib/rabbit/theme/rabbit-title-logo/property.rb +5 -0
- data/lib/rabbit/theme/rabbit-title-logo/rabbit-title-logo.rb +4 -0
- data/lib/rabbit/theme/ranguba/property.rb +3 -0
- data/lib/rabbit/theme/ranguba/ranguba.rb +218 -0
- data/lib/rabbit/theme/red-frame/property.rb +3 -0
- data/lib/rabbit/theme/red-frame/red-frame.rb +100 -0
- data/lib/rabbit/theme/rotate-zoom-effect/property.rb +4 -0
- data/lib/rabbit/theme/rotate-zoom-effect/rotate-zoom-effect.rb +51 -0
- data/lib/rabbit/theme/ruby-gnome2/property.rb +3 -0
- data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +65 -0
- data/lib/rabbit/theme/ruby-gnome2-description/property.rb +7 -0
- data/lib/rabbit/theme/ruby-gnome2-description/ruby-gnome2-description.rb +7 -0
- data/lib/rabbit/theme/ruby-gnome2-foot-text/property.rb +5 -0
- data/lib/rabbit/theme/ruby-gnome2-foot-text/ruby-gnome2-foot-text.rb +3 -0
- data/lib/rabbit/theme/ruby-gnome2-headline/property.rb +7 -0
- data/lib/rabbit/theme/ruby-gnome2-headline/ruby-gnome2-headline.rb +47 -0
- data/lib/rabbit/theme/ruby-gnome2-icon/property.rb +5 -0
- data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +4 -0
- data/lib/rabbit/theme/ruby-gnome2-item-mark/property.rb +10 -0
- data/lib/rabbit/theme/ruby-gnome2-item-mark/ruby-gnome2-item-mark.rb +65 -0
- data/lib/rabbit/theme/ruby-gnome2-preformatted/property.rb +4 -0
- data/lib/rabbit/theme/ruby-gnome2-preformatted/ruby-gnome2-preformatted.rb +8 -0
- data/lib/rabbit/theme/ruby-gnome2-slide/property.rb +4 -0
- data/lib/rabbit/theme/ruby-gnome2-slide/ruby-gnome2-slide.rb +40 -0
- data/lib/rabbit/theme/rubykaigi2011/property.rb +3 -0
- data/lib/rabbit/theme/rubykaigi2011/rubykaigi2011.rb +48 -0
- data/lib/rabbit/theme/scroll-effect/property.rb +3 -0
- data/lib/rabbit/theme/scroll-effect/scroll-effect.rb +32 -0
- data/lib/rabbit/theme/searcher.rb +179 -0
- data/lib/rabbit/theme/show-frame/property.rb +16 -0
- data/lib/rabbit/theme/show-frame/show-frame.rb +17 -0
- data/lib/rabbit/theme/simple-item-mark/property.rb +5 -0
- data/lib/rabbit/theme/simple-item-mark/simple-item-mark.rb +112 -0
- data/lib/rabbit/theme/slide-background/property.rb +6 -0
- data/lib/rabbit/theme/slide-background/slide-background.rb +3 -0
- data/lib/rabbit/theme/slide-background-image/property.rb +10 -0
- data/lib/rabbit/theme/slide-background-image/slide-background-image.rb +25 -0
- data/lib/rabbit/theme/slide-footer-info/property.rb +43 -0
- data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +51 -0
- data/lib/rabbit/theme/slide-header-info/property.rb +43 -0
- data/lib/rabbit/theme/slide-header-info/slide-header-info.rb +42 -0
- data/lib/rabbit/theme/slide-logo/property.rb +26 -0
- data/lib/rabbit/theme/slide-logo/slide-logo.rb +58 -0
- data/lib/rabbit/theme/slide-number/property.rb +21 -0
- data/lib/rabbit/theme/slide-number/slide-number.rb +34 -0
- data/lib/rabbit/theme/slide-show/property.rb +4 -0
- data/lib/rabbit/theme/slide-show/slide-show.rb +31 -0
- data/lib/rabbit/theme/stream-comment/property.rb +3 -0
- data/lib/rabbit/theme/stream-comment/stream-comment.rb +66 -0
- data/lib/rabbit/theme/syntax-highlighting/property.rb +4 -0
- data/lib/rabbit/theme/syntax-highlighting/syntax-highlighting.rb +177 -0
- data/lib/rabbit/theme/table/property.rb +3 -0
- data/lib/rabbit/theme/table/table.rb +173 -0
- data/lib/rabbit/theme/tag/property.rb +4 -0
- data/lib/rabbit/theme/tag/tag.rb +85 -0
- data/lib/rabbit/theme/timer/property.rb +3 -0
- data/lib/rabbit/theme/timer/timer.rb +63 -0
- data/lib/rabbit/theme/title-background-color/property.rb +10 -0
- data/lib/rabbit/theme/title-background-color/title-background-color.rb +17 -0
- data/lib/rabbit/theme/title-background-image/property.rb +11 -0
- data/lib/rabbit/theme/title-background-image/title-background-image.rb +28 -0
- data/lib/rabbit/theme/title-logo/property.rb +23 -0
- data/lib/rabbit/theme/title-logo/title-logo.rb +38 -0
- data/lib/rabbit/theme/title-on-image-toolkit/property.rb +3 -0
- data/lib/rabbit/theme/title-on-image-toolkit/title-on-image-toolkit.rb +140 -0
- data/lib/rabbit/theme/title-shadow/property.rb +11 -0
- data/lib/rabbit/theme/title-shadow/title-shadow.rb +7 -0
- data/lib/rabbit/theme/title-slide-background-image/property.rb +10 -0
- data/lib/rabbit/theme/title-slide-background-image/title-slide-background-image.rb +25 -0
- data/lib/rabbit/theme/video/property.rb +3 -0
- data/lib/rabbit/theme/video/video.rb +5 -0
- data/lib/rabbit/theme-configuration.rb +101 -0
- data/lib/rabbit/utils.rb +435 -0
- data/lib/rabbit/version.rb +19 -0
- data/lib/rabbit/xmlrpc/base.rb +6 -0
- data/lib/rabbit/xmlrpc/client.rb +33 -0
- data/lib/rabbit/xmlrpc/server.rb +39 -0
- data/lib/rabbit/yaml-loader.rb +39 -0
- data/misc/emacs/README.ja +177 -0
- data/misc/emacs/rabbit-mode.el +378 -0
- data/misc/github-post-receiver/config.ru +170 -0
- data/misc/github-post-receiver/config.yaml.sample +3 -0
- data/misc/github-post-receiver/tmp/restart.txt +0 -0
- data/misc/make-image-sample.rb +95 -0
- data/misc/make-print-sample.rb +95 -0
- data/misc/update-rd.rb +85 -0
- data/misc/xyzzy/rabbit-mode.l +775 -0
- data/po/en/rabbit.po +2110 -0
- data/po/fr/rabbit.po +2109 -0
- data/po/ja/rabbit.po +2197 -0
- data/rabbit-qt.gemspec +80 -0
- data/sample/block-quote.rab +13 -0
- data/sample/blue-circle.rd +37 -0
- data/sample/can_rabbit.rd +425 -0
- data/sample/cozmixng.rd +85 -0
- data/sample/cozmixng_is_field.png +0 -0
- data/sample/cozmixng_is_field.svg +430 -0
- data/sample/description-list.rab +17 -0
- data/sample/enishi-green.rab +14 -0
- data/sample/equation.eps +571 -0
- data/sample/gl-sample.rd +8 -0
- data/sample/html_and_wiki.png +0 -0
- data/sample/html_and_wiki.svg +275 -0
- data/sample/image-reflection.rab +12 -0
- data/sample/info-window.png +0 -0
- data/sample/join_cozmixng.png +0 -0
- data/sample/join_cozmixng.svg +293 -0
- data/sample/kof2005/gesture-flow.svg +329 -0
- data/sample/kof2005/gesture.rb +473 -0
- data/sample/kof2005/gtk+-widget.svg +128 -0
- data/sample/kof2005/high-light-architecture.svg +203 -0
- data/sample/kof2005/high-light-expose.rb +120 -0
- data/sample/kof2005/high-light-expose.svg +153 -0
- data/sample/kof2005/high-light-widget.rb +147 -0
- data/sample/kof2005/high-light-widget.svg +172 -0
- data/sample/kof2005/high-light.svg +132 -0
- data/sample/kof2005/mask-screenshot.png +0 -0
- data/sample/kof2005/mask.rb +105 -0
- data/sample/kof2005/mask.svg +120 -0
- data/sample/kof2005/ruby-gnome2-logo.png +0 -0
- data/sample/kof2005/ruby-pink-circle-logo.png +0 -0
- data/sample/kof2005/skip-up-with-ruby-gnome2.rd +450 -0
- data/sample/kof2005/widget.svg +202 -0
- data/sample/lavie.png +0 -0
- data/sample/lightning-talk.rd +50 -0
- data/sample/lldn/input.svg +269 -0
- data/sample/lldn/interface.svg +410 -0
- data/sample/lldn/kame.png +0 -0
- data/sample/lldn/lavie.png +0 -0
- data/sample/lldn/lldn.rd +212 -0
- data/sample/lldn/output.svg +284 -0
- data/sample/lldn/rabbit-rwiki.svg +353 -0
- data/sample/lldn/rabbit_banner.png +0 -0
- data/sample/lldn/rabbit_banner2.png +0 -0
- data/sample/m17n.rd +138 -0
- data/sample/mermaid.rab +16 -0
- data/sample/note.rab +31 -0
- data/sample/ppt/hare-and-tortoise-end.png +0 -0
- data/sample/ppt/hare-and-tortoise-middle.png +0 -0
- data/sample/ppt/hare-and-tortoise-start.png +0 -0
- data/sample/ppt/ppt.rd +207 -0
- data/sample/ppt/rabbit-with-ruby.png +0 -0
- data/sample/pre.rd +123 -0
- data/sample/rabbit/theme/festival/festival.rb +6 -0
- data/sample/rabbit/theme/gl-sample/gl-sample.rb +29 -0
- data/sample/rabbit/theme/image-with-frame/image-with-frame.rb +2 -0
- data/sample/rabbit/theme/image-with-no-shadow-frame/image-with-no-shadow-frame.rb +3 -0
- data/sample/rabbit/theme/image-without-frame/image-without-frame.rb +2 -0
- data/sample/rabbit/theme/kof2005/kof2005.rb +9 -0
- data/sample/rabbit/theme/kof2005/property.rb +3 -0
- data/sample/rabbit/theme/lightning-talk-with-contact/lightning-talk-with-contact.rb +6 -0
- data/sample/rabbit/theme/lldn/lldn.rb +20 -0
- data/sample/rabbit/theme/pdf/pdf.rb +16 -0
- data/sample/rabbit/theme/pdf/property.rb +4 -0
- data/sample/rabbit/theme/ppt/ppt.rb +5 -0
- data/sample/rabbit/theme/rabbit-and-tortoise/rabbit-and-tortoise.rb +11 -0
- data/sample/rabbit/theme/rectangle-image-slide-number/rectangle-image-slide-number.rb +4 -0
- data/sample/rabbit/theme/stop-auto-slide/stop-auto-slide.rb +2 -0
- data/sample/rabbit/theme/triangle-image-slide-number/triangle-image-slide-number.rb +5 -0
- data/sample/rabbit-balloon.obj +93 -0
- data/sample/rabbit-en.hiki +399 -0
- data/sample/rabbit-en.md +410 -0
- data/sample/rabbit-en.rd +511 -0
- data/sample/rabbit-history.svg +280 -0
- data/sample/rabbit-implementation.rd +182 -0
- data/sample/rabbit-slide-show-logo.svg +597 -0
- data/sample/rabbit.dia +408 -0
- data/sample/rabbit.hiki +398 -0
- data/sample/rabbit.md +423 -0
- data/sample/rabbit.rd +520 -0
- data/sample/rabbit.xcf +0 -0
- data/sample/rabbit_icon.ico +0 -0
- data/sample/rabbit_icon.png +0 -0
- data/sample/shocker.jpg +0 -0
- data/sample/slide-property.hiki +14 -0
- data/sample/slide-property.rab +18 -0
- data/sample/spiral.svg +29 -0
- data/sample/table-en.rd +55 -0
- data/sample/table.hiki +34 -0
- data/sample/table.rd +55 -0
- data/sample/usagi.png +0 -0
- data/sample/video.md +19 -0
- data/sample/video.rab +17 -0
- metadata +1000 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Copyright (C) 2006-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
require_relative "../../gesture/handler"
|
|
18
|
+
|
|
19
|
+
module Rabbit
|
|
20
|
+
module Renderer
|
|
21
|
+
module Display
|
|
22
|
+
module Gesture
|
|
23
|
+
def initialize(*args, &block)
|
|
24
|
+
super
|
|
25
|
+
init_gesture
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
def init_gesture
|
|
30
|
+
@gesture = Rabbit::Gesture::Handler.new
|
|
31
|
+
|
|
32
|
+
pressed_info = nil
|
|
33
|
+
target_button = 3
|
|
34
|
+
|
|
35
|
+
add_button_press_hook do |event|
|
|
36
|
+
pressed_info = [event.button, event.event_type]
|
|
37
|
+
no_modifiers = !event.state.control_mask? &&
|
|
38
|
+
!event.state.alt_mask? &&
|
|
39
|
+
!event.state.shift_mask?
|
|
40
|
+
if event.button == target_button &&
|
|
41
|
+
event.event_type == :button_press &&
|
|
42
|
+
no_modifiers
|
|
43
|
+
x = @area.x rescue 0
|
|
44
|
+
y = @area.y rescue 0
|
|
45
|
+
@gesture.start(target_button, x + event.x, y + event.y, x, y)
|
|
46
|
+
end
|
|
47
|
+
false
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
add_button_release_hook do |event, last_button_press_event|
|
|
51
|
+
pressed_info = nil
|
|
52
|
+
if @gesture.processing? and event.button == target_button
|
|
53
|
+
restore_cursor(:gesture) if @gesture.moved?
|
|
54
|
+
queue_draw
|
|
55
|
+
moved = @gesture.moved?
|
|
56
|
+
@gesture.button_release(event.x, event.y, width, height)
|
|
57
|
+
moved
|
|
58
|
+
else
|
|
59
|
+
false
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
add_motion_notify_hook do |x, y|
|
|
64
|
+
if @gesture.processing? and
|
|
65
|
+
pressed_info == [target_button, :button_press]
|
|
66
|
+
unless @gesture.moved?
|
|
67
|
+
keep_cursor(:gesture)
|
|
68
|
+
update_cursor(:gesture)
|
|
69
|
+
end
|
|
70
|
+
first_move = !@gesture.moved?
|
|
71
|
+
handled = @gesture.button_motion(x, y, width, height)
|
|
72
|
+
queue_draw if handled or first_move
|
|
73
|
+
true
|
|
74
|
+
else
|
|
75
|
+
false
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def init_gesture_actions
|
|
81
|
+
@gesture.clear_actions
|
|
82
|
+
bg_proc = Utils.process_pending_events_proc
|
|
83
|
+
add_gesture_action(%w(R), "Next")
|
|
84
|
+
add_gesture_action(%w(R L), "LastSlide")
|
|
85
|
+
add_gesture_action(%w(L), "Previous")
|
|
86
|
+
add_gesture_action(%w(L R), "FirstSlide")
|
|
87
|
+
add_gesture_action(%w(U), "Quit")
|
|
88
|
+
|
|
89
|
+
add_gesture_action(%w(D), "ToggleIndexMode")
|
|
90
|
+
add_gesture_action(%w(D U), "ToggleFullscreen")
|
|
91
|
+
add_gesture_action(%w(LR), "ToggleGraffitiMode")
|
|
92
|
+
|
|
93
|
+
add_gesture_action(%w(UL), "Redraw")
|
|
94
|
+
add_gesture_action(%w(UL D), "ReloadTheme")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def add_gesture_action(sequence, action)
|
|
98
|
+
@gesture.add_action(sequence, @canvas.actions.find_action(action))
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def gesturing?
|
|
102
|
+
@gesture.processing?
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def draw_gesture
|
|
106
|
+
@gesture.draw(self) if gesturing? and @gesture.moved?
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Copyright (C) 2006-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
require "forwardable"
|
|
18
|
+
|
|
19
|
+
require_relative "../../graffiti/processor"
|
|
20
|
+
|
|
21
|
+
module Rabbit
|
|
22
|
+
module Renderer
|
|
23
|
+
module Display
|
|
24
|
+
module Graffiti
|
|
25
|
+
extend Forwardable
|
|
26
|
+
|
|
27
|
+
def_delegator(:@graffiti, :color, :graffiti_color)
|
|
28
|
+
def_delegator(:@graffiti, :color=, :graffiti_color=)
|
|
29
|
+
def_delegator(:@graffiti, :line_width, :graffiti_line_width)
|
|
30
|
+
def_delegator(:@graffiti, :line_width=, :graffiti_line_width=)
|
|
31
|
+
def_delegator(:@graffiti, :clear_config, :clear_graffiti_config)
|
|
32
|
+
|
|
33
|
+
def initialize(*args, &block)
|
|
34
|
+
super
|
|
35
|
+
init_graffiti
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def graffiti_mode?
|
|
39
|
+
@graffiti_mode
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def have_graffiti?
|
|
43
|
+
@graffiti.have_graffiti?
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def can_undo_graffiti?
|
|
47
|
+
@graffiti.can_undo?
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def toggle_graffiti_mode
|
|
51
|
+
@graffiti_mode = !@graffiti_mode
|
|
52
|
+
if graffiti_mode?
|
|
53
|
+
update_cursor(:graffiti)
|
|
54
|
+
else
|
|
55
|
+
restore_cursor(nil)
|
|
56
|
+
end
|
|
57
|
+
update_menu
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def clear_graffiti
|
|
61
|
+
@graffiti.clear
|
|
62
|
+
@area.queue_draw
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def undo_graffiti
|
|
66
|
+
@graffiti.undo
|
|
67
|
+
@area.queue_draw
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def change_graffiti_color
|
|
71
|
+
@graffiti.change_color do
|
|
72
|
+
redraw
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
private
|
|
77
|
+
def init_graffiti
|
|
78
|
+
@graffiti = Rabbit::Graffiti::Processor.new
|
|
79
|
+
@graffiti_mode = false
|
|
80
|
+
|
|
81
|
+
pressed_button = nil
|
|
82
|
+
target_button = 1
|
|
83
|
+
|
|
84
|
+
add_button_press_hook do |event|
|
|
85
|
+
pressed_button = event.button
|
|
86
|
+
if graffiti_mode? and event.button == target_button
|
|
87
|
+
@graffiti.button_press(event.x, event.y, width, height)
|
|
88
|
+
true
|
|
89
|
+
else
|
|
90
|
+
false
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
add_button_release_hook do |event, last_button_press_event|
|
|
95
|
+
pressed_button = nil
|
|
96
|
+
if graffiti_mode? and event.button == target_button
|
|
97
|
+
@graffiti.button_release(event.x, event.y, width, height)
|
|
98
|
+
true
|
|
99
|
+
else
|
|
100
|
+
false
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
add_motion_notify_hook do |x, y|
|
|
105
|
+
if graffiti_mode? and
|
|
106
|
+
@graffiti.dragging? and
|
|
107
|
+
pressed_button == target_button
|
|
108
|
+
@graffiti.button_motion(x, y, width, height)
|
|
109
|
+
redraw
|
|
110
|
+
true
|
|
111
|
+
else
|
|
112
|
+
false
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def draw_graffiti
|
|
118
|
+
@graffiti.draw_all_segment(self)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def graffiti_mode_action
|
|
122
|
+
@canvas.action("ToggleGraffitiMode")
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
module Rabbit
|
|
2
|
+
module Renderer
|
|
3
|
+
module Display
|
|
4
|
+
module HookHandler
|
|
5
|
+
def initialize(*args, &block)
|
|
6
|
+
super
|
|
7
|
+
init_hook_handler
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call_hook_procs(procs, *args)
|
|
11
|
+
procs.any? {|proc| proc.call(*args)}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def add_motion_notify_hook(hook=nil, &block)
|
|
15
|
+
hook ||= Proc.new(&block)
|
|
16
|
+
@motion_notify_hook_procs << hook
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def clear_motion_notify_hook
|
|
20
|
+
@motion_notify_hook_procs.clear
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def add_scroll_hook(hook=nil, &block)
|
|
24
|
+
hook ||= Proc.new(&block)
|
|
25
|
+
@scroll_hook_procs << hook
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def clear_scroll_hook
|
|
29
|
+
@scroll_hook_procs.clear
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def add_button_press_hook(hook=nil, &block)
|
|
33
|
+
hook ||= Proc.new(&block)
|
|
34
|
+
@button_press_hook_procs << hook
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def clear_button_press_hook
|
|
38
|
+
@button_press_hook_procs.clear
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def add_button_release_hook(hook=nil, &block)
|
|
42
|
+
hook ||= Proc.new(&block)
|
|
43
|
+
@button_release_hook_procs << hook
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def clear_button_release_hook
|
|
47
|
+
@button_release_hook_procs.clear
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def clear_hooks
|
|
51
|
+
init_hook_handler
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
def init_hook_handler
|
|
56
|
+
@motion_notify_hook_procs = []
|
|
57
|
+
@scroll_hook_procs = []
|
|
58
|
+
@button_press_hook_procs = []
|
|
59
|
+
@button_release_hook_procs = []
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Copyright (C) 2006-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
require_relative "../../info-window"
|
|
18
|
+
|
|
19
|
+
module Rabbit
|
|
20
|
+
module Renderer
|
|
21
|
+
module Display
|
|
22
|
+
module Info
|
|
23
|
+
def initialize(canvas)
|
|
24
|
+
super
|
|
25
|
+
@info_window = InfoWindow.new(@canvas)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def toggle_info_window
|
|
29
|
+
if info_window_showing?
|
|
30
|
+
hide_info_window
|
|
31
|
+
else
|
|
32
|
+
show_info_window
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def info_window_showing?
|
|
37
|
+
@info_window.showing?
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def show_info_window
|
|
41
|
+
@info_window.show(width, height)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def hide_info_window
|
|
45
|
+
@info_window.hide
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def post_parse
|
|
49
|
+
super
|
|
50
|
+
@info_window.parsed
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def post_move(old_index, index)
|
|
54
|
+
super
|
|
55
|
+
@info_window.moved
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def post_move_in_slide(old_index, index)
|
|
59
|
+
super
|
|
60
|
+
@info_window.moved
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def index_mode_on
|
|
64
|
+
super
|
|
65
|
+
@info_window.index_mode_on
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def index_mode_off
|
|
69
|
+
super
|
|
70
|
+
@info_window.index_mode_off
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Copyright (C) 2006-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
module Rabbit
|
|
18
|
+
module Renderer
|
|
19
|
+
module Display
|
|
20
|
+
module Magnifier
|
|
21
|
+
def initialize(canvas)
|
|
22
|
+
super
|
|
23
|
+
init_magnifier
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def toggle_magnifier
|
|
27
|
+
@magnifying = !@magnifying
|
|
28
|
+
if magnifying?
|
|
29
|
+
grab
|
|
30
|
+
@magnifier_center_x = 0
|
|
31
|
+
@magnifier_center_y = 0
|
|
32
|
+
else
|
|
33
|
+
ungrab
|
|
34
|
+
@magnifier_center_x = nil
|
|
35
|
+
@magnifier_center_y = nil
|
|
36
|
+
end
|
|
37
|
+
queue_draw
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def magnifying?
|
|
41
|
+
@magnifying
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
def init_magnifier
|
|
46
|
+
@magnifying = false
|
|
47
|
+
|
|
48
|
+
@magnifier_ratio = 1.5
|
|
49
|
+
@magnifier_center_x = nil
|
|
50
|
+
@magnifier_center_y = nil
|
|
51
|
+
|
|
52
|
+
target_button = 3
|
|
53
|
+
|
|
54
|
+
add_button_press_hook do |event|
|
|
55
|
+
if event.button == target_button &&
|
|
56
|
+
event.event_type == :button_press &&
|
|
57
|
+
event.state.control_mask?
|
|
58
|
+
@magnifier_center_x = event.x
|
|
59
|
+
@magnifier_center_y = event.y
|
|
60
|
+
magnifier_action.enabled = true
|
|
61
|
+
true
|
|
62
|
+
else
|
|
63
|
+
false
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
add_button_release_hook do |event, last_event|
|
|
68
|
+
if magnifying? and event.button == target_button
|
|
69
|
+
magnifier_action.enabled = false
|
|
70
|
+
true
|
|
71
|
+
else
|
|
72
|
+
false
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
add_motion_notify_hook do |x, y|
|
|
77
|
+
if magnifying?
|
|
78
|
+
@magnifier_center_x = x
|
|
79
|
+
@magnifier_center_y = y
|
|
80
|
+
queue_draw
|
|
81
|
+
add_button_handler do
|
|
82
|
+
clear_button_handler
|
|
83
|
+
true
|
|
84
|
+
end
|
|
85
|
+
true
|
|
86
|
+
else
|
|
87
|
+
false
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
add_scroll_hook do |event|
|
|
92
|
+
if magnifying?
|
|
93
|
+
case event.direction
|
|
94
|
+
when :up
|
|
95
|
+
@magnifier_ratio = [0.5, @magnifier_ratio - 0.1].max
|
|
96
|
+
when :down
|
|
97
|
+
@magnifier_ratio = [3, @magnifier_ratio + 0.1].min
|
|
98
|
+
end
|
|
99
|
+
queue_draw
|
|
100
|
+
true
|
|
101
|
+
else
|
|
102
|
+
false
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def magnify(&block)
|
|
108
|
+
return unless magnifying?
|
|
109
|
+
|
|
110
|
+
w = width / 1.5
|
|
111
|
+
h = height / 1.5
|
|
112
|
+
center_x = @magnifier_center_x - size.logical_margin_left
|
|
113
|
+
center_y = @magnifier_center_y - size.logical_margin_top
|
|
114
|
+
x = center_x - w / 2
|
|
115
|
+
y = center_y - h / 2
|
|
116
|
+
r = w * 0.1
|
|
117
|
+
save_context do
|
|
118
|
+
clip_block = Proc.new do
|
|
119
|
+
draw_rectangle(true, 0, 0, width, height, @background)
|
|
120
|
+
translate_context(center_x, center_y)
|
|
121
|
+
scale_context(@magnifier_ratio, @magnifier_ratio)
|
|
122
|
+
translate_context(-center_x, -center_y)
|
|
123
|
+
block.call
|
|
124
|
+
end
|
|
125
|
+
draw_rounded_rectangle(false, x, y, w, h, r, nil,
|
|
126
|
+
:clip => clip_block)
|
|
127
|
+
end
|
|
128
|
+
draw_rounded_rectangle(false, x, y, w, h, r, "red")
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def magnifier_action
|
|
132
|
+
@canvas.action("ToggleMagnifier")
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Copyright (C) 2006-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
require_relative "../../qt"
|
|
18
|
+
|
|
19
|
+
module Rabbit
|
|
20
|
+
module Renderer
|
|
21
|
+
module Display
|
|
22
|
+
module Mask
|
|
23
|
+
MASK_SIZE_STEP = 0.05
|
|
24
|
+
|
|
25
|
+
def initialize(*args, &block)
|
|
26
|
+
super
|
|
27
|
+
init_mask
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def expand_hole
|
|
31
|
+
if @mask_size < 0
|
|
32
|
+
@mask_size = MASK_SIZE_STEP
|
|
33
|
+
else
|
|
34
|
+
@mask_size = [@mask_size + MASK_SIZE_STEP, 1.0].min
|
|
35
|
+
end
|
|
36
|
+
set_hole
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def narrow_hole
|
|
40
|
+
if @mask_size < 0
|
|
41
|
+
@mask_size = 0
|
|
42
|
+
else
|
|
43
|
+
@mask_size = [@mask_size - MASK_SIZE_STEP, 0.0].max
|
|
44
|
+
end
|
|
45
|
+
set_hole
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def set_hole
|
|
49
|
+
return unless @window
|
|
50
|
+
if @mask_size <= 0
|
|
51
|
+
@window.clear_mask if @window.respond_to?(:clear_mask)
|
|
52
|
+
else
|
|
53
|
+
_size = size
|
|
54
|
+
return unless _size
|
|
55
|
+
w, h = _size.real_width, _size.real_height
|
|
56
|
+
return unless w && h && w > 0 && h > 0
|
|
57
|
+
region = QRegion.new(0, 0, w.to_i, h.to_i)
|
|
58
|
+
if @mask_size < 1.0
|
|
59
|
+
mw = (w * @mask_size).to_i
|
|
60
|
+
mh = (h * @mask_size).to_i
|
|
61
|
+
mx = ((w - mw) / 2).to_i
|
|
62
|
+
my = ((h - mh) / 2).to_i
|
|
63
|
+
hole = QRegion.new(mx, my, mw, mh)
|
|
64
|
+
region = region.subtracted(hole)
|
|
65
|
+
else
|
|
66
|
+
hole = QRegion.new(0, 0, w.to_i - 1, h.to_i)
|
|
67
|
+
region = region.subtracted(hole)
|
|
68
|
+
end
|
|
69
|
+
@window.set_mask(region) if @window.respond_to?(:set_mask)
|
|
70
|
+
end
|
|
71
|
+
redraw
|
|
72
|
+
update_title
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
private
|
|
76
|
+
def init_mask
|
|
77
|
+
@mask_size = 0
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
require_relative "../../menu"
|
|
18
|
+
|
|
19
|
+
module Rabbit
|
|
20
|
+
module Renderer
|
|
21
|
+
module Display
|
|
22
|
+
module Menu
|
|
23
|
+
private
|
|
24
|
+
def init_menu
|
|
25
|
+
@menu = Rabbit::Menu.new(@canvas.actions)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update_menu
|
|
29
|
+
@menu.update_menu(@canvas)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def toggle_menu(x=nil, y=nil)
|
|
33
|
+
@menu.toggle(x, y)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def popup_menu(x=nil, y=nil)
|
|
37
|
+
@menu.popup(x, y)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def popdown_menu
|
|
41
|
+
@menu.popdown
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def attach_menu(window)
|
|
45
|
+
@menu.attach(window)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def detach_menu(window)
|
|
49
|
+
@menu.detach(window)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
#
|
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
# GNU General Public License for more details.
|
|
12
|
+
#
|
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
+
|
|
17
|
+
module Rabbit
|
|
18
|
+
module Renderer
|
|
19
|
+
module Display
|
|
20
|
+
module MotionHandler
|
|
21
|
+
def handle_qt_mouse_move(event)
|
|
22
|
+
pos = event.position
|
|
23
|
+
call_hook_procs(@motion_notify_hook_procs, pos.x, pos.y)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
def set_motion_event(widget)
|
|
28
|
+
widget.set_mouse_tracking(true)
|
|
29
|
+
widget.register_motion_handler(self)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|