Class: Fox::FXBitmapView
- Inherits:
-
FXScrollArea
- Object
- FXObject
- FXId
- FXDrawable
- FXWindow
- FXComposite
- FXScrollArea
- Fox::FXBitmapView
- Defined in:
- rdoc-sources/FXBitmapView.rb,
lib/fox16/bitmapview.rb
Overview
The FXBitmapView widget displays a scrollable view of a bitmap.
Bitmap alignment styles
BITMAPVIEW_NORMAL
:: Normal mode is centered BITMAPVIEW_CENTER_X
:: Centered horizontally BITMAPVIEW_LEFT
:: Left-aligned BITMAPVIEW_RIGHT
:: Right-aligned BITMAPVIEW_CENTER_Y
:: Centered vertically BITMAPVIEW_TOP
:: Top-aligned BITMAPVIEW_BOTTOM
:: Bottom-aligned
Events
SEL_RIGHTBUTTONPRESS
:: sent when the right mouse button goes down; the message data is an FXEvent instance. SEL_RIGHTBUTTONRELEASE
:: sent when the right mouse button goes up; the message data is an FXEvent instance.
Constant Summary collapse
- BITMAPVIEW_NORMAL =
Bitmap alignment styles
0
- BITMAPVIEW_CENTER_X =
Normal mode is centered
0
- BITMAPVIEW_LEFT =
Centered horizontally
0x00100000
- BITMAPVIEW_RIGHT =
Left-aligned
0x00200000
- BITMAPVIEW_CENTER_Y =
Right-aligned
0, # Centered vertically BITMAPVIEW_TOP = 0x00400000
- BITMAPVIEW_BOTTOM =
Top-aligned
0x00800000
Instance Attribute Summary collapse
-
#alignment ⇒ Object
Return the current alignment for the bitmap inside the FXBitmapView.
-
#bitmap ⇒ Object
Return a reference to the bitmap (an FXBitmap instance) for this FXBitmapView, or
nil
if no bitmap has been set. -
#offColor ⇒ Object
Return the color used for the “off” bits in the bitmap.
-
#onColor ⇒ Object
Return the color used for the “on” bits in the bitmap.
Attributes inherited from FXScrollArea
#contentHeight, #contentWidth, #horizontalScrollBar, #scrollStyle, #verticalScrollBar, #viewportHeight, #viewportWidth, #xPosition, #yPosition
Attributes inherited from FXWindow
#accelTable, #backColor, #defaultCursor, #dragCursor, #first, #focus, #key, #last, #layoutHints, #next, #numChildren, #owner, #parent, #prev, #root, #selector, #shell, #target, #x, #y
Attributes inherited from FXDrawable
Attributes inherited from FXId
Instance Method Summary collapse
- #canFocus ⇒ Object
- #create ⇒ Object
- #detach ⇒ Object
- #getContentHeight ⇒ Object
- #getContentWidth ⇒ Object
-
#initialize(p, bmp = nil, tgt = nil, sel = 0, opts = 0, x = 0, y = 0, w = 0, h = 0) ⇒ FXBitmapView
constructor
Return an initialized FXBitmapView instance.
- #layout ⇒ Object
-
#onMotion(sender, sel, ev) ⇒ Object
Handle real or simulated mouse motion.
-
#onPaint(sender, sel, event) ⇒ Object
Handle expose (paint) event.
-
#onRightBtnPress(sender, sel, ev) ⇒ Object
Handle right mouse button press.
-
#onRightBtnRelease(sender, sel, ev) ⇒ Object
Handle right mouse button release.
Methods inherited from FXScrollArea
#horizontalScrollable?, #position, #scrollCorner, #setPosition, #verticalScrollable?
Methods inherited from FXComposite
#maxChildHeight, #maxChildWidth
Methods inherited from FXWindow
#acceptDrop, #acquireClipboard, #acquireSelection, #active?, #addHotKey, after?, #after?, #before?, before?, #beginDrag, #canFocus?, #changeFocus, #childAtIndex, #childOf?, #children, #clearDragRectangle, #clearShape, colorType, colorTypeName, commonAncestor, #composeContext, #composite?, #contains?, #containsChild?, #createComposeContext, #cursorPosition, #default?, #defaultHeight, #defaultWidth, deleteType, deleteTypeName, #destroy, #destroyComposeContext, #didAccept, #disable, #doesSaveUnder?, #dragging?, #dropDisable, #dropEnable, #dropEnabled?, #dropFinished, #dropTarget?, #each_child, #each_child_recursive, #enable, #enabled?, #endDrag, #forceRefresh, #getChildAt, #getDNDData, #getHeightForWidth, #getWidthForHeight, #grab, #grabKeyboard, #grabbed?, #grabbedKeyboard?, #handleDrag, #hasClipboard?, #hasFocus?, #hasSelection?, #height, #height=, #hide, imageType, #inFocusChain?, #indexOfChild, #initial?, #inquireDNDAction, #inquireDNDTypes, #killFocus, #linkAfter, #linkBefore, #lower, #move, octetType, octetTypeName, #offeredDNDType?, #position, #raiseWindow, #recalc, #releaseClipboard, #releaseSelection, #remHotKey, #removeChild, #repaint, #reparent, #resize, #scroll, #setCursorPosition, #setDNDData, #setDefault, #setDragRectangle, #setFocus, #setInitial, #setShape, #shell?, #show, #shown?, stringType, textType, textTypeName, #tr, #translateCoordinatesFrom, #translateCoordinatesTo, #underCursor?, #ungrab, #ungrabKeyboard, #update, urilistType, urilistTypeName, utf16Type, utf16TypeName, utf8Type, utf8TypeName, #visible=, #width, #width=
Methods included from Responder2
Methods inherited from FXDrawable
Methods inherited from FXId
#created?, #destroy, #runOnUiThread
Methods inherited from FXObject
#bind, #handle, #load, #save, subclasses
Constructor Details
#initialize(p, bmp = nil, tgt = nil, sel = 0, opts = 0, x = 0, y = 0, w = 0, h = 0) ⇒ FXBitmapView
Return an initialized FXBitmapView instance.
40 41 |
# File 'rdoc-sources/FXBitmapView.rb', line 40 def initialize(p, bmp=nil, target=nil, selector=0, opts=0, x=0, y=0, width=0, height=0) # :yields: theBitmapView end |
Instance Attribute Details
#alignment ⇒ Object
Return the current alignment for the bitmap inside the FXBitmapView.
35 36 37 |
# File 'rdoc-sources/FXBitmapView.rb', line 35 def alignment @alignment end |
#bitmap ⇒ Object
Return a reference to the bitmap (an FXBitmap instance) for this FXBitmapView, or nil
if no bitmap has been set.
26 27 28 |
# File 'rdoc-sources/FXBitmapView.rb', line 26 def bitmap @bitmap end |
#offColor ⇒ Object
Return the color used for the “off” bits in the bitmap.
32 33 34 |
# File 'rdoc-sources/FXBitmapView.rb', line 32 def offColor @offColor end |
#onColor ⇒ Object
Return the color used for the “on” bits in the bitmap.
29 30 31 |
# File 'rdoc-sources/FXBitmapView.rb', line 29 def onColor @onColor end |
Instance Method Details
#canFocus ⇒ Object
56 57 58 |
# File 'lib/fox16/bitmapview.rb', line 56 def canFocus true end |
#create ⇒ Object
46 47 48 49 |
# File 'lib/fox16/bitmapview.rb', line 46 def create super bitmap.create unless bitmap.nil? end |
#detach ⇒ Object
51 52 53 54 |
# File 'lib/fox16/bitmapview.rb', line 51 def detach super bitmap.detach unless bitmap.nil? end |
#getContentHeight ⇒ Object
64 65 66 |
# File 'lib/fox16/bitmapview.rb', line 64 def getContentHeight bitmap.nil? ? 1 : bitmap.height end |
#getContentWidth ⇒ Object
60 61 62 |
# File 'lib/fox16/bitmapview.rb', line 60 def getContentWidth bitmap.nil? ? 1 : bitmap.width end |
#layout ⇒ Object
68 69 70 71 72 |
# File 'lib/fox16/bitmapview.rb', line 68 def layout super update self.flags &= ~FLAG_DIRTY end |
#onMotion(sender, sel, ev) ⇒ Object
Handle real or simulated mouse motion
154 155 156 157 158 159 160 |
# File 'lib/fox16/bitmapview.rb', line 154 def onMotion(sender, sel, ev) if (flags & FLAG_SCROLLING) != 0 setPosition(ev.win_x - @grabx, ev.win_y - @graby) return 1 end return 0 end |
#onPaint(sender, sel, event) ⇒ Object
Handle expose (paint) event
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/fox16/bitmapview.rb', line 75 def onPaint(sender, sel, event) FXDCWindow.new(self, event) do |dc| unless bitmap.nil? ww = bitmap.width hh = bitmap.height xx = pos_x yy = pos_y if ww < if ( & BITMAPVIEW_LEFT) != 0 xx = 0 elsif ( & BITMAPVIEW_RIGHT) != 0 xx = - ww else xx = ( - ww)/2 end end if hh < if ( & BITMAPVIEW_TOP) != 0 yy = 0 elsif ( & BITMAPVIEW_BOTTOM) != 0 yy = - hh else yy = ( - hh)/2 end end dc.foreground = onColor dc.background = offColor dc.drawBitmap(bitmap, xx, yy) dc.foreground = backColor xl = xx; xr = xx + ww yt = yy; yb = yy + hh xl = 0 if (xl < 0) xr = if (xr > ) yt = 0 if (yt < 0) yb = if (yb > ) dc.fillRectangle(0, 0, xr, yt) dc.fillRectangle(0, yt, xl, - yt) dc.fillRectangle(xr, 0, - xr, yb) dc.fillRectangle(xl, yb, - xl, - yb) else dc.foreground = backColor dc.fillRectangle(0, 0, width, height) end end end |
#onRightBtnPress(sender, sel, ev) ⇒ Object
Handle right mouse button press
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/fox16/bitmapview.rb', line 122 def onRightBtnPress(sender, sel, ev) self.flags &= ~FLAG_TIP handle(self, Fox.FXSEL(SEL_FOCUS_SELF, 0), ev) if enabled? grab if target && target.handle(self, Fox.FXSEL(SEL_RIGHTBUTTONPRESS, ), ev) != 0 return 1 end self.flags &= ~FLAG_UPDATE self.flags |= FLAG_PRESSED|FLAG_SCROLLING @grabx = ev.win_x - pos_x @graby = ev.win_y - pos_y return 1 end return 0 end |
#onRightBtnRelease(sender, sel, ev) ⇒ Object
Handle right mouse button release
140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/fox16/bitmapview.rb', line 140 def onRightBtnRelease(sender, sel, ev) if enabled? ungrab self.flags &= ~(FLAG_PRESSED|FLAG_SCROLLING) self.flags |= FLAG_UPDATE if target && target.handle(self, Fox.FXSEL(SEL_RIGHTBUTTONPRESS, ), ev) != 0 return 1 end return 1 end return 0 end |